From 80af0c17ef82b01abaa364585ca3e46bde8a71c3 Mon Sep 17 00:00:00 2001 From: Andrea Giacobino Date: Tue, 25 Jun 2024 15:05:44 -0700 Subject: [PATCH 1/2] Add tracing sources for runtime-3001 --- tracing/3001/Cargo.lock | 8455 +++++++++++++++++ tracing/3001/Cargo.toml | 444 + tracing/3001/runtime/common/Cargo.toml | 151 + tracing/3001/runtime/common/src/apis.rs | 1062 +++ .../3001/runtime/common/src/benchmarking.rs | 30 + .../common/src/impl_moonbeam_xcm_call.rs | 51 + .../src/impl_moonbeam_xcm_call_tracing.rs | 118 + .../src/impl_on_charge_evm_transaction.rs | 62 + .../common/src/impl_self_contained_call.rs | 78 + .../runtime/common/src/impl_xcm_evm_runner.rs | 188 + tracing/3001/runtime/common/src/lib.rs | 30 + tracing/3001/runtime/common/src/migrations.rs | 199 + tracing/3001/runtime/common/src/timestamp.rs | 92 + .../src/weights/cumulus_pallet_xcmp_queue.rs | 154 + .../3001/runtime/common/src/weights/mod.rs | 48 + .../src/weights/pallet_asset_manager.rs | 144 + .../common/src/weights/pallet_assets.rs | 483 + .../src/weights/pallet_author_inherent.rs | 70 + .../src/weights/pallet_author_mapping.rs | 122 + .../src/weights/pallet_author_slot_filter.rs | 59 + .../common/src/weights/pallet_balances.rs | 151 + .../common/src/weights/pallet_collective.rs | 308 + .../src/weights/pallet_conviction_voting.rs | 184 + .../src/weights/pallet_crowdloan_rewards.rs | 163 + .../runtime/common/src/weights/pallet_evm.rs | 78 + .../common/src/weights/pallet_identity.rs | 411 + .../pallet_moonbeam_lazy_migrations.rs | 77 + .../src/weights/pallet_moonbeam_orbiters.rs | 203 + .../common/src/weights/pallet_multisig.rs | 160 + .../src/weights/pallet_parachain_staking.rs | 864 ++ .../weights/pallet_precompile_benchmarks.rs | 69 + .../common/src/weights/pallet_preimage.rs | 251 + .../common/src/weights/pallet_proxy.rs | 217 + .../common/src/weights/pallet_randomness.rs | 162 + .../common/src/weights/pallet_referenda.rs | 469 + .../src/weights/pallet_relay_storage_roots.rs | 64 + .../common/src/weights/pallet_scheduler.rs | 196 + .../runtime/common/src/weights/pallet_sudo.rs | 91 + .../common/src/weights/pallet_timestamp.rs | 67 + .../common/src/weights/pallet_treasury.rs | 189 + .../common/src/weights/pallet_utility.rs | 105 + .../common/src/weights/pallet_whitelist.rs | 118 + .../runtime/common/src/weights/pallet_xcm.rs | 325 + .../src/weights/pallet_xcm_transactor.rs | 192 + tracing/3001/runtime/moonbase/Cargo.toml | 422 + tracing/3001/runtime/moonbase/build.rs | 25 + .../3001/runtime/moonbase/src/asset_config.rs | 218 + .../moonbase/src/governance/councils.rs | 62 + .../runtime/moonbase/src/governance/mod.rs | 29 + .../moonbase/src/governance/origins.rs | 83 + .../moonbase/src/governance/referenda.rs | 101 + .../runtime/moonbase/src/governance/tracks.rs | 193 + tracing/3001/runtime/moonbase/src/lib.rs | 1809 ++++ .../3001/runtime/moonbase/src/migrations.rs | 28 + .../3001/runtime/moonbase/src/precompiles.rs | 340 + .../3001/runtime/moonbase/src/xcm_config.rs | 732 ++ .../3001/runtime/moonbase/tests/common/mod.rs | 396 + .../runtime/moonbase/tests/evm_tracing.rs | 144 + .../moonbase/tests/integration_test.rs | 3019 ++++++ .../runtime/moonbase/tests/runtime_apis.rs | 397 + .../runtime/moonbase/tests/xcm_mock/mod.rs | 272 + .../moonbase/tests/xcm_mock/parachain.rs | 1103 +++ .../moonbase/tests/xcm_mock/relay_chain.rs | 412 + .../moonbase/tests/xcm_mock/statemint_like.rs | 575 ++ .../3001/runtime/moonbase/tests/xcm_tests.rs | 3964 ++++++++ tracing/3001/runtime/moonbeam/Cargo.toml | 404 + tracing/3001/runtime/moonbeam/build.rs | 25 + .../3001/runtime/moonbeam/src/asset_config.rs | 216 + .../moonbeam/src/governance/councils.rs | 61 + .../runtime/moonbeam/src/governance/mod.rs | 29 + .../moonbeam/src/governance/origins.rs | 85 + .../moonbeam/src/governance/referenda.rs | 100 + .../runtime/moonbeam/src/governance/tracks.rs | 193 + tracing/3001/runtime/moonbeam/src/lib.rs | 1813 ++++ .../3001/runtime/moonbeam/src/migrations.rs | 58 + .../3001/runtime/moonbeam/src/precompiles.rs | 286 + .../3001/runtime/moonbeam/src/xcm_config.rs | 709 ++ .../3001/runtime/moonbeam/tests/common/mod.rs | 394 + .../runtime/moonbeam/tests/evm_tracing.rs | 144 + .../moonbeam/tests/integration_test.rs | 2889 ++++++ .../runtime/moonbeam/tests/runtime_apis.rs | 395 + .../runtime/moonbeam/tests/xcm_mock/mod.rs | 271 + .../moonbeam/tests/xcm_mock/parachain.rs | 1088 +++ .../moonbeam/tests/xcm_mock/relay_chain.rs | 412 + .../moonbeam/tests/xcm_mock/statemint_like.rs | 575 ++ .../3001/runtime/moonbeam/tests/xcm_tests.rs | 3681 +++++++ tracing/3001/runtime/moonriver/Cargo.toml | 409 + tracing/3001/runtime/moonriver/build.rs | 25 + .../runtime/moonriver/src/asset_config.rs | 217 + .../moonriver/src/governance/councils.rs | 61 + .../runtime/moonriver/src/governance/mod.rs | 29 + .../moonriver/src/governance/origins.rs | 84 + .../moonriver/src/governance/referenda.rs | 100 + .../moonriver/src/governance/tracks.rs | 193 + tracing/3001/runtime/moonriver/src/lib.rs | 1816 ++++ .../3001/runtime/moonriver/src/migrations.rs | 43 + .../3001/runtime/moonriver/src/precompiles.rs | 259 + .../3001/runtime/moonriver/src/xcm_config.rs | 722 ++ .../runtime/moonriver/tests/common/mod.rs | 401 + .../runtime/moonriver/tests/evm_tracing.rs | 144 + .../moonriver/tests/integration_test.rs | 2798 ++++++ .../runtime/moonriver/tests/runtime_apis.rs | 398 + .../runtime/moonriver/tests/xcm_mock/mod.rs | 273 + .../moonriver/tests/xcm_mock/parachain.rs | 1094 +++ .../moonriver/tests/xcm_mock/relay_chain.rs | 412 + .../tests/xcm_mock/statemine_like.rs | 575 ++ .../3001/runtime/moonriver/tests/xcm_tests.rs | 3990 ++++++++ tracing/3001/rust-toolchain | 5 + tracing/3001/shared/primitives/ext/Cargo.toml | 33 + tracing/3001/shared/primitives/ext/src/lib.rs | 82 + .../shared/primitives/rpc/debug/Cargo.toml | 45 + .../shared/primitives/rpc/debug/src/lib.rs | 129 + .../rpc/evm-tracing-events/Cargo.toml | 37 + .../rpc/evm-tracing-events/src/evm.rs | 258 + .../rpc/evm-tracing-events/src/gasometer.rs | 119 + .../rpc/evm-tracing-events/src/lib.rs | 287 + .../rpc/evm-tracing-events/src/runtime.rs | 156 + .../3001/shared/runtime/evm_tracer/Cargo.toml | 51 + .../3001/shared/runtime/evm_tracer/src/lib.rs | 117 + 119 files changed, 60668 insertions(+) create mode 100644 tracing/3001/Cargo.lock create mode 100644 tracing/3001/Cargo.toml create mode 100644 tracing/3001/runtime/common/Cargo.toml create mode 100644 tracing/3001/runtime/common/src/apis.rs create mode 100644 tracing/3001/runtime/common/src/benchmarking.rs create mode 100644 tracing/3001/runtime/common/src/impl_moonbeam_xcm_call.rs create mode 100644 tracing/3001/runtime/common/src/impl_moonbeam_xcm_call_tracing.rs create mode 100644 tracing/3001/runtime/common/src/impl_on_charge_evm_transaction.rs create mode 100644 tracing/3001/runtime/common/src/impl_self_contained_call.rs create mode 100644 tracing/3001/runtime/common/src/impl_xcm_evm_runner.rs create mode 100644 tracing/3001/runtime/common/src/lib.rs create mode 100644 tracing/3001/runtime/common/src/migrations.rs create mode 100644 tracing/3001/runtime/common/src/timestamp.rs create mode 100644 tracing/3001/runtime/common/src/weights/cumulus_pallet_xcmp_queue.rs create mode 100644 tracing/3001/runtime/common/src/weights/mod.rs create mode 100644 tracing/3001/runtime/common/src/weights/pallet_asset_manager.rs create mode 100644 tracing/3001/runtime/common/src/weights/pallet_assets.rs create mode 100644 tracing/3001/runtime/common/src/weights/pallet_author_inherent.rs create mode 100644 tracing/3001/runtime/common/src/weights/pallet_author_mapping.rs create mode 100644 tracing/3001/runtime/common/src/weights/pallet_author_slot_filter.rs create mode 100644 tracing/3001/runtime/common/src/weights/pallet_balances.rs create mode 100644 tracing/3001/runtime/common/src/weights/pallet_collective.rs create mode 100644 tracing/3001/runtime/common/src/weights/pallet_conviction_voting.rs create mode 100644 tracing/3001/runtime/common/src/weights/pallet_crowdloan_rewards.rs create mode 100644 tracing/3001/runtime/common/src/weights/pallet_evm.rs create mode 100644 tracing/3001/runtime/common/src/weights/pallet_identity.rs create mode 100644 tracing/3001/runtime/common/src/weights/pallet_moonbeam_lazy_migrations.rs create mode 100644 tracing/3001/runtime/common/src/weights/pallet_moonbeam_orbiters.rs create mode 100644 tracing/3001/runtime/common/src/weights/pallet_multisig.rs create mode 100644 tracing/3001/runtime/common/src/weights/pallet_parachain_staking.rs create mode 100644 tracing/3001/runtime/common/src/weights/pallet_precompile_benchmarks.rs create mode 100644 tracing/3001/runtime/common/src/weights/pallet_preimage.rs create mode 100644 tracing/3001/runtime/common/src/weights/pallet_proxy.rs create mode 100644 tracing/3001/runtime/common/src/weights/pallet_randomness.rs create mode 100644 tracing/3001/runtime/common/src/weights/pallet_referenda.rs create mode 100644 tracing/3001/runtime/common/src/weights/pallet_relay_storage_roots.rs create mode 100644 tracing/3001/runtime/common/src/weights/pallet_scheduler.rs create mode 100644 tracing/3001/runtime/common/src/weights/pallet_sudo.rs create mode 100644 tracing/3001/runtime/common/src/weights/pallet_timestamp.rs create mode 100644 tracing/3001/runtime/common/src/weights/pallet_treasury.rs create mode 100644 tracing/3001/runtime/common/src/weights/pallet_utility.rs create mode 100644 tracing/3001/runtime/common/src/weights/pallet_whitelist.rs create mode 100644 tracing/3001/runtime/common/src/weights/pallet_xcm.rs create mode 100644 tracing/3001/runtime/common/src/weights/pallet_xcm_transactor.rs create mode 100644 tracing/3001/runtime/moonbase/Cargo.toml create mode 100644 tracing/3001/runtime/moonbase/build.rs create mode 100644 tracing/3001/runtime/moonbase/src/asset_config.rs create mode 100644 tracing/3001/runtime/moonbase/src/governance/councils.rs create mode 100644 tracing/3001/runtime/moonbase/src/governance/mod.rs create mode 100644 tracing/3001/runtime/moonbase/src/governance/origins.rs create mode 100644 tracing/3001/runtime/moonbase/src/governance/referenda.rs create mode 100644 tracing/3001/runtime/moonbase/src/governance/tracks.rs create mode 100644 tracing/3001/runtime/moonbase/src/lib.rs create mode 100644 tracing/3001/runtime/moonbase/src/migrations.rs create mode 100644 tracing/3001/runtime/moonbase/src/precompiles.rs create mode 100644 tracing/3001/runtime/moonbase/src/xcm_config.rs create mode 100644 tracing/3001/runtime/moonbase/tests/common/mod.rs create mode 100644 tracing/3001/runtime/moonbase/tests/evm_tracing.rs create mode 100644 tracing/3001/runtime/moonbase/tests/integration_test.rs create mode 100644 tracing/3001/runtime/moonbase/tests/runtime_apis.rs create mode 100644 tracing/3001/runtime/moonbase/tests/xcm_mock/mod.rs create mode 100644 tracing/3001/runtime/moonbase/tests/xcm_mock/parachain.rs create mode 100644 tracing/3001/runtime/moonbase/tests/xcm_mock/relay_chain.rs create mode 100644 tracing/3001/runtime/moonbase/tests/xcm_mock/statemint_like.rs create mode 100644 tracing/3001/runtime/moonbase/tests/xcm_tests.rs create mode 100644 tracing/3001/runtime/moonbeam/Cargo.toml create mode 100644 tracing/3001/runtime/moonbeam/build.rs create mode 100644 tracing/3001/runtime/moonbeam/src/asset_config.rs create mode 100644 tracing/3001/runtime/moonbeam/src/governance/councils.rs create mode 100644 tracing/3001/runtime/moonbeam/src/governance/mod.rs create mode 100644 tracing/3001/runtime/moonbeam/src/governance/origins.rs create mode 100644 tracing/3001/runtime/moonbeam/src/governance/referenda.rs create mode 100644 tracing/3001/runtime/moonbeam/src/governance/tracks.rs create mode 100644 tracing/3001/runtime/moonbeam/src/lib.rs create mode 100644 tracing/3001/runtime/moonbeam/src/migrations.rs create mode 100644 tracing/3001/runtime/moonbeam/src/precompiles.rs create mode 100644 tracing/3001/runtime/moonbeam/src/xcm_config.rs create mode 100644 tracing/3001/runtime/moonbeam/tests/common/mod.rs create mode 100644 tracing/3001/runtime/moonbeam/tests/evm_tracing.rs create mode 100644 tracing/3001/runtime/moonbeam/tests/integration_test.rs create mode 100644 tracing/3001/runtime/moonbeam/tests/runtime_apis.rs create mode 100644 tracing/3001/runtime/moonbeam/tests/xcm_mock/mod.rs create mode 100644 tracing/3001/runtime/moonbeam/tests/xcm_mock/parachain.rs create mode 100644 tracing/3001/runtime/moonbeam/tests/xcm_mock/relay_chain.rs create mode 100644 tracing/3001/runtime/moonbeam/tests/xcm_mock/statemint_like.rs create mode 100644 tracing/3001/runtime/moonbeam/tests/xcm_tests.rs create mode 100644 tracing/3001/runtime/moonriver/Cargo.toml create mode 100644 tracing/3001/runtime/moonriver/build.rs create mode 100644 tracing/3001/runtime/moonriver/src/asset_config.rs create mode 100644 tracing/3001/runtime/moonriver/src/governance/councils.rs create mode 100644 tracing/3001/runtime/moonriver/src/governance/mod.rs create mode 100644 tracing/3001/runtime/moonriver/src/governance/origins.rs create mode 100644 tracing/3001/runtime/moonriver/src/governance/referenda.rs create mode 100644 tracing/3001/runtime/moonriver/src/governance/tracks.rs create mode 100644 tracing/3001/runtime/moonriver/src/lib.rs create mode 100644 tracing/3001/runtime/moonriver/src/migrations.rs create mode 100644 tracing/3001/runtime/moonriver/src/precompiles.rs create mode 100644 tracing/3001/runtime/moonriver/src/xcm_config.rs create mode 100644 tracing/3001/runtime/moonriver/tests/common/mod.rs create mode 100644 tracing/3001/runtime/moonriver/tests/evm_tracing.rs create mode 100644 tracing/3001/runtime/moonriver/tests/integration_test.rs create mode 100644 tracing/3001/runtime/moonriver/tests/runtime_apis.rs create mode 100644 tracing/3001/runtime/moonriver/tests/xcm_mock/mod.rs create mode 100644 tracing/3001/runtime/moonriver/tests/xcm_mock/parachain.rs create mode 100644 tracing/3001/runtime/moonriver/tests/xcm_mock/relay_chain.rs create mode 100644 tracing/3001/runtime/moonriver/tests/xcm_mock/statemine_like.rs create mode 100644 tracing/3001/runtime/moonriver/tests/xcm_tests.rs create mode 100644 tracing/3001/rust-toolchain create mode 100644 tracing/3001/shared/primitives/ext/Cargo.toml create mode 100644 tracing/3001/shared/primitives/ext/src/lib.rs create mode 100644 tracing/3001/shared/primitives/rpc/debug/Cargo.toml create mode 100644 tracing/3001/shared/primitives/rpc/debug/src/lib.rs create mode 100644 tracing/3001/shared/primitives/rpc/evm-tracing-events/Cargo.toml create mode 100644 tracing/3001/shared/primitives/rpc/evm-tracing-events/src/evm.rs create mode 100644 tracing/3001/shared/primitives/rpc/evm-tracing-events/src/gasometer.rs create mode 100644 tracing/3001/shared/primitives/rpc/evm-tracing-events/src/lib.rs create mode 100644 tracing/3001/shared/primitives/rpc/evm-tracing-events/src/runtime.rs create mode 100644 tracing/3001/shared/runtime/evm_tracer/Cargo.toml create mode 100644 tracing/3001/shared/runtime/evm_tracer/src/lib.rs diff --git a/tracing/3001/Cargo.lock b/tracing/3001/Cargo.lock new file mode 100644 index 00000000..d0e70307 --- /dev/null +++ b/tracing/3001/Cargo.lock @@ -0,0 +1,8455 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "Inflector" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" +dependencies = [ + "lazy_static", + "regex", +] + +[[package]] +name = "account" +version = "0.1.1" +source = "git+https://github.com/moonbeam-foundation/moonbeam?rev=runtime-3001#c54b0ac1563840f8fbb18587f045240997728a73" +dependencies = [ + "blake2-rfc", + "impl-serde 0.3.2", + "libsecp256k1", + "log", + "parity-scale-codec", + "scale-info", + "serde", + "sha3", + "sp-core", + "sp-io", + "sp-runtime", + "sp-runtime-interface", + "sp-std", +] + +[[package]] +name = "addr2line" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97" +dependencies = [ + "gimli 0.27.3", +] + +[[package]] +name = "addr2line" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +dependencies = [ + "gimli 0.28.1", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "aead" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" +dependencies = [ + "crypto-common", + "generic-array", +] + +[[package]] +name = "affix" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50e7ea84d3fa2009f355f8429a0b418a96849135a4188fadf384f59127d5d4bc" +dependencies = [ + "convert_case 0.5.0", +] + +[[package]] +name = "ahash" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" +dependencies = [ + "getrandom", + "once_cell", + "version_check", +] + +[[package]] +name = "ahash" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +dependencies = [ + "cfg-if", + "getrandom", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi", +] + +[[package]] +name = "anyhow" +version = "1.0.81" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247" + +[[package]] +name = "approx" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" +dependencies = [ + "num-traits", +] + +[[package]] +name = "aquamarine" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21cc1548309245035eb18aa7f0967da6bc65587005170c56e6ef2788a4cf3f4e" +dependencies = [ + "include_dir", + "itertools", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.58", +] + +[[package]] +name = "ark-bls12-377" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb00293ba84f51ce3bd026bd0de55899c4e68f0a39a5728cebae3a73ffdc0a4f" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-std", +] + +[[package]] +name = "ark-bls12-377-ext" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20c7021f180a0cbea0380eba97c2af3c57074cdaffe0eef7e840e1c9f2841e55" +dependencies = [ + "ark-bls12-377", + "ark-ec", + "ark-models-ext", + "ark-std", +] + +[[package]] +name = "ark-bls12-381" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c775f0d12169cba7aae4caeb547bb6a50781c7449a8aa53793827c9ec4abf488" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-serialize", + "ark-std", +] + +[[package]] +name = "ark-bls12-381-ext" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1dc4b3d08f19e8ec06e949712f95b8361e43f1391d94f65e4234df03480631c" +dependencies = [ + "ark-bls12-381", + "ark-ec", + "ark-ff", + "ark-models-ext", + "ark-serialize", + "ark-std", +] + +[[package]] +name = "ark-bw6-761" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e0605daf0cc5aa2034b78d008aaf159f56901d92a52ee4f6ecdfdac4f426700" +dependencies = [ + "ark-bls12-377", + "ark-ec", + "ark-ff", + "ark-std", +] + +[[package]] +name = "ark-bw6-761-ext" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccee5fba47266f460067588ee1bf070a9c760bf2050c1c509982c5719aadb4f2" +dependencies = [ + "ark-bw6-761", + "ark-ec", + "ark-ff", + "ark-models-ext", + "ark-std", +] + +[[package]] +name = "ark-ec" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" +dependencies = [ + "ark-ff", + "ark-poly", + "ark-serialize", + "ark-std", + "derivative", + "hashbrown 0.13.2", + "itertools", + "num-traits", + "rayon", + "zeroize", +] + +[[package]] +name = "ark-ed-on-bls12-377" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b10d901b9ac4b38f9c32beacedfadcdd64e46f8d7f8e88c1ae1060022cf6f6c6" +dependencies = [ + "ark-bls12-377", + "ark-ec", + "ark-ff", + "ark-std", +] + +[[package]] +name = "ark-ed-on-bls12-377-ext" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524a4fb7540df2e1a8c2e67a83ba1d1e6c3947f4f9342cc2359fc2e789ad731d" +dependencies = [ + "ark-ec", + "ark-ed-on-bls12-377", + "ark-ff", + "ark-models-ext", + "ark-std", +] + +[[package]] +name = "ark-ed-on-bls12-381-bandersnatch" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9cde0f2aa063a2a5c28d39b47761aa102bda7c13c84fc118a61b87c7b2f785c" +dependencies = [ + "ark-bls12-381", + "ark-ec", + "ark-ff", + "ark-std", +] + +[[package]] +name = "ark-ed-on-bls12-381-bandersnatch-ext" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d15185f1acb49a07ff8cbe5f11a1adc5a93b19e211e325d826ae98e98e124346" +dependencies = [ + "ark-ec", + "ark-ed-on-bls12-381-bandersnatch", + "ark-ff", + "ark-models-ext", + "ark-std", +] + +[[package]] +name = "ark-ff" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" +dependencies = [ + "ark-ff-asm", + "ark-ff-macros", + "ark-serialize", + "ark-std", + "derivative", + "digest 0.10.7", + "itertools", + "num-bigint", + "num-traits", + "paste", + "rustc_version", + "zeroize", +] + +[[package]] +name = "ark-ff-asm" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" +dependencies = [ + "num-bigint", + "num-traits", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-models-ext" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e9eab5d4b5ff2f228b763d38442adc9b084b0a465409b059fac5c2308835ec2" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-serialize", + "ark-std", + "derivative", +] + +[[package]] +name = "ark-poly" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" +dependencies = [ + "ark-ff", + "ark-serialize", + "ark-std", + "derivative", + "hashbrown 0.13.2", +] + +[[package]] +name = "ark-scale" +version = "0.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f69c00b3b529be29528a6f2fd5fa7b1790f8bed81b9cdca17e326538545a179" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-serialize", + "ark-std", + "parity-scale-codec", + "scale-info", +] + +[[package]] +name = "ark-secret-scalar" +version = "0.0.2" +source = "git+https://github.com/w3f/ring-vrf?rev=e9782f9#e9782f938629c90f3adb3fff2358bc8d1386af3e" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-serialize", + "ark-std", + "ark-transcript", + "digest 0.10.7", + "getrandom_or_panic", + "zeroize", +] + +[[package]] +name = "ark-serialize" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" +dependencies = [ + "ark-serialize-derive", + "ark-std", + "digest 0.10.7", + "num-bigint", +] + +[[package]] +name = "ark-serialize-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-std" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" +dependencies = [ + "num-traits", + "rand", + "rayon", +] + +[[package]] +name = "ark-transcript" +version = "0.0.2" +source = "git+https://github.com/w3f/ring-vrf?rev=e9782f9#e9782f938629c90f3adb3fff2358bc8d1386af3e" +dependencies = [ + "ark-ff", + "ark-serialize", + "ark-std", + "digest 0.10.7", + "rand_core 0.6.4", + "sha3", +] + +[[package]] +name = "array-bytes" +version = "6.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f840fb7195bcfc5e17ea40c26e5ce6d5b9ce5d584466e17703209657e459ae0" + +[[package]] +name = "arrayref" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" + +[[package]] +name = "arrayvec" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd9fd44efafa8690358b7408d253adf110036b88f55672a933f01d616ad9b1b9" +dependencies = [ + "nodrop", +] + +[[package]] +name = "arrayvec" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" + +[[package]] +name = "assert_matches" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" + +[[package]] +name = "async-backing-primitives" +version = "0.9.0" +source = "git+https://github.com/Moonsong-Labs/moonkit?branch=moonbeam-polkadot-v1.7.2#04d420f376a1445c6636926c87485519a1db3fe1" +dependencies = [ + "sp-api", + "sp-consensus-slots", +] + +[[package]] +name = "async-trait" +version = "0.1.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a507401cad91ec6a857ed5513a2073c82a9b9048762b885bb98655b306964681" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.58", +] + +[[package]] +name = "auto_impl" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.58", +] + +[[package]] +name = "autocfg" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" + +[[package]] +name = "backtrace" +version = "0.3.71" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" +dependencies = [ + "addr2line 0.21.0", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object 0.32.2", + "rustc-demangle", +] + +[[package]] +name = "bandersnatch_vrfs" +version = "0.0.4" +source = "git+https://github.com/w3f/ring-vrf?rev=e9782f9#e9782f938629c90f3adb3fff2358bc8d1386af3e" +dependencies = [ + "ark-bls12-381", + "ark-ec", + "ark-ed-on-bls12-381-bandersnatch", + "ark-ff", + "ark-serialize", + "ark-std", + "dleq_vrf", + "fflonk", + "merlin", + "rand_chacha 0.3.1", + "rand_core 0.6.4", + "ring", + "sha2 0.10.8", + "sp-ark-bls12-381", + "sp-ark-ed-on-bls12-381-bandersnatch", + "zeroize", +] + +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + +[[package]] +name = "bip39" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93f2635620bf0b9d4576eb7bb9a38a55df78bd1205d26fa994b25911a69f212f" +dependencies = [ + "bitcoin_hashes", + "rand", + "rand_core 0.6.4", + "serde", + "unicode-normalization", +] + +[[package]] +name = "bitcoin_hashes" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90064b8dee6815a6470d60bad07bbbaee885c0e12d04177138fa3291a01b7bc4" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" + +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "serde", + "tap", + "wyz", +] + +[[package]] +name = "blake2" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "blake2-rfc" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d6d530bdd2d52966a6d03b7a964add7ae1a288d25214066fd4b600f0f796400" +dependencies = [ + "arrayvec 0.4.12", + "constant_time_eq 0.1.5", +] + +[[package]] +name = "blake2b_simd" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" +dependencies = [ + "arrayref", + "arrayvec 0.7.4", + "constant_time_eq 0.3.0", +] + +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "bounded-collections" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d32385ecb91a31bddaf908e8dcf4a15aef1bcd3913cc03ebfad02ff6d568abc1" +dependencies = [ + "log", + "parity-scale-codec", + "scale-info", + "serde", +] + +[[package]] +name = "bp-xcm-bridge-hub-router" +version = "0.6.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#2073906e7994ca069f7f68120b05474f7565b8d2" +dependencies = [ + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-runtime", +] + +[[package]] +name = "bs58" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "build-helper" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdce191bf3fa4995ce948c8c83b4640a1745457a149e73c6db75b4ffe36aad5f" +dependencies = [ + "semver 0.6.0", +] + +[[package]] +name = "bumpalo" +version = "3.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" + +[[package]] +name = "byte-slice-cast" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" + +[[package]] +name = "bytemuck" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d6d68c57235a3a081186990eca2867354726650f42f7516ca50c28d6281fd15" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" + +[[package]] +name = "camino" +version = "1.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-platform" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.15.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eee4243f1f26fc7a42710e7439c149e2b10b05472f88090acce52632f231a73a" +dependencies = [ + "camino", + "cargo-platform", + "semver 1.0.22", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "case" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd6c0e7b807d60291f42f33f58480c0bfafe28ed08286446f45e463728cf9c1c" + +[[package]] +name = "cc" +version = "1.0.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2678b2e3449475e95b0aa6f9b506a28e61b3dc8996592b983695e8ebb58a8b41" +dependencies = [ + "jobserver", + "libc", +] + +[[package]] +name = "cfg-expr" +version = "0.15.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa50868b64a9a6fda9d593ce778849ea8715cd2a3d2cc17ffdb4a2f2f2f1961d" +dependencies = [ + "smallvec", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chrono" +version = "0.4.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a0d04d43504c61aa6c7531f1871dd0d418d91130162063b789da00fd7057a5e" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "num-traits", + "windows-targets 0.52.4", +] + +[[package]] +name = "codespan-reporting" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +dependencies = [ + "termcolor", + "unicode-width", +] + +[[package]] +name = "common" +version = "0.1.0" +source = "git+https://github.com/w3f/ring-proof#b273d33f9981e2bb3375ab45faeb537f7ee35224" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-poly", + "ark-serialize", + "ark-std", + "fflonk", + "getrandom_or_panic", + "merlin", + "rand_chacha 0.3.1", +] + +[[package]] +name = "common-path" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2382f75942f4b3be3690fe4f86365e9c853c1587d6ee58212cebf6e2a9ccd101" + +[[package]] +name = "console" +version = "0.15.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" +dependencies = [ + "encode_unicode", + "lazy_static", + "libc", + "unicode-width", + "windows-sys 0.52.0", +] + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "const-random" +version = "0.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359" +dependencies = [ + "const-random-macro", +] + +[[package]] +name = "const-random-macro" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" +dependencies = [ + "getrandom", + "once_cell", + "tiny-keccak", +] + +[[package]] +name = "constant_time_eq" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" + +[[package]] +name = "constant_time_eq" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" + +[[package]] +name = "constcat" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd7e35aee659887cbfb97aaf227ac12cad1a9d7c71e55ff3376839ed4e282d08" + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "convert_case" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb4a24b1aaf0fd0ce8b45161144d6f42cd91677fd5940fd431183eb023b3a2b8" + +[[package]] +name = "core-foundation-sys" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" + +[[package]] +name = "cpp_demangle" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eeaa953eaad386a53111e47172c2fedba671e5684c8dd601a5f474f4f118710f" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "cpufeatures" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +dependencies = [ + "libc", +] + +[[package]] +name = "cranelift-entity" +version = "0.95.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40099d38061b37e505e63f89bab52199037a72b931ad4868d9089ff7268660b0" +dependencies = [ + "serde", +] + +[[package]] +name = "crc32fast" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + +[[package]] +name = "crypto-bigint" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "typenum", +] + +[[package]] +name = "crypto-mac" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" +dependencies = [ + "generic-array", + "subtle", +] + +[[package]] +name = "crypto-mac" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25fab6889090c8133f3deb8f73ba3c65a7f456f66436fc012a1b1e272b1e103e" +dependencies = [ + "generic-array", + "subtle", +] + +[[package]] +name = "cumulus-pallet-dmp-queue" +version = "0.7.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#2073906e7994ca069f7f68120b05474f7565b8d2" +dependencies = [ + "cumulus-primitives-core", + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-io", + "sp-runtime", + "sp-std", + "staging-xcm", +] + +[[package]] +name = "cumulus-pallet-parachain-system" +version = "0.7.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "bytes", + "cumulus-pallet-parachain-system-proc-macro", + "cumulus-primitives-core", + "cumulus-primitives-parachain-inherent", + "cumulus-primitives-proof-size-hostfunction", + "environmental", + "frame-benchmarking", + "frame-support", + "frame-system", + "impl-trait-for-tuples", + "log", + "pallet-message-queue", + "parity-scale-codec", + "polkadot-parachain-primitives", + "polkadot-runtime-parachains", + "scale-info", + "sp-core", + "sp-externalities", + "sp-inherents", + "sp-io", + "sp-runtime", + "sp-state-machine", + "sp-std", + "sp-trie", + "sp-version", + "staging-xcm", + "trie-db", +] + +[[package]] +name = "cumulus-pallet-parachain-system-proc-macro" +version = "0.6.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 2.0.58", +] + +[[package]] +name = "cumulus-pallet-xcm" +version = "0.7.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#2073906e7994ca069f7f68120b05474f7565b8d2" +dependencies = [ + "cumulus-primitives-core", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-io", + "sp-runtime", + "sp-std", + "staging-xcm", +] + +[[package]] +name = "cumulus-pallet-xcmp-queue" +version = "0.7.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#2073906e7994ca069f7f68120b05474f7565b8d2" +dependencies = [ + "bounded-collections", + "bp-xcm-bridge-hub-router", + "cumulus-primitives-core", + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "pallet-message-queue", + "parity-scale-codec", + "polkadot-runtime-common", + "polkadot-runtime-parachains", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "staging-xcm", + "staging-xcm-executor", +] + +[[package]] +name = "cumulus-primitives-core" +version = "0.7.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "parity-scale-codec", + "polkadot-core-primitives", + "polkadot-parachain-primitives", + "polkadot-primitives", + "scale-info", + "sp-api", + "sp-runtime", + "sp-std", + "sp-trie", + "staging-xcm", +] + +[[package]] +name = "cumulus-primitives-parachain-inherent" +version = "0.7.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "async-trait", + "cumulus-primitives-core", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-inherents", + "sp-std", + "sp-trie", +] + +[[package]] +name = "cumulus-primitives-proof-size-hostfunction" +version = "0.2.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "sp-externalities", + "sp-runtime-interface", + "sp-trie", +] + +[[package]] +name = "cumulus-primitives-timestamp" +version = "0.7.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#2073906e7994ca069f7f68120b05474f7565b8d2" +dependencies = [ + "cumulus-primitives-core", + "futures", + "parity-scale-codec", + "sp-inherents", + "sp-std", + "sp-timestamp", +] + +[[package]] +name = "cumulus-primitives-utility" +version = "0.7.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#2073906e7994ca069f7f68120b05474f7565b8d2" +dependencies = [ + "cumulus-primitives-core", + "frame-support", + "log", + "pallet-asset-conversion", + "pallet-xcm-benchmarks", + "parity-scale-codec", + "polkadot-runtime-common", + "polkadot-runtime-parachains", + "sp-io", + "sp-runtime", + "sp-std", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", +] + +[[package]] +name = "curve25519-dalek" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b9fdf9972b2bd6af2d913799d9ebc165ea4d2e65878e329d9c6b372c4491b61" +dependencies = [ + "byteorder", + "digest 0.9.0", + "rand_core 0.5.1", + "subtle", + "zeroize", +] + +[[package]] +name = "curve25519-dalek" +version = "4.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a677b8922c94e01bdbb12126b0bc852f00447528dee1782229af9c720c3f348" +dependencies = [ + "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", + "digest 0.10.7", + "fiat-crypto", + "platforms", + "rustc_version", + "subtle", + "zeroize", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.58", +] + +[[package]] +name = "cxx" +version = "1.0.121" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21db378d04296a84d8b7d047c36bb3954f0b46529db725d7e62fb02f9ba53ccc" +dependencies = [ + "cc", + "cxxbridge-flags", + "cxxbridge-macro", + "link-cplusplus", +] + +[[package]] +name = "cxx-build" +version = "1.0.121" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e5262a7fa3f0bae2a55b767c223ba98032d7c328f5c13fa5cdc980b77fc0658" +dependencies = [ + "cc", + "codespan-reporting", + "once_cell", + "proc-macro2", + "quote", + "scratch", + "syn 2.0.58", +] + +[[package]] +name = "cxxbridge-flags" +version = "1.0.121" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be8dcadd2e2fb4a501e1d9e93d6e88e6ea494306d8272069c92d5a9edf8855c0" + +[[package]] +name = "cxxbridge-macro" +version = "1.0.121" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad08a837629ad949b73d032c637653d069e909cffe4ee7870b02301939ce39cc" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.58", +] + +[[package]] +name = "der" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" +dependencies = [ + "const-oid", + "zeroize", +] + +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2", + "quote", + "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-syn-parse" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d65d7ce8132b7c0e54497a4d9a55a1c2a0912a0d786cf894472ba818fba45762" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.58", +] + +[[package]] +name = "derive_more" +version = "0.99.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +dependencies = [ + "convert_case 0.4.0", + "proc-macro2", + "quote", + "rustc_version", + "syn 1.0.109", +] + +[[package]] +name = "digest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +dependencies = [ + "generic-array", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer 0.10.4", + "const-oid", + "crypto-common", + "subtle", +] + +[[package]] +name = "dleq_vrf" +version = "0.0.2" +source = "git+https://github.com/w3f/ring-vrf?rev=e9782f9#e9782f938629c90f3adb3fff2358bc8d1386af3e" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-scale", + "ark-secret-scalar", + "ark-serialize", + "ark-std", + "ark-transcript", + "arrayvec 0.7.4", + "zeroize", +] + +[[package]] +name = "docify" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a2f138ad521dc4a2ced1a4576148a6a610b4c5923933b062a263130a6802ce" +dependencies = [ + "docify_macros", +] + +[[package]] +name = "docify_macros" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a081e51fb188742f5a7a1164ad752121abcb22874b21e2c3b0dd040c515fdad" +dependencies = [ + "common-path", + "derive-syn-parse 0.2.0", + "once_cell", + "proc-macro2", + "quote", + "regex", + "syn 2.0.58", + "termcolor", + "toml", + "walkdir", +] + +[[package]] +name = "dyn-clonable" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e9232f0e607a262ceb9bd5141a3dfb3e4db6994b31989bbfd845878cba59fd4" +dependencies = [ + "dyn-clonable-impl", + "dyn-clone", +] + +[[package]] +name = "dyn-clonable-impl" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "558e40ea573c374cf53507fd240b7ee2f5477df7cfebdb97323ec61c719399c5" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "dyn-clone" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" + +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der", + "digest 0.10.7", + "elliptic-curve", + "rfc6979", + "signature", + "spki", +] + +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "pkcs8", + "signature", +] + +[[package]] +name = "ed25519-dalek" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" +dependencies = [ + "curve25519-dalek 4.1.2", + "ed25519", + "serde", + "sha2 0.10.8", + "subtle", + "zeroize", +] + +[[package]] +name = "ed25519-zebra" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c24f403d068ad0b359e577a77f92392118be3f3c927538f2bb544a5ecd828c6" +dependencies = [ + "curve25519-dalek 3.2.0", + "hashbrown 0.12.3", + "hex", + "rand_core 0.6.4", + "sha2 0.9.9", + "zeroize", +] + +[[package]] +name = "either" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a" + +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct", + "crypto-bigint", + "digest 0.10.7", + "ff", + "generic-array", + "group", + "pkcs8", + "rand_core 0.6.4", + "sec1", + "subtle", + "zeroize", +] + +[[package]] +name = "encode_unicode" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" + +[[package]] +name = "enumflags2" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3278c9d5fb675e0a51dabcf4c0d355f692b064171535ba72361be1528a9d8e8d" +dependencies = [ + "enumflags2_derive", +] + +[[package]] +name = "enumflags2_derive" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.58", +] + +[[package]] +name = "enumn" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fd000fd6988e73bbe993ea3db9b1aa64906ab88766d654973924340c8cddb42" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.58", +] + +[[package]] +name = "environmental" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e48c92028aaa870e83d51c64e5d4e0b6981b360c522198c23959f219a4e1b15b" + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "errno" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "ethbloom" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60" +dependencies = [ + "crunchy", + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde 0.4.0", + "scale-info", + "tiny-keccak", +] + +[[package]] +name = "ethereum" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e04d24d20b8ff2235cffbf242d5092de3aa45f77c5270ddbfadd2778ca13fea" +dependencies = [ + "bytes", + "ethereum-types", + "hash-db", + "hash256-std-hasher", + "parity-scale-codec", + "rlp", + "scale-info", + "serde", + "sha3", + "trie-root", +] + +[[package]] +name = "ethereum-types" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee" +dependencies = [ + "ethbloom", + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde 0.4.0", + "primitive-types", + "scale-info", + "uint", +] + +[[package]] +name = "evm" +version = "0.41.1" +source = "git+https://github.com/moonbeam-foundation/evm?branch=moonbeam-polkadot-v1.7.2#fd602351387b3a3745110e93a66eab9be59fb801" +dependencies = [ + "auto_impl", + "environmental", + "ethereum", + "evm-core", + "evm-gasometer", + "evm-runtime", + "log", + "parity-scale-codec", + "primitive-types", + "rlp", + "scale-info", + "serde", + "sha3", +] + +[[package]] +name = "evm-core" +version = "0.41.0" +source = "git+https://github.com/moonbeam-foundation/evm?branch=moonbeam-polkadot-v1.7.2#fd602351387b3a3745110e93a66eab9be59fb801" +dependencies = [ + "parity-scale-codec", + "primitive-types", + "scale-info", + "serde", +] + +[[package]] +name = "evm-gasometer" +version = "0.41.0" +source = "git+https://github.com/moonbeam-foundation/evm?branch=moonbeam-polkadot-v1.7.2#fd602351387b3a3745110e93a66eab9be59fb801" +dependencies = [ + "environmental", + "evm-core", + "evm-runtime", + "primitive-types", +] + +[[package]] +name = "evm-runtime" +version = "0.41.0" +source = "git+https://github.com/moonbeam-foundation/evm?branch=moonbeam-polkadot-v1.7.2#fd602351387b3a3745110e93a66eab9be59fb801" +dependencies = [ + "auto_impl", + "environmental", + "evm-core", + "primitive-types", + "sha3", +] + +[[package]] +name = "evm-tracing-events" +version = "0.1.0" +dependencies = [ + "environmental", + "ethereum", + "ethereum-types", + "evm", + "evm-gasometer", + "evm-runtime", + "parity-scale-codec", + "sp-runtime-interface", +] + +[[package]] +name = "expander" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f86a749cf851891866c10515ef6c299b5c69661465e9c3bbe7e07a2b77fb0f7" +dependencies = [ + "blake2", + "fs-err", + "proc-macro2", + "quote", + "syn 2.0.58", +] + +[[package]] +name = "fallible-iterator" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" + +[[package]] +name = "faster-hex" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51e2ce894d53b295cf97b05685aa077950ff3e8541af83217fc720a6437169f8" + +[[package]] +name = "fastrand" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984" + +[[package]] +name = "ff" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" +dependencies = [ + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "fflonk" +version = "0.1.0" +source = "git+https://github.com/w3f/fflonk#1e854f35e9a65d08b11a86291405cdc95baa0a35" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-poly", + "ark-serialize", + "ark-std", + "merlin", +] + +[[package]] +name = "fiat-crypto" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c007b1ae3abe1cb6f85a16305acd418b7ca6343b953633fee2b76d8f108b830f" + +[[package]] +name = "filetime" +version = "0.2.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "windows-sys 0.52.0", +] + +[[package]] +name = "fixed-hash" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" +dependencies = [ + "byteorder", + "rand", + "rustc-hex", + "static_assertions", +] + +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "fp-account" +version = "1.0.0-dev" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-v1.7.2#7f424fb9fc1ca9158a59be54cb183beaff9f799a" +dependencies = [ + "hex", + "impl-serde 0.4.0", + "libsecp256k1", + "log", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-io", + "sp-runtime", + "sp-runtime-interface", + "sp-std", +] + +[[package]] +name = "fp-consensus" +version = "2.0.0-dev" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-v1.7.2#7f424fb9fc1ca9158a59be54cb183beaff9f799a" +dependencies = [ + "ethereum", + "parity-scale-codec", + "sp-core", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "fp-ethereum" +version = "1.0.0-dev" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-v1.7.2#7f424fb9fc1ca9158a59be54cb183beaff9f799a" +dependencies = [ + "ethereum", + "ethereum-types", + "fp-evm", + "frame-support", + "parity-scale-codec", + "sp-std", +] + +[[package]] +name = "fp-evm" +version = "3.0.0-dev" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-v1.7.2#7f424fb9fc1ca9158a59be54cb183beaff9f799a" +dependencies = [ + "evm", + "frame-support", + "num_enum 0.7.2", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "fp-rpc" +version = "3.0.0-dev" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-v1.7.2#7f424fb9fc1ca9158a59be54cb183beaff9f799a" +dependencies = [ + "ethereum", + "ethereum-types", + "fp-evm", + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-core", + "sp-runtime", + "sp-state-machine", + "sp-std", +] + +[[package]] +name = "fp-self-contained" +version = "1.0.0-dev" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-v1.7.2#7f424fb9fc1ca9158a59be54cb183beaff9f799a" +dependencies = [ + "frame-support", + "parity-scale-codec", + "scale-info", + "serde", + "sp-runtime", +] + +[[package]] +name = "fp-storage" +version = "2.0.0" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-v1.7.2#7f424fb9fc1ca9158a59be54cb183beaff9f799a" +dependencies = [ + "parity-scale-codec", + "serde", +] + +[[package]] +name = "frame-benchmarking" +version = "28.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "frame-support", + "frame-support-procedural", + "frame-system", + "linregress", + "log", + "parity-scale-codec", + "paste", + "scale-info", + "serde", + "sp-api", + "sp-application-crypto", + "sp-core", + "sp-io", + "sp-runtime", + "sp-runtime-interface", + "sp-std", + "sp-storage", + "static_assertions", +] + +[[package]] +name = "frame-election-provider-solution-type" +version = "13.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 2.0.58", +] + +[[package]] +name = "frame-election-provider-support" +version = "28.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "frame-election-provider-solution-type", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-arithmetic", + "sp-core", + "sp-npos-elections", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "frame-executive" +version = "28.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#2073906e7994ca069f7f68120b05474f7565b8d2" +dependencies = [ + "frame-support", + "frame-system", + "frame-try-runtime", + "log", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "sp-tracing", +] + +[[package]] +name = "frame-metadata" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cf1549fba25a6fcac22785b61698317d958e96cac72a59102ea45b9ae64692" +dependencies = [ + "cfg-if", + "parity-scale-codec", + "scale-info", + "serde", +] + +[[package]] +name = "frame-support" +version = "28.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "aquamarine", + "array-bytes", + "bitflags 1.3.2", + "docify", + "environmental", + "frame-metadata", + "frame-support-procedural", + "impl-trait-for-tuples", + "k256", + "log", + "macro_magic", + "parity-scale-codec", + "paste", + "scale-info", + "serde", + "serde_json", + "smallvec", + "sp-api", + "sp-arithmetic", + "sp-core", + "sp-crypto-hashing-proc-macro", + "sp-debug-derive", + "sp-genesis-builder", + "sp-inherents", + "sp-io", + "sp-metadata-ir", + "sp-runtime", + "sp-staking", + "sp-state-machine", + "sp-std", + "sp-tracing", + "sp-weights", + "static_assertions", + "tt-call", +] + +[[package]] +name = "frame-support-procedural" +version = "23.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "Inflector", + "cfg-expr", + "derive-syn-parse 0.1.5", + "expander", + "frame-support-procedural-tools", + "itertools", + "macro_magic", + "proc-macro-warning", + "proc-macro2", + "quote", + "sp-crypto-hashing", + "syn 2.0.58", +] + +[[package]] +name = "frame-support-procedural-tools" +version = "10.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "frame-support-procedural-tools-derive", + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 2.0.58", +] + +[[package]] +name = "frame-support-procedural-tools-derive" +version = "11.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.58", +] + +[[package]] +name = "frame-system" +version = "28.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "cfg-if", + "docify", + "frame-support", + "log", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "sp-version", + "sp-weights", +] + +[[package]] +name = "frame-system-benchmarking" +version = "28.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#2073906e7994ca069f7f68120b05474f7565b8d2" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "frame-system-rpc-runtime-api" +version = "26.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#2073906e7994ca069f7f68120b05474f7565b8d2" +dependencies = [ + "parity-scale-codec", + "sp-api", +] + +[[package]] +name = "frame-try-runtime" +version = "0.34.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#2073906e7994ca069f7f68120b05474f7565b8d2" +dependencies = [ + "frame-support", + "parity-scale-codec", + "sp-api", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "fs-err" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88a41f105fe1d5b6b34b2055e3dc59bb79b46b48b2040b9e6c7b4b5de097aa41" +dependencies = [ + "autocfg", +] + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "futures" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" + +[[package]] +name = "futures-executor" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", + "num_cpus", +] + +[[package]] +name = "futures-io" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" + +[[package]] +name = "futures-macro" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.58", +] + +[[package]] +name = "futures-sink" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" + +[[package]] +name = "futures-task" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" + +[[package]] +name = "futures-util" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", + "zeroize", +] + +[[package]] +name = "getrandom" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + +[[package]] +name = "getrandom_or_panic" +version = "0.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ea1015b5a70616b688dc230cfe50c8af89d972cb132d5a622814d29773b10b9" +dependencies = [ + "rand", + "rand_core 0.6.4", +] + +[[package]] +name = "gimli" +version = "0.27.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e" +dependencies = [ + "fallible-iterator", + "indexmap 1.9.3", + "stable_deref_trait", +] + +[[package]] +name = "gimli" +version = "0.28.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff", + "rand_core 0.6.4", + "subtle", +] + +[[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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92c171d55b98633f4ed3860808f004099b36c1cc29c42cfc53aa8591b21efcf2" +dependencies = [ + "crunchy", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +dependencies = [ + "ahash 0.7.8", +] + +[[package]] +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +dependencies = [ + "ahash 0.8.11", +] + +[[package]] +name = "hashbrown" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "hermit-abi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +dependencies = [ + "serde", +] + +[[package]] +name = "hex-literal" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ebdb29d2ea9ed0083cd8cece49bbd968021bd99b0849edb4a9a7ee0fdf6a4e0" + +[[package]] +name = "hex-literal" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" + +[[package]] +name = "hmac" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "126888268dcc288495a26bf004b38c5fdbb31682f992c84ceb046a1f0fe38840" +dependencies = [ + "crypto-mac 0.8.0", + "digest 0.9.0", +] + +[[package]] +name = "hmac" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b" +dependencies = [ + "crypto-mac 0.11.0", + "digest 0.9.0", +] + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "hmac-drbg" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17ea0a1394df5b6574da6e0c1ade9e78868c9fb0a4e5ef4428e32da4676b85b1" +dependencies = [ + "digest 0.9.0", + "generic-array", + "hmac 0.8.1", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "idna" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "impl-codec" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" +dependencies = [ + "parity-scale-codec", +] + +[[package]] +name = "impl-rlp" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" +dependencies = [ + "rlp", +] + +[[package]] +name = "impl-serde" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4551f042f3438e64dbd6226b20527fc84a6e1fe65688b58746a2f53623f25f5c" +dependencies = [ + "serde", +] + +[[package]] +name = "impl-serde" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" +dependencies = [ + "serde", +] + +[[package]] +name = "impl-trait-for-tuples" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "include_dir" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18762faeff7122e89e0857b02f7ce6fcc0d101d5e9ad2ad7846cc01d61b7f19e" +dependencies = [ + "include_dir_macros", +] + +[[package]] +name = "include_dir_macros" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b139284b5cf57ecfa712bcc66950bb635b31aff41c188e8a4cfc758eca374a3f" +dependencies = [ + "proc-macro2", + "quote", +] + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +dependencies = [ + "equivalent", + "hashbrown 0.14.3", +] + +[[package]] +name = "integer-sqrt" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "276ec31bcb4a9ee45f58bec6f9ec700ae4cf4f4f8f2fa7e06cb406bd5ffdd770" +dependencies = [ + "num-traits", +] + +[[package]] +name = "io-lifetimes" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" +dependencies = [ + "hermit-abi", + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" + +[[package]] +name = "jobserver" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6" +dependencies = [ + "libc", +] + +[[package]] +name = "js-sys" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "k256" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" +dependencies = [ + "cfg-if", + "ecdsa", + "elliptic-curve", + "once_cell", + "sha2 0.10.8", +] + +[[package]] +name = "keccak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +dependencies = [ + "cpufeatures", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +dependencies = [ + "spin", +] + +[[package]] +name = "libc" +version = "0.2.153" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" + +[[package]] +name = "libsecp256k1" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95b09eff1b35ed3b33b877ced3a691fc7a481919c7e29c53c906226fcf55e2a1" +dependencies = [ + "arrayref", + "base64", + "digest 0.9.0", + "hmac-drbg", + "libsecp256k1-core", + "libsecp256k1-gen-ecmult", + "libsecp256k1-gen-genmult", + "rand", + "serde", + "sha2 0.9.9", + "typenum", +] + +[[package]] +name = "libsecp256k1-core" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451" +dependencies = [ + "crunchy", + "digest 0.9.0", + "subtle", +] + +[[package]] +name = "libsecp256k1-gen-ecmult" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3038c808c55c87e8a172643a7d87187fc6c4174468159cb3090659d55bcb4809" +dependencies = [ + "libsecp256k1-core", +] + +[[package]] +name = "libsecp256k1-gen-genmult" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db8d6ba2cec9eacc40e6e8ccc98931840301f1006e95647ceb2dd5c3aa06f7c" +dependencies = [ + "libsecp256k1-core", +] + +[[package]] +name = "link-cplusplus" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d240c6f7e1ba3a28b0249f774e6a9dd0175054b52dfbb61b16eb8505c3785c9" +dependencies = [ + "cc", +] + +[[package]] +name = "linregress" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4de04dcecc58d366391f9920245b85ffa684558a5ef6e7736e754347c3aea9c2" +dependencies = [ + "nalgebra", +] + +[[package]] +name = "linux-raw-sys" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" + +[[package]] +name = "linux-raw-sys" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" + +[[package]] +name = "lock_api" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" + +[[package]] +name = "mach" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" +dependencies = [ + "libc", +] + +[[package]] +name = "macro_magic" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e03844fc635e92f3a0067e25fa4bf3e3dbf3f2927bf3aa01bb7bc8f1c428949d" +dependencies = [ + "macro_magic_core", + "macro_magic_macros", + "quote", + "syn 2.0.58", +] + +[[package]] +name = "macro_magic_core" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "468155613a44cfd825f1fb0ffa532b018253920d404e6fca1e8d43155198a46d" +dependencies = [ + "const-random", + "derive-syn-parse 0.1.5", + "macro_magic_core_macros", + "proc-macro2", + "quote", + "syn 2.0.58", +] + +[[package]] +name = "macro_magic_core_macros" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ea73aa640dc01d62a590d48c0c3521ed739d53b27f919b25c3551e233481654" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.58", +] + +[[package]] +name = "macro_magic_macros" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef9d79ae96aaba821963320eb2b6e34d17df1e5a83d8a1985c29cc5be59577b3" +dependencies = [ + "macro_magic_core", + "quote", + "syn 2.0.58", +] + +[[package]] +name = "matchers" +version = "0.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f099785f7595cc4b4553a174ce30dd7589ef93391ff414dbb67f62392b9e0ce1" +dependencies = [ + "regex-automata 0.1.10", +] + +[[package]] +name = "matrixmultiply" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7574c1cf36da4798ab73da5b215bbf444f50718207754cb522201d78d1cd0ff2" +dependencies = [ + "autocfg", + "rawpointer", +] + +[[package]] +name = "memchr" +version = "2.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" + +[[package]] +name = "memfd" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2cffa4ad52c6f791f4f8b15f0c05f9824b2ced1160e88cc393d64fff9a8ac64" +dependencies = [ + "rustix 0.38.32", +] + +[[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.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "808b50db46293432a45e63bc15ea51e0ab4c0a1647b8eb114e31a3e698dd6fbe" +dependencies = [ + "hash-db", +] + +[[package]] +name = "merlin" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58c38e2799fc0978b65dfff8023ec7843e2330bb462f19198840b34b6582397d" +dependencies = [ + "byteorder", + "keccak", + "rand_core 0.6.4", + "zeroize", +] + +[[package]] +name = "miniz_oxide" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" +dependencies = [ + "adler", +] + +[[package]] +name = "moonbase-runtime" +version = "0.8.4" +dependencies = [ + "account", + "async-backing-primitives", + "cumulus-pallet-dmp-queue", + "cumulus-pallet-parachain-system", + "cumulus-pallet-xcm", + "cumulus-pallet-xcmp-queue", + "cumulus-primitives-core", + "cumulus-primitives-timestamp", + "cumulus-primitives-utility", + "evm-tracing-events", + "fp-evm", + "fp-rpc", + "fp-self-contained", + "frame-benchmarking", + "frame-executive", + "frame-support", + "frame-system", + "frame-system-benchmarking", + "frame-system-rpc-runtime-api", + "frame-try-runtime", + "hex-literal 0.3.4", + "log", + "moonbeam-core-primitives", + "moonbeam-evm-tracer", + "moonbeam-relay-encoder", + "moonbeam-rpc-primitives-debug", + "moonbeam-rpc-primitives-txpool", + "moonbeam-runtime-common 0.8.0-dev", + "moonbeam-xcm-benchmarks", + "nimbus-primitives", + "num_enum 0.5.11", + "orml-traits", + "orml-xcm-support", + "orml-xtokens", + "pallet-asset-manager", + "pallet-assets", + "pallet-async-backing", + "pallet-author-inherent", + "pallet-author-mapping", + "pallet-author-slot-filter", + "pallet-balances", + "pallet-collective", + "pallet-conviction-voting", + "pallet-crowdloan-rewards", + "pallet-emergency-para-xcm", + "pallet-erc20-xcm-bridge", + "pallet-ethereum", + "pallet-ethereum-xcm", + "pallet-evm", + "pallet-evm-chain-id", + "pallet-evm-precompile-author-mapping", + "pallet-evm-precompile-balances-erc20", + "pallet-evm-precompile-batch", + "pallet-evm-precompile-blake2", + "pallet-evm-precompile-bn128", + "pallet-evm-precompile-call-permit", + "pallet-evm-precompile-collective", + "pallet-evm-precompile-conviction-voting", + "pallet-evm-precompile-crowdloan-rewards", + "pallet-evm-precompile-dispatch", + "pallet-evm-precompile-gmp", + "pallet-evm-precompile-identity", + "pallet-evm-precompile-modexp", + "pallet-evm-precompile-parachain-staking", + "pallet-evm-precompile-preimage", + "pallet-evm-precompile-proxy", + "pallet-evm-precompile-randomness", + "pallet-evm-precompile-referenda", + "pallet-evm-precompile-registry", + "pallet-evm-precompile-relay-encoder", + "pallet-evm-precompile-relay-verifier", + "pallet-evm-precompile-sha3fips", + "pallet-evm-precompile-simple", + "pallet-evm-precompile-storage-cleaner", + "pallet-evm-precompile-xcm", + "pallet-evm-precompile-xcm-transactor", + "pallet-evm-precompile-xcm-utils", + "pallet-evm-precompile-xtokens", + "pallet-evm-precompileset-assets-erc20", + "pallet-identity", + "pallet-maintenance-mode", + "pallet-message-queue", + "pallet-migrations", + "pallet-moonbeam-lazy-migrations", + "pallet-moonbeam-orbiters", + "pallet-multisig", + "pallet-parachain-staking", + "pallet-precompile-benchmarks", + "pallet-preimage", + "pallet-proxy", + "pallet-proxy-genesis-companion", + "pallet-randomness", + "pallet-referenda", + "pallet-relay-storage-roots", + "pallet-root-testing", + "pallet-scheduler", + "pallet-society", + "pallet-sudo", + "pallet-timestamp", + "pallet-transaction-payment", + "pallet-transaction-payment-rpc-runtime-api", + "pallet-treasury", + "pallet-utility", + "pallet-whitelist", + "pallet-xcm", + "pallet-xcm-benchmarks", + "pallet-xcm-transactor", + "parachains-common", + "parity-scale-codec", + "polkadot-core-primitives", + "polkadot-parachain-primitives", + "polkadot-runtime-common", + "precompile-utils 0.1.1", + "rlp", + "scale-info", + "serde", + "session-keys-primitives", + "sha3", + "smallvec", + "sp-api", + "sp-block-builder", + "sp-consensus-slots", + "sp-core", + "sp-debug-derive", + "sp-genesis-builder", + "sp-inherents", + "sp-io", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-std", + "sp-transaction-pool", + "sp-version", + "sp-weights", + "staging-parachain-info", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", + "strum", + "strum_macros", + "substrate-wasm-builder", + "xcm-primitives 0.1.0", + "xcm-primitives 0.1.1", +] + +[[package]] +name = "moonbeam-core-primitives" +version = "0.1.1" +source = "git+https://github.com/moonbeam-foundation/moonbeam?rev=runtime-3001#c54b0ac1563840f8fbb18587f045240997728a73" +dependencies = [ + "account", + "fp-self-contained", + "hex-literal 0.3.4", + "sp-core", + "sp-runtime", +] + +[[package]] +name = "moonbeam-evm-tracer" +version = "0.1.0" +dependencies = [ + "ethereum-types", + "evm", + "evm-gasometer", + "evm-runtime", + "evm-tracing-events", + "fp-evm", + "moonbeam-primitives-ext", + "pallet-evm", + "parity-scale-codec", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "moonbeam-primitives-ext" +version = "0.1.0" +dependencies = [ + "ethereum-types", + "evm-tracing-events", + "parity-scale-codec", + "sp-externalities", + "sp-runtime-interface", + "sp-std", +] + +[[package]] +name = "moonbeam-relay-encoder" +version = "0.1.0" +source = "git+https://github.com/moonbeam-foundation/moonbeam?rev=runtime-3001#c54b0ac1563840f8fbb18587f045240997728a73" +dependencies = [ + "cumulus-primitives-core", + "frame-system", + "pallet-evm-precompile-relay-encoder", + "pallet-staking", + "pallet-xcm-transactor", + "parity-scale-codec", + "sp-io", + "sp-runtime", + "sp-std", + "staging-xcm", + "xcm-primitives 0.1.1", +] + +[[package]] +name = "moonbeam-rpc-primitives-debug" +version = "0.1.0" +dependencies = [ + "environmental", + "ethereum", + "ethereum-types", + "hex", + "parity-scale-codec", + "serde", + "sp-api", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "moonbeam-rpc-primitives-txpool" +version = "0.6.0" +source = "git+https://github.com/moonbeam-foundation/moonbeam?rev=runtime-3001#c54b0ac1563840f8fbb18587f045240997728a73" +dependencies = [ + "ethereum", + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "moonbeam-runtime" +version = "0.8.4" +dependencies = [ + "account", + "async-backing-primitives", + "cumulus-pallet-dmp-queue", + "cumulus-pallet-parachain-system", + "cumulus-pallet-xcm", + "cumulus-pallet-xcmp-queue", + "cumulus-primitives-core", + "cumulus-primitives-timestamp", + "cumulus-primitives-utility", + "evm-tracing-events", + "fp-evm", + "fp-rpc", + "fp-self-contained", + "frame-benchmarking", + "frame-executive", + "frame-support", + "frame-system", + "frame-system-benchmarking", + "frame-system-rpc-runtime-api", + "frame-try-runtime", + "hex-literal 0.3.4", + "log", + "moonbeam-core-primitives", + "moonbeam-evm-tracer", + "moonbeam-relay-encoder", + "moonbeam-rpc-primitives-debug", + "moonbeam-rpc-primitives-txpool", + "moonbeam-runtime-common 0.8.0-dev", + "moonbeam-xcm-benchmarks", + "nimbus-primitives", + "num_enum 0.5.11", + "orml-traits", + "orml-xcm-support", + "orml-xtokens", + "pallet-asset-manager", + "pallet-assets", + "pallet-async-backing", + "pallet-author-inherent", + "pallet-author-mapping", + "pallet-author-slot-filter", + "pallet-balances", + "pallet-collective", + "pallet-conviction-voting", + "pallet-crowdloan-rewards", + "pallet-erc20-xcm-bridge", + "pallet-ethereum", + "pallet-ethereum-xcm", + "pallet-evm", + "pallet-evm-chain-id", + "pallet-evm-precompile-author-mapping", + "pallet-evm-precompile-balances-erc20", + "pallet-evm-precompile-batch", + "pallet-evm-precompile-blake2", + "pallet-evm-precompile-bn128", + "pallet-evm-precompile-call-permit", + "pallet-evm-precompile-collective", + "pallet-evm-precompile-conviction-voting", + "pallet-evm-precompile-crowdloan-rewards", + "pallet-evm-precompile-dispatch", + "pallet-evm-precompile-gmp", + "pallet-evm-precompile-identity", + "pallet-evm-precompile-modexp", + "pallet-evm-precompile-parachain-staking", + "pallet-evm-precompile-preimage", + "pallet-evm-precompile-proxy", + "pallet-evm-precompile-randomness", + "pallet-evm-precompile-referenda", + "pallet-evm-precompile-registry", + "pallet-evm-precompile-relay-encoder", + "pallet-evm-precompile-relay-verifier", + "pallet-evm-precompile-sha3fips", + "pallet-evm-precompile-simple", + "pallet-evm-precompile-xcm-transactor", + "pallet-evm-precompile-xcm-utils", + "pallet-evm-precompile-xtokens", + "pallet-evm-precompileset-assets-erc20", + "pallet-identity", + "pallet-maintenance-mode", + "pallet-message-queue", + "pallet-migrations", + "pallet-moonbeam-lazy-migrations", + "pallet-moonbeam-orbiters", + "pallet-multisig", + "pallet-parachain-staking", + "pallet-precompile-benchmarks", + "pallet-preimage", + "pallet-proxy", + "pallet-proxy-genesis-companion", + "pallet-randomness", + "pallet-referenda", + "pallet-relay-storage-roots", + "pallet-root-testing", + "pallet-scheduler", + "pallet-society", + "pallet-timestamp", + "pallet-transaction-payment", + "pallet-transaction-payment-rpc-runtime-api", + "pallet-treasury", + "pallet-utility", + "pallet-whitelist", + "pallet-xcm", + "pallet-xcm-benchmarks", + "pallet-xcm-transactor", + "parachains-common", + "parity-scale-codec", + "polkadot-core-primitives", + "polkadot-parachain-primitives", + "polkadot-runtime-common", + "precompile-utils 0.1.1", + "rlp", + "scale-info", + "serde", + "session-keys-primitives", + "sha3", + "smallvec", + "sp-api", + "sp-block-builder", + "sp-consensus-slots", + "sp-core", + "sp-genesis-builder", + "sp-inherents", + "sp-io", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-std", + "sp-transaction-pool", + "sp-version", + "sp-weights", + "staging-parachain-info", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", + "strum", + "strum_macros", + "substrate-wasm-builder", + "xcm-primitives 0.1.0", + "xcm-primitives 0.1.1", +] + +[[package]] +name = "moonbeam-runtime-common" +version = "0.8.0-dev" +dependencies = [ + "account", + "cumulus-pallet-parachain-system", + "cumulus-pallet-xcmp-queue", + "fp-ethereum", + "fp-evm", + "frame-benchmarking", + "frame-support", + "frame-system", + "frame-try-runtime", + "hex-literal 0.3.4", + "impl-trait-for-tuples", + "log", + "moonbeam-core-primitives", + "moonbeam-xcm-benchmarks", + "nimbus-primitives", + "pallet-asset-manager", + "pallet-assets", + "pallet-async-backing", + "pallet-author-inherent", + "pallet-author-mapping", + "pallet-author-slot-filter", + "pallet-balances", + "pallet-collective", + "pallet-conviction-voting", + "pallet-crowdloan-rewards", + "pallet-ethereum-xcm", + "pallet-evm", + "pallet-evm-chain-id", + "pallet-identity", + "pallet-migrations", + "pallet-moonbeam-lazy-migrations", + "pallet-moonbeam-orbiters", + "pallet-multisig", + "pallet-parachain-staking", + "pallet-precompile-benchmarks", + "pallet-preimage", + "pallet-proxy", + "pallet-randomness", + "pallet-referenda", + "pallet-relay-storage-roots", + "pallet-scheduler", + "pallet-sudo", + "pallet-timestamp", + "pallet-treasury", + "pallet-utility", + "pallet-whitelist", + "pallet-xcm", + "pallet-xcm-transactor", + "parity-scale-codec", + "precompile-utils 0.1.1", + "sp-api", + "sp-consensus-slots", + "sp-core", + "sp-genesis-builder", + "sp-runtime", + "sp-std", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", + "xcm-primitives 0.1.1", +] + +[[package]] +name = "moonbeam-runtime-common" +version = "0.8.0-dev" +source = "git+https://github.com/moonbeam-foundation/moonbeam?rev=runtime-3001#c54b0ac1563840f8fbb18587f045240997728a73" +dependencies = [ + "account", + "cumulus-pallet-parachain-system", + "cumulus-pallet-xcmp-queue", + "fp-ethereum", + "fp-evm", + "frame-benchmarking", + "frame-support", + "frame-system", + "frame-try-runtime", + "hex-literal 0.3.4", + "impl-trait-for-tuples", + "log", + "moonbeam-core-primitives", + "moonbeam-xcm-benchmarks", + "nimbus-primitives", + "pallet-asset-manager", + "pallet-assets", + "pallet-async-backing", + "pallet-author-inherent", + "pallet-author-mapping", + "pallet-author-slot-filter", + "pallet-balances", + "pallet-collective", + "pallet-conviction-voting", + "pallet-crowdloan-rewards", + "pallet-ethereum-xcm", + "pallet-evm", + "pallet-evm-chain-id", + "pallet-identity", + "pallet-migrations", + "pallet-moonbeam-lazy-migrations", + "pallet-moonbeam-orbiters", + "pallet-multisig", + "pallet-parachain-staking", + "pallet-precompile-benchmarks", + "pallet-preimage", + "pallet-proxy", + "pallet-randomness", + "pallet-referenda", + "pallet-relay-storage-roots", + "pallet-scheduler", + "pallet-sudo", + "pallet-timestamp", + "pallet-treasury", + "pallet-utility", + "pallet-whitelist", + "pallet-xcm", + "pallet-xcm-transactor", + "parity-scale-codec", + "precompile-utils 0.1.1", + "sp-api", + "sp-consensus-slots", + "sp-core", + "sp-genesis-builder", + "sp-runtime", + "sp-std", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", + "xcm-primitives 0.1.1", +] + +[[package]] +name = "moonbeam-xcm-benchmarks" +version = "0.2.0" +source = "git+https://github.com/moonbeam-foundation/moonbeam?rev=runtime-3001#c54b0ac1563840f8fbb18587f045240997728a73" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "pallet-erc20-xcm-bridge", + "pallet-xcm-benchmarks", + "parity-scale-codec", + "scale-info", + "serde", + "sp-std", + "staging-xcm", + "staging-xcm-executor", + "xcm-primitives 0.1.1", +] + +[[package]] +name = "moonriver-runtime" +version = "0.8.4" +dependencies = [ + "account", + "async-backing-primitives", + "cumulus-pallet-dmp-queue", + "cumulus-pallet-parachain-system", + "cumulus-pallet-xcm", + "cumulus-pallet-xcmp-queue", + "cumulus-primitives-core", + "cumulus-primitives-timestamp", + "cumulus-primitives-utility", + "evm-tracing-events", + "fp-evm", + "fp-rpc", + "fp-self-contained", + "frame-benchmarking", + "frame-executive", + "frame-support", + "frame-system", + "frame-system-benchmarking", + "frame-system-rpc-runtime-api", + "frame-try-runtime", + "hex-literal 0.3.4", + "log", + "moonbeam-core-primitives", + "moonbeam-evm-tracer", + "moonbeam-relay-encoder", + "moonbeam-rpc-primitives-debug", + "moonbeam-rpc-primitives-txpool", + "moonbeam-runtime-common 0.8.0-dev", + "moonbeam-xcm-benchmarks", + "nimbus-primitives", + "num_enum 0.5.11", + "orml-traits", + "orml-xcm-support", + "orml-xtokens", + "pallet-asset-manager", + "pallet-assets", + "pallet-async-backing", + "pallet-author-inherent", + "pallet-author-mapping", + "pallet-author-slot-filter", + "pallet-balances", + "pallet-collective", + "pallet-conviction-voting", + "pallet-crowdloan-rewards", + "pallet-erc20-xcm-bridge", + "pallet-ethereum", + "pallet-ethereum-xcm", + "pallet-evm", + "pallet-evm-chain-id", + "pallet-evm-precompile-author-mapping", + "pallet-evm-precompile-balances-erc20", + "pallet-evm-precompile-batch", + "pallet-evm-precompile-blake2", + "pallet-evm-precompile-bn128", + "pallet-evm-precompile-call-permit", + "pallet-evm-precompile-collective", + "pallet-evm-precompile-conviction-voting", + "pallet-evm-precompile-crowdloan-rewards", + "pallet-evm-precompile-dispatch", + "pallet-evm-precompile-gmp", + "pallet-evm-precompile-identity", + "pallet-evm-precompile-modexp", + "pallet-evm-precompile-parachain-staking", + "pallet-evm-precompile-preimage", + "pallet-evm-precompile-proxy", + "pallet-evm-precompile-randomness", + "pallet-evm-precompile-referenda", + "pallet-evm-precompile-registry", + "pallet-evm-precompile-relay-encoder", + "pallet-evm-precompile-relay-verifier", + "pallet-evm-precompile-sha3fips", + "pallet-evm-precompile-simple", + "pallet-evm-precompile-xcm-transactor", + "pallet-evm-precompile-xcm-utils", + "pallet-evm-precompile-xtokens", + "pallet-evm-precompileset-assets-erc20", + "pallet-identity", + "pallet-maintenance-mode", + "pallet-message-queue", + "pallet-migrations", + "pallet-moonbeam-lazy-migrations", + "pallet-moonbeam-orbiters", + "pallet-multisig", + "pallet-parachain-staking", + "pallet-precompile-benchmarks", + "pallet-preimage", + "pallet-proxy", + "pallet-proxy-genesis-companion", + "pallet-randomness", + "pallet-referenda", + "pallet-relay-storage-roots", + "pallet-root-testing", + "pallet-scheduler", + "pallet-society", + "pallet-timestamp", + "pallet-transaction-payment", + "pallet-transaction-payment-rpc-runtime-api", + "pallet-treasury", + "pallet-utility", + "pallet-whitelist", + "pallet-xcm", + "pallet-xcm-benchmarks", + "pallet-xcm-transactor", + "parachains-common", + "parity-scale-codec", + "polkadot-core-primitives", + "polkadot-parachain-primitives", + "polkadot-runtime-common", + "precompile-utils 0.1.1", + "rlp", + "scale-info", + "serde", + "session-keys-primitives", + "sha3", + "smallvec", + "sp-api", + "sp-block-builder", + "sp-consensus-slots", + "sp-core", + "sp-debug-derive", + "sp-genesis-builder", + "sp-inherents", + "sp-io", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-std", + "sp-transaction-pool", + "sp-version", + "sp-weights", + "staging-parachain-info", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", + "strum", + "strum_macros", + "substrate-wasm-builder", + "xcm-primitives 0.1.0", + "xcm-primitives 0.1.1", +] + +[[package]] +name = "nalgebra" +version = "0.32.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ea4908d4f23254adda3daa60ffef0f1ac7b8c3e9a864cf3cc154b251908a2ef" +dependencies = [ + "approx", + "matrixmultiply", + "nalgebra-macros", + "num-complex", + "num-rational", + "num-traits", + "simba", + "typenum", +] + +[[package]] +name = "nalgebra-macros" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91761aed67d03ad966ef783ae962ef9bbaca728d2dd7ceb7939ec110fffad998" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "nimbus-primitives" +version = "0.9.0" +source = "git+https://github.com/Moonsong-Labs/moonkit?branch=moonbeam-polkadot-v1.7.2#04d420f376a1445c6636926c87485519a1db3fe1" +dependencies = [ + "async-trait", + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-application-crypto", + "sp-inherents", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "nodrop" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" + +[[package]] +name = "nohash-hasher" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" + +[[package]] +name = "num" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b05180d69e3da0e530ba2a1dae5110317e49e3b7f3d41be227dc5f92e49ee7af" +dependencies = [ + "num-bigint", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-complex" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23c6602fda94a57c990fe0df199a035d83576b496aa29f4e634a8ac6004e68a6" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-format" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a652d9771a63711fd3c3deb670acfbe5c30a4072e664d7a3bf5a9e1056ac72c3" +dependencies = [ + "arrayvec 0.7.4", + "itoa", +] + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +dependencies = [ + "autocfg", + "num-bigint", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" +dependencies = [ + "num_enum_derive 0.5.11", +] + +[[package]] +name = "num_enum" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845" +dependencies = [ + "num_enum_derive 0.7.2", +] + +[[package]] +name = "num_enum_derive" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b" +dependencies = [ + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 2.0.58", +] + +[[package]] +name = "object" +version = "0.30.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03b4680b86d9cfafba8fc491dc9b6df26b68cf40e9e6cd73909194759a63c385" +dependencies = [ + "crc32fast", + "hashbrown 0.13.2", + "indexmap 1.9.3", + "memchr", +] + +[[package]] +name = "object" +version = "0.32.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "opaque-debug" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" + +[[package]] +name = "orml-traits" +version = "0.7.0" +source = "git+https://github.com/moonbeam-foundation/open-runtime-module-library?branch=moonbeam-polkadot-v1.7.2#f90f4de88986571e24ea3c027b9c09a4b732ee1f" +dependencies = [ + "frame-support", + "impl-trait-for-tuples", + "num-traits", + "orml-utilities", + "parity-scale-codec", + "paste", + "scale-info", + "serde", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "staging-xcm", +] + +[[package]] +name = "orml-utilities" +version = "0.7.0" +source = "git+https://github.com/moonbeam-foundation/open-runtime-module-library?branch=moonbeam-polkadot-v1.7.2#f90f4de88986571e24ea3c027b9c09a4b732ee1f" +dependencies = [ + "frame-support", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "orml-xcm-support" +version = "0.7.0" +source = "git+https://github.com/moonbeam-foundation/open-runtime-module-library?branch=moonbeam-polkadot-v1.7.2#f90f4de88986571e24ea3c027b9c09a4b732ee1f" +dependencies = [ + "frame-support", + "orml-traits", + "parity-scale-codec", + "sp-runtime", + "sp-std", + "staging-xcm", + "staging-xcm-executor", +] + +[[package]] +name = "orml-xtokens" +version = "0.7.0" +source = "git+https://github.com/moonbeam-foundation/open-runtime-module-library?branch=moonbeam-polkadot-v1.7.2#f90f4de88986571e24ea3c027b9c09a4b732ee1f" +dependencies = [ + "frame-support", + "frame-system", + "log", + "orml-traits", + "orml-xcm-support", + "pallet-xcm", + "parity-scale-codec", + "scale-info", + "serde", + "sp-io", + "sp-runtime", + "sp-std", + "staging-xcm", + "staging-xcm-executor", +] + +[[package]] +name = "pallet-asset-conversion" +version = "10.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#2073906e7994ca069f7f68120b05474f7565b8d2" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-asset-manager" +version = "0.1.0" +source = "git+https://github.com/moonbeam-foundation/moonbeam?rev=runtime-3001#c54b0ac1563840f8fbb18587f045240997728a73" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "serde", + "sp-io", + "sp-runtime", + "sp-std", + "staging-xcm", + "xcm-primitives 0.1.1", +] + +[[package]] +name = "pallet-asset-rate" +version = "7.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#2073906e7994ca069f7f68120b05474f7565b8d2" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-asset-tx-payment" +version = "28.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#2073906e7994ca069f7f68120b05474f7565b8d2" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "pallet-transaction-payment", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-assets" +version = "29.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#2073906e7994ca069f7f68120b05474f7565b8d2" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-async-backing" +version = "0.9.0" +source = "git+https://github.com/Moonsong-Labs/moonkit?branch=moonbeam-polkadot-v1.7.2#04d420f376a1445c6636926c87485519a1db3fe1" +dependencies = [ + "cumulus-pallet-parachain-system", + "cumulus-primitives-core", + "frame-support", + "frame-system", + "log", + "nimbus-primitives", + "pallet-timestamp", + "parity-scale-codec", + "scale-info", + "sp-consensus-slots", + "sp-core", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-author-inherent" +version = "0.9.0" +source = "git+https://github.com/Moonsong-Labs/moonkit?branch=moonbeam-polkadot-v1.7.2#04d420f376a1445c6636926c87485519a1db3fe1" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "nimbus-primitives", + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-application-crypto", + "sp-inherents", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-author-mapping" +version = "2.0.5" +source = "git+https://github.com/Moonsong-Labs/moonkit?branch=moonbeam-polkadot-v1.7.2#04d420f376a1445c6636926c87485519a1db3fe1" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "nimbus-primitives", + "pallet-balances", + "parity-scale-codec", + "scale-info", + "serde", + "session-keys-primitives", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-author-slot-filter" +version = "0.9.0" +source = "git+https://github.com/Moonsong-Labs/moonkit?branch=moonbeam-polkadot-v1.7.2#04d420f376a1445c6636926c87485519a1db3fe1" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "nimbus-primitives", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-authority-discovery" +version = "28.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "frame-support", + "frame-system", + "pallet-session", + "parity-scale-codec", + "scale-info", + "sp-application-crypto", + "sp-authority-discovery", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-authorship" +version = "28.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "frame-support", + "frame-system", + "impl-trait-for-tuples", + "parity-scale-codec", + "scale-info", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-babe" +version = "28.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "pallet-authorship", + "pallet-session", + "pallet-timestamp", + "parity-scale-codec", + "scale-info", + "sp-application-crypto", + "sp-consensus-babe", + "sp-core", + "sp-io", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", +] + +[[package]] +name = "pallet-balances" +version = "28.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "docify", + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-broker" +version = "0.6.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "bitvec", + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-arithmetic", + "sp-core", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-collator-selection" +version = "9.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#2073906e7994ca069f7f68120b05474f7565b8d2" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "pallet-authorship", + "pallet-session", + "parity-scale-codec", + "rand", + "scale-info", + "sp-runtime", + "sp-staking", + "sp-std", +] + +[[package]] +name = "pallet-collective" +version = "28.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#2073906e7994ca069f7f68120b05474f7565b8d2" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-conviction-voting" +version = "28.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#2073906e7994ca069f7f68120b05474f7565b8d2" +dependencies = [ + "assert_matches", + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "serde", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-crowdloan-rewards" +version = "0.6.0" +source = "git+https://github.com/moonbeam-foundation/crowdloan-rewards?branch=moonbeam-polkadot-v1.7.2#acbc3b916eed890574158780f3127f826b534c0a" +dependencies = [ + "ed25519-dalek", + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "pallet-balances", + "pallet-utility", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "sp-trie", +] + +[[package]] +name = "pallet-election-provider-multi-phase" +version = "27.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#2073906e7994ca069f7f68120b05474f7565b8d2" +dependencies = [ + "frame-benchmarking", + "frame-election-provider-support", + "frame-support", + "frame-system", + "log", + "pallet-election-provider-support-benchmarking", + "parity-scale-codec", + "rand", + "scale-info", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-npos-elections", + "sp-runtime", + "sp-std", + "strum", +] + +[[package]] +name = "pallet-election-provider-support-benchmarking" +version = "27.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#2073906e7994ca069f7f68120b05474f7565b8d2" +dependencies = [ + "frame-benchmarking", + "frame-election-provider-support", + "frame-system", + "parity-scale-codec", + "sp-npos-elections", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-emergency-para-xcm" +version = "0.1.0" +source = "git+https://github.com/Moonsong-Labs/moonkit?branch=moonbeam-polkadot-v1.7.2#04d420f376a1445c6636926c87485519a1db3fe1" +dependencies = [ + "cumulus-pallet-parachain-system", + "cumulus-primitives-core", + "frame-support", + "frame-system", + "log", + "pallet-message-queue", + "parity-scale-codec", + "polkadot-parachain-primitives", + "scale-info", + "sp-runtime", + "sp-std", + "xcm-primitives 0.1.0", +] + +[[package]] +name = "pallet-erc20-xcm-bridge" +version = "1.0.0" +source = "git+https://github.com/moonbeam-foundation/moonbeam?rev=runtime-3001#c54b0ac1563840f8fbb18587f045240997728a73" +dependencies = [ + "environmental", + "ethereum-types", + "fp-evm", + "frame-support", + "frame-system", + "log", + "pallet-evm", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-runtime", + "sp-std", + "staging-xcm", + "staging-xcm-executor", +] + +[[package]] +name = "pallet-ethereum" +version = "4.0.0-dev" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-v1.7.2#7f424fb9fc1ca9158a59be54cb183beaff9f799a" +dependencies = [ + "environmental", + "ethereum", + "ethereum-types", + "evm", + "fp-consensus", + "fp-ethereum", + "fp-evm", + "fp-rpc", + "fp-storage", + "frame-support", + "frame-system", + "pallet-evm", + "parity-scale-codec", + "scale-info", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-ethereum-xcm" +version = "1.0.0-dev" +source = "git+https://github.com/moonbeam-foundation/moonbeam?rev=runtime-3001#c54b0ac1563840f8fbb18587f045240997728a73" +dependencies = [ + "ethereum", + "ethereum-types", + "fp-ethereum", + "fp-evm", + "fp-rpc", + "fp-self-contained", + "frame-benchmarking", + "frame-support", + "frame-system", + "pallet-evm", + "pallet-timestamp", + "parity-scale-codec", + "rlp", + "scale-info", + "serde", + "sp-io", + "sp-runtime", + "sp-std", + "xcm-primitives 0.1.1", +] + +[[package]] +name = "pallet-evm" +version = "6.0.0-dev" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-v1.7.2#7f424fb9fc1ca9158a59be54cb183beaff9f799a" +dependencies = [ + "environmental", + "evm", + "fp-account", + "fp-evm", + "frame-benchmarking", + "frame-support", + "frame-system", + "hash-db", + "hex", + "hex-literal 0.4.1", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", + "rlp", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-evm-chain-id" +version = "1.0.0-dev" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-v1.7.2#7f424fb9fc1ca9158a59be54cb183beaff9f799a" +dependencies = [ + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", +] + +[[package]] +name = "pallet-evm-precompile-author-mapping" +version = "0.2.0" +source = "git+https://github.com/moonbeam-foundation/moonbeam?rev=runtime-3001#c54b0ac1563840f8fbb18587f045240997728a73" +dependencies = [ + "fp-evm", + "frame-support", + "frame-system", + "log", + "nimbus-primitives", + "num_enum 0.5.11", + "pallet-author-mapping", + "pallet-evm", + "parity-scale-codec", + "precompile-utils 0.1.1", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-evm-precompile-balances-erc20" +version = "0.1.0" +source = "git+https://github.com/moonbeam-foundation/moonbeam?rev=runtime-3001#c54b0ac1563840f8fbb18587f045240997728a73" +dependencies = [ + "fp-evm", + "frame-support", + "frame-system", + "log", + "num_enum 0.5.11", + "pallet-balances", + "pallet-evm", + "pallet-timestamp", + "parity-scale-codec", + "paste", + "precompile-utils 0.1.1", + "slices", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-evm-precompile-batch" +version = "0.1.0" +source = "git+https://github.com/moonbeam-foundation/moonbeam?rev=runtime-3001#c54b0ac1563840f8fbb18587f045240997728a73" +dependencies = [ + "evm", + "fp-evm", + "frame-support", + "frame-system", + "log", + "num_enum 0.5.11", + "pallet-evm", + "parity-scale-codec", + "paste", + "precompile-utils 0.1.1", + "slices", + "sp-core", + "sp-io", + "sp-std", +] + +[[package]] +name = "pallet-evm-precompile-blake2" +version = "2.0.0-dev" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-v1.7.2#7f424fb9fc1ca9158a59be54cb183beaff9f799a" +dependencies = [ + "fp-evm", +] + +[[package]] +name = "pallet-evm-precompile-bn128" +version = "2.0.0-dev" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-v1.7.2#7f424fb9fc1ca9158a59be54cb183beaff9f799a" +dependencies = [ + "fp-evm", + "sp-core", + "substrate-bn", +] + +[[package]] +name = "pallet-evm-precompile-call-permit" +version = "0.1.0" +source = "git+https://github.com/moonbeam-foundation/moonbeam?rev=runtime-3001#c54b0ac1563840f8fbb18587f045240997728a73" +dependencies = [ + "evm", + "fp-evm", + "frame-support", + "frame-system", + "log", + "num_enum 0.5.11", + "pallet-evm", + "pallet-timestamp", + "parity-scale-codec", + "paste", + "precompile-utils 0.1.1", + "slices", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-evm-precompile-collective" +version = "0.1.0" +source = "git+https://github.com/moonbeam-foundation/moonbeam?rev=runtime-3001#c54b0ac1563840f8fbb18587f045240997728a73" +dependencies = [ + "evm", + "fp-evm", + "frame-support", + "frame-system", + "log", + "num_enum 0.5.11", + "pallet-collective", + "pallet-evm", + "parity-scale-codec", + "paste", + "precompile-utils 0.1.1", + "slices", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "xcm-primitives 0.1.1", +] + +[[package]] +name = "pallet-evm-precompile-conviction-voting" +version = "0.1.0" +source = "git+https://github.com/moonbeam-foundation/moonbeam?rev=runtime-3001#c54b0ac1563840f8fbb18587f045240997728a73" +dependencies = [ + "fp-evm", + "frame-support", + "frame-system", + "log", + "num_enum 0.5.11", + "pallet-conviction-voting", + "pallet-evm", + "parity-scale-codec", + "precompile-utils 0.1.1", + "rustc-hex", + "sp-core", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-evm-precompile-crowdloan-rewards" +version = "0.6.0" +source = "git+https://github.com/moonbeam-foundation/moonbeam?rev=runtime-3001#c54b0ac1563840f8fbb18587f045240997728a73" +dependencies = [ + "fp-evm", + "frame-support", + "frame-system", + "log", + "num_enum 0.5.11", + "pallet-crowdloan-rewards", + "pallet-evm", + "precompile-utils 0.1.1", + "rustc-hex", + "sp-core", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-evm-precompile-dispatch" +version = "2.0.0-dev" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-v1.7.2#7f424fb9fc1ca9158a59be54cb183beaff9f799a" +dependencies = [ + "fp-evm", + "frame-support", + "pallet-evm", + "parity-scale-codec", + "sp-runtime", +] + +[[package]] +name = "pallet-evm-precompile-gmp" +version = "0.1.0" +source = "git+https://github.com/moonbeam-foundation/moonbeam?rev=runtime-3001#c54b0ac1563840f8fbb18587f045240997728a73" +dependencies = [ + "cumulus-primitives-core", + "evm", + "fp-evm", + "frame-support", + "frame-system", + "log", + "num_enum 0.5.11", + "orml-traits", + "orml-xtokens", + "pallet-evm", + "pallet-xcm", + "parity-scale-codec", + "paste", + "precompile-utils 0.1.1", + "slices", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", + "xcm-primitives 0.1.1", +] + +[[package]] +name = "pallet-evm-precompile-identity" +version = "0.1.0" +source = "git+https://github.com/moonbeam-foundation/moonbeam?rev=runtime-3001#c54b0ac1563840f8fbb18587f045240997728a73" +dependencies = [ + "enumflags2", + "evm", + "fp-evm", + "frame-support", + "frame-system", + "log", + "pallet-evm", + "pallet-identity", + "parity-scale-codec", + "precompile-utils 0.1.1", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-evm-precompile-modexp" +version = "2.0.0-dev" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-v1.7.2#7f424fb9fc1ca9158a59be54cb183beaff9f799a" +dependencies = [ + "fp-evm", + "num", +] + +[[package]] +name = "pallet-evm-precompile-parachain-staking" +version = "1.0.0" +source = "git+https://github.com/moonbeam-foundation/moonbeam?rev=runtime-3001#c54b0ac1563840f8fbb18587f045240997728a73" +dependencies = [ + "fp-evm", + "frame-support", + "frame-system", + "log", + "num_enum 0.5.11", + "pallet-evm", + "pallet-parachain-staking", + "parity-scale-codec", + "precompile-utils 0.1.1", + "rustc-hex", + "sp-consensus-slots", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-evm-precompile-preimage" +version = "0.1.0" +source = "git+https://github.com/moonbeam-foundation/moonbeam?rev=runtime-3001#c54b0ac1563840f8fbb18587f045240997728a73" +dependencies = [ + "fp-evm", + "frame-support", + "frame-system", + "log", + "num_enum 0.5.11", + "pallet-evm", + "pallet-preimage", + "parity-scale-codec", + "precompile-utils 0.1.1", + "rustc-hex", + "sp-core", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-evm-precompile-proxy" +version = "0.1.0" +source = "git+https://github.com/moonbeam-foundation/moonbeam?rev=runtime-3001#c54b0ac1563840f8fbb18587f045240997728a73" +dependencies = [ + "evm", + "fp-evm", + "frame-support", + "frame-system", + "log", + "num_enum 0.5.11", + "pallet-balances", + "pallet-evm", + "pallet-proxy", + "parity-scale-codec", + "precompile-utils 0.1.1", + "rustc-hex", + "sp-core", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-evm-precompile-randomness" +version = "0.1.0" +source = "git+https://github.com/moonbeam-foundation/moonbeam?rev=runtime-3001#c54b0ac1563840f8fbb18587f045240997728a73" +dependencies = [ + "fp-evm", + "frame-support", + "frame-system", + "log", + "nimbus-primitives", + "num_enum 0.5.11", + "pallet-evm", + "pallet-randomness", + "parity-scale-codec", + "precompile-utils 0.1.1", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-evm-precompile-referenda" +version = "0.1.0" +source = "git+https://github.com/moonbeam-foundation/moonbeam?rev=runtime-3001#c54b0ac1563840f8fbb18587f045240997728a73" +dependencies = [ + "fp-evm", + "frame-support", + "frame-system", + "log", + "num_enum 0.5.11", + "pallet-evm", + "pallet-referenda", + "parity-scale-codec", + "precompile-utils 0.1.1", + "rustc-hex", + "sp-core", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-evm-precompile-registry" +version = "0.1.0" +source = "git+https://github.com/moonbeam-foundation/moonbeam?rev=runtime-3001#c54b0ac1563840f8fbb18587f045240997728a73" +dependencies = [ + "fp-evm", + "frame-support", + "frame-system", + "log", + "pallet-evm", + "parity-scale-codec", + "precompile-utils 0.1.1", + "sp-core", + "sp-io", + "sp-std", +] + +[[package]] +name = "pallet-evm-precompile-relay-encoder" +version = "0.1.0" +source = "git+https://github.com/moonbeam-foundation/moonbeam?rev=runtime-3001#c54b0ac1563840f8fbb18587f045240997728a73" +dependencies = [ + "cumulus-primitives-core", + "fp-evm", + "frame-support", + "frame-system", + "log", + "num_enum 0.5.11", + "pallet-evm", + "pallet-staking", + "pallet-xcm-transactor", + "parity-scale-codec", + "precompile-utils 0.1.1", + "rustc-hex", + "sp-core", + "sp-runtime", + "sp-std", + "xcm-primitives 0.1.1", +] + +[[package]] +name = "pallet-evm-precompile-relay-verifier" +version = "0.1.0" +source = "git+https://github.com/moonbeam-foundation/moonbeam?rev=runtime-3001#c54b0ac1563840f8fbb18587f045240997728a73" +dependencies = [ + "cumulus-primitives-core", + "fp-evm", + "frame-support", + "frame-system", + "moonbeam-runtime-common 0.8.0-dev (git+https://github.com/moonbeam-foundation/moonbeam?rev=runtime-3001)", + "pallet-evm", + "pallet-precompile-benchmarks", + "pallet-relay-storage-roots", + "parity-scale-codec", + "precompile-utils 0.1.1", + "scale-info", + "sp-core", + "sp-std", + "storage-proof-primitives", +] + +[[package]] +name = "pallet-evm-precompile-sha3fips" +version = "2.0.0-dev" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-v1.7.2#7f424fb9fc1ca9158a59be54cb183beaff9f799a" +dependencies = [ + "fp-evm", + "tiny-keccak", +] + +[[package]] +name = "pallet-evm-precompile-simple" +version = "2.0.0-dev" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-v1.7.2#7f424fb9fc1ca9158a59be54cb183beaff9f799a" +dependencies = [ + "fp-evm", + "ripemd", + "sp-io", +] + +[[package]] +name = "pallet-evm-precompile-storage-cleaner" +version = "0.1.0" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-v1.7.2#7f424fb9fc1ca9158a59be54cb183beaff9f799a" +dependencies = [ + "fp-evm", + "frame-support", + "frame-system", + "pallet-evm", + "parity-scale-codec", + "precompile-utils 0.1.0", + "sp-core", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-evm-precompile-xcm" +version = "0.1.0" +source = "git+https://github.com/Moonsong-Labs/moonkit?branch=moonbeam-polkadot-v1.7.2#04d420f376a1445c6636926c87485519a1db3fe1" +dependencies = [ + "cumulus-primitives-core", + "evm", + "fp-evm", + "frame-support", + "frame-system", + "log", + "num_enum 0.7.2", + "pallet-evm", + "pallet-xcm", + "precompile-utils 0.1.0", + "sp-core", + "sp-runtime", + "sp-std", + "sp-weights", + "staging-xcm", + "xcm-primitives 0.1.0", +] + +[[package]] +name = "pallet-evm-precompile-xcm-transactor" +version = "0.2.0" +source = "git+https://github.com/moonbeam-foundation/moonbeam?rev=runtime-3001#c54b0ac1563840f8fbb18587f045240997728a73" +dependencies = [ + "cumulus-primitives-core", + "evm", + "fp-evm", + "frame-support", + "frame-system", + "log", + "num_enum 0.5.11", + "pallet-evm", + "pallet-xcm-transactor", + "precompile-utils 0.1.1", + "rustc-hex", + "sp-core", + "sp-runtime", + "sp-std", + "sp-weights", + "staging-xcm", + "xcm-primitives 0.1.1", +] + +[[package]] +name = "pallet-evm-precompile-xcm-utils" +version = "0.1.0" +source = "git+https://github.com/moonbeam-foundation/moonbeam?rev=runtime-3001#c54b0ac1563840f8fbb18587f045240997728a73" +dependencies = [ + "fp-evm", + "frame-support", + "frame-system", + "num_enum 0.5.11", + "pallet-evm", + "pallet-xcm", + "parity-scale-codec", + "precompile-utils 0.1.1", + "sp-core", + "sp-runtime", + "sp-std", + "sp-weights", + "staging-xcm", + "staging-xcm-executor", + "xcm-primitives 0.1.1", +] + +[[package]] +name = "pallet-evm-precompile-xtokens" +version = "0.1.0" +source = "git+https://github.com/moonbeam-foundation/moonbeam?rev=runtime-3001#c54b0ac1563840f8fbb18587f045240997728a73" +dependencies = [ + "fp-evm", + "frame-support", + "frame-system", + "log", + "num_enum 0.5.11", + "orml-xtokens", + "pallet-evm", + "precompile-utils 0.1.1", + "rustc-hex", + "sp-core", + "sp-runtime", + "sp-std", + "sp-weights", + "staging-xcm", + "xcm-primitives 0.1.1", +] + +[[package]] +name = "pallet-evm-precompileset-assets-erc20" +version = "0.1.0" +source = "git+https://github.com/moonbeam-foundation/moonbeam?rev=runtime-3001#c54b0ac1563840f8fbb18587f045240997728a73" +dependencies = [ + "fp-evm", + "frame-support", + "frame-system", + "log", + "num_enum 0.5.11", + "pallet-assets", + "pallet-balances", + "pallet-evm", + "pallet-timestamp", + "parity-scale-codec", + "paste", + "precompile-utils 0.1.1", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "xcm-primitives 0.1.0", +] + +[[package]] +name = "pallet-fast-unstake" +version = "27.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#2073906e7994ca069f7f68120b05474f7565b8d2" +dependencies = [ + "docify", + "frame-benchmarking", + "frame-election-provider-support", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-io", + "sp-runtime", + "sp-staking", + "sp-std", +] + +[[package]] +name = "pallet-identity" +version = "28.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#2073906e7994ca069f7f68120b05474f7565b8d2" +dependencies = [ + "enumflags2", + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-maintenance-mode" +version = "0.1.0" +source = "git+https://github.com/Moonsong-Labs/moonkit?branch=moonbeam-polkadot-v1.7.2#04d420f376a1445c6636926c87485519a1db3fe1" +dependencies = [ + "cumulus-primitives-core", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-runtime", + "sp-std", + "xcm-primitives 0.1.0", +] + +[[package]] +name = "pallet-message-queue" +version = "31.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "environmental", + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "sp-weights", +] + +[[package]] +name = "pallet-migrations" +version = "0.1.0" +source = "git+https://github.com/Moonsong-Labs/moonkit?branch=moonbeam-polkadot-v1.7.2#04d420f376a1445c6636926c87485519a1db3fe1" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "xcm-primitives 0.1.0", +] + +[[package]] +name = "pallet-moonbeam-lazy-migrations" +version = "0.1.0" +source = "git+https://github.com/moonbeam-foundation/moonbeam?rev=runtime-3001#c54b0ac1563840f8fbb18587f045240997728a73" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "pallet-assets", + "pallet-balances", + "pallet-evm", + "pallet-scheduler", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-moonbeam-orbiters" +version = "0.1.0" +source = "git+https://github.com/moonbeam-foundation/moonbeam?rev=runtime-3001#c54b0ac1563840f8fbb18587f045240997728a73" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "nimbus-primitives", + "parity-scale-codec", + "scale-info", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-multisig" +version = "28.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#2073906e7994ca069f7f68120b05474f7565b8d2" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-parachain-staking" +version = "3.0.0" +source = "git+https://github.com/moonbeam-foundation/moonbeam?rev=runtime-3001#c54b0ac1563840f8fbb18587f045240997728a73" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "nimbus-primitives", + "parity-scale-codec", + "scale-info", + "serde", + "sp-consensus-slots", + "sp-runtime", + "sp-std", + "substrate-fixed", +] + +[[package]] +name = "pallet-precompile-benchmarks" +version = "0.1.0" +source = "git+https://github.com/moonbeam-foundation/moonbeam?rev=runtime-3001#c54b0ac1563840f8fbb18587f045240997728a73" +dependencies = [ + "cumulus-primitives-core", + "frame-benchmarking", + "frame-support", + "frame-system", + "pallet-relay-storage-roots", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-std", + "storage-proof-primitives", +] + +[[package]] +name = "pallet-preimage" +version = "28.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#2073906e7994ca069f7f68120b05474f7565b8d2" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-proxy" +version = "28.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#2073906e7994ca069f7f68120b05474f7565b8d2" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-proxy-genesis-companion" +version = "0.1.0" +source = "git+https://github.com/moonbeam-foundation/moonbeam?rev=runtime-3001#c54b0ac1563840f8fbb18587f045240997728a73" +dependencies = [ + "frame-support", + "frame-system", + "pallet-proxy", + "parity-scale-codec", + "scale-info", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-randomness" +version = "0.1.0" +source = "git+https://github.com/Moonsong-Labs/moonkit?branch=moonbeam-polkadot-v1.7.2#04d420f376a1445c6636926c87485519a1db3fe1" +dependencies = [ + "environmental", + "frame-benchmarking", + "frame-support", + "frame-system", + "hex", + "log", + "nimbus-primitives", + "pallet-balances", + "parity-scale-codec", + "scale-info", + "schnorrkel", + "serde", + "session-keys-primitives", + "sp-consensus-babe", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-referenda" +version = "28.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#2073906e7994ca069f7f68120b05474f7565b8d2" +dependencies = [ + "assert_matches", + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "serde", + "sp-arithmetic", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-relay-storage-roots" +version = "0.1.0" +source = "git+https://github.com/Moonsong-Labs/moonkit?branch=moonbeam-polkadot-v1.7.2#04d420f376a1445c6636926c87485519a1db3fe1" +dependencies = [ + "cumulus-pallet-parachain-system", + "cumulus-primitives-core", + "environmental", + "frame-benchmarking", + "frame-support", + "frame-system", + "hex", + "log", + "nimbus-primitives", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-root-testing" +version = "4.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#2073906e7994ca069f7f68120b05474f7565b8d2" +dependencies = [ + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-scheduler" +version = "29.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#2073906e7994ca069f7f68120b05474f7565b8d2" +dependencies = [ + "docify", + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-io", + "sp-runtime", + "sp-std", + "sp-weights", +] + +[[package]] +name = "pallet-session" +version = "28.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "frame-support", + "frame-system", + "impl-trait-for-tuples", + "log", + "pallet-timestamp", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-state-machine", + "sp-std", + "sp-trie", +] + +[[package]] +name = "pallet-society" +version = "28.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#2073906e7994ca069f7f68120b05474f7565b8d2" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "rand_chacha 0.2.2", + "scale-info", + "sp-arithmetic", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-staking" +version = "28.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "frame-benchmarking", + "frame-election-provider-support", + "frame-support", + "frame-system", + "log", + "pallet-authorship", + "pallet-session", + "parity-scale-codec", + "rand_chacha 0.2.2", + "scale-info", + "serde", + "sp-application-crypto", + "sp-io", + "sp-runtime", + "sp-staking", + "sp-std", +] + +[[package]] +name = "pallet-staking-reward-fn" +version = "19.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#2073906e7994ca069f7f68120b05474f7565b8d2" +dependencies = [ + "log", + "sp-arithmetic", +] + +[[package]] +name = "pallet-sudo" +version = "28.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#2073906e7994ca069f7f68120b05474f7565b8d2" +dependencies = [ + "docify", + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-timestamp" +version = "27.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "docify", + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-inherents", + "sp-io", + "sp-runtime", + "sp-std", + "sp-storage", + "sp-timestamp", +] + +[[package]] +name = "pallet-transaction-payment" +version = "28.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#2073906e7994ca069f7f68120b05474f7565b8d2" +dependencies = [ + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-transaction-payment-rpc-runtime-api" +version = "28.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#2073906e7994ca069f7f68120b05474f7565b8d2" +dependencies = [ + "pallet-transaction-payment", + "parity-scale-codec", + "sp-api", + "sp-runtime", + "sp-weights", +] + +[[package]] +name = "pallet-treasury" +version = "27.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#2073906e7994ca069f7f68120b05474f7565b8d2" +dependencies = [ + "docify", + "frame-benchmarking", + "frame-support", + "frame-system", + "impl-trait-for-tuples", + "pallet-balances", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-utility" +version = "28.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#2073906e7994ca069f7f68120b05474f7565b8d2" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-vesting" +version = "28.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-whitelist" +version = "27.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#2073906e7994ca069f7f68120b05474f7565b8d2" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-xcm" +version = "7.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#2073906e7994ca069f7f68120b05474f7565b8d2" +dependencies = [ + "bounded-collections", + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "pallet-balances", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", +] + +[[package]] +name = "pallet-xcm-benchmarks" +version = "7.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#2073906e7994ca069f7f68120b05474f7565b8d2" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-io", + "sp-runtime", + "sp-std", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", +] + +[[package]] +name = "pallet-xcm-transactor" +version = "0.2.0" +source = "git+https://github.com/moonbeam-foundation/moonbeam?rev=runtime-3001#c54b0ac1563840f8fbb18587f045240997728a73" +dependencies = [ + "cumulus-primitives-core", + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "orml-traits", + "parity-scale-codec", + "scale-info", + "serde", + "sp-io", + "sp-runtime", + "sp-std", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", + "xcm-primitives 0.1.1", +] + +[[package]] +name = "parachains-common" +version = "7.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#2073906e7994ca069f7f68120b05474f7565b8d2" +dependencies = [ + "cumulus-primitives-core", + "cumulus-primitives-utility", + "frame-support", + "frame-system", + "log", + "pallet-asset-tx-payment", + "pallet-assets", + "pallet-authorship", + "pallet-balances", + "pallet-collator-selection", + "pallet-message-queue", + "pallet-xcm", + "parity-scale-codec", + "polkadot-primitives", + "scale-info", + "sp-consensus-aura", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "staging-parachain-info", + "staging-xcm", + "staging-xcm-executor", + "substrate-wasm-builder", +] + +[[package]] +name = "parity-scale-codec" +version = "3.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "881331e34fa842a2fb61cc2db9643a8fedc615e47cfcc52597d1af0db9a7e8fe" +dependencies = [ + "arrayvec 0.7.4", + "bitvec", + "byte-slice-cast", + "bytes", + "impl-trait-for-tuples", + "parity-scale-codec-derive", + "serde", +] + +[[package]] +name = "parity-scale-codec-derive" +version = "3.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be30eaf4b0a9fba5336683b38de57bb86d179a35862ba6bfcf57625d006bde5b" +dependencies = [ + "proc-macro-crate 2.0.0", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "parity-wasm" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1ad0aff30c1da14b1254fcb2af73e1fa9a28670e584a626f53a369d0e157304" + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets 0.48.5", +] + +[[package]] +name = "paste" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" + +[[package]] +name = "pbkdf2" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d95f5254224e617595d2cc3cc73ff0a5eaf2637519e25f03388154e9378b6ffa" +dependencies = [ + "crypto-mac 0.11.0", +] + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "pin-project-lite" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + +[[package]] +name = "pkg-config" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" + +[[package]] +name = "platforms" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db23d408679286588f4d4644f965003d056e3dd5abcaaa938116871d7ce2fee7" + +[[package]] +name = "polkadot-core-primitives" +version = "7.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "polkadot-parachain-primitives" +version = "6.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "bounded-collections", + "derive_more", + "parity-scale-codec", + "polkadot-core-primitives", + "scale-info", + "serde", + "sp-core", + "sp-runtime", + "sp-std", + "sp-weights", +] + +[[package]] +name = "polkadot-primitives" +version = "7.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "bitvec", + "hex-literal 0.4.1", + "log", + "parity-scale-codec", + "polkadot-core-primitives", + "polkadot-parachain-primitives", + "scale-info", + "serde", + "sp-api", + "sp-application-crypto", + "sp-arithmetic", + "sp-authority-discovery", + "sp-consensus-slots", + "sp-core", + "sp-inherents", + "sp-io", + "sp-keystore", + "sp-runtime", + "sp-staking", + "sp-std", +] + +[[package]] +name = "polkadot-runtime-common" +version = "7.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#2073906e7994ca069f7f68120b05474f7565b8d2" +dependencies = [ + "bitvec", + "frame-benchmarking", + "frame-election-provider-support", + "frame-support", + "frame-system", + "impl-trait-for-tuples", + "libsecp256k1", + "log", + "pallet-asset-rate", + "pallet-authorship", + "pallet-babe", + "pallet-balances", + "pallet-broker", + "pallet-election-provider-multi-phase", + "pallet-fast-unstake", + "pallet-identity", + "pallet-session", + "pallet-staking", + "pallet-staking-reward-fn", + "pallet-timestamp", + "pallet-transaction-payment", + "pallet-treasury", + "pallet-vesting", + "pallet-xcm-benchmarks", + "parity-scale-codec", + "polkadot-primitives", + "polkadot-runtime-parachains", + "rustc-hex", + "scale-info", + "serde", + "serde_derive", + "slot-range-helper", + "sp-api", + "sp-core", + "sp-inherents", + "sp-io", + "sp-npos-elections", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", + "static_assertions", +] + +[[package]] +name = "polkadot-runtime-metrics" +version = "7.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "bs58", + "frame-benchmarking", + "parity-scale-codec", + "polkadot-primitives", + "sp-std", + "sp-tracing", +] + +[[package]] +name = "polkadot-runtime-parachains" +version = "7.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "bitflags 1.3.2", + "bitvec", + "derive_more", + "frame-benchmarking", + "frame-support", + "frame-system", + "impl-trait-for-tuples", + "log", + "pallet-authority-discovery", + "pallet-authorship", + "pallet-babe", + "pallet-balances", + "pallet-broker", + "pallet-message-queue", + "pallet-session", + "pallet-staking", + "pallet-timestamp", + "pallet-vesting", + "parity-scale-codec", + "polkadot-core-primitives", + "polkadot-parachain-primitives", + "polkadot-primitives", + "polkadot-runtime-metrics", + "rand", + "rand_chacha 0.3.1", + "rustc-hex", + "scale-info", + "serde", + "sp-api", + "sp-application-crypto", + "sp-arithmetic", + "sp-core", + "sp-inherents", + "sp-io", + "sp-keystore", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", + "staging-xcm", + "staging-xcm-executor", + "static_assertions", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "precompile-utils" +version = "0.1.0" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-v1.7.2#7f424fb9fc1ca9158a59be54cb183beaff9f799a" +dependencies = [ + "environmental", + "evm", + "fp-evm", + "frame-support", + "frame-system", + "hex", + "impl-trait-for-tuples", + "log", + "num_enum 0.7.2", + "pallet-evm", + "parity-scale-codec", + "precompile-utils-macro 0.1.0", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "sp-weights", + "staging-xcm", +] + +[[package]] +name = "precompile-utils" +version = "0.1.1" +source = "git+https://github.com/moonbeam-foundation/moonbeam?rev=runtime-3001#c54b0ac1563840f8fbb18587f045240997728a73" +dependencies = [ + "affix", + "environmental", + "evm", + "fp-evm", + "frame-support", + "frame-system", + "hex", + "impl-trait-for-tuples", + "log", + "num_enum 0.5.11", + "pallet-evm", + "parity-scale-codec", + "paste", + "precompile-utils-macro 0.1.1", + "sha3", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "sp-weights", + "staging-xcm", +] + +[[package]] +name = "precompile-utils-macro" +version = "0.1.0" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-v1.7.2#7f424fb9fc1ca9158a59be54cb183beaff9f799a" +dependencies = [ + "case", + "num_enum 0.7.2", + "prettyplease 0.2.17", + "proc-macro2", + "quote", + "sp-core-hashing", + "syn 1.0.109", +] + +[[package]] +name = "precompile-utils-macro" +version = "0.1.1" +source = "git+https://github.com/moonbeam-foundation/moonbeam?rev=runtime-3001#c54b0ac1563840f8fbb18587f045240997728a73" +dependencies = [ + "case", + "num_enum 0.5.11", + "prettyplease 0.1.25", + "proc-macro2", + "quote", + "sha3", + "syn 1.0.109", +] + +[[package]] +name = "prettyplease" +version = "0.1.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" +dependencies = [ + "proc-macro2", + "syn 1.0.109", +] + +[[package]] +name = "prettyplease" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d3928fb5db768cb86f891ff014f0144589297e3c6a1aba6ed7cecfdace270c7" +dependencies = [ + "proc-macro2", + "syn 2.0.58", +] + +[[package]] +name = "primitive-types" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" +dependencies = [ + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde 0.4.0", + "scale-info", + "uint", +] + +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit 0.19.15", +] + +[[package]] +name = "proc-macro-crate" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8" +dependencies = [ + "toml_edit 0.20.7", +] + +[[package]] +name = "proc-macro-crate" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +dependencies = [ + "toml_edit 0.21.1", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro-warning" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "834da187cfe638ae8abb0203f0b33e5ccdb02a28e7199f2f47b3e2754f50edca" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.58", +] + +[[package]] +name = "proc-macro2" +version = "1.0.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "psm" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874" +dependencies = [ + "cc", +] + +[[package]] +name = "quote" +version = "1.0.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core 0.5.1", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + +[[package]] +name = "rawpointer" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" + +[[package]] +name = "rayon" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "ref-cast" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4846d4c50d1721b1a3bef8af76924eef20d5e723647333798c1b519b3a9473f" +dependencies = [ + "ref-cast-impl", +] + +[[package]] +name = "ref-cast-impl" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fddb4f8d99b0a2ebafc65a87a69a7b9875e4b1ae1f00db265d300ef7f28bccc" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.58", +] + +[[package]] +name = "regex" +version = "1.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata 0.4.6", + "regex-syntax 0.8.3", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.3", +] + +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" + +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac 0.12.1", + "subtle", +] + +[[package]] +name = "ring" +version = "0.1.0" +source = "git+https://github.com/w3f/ring-proof#b273d33f9981e2bb3375ab45faeb537f7ee35224" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-poly", + "ark-serialize", + "ark-std", + "blake2", + "common", + "fflonk", + "merlin", +] + +[[package]] +name = "ripemd" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "rlp" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" +dependencies = [ + "bytes", + "rlp-derive", + "rustc-hex", +] + +[[package]] +name = "rlp-derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" + +[[package]] +name = "rustc-hex" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver 1.0.22", +] + +[[package]] +name = "rustix" +version = "0.36.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "305efbd14fde4139eb501df5f136994bb520b033fa9fbdce287507dc23b8c7ed" +dependencies = [ + "bitflags 1.3.2", + "errno", + "io-lifetimes", + "libc", + "linux-raw-sys 0.1.4", + "windows-sys 0.45.0", +] + +[[package]] +name = "rustix" +version = "0.38.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89" +dependencies = [ + "bitflags 2.5.0", + "errno", + "libc", + "linux-raw-sys 0.4.13", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustversion" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80af6f9131f277a45a3fba6ce8e2258037bb0477a67e610d3c1fe046ab31de47" + +[[package]] +name = "ryu" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" + +[[package]] +name = "safe_arch" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f398075ce1e6a179b46f51bd88d0598b92b00d3551f1a2d4ac49e771b56ac354" +dependencies = [ + "bytemuck", +] + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "scale-info" +version = "2.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c453e59a955f81fb62ee5d596b450383d699f152d350e9d23a0db2adb78e4c0" +dependencies = [ + "bitvec", + "cfg-if", + "derive_more", + "parity-scale-codec", + "scale-info-derive", + "serde", +] + +[[package]] +name = "scale-info-derive" +version = "2.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18cf6c6447f813ef19eb450e985bcce6705f9ce7660db221b59093d15c79c4b7" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "schnellru" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "772575a524feeb803e5b0fcbc6dd9f367e579488197c94c6e4023aad2305774d" +dependencies = [ + "ahash 0.8.11", + "cfg-if", + "hashbrown 0.13.2", +] + +[[package]] +name = "schnorrkel" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de18f6d8ba0aad7045f5feae07ec29899c1112584a38509a84ad7b04451eaa0" +dependencies = [ + "aead", + "arrayref", + "arrayvec 0.7.4", + "curve25519-dalek 4.1.2", + "getrandom_or_panic", + "merlin", + "rand_core 0.6.4", + "serde_bytes", + "sha2 0.10.8", + "subtle", + "zeroize", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "scratch" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3cf7c11c38cb994f3d40e8a8cde3bbd1f72a435e4c49e85d6553d8312306152" + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct", + "der", + "generic-array", + "pkcs8", + "subtle", + "zeroize", +] + +[[package]] +name = "secp256k1" +version = "0.28.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d24b59d129cdadea20aea4fb2352fa053712e5d713eee47d700cd4b2bc002f10" +dependencies = [ + "secp256k1-sys", +] + +[[package]] +name = "secp256k1-sys" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5d1746aae42c19d583c3c1a8c646bfad910498e2051c551a7f2e3c0c9fbb7eb" +dependencies = [ + "cc", +] + +[[package]] +name = "secrecy" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bd1c54ea06cfd2f6b63219704de0b9b4f72dcc2b8fdef820be6cd799780e91e" +dependencies = [ + "zeroize", +] + +[[package]] +name = "semver" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a3186ec9e65071a2095434b1f5bb24838d4e8e130f584c790f6033c79943537" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" +dependencies = [ + "serde", +] + +[[package]] +name = "semver-parser" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" + +[[package]] +name = "serde" +version = "1.0.197" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_bytes" +version = "0.11.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b8497c313fd43ab992087548117643f6fcd935cbf36f176ffda0aacf9591734" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_derive" +version = "1.0.197" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.58", +] + +[[package]] +name = "serde_json" +version = "1.0.115" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12dc5c46daa8e9fdf4f5e71b6cf9a53f2487da0e86e55808e2d35539666497dd" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_spanned" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1" +dependencies = [ + "serde", +] + +[[package]] +name = "session-keys-primitives" +version = "0.1.0" +source = "git+https://github.com/Moonsong-Labs/moonkit?branch=moonbeam-polkadot-v1.7.2#04d420f376a1445c6636926c87485519a1db3fe1" +dependencies = [ + "async-trait", + "frame-support", + "nimbus-primitives", + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-application-crypto", + "sp-consensus-babe", + "sp-core", + "sp-inherents", + "sp-keystore", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "sha2" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", +] + +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha3" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +dependencies = [ + "digest 0.10.7", + "keccak", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest 0.10.7", + "rand_core 0.6.4", +] + +[[package]] +name = "simba" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "061507c94fc6ab4ba1c9a0305018408e312e17c041eb63bef8aa726fa33aceae" +dependencies = [ + "approx", + "num-complex", + "num-traits", + "paste", + "wide", +] + +[[package]] +name = "simple-mermaid" +version = "0.1.0" +source = "git+https://github.com/kianenigma/simple-mermaid.git?rev=e48b187bcfd5cc75111acd9d241f1bd36604344b#e48b187bcfd5cc75111acd9d241f1bd36604344b" + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "slices" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2086e458a369cdca838e9f6ed04b4cc2e3ce636d99abb80c9e2eada107749cf" +dependencies = [ + "faster-hex", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "slot-range-helper" +version = "7.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#2073906e7994ca069f7f68120b05474f7565b8d2" +dependencies = [ + "enumn", + "parity-scale-codec", + "paste", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "smallvec" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" + +[[package]] +name = "sp-api" +version = "26.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "hash-db", + "log", + "parity-scale-codec", + "scale-info", + "sp-api-proc-macro", + "sp-core", + "sp-externalities", + "sp-metadata-ir", + "sp-runtime", + "sp-state-machine", + "sp-std", + "sp-trie", + "sp-version", + "thiserror", +] + +[[package]] +name = "sp-api-proc-macro" +version = "15.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "Inflector", + "blake2", + "expander", + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 2.0.58", +] + +[[package]] +name = "sp-application-crypto" +version = "30.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-io", + "sp-std", +] + +[[package]] +name = "sp-arithmetic" +version = "23.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "integer-sqrt", + "num-traits", + "parity-scale-codec", + "scale-info", + "serde", + "sp-std", + "static_assertions", +] + +[[package]] +name = "sp-ark-bls12-381" +version = "0.4.2" +source = "git+https://github.com/paritytech/arkworks-substrate#caa2eed74beb885dd07c7db5f916f2281dad818f" +dependencies = [ + "ark-bls12-381-ext", + "sp-crypto-ec-utils", +] + +[[package]] +name = "sp-ark-ed-on-bls12-381-bandersnatch" +version = "0.4.2" +source = "git+https://github.com/paritytech/arkworks-substrate#caa2eed74beb885dd07c7db5f916f2281dad818f" +dependencies = [ + "ark-ed-on-bls12-381-bandersnatch-ext", + "sp-crypto-ec-utils", +] + +[[package]] +name = "sp-authority-discovery" +version = "26.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-application-crypto", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "sp-block-builder" +version = "26.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "sp-api", + "sp-inherents", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "sp-consensus-aura" +version = "0.32.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "async-trait", + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-application-crypto", + "sp-consensus-slots", + "sp-inherents", + "sp-runtime", + "sp-std", + "sp-timestamp", +] + +[[package]] +name = "sp-consensus-babe" +version = "0.32.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "async-trait", + "parity-scale-codec", + "scale-info", + "serde", + "sp-api", + "sp-application-crypto", + "sp-consensus-slots", + "sp-core", + "sp-inherents", + "sp-runtime", + "sp-std", + "sp-timestamp", +] + +[[package]] +name = "sp-consensus-slots" +version = "0.32.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "parity-scale-codec", + "scale-info", + "serde", + "sp-std", + "sp-timestamp", +] + +[[package]] +name = "sp-core" +version = "28.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "array-bytes", + "bandersnatch_vrfs", + "bip39", + "bitflags 1.3.2", + "blake2", + "bounded-collections", + "bs58", + "dyn-clonable", + "ed25519-zebra", + "futures", + "hash-db", + "hash256-std-hasher", + "impl-serde 0.4.0", + "itertools", + "libsecp256k1", + "log", + "merlin", + "parity-scale-codec", + "parking_lot", + "paste", + "primitive-types", + "rand", + "scale-info", + "schnorrkel", + "secp256k1", + "secrecy", + "serde", + "sp-crypto-hashing", + "sp-debug-derive", + "sp-externalities", + "sp-runtime-interface", + "sp-std", + "sp-storage", + "ss58-registry", + "substrate-bip39", + "thiserror", + "tracing", + "w3f-bls", + "zeroize", +] + +[[package]] +name = "sp-core-hashing" +version = "15.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#2073906e7994ca069f7f68120b05474f7565b8d2" +dependencies = [ + "sp-crypto-hashing", +] + +[[package]] +name = "sp-crypto-ec-utils" +version = "0.10.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#2073906e7994ca069f7f68120b05474f7565b8d2" +dependencies = [ + "ark-bls12-377", + "ark-bls12-377-ext", + "ark-bls12-381", + "ark-bls12-381-ext", + "ark-bw6-761", + "ark-bw6-761-ext", + "ark-ec", + "ark-ed-on-bls12-377", + "ark-ed-on-bls12-377-ext", + "ark-ed-on-bls12-381-bandersnatch", + "ark-ed-on-bls12-381-bandersnatch-ext", + "ark-scale", + "sp-runtime-interface", + "sp-std", +] + +[[package]] +name = "sp-crypto-hashing" +version = "0.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "blake2b_simd", + "byteorder", + "digest 0.10.7", + "sha2 0.10.8", + "sha3", + "twox-hash", +] + +[[package]] +name = "sp-crypto-hashing-proc-macro" +version = "0.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "quote", + "sp-crypto-hashing", + "syn 2.0.58", +] + +[[package]] +name = "sp-debug-derive" +version = "14.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.58", +] + +[[package]] +name = "sp-externalities" +version = "0.25.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "environmental", + "parity-scale-codec", + "sp-std", + "sp-storage", +] + +[[package]] +name = "sp-genesis-builder" +version = "0.7.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "serde_json", + "sp-api", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "sp-inherents" +version = "26.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "async-trait", + "impl-trait-for-tuples", + "parity-scale-codec", + "scale-info", + "sp-runtime", + "sp-std", + "thiserror", +] + +[[package]] +name = "sp-io" +version = "30.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "bytes", + "ed25519-dalek", + "libsecp256k1", + "log", + "parity-scale-codec", + "rustversion", + "secp256k1", + "sp-core", + "sp-crypto-hashing", + "sp-externalities", + "sp-keystore", + "sp-runtime-interface", + "sp-state-machine", + "sp-std", + "sp-tracing", + "sp-trie", + "tracing", + "tracing-core", +] + +[[package]] +name = "sp-keystore" +version = "0.34.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "parity-scale-codec", + "parking_lot", + "sp-core", + "sp-externalities", + "thiserror", +] + +[[package]] +name = "sp-maybe-compressed-blob" +version = "11.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "thiserror", + "zstd", +] + +[[package]] +name = "sp-metadata-ir" +version = "0.6.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "frame-metadata", + "parity-scale-codec", + "scale-info", + "sp-std", +] + +[[package]] +name = "sp-npos-elections" +version = "26.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "parity-scale-codec", + "scale-info", + "serde", + "sp-arithmetic", + "sp-core", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "sp-offchain" +version = "26.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "sp-api", + "sp-core", + "sp-runtime", +] + +[[package]] +name = "sp-panic-handler" +version = "13.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "backtrace", + "lazy_static", + "regex", +] + +[[package]] +name = "sp-runtime" +version = "31.0.1" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "docify", + "either", + "hash256-std-hasher", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", + "paste", + "rand", + "scale-info", + "serde", + "simple-mermaid", + "sp-application-crypto", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-std", + "sp-weights", +] + +[[package]] +name = "sp-runtime-interface" +version = "24.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "bytes", + "impl-trait-for-tuples", + "parity-scale-codec", + "primitive-types", + "sp-externalities", + "sp-runtime-interface-proc-macro", + "sp-std", + "sp-storage", + "sp-tracing", + "sp-wasm-interface", + "static_assertions", +] + +[[package]] +name = "sp-runtime-interface-proc-macro" +version = "17.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "Inflector", + "expander", + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 2.0.58", +] + +[[package]] +name = "sp-session" +version = "27.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-core", + "sp-keystore", + "sp-runtime", + "sp-staking", + "sp-std", +] + +[[package]] +name = "sp-staking" +version = "26.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "impl-trait-for-tuples", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "sp-state-machine" +version = "0.35.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "hash-db", + "log", + "parity-scale-codec", + "parking_lot", + "rand", + "smallvec", + "sp-core", + "sp-externalities", + "sp-panic-handler", + "sp-std", + "sp-trie", + "thiserror", + "tracing", + "trie-db", +] + +[[package]] +name = "sp-std" +version = "14.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" + +[[package]] +name = "sp-storage" +version = "19.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "impl-serde 0.4.0", + "parity-scale-codec", + "ref-cast", + "serde", + "sp-debug-derive", + "sp-std", +] + +[[package]] +name = "sp-timestamp" +version = "26.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "async-trait", + "parity-scale-codec", + "sp-inherents", + "sp-runtime", + "sp-std", + "thiserror", +] + +[[package]] +name = "sp-tracing" +version = "16.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "parity-scale-codec", + "sp-std", + "tracing", + "tracing-core", + "tracing-subscriber", +] + +[[package]] +name = "sp-transaction-pool" +version = "26.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "sp-api", + "sp-runtime", +] + +[[package]] +name = "sp-trie" +version = "29.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "ahash 0.8.11", + "hash-db", + "lazy_static", + "memory-db", + "nohash-hasher", + "parity-scale-codec", + "parking_lot", + "rand", + "scale-info", + "schnellru", + "sp-core", + "sp-externalities", + "sp-std", + "thiserror", + "tracing", + "trie-db", + "trie-root", +] + +[[package]] +name = "sp-version" +version = "29.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "impl-serde 0.4.0", + "parity-scale-codec", + "parity-wasm", + "scale-info", + "serde", + "sp-crypto-hashing-proc-macro", + "sp-runtime", + "sp-std", + "sp-version-proc-macro", + "thiserror", +] + +[[package]] +name = "sp-version-proc-macro" +version = "13.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "parity-scale-codec", + "proc-macro2", + "quote", + "syn 2.0.58", +] + +[[package]] +name = "sp-wasm-interface" +version = "20.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "anyhow", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", + "sp-std", + "wasmtime", +] + +[[package]] +name = "sp-weights" +version = "27.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "bounded-collections", + "parity-scale-codec", + "scale-info", + "serde", + "smallvec", + "sp-arithmetic", + "sp-debug-derive", + "sp-std", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "ss58-registry" +version = "1.47.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4743ce898933fbff7bbf414f497c459a782d496269644b3d650a398ae6a487ba" +dependencies = [ + "Inflector", + "num-format", + "proc-macro2", + "quote", + "serde", + "serde_json", + "unicode-xid", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "staging-parachain-info" +version = "0.7.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#2073906e7994ca069f7f68120b05474f7565b8d2" +dependencies = [ + "cumulus-primitives-core", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "staging-xcm" +version = "7.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "array-bytes", + "bounded-collections", + "derivative", + "environmental", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", + "scale-info", + "serde", + "sp-weights", + "xcm-procedural", +] + +[[package]] +name = "staging-xcm-builder" +version = "7.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#2073906e7994ca069f7f68120b05474f7565b8d2" +dependencies = [ + "frame-support", + "frame-system", + "impl-trait-for-tuples", + "log", + "pallet-transaction-payment", + "parity-scale-codec", + "polkadot-parachain-primitives", + "scale-info", + "sp-arithmetic", + "sp-io", + "sp-runtime", + "sp-std", + "sp-weights", + "staging-xcm", + "staging-xcm-executor", +] + +[[package]] +name = "staging-xcm-executor" +version = "7.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "environmental", + "frame-benchmarking", + "frame-support", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", + "scale-info", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "sp-weights", + "staging-xcm", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "storage-proof-primitives" +version = "0.1.0" +source = "git+https://github.com/moonbeam-foundation/moonbeam?rev=runtime-3001#c54b0ac1563840f8fbb18587f045240997728a73" +dependencies = [ + "cumulus-primitives-core", + "frame-support", + "sp-core", + "sp-runtime", + "sp-state-machine", + "sp-std", + "sp-trie", +] + +[[package]] +name = "strum" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "rustversion", + "syn 1.0.109", +] + +[[package]] +name = "substrate-bip39" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a7590dc041b9bc2825e52ce5af8416c73dbe9d0654402bfd4b4941938b94d8f" +dependencies = [ + "hmac 0.11.0", + "pbkdf2", + "schnorrkel", + "sha2 0.9.9", + "zeroize", +] + +[[package]] +name = "substrate-bn" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b5bbfa79abbae15dd642ea8176a21a635ff3c00059961d1ea27ad04e5b441c" +dependencies = [ + "byteorder", + "crunchy", + "lazy_static", + "rand", + "rustc-hex", +] + +[[package]] +name = "substrate-fixed" +version = "0.5.9" +source = "git+https://github.com/encointer/substrate-fixed#879c58bcc6fd676a74315dcd38b598f28708b0b5" +dependencies = [ + "parity-scale-codec", + "scale-info", + "substrate-typenum", +] + +[[package]] +name = "substrate-typenum" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f0091e93c2c75b233ae39424c52cb8a662c0811fb68add149e20e5d7e8a788" +dependencies = [ + "parity-scale-codec", + "scale-info", +] + +[[package]] +name = "substrate-wasm-builder" +version = "17.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#2073906e7994ca069f7f68120b05474f7565b8d2" +dependencies = [ + "build-helper", + "cargo_metadata", + "console", + "filetime", + "parity-wasm", + "sp-maybe-compressed-blob", + "strum", + "tempfile", + "toml", + "walkdir", + "wasm-opt", +] + +[[package]] +name = "subtle" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44cfb93f38070beee36b3fef7d4f5a16f27751d94b187b666a5cc5e9b0d30687" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "target-lexicon" +version = "0.12.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f" + +[[package]] +name = "tempfile" +version = "3.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" +dependencies = [ + "cfg-if", + "fastrand", + "rustix 0.38.32", + "windows-sys 0.52.0", +] + +[[package]] +name = "termcolor" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "thiserror" +version = "1.0.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.58", +] + +[[package]] +name = "thread_local" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + +[[package]] +name = "tinyvec" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "toml" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.22.9", +] + +[[package]] +name = "toml_datetime" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.2.6", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.20.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" +dependencies = [ + "indexmap 2.2.6", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" +dependencies = [ + "indexmap 2.2.6", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.22.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e40bb779c5187258fd7aad0eb68cb8706a0a81fa712fbea808ab43c4b8374c4" +dependencies = [ + "indexmap 2.2.6", + "serde", + "serde_spanned", + "toml_datetime", + "winnow 0.6.5", +] + +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.58", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-serde" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" +dependencies = [ + "serde", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71" +dependencies = [ + "ansi_term", + "chrono", + "lazy_static", + "matchers", + "regex", + "serde", + "serde_json", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", + "tracing-serde", +] + +[[package]] +name = "trie-db" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff28e0f815c2fea41ebddf148e008b077d2faddb026c9555b29696114d602642" +dependencies = [ + "hash-db", + "hashbrown 0.13.2", + "log", + "rustc-hex", + "smallvec", +] + +[[package]] +name = "trie-root" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4ed310ef5ab98f5fa467900ed906cb9232dd5376597e00fd4cba2a449d06c0b" +dependencies = [ + "hash-db", +] + +[[package]] +name = "tt-call" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f195fd851901624eee5a58c4bb2b4f06399148fcd0ed336e6f1cb60a9881df" + +[[package]] +name = "twox-hash" +version = "1.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" +dependencies = [ + "cfg-if", + "digest 0.10.7", + "rand", + "static_assertions", +] + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "uint" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" +dependencies = [ + "byteorder", + "crunchy", + "hex", + "static_assertions", +] + +[[package]] +name = "unicode-bidi" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unicode-normalization" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-width" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" + +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + +[[package]] +name = "url" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "w3f-bls" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7335e4c132c28cc43caef6adb339789e599e39adbe78da0c4d547fad48cbc331" +dependencies = [ + "ark-bls12-377", + "ark-bls12-381", + "ark-ec", + "ark-ff", + "ark-serialize", + "ark-serialize-derive", + "arrayref", + "constcat", + "digest 0.10.7", + "rand", + "rand_chacha 0.3.1", + "rand_core 0.6.4", + "sha2 0.10.8", + "sha3", + "thiserror", + "zeroize", +] + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.58", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.58", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" + +[[package]] +name = "wasm-opt" +version = "0.116.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fd87a4c135535ffed86123b6fb0f0a5a0bc89e50416c942c5f0662c645f679c" +dependencies = [ + "anyhow", + "libc", + "strum", + "strum_macros", + "tempfile", + "thiserror", + "wasm-opt-cxx-sys", + "wasm-opt-sys", +] + +[[package]] +name = "wasm-opt-cxx-sys" +version = "0.116.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c57b28207aa724318fcec6575fe74803c23f6f266fce10cbc9f3f116762f12e" +dependencies = [ + "anyhow", + "cxx", + "cxx-build", + "wasm-opt-sys", +] + +[[package]] +name = "wasm-opt-sys" +version = "0.116.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a1cce564dc768dacbdb718fc29df2dba80bd21cb47d8f77ae7e3d95ceb98cbe" +dependencies = [ + "anyhow", + "cc", + "cxx", + "cxx-build", +] + +[[package]] +name = "wasmparser" +version = "0.102.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48134de3d7598219ab9eaf6b91b15d8e50d31da76b8519fe4ecfcec2cf35104b" +dependencies = [ + "indexmap 1.9.3", + "url", +] + +[[package]] +name = "wasmtime" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f907fdead3153cb9bfb7a93bbd5b62629472dc06dee83605358c64c52ed3dda9" +dependencies = [ + "anyhow", + "bincode", + "cfg-if", + "indexmap 1.9.3", + "libc", + "log", + "object 0.30.4", + "once_cell", + "paste", + "psm", + "serde", + "target-lexicon", + "wasmparser", + "wasmtime-environ", + "wasmtime-jit", + "wasmtime-runtime", + "windows-sys 0.45.0", +] + +[[package]] +name = "wasmtime-asm-macros" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3b9daa7c14cd4fa3edbf69de994408d5f4b7b0959ac13fa69d465f6597f810d" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "wasmtime-environ" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a990198cee4197423045235bf89d3359e69bd2ea031005f4c2d901125955c949" +dependencies = [ + "anyhow", + "cranelift-entity", + "gimli 0.27.3", + "indexmap 1.9.3", + "log", + "object 0.30.4", + "serde", + "target-lexicon", + "thiserror", + "wasmparser", + "wasmtime-types", +] + +[[package]] +name = "wasmtime-jit" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0de48df552cfca1c9b750002d3e07b45772dd033b0b206d5c0968496abf31244" +dependencies = [ + "addr2line 0.19.0", + "anyhow", + "bincode", + "cfg-if", + "cpp_demangle", + "gimli 0.27.3", + "log", + "object 0.30.4", + "rustc-demangle", + "serde", + "target-lexicon", + "wasmtime-environ", + "wasmtime-jit-icache-coherence", + "wasmtime-runtime", + "windows-sys 0.45.0", +] + +[[package]] +name = "wasmtime-jit-debug" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e0554b84c15a27d76281d06838aed94e13a77d7bf604bbbaf548aa20eb93846" +dependencies = [ + "once_cell", +] + +[[package]] +name = "wasmtime-jit-icache-coherence" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aecae978b13f7f67efb23bd827373ace4578f2137ec110bbf6a4a7cde4121bbd" +dependencies = [ + "cfg-if", + "libc", + "windows-sys 0.45.0", +] + +[[package]] +name = "wasmtime-runtime" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "658cf6f325232b6760e202e5255d823da5e348fdea827eff0a2a22319000b441" +dependencies = [ + "anyhow", + "cc", + "cfg-if", + "indexmap 1.9.3", + "libc", + "log", + "mach", + "memfd", + "memoffset", + "paste", + "rand", + "rustix 0.36.17", + "wasmtime-asm-macros", + "wasmtime-environ", + "wasmtime-jit-debug", + "windows-sys 0.45.0", +] + +[[package]] +name = "wasmtime-types" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4f6fffd2a1011887d57f07654dd112791e872e3ff4a2e626aee8059ee17f06f" +dependencies = [ + "cranelift-entity", + "serde", + "thiserror", + "wasmparser", +] + +[[package]] +name = "wide" +version = "0.7.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89beec544f246e679fc25490e3f8e08003bc4bf612068f325120dad4cea02c1c" +dependencies = [ + "bytemuck", + "safe_arch", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" +dependencies = [ + "winapi", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-core" +version = "0.51.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" +dependencies = [ + "windows-targets 0.48.5", +] + +[[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.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.4", +] + +[[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.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b" +dependencies = [ + "windows_aarch64_gnullvm 0.52.4", + "windows_aarch64_msvc 0.52.4", + "windows_i686_gnu 0.52.4", + "windows_i686_msvc 0.52.4", + "windows_x86_64_gnu 0.52.4", + "windows_x86_64_gnullvm 0.52.4", + "windows_x86_64_msvc 0.52.4", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03" + +[[package]] +name = "windows_x86_64_gnullvm" +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.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8" + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8" +dependencies = [ + "memchr", +] + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "xcm-primitives" +version = "0.1.0" +source = "git+https://github.com/Moonsong-Labs/moonkit?branch=moonbeam-polkadot-v1.7.2#04d420f376a1445c6636926c87485519a1db3fe1" +dependencies = [ + "frame-support", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", + "sp-core", + "sp-runtime", + "sp-std", + "staging-xcm", +] + +[[package]] +name = "xcm-primitives" +version = "0.1.1" +source = "git+https://github.com/moonbeam-foundation/moonbeam?rev=runtime-3001#c54b0ac1563840f8fbb18587f045240997728a73" +dependencies = [ + "cumulus-primitives-core", + "ethereum", + "ethereum-types", + "frame-benchmarking", + "frame-support", + "frame-system", + "hex", + "impl-trait-for-tuples", + "log", + "orml-traits", + "pallet-staking", + "parity-scale-codec", + "polkadot-runtime-common", + "scale-info", + "serde", + "sha3", + "sp-io", + "sp-runtime", + "sp-std", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", +] + +[[package]] +name = "xcm-procedural" +version = "7.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.7.2#cf2e9733f584878cb0987a99c56840165e778bde" +dependencies = [ + "Inflector", + "proc-macro2", + "quote", + "syn 2.0.58", +] + +[[package]] +name = "zerocopy" +version = "0.7.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.58", +] + +[[package]] +name = "zeroize" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.58", +] + +[[package]] +name = "zstd" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a27595e173641171fc74a1232b7b1c7a7cb6e18222c11e9dfb9888fa424c53c" +dependencies = [ + "zstd-safe", +] + +[[package]] +name = "zstd-safe" +version = "6.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee98ffd0b48ee95e6c5168188e44a54550b1564d9d530ee21d5f0eaed1069581" +dependencies = [ + "libc", + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "2.0.10+zstd.1.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c253a4914af5bafc8fa8c86ee400827e83cf6ec01195ec1f1ed8441bf00d65aa" +dependencies = [ + "cc", + "pkg-config", +] diff --git a/tracing/3001/Cargo.toml b/tracing/3001/Cargo.toml new file mode 100644 index 00000000..e13526ca --- /dev/null +++ b/tracing/3001/Cargo.toml @@ -0,0 +1,444 @@ +[workspace] +members = [ + "runtime/moonbase", + "runtime/moonbeam", + "runtime/moonriver", +] +resolver = "2" + +[workspace.package] +authors = ["PureStake"] +repository = "https://github.com/PureStake/moonbeam" + +[workspace.dependencies] +# Dependencies are split into 2 groups: wasm and client. +# - "wasm" dependencies requires to be no_std compatible, which often requires +# `default-features = false`. When used in a client-side crate the "std" feature should be enabled +# there if it exists. +# - "client" dependencies are only used in the client, and thus don't need to be no_std compatible. + +# Moonbeam (wasm) +account = { default-features = false , git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } +evm-tracing-events = { path = "shared/primitives/rpc/evm-tracing-events", default-features = false , features = ["runtime-1600"] } +moonbeam-core-primitives = { default-features = false , git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } +moonbeam-primitives-ext = { path = "shared/primitives/ext", default-features = false } +moonbeam-rpc-primitives-debug = { path = "shared/primitives/rpc/debug", default-features = false, features = [ + "runtime-3000", +] } +moonbeam-rpc-primitives-txpool = { default-features = false , git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } +storage-proof-primitives = { default-features = false , git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } + +moonbeam-evm-tracer = { path = "shared/runtime/evm_tracer", default-features = false } +moonbeam-relay-encoder = { default-features = false , git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } +moonbeam-runtime-common = { path = "runtime/common", default-features = false } + +moonbeam-xcm-benchmarks = { default-features = false , git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } +pallet-asset-manager = { default-features = false , git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } +pallet-erc20-xcm-bridge = { default-features = false , git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } +pallet-ethereum-xcm = { default-features = false , git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } + +pallet-evm-precompile-author-mapping = { default-features = false , git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } +pallet-evm-precompile-balances-erc20 = { default-features = false , git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } +pallet-evm-precompile-batch = { default-features = false , git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } +pallet-evm-precompile-call-permit = { default-features = false , git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } +pallet-evm-precompile-collective = { default-features = false , git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } +pallet-evm-precompile-conviction-voting = { default-features = false , git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } +pallet-evm-precompile-crowdloan-rewards = { default-features = false , git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } +pallet-evm-precompile-gmp = { default-features = false , git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } +pallet-evm-precompile-identity = { default-features = false , git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } +pallet-evm-precompile-parachain-staking = { default-features = false , git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } +pallet-evm-precompile-preimage = { default-features = false , git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } +pallet-evm-precompile-proxy = { default-features = false , git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } +pallet-evm-precompile-randomness = { default-features = false , git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } +pallet-evm-precompile-referenda = { default-features = false , git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } +pallet-evm-precompile-registry = { default-features = false , git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } +pallet-evm-precompile-relay-encoder = { default-features = false , git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } +pallet-evm-precompile-relay-verifier = { default-features = false , git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } +pallet-evm-precompile-xcm-transactor = { default-features = false , git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } +pallet-evm-precompile-xcm-utils = { default-features = false , git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } +pallet-evm-precompile-xtokens = { default-features = false , git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } +pallet-evm-precompileset-assets-erc20 = { default-features = false , git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } +pallet-moonbeam-orbiters = { default-features = false , git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } +pallet-parachain-staking = { default-features = false , git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } +pallet-precompile-benchmarks = { default-features = false , git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } +pallet-proxy-genesis-companion = { default-features = false , git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } +pallet-xcm-transactor = { default-features = false , git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } +pallet-moonbeam-lazy-migrations = { default-features = false , git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } +precompile-utils = { default-features = false , git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } +xcm-primitives = { default-features = false , git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } + +pallet-crowdloan-rewards = { git = "https://github.com/moonbeam-foundation/crowdloan-rewards", branch = "moonbeam-polkadot-v1.7.2", default-features = false } + +# Moonbeam (client) +moonbeam-cli = { default-features = false , git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } +moonbeam-cli-opt = { default-features = false , git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } +moonbeam-service = { default-features = false , git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } + +manual-xcm-rpc = { git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } +moonbeam-client-evm-tracing = { git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } +moonbeam-finality-rpc = { git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } +moonbeam-rpc-core-debug = { git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } +moonbeam-rpc-core-trace = { git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } +moonbeam-rpc-core-txpool = { git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } +moonbeam-rpc-core-types = { git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } +moonbeam-rpc-debug = { git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } +moonbeam-rpc-trace = { git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } +moonbeam-rpc-txpool = { git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } +moonbeam-vrf = { git = "https://github.com/moonbeam-foundation/moonbeam", rev = "runtime-3001" } + +moonbase-runtime = { path = "runtime/moonbase" } +moonbeam-runtime = { path = "runtime/moonbeam" } +moonriver-runtime = { path = "runtime/moonriver" } + +frame-benchmarking = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +frame-executive = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +frame-support = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +frame-system = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +frame-system-benchmarking = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +frame-system-rpc-runtime-api = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +frame-try-runtime = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +pallet-assets = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +pallet-balances = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +pallet-collective = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +pallet-conviction-voting = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +pallet-identity = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +pallet-message-queue = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +pallet-multisig = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +pallet-preimage = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +pallet-proxy = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +pallet-referenda = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +pallet-root-testing = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +pallet-scheduler = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +pallet-society = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +pallet-staking = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +pallet-sudo = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +pallet-timestamp = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +pallet-transaction-payment = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +pallet-treasury = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +pallet-utility = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +pallet-whitelist = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +parity-scale-codec = { version = "3.2.2", default-features = false, features = [ + "derive", +] } +scale-info = { version = "2.0", default-features = false, features = [ + "derive", +] } +sp-api = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +sp-application-crypto = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +sp-block-builder = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +sp-consensus-babe = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +sp-consensus-slots = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +sp-core = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +sp-debug-derive = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +sp-externalities = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +sp-inherents = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +sp-io = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +sp-keystore = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +sp-offchain = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +sp-runtime = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +sp-runtime-interface = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +sp-session = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +sp-std = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +sp-state-machine = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +sp-transaction-pool = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +sp-trie = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +sp-version = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +sp-weights = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +sp-genesis-builder = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +substrate-fixed = { git = "https://github.com/encointer/substrate-fixed", default-features = false } + +# Substrate (client) +frame-benchmarking-cli = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +pallet-transaction-payment-rpc = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +sc-basic-authorship = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +sc-block-builder = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +sc-chain-spec = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +sc-cli = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +sc-client-api = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +sc-client-db = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +sc-consensus = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +sc-consensus-grandpa = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +sc-consensus-manual-seal = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +sc-executor = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +sc-informant = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +sc-network = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +sc-network-common = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +sc-network-sync = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +sc-offchain = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +sc-rpc = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +sc-rpc-api = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +sc-service = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +sc-sysinfo = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +sc-telemetry = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +sc-tracing = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +sc-transaction-pool = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +sc-transaction-pool-api = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +sc-utils = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +sp-blockchain = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +sp-consensus = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +sp-storage = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +sp-timestamp = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +sp-wasm-interface = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +substrate-build-script-utils = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +substrate-frame-rpc-system = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +substrate-prometheus-endpoint = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +substrate-test-client = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +substrate-test-runtime = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +substrate-test-runtime-client = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +substrate-wasm-builder = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +try-runtime-cli = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } + +# Frontier (wasm) +ethereum = { version = "0.15.0", default-features = false, features = [ + "with-codec", +] } +ethereum-types = { version = "0.14", default-features = false } +evm = { git = "https://github.com/moonbeam-foundation/evm", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +evm-gasometer = { git = "https://github.com/moonbeam-foundation/evm", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +evm-runtime = { git = "https://github.com/moonbeam-foundation/evm", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +fp-ethereum = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +fp-evm = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +fp-rpc = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +fp-self-contained = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +pallet-ethereum = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-v1.7.2", default-features = false, features = [ + "forbid-evm-reentrancy", +] } +pallet-evm = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-v1.7.2", default-features = false, features = [ + "forbid-evm-reentrancy", +] } +pallet-evm-chain-id = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +pallet-evm-precompile-blake2 = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +pallet-evm-precompile-bn128 = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +pallet-evm-precompile-dispatch = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +pallet-evm-precompile-modexp = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +pallet-evm-precompile-sha3fips = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +pallet-evm-precompile-simple = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +pallet-evm-precompile-storage-cleaner = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-v1.7.2", default-features = false } + +# Frontier (client) +fc-consensus = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-v1.7.2" } +fc-db = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-v1.7.2" } +fc-api = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-v1.7.2" } +fc-mapping-sync = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-v1.7.2" } +fc-rpc = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-v1.7.2", features = [ + "rpc-binary-search-estimate", +] } +fc-rpc-core = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-v1.7.2" } +fc-storage = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-v1.7.2" } +fp-consensus = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-v1.7.2" } +fp-storage = { git = "https://github.com/moonbeam-foundation/frontier", branch = "moonbeam-polkadot-v1.7.2" } + +# Cumulus (wasm) +cumulus-pallet-dmp-queue = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +cumulus-pallet-parachain-system = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false, features = [ + "parameterized-consensus-hook", +] } +cumulus-pallet-xcm = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +cumulus-pallet-xcmp-queue = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +cumulus-primitives-core = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +cumulus-primitives-parachain-inherent = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +cumulus-primitives-timestamp = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +cumulus-primitives-utility = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +cumulus-test-relay-sproof-builder = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +parachain-info = { package = "staging-parachain-info", git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +parachains-common = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } + +# Cumulus (client) +cumulus-client-cli = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +cumulus-client-collator = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +cumulus-client-consensus-common = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +cumulus-client-consensus-proposer = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +cumulus-client-consensus-relay-chain = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +cumulus-client-network = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +cumulus-client-service = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +cumulus-client-parachain-inherent = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +cumulus-relay-chain-inprocess-interface = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +cumulus-relay-chain-interface = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +cumulus-relay-chain-minimal-node = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +cumulus-relay-chain-rpc-interface = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } + +# Polkadot / XCM (wasm) +orml-traits = { git = "https://github.com/moonbeam-foundation/open-runtime-module-library", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +orml-xcm-support = { git = "https://github.com/moonbeam-foundation/open-runtime-module-library", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +orml-xtokens = { git = "https://github.com/moonbeam-foundation/open-runtime-module-library", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +pallet-xcm = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +pallet-xcm-benchmarks = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +polkadot-core-primitives = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +polkadot-parachain = { package = "polkadot-parachain-primitives", git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +polkadot-runtime-common = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +polkadot-runtime-parachains = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +xcm = { package = "staging-xcm", git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +xcm-builder = { package = "staging-xcm-builder", git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +xcm-executor = { package = "staging-xcm-executor", git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2", default-features = false } + +# Polkadot / XCM (client) +#kusama-runtime = { package = "staging-kusama-runtime", git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +polkadot-cli = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +polkadot-primitives = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +#polkadot-runtime = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +polkadot-service = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +rococo-runtime = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +westend-runtime = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } +xcm-simulator = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } + +# Moonkit (wasm) +async-backing-primitives = { git = "https://github.com/Moonsong-Labs/moonkit", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +moonkit-xcm-primitives = { package = "xcm-primitives", git = "https://github.com/Moonsong-Labs/moonkit", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +nimbus-primitives = { git = "https://github.com/Moonsong-Labs/moonkit", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +pallet-async-backing = { git = "https://github.com/Moonsong-Labs/moonkit", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +pallet-author-inherent = { git = "https://github.com/Moonsong-Labs/moonkit", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +pallet-author-mapping = { git = "https://github.com/Moonsong-Labs/moonkit", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +pallet-author-slot-filter = { git = "https://github.com/Moonsong-Labs/moonkit", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +pallet-emergency-para-xcm = { git = "https://github.com/Moonsong-Labs/moonkit", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +pallet-evm-precompile-xcm = { git = "https://github.com/Moonsong-Labs/moonkit", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +pallet-maintenance-mode = { git = "https://github.com/Moonsong-Labs/moonkit", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +pallet-migrations = { git = "https://github.com/Moonsong-Labs/moonkit", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +pallet-randomness = { git = "https://github.com/Moonsong-Labs/moonkit", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +pallet-relay-storage-roots = { git = "https://github.com/Moonsong-Labs/moonkit", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +session-keys-primitives = { git = "https://github.com/Moonsong-Labs/moonkit", branch = "moonbeam-polkadot-v1.7.2", default-features = false } + +# Moonkit (client) +nimbus-consensus = { git = "https://github.com/Moonsong-Labs/moonkit", branch = "moonbeam-polkadot-v1.7.2" } + +# Other (wasm) +affix = "0.1.2" +async-trait = { version = "0.1.42" } +blake2-rfc = { version = "0.2.18", default-features = false } +derive_more = "0.99" +environmental = { version = "1.1.2", default-features = false } +frame-metadata = { version = "16.0.0", default-features = false, features = [ + "current", +] } +hex = { version = "0.4.3", default-features = false } +hex-literal = { version = "0.3.4" } +impl-serde = { version = "0.3.1", default-features = false } +impl-trait-for-tuples = "0.2.1" +libsecp256k1 = { version = "0.7", default-features = false } +log = { version = "0.4", default-features = false } +num_enum = { version = "0.5.3", default-features = false } +paste = "1.0.6" +rlp = { version = "0.5", default-features = false } +rustc-hex = { version = "2.0.1", default-features = false } +serde = { version = "1.0.101", default-features = false } +sha3 = { version = "0.10", default-features = false } +slices = "0.2.0" +smallvec = "1.8.0" +strum = { version = "0.24", default-features = false, features = ["derive"] } +strum_macros = "0.24" + +# Other (client) + +assert_cmd = "2.0.10" +async-io = "1.3" +bip32 = { version = "0.5.1", default-features = false, features = ["bip39"] } +clap = { version = "4.0.9", features = ["derive"] } +clap-num = "=1.1.1" +exit-future = "0.2" +flume = "0.10.9" +futures = { version = "0.3.21" } +jsonrpsee = { version = "0.20.3", default-features = false } +maplit = "1.0.2" +nix = "0.23" +parking_lot = "0.12.0" +primitive-types = "0.12.0" +prometheus = { version = "0.13.0", default-features = false } +rand = "0.8.5" +serde_json = { version = "1.0" } +similar-asserts = "1.1.0" +tempfile = "3.2.0" +tiny-bip39 = { version = "0.8", default-features = false } +schnorrkel = { version = "0.11.4", default-features = false, features = [ + "preaudit_deprecated", +] } +tokio = { version = "1.36" } +tracing = "0.1.34" +tracing-core = "0.1.29" +trie-root = "0.15.2" +url = "2.2.2" + +# The list of dependencies below (which can be both direct and indirect dependencies) are crates +# that are suspected to be CPU-intensive, and that are unlikely to require debugging (as some of +# their debug info might be missing) or to require to be frequently recompiled. We compile these +# dependencies with `opt-level=3` even in "dev" mode in order to make "dev" mode more usable. +# The majority of these crates are cryptographic libraries. +# +# Note that this does **not** affect crates that depend on Moonbeam. In other words, if you add +# a dependency on Moonbeam, you have to copy-paste this list in your own `Cargo.toml` (assuming +# that you want the same list). This list is only relevant when running `cargo build` from within +# the Moonbeam workspace. +# +# If you see an error mentioning "profile package spec ... did not match any packages", it +# probably concerns this list. +# +# This list is ordered alphabetically. +[profile.dev.package] +blake2 = { opt-level = 3 } +blake2b_simd = { opt-level = 3 } +chacha20poly1305 = { opt-level = 3 } +cranelift-codegen = { opt-level = 3 } +cranelift-wasm = { opt-level = 3 } +crc32fast = { opt-level = 3 } +crossbeam-deque = { opt-level = 3 } +crypto-mac = { opt-level = 3 } +curve25519-dalek = { opt-level = 3 } +ed25519-zebra = { opt-level = 3 } +flate2 = { opt-level = 3 } +futures-channel = { opt-level = 3 } +hash-db = { opt-level = 3 } +hashbrown = { opt-level = 3 } +hmac = { opt-level = 3 } +httparse = { opt-level = 3 } +integer-sqrt = { opt-level = 3 } +k256 = { opt-level = 3 } +keccak = { opt-level = 3 } +libm = { opt-level = 3 } +librocksdb-sys = { opt-level = 3 } +libsecp256k1 = { opt-level = 3 } +libz-sys = { opt-level = 3 } +mio = { opt-level = 3 } +nalgebra = { opt-level = 3 } +num-bigint = { opt-level = 3 } +parking_lot = { opt-level = 3 } +parking_lot_core = { opt-level = 3 } +percent-encoding = { opt-level = 3 } +primitive-types = { opt-level = 3 } +ring = { opt-level = 3 } +rustls = { opt-level = 3 } +secp256k1 = { opt-level = 3 } +sha2 = { opt-level = 3 } +sha3 = { opt-level = 3 } +smallvec = { opt-level = 3 } +snow = { opt-level = 3 } +twox-hash = { opt-level = 3 } +uint = { opt-level = 3 } +wasmi = { opt-level = 3 } +x25519-dalek = { opt-level = 3 } +yamux = { opt-level = 3 } +zeroize = { opt-level = 3 } + +# make sure dev builds with backtrace do +# not slow us down +[profile.dev.package.backtrace] +inherits = "release" + +[profile.production] +codegen-units = 1 +incremental = false +inherits = "release" +lto = true + +[profile.release] +debug-assertions = true # Enable debug-assert! for non-production profiles +opt-level = 3 +# Moonbeam runtime requires unwinding. +panic = "unwind" + +[profile.testnet] +debug = 1 # debug symbols are useful for profilers +debug-assertions = true # Enable debug-assert! for non-production profiles +inherits = "release" +overflow-checks = true + +[patch."https://github.com/paritytech/polkadot-sdk"] +sp-crypto-ec-utils = { git = "https://github.com/moonbeam-foundation/polkadot-sdk", branch = "moonbeam-polkadot-v1.7.2" } diff --git a/tracing/3001/runtime/common/Cargo.toml b/tracing/3001/runtime/common/Cargo.toml new file mode 100644 index 00000000..a6e2387e --- /dev/null +++ b/tracing/3001/runtime/common/Cargo.toml @@ -0,0 +1,151 @@ +[package] +authors = { workspace = true } +description = "Common code shared between runtimes" +edition = "2021" +homepage = "https://moonbeam.network" +license = "GPL-3.0-only" +name = "moonbeam-runtime-common" +version = "0.8.0-dev" + +[dependencies] +hex-literal = "0.3.4" +impl-trait-for-tuples = "0.2.1" +log = "0.4" + +# Moonbeam +moonbeam-core-primitives = { workspace = true } +moonbeam-xcm-benchmarks = { workspace = true } +pallet-asset-manager = { workspace = true } +pallet-author-mapping = { workspace = true } +pallet-conviction-voting = { workspace = true } +pallet-ethereum-xcm = { workspace = true } +pallet-migrations = { workspace = true } +pallet-moonbeam-lazy-migrations = { workspace = true } +pallet-parachain-staking = { workspace = true } +pallet-precompile-benchmarks = { workspace = true } +pallet-randomness = { workspace = true } +pallet-relay-storage-roots = { workspace = true } +pallet-xcm-transactor = { workspace = true } +precompile-utils = { workspace = true } +xcm-primitives = { workspace = true } + +# Substrate +cumulus-pallet-parachain-system = { workspace = true } +cumulus-pallet-xcmp-queue = { workspace = true } +frame-benchmarking = { workspace = true } +frame-support = { workspace = true } +frame-system = { workspace = true } +pallet-assets = { workspace = true } +pallet-balances = { workspace = true } +pallet-collective = { workspace = true } +pallet-crowdloan-rewards = { workspace = true } +pallet-identity = { workspace = true } +pallet-moonbeam-orbiters = { workspace = true } +pallet-multisig = { workspace = true } +pallet-preimage = { workspace = true } +pallet-proxy = { workspace = true } +pallet-referenda = { workspace = true } +pallet-scheduler = { workspace = true } +pallet-sudo = { workspace = true } +pallet-timestamp = { workspace = true } +pallet-treasury = { workspace = true } +pallet-utility = { workspace = true } +pallet-whitelist = { workspace = true } +pallet-xcm = { workspace = true } +sp-api = { workspace = true } +sp-consensus-slots = { workspace = true } +sp-core = { workspace = true } +sp-runtime = { workspace = true } +sp-std = { workspace = true } +sp-genesis-builder = { workspace = true } +frame-try-runtime = { workspace = true } + +# Frontier +fp-ethereum = { workspace = true } +fp-evm = { workspace = true } +pallet-evm = { workspace = true, features = ["forbid-evm-reentrancy"] } +pallet-evm-chain-id = { workspace = true } + +# Moonkit +nimbus-primitives = { workspace = true } +pallet-async-backing = { workspace = true } +pallet-author-inherent = { workspace = true } +pallet-author-slot-filter = { workspace = true } + +# Polkadot +xcm = { workspace = true } +xcm-builder = { workspace = true } +xcm-executor = { workspace = true } + +# Parity +parity-scale-codec = { workspace = true } + +account = { workspace = true } + +[features] +std = [ + "cumulus-pallet-parachain-system/std", + "fp-ethereum/std", + "fp-evm/std", + "frame-support/std", + "moonbeam-core-primitives/std", + "pallet-asset-manager/std", + "pallet-async-backing/std", + "pallet-author-inherent/std", + "pallet-author-mapping/std", + "pallet-ethereum-xcm/std", + "pallet-evm/std", + "pallet-migrations/std", + "pallet-parachain-staking/std", + "pallet-randomness/std", + "pallet-referenda/std", + "pallet-scheduler/std", + "pallet-xcm-transactor/std", + "pallet-moonbeam-lazy-migrations/std", + "pallet-identity/std", + "parity-scale-codec/std", + "precompile-utils/std", + "sp-consensus-slots/std", + "sp-core/std", + "sp-runtime/std", + "sp-std/std", + "sp-genesis-builder/std", + "xcm-executor/std", + "xcm/std", + "account/std", +] +runtime-benchmarks = [ + "cumulus-pallet-parachain-system/runtime-benchmarks", + "cumulus-pallet-xcmp-queue/runtime-benchmarks", + "frame-benchmarking/runtime-benchmarks", + "pallet-asset-manager/runtime-benchmarks", + "pallet-assets/runtime-benchmarks", + "pallet-author-inherent/runtime-benchmarks", + "pallet-author-mapping/runtime-benchmarks", + "pallet-author-slot-filter/runtime-benchmarks", + "pallet-balances/runtime-benchmarks", + "pallet-conviction-voting/runtime-benchmarks", + "pallet-crowdloan-rewards/runtime-benchmarks", + "pallet-ethereum-xcm/runtime-benchmarks", + "pallet-evm/runtime-benchmarks", + "pallet-identity/runtime-benchmarks", + "pallet-moonbeam-orbiters/runtime-benchmarks", + "pallet-multisig/runtime-benchmarks", + "pallet-parachain-staking/runtime-benchmarks", + "pallet-preimage/runtime-benchmarks", + "pallet-proxy/runtime-benchmarks", + "pallet-randomness/runtime-benchmarks", + "pallet-referenda/runtime-benchmarks", + "pallet-referenda/runtime-benchmarks", + "pallet-scheduler/runtime-benchmarks", + "pallet-sudo/runtime-benchmarks", + "pallet-timestamp/runtime-benchmarks", + "pallet-treasury/runtime-benchmarks", + "pallet-utility/runtime-benchmarks", + "pallet-whitelist/runtime-benchmarks", + "pallet-xcm-transactor/runtime-benchmarks", + "pallet-xcm/runtime-benchmarks", + "pallet-moonbeam-lazy-migrations/runtime-benchmarks", + "moonbeam-xcm-benchmarks/runtime-benchmarks", +] +try-runtime = ["cumulus-pallet-parachain-system/try-runtime", "frame-support/try-runtime", "pallet-migrations/try-runtime"] diff --git a/tracing/3001/runtime/common/src/apis.rs b/tracing/3001/runtime/common/src/apis.rs new file mode 100644 index 00000000..70876799 --- /dev/null +++ b/tracing/3001/runtime/common/src/apis.rs @@ -0,0 +1,1062 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +#[macro_export] +macro_rules! impl_runtime_apis_plus_common { + {$($custom:tt)*} => { + + #[cfg(feature = "evm-tracing")] + // Helper function to replay the "on_idle" hook for all pallets, we need this for + // evm-tracing because some ethereum-xcm transactions might be executed at on_idle. + // + // We need to make sure that we replay on_idle exactly the same way as the + // original block execution, but unfortunatly frame executive diosn't provide a function + // to replay only on_idle, so we need to copy here some code inside frame executive. + fn replay_on_idle() { + use frame_system::pallet_prelude::BlockNumberFor; + use frame_support::traits::OnIdle; + + let weight = >::block_weight(); + let max_weight = < + ::BlockWeights as + frame_support::traits::Get<_> + >::get().max_block; + let remaining_weight = max_weight.saturating_sub(weight.total()); + if remaining_weight.all_gt(Weight::zero()) { + let _ = >>::on_idle( + >::block_number(), + remaining_weight, + ); + } + } + + impl_runtime_apis! { + $($custom)* + + 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()) + } + + fn metadata_at_version(version: u32) -> Option { + Runtime::metadata_at_version(version) + } + + fn metadata_versions() -> Vec { + Runtime::metadata_versions() + } + } + + 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_offchain::OffchainWorkerApi for Runtime { + fn offchain_worker(header: &::Header) { + Executive::offchain_worker(header) + } + } + + impl sp_session::SessionKeys for Runtime { + fn decode_session_keys( + encoded: Vec, + ) -> Option, sp_core::crypto::KeyTypeId)>> { + opaque::SessionKeys::decode_into_raw_public_keys(&encoded) + } + + fn generate_session_keys(seed: Option>) -> Vec { + opaque::SessionKeys::generate(seed) + } + } + + impl sp_genesis_builder::GenesisBuilder for Runtime { + fn create_default_config() -> Vec { + frame_support::genesis_builder_helper::create_default_config::() + } + + fn build_config(config: Vec) -> sp_genesis_builder::Result { + frame_support::genesis_builder_helper::build_config::(config) + } + } + + impl frame_system_rpc_runtime_api::AccountNonceApi for Runtime { + fn account_nonce(account: AccountId) -> Index { + System::account_nonce(account) + } + } + + impl moonbeam_rpc_primitives_debug::DebugRuntimeApi for Runtime { + fn trace_transaction( + extrinsics: Vec<::Extrinsic>, + traced_transaction: &EthereumTransaction, + header: &::Header, + ) -> Result< + (), + sp_runtime::DispatchError, + > { + #[cfg(feature = "evm-tracing")] + { + use moonbeam_evm_tracer::tracer::EvmTracer; + use xcm_primitives::{ + ETHEREUM_XCM_TRACING_STORAGE_KEY, + EthereumXcmTracingStatus + }; + use frame_support::storage::unhashed; + use frame_system::pallet_prelude::BlockNumberFor; + + // Tell the CallDispatcher we are tracing a specific Transaction. + unhashed::put::( + ETHEREUM_XCM_TRACING_STORAGE_KEY, + &EthereumXcmTracingStatus::Transaction(traced_transaction.hash()), + ); + + // Initialize block: calls the "on_initialize" hook on every pallet + // in AllPalletsWithSystem. + // After pallet message queue was introduced, this must be done only after + // enabling XCM tracing by setting ETHEREUM_XCM_TRACING_STORAGE_KEY + // in the storage + Executive::initialize_block(header); + + // Apply the a subset of extrinsics: all the substrate-specific or ethereum + // transactions that preceded the requested transaction. + for ext in extrinsics.into_iter() { + let _ = match &ext.0.function { + RuntimeCall::Ethereum(transact { transaction }) => { + if transaction == traced_transaction { + EvmTracer::new().trace(|| Executive::apply_extrinsic(ext)); + return Ok(()); + } else { + Executive::apply_extrinsic(ext) + } + } + _ => Executive::apply_extrinsic(ext), + }; + if let Some(EthereumXcmTracingStatus::TransactionExited) = unhashed::get( + ETHEREUM_XCM_TRACING_STORAGE_KEY + ) { + return Ok(()); + } + } + + if let Some(EthereumXcmTracingStatus::Transaction(_)) = unhashed::get( + ETHEREUM_XCM_TRACING_STORAGE_KEY + ) { + // If the transaction was not found, it might be + // an eth-xcm transaction that was executed at on_idle + replay_on_idle(); + } + + if let Some(EthereumXcmTracingStatus::TransactionExited) = unhashed::get( + ETHEREUM_XCM_TRACING_STORAGE_KEY + ) { + // The transaction was found + Ok(()) + } else { + // The transaction was not-found + Err(sp_runtime::DispatchError::Other( + "Failed to find Ethereum transaction among the extrinsics.", + )) + } + } + #[cfg(not(feature = "evm-tracing"))] + Err(sp_runtime::DispatchError::Other( + "Missing `evm-tracing` compile time feature flag.", + )) + } + + fn trace_block( + extrinsics: Vec<::Extrinsic>, + known_transactions: Vec, + header: &::Header, + ) -> Result< + (), + sp_runtime::DispatchError, + > { + #[cfg(feature = "evm-tracing")] + { + use moonbeam_evm_tracer::tracer::EvmTracer; + use frame_system::pallet_prelude::BlockNumberFor; + use xcm_primitives::EthereumXcmTracingStatus; + + // Tell the CallDispatcher we are tracing a full Block. + frame_support::storage::unhashed::put::( + xcm_primitives::ETHEREUM_XCM_TRACING_STORAGE_KEY, + &EthereumXcmTracingStatus::Block, + ); + + let mut config = ::config().clone(); + config.estimate = true; + + // Initialize block: calls the "on_initialize" hook on every pallet + // in AllPalletsWithSystem. + // After pallet message queue was introduced, this must be done only after + // enabling XCM tracing by setting ETHEREUM_XCM_TRACING_STORAGE_KEY + // in the storage + Executive::initialize_block(header); + + // Apply all extrinsics. Ethereum extrinsics are traced. + for ext in extrinsics.into_iter() { + match &ext.0.function { + RuntimeCall::Ethereum(transact { transaction }) => { + if known_transactions.contains(&transaction.hash()) { + // Each known extrinsic is a new call stack. + EvmTracer::emit_new(); + EvmTracer::new().trace(|| Executive::apply_extrinsic(ext)); + } else { + let _ = Executive::apply_extrinsic(ext); + } + } + _ => { + let _ = Executive::apply_extrinsic(ext); + } + }; + } + + // Replay on_idle + // Some XCM messages with eth-xcm transaction might be executed at on_idle + replay_on_idle(); + + Ok(()) + } + #[cfg(not(feature = "evm-tracing"))] + Err(sp_runtime::DispatchError::Other( + "Missing `evm-tracing` compile time feature flag.", + )) + } + + fn trace_call( + header: &::Header, + from: H160, + to: H160, + data: Vec, + value: U256, + gas_limit: U256, + max_fee_per_gas: Option, + max_priority_fee_per_gas: Option, + nonce: Option, + access_list: Option)>>, + ) -> Result<(), sp_runtime::DispatchError> { + #[cfg(feature = "evm-tracing")] + { + use moonbeam_evm_tracer::tracer::EvmTracer; + + // Initialize block: calls the "on_initialize" hook on every pallet + // in AllPalletsWithSystem. + Executive::initialize_block(header); + + EvmTracer::new().trace(|| { + let is_transactional = false; + let validate = true; + let without_base_extrinsic_weight = true; + + + // Estimated encoded transaction size must be based on the heaviest transaction + // type (EIP1559Transaction) to be compatible with all transaction types. + let mut estimated_transaction_len = data.len() + + // pallet ethereum index: 1 + // transact call index: 1 + // Transaction enum variant: 1 + // chain_id 8 bytes + // nonce: 32 + // max_priority_fee_per_gas: 32 + // max_fee_per_gas: 32 + // gas_limit: 32 + // action: 21 (enum varianrt + call address) + // value: 32 + // access_list: 1 (empty vec size) + // 65 bytes signature + 258; + + if access_list.is_some() { + estimated_transaction_len += access_list.encoded_size(); + } + + let gas_limit = gas_limit.min(u64::MAX.into()).low_u64(); + + let (weight_limit, proof_size_base_cost) = + match ::GasWeightMapping::gas_to_weight( + gas_limit, + without_base_extrinsic_weight + ) { + weight_limit if weight_limit.proof_size() > 0 => { + (Some(weight_limit), Some(estimated_transaction_len as u64)) + } + _ => (None, None), + }; + + let _ = ::Runner::call( + from, + to, + data, + value, + gas_limit, + max_fee_per_gas, + max_priority_fee_per_gas, + nonce, + access_list.unwrap_or_default(), + is_transactional, + validate, + weight_limit, + proof_size_base_cost, + ::config(), + ); + }); + Ok(()) + } + #[cfg(not(feature = "evm-tracing"))] + Err(sp_runtime::DispatchError::Other( + "Missing `evm-tracing` compile time feature flag.", + )) + } + } + + impl moonbeam_rpc_primitives_txpool::TxPoolRuntimeApi for Runtime { + fn extrinsic_filter( + xts_ready: Vec<::Extrinsic>, + xts_future: Vec<::Extrinsic>, + ) -> TxPoolResponse { + TxPoolResponse { + ready: xts_ready + .into_iter() + .filter_map(|xt| match xt.0.function { + RuntimeCall::Ethereum(transact { transaction }) => Some(transaction), + _ => None, + }) + .collect(), + future: xts_future + .into_iter() + .filter_map(|xt| match xt.0.function { + RuntimeCall::Ethereum(transact { transaction }) => Some(transaction), + _ => None, + }) + .collect(), + } + } + } + + impl fp_rpc::EthereumRuntimeRPCApi for Runtime { + fn chain_id() -> u64 { + ::ChainId::get() + } + + fn account_basic(address: H160) -> EVMAccount { + let (account, _) = EVM::account_basic(&address); + account + } + + fn gas_price() -> U256 { + let (gas_price, _) = ::FeeCalculator::min_gas_price(); + gas_price + } + + fn account_code_at(address: H160) -> Vec { + pallet_evm::AccountCodes::::get(address) + } + + fn author() -> H160 { + >::find_author() + } + + fn storage_at(address: H160, index: U256) -> H256 { + let mut tmp = [0u8; 32]; + index.to_big_endian(&mut tmp); + pallet_evm::AccountStorages::::get(address, H256::from_slice(&tmp[..])) + } + + fn call( + from: H160, + to: H160, + data: Vec, + value: U256, + gas_limit: U256, + max_fee_per_gas: Option, + max_priority_fee_per_gas: Option, + nonce: Option, + estimate: bool, + access_list: Option)>>, + ) -> Result { + let config = if estimate { + let mut config = ::config().clone(); + config.estimate = true; + Some(config) + } else { + None + }; + let is_transactional = false; + let validate = true; + + // Estimated encoded transaction size must be based on the heaviest transaction + // type (EIP1559Transaction) to be compatible with all transaction types. + let mut estimated_transaction_len = data.len() + + // pallet ethereum index: 1 + // transact call index: 1 + // Transaction enum variant: 1 + // chain_id 8 bytes + // nonce: 32 + // max_priority_fee_per_gas: 32 + // max_fee_per_gas: 32 + // gas_limit: 32 + // action: 21 (enum varianrt + call address) + // value: 32 + // access_list: 1 (empty vec size) + // 65 bytes signature + 258; + + if access_list.is_some() { + estimated_transaction_len += access_list.encoded_size(); + } + + let gas_limit = gas_limit.min(u64::MAX.into()).low_u64(); + let without_base_extrinsic_weight = true; + + let (weight_limit, proof_size_base_cost) = + match ::GasWeightMapping::gas_to_weight( + gas_limit, + without_base_extrinsic_weight + ) { + weight_limit if weight_limit.proof_size() > 0 => { + (Some(weight_limit), Some(estimated_transaction_len as u64)) + } + _ => (None, None), + }; + + ::Runner::call( + from, + to, + data, + value, + gas_limit, + max_fee_per_gas, + max_priority_fee_per_gas, + nonce, + access_list.unwrap_or_default(), + is_transactional, + validate, + weight_limit, + proof_size_base_cost, + config.as_ref().unwrap_or(::config()), + ).map_err(|err| err.error.into()) + } + + fn create( + from: H160, + data: Vec, + value: U256, + gas_limit: U256, + max_fee_per_gas: Option, + max_priority_fee_per_gas: Option, + nonce: Option, + estimate: bool, + access_list: Option)>>, + ) -> Result { + let config = if estimate { + let mut config = ::config().clone(); + config.estimate = true; + Some(config) + } else { + None + }; + let is_transactional = false; + let validate = true; + + let mut estimated_transaction_len = data.len() + + // from: 20 + // value: 32 + // gas_limit: 32 + // nonce: 32 + // 1 byte transaction action variant + // chain id 8 bytes + // 65 bytes signature + 190; + + if max_fee_per_gas.is_some() { + estimated_transaction_len += 32; + } + if max_priority_fee_per_gas.is_some() { + estimated_transaction_len += 32; + } + if access_list.is_some() { + estimated_transaction_len += access_list.encoded_size(); + } + + let gas_limit = if gas_limit > U256::from(u64::MAX) { + u64::MAX + } else { + gas_limit.low_u64() + }; + let without_base_extrinsic_weight = true; + + let (weight_limit, proof_size_base_cost) = + match ::GasWeightMapping::gas_to_weight( + gas_limit, + without_base_extrinsic_weight + ) { + weight_limit if weight_limit.proof_size() > 0 => { + (Some(weight_limit), Some(estimated_transaction_len as u64)) + } + _ => (None, None), + }; + + #[allow(clippy::or_fun_call)] // suggestion not helpful here + ::Runner::create( + from, + data, + value, + gas_limit, + max_fee_per_gas, + max_priority_fee_per_gas, + nonce, + access_list.unwrap_or_default(), + is_transactional, + validate, + weight_limit, + proof_size_base_cost, + config.as_ref().unwrap_or(::config()), + ).map_err(|err| err.error.into()) + } + + fn current_transaction_statuses() -> Option> { + pallet_ethereum::CurrentTransactionStatuses::::get() + } + + fn current_block() -> Option { + pallet_ethereum::CurrentBlock::::get() + } + + fn current_receipts() -> Option> { + pallet_ethereum::CurrentReceipts::::get() + } + + fn current_all() -> ( + Option, + Option>, + Option>, + ) { + ( + pallet_ethereum::CurrentBlock::::get(), + pallet_ethereum::CurrentReceipts::::get(), + pallet_ethereum::CurrentTransactionStatuses::::get(), + ) + } + + fn extrinsic_filter( + xts: Vec<::Extrinsic>, + ) -> Vec { + xts.into_iter().filter_map(|xt| match xt.0.function { + RuntimeCall::Ethereum(transact { transaction }) => Some(transaction), + _ => None + }).collect::>() + } + + fn elasticity() -> Option { + None + } + + fn gas_limit_multiplier_support() {} + + fn pending_block( + xts: Vec<::Extrinsic> + ) -> ( + Option, Option> + ) { + for ext in xts.into_iter() { + let _ = Executive::apply_extrinsic(ext); + } + + Ethereum::on_finalize(System::block_number() + 1); + + ( + pallet_ethereum::CurrentBlock::::get(), + pallet_ethereum::CurrentTransactionStatuses::::get() + ) + } + + fn initialize_pending_block(header: &::Header) { + pallet_randomness::vrf::using_fake_vrf(|| Executive::initialize_block(header)) + } + } + + impl fp_rpc::ConvertTransactionRuntimeApi for Runtime { + fn convert_transaction( + transaction: pallet_ethereum::Transaction + ) -> ::Extrinsic { + UncheckedExtrinsic::new_unsigned( + pallet_ethereum::Call::::transact { transaction }.into(), + ) + } + } + + 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 nimbus_primitives::NimbusApi for Runtime { + fn can_author( + author: nimbus_primitives::NimbusId, + slot: u32, + parent_header: &::Header + ) -> bool { + use pallet_parachain_staking::Config as PalletParachainStakingConfig; + + let block_number = parent_header.number + 1; + + // The Moonbeam runtimes use an entropy source that needs to do some accounting + // work during block initialization. Therefore we initialize it here to match + // the state it will be in when the next block is being executed. + use frame_support::traits::OnInitialize; + System::initialize( + &block_number, + &parent_header.hash(), + &parent_header.digest, + ); + + // Because the staking solution calculates the next staking set at the beginning + // of the first block in the new round, the only way to accurately predict the + // authors is to compute the selection during prediction. + if pallet_parachain_staking::Pallet::::round() + .should_update(block_number) { + // get author account id + use nimbus_primitives::AccountLookup; + let author_account_id = if let Some(account) = + pallet_author_mapping::Pallet::::lookup_account(&author) { + account + } else { + // return false if author mapping not registered like in can_author impl + return false + }; + let candidates = pallet_parachain_staking::Pallet::::compute_top_candidates(); + if candidates.is_empty() { + // If there are zero selected candidates, we use the same eligibility + // as the previous round + return AuthorInherent::can_author(&author, &slot); + } + + // predict eligibility post-selection by computing selection results now + let (eligible, _) = + pallet_author_slot_filter::compute_pseudo_random_subset::( + candidates, + &slot + ); + eligible.contains(&author_account_id) + } else { + AuthorInherent::can_author(&author, &slot) + } + } + } + + impl cumulus_primitives_core::CollectCollationInfo for Runtime { + fn collect_collation_info( + header: &::Header + ) -> cumulus_primitives_core::CollationInfo { + ParachainSystem::collect_collation_info(header) + } + } + + impl session_keys_primitives::VrfApi for Runtime { + fn get_last_vrf_output() -> Option<::Hash> { + // TODO: remove in future runtime upgrade along with storage item + if pallet_randomness::Pallet::::not_first_block().is_none() { + return None; + } + pallet_randomness::Pallet::::local_vrf_output() + } + fn vrf_key_lookup( + nimbus_id: nimbus_primitives::NimbusId + ) -> Option { + use session_keys_primitives::KeysLookup; + AuthorMapping::lookup_keys(&nimbus_id) + } + } + + #[cfg(feature = "runtime-benchmarks")] + impl frame_benchmarking::Benchmark for Runtime { + + fn benchmark_metadata(extra: bool) -> ( + Vec, + Vec, + ) { + use frame_benchmarking::{list_benchmark, Benchmarking, BenchmarkList}; + use moonbeam_xcm_benchmarks::generic::benchmarking as MoonbeamXcmBenchmarks; + use frame_support::traits::StorageInfoTrait; + use MoonbeamXcmBenchmarks::XcmGenericBenchmarks as MoonbeamXcmGenericBench; + + use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsicsBenchmark; + + 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::{add_benchmark, BenchmarkBatch, Benchmarking}; + use frame_support::traits::TrackedStorageKey; + use cumulus_primitives_core::ParaId; + + use xcm::latest::prelude::{ + GeneralIndex, Junction, Junctions, Location, Response, NetworkId, AssetId, + Assets as XcmAssets, Fungible, Asset, ParentThen, Parachain, Parent + }; + use frame_benchmarking::BenchmarkError; + + use frame_system_benchmarking::Pallet as SystemBench; + impl frame_system_benchmarking::Config for Runtime {} + + impl moonbeam_xcm_benchmarks::Config for Runtime {} + impl moonbeam_xcm_benchmarks::generic::Config for Runtime {} + + use pallet_asset_manager::Config as PalletAssetManagerConfig; + + use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsicsBenchmark; + parameter_types! { + pub const RandomParaId: ParaId = ParaId::new(43211234); + } + + impl pallet_xcm::benchmarking::Config for Runtime { + fn reachable_dest() -> Option { + Some(Parent.into()) + } + + fn teleportable_asset_and_dest() -> Option<(Asset, Location)> { + None + } + + fn reserve_transferable_asset_and_dest() -> Option<(Asset, Location)> { + use xcm_config::SelfReserve; + + ParachainSystem::open_outbound_hrmp_channel_for_benchmarks_or_tests( + RandomParaId::get().into() + ); + + Some(( + Asset { + fun: Fungible(::ExistentialDeposit::get()), + id: AssetId(SelfReserve::get().into()) + }, + // AH can reserve transfer native token to some random parachain. + ParentThen(Parachain(RandomParaId::get().into()).into()).into(), + )) + } + + fn set_up_complex_asset_transfer( + ) -> Option<(XcmAssets, u32, Location, Box)> { + use xcm_config::SelfReserve; + + let destination: xcm::v4::Location = Parent.into(); + + let fee_amount: u128 = ::ExistentialDeposit::get(); + let fee_asset: Asset = (SelfReserve::get(), fee_amount).into(); + + // Give some multiple of transferred amount + let balance = fee_amount * 1000; + let who = frame_benchmarking::whitelisted_caller(); + let _ = + >::make_free_balance_be(&who, balance); + + // verify initial balance + assert_eq!(Balances::free_balance(&who), balance); + + // set up local asset + let asset_amount: u128 = 10u128; + let initial_asset_amount: u128 = asset_amount * 10; + + let (asset_id, _, _) = pallet_assets::benchmarking::create_default_minted_asset::< + Runtime, + () + >(true, initial_asset_amount); + let transfer_asset: Asset = (SelfReserve::get(), asset_amount).into(); + + let assets: XcmAssets = vec![fee_asset.clone(), transfer_asset].into(); + let fee_index: u32 = 0; + + let verify: Box = Box::new(move || { + // verify balance after transfer, decreased by + // transferred amount (and delivery fees) + assert!(Balances::free_balance(&who) <= balance - fee_amount); + }); + + Some((assets, fee_index, destination, verify)) + } + } + + impl pallet_xcm_benchmarks::Config for Runtime { + type XcmConfig = xcm_config::XcmExecutorConfig; + type AccountIdConverter = xcm_config::LocationToAccountId; + type DeliveryHelper = (); + fn valid_destination() -> Result { + Ok(Location::parent()) + } + fn worst_case_holding(_depositable_count: u32) -> XcmAssets { + // 100 fungibles + const HOLDING_FUNGIBLES: u32 = 100; + let fungibles_amount: u128 = 100; + let assets = (0..HOLDING_FUNGIBLES).map(|i| { + let location: Location = GeneralIndex(i as u128).into(); + Asset { + id: AssetId(location), + fun: Fungible(fungibles_amount * i as u128), + } + .into() + }) + .chain( + core::iter::once( + Asset { + id: AssetId(Location::parent()), + fun: Fungible(u128::MAX) + } + ) + ) + .collect::>(); + + + for (i, asset) in assets.iter().enumerate() { + if let Asset { + id: AssetId(location), + fun: Fungible(_) + } = asset { + ::AssetId, + ::ForeignAssetType> + >::set_asset_type_asset_id( + location.clone().try_into().expect("convert to v3"), + i as u128 + ); + // set 1-1 + ::ForeignAssetType> + >::set_units_per_second( + location.clone().try_into().expect("convert to v3"), + 1_000_000_000_000u128 + ); + } + } + assets.into() + } + } + + impl pallet_xcm_benchmarks::generic::Config for Runtime { + type RuntimeCall = RuntimeCall; + type TransactAsset = Balances; + + fn worst_case_response() -> (u64, Response) { + (0u64, Response::Version(Default::default())) + } + + fn worst_case_asset_exchange() + -> Result<(XcmAssets, XcmAssets), BenchmarkError> { + Err(BenchmarkError::Skip) + } + + fn universal_alias() -> Result<(Location, Junction), BenchmarkError> { + Err(BenchmarkError::Skip) + } + + fn export_message_origin_and_destination() + -> Result<(Location, NetworkId, Junctions), BenchmarkError> { + Err(BenchmarkError::Skip) + } + + fn transact_origin_and_runtime_call() + -> Result<(Location, RuntimeCall), BenchmarkError> { + Ok((Location::parent(), frame_system::Call::remark_with_event { + remark: vec![] + }.into())) + } + + fn subscribe_origin() -> Result { + Ok(Location::parent()) + } + + fn claimable_asset() + -> Result<(Location, Location, XcmAssets), BenchmarkError> { + let origin = Location::parent(); + let assets: XcmAssets = (AssetId(Location::parent()), 1_000u128) + .into(); + let ticket = Location { parents: 0, interior: [].into() /* Here */ }; + Ok((origin, ticket, assets)) + } + + fn fee_asset() -> Result { + Err(BenchmarkError::Skip) + } + + fn unlockable_asset() + -> Result<(Location, Location, Asset), BenchmarkError> { + Err(BenchmarkError::Skip) + } + + fn alias_origin() -> Result<(Location, Location), BenchmarkError> { + Err(BenchmarkError::Skip) + } + } + + let whitelist: Vec = vec![ + // Block Number + hex_literal::hex!( "26aa394eea5630e07c48ae0c9558cef7" + "02a5c1b19ab7a04f536c519aca4983ac") + .to_vec().into(), + // Total Issuance + hex_literal::hex!( "c2261276cc9d1f8598ea4b6a74b15c2f" + "57c875e4cff74148e4628f264b974c80") + .to_vec().into(), + // Execution Phase + hex_literal::hex!( "26aa394eea5630e07c48ae0c9558cef7" + "ff553b5a9862a516939d82b3d3d8661a") + .to_vec().into(), + // Event Count + hex_literal::hex!( "26aa394eea5630e07c48ae0c9558cef7" + "0a98fdbe9ce6c55837576c60c7af3850") + .to_vec().into(), + // System Events + hex_literal::hex!( "26aa394eea5630e07c48ae0c9558cef7" + "80d41e5e16056765bc8461851072c9d7") + .to_vec().into(), + // System BlockWeight + hex_literal::hex!( "26aa394eea5630e07c48ae0c9558cef7" + "34abf5cb34d6244378cddbf18e849d96") + .to_vec().into(), + // ParachainStaking Round + hex_literal::hex!( "a686a3043d0adcf2fa655e57bc595a78" + "13792e785168f725b60e2969c7fc2552") + .to_vec().into(), + // Treasury Account (py/trsry) + hex_literal::hex!( "26aa394eea5630e07c48ae0c9558cef7" + "b99d880ec681799c0cf30e8886371da9" + "7be2919ac397ba499ea5e57132180ec6" + "6d6f646c70792f747273727900000000" + "00000000" + ).to_vec().into(), + // Treasury Account (pc/trsry) + hex_literal::hex!( "26aa394eea5630e07c48ae0c9558cef7" + "b99d880ec681799c0cf30e8886371da9" + "7be2919ac397ba499ea5e57132180ec6" + "6d6f646c70632f747273727900000000" + "00000000" + ).to_vec().into(), + // ParachainInfo ParachainId + hex_literal::hex!( "0d715f2646c8f85767b5d2764bb27826" + "04a74d81251e398fd8a0a4d55023bb3f") + .to_vec().into(), + + ]; + + let mut batches = Vec::::new(); + let params = (&config, &whitelist); + + add_benchmarks!(params, batches); + + if batches.is_empty() { + return Err("Benchmark not found for this pallet.".into()); + } + Ok(batches) + } + } + + #[cfg(feature = "try-runtime")] + impl frame_try_runtime::TryRuntime for Runtime { + fn on_runtime_upgrade(checks: frame_try_runtime::UpgradeCheckSelect) -> (Weight, Weight) { + log::info!("try-runtime::on_runtime_upgrade()"); + // NOTE: intentional expect: we don't want to propagate the error backwards, + // and want to have a backtrace here. If any of the pre/post migration checks + // fail, we shall stop right here and right now. + let weight = Executive::try_runtime_upgrade(checks) + .expect("runtime upgrade logic *must* be infallible"); + (weight, RuntimeBlockWeights::get().max_block) + } + + fn execute_block( + block: Block, + state_root_check: bool, + signature_check: bool, + select: frame_try_runtime::TryStateSelect + ) -> Weight { + log::info!( + "try-runtime: executing block {:?} / root checks: {:?} / try-state-select: {:?}", + block.header.hash(), + state_root_check, + select, + ); + // 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, + ).expect("execute-block failed") + } + } + } + }; +} diff --git a/tracing/3001/runtime/common/src/benchmarking.rs b/tracing/3001/runtime/common/src/benchmarking.rs new file mode 100644 index 00000000..b6985b5b --- /dev/null +++ b/tracing/3001/runtime/common/src/benchmarking.rs @@ -0,0 +1,30 @@ +// Copyright 2019-2023 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +use account::AccountId20; +use pallet_treasury::ArgumentsFactory; + +pub struct BenchmarkHelper; + +impl ArgumentsFactory<(), AccountId20> for BenchmarkHelper { + fn create_asset_kind(_seed: u32) -> () { + () + } + + fn create_beneficiary(seed: [u8; 32]) -> AccountId20 { + AccountId20::from(seed) + } +} diff --git a/tracing/3001/runtime/common/src/impl_moonbeam_xcm_call.rs b/tracing/3001/runtime/common/src/impl_moonbeam_xcm_call.rs new file mode 100644 index 00000000..112c457c --- /dev/null +++ b/tracing/3001/runtime/common/src/impl_moonbeam_xcm_call.rs @@ -0,0 +1,51 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +#[macro_export] +macro_rules! impl_moonbeam_xcm_call { + {} => { + + pub struct MoonbeamCall; + impl CallDispatcher for MoonbeamCall { + fn dispatch( + call: RuntimeCall, + origin: RuntimeOrigin, + ) -> Result< + PostDispatchInfoOf, + DispatchErrorWithPostInfo> + > { + if let Ok(raw_origin) = TryInto::>::try_into(origin.clone().caller) { + match (call.clone(), raw_origin) { + ( + RuntimeCall::EthereumXcm(pallet_ethereum_xcm::Call::transact { .. }) | + RuntimeCall::EthereumXcm(pallet_ethereum_xcm::Call::transact_through_proxy { .. }), + RawOrigin::Signed(account_id) + ) => { + return RuntimeCall::dispatch( + call, + pallet_ethereum_xcm::Origin::XcmEthereumTransaction( + account_id.into() + ).into() + ); + }, + _ => {} + } + } + RuntimeCall::dispatch(call, origin) + } + } + } +} diff --git a/tracing/3001/runtime/common/src/impl_moonbeam_xcm_call_tracing.rs b/tracing/3001/runtime/common/src/impl_moonbeam_xcm_call_tracing.rs new file mode 100644 index 00000000..08d2b06f --- /dev/null +++ b/tracing/3001/runtime/common/src/impl_moonbeam_xcm_call_tracing.rs @@ -0,0 +1,118 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +#[macro_export] +macro_rules! impl_moonbeam_xcm_call_tracing { + {} => { + + type CallResult = + Result< + PostDispatchInfoOf, + DispatchErrorWithPostInfo> + >; + + pub struct MoonbeamCall; + impl CallDispatcher for MoonbeamCall { + fn dispatch( + call: RuntimeCall, + origin: RuntimeOrigin, + ) -> CallResult { + if let Ok(raw_origin) = TryInto::>::try_into(origin.clone().caller) { + match (call.clone(), raw_origin) { + ( + RuntimeCall::EthereumXcm(pallet_ethereum_xcm::Call::transact { xcm_transaction }) | + RuntimeCall::EthereumXcm(pallet_ethereum_xcm::Call::transact_through_proxy { + xcm_transaction, .. + }), + RawOrigin::Signed(account_id) + ) => { + use crate::EthereumXcm; + use moonbeam_evm_tracer::tracer::EvmTracer; + use xcm_primitives::{ + XcmToEthereum, + EthereumXcmTracingStatus, + ETHEREUM_XCM_TRACING_STORAGE_KEY + }; + use frame_support::storage::unhashed; + use frame_support::traits::Get; + + let dispatch_call = || { + RuntimeCall::dispatch( + call, + pallet_ethereum_xcm::Origin::XcmEthereumTransaction( + account_id.into() + ).into() + ) + }; + + return match unhashed::get( + ETHEREUM_XCM_TRACING_STORAGE_KEY + ) { + // This runtime instance is used for tracing. + Some(tracing_status) => match tracing_status { + // Tracing a block, all calls are done using environmental. + EthereumXcmTracingStatus::Block => { + // Each known extrinsic is a new call stack. + EvmTracer::emit_new(); + let mut res: Option = None; + EvmTracer::new().trace(|| { + res = Some(dispatch_call()); + }); + res.expect("Invalid dispatch result") + }, + // Tracing a transaction, the one matching the trace request + // is done using environmental, the rest dispatched normally. + EthereumXcmTracingStatus::Transaction(traced_transaction_hash) => { + let transaction_hash = xcm_transaction.into_transaction_v2( + EthereumXcm::nonce(), + ::ChainId::get() + ) + .expect("Invalid transaction conversion") + .hash(); + if transaction_hash == traced_transaction_hash { + let mut res: Option = None; + EvmTracer::new().trace(|| { + res = Some(dispatch_call()); + }); + // Tracing runtime work is done, just signal instance exit. + unhashed::put::( + xcm_primitives::ETHEREUM_XCM_TRACING_STORAGE_KEY, + &EthereumXcmTracingStatus::TransactionExited, + ); + return res.expect("Invalid dispatch result"); + } + dispatch_call() + }, + // Tracing a transaction that has already been found and + // executed. There's no need to dispatch the rest of the + // calls. + EthereumXcmTracingStatus::TransactionExited => Ok(crate::PostDispatchInfo { + actual_weight: None, + pays_fee: frame_support::pallet_prelude::Pays::No, + }), + }, + // This runtime instance is importing a block. + None => dispatch_call() + }; + }, + _ => {} + } + } + RuntimeCall::dispatch(call, origin) + } + } + } +} diff --git a/tracing/3001/runtime/common/src/impl_on_charge_evm_transaction.rs b/tracing/3001/runtime/common/src/impl_on_charge_evm_transaction.rs new file mode 100644 index 00000000..619b11c8 --- /dev/null +++ b/tracing/3001/runtime/common/src/impl_on_charge_evm_transaction.rs @@ -0,0 +1,62 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +#[macro_export] +macro_rules! impl_on_charge_evm_transaction { + {} => { + type FungibleAccountId = ::AccountId; + + type BalanceFor = + <::Currency as Inspect>>::Balance; + + pub struct OnChargeEVMTransaction(sp_std::marker::PhantomData); + + impl OnChargeEVMTransactionT for OnChargeEVMTransaction + where + T: pallet_evm::Config, + T::Currency: Balanced, + OU: OnUnbalanced>, + U256: UniqueSaturatedInto> + { + type LiquidityInfo = Option>; + + fn withdraw_fee(who: &H160, fee: U256) -> Result> { + EVMFungibleAdapter::<::Currency, ()>::withdraw_fee(who, fee) + } + + fn can_withdraw(who: &H160, amount: U256) -> Result<(), pallet_evm::Error> { + EVMFungibleAdapter::<::Currency, ()>::can_withdraw(who, amount) + } + + fn correct_and_deposit_fee( + who: &H160, + corrected_fee: U256, + base_fee: U256, + already_withdrawn: Self::LiquidityInfo, + ) -> Result> { + ::Currency, OU> as OnChargeEVMTransactionT< + T, + >>::correct_and_deposit_fee(who, corrected_fee, base_fee, already_withdrawn) + } + + fn pay_priority_fee(tip: Self::LiquidityInfo) { + if let Some(tip) = tip { + OU::on_unbalanced(tip); + } + } + } + } +} diff --git a/tracing/3001/runtime/common/src/impl_self_contained_call.rs b/tracing/3001/runtime/common/src/impl_self_contained_call.rs new file mode 100644 index 00000000..0dbce052 --- /dev/null +++ b/tracing/3001/runtime/common/src/impl_self_contained_call.rs @@ -0,0 +1,78 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +#[macro_export] +macro_rules! impl_self_contained_call { + {} => { + impl fp_self_contained::SelfContainedCall for RuntimeCall { + type SignedInfo = H160; + + fn is_self_contained(&self) -> bool { + match self { + RuntimeCall::Ethereum(call) => call.is_self_contained(), + _ => false, + } + } + + fn check_self_contained( + &self + ) -> Option> { + match self { + RuntimeCall::Ethereum(call) => call.check_self_contained(), + _ => None, + } + } + + fn validate_self_contained( + &self, + signed_info: &Self::SignedInfo, + dispatch_info: &DispatchInfoOf, + len: usize, + ) -> Option { + match self { + RuntimeCall::Ethereum(call) => call.validate_self_contained(signed_info, dispatch_info, len), + _ => None, + } + } + + fn pre_dispatch_self_contained( + &self, + info: &Self::SignedInfo, + dispatch_info: &DispatchInfoOf, + len: usize, + ) -> Option> { + match self { + RuntimeCall::Ethereum(call) => call.pre_dispatch_self_contained(info, dispatch_info, len), + _ => None, + } + } + + fn apply_self_contained( + self, + info: Self::SignedInfo, + ) -> Option>> { + match self { + call @ RuntimeCall::Ethereum(pallet_ethereum::Call::transact { .. }) => Some( + call.dispatch(RuntimeOrigin::from( + pallet_ethereum::RawOrigin::EthereumTransaction(info) + )) + ), + _ => None, + } + } + } + } +} diff --git a/tracing/3001/runtime/common/src/impl_xcm_evm_runner.rs b/tracing/3001/runtime/common/src/impl_xcm_evm_runner.rs new file mode 100644 index 00000000..7eebe42d --- /dev/null +++ b/tracing/3001/runtime/common/src/impl_xcm_evm_runner.rs @@ -0,0 +1,188 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +#[macro_export] +macro_rules! impl_evm_runner_precompile_or_eth_xcm { + {} => { + use fp_evm::{CallInfo, CallOrCreateInfo, Context, Transfer}; + use frame_support::dispatch::CallableCallFor; + use pallet_evm::{Runner, RunnerError}; + use precompile_utils::{prelude::*, evm::handle::with_precompile_handle}; + use sp_core::U256; + use sp_runtime::DispatchError; + use sp_std::vec::Vec; + use xcm_primitives::{EthereumXcmTransaction, EthereumXcmTransactionV2}; + + pub struct EvmRunnerPrecompileOrEthXcm( + core::marker::PhantomData<(CallDispatcher, Runtime)>, + ); + + impl Runner + for EvmRunnerPrecompileOrEthXcm + where + CallDispatcher: xcm_executor::traits::CallDispatcher, + Runtime: pallet_evm::Config + pallet_ethereum_xcm::Config, + Runtime::RuntimeOrigin: From, + { + type Error = DispatchError; + + fn call( + source: H160, + target: H160, + input: Vec, + value: U256, + gas_limit: u64, + _max_fee_per_gas: Option, + _max_priority_fee_per_gas: Option, + _nonce: Option, + access_list: Vec<(H160, Vec)>, + _is_transactional: bool, + _validate: bool, + _weight_limit: Option, + _transaction_len: Option, + _config: &fp_evm::Config, + ) -> Result> { + // The `with_precompile_handle` function will execute the closure (and return the + // result in a Some) if and only if there is an available EVM context. Otherwise, + // it will return None. + if let Some((exit_reason, value)) = with_precompile_handle(|precompile_handle| { + let transfer = if value.is_zero() { + None + } else { + Some(Transfer { + source, + target, + value, + }) + }; + + precompile_handle.call( + target, + transfer, + input.clone(), + Some(gas_limit), + false, + &Context { + address: target, + caller: source, + apparent_value: value, + }, + ) + }) { + Ok(CallInfo { + exit_reason, + value, + used_gas: fp_evm::UsedGas { + standard: U256::default(), + effective: U256::default(), + }, + logs: Default::default(), + weight_info: None, + }) + } else { + let xcm_transaction = EthereumXcmTransaction::V2(EthereumXcmTransactionV2 { + gas_limit: gas_limit.into(), + action: pallet_ethereum_xcm::TransactionAction::Call(target), + value, + input: input.try_into().map_err(|_| RunnerError { + error: DispatchError::Exhausted, + weight: Default::default(), + })?, + access_list: Some(access_list), + }); + + let mut execution_info: Option = None; + pallet_ethereum::catch_exec_info(&mut execution_info, || { + CallDispatcher::dispatch( + RuntimeCall::EthereumXcm(pallet_ethereum_xcm::Call::transact { xcm_transaction }), + RawOrigin::Signed(source.into()).into(), + ) + .map_err(|DispatchErrorWithPostInfo { error, .. }| RunnerError { + error, + weight: Default::default(), + }) + })?; + + if let Some(CallOrCreateInfo::Call(call_info))= execution_info { + Ok(call_info) + } else { + // `execution_info` must have been filled in + Err(RunnerError { + error: DispatchError::Unavailable, + weight: Default::default(), + }) + } + } + } + + fn create( + _source: H160, + _init: Vec, + _value: U256, + _gas_limit: u64, + _max_fee_per_gas: Option, + _max_priority_fee_per_gas: Option, + _nonce: Option, + _access_list: Vec<(H160, Vec)>, + _is_transactional: bool, + _validate: bool, + _weight_limit: Option, + _transaction_len: Option, + _config: &fp_evm::Config, + ) -> Result> { + unimplemented!() + } + + fn create2( + _source: H160, + _init: Vec, + _salt: H256, + _value: U256, + _gas_limit: u64, + _max_fee_per_gas: Option, + _max_priority_fee_per_gas: Option, + _nonce: Option, + _access_list: Vec<(H160, Vec)>, + _is_transactional: bool, + _validate: bool, + _weight_limit: Option, + _transaction_len: Option, + _config: &fp_evm::Config, + ) -> Result> { + unimplemented!() + } + + fn validate( + _source: H160, + _target: Option, + _input: Vec, + _value: U256, + _gas_limit: u64, + _max_fee_per_gas: Option, + _max_priority_fee_per_gas: Option, + _nonce: Option, + _access_list: Vec<(H160, Vec)>, + _is_transactional: bool, + _weight_limit: Option, + _transaction_len: Option, + _evm_config: &fp_evm::Config, + ) -> Result<(), RunnerError> { + unimplemented!() + } + } + + } +} diff --git a/tracing/3001/runtime/common/src/lib.rs b/tracing/3001/runtime/common/src/lib.rs new file mode 100644 index 00000000..747a8a32 --- /dev/null +++ b/tracing/3001/runtime/common/src/lib.rs @@ -0,0 +1,30 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +#![cfg_attr(not(feature = "std"), no_std)] + +mod apis; +mod impl_moonbeam_xcm_call; +mod impl_moonbeam_xcm_call_tracing; +mod impl_on_charge_evm_transaction; +mod impl_self_contained_call; +mod impl_xcm_evm_runner; +pub mod migrations; +pub mod timestamp; +pub mod weights; + +#[cfg(feature = "runtime-benchmarks")] +pub mod benchmarking; diff --git a/tracing/3001/runtime/common/src/migrations.rs b/tracing/3001/runtime/common/src/migrations.rs new file mode 100644 index 00000000..ea062092 --- /dev/null +++ b/tracing/3001/runtime/common/src/migrations.rs @@ -0,0 +1,199 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! # Migrations +//! +//! This module acts as a registry where each migration is defined. Each migration should implement +//! the "Migration" trait declared in the pallet-migrations crate. + +use frame_support::{traits::OnRuntimeUpgrade, weights::Weight}; +use frame_system::pallet_prelude::BlockNumberFor; +use pallet_migrations::{GetMigrations, Migration}; +use sp_std::{marker::PhantomData, prelude::*, vec}; + +pub struct MigrateToLatestXcmVersion(PhantomData); +impl Migration for MigrateToLatestXcmVersion +where + pallet_xcm::migration::MigrateToLatestXcmVersion: OnRuntimeUpgrade, +{ + fn friendly_name(&self) -> &str { + "MM_MigrateToLatestXcmVersion" + } + + fn migrate(&self, _available_weight: Weight) -> Weight { + pallet_xcm::migration::MigrateToLatestXcmVersion::::on_runtime_upgrade() + } + + #[cfg(feature = "try-runtime")] + fn pre_upgrade(&self) -> Result, sp_runtime::DispatchError> { + pallet_xcm::migration::MigrateToLatestXcmVersion::::pre_upgrade() + } + + #[cfg(feature = "try-runtime")] + fn post_upgrade(&self, state: Vec) -> Result<(), sp_runtime::DispatchError> { + pallet_xcm::migration::MigrateToLatestXcmVersion::::post_upgrade(state) + } +} + +pub struct CommonMigrations(PhantomData); + +impl GetMigrations for CommonMigrations +where + Runtime: pallet_xcm::Config, + Runtime::AccountId: Default, + BlockNumberFor: Into, +{ + fn get_migrations() -> Vec> { + // let migration_author_mapping_twox_to_blake = AuthorMappingTwoXToBlake:: { + // 0: Default::default(), + // }; + + // let migration_parachain_staking_purge_stale_storage = + // ParachainStakingPurgeStaleStorage::(Default::default()); + // let migration_parachain_staking_manual_exits = + // ParachainStakingManualExits::(Default::default()); + // let migration_parachain_staking_increase_max_delegations_per_candidate = + // ParachainStakingIncreaseMaxDelegationsPerCandidate::(Default::default()); + // let migration_parachain_staking_split_candidate_state = + // ParachainStakingSplitCandidateState::(Default::default()); + // let migration_parachain_staking_patch_incorrect_delegation_sums = + // ParachainStakingPatchIncorrectDelegationSums::(Default::default()); + + // let migration_scheduler_v3 = SchedulerMigrationV3::(Default::default()); + + // let migration_base_fee = MigrateBaseFeePerGas::(Default::default()); + + // TODO: this is a lot of allocation to do upon every get() call. this *should* be avoided + // except when pallet_migrations undergoes a runtime upgrade -- but TODO: review + + // let migration_author_slot_filter_eligible_ratio_to_eligibility_count = + // AuthorSlotFilterEligibleRatioToEligiblityCount::(Default::default()); + // let migration_author_mapping_add_keys_to_registration_info = + // AuthorMappingAddKeysToRegistrationInfo::(Default::default()); + // let staking_delegator_state_requests = + // ParachainStakingSplitDelegatorStateIntoDelegationScheduledRequests::( + // Default::default(), + // ); + // let migration_author_mapping_add_account_id_to_nimbus_lookup = + // AuthorMappingAddAccountIdToNimbusLookup::(Default::default()); + + // let xcm_transactor_max_weight = + // XcmTransactorMaxTransactWeight::(Default::default()); + + // let asset_manager_units_with_asset_type = + // AssetManagerUnitsWithAssetType::(Default::default()); + + // let asset_manager_populate_asset_type_id_storage = + // AssetManagerPopulateAssetTypeIdStorage::(Default::default()); + + // let asset_manager_change_statemine_prefixes = AssetManagerChangeStateminePrefixes::< + // Runtime, + // StatemineParaIdInfo, + // StatemineAssetsInstanceInfo, + // >(Default::default()); + + // let xcm_supported_assets = XcmPaymentSupportedAssets::(Default::default()); + + // let migration_elasticity = MigrateBaseFeeElasticity::(Default::default()); + //let staking_at_stake_auto_compound = + // ParachainStakingMigrateAtStakeAutoCompound::(Default::default()); + + //let scheduler_to_v4 = SchedulerMigrationV4::(Default::default()); + //let democracy_migration_hash_to_bounded_call = + // DemocracryMigrationHashToBoundedCall::(Default::default()); + //let preimage_migration_hash_to_bounded_call = + // PreimageMigrationHashToBoundedCall::(Default::default()); + //let asset_manager_to_xcm_v3 = + // PalletAssetManagerMigrateXcmV2ToV3::(Default::default()); + //let xcm_transactor_to_xcm_v3 = + // PalletXcmTransactorMigrateXcmV2ToV3::(Default::default()); + //let remove_min_bond_for_old_orbiter_collators = + // RemoveMinBondForOrbiterCollators::(Default::default()); + // let missing_balances_migrations = MissingBalancesMigrations::(Default::default()); + // let fix_pallet_versions = + // FixIncorrectPalletVersions::(Default::default()); + // let pallet_referenda_migrate_v0_to_v1 = + // PalletReferendaMigrateV0ToV1::(Default::default()); + //let pallet_collective_drop_gov_v1_collectives = + // PalletCollectiveDropGovV1Collectives::(Default::default()); + //let pallet_staking_round = PalletStakingRoundMigration::(Default::default()); + + vec![ + // completed in runtime 800 + // Box::new(migration_author_mapping_twox_to_blake), + // completed in runtime 900 + // completed in runtime 1000 + // Box::new(migration_parachain_staking_purge_stale_storage), + // completed in runtime 1000 + // Box::new(migration_parachain_staking_manual_exits), + // completed in runtime 1101 + // Box::new(migration_parachain_staking_increase_max_delegations_per_candidate), + // completed in runtime 1201 + // Box::new(migration_parachain_staking_split_candidate_state), + // completed in runtime 1201 + // Box::new(xcm_transactor_max_weight), + // completed in runtime 1201 + // Box::new(asset_manager_units_with_asset_type), + // completed in runtime 1201 + // Box::new(asset_manager_change_statemine_prefixes), + // completed in runtime 1201 + // Box::new(asset_manager_populate_asset_type_id_storage), + // completed in runtime 1300 + // Box::new(migration_scheduler_v3), + // completed in runtime 1300 + // Box::new(migration_parachain_staking_patch_incorrect_delegation_sums), + // completed in runtime 1300 + // Box::new(migration_base_fee), + // completed in runtime 1300 + // Box::new(xcm_supported_assets), + // completed in runtime 1500 + // Box::new(migration_author_slot_filter_eligible_ratio_to_eligibility_count), + // Box::new(migration_author_mapping_add_keys_to_registration_info), + // Box::new(staking_delegator_state_requests), + // completed in runtime 1600 + // Box::new(migration_author_mapping_add_account_id_to_nimbus_lookup), + // completed in runtime 1600 + // Box::new(xcm_transactor_transact_signed), + // completed in runtime 1700 + //Box::new(migration_elasticity), + // completed in runtime 1900 + //Box::new(staking_at_stake_auto_compound), + // completed in runtime 2000 + //Box::new(scheduler_to_v4), + //Box::new(democracy_migration_hash_to_bounded_call), + //Box::new(preimage_migration_hash_to_bounded_call), + // completed in runtime 2100 + //Box::new(asset_manager_to_xcm_v3), + //Box::new(xcm_transactor_to_xcm_v3), + // completed in runtime 2600 + //Box::new(remove_min_bond_for_old_orbiter_collators), + // completed in runtime 2700 + // Box::new(missing_balances_migrations), + // Box::new(fix_pallet_versions), + // Box::new(pallet_referenda_migrate_v0_to_v1), + // completed in runtime 2800 + //Box::new(pallet_collective_drop_gov_v1_collectives), + // completed in runtime 2801 + // Box::new(pallet_staking_round), + // Box::new(pallet_collective_drop_gov_v1_collectives), + // completed in runtime 2900 + // Box::new(remove_pallet_democracy), + // Box::new(remove_collectives_addresses), + // permanent migrations + Box::new(MigrateToLatestXcmVersion::(Default::default())), + ] + } +} diff --git a/tracing/3001/runtime/common/src/timestamp.rs b/tracing/3001/runtime/common/src/timestamp.rs new file mode 100644 index 00000000..82a67ef3 --- /dev/null +++ b/tracing/3001/runtime/common/src/timestamp.rs @@ -0,0 +1,92 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! A way to get a relyable timestamp + +use cumulus_pallet_parachain_system::{ + consensus_hook::UnincludedSegmentCapacity, + relay_state_snapshot::{self, ReadEntryErr}, + ConsensusHook, RelayChainStateProof, +}; +use frame_support::pallet_prelude::*; +use frame_support::storage::types::{StorageValue, ValueQuery}; +use frame_support::traits::{StorageInstance, Time}; +pub use moonbeam_core_primitives::well_known_relay_keys; + +/// Get the relay timestamp. +/// Noe that the relay timestamp is populated at the parachain system inherent. +/// If you fetch the timestamp before, you will get the timestamp of the parent block. +pub struct RelayTimestamp; +impl Time for RelayTimestamp { + type Moment = u64; + + fn now() -> Self::Moment { + RelayTimestampNow::get() + } +} + +/// A wrapper around the consensus hook to get the relay timestamp from the relay storage proof +pub struct ConsensusHookWrapperForRelayTimestamp( + core::marker::PhantomData<(Runtime, Inner)>, +); +impl ConsensusHook for ConsensusHookWrapperForRelayTimestamp +where + Runtime: frame_system::Config, + Inner: ConsensusHook, +{ + fn on_state_proof(state_proof: &RelayChainStateProof) -> (Weight, UnincludedSegmentCapacity) { + let relay_timestamp: u64 = + match state_proof.read_entry(well_known_relay_keys::TIMESTAMP_NOW, None) { + Ok(relay_timestamp) => relay_timestamp, + // Log the read entry error + Err(relay_state_snapshot::Error::ReadEntry(ReadEntryErr::Proof)) => { + log::error!("Invalid relay storage proof: fail to read key TIMESTAMP_NOW"); + panic!("Invalid realy storage proof: fail to read key TIMESTAMP_NOW"); + } + Err(relay_state_snapshot::Error::ReadEntry(ReadEntryErr::Decode)) => { + log::error!("Corrupted relay storage: fail to decode value TIMESTAMP_NOW"); + panic!("Corrupted relay storage: fail to decode value TIMESTAMP_NOW"); + } + Err(relay_state_snapshot::Error::ReadEntry(ReadEntryErr::Absent)) => { + log::error!("Corrupted relay storage: value TIMESTAMP_NOW is absent!"); + panic!("Corrupted relay storage: value TIMESTAMP_NOW is absent!"); + } + // Can't return another kind of error, the blokc is invalid anyway, so we should panic + _ => unreachable!(), + }; + + let wrapper_weight = ::DbWeight::get().writes(1); + + RelayTimestampNow::put(relay_timestamp); + + let (weight, capacity) = Inner::on_state_proof(state_proof); + + (weight.saturating_add(wrapper_weight), capacity) + } +} + +// Prefix for storage value RelayTimestampNow +struct RelayTimestampNowPrefix; +impl StorageInstance for RelayTimestampNowPrefix { + const STORAGE_PREFIX: &'static str = "RelayTimestampNow"; + + fn pallet_prefix() -> &'static str { + "runtime" + } +} + +// Storage type used to store the last current relay timestamp +type RelayTimestampNow = StorageValue; diff --git a/tracing/3001/runtime/common/src/weights/cumulus_pallet_xcmp_queue.rs b/tracing/3001/runtime/common/src/weights/cumulus_pallet_xcmp_queue.rs new file mode 100644 index 00000000..0d307f49 --- /dev/null +++ b/tracing/3001/runtime/common/src/weights/cumulus_pallet_xcmp_queue.rs @@ -0,0 +1,154 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Autogenerated weights for `cumulus_pallet_xcmp_queue` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-05-27, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `ip-10-0-0-176`, CPU: `Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz` +//! WASM-EXECUTION: Compiled, CHAIN: Some("moonbase-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/production/moonbeam +// benchmark +// pallet +// --chain=moonbase-dev +// --steps=50 +// --repeat=20 +// --pallet=cumulus_pallet_xcmp_queue +// --extrinsic=* +// --wasm-execution=compiled +// --header=./file_header.txt +// --template=./benchmarking/frame-weight-template.hbs +// --output=./runtime/common/src/weights/ + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; +use sp_std::marker::PhantomData; + +/// Weights 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: `XcmpQueue::QueueConfig` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn set_config_with_u32() -> Weight { + // Proof Size summary in bytes: + // Measured: `142` + // Estimated: `1627` + // Minimum execution time: 4_439_000 picoseconds. + Weight::from_parts(4_740_000, 1627) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `XcmpQueue::QueueConfig` (r:1 w:0) + /// Proof: `XcmpQueue::QueueConfig` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `MessageQueue::BookStateFor` (r:1 w:1) + /// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `MessageQueue::ServiceHead` (r:1 w:1) + /// Proof: `MessageQueue::ServiceHead` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `MaxEncodedLen`) + /// Storage: `XcmpQueue::InboundXcmpSuspended` (r:1 w:0) + /// Proof: `XcmpQueue::InboundXcmpSuspended` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `MessageQueue::Pages` (r:0 w:1) + /// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(134193), added: 136668, mode: `MaxEncodedLen`) + fn enqueue_xcmp_message() -> Weight { + // Proof Size summary in bytes: + // Measured: `148` + // Estimated: `3517` + // Minimum execution time: 11_199_000 picoseconds. + Weight::from_parts(11_613_000, 3517) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + } + /// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:1) + /// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn suspend_channel() -> Weight { + // Proof Size summary in bytes: + // Measured: `142` + // Estimated: `1627` + // Minimum execution time: 2_912_000 picoseconds. + Weight::from_parts(3_033_000, 1627) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:1) + /// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn resume_channel() -> Weight { + // Proof Size summary in bytes: + // Measured: `177` + // Estimated: `1662` + // Minimum execution time: 3_790_000 picoseconds. + Weight::from_parts(3_947_000, 1662) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + fn take_first_concatenated_xcm() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 8_196_000 picoseconds. + Weight::from_parts(8_352_000, 0) + } + /// Storage: UNKNOWN KEY `0x7b3237373ffdfeb1cab4222e3b520d6b345d8e88afa015075c945637c07e8f20` (r:1 w:1) + /// Proof: UNKNOWN KEY `0x7b3237373ffdfeb1cab4222e3b520d6b345d8e88afa015075c945637c07e8f20` (r:1 w:1) + /// Storage: UNKNOWN KEY `0x7b3237373ffdfeb1cab4222e3b520d6bedc49980ba3aa32b0a189290fd036649` (r:1 w:1) + /// Proof: UNKNOWN KEY `0x7b3237373ffdfeb1cab4222e3b520d6bedc49980ba3aa32b0a189290fd036649` (r:1 w:1) + /// Storage: `MessageQueue::BookStateFor` (r:1 w:1) + /// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `MessageQueue::ServiceHead` (r:1 w:1) + /// Proof: `MessageQueue::ServiceHead` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `MaxEncodedLen`) + /// Storage: `XcmpQueue::QueueConfig` (r:1 w:0) + /// Proof: `XcmpQueue::QueueConfig` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `XcmpQueue::InboundXcmpSuspended` (r:1 w:0) + /// Proof: `XcmpQueue::InboundXcmpSuspended` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `MessageQueue::Pages` (r:0 w:1) + /// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(134193), added: 136668, mode: `MaxEncodedLen`) + fn on_idle_good_msg() -> Weight { + // Proof Size summary in bytes: + // Measured: `134385` + // Estimated: `137850` + // Minimum execution time: 204_143_000 picoseconds. + Weight::from_parts(208_968_000, 137850) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().writes(5_u64)) + } + /// Storage: UNKNOWN KEY `0x7b3237373ffdfeb1cab4222e3b520d6b345d8e88afa015075c945637c07e8f20` (r:1 w:1) + /// Proof: UNKNOWN KEY `0x7b3237373ffdfeb1cab4222e3b520d6b345d8e88afa015075c945637c07e8f20` (r:1 w:1) + /// Storage: UNKNOWN KEY `0x7b3237373ffdfeb1cab4222e3b520d6bedc49980ba3aa32b0a189290fd036649` (r:1 w:1) + /// Proof: UNKNOWN KEY `0x7b3237373ffdfeb1cab4222e3b520d6bedc49980ba3aa32b0a189290fd036649` (r:1 w:1) + /// Storage: `MessageQueue::BookStateFor` (r:1 w:1) + /// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `MessageQueue::ServiceHead` (r:1 w:1) + /// Proof: `MessageQueue::ServiceHead` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `MaxEncodedLen`) + /// Storage: `XcmpQueue::QueueConfig` (r:1 w:0) + /// Proof: `XcmpQueue::QueueConfig` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `XcmpQueue::InboundXcmpSuspended` (r:1 w:0) + /// Proof: `XcmpQueue::InboundXcmpSuspended` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `MessageQueue::Pages` (r:0 w:1) + /// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(134193), added: 136668, mode: `MaxEncodedLen`) + fn on_idle_large_msg() -> Weight { + // Proof Size summary in bytes: + // Measured: `65782` + // Estimated: `69247` + // Minimum execution time: 110_679_000 picoseconds. + Weight::from_parts(113_402_000, 69247) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().writes(5_u64)) + } +} diff --git a/tracing/3001/runtime/common/src/weights/mod.rs b/tracing/3001/runtime/common/src/weights/mod.rs new file mode 100644 index 00000000..48b83715 --- /dev/null +++ b/tracing/3001/runtime/common/src/weights/mod.rs @@ -0,0 +1,48 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Moonbeam common weights. + +pub mod cumulus_pallet_xcmp_queue; +pub mod pallet_asset_manager; +pub mod pallet_assets; +pub mod pallet_author_inherent; +pub mod pallet_author_mapping; +pub mod pallet_author_slot_filter; +pub mod pallet_balances; +pub mod pallet_collective; +pub mod pallet_conviction_voting; +pub mod pallet_crowdloan_rewards; +pub mod pallet_evm; +pub mod pallet_identity; +pub mod pallet_moonbeam_lazy_migrations; +pub mod pallet_moonbeam_orbiters; +pub mod pallet_multisig; +pub mod pallet_parachain_staking; +pub mod pallet_precompile_benchmarks; +pub mod pallet_preimage; +pub mod pallet_proxy; +pub mod pallet_randomness; +pub mod pallet_referenda; +pub mod pallet_relay_storage_roots; +pub mod pallet_scheduler; +pub mod pallet_sudo; +pub mod pallet_timestamp; +pub mod pallet_treasury; +pub mod pallet_utility; +pub mod pallet_whitelist; +pub mod pallet_xcm; +pub mod pallet_xcm_transactor; diff --git a/tracing/3001/runtime/common/src/weights/pallet_asset_manager.rs b/tracing/3001/runtime/common/src/weights/pallet_asset_manager.rs new file mode 100644 index 00000000..591d8de9 --- /dev/null +++ b/tracing/3001/runtime/common/src/weights/pallet_asset_manager.rs @@ -0,0 +1,144 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Autogenerated weights for `pallet_asset_manager` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-05-27, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `ip-10-0-0-176`, CPU: `Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz` +//! WASM-EXECUTION: Compiled, CHAIN: Some("moonbase-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/production/moonbeam +// benchmark +// pallet +// --chain=moonbase-dev +// --steps=50 +// --repeat=20 +// --pallet=pallet_asset_manager +// --extrinsic=* +// --wasm-execution=compiled +// --header=./file_header.txt +// --template=./benchmarking/frame-weight-template.hbs +// --output=./runtime/common/src/weights/ + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; +use sp_std::marker::PhantomData; + +/// Weights for `pallet_asset_manager`. +pub struct WeightInfo(PhantomData); +impl pallet_asset_manager::WeightInfo for WeightInfo { + /// Storage: `AssetManager::AssetIdType` (r:1 w:1) + /// Proof: `AssetManager::AssetIdType` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(174), added: 2649, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:1) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(152), added: 2627, mode: `MaxEncodedLen`) + /// Storage: `AssetManager::AssetTypeId` (r:0 w:1) + /// Proof: `AssetManager::AssetTypeId` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn register_foreign_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `82` + // Estimated: `3639` + // Minimum execution time: 29_376_000 picoseconds. + Weight::from_parts(30_234_000, 3639) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) + } + /// Storage: `AssetManager::AssetTypeId` (r:1 w:0) + /// Proof: `AssetManager::AssetTypeId` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AssetManager::SupportedFeePaymentAssets` (r:1 w:1) + /// Proof: `AssetManager::SupportedFeePaymentAssets` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AssetManager::AssetTypeUnitsPerSecond` (r:0 w:1) + /// Proof: `AssetManager::AssetTypeUnitsPerSecond` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `x` is `[5, 100]`. + fn set_asset_units_per_second(x: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `611 + x * (9 ±0)` + // Estimated: `4000 + x * (10 ±0)` + // Minimum execution time: 20_442_000 picoseconds. + Weight::from_parts(18_338_506, 4000) + // Standard Error: 4_080 + .saturating_add(Weight::from_parts(871_614, 0).saturating_mul(x.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + .saturating_add(Weight::from_parts(0, 10).saturating_mul(x.into())) + } + /// Storage: `AssetManager::SupportedFeePaymentAssets` (r:1 w:1) + /// Proof: `AssetManager::SupportedFeePaymentAssets` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AssetManager::AssetIdType` (r:1 w:1) + /// Proof: `AssetManager::AssetIdType` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AssetManager::AssetTypeUnitsPerSecond` (r:1 w:2) + /// Proof: `AssetManager::AssetTypeUnitsPerSecond` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AssetManager::AssetTypeId` (r:0 w:2) + /// Proof: `AssetManager::AssetTypeId` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `x` is `[5, 100]`. + fn change_existing_asset_type(x: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `926 + x * (13 ±0)` + // Estimated: `4309 + x * (15 ±0)` + // Minimum execution time: 30_343_000 picoseconds. + Weight::from_parts(29_193_584, 4309) + // Standard Error: 4_573 + .saturating_add(Weight::from_parts(963_206, 0).saturating_mul(x.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(6_u64)) + .saturating_add(Weight::from_parts(0, 15).saturating_mul(x.into())) + } + /// Storage: `AssetManager::SupportedFeePaymentAssets` (r:1 w:1) + /// Proof: `AssetManager::SupportedFeePaymentAssets` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AssetManager::AssetTypeUnitsPerSecond` (r:0 w:1) + /// Proof: `AssetManager::AssetTypeUnitsPerSecond` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `x` is `[5, 100]`. + fn remove_supported_asset(x: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `196 + x * (5 ±0)` + // Estimated: `1678 + x * (5 ±0)` + // Minimum execution time: 16_137_000 picoseconds. + Weight::from_parts(13_193_368, 1678) + // Standard Error: 4_122 + .saturating_add(Weight::from_parts(800_676, 0).saturating_mul(x.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + .saturating_add(Weight::from_parts(0, 5).saturating_mul(x.into())) + } + /// Storage: `AssetManager::SupportedFeePaymentAssets` (r:1 w:1) + /// Proof: `AssetManager::SupportedFeePaymentAssets` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AssetManager::AssetIdType` (r:1 w:1) + /// Proof: `AssetManager::AssetIdType` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AssetManager::AssetTypeUnitsPerSecond` (r:0 w:1) + /// Proof: `AssetManager::AssetTypeUnitsPerSecond` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AssetManager::AssetTypeId` (r:0 w:1) + /// Proof: `AssetManager::AssetTypeId` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `x` is `[5, 100]`. + fn remove_existing_asset_type(x: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `482 + x * (10 ±0)` + // Estimated: `3955 + x * (10 ±0)` + // Minimum execution time: 22_167_000 picoseconds. + Weight::from_parts(20_383_311, 3955) + // Standard Error: 4_061 + .saturating_add(Weight::from_parts(808_620, 0).saturating_mul(x.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) + .saturating_add(Weight::from_parts(0, 10).saturating_mul(x.into())) + } +} diff --git a/tracing/3001/runtime/common/src/weights/pallet_assets.rs b/tracing/3001/runtime/common/src/weights/pallet_assets.rs new file mode 100644 index 00000000..1cc655a4 --- /dev/null +++ b/tracing/3001/runtime/common/src/weights/pallet_assets.rs @@ -0,0 +1,483 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Autogenerated weights for `pallet_assets` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-05-27, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `ip-10-0-0-176`, CPU: `Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz` +//! WASM-EXECUTION: Compiled, CHAIN: Some("moonbase-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/production/moonbeam +// benchmark +// pallet +// --chain=moonbase-dev +// --steps=50 +// --repeat=20 +// --pallet=pallet_assets +// --extrinsic=* +// --wasm-execution=compiled +// --header=./file_header.txt +// --template=./benchmarking/frame-weight-template.hbs +// --output=./runtime/common/src/weights/ + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; +use sp_std::marker::PhantomData; + +/// Weights for `pallet_assets`. +pub struct WeightInfo(PhantomData); +impl pallet_assets::WeightInfo for WeightInfo { + fn create() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 0_000 picoseconds. + Weight::from_parts(0, 0) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(174), added: 2649, mode: `MaxEncodedLen`) + fn force_create() -> Weight { + // Proof Size summary in bytes: + // Measured: `6` + // Estimated: `3639` + // Minimum execution time: 8_799_000 picoseconds. + Weight::from_parts(9_198_000, 3639) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(174), added: 2649, mode: `MaxEncodedLen`) + fn start_destroy() -> Weight { + // Proof Size summary in bytes: + // Measured: `241` + // Estimated: `3639` + // Minimum execution time: 10_365_000 picoseconds. + Weight::from_parts(10_724_000, 3639) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(174), added: 2649, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:657 w:656) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:656 w:656) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + /// The range of component `c` is `[0, 656]`. + fn destroy_accounts(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `1434 + c * (183 ±0)` + // Estimated: `3639 + c * (2597 ±0)` + // Minimum execution time: 14_992_000 picoseconds. + Weight::from_parts(15_209_000, 3639) + // Standard Error: 16_536 + .saturating_add(Weight::from_parts(16_137_327, 0).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(c.into()))) + .saturating_add(T::DbWeight::get().writes(1_u64)) + .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(c.into()))) + .saturating_add(Weight::from_parts(0, 2597).saturating_mul(c.into())) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(174), added: 2649, mode: `MaxEncodedLen`) + /// Storage: `Assets::Approvals` (r:657 w:656) + /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(136), added: 2611, mode: `MaxEncodedLen`) + /// The range of component `a` is `[0, 656]`. + fn destroy_approvals(a: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `313 + a * (74 ±0)` + // Estimated: `3639 + a * (2611 ±0)` + // Minimum execution time: 15_839_000 picoseconds. + Weight::from_parts(16_086_000, 3639) + // Standard Error: 8_245 + .saturating_add(Weight::from_parts(8_405_417, 0).saturating_mul(a.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) + .saturating_add(T::DbWeight::get().writes(1_u64)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into()))) + .saturating_add(Weight::from_parts(0, 2611).saturating_mul(a.into())) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(174), added: 2649, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:0) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(152), added: 2627, mode: `MaxEncodedLen`) + fn finish_destroy() -> Weight { + // Proof Size summary in bytes: + // Measured: `207` + // Estimated: `3639` + // Minimum execution time: 11_486_000 picoseconds. + Weight::from_parts(11_902_000, 3639) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(174), added: 2649, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) + fn mint() -> Weight { + // Proof Size summary in bytes: + // Measured: `207` + // Estimated: `3639` + // Minimum execution time: 19_800_000 picoseconds. + Weight::from_parts(20_544_000, 3639) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(174), added: 2649, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) + fn burn() -> Weight { + // Proof Size summary in bytes: + // Measured: `315` + // Estimated: `3639` + // Minimum execution time: 27_676_000 picoseconds. + Weight::from_parts(28_276_000, 3639) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(174), added: 2649, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:2 w:2) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + fn transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `420` + // Estimated: `6184` + // Minimum execution time: 38_788_000 picoseconds. + Weight::from_parts(39_673_000, 6184) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(174), added: 2649, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:2 w:2) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + fn transfer_keep_alive() -> Weight { + // Proof Size summary in bytes: + // Measured: `420` + // Estimated: `6184` + // Minimum execution time: 35_308_000 picoseconds. + Weight::from_parts(35_692_000, 6184) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(174), added: 2649, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:2 w:2) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + fn force_transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `420` + // Estimated: `6184` + // Minimum execution time: 38_981_000 picoseconds. + Weight::from_parts(39_798_000, 6184) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) + } + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(174), added: 2649, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) + fn freeze() -> Weight { + // Proof Size summary in bytes: + // Measured: `315` + // Estimated: `3639` + // Minimum execution time: 14_127_000 picoseconds. + Weight::from_parts(14_448_000, 3639) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(174), added: 2649, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) + fn thaw() -> Weight { + // Proof Size summary in bytes: + // Measured: `315` + // Estimated: `3639` + // Minimum execution time: 14_006_000 picoseconds. + Weight::from_parts(14_442_000, 3639) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(174), added: 2649, mode: `MaxEncodedLen`) + fn freeze_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `241` + // Estimated: `3639` + // Minimum execution time: 10_253_000 picoseconds. + Weight::from_parts(10_556_000, 3639) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(174), added: 2649, mode: `MaxEncodedLen`) + fn thaw_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `241` + // Estimated: `3639` + // Minimum execution time: 10_224_000 picoseconds. + Weight::from_parts(10_538_000, 3639) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(174), added: 2649, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:0) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(152), added: 2627, mode: `MaxEncodedLen`) + fn transfer_ownership() -> Weight { + // Proof Size summary in bytes: + // Measured: `207` + // Estimated: `3639` + // Minimum execution time: 11_833_000 picoseconds. + Weight::from_parts(12_120_000, 3639) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(174), added: 2649, mode: `MaxEncodedLen`) + fn set_team() -> Weight { + // Proof Size summary in bytes: + // Measured: `207` + // Estimated: `3639` + // Minimum execution time: 10_045_000 picoseconds. + Weight::from_parts(10_431_000, 3639) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(174), added: 2649, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:1) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(152), added: 2627, 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 { + // Proof Size summary in bytes: + // Measured: `207` + // Estimated: `3639` + // Minimum execution time: 24_760_000 picoseconds. + Weight::from_parts(25_850_359, 3639) + // Standard Error: 492 + .saturating_add(Weight::from_parts(878, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(174), added: 2649, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:1) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(152), added: 2627, mode: `MaxEncodedLen`) + fn clear_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `383` + // Estimated: `3639` + // Minimum execution time: 25_743_000 picoseconds. + Weight::from_parts(26_805_000, 3639) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(174), added: 2649, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:1) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(152), added: 2627, 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 { + // Proof Size summary in bytes: + // Measured: `94` + // Estimated: `3639` + // Minimum execution time: 10_615_000 picoseconds. + Weight::from_parts(11_181_399, 3639) + // Standard Error: 290 + .saturating_add(Weight::from_parts(492, 0).saturating_mul(n.into())) + // Standard Error: 290 + .saturating_add(Weight::from_parts(611, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(174), added: 2649, mode: `MaxEncodedLen`) + /// Storage: `Assets::Metadata` (r:1 w:1) + /// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(152), added: 2627, mode: `MaxEncodedLen`) + fn force_clear_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `383` + // Estimated: `3639` + // Minimum execution time: 25_875_000 picoseconds. + Weight::from_parts(26_208_000, 3639) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(174), added: 2649, mode: `MaxEncodedLen`) + fn force_asset_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `207` + // Estimated: `3639` + // Minimum execution time: 9_600_000 picoseconds. + Weight::from_parts(9_984_000, 3639) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(174), added: 2649, mode: `MaxEncodedLen`) + /// Storage: `Assets::Approvals` (r:1 w:1) + /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(136), added: 2611, mode: `MaxEncodedLen`) + fn approve_transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `241` + // Estimated: `3639` + // Minimum execution time: 16_109_000 picoseconds. + Weight::from_parts(16_712_000, 3639) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(174), added: 2649, mode: `MaxEncodedLen`) + /// Storage: `Assets::Approvals` (r:1 w:1) + /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(136), added: 2611, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:2 w:2) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + fn transfer_approved() -> Weight { + // Proof Size summary in bytes: + // Measured: `513` + // Estimated: `6184` + // Minimum execution time: 47_416_000 picoseconds. + Weight::from_parts(48_253_000, 6184) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(5_u64)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(174), added: 2649, mode: `MaxEncodedLen`) + /// Storage: `Assets::Approvals` (r:1 w:1) + /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(136), added: 2611, mode: `MaxEncodedLen`) + fn cancel_approval() -> Weight { + // Proof Size summary in bytes: + // Measured: `399` + // Estimated: `3639` + // Minimum execution time: 18_118_000 picoseconds. + Weight::from_parts(18_583_000, 3639) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(174), added: 2649, mode: `MaxEncodedLen`) + /// Storage: `Assets::Approvals` (r:1 w:1) + /// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(136), added: 2611, mode: `MaxEncodedLen`) + fn force_cancel_approval() -> Weight { + // Proof Size summary in bytes: + // Measured: `399` + // Estimated: `3639` + // Minimum execution time: 18_164_000 picoseconds. + Weight::from_parts(18_774_000, 3639) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(174), added: 2649, mode: `MaxEncodedLen`) + fn set_min_balance() -> Weight { + // Proof Size summary in bytes: + // Measured: `207` + // Estimated: `3639` + // Minimum execution time: 10_962_000 picoseconds. + Weight::from_parts(11_263_000, 3639) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(174), added: 2649, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + fn touch() -> Weight { + // Proof Size summary in bytes: + // Measured: `435` + // Estimated: `3639` + // Minimum execution time: 30_126_000 picoseconds. + Weight::from_parts(30_672_000, 3639) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + } + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(174), added: 2649, mode: `MaxEncodedLen`) + fn touch_other() -> Weight { + // Proof Size summary in bytes: + // Measured: `207` + // Estimated: `3639` + // Minimum execution time: 27_778_000 picoseconds. + Weight::from_parts(28_536_000, 3639) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(174), added: 2649, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + fn refund() -> Weight { + // Proof Size summary in bytes: + // Measured: `561` + // Estimated: `3639` + // Minimum execution time: 29_629_000 picoseconds. + Weight::from_parts(30_627_000, 3639) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + } + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) + /// Storage: `Assets::Asset` (r:1 w:1) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(174), added: 2649, mode: `MaxEncodedLen`) + fn refund_other() -> Weight { + // Proof Size summary in bytes: + // Measured: `353` + // Estimated: `3639` + // Minimum execution time: 27_362_000 picoseconds. + Weight::from_parts(28_100_000, 3639) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(174), added: 2649, mode: `MaxEncodedLen`) + /// Storage: `Assets::Account` (r:1 w:1) + /// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) + fn block() -> Weight { + // Proof Size summary in bytes: + // Measured: `315` + // Estimated: `3639` + // Minimum execution time: 14_221_000 picoseconds. + Weight::from_parts(14_434_000, 3639) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } +} diff --git a/tracing/3001/runtime/common/src/weights/pallet_author_inherent.rs b/tracing/3001/runtime/common/src/weights/pallet_author_inherent.rs new file mode 100644 index 00000000..b9c32770 --- /dev/null +++ b/tracing/3001/runtime/common/src/weights/pallet_author_inherent.rs @@ -0,0 +1,70 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Autogenerated weights for `pallet_author_inherent` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-05-27, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `ip-10-0-0-176`, CPU: `Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz` +//! WASM-EXECUTION: Compiled, CHAIN: Some("moonbase-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/production/moonbeam +// benchmark +// pallet +// --chain=moonbase-dev +// --steps=50 +// --repeat=20 +// --pallet=pallet_author_inherent +// --extrinsic=* +// --wasm-execution=compiled +// --header=./file_header.txt +// --template=./benchmarking/frame-weight-template.hbs +// --output=./runtime/common/src/weights/ + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; +use sp_std::marker::PhantomData; + +/// Weights for `pallet_author_inherent`. +pub struct WeightInfo(PhantomData); +impl pallet_author_inherent::WeightInfo for WeightInfo { + /// Storage: `ParachainSystem::ValidationData` (r:1 w:0) + /// Proof: `ParachainSystem::ValidationData` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AuthorInherent::Author` (r:1 w:0) + /// Proof: `AuthorInherent::Author` (`max_values`: Some(1), `max_size`: Some(20), added: 515, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::SelectedCandidates` (r:1 w:0) + /// Proof: `ParachainStaking::SelectedCandidates` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AuthorFilter::EligibleCount` (r:1 w:0) + /// Proof: `AuthorFilter::EligibleCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Randomness::PreviousLocalVrfOutput` (r:1 w:0) + /// Proof: `Randomness::PreviousLocalVrfOutput` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AuthorInherent::InherentIncluded` (r:0 w:1) + /// Proof: `AuthorInherent::InherentIncluded` (`max_values`: Some(1), `max_size`: Some(1), added: 496, mode: `MaxEncodedLen`) + fn kick_off_authorship_validation() -> Weight { + // Proof Size summary in bytes: + // Measured: `372` + // Estimated: `1857` + // Minimum execution time: 17_448_000 picoseconds. + Weight::from_parts(18_017_000, 1857) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } +} diff --git a/tracing/3001/runtime/common/src/weights/pallet_author_mapping.rs b/tracing/3001/runtime/common/src/weights/pallet_author_mapping.rs new file mode 100644 index 00000000..478efde7 --- /dev/null +++ b/tracing/3001/runtime/common/src/weights/pallet_author_mapping.rs @@ -0,0 +1,122 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Autogenerated weights for `pallet_author_mapping` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-05-27, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `ip-10-0-0-176`, CPU: `Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz` +//! WASM-EXECUTION: Compiled, CHAIN: Some("moonbase-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/production/moonbeam +// benchmark +// pallet +// --chain=moonbase-dev +// --steps=50 +// --repeat=20 +// --pallet=pallet_author_mapping +// --extrinsic=* +// --wasm-execution=compiled +// --header=./file_header.txt +// --template=./benchmarking/frame-weight-template.hbs +// --output=./runtime/common/src/weights/ + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; +use sp_std::marker::PhantomData; + +/// Weights for `pallet_author_mapping`. +pub struct WeightInfo(PhantomData); +impl pallet_author_mapping::WeightInfo for WeightInfo { + /// Storage: `AuthorMapping::MappingWithDeposit` (r:1 w:1) + /// Proof: `AuthorMapping::MappingWithDeposit` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + /// Storage: `AuthorMapping::NimbusLookup` (r:0 w:1) + /// Proof: `AuthorMapping::NimbusLookup` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn add_association() -> Weight { + // Proof Size summary in bytes: + // Measured: `376` + // Estimated: `3841` + // Minimum execution time: 27_516_000 picoseconds. + Weight::from_parts(28_163_000, 3841) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + } + /// Storage: `AuthorMapping::MappingWithDeposit` (r:2 w:2) + /// Proof: `AuthorMapping::MappingWithDeposit` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AuthorMapping::NimbusLookup` (r:0 w:1) + /// Proof: `AuthorMapping::NimbusLookup` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn update_association() -> Weight { + // Proof Size summary in bytes: + // Measured: `325` + // Estimated: `6265` + // Minimum execution time: 17_665_000 picoseconds. + Weight::from_parts(18_205_000, 6265) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + } + /// Storage: `AuthorMapping::MappingWithDeposit` (r:1 w:1) + /// Proof: `AuthorMapping::MappingWithDeposit` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + /// Storage: `AuthorMapping::NimbusLookup` (r:0 w:1) + /// Proof: `AuthorMapping::NimbusLookup` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn clear_association() -> Weight { + // Proof Size summary in bytes: + // Measured: `453` + // Estimated: `3918` + // Minimum execution time: 29_176_000 picoseconds. + Weight::from_parts(29_725_000, 3918) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + } + /// Storage: `AuthorMapping::NimbusLookup` (r:1 w:1) + /// Proof: `AuthorMapping::NimbusLookup` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AuthorMapping::MappingWithDeposit` (r:1 w:1) + /// Proof: `AuthorMapping::MappingWithDeposit` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + fn remove_keys() -> Weight { + // Proof Size summary in bytes: + // Measured: `547` + // Estimated: `4012` + // Minimum execution time: 34_851_000 picoseconds. + Weight::from_parts(36_146_000, 4012) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + } + /// Storage: `AuthorMapping::NimbusLookup` (r:1 w:1) + /// Proof: `AuthorMapping::NimbusLookup` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AuthorMapping::MappingWithDeposit` (r:1 w:1) + /// Proof: `AuthorMapping::MappingWithDeposit` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + fn set_keys() -> Weight { + // Proof Size summary in bytes: + // Measured: `432` + // Estimated: `3897` + // Minimum execution time: 30_522_000 picoseconds. + Weight::from_parts(31_556_000, 3897) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + } +} diff --git a/tracing/3001/runtime/common/src/weights/pallet_author_slot_filter.rs b/tracing/3001/runtime/common/src/weights/pallet_author_slot_filter.rs new file mode 100644 index 00000000..8910502d --- /dev/null +++ b/tracing/3001/runtime/common/src/weights/pallet_author_slot_filter.rs @@ -0,0 +1,59 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Autogenerated weights for `pallet_author_slot_filter` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-05-27, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `ip-10-0-0-176`, CPU: `Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz` +//! WASM-EXECUTION: Compiled, CHAIN: Some("moonbase-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/production/moonbeam +// benchmark +// pallet +// --chain=moonbase-dev +// --steps=50 +// --repeat=20 +// --pallet=pallet_author_slot_filter +// --extrinsic=* +// --wasm-execution=compiled +// --header=./file_header.txt +// --template=./benchmarking/frame-weight-template.hbs +// --output=./runtime/common/src/weights/ + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; +use sp_std::marker::PhantomData; + +/// Weights for `pallet_author_slot_filter`. +pub struct WeightInfo(PhantomData); +impl pallet_author_slot_filter::WeightInfo for WeightInfo { + /// Storage: `AuthorFilter::EligibleCount` (r:0 w:1) + /// Proof: `AuthorFilter::EligibleCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn set_eligible() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 4_359_000 picoseconds. + Weight::from_parts(4_667_000, 0) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } +} diff --git a/tracing/3001/runtime/common/src/weights/pallet_balances.rs b/tracing/3001/runtime/common/src/weights/pallet_balances.rs new file mode 100644 index 00000000..1be8fd59 --- /dev/null +++ b/tracing/3001/runtime/common/src/weights/pallet_balances.rs @@ -0,0 +1,151 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Autogenerated weights for `pallet_balances` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-05-27, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `ip-10-0-0-176`, CPU: `Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz` +//! WASM-EXECUTION: Compiled, CHAIN: Some("moonbase-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/production/moonbeam +// benchmark +// pallet +// --chain=moonbase-dev +// --steps=50 +// --repeat=20 +// --pallet=pallet_balances +// --extrinsic=* +// --wasm-execution=compiled +// --header=./file_header.txt +// --template=./benchmarking/frame-weight-template.hbs +// --output=./runtime/common/src/weights/ + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; +use sp_std::marker::PhantomData; + +/// Weights 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(116), added: 2591, mode: `MaxEncodedLen`) + fn transfer_allow_death() -> Weight { + // Proof Size summary in bytes: + // Measured: `72` + // Estimated: `3581` + // Minimum execution time: 44_465_000 picoseconds. + Weight::from_parts(45_825_000, 3581) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + fn transfer_keep_alive() -> Weight { + // Proof Size summary in bytes: + // Measured: `72` + // Estimated: `3581` + // Minimum execution time: 38_080_000 picoseconds. + Weight::from_parts(38_777_000, 3581) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + fn force_set_balance_creating() -> Weight { + // Proof Size summary in bytes: + // Measured: `195` + // Estimated: `3581` + // Minimum execution time: 14_885_000 picoseconds. + Weight::from_parts(15_254_000, 3581) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + fn force_set_balance_killing() -> Weight { + // Proof Size summary in bytes: + // Measured: `195` + // Estimated: `3581` + // Minimum execution time: 19_741_000 picoseconds. + Weight::from_parts(20_360_000, 3581) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + fn force_transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `267` + // Estimated: `6172` + // Minimum execution time: 46_696_000 picoseconds. + Weight::from_parts(47_945_000, 6172) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + fn transfer_all() -> Weight { + // Proof Size summary in bytes: + // Measured: `72` + // Estimated: `3581` + // Minimum execution time: 47_016_000 picoseconds. + Weight::from_parts(47_611_000, 3581) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + fn force_unreserve() -> Weight { + // Proof Size summary in bytes: + // Measured: `195` + // Estimated: `3581` + // Minimum execution time: 17_504_000 picoseconds. + Weight::from_parts(17_935_000, 3581) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `System::Account` (r:999 w:999) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + /// The range of component `u` is `[1, 1000]`. + fn upgrade_accounts(u: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `1211 + u * (123 ±0)` + // Estimated: `990 + u * (2591 ±0)` + // Minimum execution time: 16_219_000 picoseconds. + Weight::from_parts(16_530_000, 990) + // Standard Error: 12_992 + .saturating_add(Weight::from_parts(13_547_008, 0).saturating_mul(u.into())) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(u.into()))) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(u.into()))) + .saturating_add(Weight::from_parts(0, 2591).saturating_mul(u.into())) + } + /// Storage: `Balances::InactiveIssuance` (r:1 w:0) + /// Proof: `Balances::InactiveIssuance` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + fn force_adjust_total_issuance() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `1501` + // Minimum execution time: 5_953_000 picoseconds. + Weight::from_parts(6_365_000, 1501) + .saturating_add(T::DbWeight::get().reads(1_u64)) + } +} diff --git a/tracing/3001/runtime/common/src/weights/pallet_collective.rs b/tracing/3001/runtime/common/src/weights/pallet_collective.rs new file mode 100644 index 00000000..5c70e97f --- /dev/null +++ b/tracing/3001/runtime/common/src/weights/pallet_collective.rs @@ -0,0 +1,308 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . +//! Autogenerated weights for `pallet_collective` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-11-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `ip-10-0-0-176`, CPU: `Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz` +//! EXECUTION: None, WASM-EXECUTION: Compiled, CHAIN: Some("moonbase-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/release/moonbeam +// benchmark +// pallet +// --chain=moonbase-dev +// --steps=50 +// --repeat=20 +// --pallet=pallet_collective +// --extrinsic=* +// --wasm-execution=compiled +// --header=./file_header.txt +// --output=./runtime/common/src/weights/ + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] +#![allow(missing_docs)] + +use frame_support::{traits::Get, weights::Weight}; +use core::marker::PhantomData; + +/// Weight functions for `pallet_collective`. +pub struct WeightInfo(PhantomData); +impl pallet_collective::WeightInfo for WeightInfo { + /// Storage: CouncilCollective Members (r:1 w:1) + /// Proof Skipped: CouncilCollective Members (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: CouncilCollective Proposals (r:1 w:0) + /// Proof Skipped: CouncilCollective Proposals (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: CouncilCollective Voting (r:100 w:100) + /// Proof Skipped: CouncilCollective Voting (max_values: None, max_size: None, mode: Measured) + /// Storage: CouncilCollective Prime (r:0 w:1) + /// Proof Skipped: CouncilCollective 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 { + // Proof Size summary in bytes: + // Measured: `0 + m * (2021 ±0) + p * (2026 ±0)` + // Estimated: `12238 + m * (1231 ±14) + p * (3660 ±14)` + // Minimum execution time: 13_785_000 picoseconds. + Weight::from_parts(14_085_000, 0) + .saturating_add(Weight::from_parts(0, 12238)) + // Standard Error: 34_315 + .saturating_add(Weight::from_parts(2_414_144, 0).saturating_mul(m.into())) + // Standard Error: 34_315 + .saturating_add(Weight::from_parts(5_345_562, 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, 1231).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(0, 3660).saturating_mul(p.into())) + } + /// Storage: CouncilCollective Members (r:1 w:0) + /// Proof Skipped: CouncilCollective Members (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: MaintenanceMode MaintenanceMode (r:1 w:0) + /// Proof Skipped: MaintenanceMode MaintenanceMode (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 { + // Proof Size summary in bytes: + // Measured: `149 + m * (20 ±0)` + // Estimated: `1634 + m * (20 ±0)` + // Minimum execution time: 12_726_000 picoseconds. + Weight::from_parts(12_294_605, 0) + .saturating_add(Weight::from_parts(0, 1634)) + // Standard Error: 18 + .saturating_add(Weight::from_parts(910, 0).saturating_mul(b.into())) + // Standard Error: 192 + .saturating_add(Weight::from_parts(13_235, 0).saturating_mul(m.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(Weight::from_parts(0, 20).saturating_mul(m.into())) + } + /// Storage: CouncilCollective Members (r:1 w:0) + /// Proof Skipped: CouncilCollective Members (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: CouncilCollective ProposalOf (r:1 w:0) + /// Proof Skipped: CouncilCollective ProposalOf (max_values: None, max_size: None, mode: Measured) + /// Storage: MaintenanceMode MaintenanceMode (r:1 w:0) + /// Proof Skipped: MaintenanceMode MaintenanceMode (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 propose_execute(b: u32, m: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `149 + m * (20 ±0)` + // Estimated: `3614 + m * (20 ±0)` + // Minimum execution time: 14_722_000 picoseconds. + Weight::from_parts(14_487_427, 0) + .saturating_add(Weight::from_parts(0, 3614)) + // Standard Error: 20 + .saturating_add(Weight::from_parts(944, 0).saturating_mul(b.into())) + // Standard Error: 215 + .saturating_add(Weight::from_parts(25_619, 0).saturating_mul(m.into())) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(Weight::from_parts(0, 20).saturating_mul(m.into())) + } + /// Storage: CouncilCollective Members (r:1 w:0) + /// Proof Skipped: CouncilCollective Members (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: CouncilCollective ProposalOf (r:1 w:1) + /// Proof Skipped: CouncilCollective ProposalOf (max_values: None, max_size: None, mode: Measured) + /// Storage: CouncilCollective Proposals (r:1 w:1) + /// Proof Skipped: CouncilCollective Proposals (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: CouncilCollective ProposalCount (r:1 w:1) + /// Proof Skipped: CouncilCollective ProposalCount (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: CouncilCollective Voting (r:0 w:1) + /// Proof Skipped: CouncilCollective 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 { + // Proof Size summary in bytes: + // Measured: `395 + m * (20 ±0) + p * (36 ±0)` + // Estimated: `3789 + m * (21 ±0) + p * (36 ±0)` + // Minimum execution time: 17_107_000 picoseconds. + Weight::from_parts(15_172_014, 0) + .saturating_add(Weight::from_parts(0, 3789)) + // Standard Error: 104 + .saturating_add(Weight::from_parts(3_191, 0).saturating_mul(b.into())) + // Standard Error: 1_090 + .saturating_add(Weight::from_parts(31_145, 0).saturating_mul(m.into())) + // Standard Error: 1_077 + .saturating_add(Weight::from_parts(131_855, 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, 21).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(0, 36).saturating_mul(p.into())) + } + /// Storage: CouncilCollective Members (r:1 w:0) + /// Proof Skipped: CouncilCollective Members (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: CouncilCollective Voting (r:1 w:1) + /// Proof Skipped: CouncilCollective Voting (max_values: None, max_size: None, mode: Measured) + /// The range of component `m` is `[5, 100]`. + fn vote(m: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `870 + m * (40 ±0)` + // Estimated: `4334 + m * (40 ±0)` + // Minimum execution time: 21_423_000 picoseconds. + Weight::from_parts(22_311_906, 0) + .saturating_add(Weight::from_parts(0, 4334)) + // Standard Error: 415 + .saturating_add(Weight::from_parts(32_990, 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, 40).saturating_mul(m.into())) + } + /// Storage: CouncilCollective Voting (r:1 w:1) + /// Proof Skipped: CouncilCollective Voting (max_values: None, max_size: None, mode: Measured) + /// Storage: CouncilCollective Members (r:1 w:0) + /// Proof Skipped: CouncilCollective Members (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: CouncilCollective Proposals (r:1 w:1) + /// Proof Skipped: CouncilCollective Proposals (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: CouncilCollective ProposalOf (r:0 w:1) + /// Proof Skipped: CouncilCollective 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 { + // Proof Size summary in bytes: + // Measured: `447 + m * (40 ±0) + p * (36 ±0)` + // Estimated: `3892 + m * (41 ±0) + p * (36 ±0)` + // Minimum execution time: 20_010_000 picoseconds. + Weight::from_parts(20_008_777, 0) + .saturating_add(Weight::from_parts(0, 3892)) + // Standard Error: 1_391 + .saturating_add(Weight::from_parts(39_960, 0).saturating_mul(m.into())) + // Standard Error: 1_356 + .saturating_add(Weight::from_parts(126_447, 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, 41).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(0, 36).saturating_mul(p.into())) + } + /// Storage: CouncilCollective Voting (r:1 w:1) + /// Proof Skipped: CouncilCollective Voting (max_values: None, max_size: None, mode: Measured) + /// Storage: CouncilCollective Members (r:1 w:0) + /// Proof Skipped: CouncilCollective Members (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: CouncilCollective ProposalOf (r:1 w:1) + /// Proof Skipped: CouncilCollective ProposalOf (max_values: None, max_size: None, mode: Measured) + /// Storage: MaintenanceMode MaintenanceMode (r:1 w:0) + /// Proof Skipped: MaintenanceMode MaintenanceMode (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: CouncilCollective Proposals (r:1 w:1) + /// Proof Skipped: CouncilCollective 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 { + // Proof Size summary in bytes: + // Measured: `791 + b * (1 ±0) + m * (40 ±0) + p * (40 ±0)` + // Estimated: `4108 + b * (1 ±0) + m * (42 ±0) + p * (40 ±0)` + // Minimum execution time: 30_647_000 picoseconds. + Weight::from_parts(30_084_699, 0) + .saturating_add(Weight::from_parts(0, 4108)) + // Standard Error: 123 + .saturating_add(Weight::from_parts(2_876, 0).saturating_mul(b.into())) + // Standard Error: 1_307 + .saturating_add(Weight::from_parts(31_661, 0).saturating_mul(m.into())) + // Standard Error: 1_274 + .saturating_add(Weight::from_parts(154_567, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(3)) + .saturating_add(Weight::from_parts(0, 1).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(0, 42).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(0, 40).saturating_mul(p.into())) + } + /// Storage: CouncilCollective Voting (r:1 w:1) + /// Proof Skipped: CouncilCollective Voting (max_values: None, max_size: None, mode: Measured) + /// Storage: CouncilCollective Members (r:1 w:0) + /// Proof Skipped: CouncilCollective Members (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: CouncilCollective Prime (r:1 w:0) + /// Proof Skipped: CouncilCollective Prime (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: CouncilCollective Proposals (r:1 w:1) + /// Proof Skipped: CouncilCollective Proposals (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: CouncilCollective ProposalOf (r:0 w:1) + /// Proof Skipped: CouncilCollective 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 { + // Proof Size summary in bytes: + // Measured: `516 + m * (30 ±0) + p * (36 ±0)` + // Estimated: `3958 + m * (31 ±0) + p * (36 ±0)` + // Minimum execution time: 20_735_000 picoseconds. + Weight::from_parts(22_649_363, 0) + .saturating_add(Weight::from_parts(0, 3958)) + // Standard Error: 1_082 + .saturating_add(Weight::from_parts(32_331, 0).saturating_mul(m.into())) + // Standard Error: 1_055 + .saturating_add(Weight::from_parts(122_034, 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, 31).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(0, 36).saturating_mul(p.into())) + } + /// Storage: CouncilCollective Voting (r:1 w:1) + /// Proof Skipped: CouncilCollective Voting (max_values: None, max_size: None, mode: Measured) + /// Storage: CouncilCollective Members (r:1 w:0) + /// Proof Skipped: CouncilCollective Members (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: CouncilCollective Prime (r:1 w:0) + /// Proof Skipped: CouncilCollective Prime (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: CouncilCollective ProposalOf (r:1 w:1) + /// Proof Skipped: CouncilCollective ProposalOf (max_values: None, max_size: None, mode: Measured) + /// Storage: MaintenanceMode MaintenanceMode (r:1 w:0) + /// Proof Skipped: MaintenanceMode MaintenanceMode (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: CouncilCollective Proposals (r:1 w:1) + /// Proof Skipped: CouncilCollective 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 { + // Proof Size summary in bytes: + // Measured: `811 + b * (1 ±0) + m * (40 ±0) + p * (40 ±0)` + // Estimated: `4128 + b * (1 ±0) + m * (42 ±0) + p * (40 ±0)` + // Minimum execution time: 32_927_000 picoseconds. + Weight::from_parts(32_086_367, 0) + .saturating_add(Weight::from_parts(0, 4128)) + // Standard Error: 122 + .saturating_add(Weight::from_parts(2_962, 0).saturating_mul(b.into())) + // Standard Error: 1_299 + .saturating_add(Weight::from_parts(32_167, 0).saturating_mul(m.into())) + // Standard Error: 1_266 + .saturating_add(Weight::from_parts(154_131, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(3)) + .saturating_add(Weight::from_parts(0, 1).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(0, 42).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(0, 40).saturating_mul(p.into())) + } + /// Storage: CouncilCollective Proposals (r:1 w:1) + /// Proof Skipped: CouncilCollective Proposals (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: CouncilCollective Voting (r:0 w:1) + /// Proof Skipped: CouncilCollective Voting (max_values: None, max_size: None, mode: Measured) + /// Storage: CouncilCollective ProposalOf (r:0 w:1) + /// Proof Skipped: CouncilCollective ProposalOf (max_values: None, max_size: None, mode: Measured) + /// The range of component `p` is `[1, 100]`. + fn disapprove_proposal(p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `264 + p * (32 ±0)` + // Estimated: `1749 + p * (32 ±0)` + // Minimum execution time: 10_334_000 picoseconds. + Weight::from_parts(11_413_201, 0) + .saturating_add(Weight::from_parts(0, 1749)) + // Standard Error: 1_033 + .saturating_add(Weight::from_parts(95_458, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(3)) + .saturating_add(Weight::from_parts(0, 32).saturating_mul(p.into())) + } +} diff --git a/tracing/3001/runtime/common/src/weights/pallet_conviction_voting.rs b/tracing/3001/runtime/common/src/weights/pallet_conviction_voting.rs new file mode 100644 index 00000000..976494f7 --- /dev/null +++ b/tracing/3001/runtime/common/src/weights/pallet_conviction_voting.rs @@ -0,0 +1,184 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Autogenerated weights for `pallet_conviction_voting` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-05-27, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `ip-10-0-0-176`, CPU: `Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz` +//! WASM-EXECUTION: Compiled, CHAIN: Some("moonbase-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/production/moonbeam +// benchmark +// pallet +// --chain=moonbase-dev +// --steps=50 +// --repeat=20 +// --pallet=pallet_conviction_voting +// --extrinsic=* +// --wasm-execution=compiled +// --header=./file_header.txt +// --template=./benchmarking/frame-weight-template.hbs +// --output=./runtime/common/src/weights/ + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; +use sp_std::marker::PhantomData; + +/// Weights for `pallet_conviction_voting`. +pub struct WeightInfo(PhantomData); +impl pallet_conviction_voting::WeightInfo for WeightInfo { + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(912), added: 3387, mode: `MaxEncodedLen`) + /// Storage: `ConvictionVoting::VotingFor` (r:1 w:1) + /// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(1152), added: 3627, mode: `MaxEncodedLen`) + /// Storage: `ConvictionVoting::ClassLocksFor` (r:1 w:1) + /// Proof: `ConvictionVoting::ClassLocksFor` (`max_values`: None, `max_size`: Some(137), added: 2612, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1287), added: 3762, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(37), added: 2512, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`) + fn vote_new() -> Weight { + // Proof Size summary in bytes: + // Measured: `1961` + // Estimated: `42428` + // Minimum execution time: 63_734_000 picoseconds. + Weight::from_parts(66_689_000, 42428) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().writes(5_u64)) + } + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(912), added: 3387, mode: `MaxEncodedLen`) + /// Storage: `ConvictionVoting::VotingFor` (r:1 w:1) + /// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(1152), added: 3627, mode: `MaxEncodedLen`) + /// Storage: `ConvictionVoting::ClassLocksFor` (r:1 w:1) + /// Proof: `ConvictionVoting::ClassLocksFor` (`max_values`: None, `max_size`: Some(137), added: 2612, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1287), added: 3762, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(37), added: 2512, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:2 w:2) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`) + fn vote_existing() -> Weight { + // Proof Size summary in bytes: + // Measured: `2262` + // Estimated: `83866` + // Minimum execution time: 83_560_000 picoseconds. + Weight::from_parts(85_240_000, 83866) + .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(T::DbWeight::get().writes(6_u64)) + } + /// Storage: `ConvictionVoting::VotingFor` (r:1 w:1) + /// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(1152), added: 3627, mode: `MaxEncodedLen`) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(912), added: 3387, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:2 w:2) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`) + fn remove_vote() -> Weight { + // Proof Size summary in bytes: + // Measured: `1840` + // Estimated: `83866` + // Minimum execution time: 55_583_000 picoseconds. + Weight::from_parts(57_038_000, 83866) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) + } + /// Storage: `ConvictionVoting::VotingFor` (r:1 w:1) + /// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(1152), added: 3627, mode: `MaxEncodedLen`) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:0) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(912), added: 3387, mode: `MaxEncodedLen`) + fn remove_other_vote() -> Weight { + // Proof Size summary in bytes: + // Measured: `1384` + // Estimated: `4617` + // Minimum execution time: 20_783_000 picoseconds. + Weight::from_parts(21_650_000, 4617) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `ConvictionVoting::VotingFor` (r:2 w:2) + /// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(1152), added: 3627, mode: `MaxEncodedLen`) + /// Storage: `Referenda::ReferendumInfoFor` (r:20 w:20) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(912), added: 3387, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:2 w:2) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`) + /// Storage: `ConvictionVoting::ClassLocksFor` (r:1 w:1) + /// Proof: `ConvictionVoting::ClassLocksFor` (`max_values`: None, `max_size`: Some(137), added: 2612, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1287), added: 3762, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(37), added: 2512, mode: `MaxEncodedLen`) + /// The range of component `r` is `[0, 20]`. + fn delegate(r: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `1620 + r * (248 ±0)` + // Estimated: `83866 + r * (3387 ±0)` + // Minimum execution time: 43_344_000 picoseconds. + Weight::from_parts(37_204_567, 83866) + // Standard Error: 83_382 + .saturating_add(Weight::from_parts(24_547_244, 0).saturating_mul(r.into())) + .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) + .saturating_add(T::DbWeight::get().writes(6_u64)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(r.into()))) + .saturating_add(Weight::from_parts(0, 3387).saturating_mul(r.into())) + } + /// Storage: `ConvictionVoting::VotingFor` (r:2 w:2) + /// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(1152), added: 3627, mode: `MaxEncodedLen`) + /// Storage: `Referenda::ReferendumInfoFor` (r:20 w:20) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(912), added: 3387, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:2 w:2) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`) + /// The range of component `r` is `[0, 20]`. + fn undelegate(r: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `1339 + r * (248 ±0)` + // Estimated: `83866 + r * (3387 ±0)` + // Minimum execution time: 19_506_000 picoseconds. + Weight::from_parts(10_415_348, 83866) + // Standard Error: 84_637 + .saturating_add(Weight::from_parts(24_334_785, 0).saturating_mul(r.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) + .saturating_add(T::DbWeight::get().writes(4_u64)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(r.into()))) + .saturating_add(Weight::from_parts(0, 3387).saturating_mul(r.into())) + } + /// Storage: `ConvictionVoting::VotingFor` (r:1 w:1) + /// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(1152), added: 3627, mode: `MaxEncodedLen`) + /// Storage: `ConvictionVoting::ClassLocksFor` (r:1 w:1) + /// Proof: `ConvictionVoting::ClassLocksFor` (`max_values`: None, `max_size`: Some(137), added: 2612, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1287), added: 3762, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(37), added: 2512, mode: `MaxEncodedLen`) + fn unlock() -> Weight { + // Proof Size summary in bytes: + // Measured: `1228` + // Estimated: `4752` + // Minimum execution time: 46_737_000 picoseconds. + Weight::from_parts(49_718_000, 4752) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + } +} diff --git a/tracing/3001/runtime/common/src/weights/pallet_crowdloan_rewards.rs b/tracing/3001/runtime/common/src/weights/pallet_crowdloan_rewards.rs new file mode 100644 index 00000000..fd117b6a --- /dev/null +++ b/tracing/3001/runtime/common/src/weights/pallet_crowdloan_rewards.rs @@ -0,0 +1,163 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Autogenerated weights for `pallet_crowdloan_rewards` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-05-27, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `ip-10-0-0-176`, CPU: `Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz` +//! WASM-EXECUTION: Compiled, CHAIN: Some("moonbase-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/production/moonbeam +// benchmark +// pallet +// --chain=moonbase-dev +// --steps=50 +// --repeat=20 +// --pallet=pallet_crowdloan_rewards +// --extrinsic=* +// --wasm-execution=compiled +// --header=./file_header.txt +// --template=./benchmarking/frame-weight-template.hbs +// --output=./runtime/common/src/weights/ + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; +use sp_std::marker::PhantomData; + +/// Weights for `pallet_crowdloan_rewards`. +pub struct WeightInfo(PhantomData); +impl pallet_crowdloan_rewards::WeightInfo for WeightInfo { + /// Storage: `CrowdloanRewards::Initialized` (r:1 w:0) + /// Proof: `CrowdloanRewards::Initialized` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `CrowdloanRewards::InitializedRewardAmount` (r:1 w:1) + /// Proof: `CrowdloanRewards::InitializedRewardAmount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `CrowdloanRewards::TotalContributors` (r:1 w:1) + /// Proof: `CrowdloanRewards::TotalContributors` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `System::Account` (r:501 w:501) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + /// Storage: `CrowdloanRewards::ClaimedRelayChainIds` (r:500 w:500) + /// Proof: `CrowdloanRewards::ClaimedRelayChainIds` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `CrowdloanRewards::UnassociatedContributions` (r:500 w:0) + /// Proof: `CrowdloanRewards::UnassociatedContributions` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `CrowdloanRewards::AccountsPayable` (r:500 w:500) + /// Proof: `CrowdloanRewards::AccountsPayable` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `x` is `[1, 500]`. + fn initialize_reward_vec(x: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `76347 + x * (550 ±0)` + // Estimated: `66247 + x * (3052 ±5)` + // Minimum execution time: 113_529_000 picoseconds. + Weight::from_parts(302_222_040, 66247) + // Standard Error: 45_007 + .saturating_add(Weight::from_parts(51_410_353, 0).saturating_mul(x.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(x.into()))) + .saturating_add(T::DbWeight::get().writes(3_u64)) + .saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(x.into()))) + .saturating_add(Weight::from_parts(0, 3052).saturating_mul(x.into())) + } + /// Storage: `CrowdloanRewards::Initialized` (r:1 w:1) + /// Proof: `CrowdloanRewards::Initialized` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `CrowdloanRewards::InitRelayBlock` (r:1 w:0) + /// Proof: `CrowdloanRewards::InitRelayBlock` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `CrowdloanRewards::InitializedRewardAmount` (r:1 w:0) + /// Proof: `CrowdloanRewards::InitializedRewardAmount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `System::Account` (r:1 w:0) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + /// Storage: `CrowdloanRewards::TotalContributors` (r:1 w:0) + /// Proof: `CrowdloanRewards::TotalContributors` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `CrowdloanRewards::EndRelayBlock` (r:0 w:1) + /// Proof: `CrowdloanRewards::EndRelayBlock` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn complete_initialization() -> Weight { + // Proof Size summary in bytes: + // Measured: `579` + // Estimated: `3581` + // Minimum execution time: 14_902_000 picoseconds. + Weight::from_parts(15_567_000, 3581) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `CrowdloanRewards::Initialized` (r:1 w:0) + /// Proof: `CrowdloanRewards::Initialized` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `CrowdloanRewards::AccountsPayable` (r:1 w:1) + /// Proof: `CrowdloanRewards::AccountsPayable` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::ValidationData` (r:1 w:0) + /// Proof: `ParachainSystem::ValidationData` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `CrowdloanRewards::InitRelayBlock` (r:1 w:0) + /// Proof: `CrowdloanRewards::InitRelayBlock` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `CrowdloanRewards::EndRelayBlock` (r:1 w:0) + /// Proof: `CrowdloanRewards::EndRelayBlock` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + fn claim() -> Weight { + // Proof Size summary in bytes: + // Measured: `1100` + // Estimated: `6172` + // Minimum execution time: 61_660_000 picoseconds. + Weight::from_parts(62_983_000, 6172) + .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + } + /// Storage: `CrowdloanRewards::AccountsPayable` (r:2 w:2) + /// Proof: `CrowdloanRewards::AccountsPayable` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn update_reward_address() -> Weight { + // Proof Size summary in bytes: + // Measured: `397` + // Estimated: `6337` + // Minimum execution time: 17_535_000 picoseconds. + Weight::from_parts(18_082_000, 6337) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `CrowdloanRewards::UnassociatedContributions` (r:1 w:1) + /// Proof: `CrowdloanRewards::UnassociatedContributions` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `CrowdloanRewards::ClaimedRelayChainIds` (r:1 w:1) + /// Proof: `CrowdloanRewards::ClaimedRelayChainIds` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `CrowdloanRewards::AccountsPayable` (r:1 w:1) + /// Proof: `CrowdloanRewards::AccountsPayable` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + fn associate_native_identity() -> Weight { + // Proof Size summary in bytes: + // Measured: `934` + // Estimated: `6172` + // Minimum execution time: 121_593_000 picoseconds. + Weight::from_parts(123_949_000, 6172) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(5_u64)) + } + /// Storage: `CrowdloanRewards::AccountsPayable` (r:2 w:2) + /// Proof: `CrowdloanRewards::AccountsPayable` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `x` is `[1, 500]`. + fn change_association_with_relay_keys(x: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `366 + x * (32 ±0)` + // Estimated: `6306 + x * (32 ±0)` + // Minimum execution time: 76_366_000 picoseconds. + Weight::from_parts(77_048_000, 6306) + // Standard Error: 10_101 + .saturating_add(Weight::from_parts(57_341_217, 0).saturating_mul(x.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + .saturating_add(Weight::from_parts(0, 32).saturating_mul(x.into())) + } +} diff --git a/tracing/3001/runtime/common/src/weights/pallet_evm.rs b/tracing/3001/runtime/common/src/weights/pallet_evm.rs new file mode 100644 index 00000000..43b25391 --- /dev/null +++ b/tracing/3001/runtime/common/src/weights/pallet_evm.rs @@ -0,0 +1,78 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Autogenerated weights for `pallet_evm` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-05-27, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `ip-10-0-0-176`, CPU: `Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz` +//! WASM-EXECUTION: Compiled, CHAIN: Some("moonbase-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/production/moonbeam +// benchmark +// pallet +// --chain=moonbase-dev +// --steps=50 +// --repeat=20 +// --pallet=pallet_evm +// --extrinsic=* +// --wasm-execution=compiled +// --header=./file_header.txt +// --template=./benchmarking/frame-weight-template.hbs +// --output=./runtime/common/src/weights/ + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; +use sp_std::marker::PhantomData; + +/// Weights for `pallet_evm`. +pub struct WeightInfo(PhantomData); +impl pallet_evm::WeightInfo for WeightInfo { + /// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0) + /// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + /// Storage: `EthereumChainId::ChainId` (r:1 w:0) + /// Proof: `EthereumChainId::ChainId` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + /// Storage: `EVM::AccountCodes` (r:2 w:0) + /// Proof: `EVM::AccountCodes` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `System::Digest` (r:1 w:0) + /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `EVM::AccountStorages` (r:1 w:0) + /// Proof: `EVM::AccountStorages` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `x` is `[1, 10000000]`. + fn runner_execute(_x: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `1574` + // Estimated: `7514` + // Minimum execution time: 23_436_360_000 picoseconds. + Weight::from_parts(23_698_866_116, 7514) + .saturating_add(T::DbWeight::get().reads(8_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + fn withdraw() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 1_579_000 picoseconds. + Weight::from_parts(1_815_000, 0) + } +} diff --git a/tracing/3001/runtime/common/src/weights/pallet_identity.rs b/tracing/3001/runtime/common/src/weights/pallet_identity.rs new file mode 100644 index 00000000..79472d63 --- /dev/null +++ b/tracing/3001/runtime/common/src/weights/pallet_identity.rs @@ -0,0 +1,411 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Autogenerated weights for `pallet_identity` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-05-27, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `ip-10-0-0-176`, CPU: `Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz` +//! WASM-EXECUTION: Compiled, CHAIN: Some("moonbase-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/production/moonbeam +// benchmark +// pallet +// --chain=moonbase-dev +// --steps=50 +// --repeat=20 +// --pallet=pallet_identity +// --extrinsic=* +// --wasm-execution=compiled +// --header=./file_header.txt +// --template=./benchmarking/frame-weight-template.hbs +// --output=./runtime/common/src/weights/ + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; +use sp_std::marker::PhantomData; + +/// Weights for `pallet_identity`. +pub struct WeightInfo(PhantomData); +impl pallet_identity::WeightInfo for WeightInfo { + /// Storage: `Identity::Registrars` (r:1 w:1) + /// Proof: `Identity::Registrars` (`max_values`: Some(1), `max_size`: Some(901), added: 1396, mode: `MaxEncodedLen`) + /// The range of component `r` is `[1, 19]`. + fn add_registrar(r: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `32 + r * (45 ±0)` + // Estimated: `2386` + // Minimum execution time: 8_065_000 picoseconds. + Weight::from_parts(8_704_720, 2386) + // Standard Error: 1_163 + .saturating_add(Weight::from_parts(97_845, 0).saturating_mul(r.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Identity::IdentityOf` (r:1 w:1) + /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7560), added: 10035, mode: `MaxEncodedLen`) + /// The range of component `r` is `[1, 20]`. + fn set_identity(r: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `6966 + r * (5 ±0)` + // Estimated: `11025` + // Minimum execution time: 110_180_000 picoseconds. + Weight::from_parts(112_172_028, 11025) + // Standard Error: 4_374 + .saturating_add(Weight::from_parts(162_487, 0).saturating_mul(r.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Identity::IdentityOf` (r:1 w:0) + /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7560), added: 10035, mode: `MaxEncodedLen`) + /// Storage: `Identity::SubsOf` (r:1 w:1) + /// Proof: `Identity::SubsOf` (`max_values`: None, `max_size`: Some(2046), added: 4521, mode: `MaxEncodedLen`) + /// Storage: `Identity::SuperOf` (r:100 w:100) + /// Proof: `Identity::SuperOf` (`max_values`: None, `max_size`: Some(90), added: 2565, mode: `MaxEncodedLen`) + /// The range of component `s` is `[0, 100]`. + fn set_subs_new(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `89` + // Estimated: `11025 + s * (2565 ±0)` + // Minimum execution time: 8_963_000 picoseconds. + Weight::from_parts(21_042_964, 11025) + // Standard Error: 5_349 + .saturating_add(Weight::from_parts(3_298_437, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(s.into()))) + .saturating_add(T::DbWeight::get().writes(1_u64)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) + .saturating_add(Weight::from_parts(0, 2565).saturating_mul(s.into())) + } + /// Storage: `Identity::IdentityOf` (r:1 w:0) + /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7560), added: 10035, mode: `MaxEncodedLen`) + /// Storage: `Identity::SubsOf` (r:1 w:1) + /// Proof: `Identity::SubsOf` (`max_values`: None, `max_size`: Some(2046), added: 4521, mode: `MaxEncodedLen`) + /// Storage: `Identity::SuperOf` (r:0 w:100) + /// Proof: `Identity::SuperOf` (`max_values`: None, `max_size`: Some(90), added: 2565, mode: `MaxEncodedLen`) + /// The range of component `p` is `[0, 100]`. + fn set_subs_old(p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `169 + p * (20 ±0)` + // Estimated: `11025` + // Minimum execution time: 8_886_000 picoseconds. + Weight::from_parts(22_567_001, 11025) + // Standard Error: 3_287 + .saturating_add(Weight::from_parts(1_292_623, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(p.into()))) + } + /// Storage: `Identity::SubsOf` (r:1 w:1) + /// Proof: `Identity::SubsOf` (`max_values`: None, `max_size`: Some(2046), added: 4521, mode: `MaxEncodedLen`) + /// Storage: `Identity::IdentityOf` (r:1 w:1) + /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7560), added: 10035, mode: `MaxEncodedLen`) + /// Storage: `Identity::SuperOf` (r:0 w:100) + /// Proof: `Identity::SuperOf` (`max_values`: None, `max_size`: Some(90), added: 2565, mode: `MaxEncodedLen`) + /// The range of component `r` is `[1, 20]`. + /// The range of component `s` is `[0, 100]`. + fn clear_identity(r: u32, s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `7046 + r * (5 ±0) + s * (20 ±0)` + // Estimated: `11025` + // Minimum execution time: 55_837_000 picoseconds. + Weight::from_parts(55_513_734, 11025) + // Standard Error: 6_557 + .saturating_add(Weight::from_parts(243_617, 0).saturating_mul(r.into())) + // Standard Error: 1_279 + .saturating_add(Weight::from_parts(1_298_668, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) + } + /// Storage: `Identity::Registrars` (r:1 w:0) + /// Proof: `Identity::Registrars` (`max_values`: Some(1), `max_size`: Some(901), added: 1396, mode: `MaxEncodedLen`) + /// Storage: `Identity::IdentityOf` (r:1 w:1) + /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7560), added: 10035, mode: `MaxEncodedLen`) + /// The range of component `r` is `[1, 20]`. + fn request_judgement(r: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `6956 + r * (45 ±0)` + // Estimated: `11025` + // Minimum execution time: 76_771_000 picoseconds. + Weight::from_parts(78_348_503, 11025) + // Standard Error: 3_518 + .saturating_add(Weight::from_parts(152_650, 0).saturating_mul(r.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Identity::IdentityOf` (r:1 w:1) + /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7560), added: 10035, mode: `MaxEncodedLen`) + /// The range of component `r` is `[1, 20]`. + fn cancel_request(r: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `6987` + // Estimated: `11025` + // Minimum execution time: 74_657_000 picoseconds. + Weight::from_parts(76_103_304, 11025) + // Standard Error: 2_806 + .saturating_add(Weight::from_parts(106_610, 0).saturating_mul(r.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Identity::Registrars` (r:1 w:1) + /// Proof: `Identity::Registrars` (`max_values`: Some(1), `max_size`: Some(901), added: 1396, mode: `MaxEncodedLen`) + /// The range of component `r` is `[1, 19]`. + fn set_fee(r: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `77 + r * (45 ±0)` + // Estimated: `2386` + // Minimum execution time: 6_028_000 picoseconds. + Weight::from_parts(6_440_483, 2386) + // Standard Error: 964 + .saturating_add(Weight::from_parts(72_810, 0).saturating_mul(r.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Identity::Registrars` (r:1 w:1) + /// Proof: `Identity::Registrars` (`max_values`: Some(1), `max_size`: Some(901), added: 1396, mode: `MaxEncodedLen`) + /// The range of component `r` is `[1, 19]`. + fn set_account_id(r: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `77 + r * (45 ±0)` + // Estimated: `2386` + // Minimum execution time: 6_085_000 picoseconds. + Weight::from_parts(6_402_242, 2386) + // Standard Error: 769 + .saturating_add(Weight::from_parts(73_828, 0).saturating_mul(r.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Identity::Registrars` (r:1 w:1) + /// Proof: `Identity::Registrars` (`max_values`: Some(1), `max_size`: Some(901), added: 1396, mode: `MaxEncodedLen`) + /// The range of component `r` is `[1, 19]`. + fn set_fields(r: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `77 + r * (45 ±0)` + // Estimated: `2386` + // Minimum execution time: 5_922_000 picoseconds. + Weight::from_parts(6_395_313, 2386) + // Standard Error: 831 + .saturating_add(Weight::from_parts(72_223, 0).saturating_mul(r.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Identity::Registrars` (r:1 w:0) + /// Proof: `Identity::Registrars` (`max_values`: Some(1), `max_size`: Some(901), added: 1396, mode: `MaxEncodedLen`) + /// Storage: `Identity::IdentityOf` (r:1 w:1) + /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7560), added: 10035, mode: `MaxEncodedLen`) + /// The range of component `r` is `[1, 19]`. + fn provide_judgement(r: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `7022 + r * (45 ±0)` + // Estimated: `11025` + // Minimum execution time: 97_620_000 picoseconds. + Weight::from_parts(98_933_846, 11025) + // Standard Error: 5_311 + .saturating_add(Weight::from_parts(78_115, 0).saturating_mul(r.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Identity::SubsOf` (r:1 w:1) + /// Proof: `Identity::SubsOf` (`max_values`: None, `max_size`: Some(2046), added: 4521, mode: `MaxEncodedLen`) + /// Storage: `Identity::IdentityOf` (r:1 w:1) + /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7560), added: 10035, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + /// Storage: `Identity::SuperOf` (r:0 w:100) + /// Proof: `Identity::SuperOf` (`max_values`: None, `max_size`: Some(90), added: 2565, mode: `MaxEncodedLen`) + /// The range of component `r` is `[1, 20]`. + /// The range of component `s` is `[0, 100]`. + fn kill_identity(r: u32, s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `7436 + r * (5 ±0) + s * (20 ±0)` + // Estimated: `11025` + // Minimum execution time: 72_052_000 picoseconds. + Weight::from_parts(74_006_878, 11025) + // Standard Error: 8_168 + .saturating_add(Weight::from_parts(252_511, 0).saturating_mul(r.into())) + // Standard Error: 1_593 + .saturating_add(Weight::from_parts(1_317_471, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into()))) + } + /// Storage: `Identity::IdentityOf` (r:1 w:0) + /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7560), added: 10035, mode: `MaxEncodedLen`) + /// Storage: `Identity::SuperOf` (r:1 w:1) + /// Proof: `Identity::SuperOf` (`max_values`: None, `max_size`: Some(90), added: 2565, mode: `MaxEncodedLen`) + /// Storage: `Identity::SubsOf` (r:1 w:1) + /// Proof: `Identity::SubsOf` (`max_values`: None, `max_size`: Some(2046), added: 4521, mode: `MaxEncodedLen`) + /// The range of component `s` is `[0, 99]`. + fn add_sub(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `536 + s * (23 ±0)` + // Estimated: `11025` + // Minimum execution time: 26_150_000 picoseconds. + Weight::from_parts(30_936_897, 11025) + // Standard Error: 1_126 + .saturating_add(Weight::from_parts(71_173, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `Identity::IdentityOf` (r:1 w:0) + /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7560), added: 10035, mode: `MaxEncodedLen`) + /// Storage: `Identity::SuperOf` (r:1 w:1) + /// Proof: `Identity::SuperOf` (`max_values`: None, `max_size`: Some(90), added: 2565, mode: `MaxEncodedLen`) + /// The range of component `s` is `[1, 100]`. + fn rename_sub(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `615 + s * (4 ±0)` + // Estimated: `11025` + // Minimum execution time: 12_816_000 picoseconds. + Weight::from_parts(16_314_963, 11025) + // Standard Error: 1_341 + .saturating_add(Weight::from_parts(58_310, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Identity::IdentityOf` (r:1 w:0) + /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7560), added: 10035, mode: `MaxEncodedLen`) + /// Storage: `Identity::SuperOf` (r:1 w:1) + /// Proof: `Identity::SuperOf` (`max_values`: None, `max_size`: Some(90), added: 2565, mode: `MaxEncodedLen`) + /// Storage: `Identity::SubsOf` (r:1 w:1) + /// Proof: `Identity::SubsOf` (`max_values`: None, `max_size`: Some(2046), added: 4521, mode: `MaxEncodedLen`) + /// The range of component `s` is `[1, 100]`. + fn remove_sub(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `647 + s * (24 ±0)` + // Estimated: `11025` + // Minimum execution time: 29_711_000 picoseconds. + Weight::from_parts(34_486_637, 11025) + // Standard Error: 1_206 + .saturating_add(Weight::from_parts(92_929, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `Identity::SuperOf` (r:1 w:1) + /// Proof: `Identity::SuperOf` (`max_values`: None, `max_size`: Some(90), added: 2565, mode: `MaxEncodedLen`) + /// Storage: `Identity::SubsOf` (r:1 w:1) + /// Proof: `Identity::SubsOf` (`max_values`: None, `max_size`: Some(2046), added: 4521, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:0) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + /// The range of component `s` is `[0, 99]`. + fn quit_sub(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `620 + s * (24 ±0)` + // Estimated: `5511` + // Minimum execution time: 21_232_000 picoseconds. + Weight::from_parts(23_234_670, 5511) + // Standard Error: 1_437 + .saturating_add(Weight::from_parts(109_774, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `Identity::UsernameAuthorities` (r:0 w:1) + /// Proof: `Identity::UsernameAuthorities` (`max_values`: None, `max_size`: Some(40), added: 2515, mode: `MaxEncodedLen`) + fn add_username_authority() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 6_058_000 picoseconds. + Weight::from_parts(6_377_000, 0) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Identity::UsernameAuthorities` (r:1 w:1) + /// Proof: `Identity::UsernameAuthorities` (`max_values`: None, `max_size`: Some(40), added: 2515, mode: `MaxEncodedLen`) + fn remove_username_authority() -> Weight { + // Proof Size summary in bytes: + // Measured: `67` + // Estimated: `3505` + // Minimum execution time: 9_093_000 picoseconds. + Weight::from_parts(9_456_000, 3505) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Identity::UsernameAuthorities` (r:1 w:1) + /// Proof: `Identity::UsernameAuthorities` (`max_values`: None, `max_size`: Some(40), added: 2515, mode: `MaxEncodedLen`) + /// Storage: `Identity::AccountOfUsername` (r:1 w:1) + /// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Identity::PendingUsernames` (r:1 w:0) + /// Proof: `Identity::PendingUsernames` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Identity::IdentityOf` (r:1 w:1) + /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7560), added: 10035, mode: `MaxEncodedLen`) + fn set_username_for() -> Weight { + // Proof Size summary in bytes: + // Measured: `67` + // Estimated: `11025` + // Minimum execution time: 68_647_000 picoseconds. + Weight::from_parts(70_238_000, 11025) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + } + /// Storage: `Identity::PendingUsernames` (r:1 w:1) + /// Proof: `Identity::PendingUsernames` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + /// Storage: `Identity::IdentityOf` (r:1 w:1) + /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7560), added: 10035, mode: `MaxEncodedLen`) + /// Storage: `Identity::AccountOfUsername` (r:0 w:1) + /// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + fn accept_username() -> Weight { + // Proof Size summary in bytes: + // Measured: `101` + // Estimated: `11025` + // Minimum execution time: 20_315_000 picoseconds. + Weight::from_parts(20_766_000, 11025) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + } + /// Storage: `Identity::PendingUsernames` (r:1 w:1) + /// Proof: `Identity::PendingUsernames` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`) + fn remove_expired_approval() -> Weight { + // Proof Size summary in bytes: + // Measured: `101` + // Estimated: `3538` + // Minimum execution time: 13_068_000 picoseconds. + Weight::from_parts(13_773_000, 3538) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Identity::AccountOfUsername` (r:1 w:0) + /// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Identity::IdentityOf` (r:1 w:1) + /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7560), added: 10035, mode: `MaxEncodedLen`) + fn set_primary_username() -> Weight { + // Proof Size summary in bytes: + // Measured: `232` + // Estimated: `11025` + // Minimum execution time: 16_451_000 picoseconds. + Weight::from_parts(16_954_000, 11025) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Identity::AccountOfUsername` (r:1 w:1) + /// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Identity::IdentityOf` (r:1 w:0) + /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7560), added: 10035, mode: `MaxEncodedLen`) + fn remove_dangling_username() -> Weight { + // Proof Size summary in bytes: + // Measured: `86` + // Estimated: `11025` + // Minimum execution time: 11_594_000 picoseconds. + Weight::from_parts(11_864_000, 11025) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } +} diff --git a/tracing/3001/runtime/common/src/weights/pallet_moonbeam_lazy_migrations.rs b/tracing/3001/runtime/common/src/weights/pallet_moonbeam_lazy_migrations.rs new file mode 100644 index 00000000..2bbdbc91 --- /dev/null +++ b/tracing/3001/runtime/common/src/weights/pallet_moonbeam_lazy_migrations.rs @@ -0,0 +1,77 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Autogenerated weights for `pallet_moonbeam_lazy_migrations` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-05-27, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `ip-10-0-0-176`, CPU: `Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz` +//! WASM-EXECUTION: Compiled, CHAIN: Some("moonbase-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/production/moonbeam +// benchmark +// pallet +// --chain=moonbase-dev +// --steps=50 +// --repeat=20 +// --pallet=pallet_moonbeam_lazy_migrations +// --extrinsic=* +// --wasm-execution=compiled +// --header=./file_header.txt +// --template=./benchmarking/frame-weight-template.hbs +// --output=./runtime/common/src/weights/ + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; +use sp_std::marker::PhantomData; + +/// Weights for `pallet_moonbeam_lazy_migrations`. +pub struct WeightInfo(PhantomData); +impl pallet_moonbeam_lazy_migrations::WeightInfo for WeightInfo { + /// Storage: `EVM::Suicided` (r:100 w:0) + /// Proof: `EVM::Suicided` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `EVM::AccountCodes` (r:100 w:0) + /// Proof: `EVM::AccountCodes` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `EVM::AccountStorages` (r:1000 w:900) + /// Proof: `EVM::AccountStorages` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `MoonbeamLazyMigrations::SuicidedContractsRemoved` (r:1 w:1) + /// Proof: `MoonbeamLazyMigrations::SuicidedContractsRemoved` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// The range of component `a` is `[1, 100]`. + /// The range of component `l` is `[1, 1000]`. + fn clear_suicided_storage(a: u32, l: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `4185 + a * (11 ±0) + l * (84 ±0)` + // Estimated: `37731 + a * (2228 ±19) + l * (2536 ±1)` + // Minimum execution time: 46_259_000 picoseconds. + Weight::from_parts(47_241_000, 37731) + // Standard Error: 2_537_198 + .saturating_add(Weight::from_parts(41_756_364, 0).saturating_mul(a.into())) + // Standard Error: 253_449 + .saturating_add(Weight::from_parts(26_788_347, 0).saturating_mul(l.into())) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(a.into()))) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(l.into()))) + .saturating_add(T::DbWeight::get().writes(41_u64)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(l.into()))) + .saturating_add(Weight::from_parts(0, 2228).saturating_mul(a.into())) + .saturating_add(Weight::from_parts(0, 2536).saturating_mul(l.into())) + } +} diff --git a/tracing/3001/runtime/common/src/weights/pallet_moonbeam_orbiters.rs b/tracing/3001/runtime/common/src/weights/pallet_moonbeam_orbiters.rs new file mode 100644 index 00000000..26256fff --- /dev/null +++ b/tracing/3001/runtime/common/src/weights/pallet_moonbeam_orbiters.rs @@ -0,0 +1,203 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Autogenerated weights for `pallet_moonbeam_orbiters` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-05-27, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `ip-10-0-0-176`, CPU: `Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz` +//! WASM-EXECUTION: Compiled, CHAIN: Some("moonbase-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/production/moonbeam +// benchmark +// pallet +// --chain=moonbase-dev +// --steps=50 +// --repeat=20 +// --pallet=pallet_moonbeam_orbiters +// --extrinsic=* +// --wasm-execution=compiled +// --header=./file_header.txt +// --template=./benchmarking/frame-weight-template.hbs +// --output=./runtime/common/src/weights/ + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; +use sp_std::marker::PhantomData; + +/// Weights for `pallet_moonbeam_orbiters`. +pub struct WeightInfo(PhantomData); +impl pallet_moonbeam_orbiters::WeightInfo for WeightInfo { + /// Storage: `MoonbeamOrbiters::CollatorsPool` (r:1 w:1) + /// Proof: `MoonbeamOrbiters::CollatorsPool` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Balances::Reserves` (r:1 w:0) + /// Proof: `Balances::Reserves` (`max_values`: None, `max_size`: Some(1037), added: 3512, mode: `MaxEncodedLen`) + fn collator_add_orbiter() -> Weight { + // Proof Size summary in bytes: + // Measured: `562` + // Estimated: `4502` + // Minimum execution time: 19_690_000 picoseconds. + Weight::from_parts(20_453_000, 4502) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `MoonbeamOrbiters::CollatorsPool` (r:1 w:1) + /// Proof: `MoonbeamOrbiters::CollatorsPool` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn collator_remove_orbiter() -> Weight { + // Proof Size summary in bytes: + // Measured: `366` + // Estimated: `3831` + // Minimum execution time: 15_626_000 picoseconds. + Weight::from_parts(16_276_000, 3831) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `MoonbeamOrbiters::CollatorsPool` (r:1 w:1) + /// Proof: `MoonbeamOrbiters::CollatorsPool` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn orbiter_leave_collator_pool() -> Weight { + // Proof Size summary in bytes: + // Measured: `366` + // Estimated: `3831` + // Minimum execution time: 15_888_000 picoseconds. + Weight::from_parts(16_257_000, 3831) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `MoonbeamOrbiters::MinOrbiterDeposit` (r:1 w:0) + /// Proof: `MoonbeamOrbiters::MinOrbiterDeposit` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Balances::Reserves` (r:1 w:1) + /// Proof: `Balances::Reserves` (`max_values`: None, `max_size`: Some(1037), added: 3512, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + /// Storage: `MoonbeamOrbiters::RegisteredOrbiter` (r:0 w:1) + /// Proof: `MoonbeamOrbiters::RegisteredOrbiter` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn orbiter_register() -> Weight { + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `4502` + // Minimum execution time: 29_285_000 picoseconds. + Weight::from_parts(29_825_000, 4502) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + } + /// Storage: `MoonbeamOrbiters::CounterForCollatorsPool` (r:1 w:0) + /// Proof: `MoonbeamOrbiters::CounterForCollatorsPool` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `MoonbeamOrbiters::CollatorsPool` (r:101 w:0) + /// Proof: `MoonbeamOrbiters::CollatorsPool` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Balances::Reserves` (r:1 w:1) + /// Proof: `Balances::Reserves` (`max_values`: None, `max_size`: Some(1037), added: 3512, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + /// Storage: `MoonbeamOrbiters::RegisteredOrbiter` (r:0 w:1) + /// Proof: `MoonbeamOrbiters::RegisteredOrbiter` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `n` is `[0, 100]`. + fn orbiter_unregister(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `391 + n * (48 ±0)` + // Estimated: `4502 + n * (2524 ±0)` + // Minimum execution time: 36_678_000 picoseconds. + Weight::from_parts(36_479_106, 4502) + // Standard Error: 9_548 + .saturating_add(Weight::from_parts(7_175_442, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().writes(3_u64)) + .saturating_add(Weight::from_parts(0, 2524).saturating_mul(n.into())) + } + /// Storage: `MoonbeamOrbiters::CollatorsPool` (r:1 w:1) + /// Proof: `MoonbeamOrbiters::CollatorsPool` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `MoonbeamOrbiters::CounterForCollatorsPool` (r:1 w:1) + /// Proof: `MoonbeamOrbiters::CounterForCollatorsPool` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + fn add_collator() -> Weight { + // Proof Size summary in bytes: + // Measured: `82` + // Estimated: `3547` + // Minimum execution time: 10_746_000 picoseconds. + Weight::from_parts(11_190_000, 3547) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `MoonbeamOrbiters::CollatorsPool` (r:1 w:1) + /// Proof: `MoonbeamOrbiters::CollatorsPool` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `MoonbeamOrbiters::CounterForCollatorsPool` (r:1 w:1) + /// Proof: `MoonbeamOrbiters::CounterForCollatorsPool` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `MoonbeamOrbiters::AccountLookupOverride` (r:0 w:9) + /// Proof: `MoonbeamOrbiters::AccountLookupOverride` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn remove_collator() -> Weight { + // Proof Size summary in bytes: + // Measured: `366` + // Estimated: `3831` + // Minimum execution time: 22_460_000 picoseconds. + Weight::from_parts(23_056_000, 3831) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(11_u64)) + } + /// Storage: `MoonbeamOrbiters::CurrentRound` (r:1 w:0) + /// Proof: `MoonbeamOrbiters::CurrentRound` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `MoonbeamOrbiters::OrbiterPerRound` (r:100 w:100) + /// Proof: `MoonbeamOrbiters::OrbiterPerRound` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `x` is `[0, 100]`. + fn on_initialize(x: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `140 + x * (61 ±0)` + // Estimated: `1624 + x * (2537 ±0)` + // Minimum execution time: 6_871_000 picoseconds. + Weight::from_parts(6_307_261, 1624) + // Standard Error: 1_358 + .saturating_add(Weight::from_parts(852_177, 0).saturating_mul(x.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(x.into()))) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(x.into()))) + .saturating_add(Weight::from_parts(0, 2537).saturating_mul(x.into())) + } + /// Storage: `MoonbeamOrbiters::OrbiterPerRound` (r:1 w:1) + /// Proof: `MoonbeamOrbiters::OrbiterPerRound` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + fn distribute_rewards() -> Weight { + // Proof Size summary in bytes: + // Measured: `298` + // Estimated: `3763` + // Minimum execution time: 21_226_000 picoseconds. + Weight::from_parts(21_640_000, 3763) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `MoonbeamOrbiters::ForceRotation` (r:1 w:1) + /// Proof: `MoonbeamOrbiters::ForceRotation` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `MoonbeamOrbiters::CollatorsPool` (r:2 w:1) + /// Proof: `MoonbeamOrbiters::CollatorsPool` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `MoonbeamOrbiters::OrbiterPerRound` (r:0 w:3) + /// Proof: `MoonbeamOrbiters::OrbiterPerRound` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `MoonbeamOrbiters::AccountLookupOverride` (r:0 w:3) + /// Proof: `MoonbeamOrbiters::AccountLookupOverride` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `MoonbeamOrbiters::CurrentRound` (r:0 w:1) + /// Proof: `MoonbeamOrbiters::CurrentRound` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn on_new_round() -> Weight { + // Proof Size summary in bytes: + // Measured: `256` + // Estimated: `6196` + // Minimum execution time: 29_580_000 picoseconds. + Weight::from_parts(30_841_000, 6196) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(9_u64)) + } +} diff --git a/tracing/3001/runtime/common/src/weights/pallet_multisig.rs b/tracing/3001/runtime/common/src/weights/pallet_multisig.rs new file mode 100644 index 00000000..41b683c4 --- /dev/null +++ b/tracing/3001/runtime/common/src/weights/pallet_multisig.rs @@ -0,0 +1,160 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Autogenerated weights for `pallet_multisig` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-05-27, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `ip-10-0-0-176`, CPU: `Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz` +//! WASM-EXECUTION: Compiled, CHAIN: Some("moonbase-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/production/moonbeam +// benchmark +// pallet +// --chain=moonbase-dev +// --steps=50 +// --repeat=20 +// --pallet=pallet_multisig +// --extrinsic=* +// --wasm-execution=compiled +// --header=./file_header.txt +// --template=./benchmarking/frame-weight-template.hbs +// --output=./runtime/common/src/weights/ + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; +use sp_std::marker::PhantomData; + +/// Weights for `pallet_multisig`. +pub struct WeightInfo(PhantomData); +impl pallet_multisig::WeightInfo for WeightInfo { + /// Storage: `MaintenanceMode::MaintenanceMode` (r:1 w:0) + /// Proof: `MaintenanceMode::MaintenanceMode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// The range of component `z` is `[0, 10000]`. + fn as_multi_threshold_1(z: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `42` + // Estimated: `1527` + // Minimum execution time: 15_515_000 picoseconds. + Weight::from_parts(16_306_467, 1527) + // Standard Error: 3 + .saturating_add(Weight::from_parts(599, 0).saturating_mul(z.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + } + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(2122), added: 4597, 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: `304` + // Estimated: `5587` + // Minimum execution time: 40_837_000 picoseconds. + Weight::from_parts(30_330_490, 5587) + // Standard Error: 779 + .saturating_add(Weight::from_parts(120_738, 0).saturating_mul(s.into())) + // Standard Error: 7 + .saturating_add(Weight::from_parts(1_538, 0).saturating_mul(z.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(2122), added: 4597, 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: `312` + // Estimated: `5587` + // Minimum execution time: 26_735_000 picoseconds. + Weight::from_parts(16_919_164, 5587) + // Standard Error: 502 + .saturating_add(Weight::from_parts(104_853, 0).saturating_mul(s.into())) + // Standard Error: 4 + .saturating_add(Weight::from_parts(1_535, 0).saturating_mul(z.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(2122), added: 4597, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + /// Storage: `MaintenanceMode::MaintenanceMode` (r:1 w:0) + /// Proof: `MaintenanceMode::MaintenanceMode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// 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: `475 + s * (20 ±0)` + // Estimated: `5587 + s * (20 ±0)` + // Minimum execution time: 49_029_000 picoseconds. + Weight::from_parts(36_554_728, 5587) + // Standard Error: 832 + .saturating_add(Weight::from_parts(146_367, 0).saturating_mul(s.into())) + // Standard Error: 8 + .saturating_add(Weight::from_parts(1_573, 0).saturating_mul(z.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + .saturating_add(Weight::from_parts(0, 20).saturating_mul(s.into())) + } + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(2122), added: 4597, mode: `MaxEncodedLen`) + /// The range of component `s` is `[2, 100]`. + fn approve_as_multi_create(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `304` + // Estimated: `5587` + // Minimum execution time: 28_197_000 picoseconds. + Weight::from_parts(28_853_061, 5587) + // Standard Error: 684 + .saturating_add(Weight::from_parts(120_810, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(2122), added: 4597, mode: `MaxEncodedLen`) + /// The range of component `s` is `[2, 100]`. + fn approve_as_multi_approve(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `312` + // Estimated: `5587` + // Minimum execution time: 15_136_000 picoseconds. + Weight::from_parts(15_322_243, 5587) + // Standard Error: 470 + .saturating_add(Weight::from_parts(106_520, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Multisig::Multisigs` (r:1 w:1) + /// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(2122), added: 4597, mode: `MaxEncodedLen`) + /// The range of component `s` is `[2, 100]`. + fn cancel_as_multi(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `474` + // Estimated: `5587` + // Minimum execution time: 29_244_000 picoseconds. + Weight::from_parts(30_017_940, 5587) + // Standard Error: 665 + .saturating_add(Weight::from_parts(119_304, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } +} diff --git a/tracing/3001/runtime/common/src/weights/pallet_parachain_staking.rs b/tracing/3001/runtime/common/src/weights/pallet_parachain_staking.rs new file mode 100644 index 00000000..077ea533 --- /dev/null +++ b/tracing/3001/runtime/common/src/weights/pallet_parachain_staking.rs @@ -0,0 +1,864 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Autogenerated weights for `pallet_parachain_staking` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-05-27, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `ip-10-0-0-176`, CPU: `Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz` +//! WASM-EXECUTION: Compiled, CHAIN: Some("moonbase-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/production/moonbeam +// benchmark +// pallet +// --chain=moonbase-dev +// --steps=50 +// --repeat=20 +// --pallet=pallet_parachain_staking +// --extrinsic=* +// --wasm-execution=compiled +// --header=./file_header.txt +// --template=./benchmarking/frame-weight-template.hbs +// --output=./runtime/common/src/weights/ + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; +use sp_std::marker::PhantomData; + +/// Weights for `pallet_parachain_staking`. +pub struct WeightInfo(PhantomData); +impl pallet_parachain_staking::WeightInfo for WeightInfo { + /// Storage: `ParachainStaking::InflationConfig` (r:1 w:1) + /// Proof: `ParachainStaking::InflationConfig` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn set_staking_expectations() -> Weight { + // Proof Size summary in bytes: + // Measured: `88` + // Estimated: `1573` + // Minimum execution time: 8_040_000 picoseconds. + Weight::from_parts(8_377_000, 1573) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `ParachainStaking::InflationConfig` (r:1 w:1) + /// Proof: `ParachainStaking::InflationConfig` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn set_inflation() -> Weight { + // Proof Size summary in bytes: + // Measured: `88` + // Estimated: `1573` + // Minimum execution time: 36_222_000 picoseconds. + Weight::from_parts(36_815_000, 1573) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `ParachainStaking::ParachainBondInfo` (r:1 w:1) + /// Proof: `ParachainStaking::ParachainBondInfo` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn set_parachain_bond_account() -> Weight { + // Proof Size summary in bytes: + // Measured: `7` + // Estimated: `1492` + // Minimum execution time: 6_695_000 picoseconds. + Weight::from_parts(7_178_000, 1492) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `ParachainStaking::ParachainBondInfo` (r:1 w:1) + /// Proof: `ParachainStaking::ParachainBondInfo` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn set_parachain_bond_reserve_percent() -> Weight { + // Proof Size summary in bytes: + // Measured: `7` + // Estimated: `1492` + // Minimum execution time: 6_410_000 picoseconds. + Weight::from_parts(6_747_000, 1492) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `ParachainStaking::TotalSelected` (r:1 w:1) + /// Proof: `ParachainStaking::TotalSelected` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn set_total_selected() -> Weight { + // Proof Size summary in bytes: + // Measured: `28` + // Estimated: `1513` + // Minimum execution time: 7_451_000 picoseconds. + Weight::from_parts(7_739_000, 1513) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `ParachainStaking::CollatorCommission` (r:1 w:1) + /// Proof: `ParachainStaking::CollatorCommission` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn set_collator_commission() -> Weight { + // Proof Size summary in bytes: + // Measured: `27` + // Estimated: `1512` + // Minimum execution time: 6_873_000 picoseconds. + Weight::from_parts(7_102_000, 1512) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `ParachainStaking::TotalSelected` (r:1 w:0) + /// Proof: `ParachainStaking::TotalSelected` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::InflationConfig` (r:1 w:1) + /// Proof: `ParachainStaking::InflationConfig` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn set_blocks_per_round() -> Weight { + // Proof Size summary in bytes: + // Measured: `116` + // Estimated: `1601` + // Minimum execution time: 38_671_000 picoseconds. + Weight::from_parts(39_052_000, 1601) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `ParachainStaking::CandidateInfo` (r:1 w:1) + /// Proof: `ParachainStaking::CandidateInfo` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::DelegatorState` (r:1 w:0) + /// Proof: `ParachainStaking::DelegatorState` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::CandidatePool` (r:1 w:1) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1287), added: 3762, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(37), added: 2512, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Total` (r:1 w:1) + /// Proof: `ParachainStaking::Total` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::TopDelegations` (r:0 w:1) + /// Proof: `ParachainStaking::TopDelegations` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::BottomDelegations` (r:0 w:1) + /// Proof: `ParachainStaking::BottomDelegations` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `x` is `[3, 200]`. + fn join_candidates(x: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `1417 + x * (38 ±0)` + // Estimated: `4752 + x * (41 ±0)` + // Minimum execution time: 45_284_000 picoseconds. + Weight::from_parts(55_179_042, 4752) + // Standard Error: 1_698 + .saturating_add(Weight::from_parts(80_880, 0).saturating_mul(x.into())) + .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(T::DbWeight::get().writes(7_u64)) + .saturating_add(Weight::from_parts(0, 41).saturating_mul(x.into())) + } + /// Storage: `ParachainStaking::CandidateInfo` (r:1 w:1) + /// Proof: `ParachainStaking::CandidateInfo` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::CandidatePool` (r:1 w:1) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// The range of component `x` is `[3, 200]`. + fn schedule_leave_candidates(x: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `665 + x * (37 ±0)` + // Estimated: `4023 + x * (38 ±0)` + // Minimum execution time: 15_325_000 picoseconds. + Weight::from_parts(20_311_473, 4023) + // Standard Error: 862 + .saturating_add(Weight::from_parts(59_877, 0).saturating_mul(x.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + .saturating_add(Weight::from_parts(0, 38).saturating_mul(x.into())) + } + /// Storage: `ParachainStaking::CandidateInfo` (r:1 w:1) + /// Proof: `ParachainStaking::CandidateInfo` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::AutoCompoundingDelegations` (r:1 w:1) + /// Proof: `ParachainStaking::AutoCompoundingDelegations` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::TopDelegations` (r:1 w:1) + /// Proof: `ParachainStaking::TopDelegations` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::DelegatorState` (r:349 w:349) + /// Proof: `ParachainStaking::DelegatorState` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Balances::Locks` (r:350 w:350) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1287), added: 3762, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:350 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(37), added: 2512, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:350 w:350) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::DelegationScheduledRequests` (r:1 w:1) + /// Proof: `ParachainStaking::DelegationScheduledRequests` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::BottomDelegations` (r:1 w:1) + /// Proof: `ParachainStaking::BottomDelegations` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::Total` (r:1 w:1) + /// Proof: `ParachainStaking::Total` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// The range of component `x` is `[2, 350]`. + fn execute_leave_candidates_worst_case(x: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `1637 + x * (431 ±0)` + // Estimated: `4900 + x * (3762 ±0)` + // Minimum execution time: 93_989_000 picoseconds. + Weight::from_parts(96_263_000, 4900) + // Standard Error: 76_342 + .saturating_add(Weight::from_parts(33_819_397, 0).saturating_mul(x.into())) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(x.into()))) + .saturating_add(T::DbWeight::get().writes(5_u64)) + .saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(x.into()))) + .saturating_add(Weight::from_parts(0, 3762).saturating_mul(x.into())) + } + /// Storage: `ParachainStaking::CandidateInfo` (r:1 w:1) + /// Proof: `ParachainStaking::CandidateInfo` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::AutoCompoundingDelegations` (r:1 w:1) + /// Proof: `ParachainStaking::AutoCompoundingDelegations` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::TopDelegations` (r:1 w:1) + /// Proof: `ParachainStaking::TopDelegations` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::DelegatorState` (r:349 w:349) + /// Proof: `ParachainStaking::DelegatorState` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Balances::Locks` (r:350 w:350) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1287), added: 3762, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:350 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(37), added: 2512, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:350 w:350) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::DelegationScheduledRequests` (r:1 w:1) + /// Proof: `ParachainStaking::DelegationScheduledRequests` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::BottomDelegations` (r:1 w:1) + /// Proof: `ParachainStaking::BottomDelegations` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::Total` (r:1 w:1) + /// Proof: `ParachainStaking::Total` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// The range of component `x` is `[2, 350]`. + /// The range of component `y` is `[2, 350]`. + fn execute_leave_candidates_ideal(x: u32, _y: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `1630 + x * (431 ±0)` + // Estimated: `4861 + x * (3762 ±0)` + // Minimum execution time: 87_409_000 picoseconds. + Weight::from_parts(88_541_000, 4861) + // Standard Error: 32_339 + .saturating_add(Weight::from_parts(35_540_652, 0).saturating_mul(x.into())) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(x.into()))) + .saturating_add(T::DbWeight::get().writes(5_u64)) + .saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(x.into()))) + .saturating_add(Weight::from_parts(0, 3762).saturating_mul(x.into())) + } + /// Storage: `ParachainStaking::CandidateInfo` (r:1 w:1) + /// Proof: `ParachainStaking::CandidateInfo` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::CandidatePool` (r:1 w:1) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// The range of component `x` is `[3, 200]`. + fn cancel_leave_candidates(x: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `633 + x * (37 ±0)` + // Estimated: `3991 + x * (38 ±0)` + // Minimum execution time: 14_854_000 picoseconds. + Weight::from_parts(19_707_412, 3991) + // Standard Error: 826 + .saturating_add(Weight::from_parts(58_405, 0).saturating_mul(x.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + .saturating_add(Weight::from_parts(0, 38).saturating_mul(x.into())) + } + /// Storage: `ParachainStaking::CandidateInfo` (r:1 w:1) + /// Proof: `ParachainStaking::CandidateInfo` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::CandidatePool` (r:1 w:1) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// The range of component `x` is `[1, 200]`. + fn go_offline(x: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `530 + x * (38 ±0)` + // Estimated: `3931 + x * (39 ±0)` + // Minimum execution time: 14_355_000 picoseconds. + Weight::from_parts(18_619_206, 3931) + // Standard Error: 879 + .saturating_add(Weight::from_parts(65_768, 0).saturating_mul(x.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + .saturating_add(Weight::from_parts(0, 39).saturating_mul(x.into())) + } + /// Storage: `ParachainStaking::CandidateInfo` (r:1 w:1) + /// Proof: `ParachainStaking::CandidateInfo` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::CandidatePool` (r:1 w:1) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// The range of component `x` is `[1, 200]`. + fn go_online(x: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `494 + x * (38 ±0)` + // Estimated: `3895 + x * (39 ±0)` + // Minimum execution time: 13_877_000 picoseconds. + Weight::from_parts(18_681_501, 3895) + // Standard Error: 941 + .saturating_add(Weight::from_parts(63_439, 0).saturating_mul(x.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + .saturating_add(Weight::from_parts(0, 39).saturating_mul(x.into())) + } + /// Storage: `ParachainStaking::CandidateInfo` (r:1 w:1) + /// Proof: `ParachainStaking::CandidateInfo` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Total` (r:1 w:1) + /// Proof: `ParachainStaking::Total` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1287), added: 3762, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(37), added: 2512, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::CandidatePool` (r:1 w:1) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// The range of component `x` is `[1, 200]`. + fn candidate_bond_more(x: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `1233 + x * (42 ±0)` + // Estimated: `4752 + x * (44 ±0)` + // Minimum execution time: 41_259_000 picoseconds. + Weight::from_parts(49_630_125, 4752) + // Standard Error: 1_610 + .saturating_add(Weight::from_parts(85_981, 0).saturating_mul(x.into())) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().writes(5_u64)) + .saturating_add(Weight::from_parts(0, 44).saturating_mul(x.into())) + } + /// Storage: `ParachainStaking::CandidateInfo` (r:1 w:1) + /// Proof: `ParachainStaking::CandidateInfo` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn schedule_candidate_bond_less() -> Weight { + // Proof Size summary in bytes: + // Measured: `171` + // Estimated: `3636` + // Minimum execution time: 12_501_000 picoseconds. + Weight::from_parts(12_858_000, 3636) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `ParachainStaking::CandidateInfo` (r:1 w:1) + /// Proof: `ParachainStaking::CandidateInfo` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::Total` (r:1 w:1) + /// Proof: `ParachainStaking::Total` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1287), added: 3762, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(37), added: 2512, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::CandidatePool` (r:1 w:1) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// The range of component `x` is `[1, 200]`. + fn execute_candidate_bond_less(x: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `1322 + x * (42 ±0)` + // Estimated: `4752 + x * (43 ±0)` + // Minimum execution time: 44_591_000 picoseconds. + Weight::from_parts(48_732_231, 4752) + // Standard Error: 3_845 + .saturating_add(Weight::from_parts(222_708, 0).saturating_mul(x.into())) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().writes(5_u64)) + .saturating_add(Weight::from_parts(0, 43).saturating_mul(x.into())) + } + /// Storage: `ParachainStaking::CandidateInfo` (r:1 w:1) + /// Proof: `ParachainStaking::CandidateInfo` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::Total` (r:1 w:1) + /// Proof: `ParachainStaking::Total` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1287), added: 3762, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(37), added: 2512, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::CandidatePool` (r:1 w:1) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// The range of component `x` is `[1, 200]`. + fn set_candidate_bond_to_zero(x: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `1302 + x * (42 ±0)` + // Estimated: `4752 + x * (43 ±0)` + // Minimum execution time: 41_796_000 picoseconds. + Weight::from_parts(54_526_077, 4752) + // Standard Error: 5_306 + .saturating_add(Weight::from_parts(96_085, 0).saturating_mul(x.into())) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().writes(5_u64)) + .saturating_add(Weight::from_parts(0, 43).saturating_mul(x.into())) + } + /// Storage: `ParachainStaking::CandidateInfo` (r:1 w:1) + /// Proof: `ParachainStaking::CandidateInfo` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn cancel_candidate_bond_less() -> Weight { + // Proof Size summary in bytes: + // Measured: `191` + // Estimated: `3656` + // Minimum execution time: 11_530_000 picoseconds. + Weight::from_parts(12_009_000, 3656) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::DelegatorState` (r:1 w:1) + /// Proof: `ParachainStaking::DelegatorState` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::CandidateInfo` (r:1 w:1) + /// Proof: `ParachainStaking::CandidateInfo` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::TopDelegations` (r:1 w:1) + /// Proof: `ParachainStaking::TopDelegations` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::CandidatePool` (r:1 w:1) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1287), added: 3762, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(37), added: 2512, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Total` (r:1 w:1) + /// Proof: `ParachainStaking::Total` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// The range of component `x` is `[3, 100]`. + /// The range of component `y` is `[2, 300]`. + fn delegate(x: u32, y: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `2461 + x * (79 ±0) + y * (38 ±0)` + // Estimated: `5710 + x * (81 ±0) + y * (39 ±0)` + // Minimum execution time: 84_077_000 picoseconds. + Weight::from_parts(74_614_478, 5710) + // Standard Error: 1_313 + .saturating_add(Weight::from_parts(142_400, 0).saturating_mul(x.into())) + // Standard Error: 430 + .saturating_add(Weight::from_parts(44_838, 0).saturating_mul(y.into())) + .saturating_add(T::DbWeight::get().reads(8_u64)) + .saturating_add(T::DbWeight::get().writes(7_u64)) + .saturating_add(Weight::from_parts(0, 81).saturating_mul(x.into())) + .saturating_add(Weight::from_parts(0, 39).saturating_mul(y.into())) + } + /// Storage: `ParachainStaking::DelegatorState` (r:1 w:1) + /// Proof: `ParachainStaking::DelegatorState` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::DelegationScheduledRequests` (r:1 w:1) + /// Proof: `ParachainStaking::DelegationScheduledRequests` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `x` is `[0, 349]`. + fn schedule_revoke_delegation(x: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `567 + x * (42 ±0)` + // Estimated: `4013 + x * (43 ±0)` + // Minimum execution time: 15_119_000 picoseconds. + Weight::from_parts(21_766_165, 4013) + // Standard Error: 830 + .saturating_add(Weight::from_parts(68_317, 0).saturating_mul(x.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + .saturating_add(Weight::from_parts(0, 43).saturating_mul(x.into())) + } + /// Storage: `ParachainStaking::DelegatorState` (r:1 w:1) + /// Proof: `ParachainStaking::DelegatorState` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::DelegationScheduledRequests` (r:1 w:0) + /// Proof: `ParachainStaking::DelegationScheduledRequests` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1287), added: 3762, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(37), added: 2512, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::CandidateInfo` (r:1 w:1) + /// Proof: `ParachainStaking::CandidateInfo` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::TopDelegations` (r:1 w:1) + /// Proof: `ParachainStaking::TopDelegations` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::CandidatePool` (r:1 w:1) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::Total` (r:1 w:1) + /// Proof: `ParachainStaking::Total` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// The range of component `x` is `[0, 349]`. + fn delegator_bond_more(x: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `2031 + x * (79 ±0)` + // Estimated: `5433 + x * (79 ±0)` + // Minimum execution time: 59_006_000 picoseconds. + Weight::from_parts(64_540_096, 5433) + // Standard Error: 3_312 + .saturating_add(Weight::from_parts(213_609, 0).saturating_mul(x.into())) + .saturating_add(T::DbWeight::get().reads(9_u64)) + .saturating_add(T::DbWeight::get().writes(7_u64)) + .saturating_add(Weight::from_parts(0, 79).saturating_mul(x.into())) + } + /// Storage: `ParachainStaking::DelegatorState` (r:1 w:1) + /// Proof: `ParachainStaking::DelegatorState` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::DelegationScheduledRequests` (r:1 w:1) + /// Proof: `ParachainStaking::DelegationScheduledRequests` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `x` is `[0, 349]`. + fn schedule_delegator_bond_less(x: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `567 + x * (42 ±0)` + // Estimated: `4013 + x * (43 ±0)` + // Minimum execution time: 15_642_000 picoseconds. + Weight::from_parts(21_709_548, 4013) + // Standard Error: 1_657 + .saturating_add(Weight::from_parts(136_338, 0).saturating_mul(x.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + .saturating_add(Weight::from_parts(0, 43).saturating_mul(x.into())) + } + /// Storage: `ParachainStaking::DelegatorState` (r:1 w:1) + /// Proof: `ParachainStaking::DelegatorState` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::DelegationScheduledRequests` (r:1 w:1) + /// Proof: `ParachainStaking::DelegationScheduledRequests` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1287), added: 3762, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(37), added: 2512, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::AutoCompoundingDelegations` (r:1 w:0) + /// Proof: `ParachainStaking::AutoCompoundingDelegations` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::CandidateInfo` (r:1 w:1) + /// Proof: `ParachainStaking::CandidateInfo` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::TopDelegations` (r:1 w:1) + /// Proof: `ParachainStaking::TopDelegations` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::CandidatePool` (r:1 w:1) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::Total` (r:1 w:1) + /// Proof: `ParachainStaking::Total` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn execute_revoke_delegation() -> Weight { + // Proof Size summary in bytes: + // Measured: `998` + // Estimated: `4752` + // Minimum execution time: 71_273_000 picoseconds. + Weight::from_parts(75_804_000, 4752) + .saturating_add(T::DbWeight::get().reads(10_u64)) + .saturating_add(T::DbWeight::get().writes(8_u64)) + } + /// Storage: `ParachainStaking::DelegatorState` (r:1 w:1) + /// Proof: `ParachainStaking::DelegatorState` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::DelegationScheduledRequests` (r:1 w:1) + /// Proof: `ParachainStaking::DelegationScheduledRequests` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1287), added: 3762, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(37), added: 2512, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::AutoCompoundingDelegations` (r:1 w:1) + /// Proof: `ParachainStaking::AutoCompoundingDelegations` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::CandidateInfo` (r:1 w:1) + /// Proof: `ParachainStaking::CandidateInfo` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::TopDelegations` (r:1 w:1) + /// Proof: `ParachainStaking::TopDelegations` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::BottomDelegations` (r:1 w:1) + /// Proof: `ParachainStaking::BottomDelegations` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::CandidatePool` (r:1 w:1) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::Total` (r:1 w:1) + /// Proof: `ParachainStaking::Total` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn execute_delegator_revoke_delegation_worst() -> Weight { + // Proof Size summary in bytes: + // Measured: `37342` + // Estimated: `40807` + // Minimum execution time: 143_436_000 picoseconds. + Weight::from_parts(169_779_000, 40807) + .saturating_add(T::DbWeight::get().reads(11_u64)) + .saturating_add(T::DbWeight::get().writes(10_u64)) + } + /// Storage: `ParachainStaking::DelegatorState` (r:1 w:1) + /// Proof: `ParachainStaking::DelegatorState` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::DelegationScheduledRequests` (r:1 w:1) + /// Proof: `ParachainStaking::DelegationScheduledRequests` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::CandidateInfo` (r:1 w:1) + /// Proof: `ParachainStaking::CandidateInfo` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1287), added: 3762, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(37), added: 2512, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::TopDelegations` (r:1 w:1) + /// Proof: `ParachainStaking::TopDelegations` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::BottomDelegations` (r:1 w:1) + /// Proof: `ParachainStaking::BottomDelegations` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::CandidatePool` (r:1 w:1) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::Total` (r:1 w:1) + /// Proof: `ParachainStaking::Total` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn execute_delegator_bond_less_worst() -> Weight { + // Proof Size summary in bytes: + // Measured: `29964` + // Estimated: `33429` + // Minimum execution time: 123_496_000 picoseconds. + Weight::from_parts(152_228_000, 33429) + .saturating_add(T::DbWeight::get().reads(10_u64)) + .saturating_add(T::DbWeight::get().writes(9_u64)) + } + /// Storage: `ParachainStaking::DelegatorState` (r:1 w:1) + /// Proof: `ParachainStaking::DelegatorState` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::DelegationScheduledRequests` (r:1 w:1) + /// Proof: `ParachainStaking::DelegationScheduledRequests` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `x` is `[0, 349]`. + fn cancel_delegation_request(x: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `664 + x * (42 ±0)` + // Estimated: `4093 + x * (43 ±0)` + // Minimum execution time: 19_526_000 picoseconds. + Weight::from_parts(28_091_826, 4093) + // Standard Error: 1_664 + .saturating_add(Weight::from_parts(117_941, 0).saturating_mul(x.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + .saturating_add(Weight::from_parts(0, 43).saturating_mul(x.into())) + } + /// Storage: `ParachainStaking::Points` (r:1 w:0) + /// Proof: `ParachainStaking::Points` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn prepare_staking_payouts() -> Weight { + // Proof Size summary in bytes: + // Measured: `3` + // Estimated: `3468` + // Minimum execution time: 2_825_000 picoseconds. + Weight::from_parts(2_963_000, 3468) + .saturating_add(T::DbWeight::get().reads(1_u64)) + } + /// Storage: `ParachainStaking::DelegationScheduledRequests` (r:1 w:0) + /// Proof: `ParachainStaking::DelegationScheduledRequests` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::TopDelegations` (r:1 w:0) + /// Proof: `ParachainStaking::TopDelegations` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `y` is `[0, 100]`. + fn get_rewardable_delegators(y: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `73 + y * (36 ±0)` + // Estimated: `3537 + y * (36 ±0)` + // Minimum execution time: 6_110_000 picoseconds. + Weight::from_parts(7_496_644, 3537) + // Standard Error: 845 + .saturating_add(Weight::from_parts(70_735, 0).saturating_mul(y.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(Weight::from_parts(0, 36).saturating_mul(y.into())) + } + /// Storage: `ParachainStaking::TotalSelected` (r:1 w:0) + /// Proof: `ParachainStaking::TotalSelected` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::CandidatePool` (r:1 w:0) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::CandidateInfo` (r:51 w:0) + /// Proof: `ParachainStaking::CandidateInfo` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::DelegationScheduledRequests` (r:51 w:0) + /// Proof: `ParachainStaking::DelegationScheduledRequests` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::TopDelegations` (r:51 w:0) + /// Proof: `ParachainStaking::TopDelegations` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::AutoCompoundingDelegations` (r:51 w:0) + /// Proof: `ParachainStaking::AutoCompoundingDelegations` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::SelectedCandidates` (r:0 w:1) + /// Proof: `ParachainStaking::SelectedCandidates` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::AtStake` (r:0 w:51) + /// Proof: `ParachainStaking::AtStake` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `x` is `[0, 50]`. + /// The range of component `y` is `[0, 100]`. + fn select_top_candidates(x: u32, y: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0 + x * (3816 ±0) + y * (1800 ±0)` + // Estimated: `3693 + x * (3975 ±39) + y * (639 ±19)` + // Minimum execution time: 19_435_000 picoseconds. + Weight::from_parts(19_664_000, 3693) + // Standard Error: 68_300 + .saturating_add(Weight::from_parts(15_297_334, 0).saturating_mul(x.into())) + // Standard Error: 34_059 + .saturating_add(Weight::from_parts(1_560_635, 0).saturating_mul(y.into())) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(x.into()))) + .saturating_add(T::DbWeight::get().writes(2_u64)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(x.into()))) + .saturating_add(Weight::from_parts(0, 3975).saturating_mul(x.into())) + .saturating_add(Weight::from_parts(0, 639).saturating_mul(y.into())) + } + /// Storage: `System::Account` (r:349 w:349) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::DelegatorState` (r:349 w:349) + /// Proof: `ParachainStaking::DelegatorState` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::DelegationScheduledRequests` (r:1 w:0) + /// Proof: `ParachainStaking::DelegationScheduledRequests` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Balances::Locks` (r:349 w:349) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1287), added: 3762, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:349 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(37), added: 2512, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::CandidateInfo` (r:1 w:1) + /// Proof: `ParachainStaking::CandidateInfo` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::TopDelegations` (r:1 w:1) + /// Proof: `ParachainStaking::TopDelegations` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::CandidatePool` (r:1 w:1) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::Total` (r:1 w:1) + /// Proof: `ParachainStaking::Total` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::BottomDelegations` (r:1 w:1) + /// Proof: `ParachainStaking::BottomDelegations` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `x` is `[0, 349]`. + /// The range of component `y` is `[0, 349]`. + /// The range of component `z` is `[0, 349]`. + fn pay_one_collator_reward_best(x: u32, y: u32, z: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0 + x * (396 ±0) + y * (156 ±0) + z * (41 ±0)` + // Estimated: `126400 + x * (2591 ±1) + y * (2234 ±1) + z * (28 ±0)` + // Minimum execution time: 253_000 picoseconds. + Weight::from_parts(265_000, 126400) + // Standard Error: 503_491 + .saturating_add(Weight::from_parts(46_633_837, 0).saturating_mul(x.into())) + // Standard Error: 503_491 + .saturating_add(Weight::from_parts(28_322_022, 0).saturating_mul(y.into())) + .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(x.into()))) + .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(y.into()))) + .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(x.into()))) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(y.into()))) + .saturating_add(Weight::from_parts(0, 2591).saturating_mul(x.into())) + .saturating_add(Weight::from_parts(0, 2234).saturating_mul(y.into())) + .saturating_add(Weight::from_parts(0, 28).saturating_mul(z.into())) + } + /// Storage: `ParachainStaking::DelayedPayouts` (r:1 w:0) + /// Proof: `ParachainStaking::DelayedPayouts` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::Points` (r:1 w:0) + /// Proof: `ParachainStaking::Points` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::AtStake` (r:2 w:1) + /// Proof: `ParachainStaking::AtStake` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::AwardedPts` (r:1 w:1) + /// Proof: `ParachainStaking::AwardedPts` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::DelegationScheduledRequests` (r:1 w:0) + /// Proof: `ParachainStaking::DelegationScheduledRequests` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `MoonbeamOrbiters::OrbiterPerRound` (r:1 w:0) + /// Proof: `MoonbeamOrbiters::OrbiterPerRound` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `System::Account` (r:301 w:301) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + /// The range of component `y` is `[0, 300]`. + fn pay_one_collator_reward(y: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `1698 + y * (161 ±0)` + // Estimated: `7393 + y * (2591 ±0)` + // Minimum execution time: 46_615_000 picoseconds. + Weight::from_parts(45_686_052, 7393) + // Standard Error: 4_567 + .saturating_add(Weight::from_parts(13_525_080, 0).saturating_mul(y.into())) + .saturating_add(T::DbWeight::get().reads(8_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(y.into()))) + .saturating_add(T::DbWeight::get().writes(3_u64)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(y.into()))) + .saturating_add(Weight::from_parts(0, 2591).saturating_mul(y.into())) + } + fn base_on_initialize() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 694_000 picoseconds. + Weight::from_parts(737_000, 0) + } + /// Storage: `ParachainStaking::DelegatorState` (r:1 w:0) + /// Proof: `ParachainStaking::DelegatorState` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::AutoCompoundingDelegations` (r:1 w:1) + /// Proof: `ParachainStaking::AutoCompoundingDelegations` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `x` is `[0, 300]`. + /// The range of component `y` is `[0, 100]`. + fn set_auto_compound(x: u32, y: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `672 + x * (22 ±0) + y * (36 ±0)` + // Estimated: `4028 + x * (23 ±0) + y * (36 ±0)` + // Minimum execution time: 23_746_000 picoseconds. + Weight::from_parts(20_563_748, 4028) + // Standard Error: 1_721 + .saturating_add(Weight::from_parts(58_368, 0).saturating_mul(x.into())) + // Standard Error: 5_153 + .saturating_add(Weight::from_parts(71_360, 0).saturating_mul(y.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + .saturating_add(Weight::from_parts(0, 23).saturating_mul(x.into())) + .saturating_add(Weight::from_parts(0, 36).saturating_mul(y.into())) + } + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::DelegatorState` (r:1 w:1) + /// Proof: `ParachainStaking::DelegatorState` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::CandidateInfo` (r:1 w:1) + /// Proof: `ParachainStaking::CandidateInfo` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::AutoCompoundingDelegations` (r:1 w:1) + /// Proof: `ParachainStaking::AutoCompoundingDelegations` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::TopDelegations` (r:1 w:1) + /// Proof: `ParachainStaking::TopDelegations` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::BottomDelegations` (r:1 w:1) + /// Proof: `ParachainStaking::BottomDelegations` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::CandidatePool` (r:1 w:1) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1287), added: 3762, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(37), added: 2512, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::Total` (r:1 w:1) + /// Proof: `ParachainStaking::Total` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// The range of component `x` is `[0, 350]`. + /// The range of component `y` is `[0, 349]`. + /// The range of component `z` is `[0, 99]`. + fn delegate_with_auto_compound(x: u32, y: u32, z: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0 + x * (60 ±0) + y * (21 ±0) + z * (78 ±0)` + // Estimated: `26250 + x * (44 ±0) + y * (19 ±0) + z * (76 ±1)` + // Minimum execution time: 96_385_000 picoseconds. + Weight::from_parts(80_027_470, 26250) + // Standard Error: 1_127 + .saturating_add(Weight::from_parts(99_532, 0).saturating_mul(x.into())) + // Standard Error: 3_981 + .saturating_add(Weight::from_parts(182_606, 0).saturating_mul(z.into())) + .saturating_add(T::DbWeight::get().reads(9_u64)) + .saturating_add(T::DbWeight::get().writes(8_u64)) + .saturating_add(Weight::from_parts(0, 44).saturating_mul(x.into())) + .saturating_add(Weight::from_parts(0, 19).saturating_mul(y.into())) + .saturating_add(Weight::from_parts(0, 76).saturating_mul(z.into())) + } + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::DelegatorState` (r:2 w:2) + /// Proof: `ParachainStaking::DelegatorState` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::CandidateInfo` (r:1 w:1) + /// Proof: `ParachainStaking::CandidateInfo` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::AutoCompoundingDelegations` (r:1 w:1) + /// Proof: `ParachainStaking::AutoCompoundingDelegations` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::TopDelegations` (r:1 w:1) + /// Proof: `ParachainStaking::TopDelegations` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::BottomDelegations` (r:1 w:1) + /// Proof: `ParachainStaking::BottomDelegations` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Balances::Locks` (r:2 w:2) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1287), added: 3762, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:2 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(37), added: 2512, mode: `MaxEncodedLen`) + /// Storage: `ParachainStaking::DelegationScheduledRequests` (r:1 w:1) + /// Proof: `ParachainStaking::DelegationScheduledRequests` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::CandidatePool` (r:1 w:1) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::Total` (r:1 w:1) + /// Proof: `ParachainStaking::Total` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn delegate_with_auto_compound_worst() -> Weight { + // Proof Size summary in bytes: + // Measured: `48131` + // Estimated: `54071` + // Minimum execution time: 210_668_000 picoseconds. + Weight::from_parts(213_343_000, 54071) + .saturating_add(T::DbWeight::get().reads(15_u64)) + .saturating_add(T::DbWeight::get().writes(13_u64)) + } + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + fn mint_collator_reward() -> Weight { + // Proof Size summary in bytes: + // Measured: `128` + // Estimated: `3581` + // Minimum execution time: 15_760_000 picoseconds. + Weight::from_parts(15_964_000, 3581) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `ParachainStaking::EnableMarkingOffline` (r:1 w:0) + /// Proof: `ParachainStaking::EnableMarkingOffline` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::TotalSelected` (r:1 w:0) + /// Proof: `ParachainStaking::TotalSelected` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::SelectedCandidates` (r:1 w:0) + /// Proof: `ParachainStaking::SelectedCandidates` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::AtStake` (r:2 w:0) + /// Proof: `ParachainStaking::AtStake` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::AwardedPts` (r:2 w:0) + /// Proof: `ParachainStaking::AwardedPts` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `MoonbeamOrbiters::OrbiterPerRound` (r:1 w:0) + /// Proof: `MoonbeamOrbiters::OrbiterPerRound` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::CandidateInfo` (r:1 w:1) + /// Proof: `ParachainStaking::CandidateInfo` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ParachainStaking::CandidatePool` (r:1 w:1) + /// Proof: `ParachainStaking::CandidatePool` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn notify_inactive_collator() -> Weight { + // Proof Size summary in bytes: + // Measured: `11566` + // Estimated: `17506` + // Minimum execution time: 67_872_000 picoseconds. + Weight::from_parts(69_231_000, 17506) + .saturating_add(T::DbWeight::get().reads(10_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } +} diff --git a/tracing/3001/runtime/common/src/weights/pallet_precompile_benchmarks.rs b/tracing/3001/runtime/common/src/weights/pallet_precompile_benchmarks.rs new file mode 100644 index 00000000..61b0525d --- /dev/null +++ b/tracing/3001/runtime/common/src/weights/pallet_precompile_benchmarks.rs @@ -0,0 +1,69 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Autogenerated weights for `pallet_precompile_benchmarks` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-05-27, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `ip-10-0-0-176`, CPU: `Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz` +//! WASM-EXECUTION: Compiled, CHAIN: Some("moonbase-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/production/moonbeam +// benchmark +// pallet +// --chain=moonbase-dev +// --steps=50 +// --repeat=20 +// --pallet=pallet_precompile_benchmarks +// --extrinsic=* +// --wasm-execution=compiled +// --header=./file_header.txt +// --template=./benchmarking/frame-weight-template.hbs +// --output=./runtime/common/src/weights/ + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; +use sp_std::marker::PhantomData; + +/// Weights for `pallet_precompile_benchmarks`. +pub struct WeightInfo(PhantomData); +impl pallet_precompile_benchmarks::WeightInfo for WeightInfo { + /// The range of component `x` is `[100, 2000]`. + fn verify_entry(x: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 74_137_000 picoseconds. + Weight::from_parts(74_734_000, 0) + // Standard Error: 2_375 + .saturating_add(Weight::from_parts(650_879, 0).saturating_mul(x.into())) + } + /// Storage: `RelayStorageRoots::RelayStorageRootKeys` (r:1 w:0) + /// Proof: `RelayStorageRoots::RelayStorageRootKeys` (`max_values`: Some(1), `max_size`: Some(121), added: 616, mode: `MaxEncodedLen`) + fn latest_relay_block() -> Weight { + // Proof Size summary in bytes: + // Measured: `227` + // Estimated: `1606` + // Minimum execution time: 4_490_000 picoseconds. + Weight::from_parts(4_735_000, 1606) + .saturating_add(T::DbWeight::get().reads(1_u64)) + } +} diff --git a/tracing/3001/runtime/common/src/weights/pallet_preimage.rs b/tracing/3001/runtime/common/src/weights/pallet_preimage.rs new file mode 100644 index 00000000..129f4b54 --- /dev/null +++ b/tracing/3001/runtime/common/src/weights/pallet_preimage.rs @@ -0,0 +1,251 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Autogenerated weights for `pallet_preimage` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-05-27, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `ip-10-0-0-176`, CPU: `Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz` +//! WASM-EXECUTION: Compiled, CHAIN: Some("moonbase-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/production/moonbeam +// benchmark +// pallet +// --chain=moonbase-dev +// --steps=50 +// --repeat=20 +// --pallet=pallet_preimage +// --extrinsic=* +// --wasm-execution=compiled +// --header=./file_header.txt +// --template=./benchmarking/frame-weight-template.hbs +// --output=./runtime/common/src/weights/ + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; +use sp_std::marker::PhantomData; + +/// Weights for `pallet_preimage`. +pub struct WeightInfo(PhantomData); +impl pallet_preimage::WeightInfo for WeightInfo { + /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(79), added: 2554, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(79), added: 2554, mode: `MaxEncodedLen`) + /// Storage: `Balances::Holds` (r:1 w:1) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(55), added: 2530, mode: `MaxEncodedLen`) + /// Storage: `Preimage::PreimageFor` (r:0 w:1) + /// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`) + /// The range of component `s` is `[0, 4194304]`. + fn note_preimage(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `42` + // Estimated: `3544` + // Minimum execution time: 46_688_000 picoseconds. + Weight::from_parts(47_083_000, 3544) + // Standard Error: 5 + .saturating_add(Weight::from_parts(2_363, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + } + /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(79), added: 2554, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(79), added: 2554, mode: `MaxEncodedLen`) + /// Storage: `Preimage::PreimageFor` (r:0 w:1) + /// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`) + /// The range of component `s` is `[0, 4194304]`. + fn note_requested_preimage(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `106` + // Estimated: `3544` + // Minimum execution time: 15_018_000 picoseconds. + Weight::from_parts(15_400_000, 3544) + // Standard Error: 4 + .saturating_add(Weight::from_parts(2_351, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(79), added: 2554, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(79), added: 2554, mode: `MaxEncodedLen`) + /// Storage: `Preimage::PreimageFor` (r:0 w:1) + /// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`) + /// The range of component `s` is `[0, 4194304]`. + fn note_no_deposit_preimage(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `106` + // Estimated: `3544` + // Minimum execution time: 14_292_000 picoseconds. + Weight::from_parts(14_539_000, 3544) + // Standard Error: 4 + .saturating_add(Weight::from_parts(2_338, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(79), added: 2554, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(79), added: 2554, mode: `MaxEncodedLen`) + /// Storage: `Balances::Holds` (r:1 w:1) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(55), added: 2530, mode: `MaxEncodedLen`) + /// Storage: `Preimage::PreimageFor` (r:0 w:1) + /// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`) + fn unnote_preimage() -> Weight { + // Proof Size summary in bytes: + // Measured: `220` + // Estimated: `3544` + // Minimum execution time: 49_477_000 picoseconds. + Weight::from_parts(50_439_000, 3544) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + } + /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(79), added: 2554, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(79), added: 2554, mode: `MaxEncodedLen`) + /// Storage: `Preimage::PreimageFor` (r:0 w:1) + /// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`) + fn unnote_no_deposit_preimage() -> Weight { + // Proof Size summary in bytes: + // Measured: `144` + // Estimated: `3544` + // Minimum execution time: 21_428_000 picoseconds. + Weight::from_parts(21_807_000, 3544) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(79), added: 2554, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(79), added: 2554, mode: `MaxEncodedLen`) + fn request_preimage() -> Weight { + // Proof Size summary in bytes: + // Measured: `176` + // Estimated: `3544` + // Minimum execution time: 18_371_000 picoseconds. + Weight::from_parts(18_897_000, 3544) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(79), added: 2554, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(79), added: 2554, mode: `MaxEncodedLen`) + fn request_no_deposit_preimage() -> Weight { + // Proof Size summary in bytes: + // Measured: `144` + // Estimated: `3544` + // Minimum execution time: 13_091_000 picoseconds. + Weight::from_parts(13_822_000, 3544) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(79), added: 2554, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(79), added: 2554, mode: `MaxEncodedLen`) + fn request_unnoted_preimage() -> Weight { + // Proof Size summary in bytes: + // Measured: `42` + // Estimated: `3544` + // Minimum execution time: 14_996_000 picoseconds. + Weight::from_parts(15_339_000, 3544) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(79), added: 2554, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(79), added: 2554, mode: `MaxEncodedLen`) + fn request_requested_preimage() -> Weight { + // Proof Size summary in bytes: + // Measured: `106` + // Estimated: `3544` + // Minimum execution time: 10_106_000 picoseconds. + Weight::from_parts(10_625_000, 3544) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(79), added: 2554, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(79), added: 2554, mode: `MaxEncodedLen`) + /// Storage: `Preimage::PreimageFor` (r:0 w:1) + /// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`) + fn unrequest_preimage() -> Weight { + // Proof Size summary in bytes: + // Measured: `144` + // Estimated: `3544` + // Minimum execution time: 19_089_000 picoseconds. + Weight::from_parts(19_515_000, 3544) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(79), added: 2554, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(79), added: 2554, mode: `MaxEncodedLen`) + fn unrequest_unnoted_preimage() -> Weight { + // Proof Size summary in bytes: + // Measured: `106` + // Estimated: `3544` + // Minimum execution time: 10_228_000 picoseconds. + Weight::from_parts(10_500_000, 3544) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(79), added: 2554, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(79), added: 2554, mode: `MaxEncodedLen`) + fn unrequest_multi_referenced_preimage() -> Weight { + // Proof Size summary in bytes: + // Measured: `106` + // Estimated: `3544` + // Minimum execution time: 10_317_000 picoseconds. + Weight::from_parts(10_683_000, 3544) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Preimage::StatusFor` (r:1023 w:1023) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(79), added: 2554, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1023 w:1023) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + /// Storage: `Balances::Holds` (r:1023 w:1023) + /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(55), added: 2530, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:0 w:1023) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(79), added: 2554, mode: `MaxEncodedLen`) + /// The range of component `n` is `[1, 1024]`. + fn ensure_updated(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `1391 + n * (203 ±0)` + // Estimated: `990 + n * (2591 ±0)` + // Minimum execution time: 53_650_000 picoseconds. + Weight::from_parts(54_161_000, 990) + // Standard Error: 27_907 + .saturating_add(Weight::from_parts(51_795_542, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().writes((4_u64).saturating_mul(n.into()))) + .saturating_add(Weight::from_parts(0, 2591).saturating_mul(n.into())) + } +} diff --git a/tracing/3001/runtime/common/src/weights/pallet_proxy.rs b/tracing/3001/runtime/common/src/weights/pallet_proxy.rs new file mode 100644 index 00000000..fccade41 --- /dev/null +++ b/tracing/3001/runtime/common/src/weights/pallet_proxy.rs @@ -0,0 +1,217 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Autogenerated weights for `pallet_proxy` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-05-27, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `ip-10-0-0-176`, CPU: `Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz` +//! WASM-EXECUTION: Compiled, CHAIN: Some("moonbase-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/production/moonbeam +// benchmark +// pallet +// --chain=moonbase-dev +// --steps=50 +// --repeat=20 +// --pallet=pallet_proxy +// --extrinsic=* +// --wasm-execution=compiled +// --header=./file_header.txt +// --template=./benchmarking/frame-weight-template.hbs +// --output=./runtime/common/src/weights/ + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; +use sp_std::marker::PhantomData; + +/// Weights for `pallet_proxy`. +pub struct WeightInfo(PhantomData); +impl pallet_proxy::WeightInfo for WeightInfo { + /// Storage: `Proxy::Proxies` (r:1 w:0) + /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(845), added: 3320, mode: `MaxEncodedLen`) + /// Storage: `MaintenanceMode::MaintenanceMode` (r:1 w:0) + /// Proof: `MaintenanceMode::MaintenanceMode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// The range of component `p` is `[1, 31]`. + fn proxy(p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `191 + p * (25 ±0)` + // Estimated: `4310 + p * (25 ±0)` + // Minimum execution time: 14_854_000 picoseconds. + Weight::from_parts(15_511_014, 4310) + // Standard Error: 1_015 + .saturating_add(Weight::from_parts(37_477, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(Weight::from_parts(0, 25).saturating_mul(p.into())) + // 1 DB read that happen when filtering the proxy call transaction + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: `Proxy::Proxies` (r:1 w:0) + /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(845), added: 3320, mode: `MaxEncodedLen`) + /// Storage: `Proxy::Announcements` (r:1 w:1) + /// Proof: `Proxy::Announcements` (`max_values`: None, `max_size`: Some(1837), added: 4312, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + /// Storage: `MaintenanceMode::MaintenanceMode` (r:1 w:0) + /// Proof: `MaintenanceMode::MaintenanceMode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// The range of component `a` is `[0, 31]`. + /// The range of component `p` is `[1, 31]`. + fn proxy_announced(a: u32, p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `443 + a * (56 ±0) + p * (25 ±0)` + // Estimated: `5302 + a * (60 ±0) + p * (22 ±0)` + // Minimum execution time: 37_908_000 picoseconds. + Weight::from_parts(38_373_549, 5302) + // Standard Error: 2_478 + .saturating_add(Weight::from_parts(160_690, 0).saturating_mul(a.into())) + // Standard Error: 2_560 + .saturating_add(Weight::from_parts(15_936, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + .saturating_add(Weight::from_parts(0, 60).saturating_mul(a.into())) + .saturating_add(Weight::from_parts(0, 22).saturating_mul(p.into())) + } + /// Storage: `Proxy::Announcements` (r:1 w:1) + /// Proof: `Proxy::Announcements` (`max_values`: None, `max_size`: Some(1837), added: 4312, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, 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 { + // Proof Size summary in bytes: + // Measured: `329 + a * (56 ±0)` + // Estimated: `5302` + // Minimum execution time: 22_491_000 picoseconds. + Weight::from_parts(23_826_920, 5302) + // Standard Error: 4_706 + .saturating_add(Weight::from_parts(169_507, 0).saturating_mul(a.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `Proxy::Announcements` (r:1 w:1) + /// Proof: `Proxy::Announcements` (`max_values`: None, `max_size`: Some(1837), added: 4312, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, 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 { + // Proof Size summary in bytes: + // Measured: `329 + a * (56 ±0)` + // Estimated: `5302` + // Minimum execution time: 22_508_000 picoseconds. + Weight::from_parts(23_781_256, 5302) + // Standard Error: 4_686 + .saturating_add(Weight::from_parts(169_565, 0).saturating_mul(a.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `Proxy::Proxies` (r:1 w:0) + /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(845), added: 3320, mode: `MaxEncodedLen`) + /// Storage: `Proxy::Announcements` (r:1 w:1) + /// Proof: `Proxy::Announcements` (`max_values`: None, `max_size`: Some(1837), added: 4312, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, 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 { + // Proof Size summary in bytes: + // Measured: `345 + a * (56 ±0) + p * (25 ±0)` + // Estimated: `5302` + // Minimum execution time: 29_440_000 picoseconds. + Weight::from_parts(31_991_502, 5302) + // Standard Error: 2_210 + .saturating_add(Weight::from_parts(176_398, 0).saturating_mul(a.into())) + // Standard Error: 2_284 + .saturating_add(Weight::from_parts(20_423, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `Proxy::Proxies` (r:1 w:1) + /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(845), added: 3320, mode: `MaxEncodedLen`) + /// The range of component `p` is `[1, 31]`. + fn add_proxy(p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `149 + p * (25 ±0)` + // Estimated: `4310` + // Minimum execution time: 21_697_000 picoseconds. + Weight::from_parts(22_369_858, 4310) + // Standard Error: 1_014 + .saturating_add(Weight::from_parts(45_747, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Proxy::Proxies` (r:1 w:1) + /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(845), added: 3320, mode: `MaxEncodedLen`) + /// The range of component `p` is `[1, 31]`. + fn remove_proxy(p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `149 + p * (25 ±0)` + // Estimated: `4310` + // Minimum execution time: 22_170_000 picoseconds. + Weight::from_parts(23_103_119, 4310) + // Standard Error: 1_616 + .saturating_add(Weight::from_parts(41_615, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Proxy::Proxies` (r:1 w:1) + /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(845), added: 3320, mode: `MaxEncodedLen`) + /// The range of component `p` is `[1, 31]`. + fn remove_proxies(p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `149 + p * (25 ±0)` + // Estimated: `4310` + // Minimum execution time: 21_500_000 picoseconds. + Weight::from_parts(22_335_767, 4310) + // Standard Error: 1_080 + .saturating_add(Weight::from_parts(33_504, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Proxy::Proxies` (r:1 w:1) + /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(845), added: 3320, mode: `MaxEncodedLen`) + /// The range of component `p` is `[1, 31]`. + fn create_pure(p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `161` + // Estimated: `4310` + // Minimum execution time: 23_143_000 picoseconds. + Weight::from_parts(24_061_899, 4310) + // Standard Error: 1_021 + .saturating_add(Weight::from_parts(12_009, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Proxy::Proxies` (r:1 w:1) + /// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(845), added: 3320, mode: `MaxEncodedLen`) + /// The range of component `p` is `[0, 30]`. + fn kill_pure(p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `174 + p * (25 ±0)` + // Estimated: `4310` + // Minimum execution time: 21_867_000 picoseconds. + Weight::from_parts(22_868_846, 4310) + // Standard Error: 1_030 + .saturating_add(Weight::from_parts(32_051, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } +} diff --git a/tracing/3001/runtime/common/src/weights/pallet_randomness.rs b/tracing/3001/runtime/common/src/weights/pallet_randomness.rs new file mode 100644 index 00000000..0727211b --- /dev/null +++ b/tracing/3001/runtime/common/src/weights/pallet_randomness.rs @@ -0,0 +1,162 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Autogenerated weights for `pallet_randomness` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-05-27, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `ip-10-0-0-176`, CPU: `Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz` +//! WASM-EXECUTION: Compiled, CHAIN: Some("moonbase-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/production/moonbeam +// benchmark +// pallet +// --chain=moonbase-dev +// --steps=50 +// --repeat=20 +// --pallet=pallet_randomness +// --extrinsic=* +// --wasm-execution=compiled +// --header=./file_header.txt +// --template=./benchmarking/frame-weight-template.hbs +// --output=./runtime/common/src/weights/ + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; +use sp_std::marker::PhantomData; + +/// Weights for `pallet_randomness`. +pub struct WeightInfo(PhantomData); +impl pallet_randomness::WeightInfo for WeightInfo { + /// Storage: `Randomness::RelayEpoch` (r:1 w:1) + /// Proof: `Randomness::RelayEpoch` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::ValidationData` (r:1 w:0) + /// Proof: `ParachainSystem::ValidationData` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::RelayStateProof` (r:1 w:0) + /// Proof: `ParachainSystem::RelayStateProof` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Randomness::RandomnessResults` (r:1 w:1) + /// Proof: `Randomness::RandomnessResults` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Randomness::InherentIncluded` (r:0 w:1) + /// Proof: `Randomness::InherentIncluded` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn set_babe_randomness_results() -> Weight { + // Proof Size summary in bytes: + // Measured: `297` + // Estimated: `3762` + // Minimum execution time: 12_958_000 picoseconds. + Weight::from_parts(13_278_000, 3762) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + } + /// Storage: `Randomness::NotFirstBlock` (r:1 w:0) + /// Proof: `Randomness::NotFirstBlock` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `System::Digest` (r:1 w:0) + /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AuthorMapping::MappingWithDeposit` (r:1 w:0) + /// Proof: `AuthorMapping::MappingWithDeposit` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Randomness::LocalVrfOutput` (r:1 w:1) + /// Proof: `Randomness::LocalVrfOutput` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Randomness::RandomnessResults` (r:1 w:1) + /// Proof: `Randomness::RandomnessResults` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn on_initialize() -> Weight { + // Proof Size summary in bytes: + // Measured: `719` + // Estimated: `4184` + // Minimum execution time: 520_264_000 picoseconds. + Weight::from_parts(523_701_000, 4184) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `Randomness::RequestCount` (r:1 w:1) + /// Proof: `Randomness::RequestCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + /// Storage: `Randomness::RandomnessResults` (r:1 w:1) + /// Proof: `Randomness::RandomnessResults` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Randomness::Requests` (r:0 w:1) + /// Proof: `Randomness::Requests` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn request_randomness() -> Weight { + // Proof Size summary in bytes: + // Measured: `549` + // Estimated: `6172` + // Minimum execution time: 50_314_000 picoseconds. + Weight::from_parts(51_490_000, 6172) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(5_u64)) + } + /// Storage: `Randomness::Requests` (r:1 w:0) + /// Proof: `Randomness::Requests` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Randomness::RandomnessResults` (r:1 w:0) + /// Proof: `Randomness::RandomnessResults` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `x` is `[1, 100]`. + fn prepare_fulfillment(x: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `412` + // Estimated: `3877` + // Minimum execution time: 9_417_000 picoseconds. + Weight::from_parts(9_844_936, 3877) + // Standard Error: 330 + .saturating_add(Weight::from_parts(270_126, 0).saturating_mul(x.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + } + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + /// Storage: `Randomness::RandomnessResults` (r:1 w:1) + /// Proof: `Randomness::RandomnessResults` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Randomness::Requests` (r:0 w:1) + /// Proof: `Randomness::Requests` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn finish_fulfillment() -> Weight { + // Proof Size summary in bytes: + // Measured: `739` + // Estimated: `6172` + // Minimum execution time: 47_662_000 picoseconds. + Weight::from_parts(48_852_000, 6172) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) + } + /// Storage: `Randomness::Requests` (r:1 w:1) + /// Proof: `Randomness::Requests` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + fn increase_fee() -> Weight { + // Proof Size summary in bytes: + // Measured: `825` + // Estimated: `6172` + // Minimum execution time: 48_258_000 picoseconds. + Weight::from_parts(49_037_000, 6172) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + } + /// Storage: `Randomness::Requests` (r:1 w:1) + /// Proof: `Randomness::Requests` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + /// Storage: `Randomness::RandomnessResults` (r:1 w:1) + /// Proof: `Randomness::RandomnessResults` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn execute_request_expiration() -> Weight { + // Proof Size summary in bytes: + // Measured: `868` + // Estimated: `6172` + // Minimum execution time: 51_931_000 picoseconds. + Weight::from_parts(52_814_000, 6172) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) + } +} diff --git a/tracing/3001/runtime/common/src/weights/pallet_referenda.rs b/tracing/3001/runtime/common/src/weights/pallet_referenda.rs new file mode 100644 index 00000000..d56b6d53 --- /dev/null +++ b/tracing/3001/runtime/common/src/weights/pallet_referenda.rs @@ -0,0 +1,469 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Autogenerated weights for `pallet_referenda` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-05-27, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `ip-10-0-0-176`, CPU: `Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz` +//! WASM-EXECUTION: Compiled, CHAIN: Some("moonbase-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/production/moonbeam +// benchmark +// pallet +// --chain=moonbase-dev +// --steps=50 +// --repeat=20 +// --pallet=pallet_referenda +// --extrinsic=* +// --wasm-execution=compiled +// --header=./file_header.txt +// --template=./benchmarking/frame-weight-template.hbs +// --output=./runtime/common/src/weights/ + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; +use sp_std::marker::PhantomData; + +/// Weights for `pallet_referenda`. +pub struct WeightInfo(PhantomData); +impl pallet_referenda::WeightInfo for WeightInfo { + /// Storage: `Referenda::ReferendumCount` (r:1 w:1) + /// Proof: `Referenda::ReferendumCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`) + /// Storage: `Referenda::ReferendumInfoFor` (r:0 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(912), added: 3387, mode: `MaxEncodedLen`) + fn submit() -> Weight { + // Proof Size summary in bytes: + // Measured: `269` + // Estimated: `42428` + // Minimum execution time: 31_027_000 picoseconds. + Weight::from_parts(32_148_000, 42428) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + } + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(912), added: 3387, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:2 w:2) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`) + fn place_decision_deposit_preparing() -> Weight { + // Proof Size summary in bytes: + // Measured: `510` + // Estimated: `83866` + // Minimum execution time: 39_975_000 picoseconds. + Weight::from_parts(41_843_000, 83866) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + } + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(912), added: 3387, mode: `MaxEncodedLen`) + /// Storage: `Referenda::DecidingCount` (r:1 w:0) + /// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `Referenda::TrackQueue` (r:1 w:1) + /// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`) + fn place_decision_deposit_queued() -> Weight { + // Proof Size summary in bytes: + // Measured: `3303` + // Estimated: `42428` + // Minimum execution time: 57_624_000 picoseconds. + Weight::from_parts(58_990_000, 42428) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + } + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(912), added: 3387, mode: `MaxEncodedLen`) + /// Storage: `Referenda::DecidingCount` (r:1 w:0) + /// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `Referenda::TrackQueue` (r:1 w:1) + /// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`) + fn place_decision_deposit_not_queued() -> Weight { + // Proof Size summary in bytes: + // Measured: `3323` + // Estimated: `42428` + // Minimum execution time: 57_074_000 picoseconds. + Weight::from_parts(59_119_000, 42428) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + } + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(912), added: 3387, mode: `MaxEncodedLen`) + /// Storage: `Referenda::DecidingCount` (r:1 w:1) + /// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:2 w:2) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`) + fn place_decision_deposit_passing() -> Weight { + // Proof Size summary in bytes: + // Measured: `510` + // Estimated: `83866` + // Minimum execution time: 51_251_000 picoseconds. + Weight::from_parts(52_538_000, 83866) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) + } + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(912), added: 3387, mode: `MaxEncodedLen`) + /// Storage: `Referenda::DecidingCount` (r:1 w:1) + /// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:2 w:2) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`) + fn place_decision_deposit_failing() -> Weight { + // Proof Size summary in bytes: + // Measured: `510` + // Estimated: `83866` + // Minimum execution time: 47_277_000 picoseconds. + Weight::from_parts(48_358_000, 83866) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) + } + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(912), added: 3387, mode: `MaxEncodedLen`) + fn refund_decision_deposit() -> Weight { + // Proof Size summary in bytes: + // Measured: `453` + // Estimated: `4377` + // Minimum execution time: 27_242_000 picoseconds. + Weight::from_parts(27_917_000, 4377) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(912), added: 3387, mode: `MaxEncodedLen`) + fn refund_submission_deposit() -> Weight { + // Proof Size summary in bytes: + // Measured: `378` + // Estimated: `4377` + // Minimum execution time: 26_743_000 picoseconds. + Weight::from_parts(27_395_000, 4377) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(912), added: 3387, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:2 w:2) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`) + fn cancel() -> Weight { + // Proof Size summary in bytes: + // Measured: `285` + // Estimated: `83866` + // Minimum execution time: 27_765_000 picoseconds. + Weight::from_parts(28_555_000, 83866) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + } + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(912), added: 3387, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:2 w:2) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + /// Storage: `Referenda::MetadataOf` (r:1 w:0) + /// Proof: `Referenda::MetadataOf` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + fn kill() -> Weight { + // Proof Size summary in bytes: + // Measured: `1007` + // Estimated: `83866` + // Minimum execution time: 87_907_000 picoseconds. + Weight::from_parts(90_182_000, 83866) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) + } + /// Storage: `Referenda::TrackQueue` (r:1 w:0) + /// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`) + /// Storage: `Referenda::DecidingCount` (r:1 w:1) + /// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + fn one_fewer_deciding_queue_empty() -> Weight { + // Proof Size summary in bytes: + // Measured: `102` + // Estimated: `5477` + // Minimum execution time: 9_102_000 picoseconds. + Weight::from_parts(9_481_000, 5477) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Referenda::TrackQueue` (r:1 w:1) + /// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(912), added: 3387, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`) + fn one_fewer_deciding_failing() -> Weight { + // Proof Size summary in bytes: + // Measured: `3090` + // Estimated: `42428` + // Minimum execution time: 40_983_000 picoseconds. + Weight::from_parts(42_389_000, 42428) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + } + /// Storage: `Referenda::TrackQueue` (r:1 w:1) + /// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`) + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(912), added: 3387, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`) + fn one_fewer_deciding_passing() -> Weight { + // Proof Size summary in bytes: + // Measured: `3090` + // Estimated: `42428` + // Minimum execution time: 43_200_000 picoseconds. + Weight::from_parts(44_240_000, 42428) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + } + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:0) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(912), added: 3387, mode: `MaxEncodedLen`) + /// Storage: `Referenda::TrackQueue` (r:1 w:1) + /// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`) + fn nudge_referendum_requeued_insertion() -> Weight { + // Proof Size summary in bytes: + // Measured: `2915` + // Estimated: `5477` + // Minimum execution time: 22_677_000 picoseconds. + Weight::from_parts(23_515_000, 5477) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:0) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(912), added: 3387, mode: `MaxEncodedLen`) + /// Storage: `Referenda::TrackQueue` (r:1 w:1) + /// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`) + fn nudge_referendum_requeued_slide() -> Weight { + // Proof Size summary in bytes: + // Measured: `2915` + // Estimated: `5477` + // Minimum execution time: 22_641_000 picoseconds. + Weight::from_parts(23_343_000, 5477) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(912), added: 3387, mode: `MaxEncodedLen`) + /// Storage: `Referenda::DecidingCount` (r:1 w:0) + /// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `Referenda::TrackQueue` (r:1 w:1) + /// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`) + fn nudge_referendum_queued() -> Weight { + // Proof Size summary in bytes: + // Measured: `2919` + // Estimated: `5477` + // Minimum execution time: 26_603_000 picoseconds. + Weight::from_parts(27_682_000, 5477) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(912), added: 3387, mode: `MaxEncodedLen`) + /// Storage: `Referenda::DecidingCount` (r:1 w:0) + /// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `Referenda::TrackQueue` (r:1 w:1) + /// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`) + fn nudge_referendum_not_queued() -> Weight { + // Proof Size summary in bytes: + // Measured: `2939` + // Estimated: `5477` + // Minimum execution time: 26_237_000 picoseconds. + Weight::from_parts(27_787_000, 5477) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(912), added: 3387, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`) + fn nudge_referendum_no_deposit() -> Weight { + // Proof Size summary in bytes: + // Measured: `249` + // Estimated: `42428` + // Minimum execution time: 18_424_000 picoseconds. + Weight::from_parts(19_234_000, 42428) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(912), added: 3387, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`) + fn nudge_referendum_preparing() -> Weight { + // Proof Size summary in bytes: + // Measured: `285` + // Estimated: `42428` + // Minimum execution time: 19_023_000 picoseconds. + Weight::from_parts(19_380_000, 42428) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(912), added: 3387, mode: `MaxEncodedLen`) + fn nudge_referendum_timed_out() -> Weight { + // Proof Size summary in bytes: + // Measured: `194` + // Estimated: `4377` + // Minimum execution time: 12_124_000 picoseconds. + Weight::from_parts(12_590_000, 4377) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(912), added: 3387, mode: `MaxEncodedLen`) + /// Storage: `Referenda::DecidingCount` (r:1 w:1) + /// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`) + fn nudge_referendum_begin_deciding_failing() -> Weight { + // Proof Size summary in bytes: + // Measured: `285` + // Estimated: `42428` + // Minimum execution time: 24_904_000 picoseconds. + Weight::from_parts(25_716_000, 42428) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + } + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(912), added: 3387, mode: `MaxEncodedLen`) + /// Storage: `Referenda::DecidingCount` (r:1 w:1) + /// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`) + fn nudge_referendum_begin_deciding_passing() -> Weight { + // Proof Size summary in bytes: + // Measured: `285` + // Estimated: `42428` + // Minimum execution time: 26_571_000 picoseconds. + Weight::from_parts(27_162_000, 42428) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + } + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(912), added: 3387, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`) + fn nudge_referendum_begin_confirming() -> Weight { + // Proof Size summary in bytes: + // Measured: `338` + // Estimated: `42428` + // Minimum execution time: 22_209_000 picoseconds. + Weight::from_parts(22_640_000, 42428) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(912), added: 3387, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`) + fn nudge_referendum_end_confirming() -> Weight { + // Proof Size summary in bytes: + // Measured: `321` + // Estimated: `42428` + // Minimum execution time: 22_074_000 picoseconds. + Weight::from_parts(22_689_000, 42428) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(912), added: 3387, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`) + fn nudge_referendum_continue_not_confirming() -> Weight { + // Proof Size summary in bytes: + // Measured: `338` + // Estimated: `42428` + // Minimum execution time: 20_916_000 picoseconds. + Weight::from_parts(21_394_000, 42428) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(912), added: 3387, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`) + fn nudge_referendum_continue_confirming() -> Weight { + // Proof Size summary in bytes: + // Measured: `342` + // Estimated: `42428` + // Minimum execution time: 20_634_000 picoseconds. + Weight::from_parts(21_281_000, 42428) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(912), added: 3387, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:2 w:2) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Lookup` (r:1 w:1) + /// Proof: `Scheduler::Lookup` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + fn nudge_referendum_approved() -> Weight { + // Proof Size summary in bytes: + // Measured: `342` + // Estimated: `83866` + // Minimum execution time: 31_834_000 picoseconds. + Weight::from_parts(32_616_000, 83866) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) + } + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(912), added: 3387, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`) + fn nudge_referendum_rejected() -> Weight { + // Proof Size summary in bytes: + // Measured: `338` + // Estimated: `42428` + // Minimum execution time: 22_386_000 picoseconds. + Weight::from_parts(22_719_000, 42428) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:0) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(912), added: 3387, mode: `MaxEncodedLen`) + /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(79), added: 2554, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:0) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(79), added: 2554, mode: `MaxEncodedLen`) + /// Storage: `Referenda::MetadataOf` (r:0 w:1) + /// Proof: `Referenda::MetadataOf` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + fn set_some_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `338` + // Estimated: `4377` + // Minimum execution time: 18_081_000 picoseconds. + Weight::from_parts(18_780_000, 4377) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:0) + /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(912), added: 3387, mode: `MaxEncodedLen`) + /// Storage: `Referenda::MetadataOf` (r:1 w:1) + /// Proof: `Referenda::MetadataOf` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + fn clear_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `271` + // Estimated: `4377` + // Minimum execution time: 14_701_000 picoseconds. + Weight::from_parts(15_065_000, 4377) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } +} diff --git a/tracing/3001/runtime/common/src/weights/pallet_relay_storage_roots.rs b/tracing/3001/runtime/common/src/weights/pallet_relay_storage_roots.rs new file mode 100644 index 00000000..cc8cae5e --- /dev/null +++ b/tracing/3001/runtime/common/src/weights/pallet_relay_storage_roots.rs @@ -0,0 +1,64 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Autogenerated weights for `pallet_relay_storage_roots` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-05-27, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `ip-10-0-0-176`, CPU: `Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz` +//! WASM-EXECUTION: Compiled, CHAIN: Some("moonbase-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/production/moonbeam +// benchmark +// pallet +// --chain=moonbase-dev +// --steps=50 +// --repeat=20 +// --pallet=pallet_relay_storage_roots +// --extrinsic=* +// --wasm-execution=compiled +// --header=./file_header.txt +// --template=./benchmarking/frame-weight-template.hbs +// --output=./runtime/common/src/weights/ + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; +use sp_std::marker::PhantomData; + +/// Weights for `pallet_relay_storage_roots`. +pub struct WeightInfo(PhantomData); +impl pallet_relay_storage_roots::WeightInfo for WeightInfo { + /// Storage: `ParachainSystem::ValidationData` (r:1 w:0) + /// Proof: `ParachainSystem::ValidationData` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `RelayStorageRoots::RelayStorageRoot` (r:1 w:2) + /// Proof: `RelayStorageRoots::RelayStorageRoot` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + /// Storage: `RelayStorageRoots::RelayStorageRootKeys` (r:1 w:1) + /// Proof: `RelayStorageRoots::RelayStorageRootKeys` (`max_values`: Some(1), `max_size`: Some(121), added: 616, mode: `MaxEncodedLen`) + fn set_relay_storage_root() -> Weight { + // Proof Size summary in bytes: + // Measured: `972` + // Estimated: `3509` + // Minimum execution time: 16_977_000 picoseconds. + Weight::from_parts(17_603_000, 3509) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + } +} diff --git a/tracing/3001/runtime/common/src/weights/pallet_scheduler.rs b/tracing/3001/runtime/common/src/weights/pallet_scheduler.rs new file mode 100644 index 00000000..fac49422 --- /dev/null +++ b/tracing/3001/runtime/common/src/weights/pallet_scheduler.rs @@ -0,0 +1,196 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Autogenerated weights for `pallet_scheduler` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-05-27, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `ip-10-0-0-176`, CPU: `Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz` +//! WASM-EXECUTION: Compiled, CHAIN: Some("moonbase-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/production/moonbeam +// benchmark +// pallet +// --chain=moonbase-dev +// --steps=50 +// --repeat=20 +// --pallet=pallet_scheduler +// --extrinsic=* +// --wasm-execution=compiled +// --header=./file_header.txt +// --template=./benchmarking/frame-weight-template.hbs +// --output=./runtime/common/src/weights/ + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; +use sp_std::marker::PhantomData; + +/// Weights for `pallet_scheduler`. +pub struct WeightInfo(PhantomData); +impl pallet_scheduler::WeightInfo for WeightInfo { + /// Storage: `Scheduler::IncompleteSince` (r:1 w:1) + /// Proof: `Scheduler::IncompleteSince` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + fn service_agendas_base() -> Weight { + // Proof Size summary in bytes: + // Measured: `31` + // Estimated: `1489` + // Minimum execution time: 2_994_000 picoseconds. + Weight::from_parts(3_114_000, 1489) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`) + /// The range of component `s` is `[0, 50]`. + fn service_agenda_base(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `78 + s * (177 ±0)` + // Estimated: `42428` + // Minimum execution time: 3_429_000 picoseconds. + Weight::from_parts(6_215_144, 42428) + // Standard Error: 1_440 + .saturating_add(Weight::from_parts(362_695, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + fn service_task_base() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_200_000 picoseconds. + Weight::from_parts(3_375_000, 0) + } + /// Storage: `Preimage::PreimageFor` (r:1 w:1) + /// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `Measured`) + /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(79), added: 2554, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(79), added: 2554, mode: `MaxEncodedLen`) + /// The range of component `s` is `[128, 4194304]`. + fn service_task_fetched(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `179 + s * (1 ±0)` + // Estimated: `3644 + s * (1 ±0)` + // Minimum execution time: 17_600_000 picoseconds. + Weight::from_parts(17_784_000, 3644) + // Standard Error: 4 + .saturating_add(Weight::from_parts(1_330, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + .saturating_add(Weight::from_parts(0, 1).saturating_mul(s.into())) + } + /// Storage: `Scheduler::Lookup` (r:0 w:1) + /// Proof: `Scheduler::Lookup` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + fn service_task_named() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 4_563_000 picoseconds. + Weight::from_parts(4_802_000, 0) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + fn service_task_periodic() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_114_000 picoseconds. + Weight::from_parts(3_341_000, 0) + } + /// Storage: `MaintenanceMode::MaintenanceMode` (r:1 w:0) + /// Proof: `MaintenanceMode::MaintenanceMode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn execute_dispatch_signed() -> Weight { + // Proof Size summary in bytes: + // Measured: `42` + // Estimated: `1527` + // Minimum execution time: 4_477_000 picoseconds. + Weight::from_parts(4_552_000, 1527) + .saturating_add(T::DbWeight::get().reads(1_u64)) + } + fn execute_dispatch_unsigned() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_116_000 picoseconds. + Weight::from_parts(2_277_000, 0) + } + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`) + /// The range of component `s` is `[0, 49]`. + fn schedule(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `78 + s * (177 ±0)` + // Estimated: `42428` + // Minimum execution time: 9_817_000 picoseconds. + Weight::from_parts(12_768_005, 42428) + // Standard Error: 1_424 + .saturating_add(Weight::from_parts(407_640, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Lookup` (r:0 w:1) + /// Proof: `Scheduler::Lookup` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// The range of component `s` is `[1, 50]`. + fn cancel(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `78 + s * (177 ±0)` + // Estimated: `42428` + // Minimum execution time: 13_667_000 picoseconds. + Weight::from_parts(13_347_362, 42428) + // Standard Error: 1_303 + .saturating_add(Weight::from_parts(624_965, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `Scheduler::Lookup` (r:1 w:1) + /// Proof: `Scheduler::Lookup` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`) + /// The range of component `s` is `[0, 49]`. + fn schedule_named(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `255 + s * (185 ±0)` + // Estimated: `42428` + // Minimum execution time: 13_039_000 picoseconds. + Weight::from_parts(16_557_684, 42428) + // Standard Error: 2_263 + .saturating_add(Weight::from_parts(459_921, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `Scheduler::Lookup` (r:1 w:1) + /// Proof: `Scheduler::Lookup` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`) + /// The range of component `s` is `[1, 50]`. + fn cancel_named(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `281 + s * (185 ±0)` + // Estimated: `42428` + // Minimum execution time: 15_650_000 picoseconds. + Weight::from_parts(16_039_943, 42428) + // Standard Error: 1_501 + .saturating_add(Weight::from_parts(628_223, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } +} diff --git a/tracing/3001/runtime/common/src/weights/pallet_sudo.rs b/tracing/3001/runtime/common/src/weights/pallet_sudo.rs new file mode 100644 index 00000000..5b500942 --- /dev/null +++ b/tracing/3001/runtime/common/src/weights/pallet_sudo.rs @@ -0,0 +1,91 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Autogenerated weights for `pallet_sudo` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-05-27, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `ip-10-0-0-176`, CPU: `Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz` +//! WASM-EXECUTION: Compiled, CHAIN: Some("moonbase-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/production/moonbeam +// benchmark +// pallet +// --chain=moonbase-dev +// --steps=50 +// --repeat=20 +// --pallet=pallet_sudo +// --extrinsic=* +// --wasm-execution=compiled +// --header=./file_header.txt +// --template=./benchmarking/frame-weight-template.hbs +// --output=./runtime/common/src/weights/ + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; +use sp_std::marker::PhantomData; + +/// Weights for `pallet_sudo`. +pub struct WeightInfo(PhantomData); +impl pallet_sudo::WeightInfo for WeightInfo { + /// Storage: `Sudo::Key` (r:1 w:1) + /// Proof: `Sudo::Key` (`max_values`: Some(1), `max_size`: Some(20), added: 515, mode: `MaxEncodedLen`) + fn set_key() -> Weight { + // Proof Size summary in bytes: + // Measured: `153` + // Estimated: `1505` + // Minimum execution time: 8_879_000 picoseconds. + Weight::from_parts(9_295_000, 1505) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Sudo::Key` (r:1 w:0) + /// Proof: `Sudo::Key` (`max_values`: Some(1), `max_size`: Some(20), added: 515, mode: `MaxEncodedLen`) + fn sudo() -> Weight { + // Proof Size summary in bytes: + // Measured: `153` + // Estimated: `1505` + // Minimum execution time: 9_828_000 picoseconds. + Weight::from_parts(10_287_000, 1505) + .saturating_add(T::DbWeight::get().reads(1_u64)) + } + /// Storage: `Sudo::Key` (r:1 w:0) + /// Proof: `Sudo::Key` (`max_values`: Some(1), `max_size`: Some(20), added: 515, mode: `MaxEncodedLen`) + fn sudo_as() -> Weight { + // Proof Size summary in bytes: + // Measured: `153` + // Estimated: `1505` + // Minimum execution time: 9_922_000 picoseconds. + Weight::from_parts(10_260_000, 1505) + .saturating_add(T::DbWeight::get().reads(1_u64)) + } + /// Storage: `Sudo::Key` (r:1 w:1) + /// Proof: `Sudo::Key` (`max_values`: Some(1), `max_size`: Some(20), added: 515, mode: `MaxEncodedLen`) + fn remove_key() -> Weight { + // Proof Size summary in bytes: + // Measured: `153` + // Estimated: `1505` + // Minimum execution time: 8_202_000 picoseconds. + Weight::from_parts(8_419_000, 1505) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } +} diff --git a/tracing/3001/runtime/common/src/weights/pallet_timestamp.rs b/tracing/3001/runtime/common/src/weights/pallet_timestamp.rs new file mode 100644 index 00000000..b26e6275 --- /dev/null +++ b/tracing/3001/runtime/common/src/weights/pallet_timestamp.rs @@ -0,0 +1,67 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Autogenerated weights for `pallet_timestamp` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-05-27, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `ip-10-0-0-176`, CPU: `Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz` +//! WASM-EXECUTION: Compiled, CHAIN: Some("moonbase-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/production/moonbeam +// benchmark +// pallet +// --chain=moonbase-dev +// --steps=50 +// --repeat=20 +// --pallet=pallet_timestamp +// --extrinsic=* +// --wasm-execution=compiled +// --header=./file_header.txt +// --template=./benchmarking/frame-weight-template.hbs +// --output=./runtime/common/src/weights/ + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; +use sp_std::marker::PhantomData; + +/// Weights 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`) + fn set() -> Weight { + // Proof Size summary in bytes: + // Measured: `6` + // Estimated: `1493` + // Minimum execution time: 4_500_000 picoseconds. + Weight::from_parts(4_649_000, 1493) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + fn on_finalize() -> Weight { + // Proof Size summary in bytes: + // Measured: `57` + // Estimated: `0` + // Minimum execution time: 3_322_000 picoseconds. + Weight::from_parts(3_407_000, 0) + } +} diff --git a/tracing/3001/runtime/common/src/weights/pallet_treasury.rs b/tracing/3001/runtime/common/src/weights/pallet_treasury.rs new file mode 100644 index 00000000..0e57bd25 --- /dev/null +++ b/tracing/3001/runtime/common/src/weights/pallet_treasury.rs @@ -0,0 +1,189 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Autogenerated weights for `pallet_treasury` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-05-27, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `ip-10-0-0-176`, CPU: `Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz` +//! WASM-EXECUTION: Compiled, CHAIN: Some("moonbase-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/production/moonbeam +// benchmark +// pallet +// --chain=moonbase-dev +// --steps=50 +// --repeat=20 +// --pallet=pallet_treasury +// --extrinsic=* +// --wasm-execution=compiled +// --header=./file_header.txt +// --template=./benchmarking/frame-weight-template.hbs +// --output=./runtime/common/src/weights/ + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; +use sp_std::marker::PhantomData; + +/// Weights for `pallet_treasury`. +pub struct WeightInfo(PhantomData); +impl pallet_treasury::WeightInfo for WeightInfo { + /// Storage: `Treasury::ProposalCount` (r:1 w:1) + /// Proof: `Treasury::ProposalCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Treasury::Approvals` (r:1 w:1) + /// Proof: `Treasury::Approvals` (`max_values`: Some(1), `max_size`: Some(402), added: 897, mode: `MaxEncodedLen`) + /// Storage: `Treasury::Proposals` (r:0 w:1) + /// Proof: `Treasury::Proposals` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + fn spend_local() -> Weight { + // Proof Size summary in bytes: + // Measured: `180` + // Estimated: `1887` + // Minimum execution time: 11_692_000 picoseconds. + Weight::from_parts(12_080_000, 1887) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + } + /// Storage: `Treasury::ProposalCount` (r:1 w:1) + /// Proof: `Treasury::ProposalCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Treasury::Proposals` (r:0 w:1) + /// Proof: `Treasury::Proposals` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + fn propose_spend() -> Weight { + // Proof Size summary in bytes: + // Measured: `479` + // Estimated: `1489` + // Minimum execution time: 24_962_000 picoseconds. + Weight::from_parts(25_880_000, 1489) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `Treasury::Proposals` (r:1 w:1) + /// Proof: `Treasury::Proposals` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + fn reject_proposal() -> Weight { + // Proof Size summary in bytes: + // Measured: `775` + // Estimated: `6172` + // Minimum execution time: 43_078_000 picoseconds. + Weight::from_parts(44_098_000, 6172) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + } + /// Storage: `Treasury::Proposals` (r:1 w:0) + /// Proof: `Treasury::Proposals` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// Storage: `Treasury::Approvals` (r:1 w:1) + /// Proof: `Treasury::Approvals` (`max_values`: Some(1), `max_size`: Some(402), added: 897, mode: `MaxEncodedLen`) + /// The range of component `p` is `[0, 99]`. + fn approve_proposal(p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `608 + p * (8 ±0)` + // Estimated: `3549` + // Minimum execution time: 8_674_000 picoseconds. + Weight::from_parts(11_503_723, 3549) + // Standard Error: 1_454 + .saturating_add(Weight::from_parts(81_836, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Treasury::Approvals` (r:1 w:1) + /// Proof: `Treasury::Approvals` (`max_values`: Some(1), `max_size`: Some(402), added: 897, mode: `MaxEncodedLen`) + fn remove_approval() -> Weight { + // Proof Size summary in bytes: + // Measured: `265` + // Estimated: `1887` + // Minimum execution time: 6_987_000 picoseconds. + Weight::from_parts(7_219_000, 1887) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `System::Account` (r:1 w:0) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + /// Storage: `Treasury::Deactivated` (r:1 w:1) + /// Proof: `Treasury::Deactivated` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `Balances::InactiveIssuance` (r:1 w:1) + /// Proof: `Balances::InactiveIssuance` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `Treasury::Approvals` (r:1 w:1) + /// Proof: `Treasury::Approvals` (`max_values`: Some(1), `max_size`: Some(402), added: 897, mode: `MaxEncodedLen`) + /// Storage: `Treasury::Proposals` (r:99 w:0) + /// Proof: `Treasury::Proposals` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`) + /// The range of component `p` is `[0, 99]`. + fn on_initialize_proposals(p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `389 + p * (97 ±0)` + // Estimated: `3581 + p * (2559 ±0)` + // Minimum execution time: 18_944_000 picoseconds. + Weight::from_parts(20_110_581, 3581) + // Standard Error: 6_715 + .saturating_add(Weight::from_parts(3_250_530, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into()))) + .saturating_add(T::DbWeight::get().writes(3_u64)) + .saturating_add(Weight::from_parts(0, 2559).saturating_mul(p.into())) + } + /// Storage: `Treasury::SpendCount` (r:1 w:1) + /// Proof: `Treasury::SpendCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Treasury::Spends` (r:0 w:1) + /// Proof: `Treasury::Spends` (`max_values`: None, `max_size`: Some(57), added: 2532, mode: `MaxEncodedLen`) + fn spend() -> Weight { + // Proof Size summary in bytes: + // Measured: `180` + // Estimated: `1489` + // Minimum execution time: 10_353_000 picoseconds. + Weight::from_parts(10_640_000, 1489) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `Treasury::Spends` (r:1 w:1) + /// Proof: `Treasury::Spends` (`max_values`: None, `max_size`: Some(57), added: 2532, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + fn payout() -> Weight { + // Proof Size summary in bytes: + // Measured: `586` + // Estimated: `6172` + // Minimum execution time: 50_756_000 picoseconds. + Weight::from_parts(51_640_000, 6172) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + } + /// Storage: `Treasury::Spends` (r:1 w:1) + /// Proof: `Treasury::Spends` (`max_values`: None, `max_size`: Some(57), added: 2532, mode: `MaxEncodedLen`) + fn check_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `286` + // Estimated: `3522` + // Minimum execution time: 12_168_000 picoseconds. + Weight::from_parts(12_607_000, 3522) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Treasury::Spends` (r:1 w:1) + /// Proof: `Treasury::Spends` (`max_values`: None, `max_size`: Some(57), added: 2532, mode: `MaxEncodedLen`) + fn void_spend() -> Weight { + // Proof Size summary in bytes: + // Measured: `286` + // Estimated: `3522` + // Minimum execution time: 11_035_000 picoseconds. + Weight::from_parts(11_246_000, 3522) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } +} diff --git a/tracing/3001/runtime/common/src/weights/pallet_utility.rs b/tracing/3001/runtime/common/src/weights/pallet_utility.rs new file mode 100644 index 00000000..272e628c --- /dev/null +++ b/tracing/3001/runtime/common/src/weights/pallet_utility.rs @@ -0,0 +1,105 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Autogenerated weights for `pallet_utility` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-05-27, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `ip-10-0-0-176`, CPU: `Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz` +//! WASM-EXECUTION: Compiled, CHAIN: Some("moonbase-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/production/moonbeam +// benchmark +// pallet +// --chain=moonbase-dev +// --steps=50 +// --repeat=20 +// --pallet=pallet_utility +// --extrinsic=* +// --wasm-execution=compiled +// --header=./file_header.txt +// --template=./benchmarking/frame-weight-template.hbs +// --output=./runtime/common/src/weights/ + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; +use sp_std::marker::PhantomData; + +/// Weights for `pallet_utility`. +pub struct WeightInfo(PhantomData); +impl pallet_utility::WeightInfo for WeightInfo { + /// Storage: `MaintenanceMode::MaintenanceMode` (r:1 w:0) + /// Proof: `MaintenanceMode::MaintenanceMode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// The range of component `c` is `[0, 1000]`. + fn batch(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `42` + // Estimated: `1527` + // Minimum execution time: 4_285_000 picoseconds. + Weight::from_parts(8_524_536, 1527) + // Standard Error: 3_296 + .saturating_add(Weight::from_parts(4_066_106, 0).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + } + /// Storage: `MaintenanceMode::MaintenanceMode` (r:1 w:0) + /// Proof: `MaintenanceMode::MaintenanceMode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn as_derivative() -> Weight { + // Proof Size summary in bytes: + // Measured: `42` + // Estimated: `1527` + // Minimum execution time: 6_902_000 picoseconds. + Weight::from_parts(7_197_000, 1527) + .saturating_add(T::DbWeight::get().reads(1_u64)) + } + /// Storage: `MaintenanceMode::MaintenanceMode` (r:1 w:0) + /// Proof: `MaintenanceMode::MaintenanceMode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// The range of component `c` is `[0, 1000]`. + fn batch_all(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `42` + // Estimated: `1527` + // Minimum execution time: 4_390_000 picoseconds. + Weight::from_parts(10_662_650, 1527) + // Standard Error: 3_409 + .saturating_add(Weight::from_parts(4_252_433, 0).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + } + fn dispatch_as() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 6_304_000 picoseconds. + Weight::from_parts(6_537_000, 0) + } + /// Storage: `MaintenanceMode::MaintenanceMode` (r:1 w:0) + /// Proof: `MaintenanceMode::MaintenanceMode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// The range of component `c` is `[0, 1000]`. + fn force_batch(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `42` + // Estimated: `1527` + // Minimum execution time: 4_211_000 picoseconds. + Weight::from_parts(12_289_661, 1527) + // Standard Error: 3_653 + .saturating_add(Weight::from_parts(4_045_685, 0).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + } +} diff --git a/tracing/3001/runtime/common/src/weights/pallet_whitelist.rs b/tracing/3001/runtime/common/src/weights/pallet_whitelist.rs new file mode 100644 index 00000000..a3f6c128 --- /dev/null +++ b/tracing/3001/runtime/common/src/weights/pallet_whitelist.rs @@ -0,0 +1,118 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Autogenerated weights for `pallet_whitelist` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-05-27, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `ip-10-0-0-176`, CPU: `Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz` +//! WASM-EXECUTION: Compiled, CHAIN: Some("moonbase-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/production/moonbeam +// benchmark +// pallet +// --chain=moonbase-dev +// --steps=50 +// --repeat=20 +// --pallet=pallet_whitelist +// --extrinsic=* +// --wasm-execution=compiled +// --header=./file_header.txt +// --template=./benchmarking/frame-weight-template.hbs +// --output=./runtime/common/src/weights/ + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; +use sp_std::marker::PhantomData; + +/// Weights for `pallet_whitelist`. +pub struct WeightInfo(PhantomData); +impl pallet_whitelist::WeightInfo for WeightInfo { + /// Storage: `Whitelist::WhitelistedCall` (r:1 w:1) + /// Proof: `Whitelist::WhitelistedCall` (`max_values`: None, `max_size`: Some(40), added: 2515, mode: `MaxEncodedLen`) + /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(79), added: 2554, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(79), added: 2554, mode: `MaxEncodedLen`) + fn whitelist_call() -> Weight { + // Proof Size summary in bytes: + // Measured: `46` + // Estimated: `3544` + // Minimum execution time: 16_440_000 picoseconds. + Weight::from_parts(16_845_000, 3544) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `Whitelist::WhitelistedCall` (r:1 w:1) + /// Proof: `Whitelist::WhitelistedCall` (`max_values`: None, `max_size`: Some(40), added: 2515, mode: `MaxEncodedLen`) + /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(79), added: 2554, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(79), added: 2554, mode: `MaxEncodedLen`) + fn remove_whitelisted_call() -> Weight { + // Proof Size summary in bytes: + // Measured: `175` + // Estimated: `3544` + // Minimum execution time: 16_400_000 picoseconds. + Weight::from_parts(16_681_000, 3544) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `Whitelist::WhitelistedCall` (r:1 w:1) + /// Proof: `Whitelist::WhitelistedCall` (`max_values`: None, `max_size`: Some(40), added: 2515, mode: `MaxEncodedLen`) + /// Storage: `Preimage::PreimageFor` (r:1 w:1) + /// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `Measured`) + /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(79), added: 2554, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(79), added: 2554, mode: `MaxEncodedLen`) + /// The range of component `n` is `[1, 4194294]`. + fn dispatch_whitelisted_call(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `251 + n * (1 ±0)` + // Estimated: `3715 + n * (1 ±0)` + // Minimum execution time: 27_152_000 picoseconds. + Weight::from_parts(27_826_000, 3715) + // Standard Error: 6 + .saturating_add(Weight::from_parts(1_342, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) + } + /// Storage: `Whitelist::WhitelistedCall` (r:1 w:1) + /// Proof: `Whitelist::WhitelistedCall` (`max_values`: None, `max_size`: Some(40), added: 2515, mode: `MaxEncodedLen`) + /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(79), added: 2554, mode: `MaxEncodedLen`) + /// Storage: `Preimage::RequestStatusFor` (r:1 w:1) + /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(79), added: 2554, mode: `MaxEncodedLen`) + /// The range of component `n` is `[1, 10000]`. + fn dispatch_whitelisted_call_with_preimage(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `175` + // Estimated: `3544` + // Minimum execution time: 20_325_000 picoseconds. + Weight::from_parts(20_660_832, 3544) + // Standard Error: 2 + .saturating_add(Weight::from_parts(1_481, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } +} diff --git a/tracing/3001/runtime/common/src/weights/pallet_xcm.rs b/tracing/3001/runtime/common/src/weights/pallet_xcm.rs new file mode 100644 index 00000000..b183e48a --- /dev/null +++ b/tracing/3001/runtime/common/src/weights/pallet_xcm.rs @@ -0,0 +1,325 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Autogenerated weights for `pallet_xcm` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-05-27, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `ip-10-0-0-176`, CPU: `Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz` +//! WASM-EXECUTION: Compiled, CHAIN: Some("moonbase-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/production/moonbeam +// benchmark +// pallet +// --chain=moonbase-dev +// --steps=50 +// --repeat=20 +// --pallet=pallet_xcm +// --extrinsic=* +// --wasm-execution=compiled +// --header=./file_header.txt +// --template=./benchmarking/frame-weight-template.hbs +// --output=./runtime/common/src/weights/ + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; +use sp_std::marker::PhantomData; + +/// Weights for `pallet_xcm`. +pub struct WeightInfo(PhantomData); +impl pallet_xcm::WeightInfo for WeightInfo { + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn send() -> Weight { + // Proof Size summary in bytes: + // Measured: `145` + // Estimated: `3610` + // Minimum execution time: 18_837_000 picoseconds. + Weight::from_parts(19_560_000, 3610) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `Benchmark::Override` (r:0 w:0) + /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn teleport_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) + } + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::RelevantMessagingState` (r:1 w:0) + /// Proof: `ParachainSystem::RelevantMessagingState` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:1) + /// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `XcmpQueue::OutboundXcmpMessages` (r:0 w:1) + /// Proof: `XcmpQueue::OutboundXcmpMessages` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn reserve_transfer_assets() -> Weight { + // Proof Size summary in bytes: + // Measured: `486` + // Estimated: `3951` + // Minimum execution time: 89_416_000 picoseconds. + Weight::from_parts(91_918_000, 3951) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) + } + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn transfer_assets() -> Weight { + // Proof Size summary in bytes: + // Measured: `217` + // Estimated: `3682` + // Minimum execution time: 75_719_000 picoseconds. + Weight::from_parts(77_252_000, 3682) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + } + fn execute() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 10_453_000 picoseconds. + Weight::from_parts(10_780_000, 0) + } + /// Storage: `PolkadotXcm::SupportedVersion` (r:0 w:1) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn force_xcm_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 6_463_000 picoseconds. + Weight::from_parts(6_681_000, 0) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:0 w:1) + /// Proof: `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_100_000 picoseconds. + Weight::from_parts(2_244_000, 0) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1) + /// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::Queries` (r:0 w:1) + /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn force_subscribe_version_notify() -> Weight { + // Proof Size summary in bytes: + // Measured: `145` + // Estimated: `3610` + // Minimum execution time: 24_145_000 picoseconds. + Weight::from_parts(25_289_000, 3610) + .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(T::DbWeight::get().writes(5_u64)) + } + /// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::Queries` (r:0 w:1) + /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn force_unsubscribe_version_notify() -> Weight { + // Proof Size summary in bytes: + // Measured: `328` + // Estimated: `3793` + // Minimum execution time: 25_713_000 picoseconds. + Weight::from_parts(26_378_000, 3793) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) + } + /// Storage: `PolkadotXcm::XcmExecutionSuspended` (r:0 w:1) + /// Proof: `PolkadotXcm::XcmExecutionSuspended` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn force_suspension() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 1_988_000 picoseconds. + Weight::from_parts(2_139_000, 0) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `PolkadotXcm::SupportedVersion` (r:5 w:2) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn migrate_supported_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `125` + // Estimated: `13490` + // Minimum execution time: 26_082_000 picoseconds. + Weight::from_parts(26_659_000, 13490) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `PolkadotXcm::VersionNotifiers` (r:5 w:2) + /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn migrate_version_notifiers() -> Weight { + // Proof Size summary in bytes: + // Measured: `129` + // Estimated: `13494` + // Minimum execution time: 25_973_000 picoseconds. + Weight::from_parts(26_466_000, 13494) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:6 w:0) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn already_notified_target() -> Weight { + // Proof Size summary in bytes: + // Measured: `142` + // Estimated: `15982` + // Minimum execution time: 31_868_000 picoseconds. + Weight::from_parts(32_482_000, 15982) + .saturating_add(T::DbWeight::get().reads(6_u64)) + } + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:2 w:1) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn notify_current_targets() -> Weight { + // Proof Size summary in bytes: + // Measured: `212` + // Estimated: `6152` + // Minimum execution time: 25_874_000 picoseconds. + Weight::from_parts(26_450_000, 6152) + .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + } + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:0) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn notify_target_migration_fail() -> Weight { + // Proof Size summary in bytes: + // Measured: `172` + // Estimated: `11062` + // Minimum execution time: 19_111_000 picoseconds. + Weight::from_parts(19_552_000, 11062) + .saturating_add(T::DbWeight::get().reads(4_u64)) + } + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:2) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn migrate_version_notify_targets() -> Weight { + // Proof Size summary in bytes: + // Measured: `136` + // Estimated: `13501` + // Minimum execution time: 26_602_000 picoseconds. + Weight::from_parts(27_286_000, 13501) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:2) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn migrate_and_notify_old_targets() -> Weight { + // Proof Size summary in bytes: + // Measured: `212` + // Estimated: `13577` + // Minimum execution time: 40_672_000 picoseconds. + Weight::from_parts(41_149_000, 13577) + .saturating_add(T::DbWeight::get().reads(10_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) + } + /// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1) + /// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::Queries` (r:0 w:1) + /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn new_query() -> Weight { + // Proof Size summary in bytes: + // Measured: `69` + // Estimated: `1554` + // Minimum execution time: 4_487_000 picoseconds. + Weight::from_parts(4_730_000, 1554) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `PolkadotXcm::Queries` (r:1 w:1) + /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn take_response() -> Weight { + // Proof Size summary in bytes: + // Measured: `7706` + // Estimated: `11171` + // Minimum execution time: 25_894_000 picoseconds. + Weight::from_parts(26_192_000, 11171) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } +} diff --git a/tracing/3001/runtime/common/src/weights/pallet_xcm_transactor.rs b/tracing/3001/runtime/common/src/weights/pallet_xcm_transactor.rs new file mode 100644 index 00000000..dbcf1ede --- /dev/null +++ b/tracing/3001/runtime/common/src/weights/pallet_xcm_transactor.rs @@ -0,0 +1,192 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Autogenerated weights for `pallet_xcm_transactor` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-05-27, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `ip-10-0-0-176`, CPU: `Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz` +//! WASM-EXECUTION: Compiled, CHAIN: Some("moonbase-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/production/moonbeam +// benchmark +// pallet +// --chain=moonbase-dev +// --steps=50 +// --repeat=20 +// --pallet=pallet_xcm_transactor +// --extrinsic=* +// --wasm-execution=compiled +// --header=./file_header.txt +// --template=./benchmarking/frame-weight-template.hbs +// --output=./runtime/common/src/weights/ + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; +use sp_std::marker::PhantomData; + +/// Weights for `pallet_xcm_transactor`. +pub struct WeightInfo(PhantomData); +impl pallet_xcm_transactor::WeightInfo for WeightInfo { + /// Storage: `XcmTransactor::IndexToAccount` (r:1 w:1) + /// Proof: `XcmTransactor::IndexToAccount` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn register() -> Weight { + // Proof Size summary in bytes: + // Measured: `114` + // Estimated: `3579` + // Minimum execution time: 9_597_000 picoseconds. + Weight::from_parts(9_924_000, 3579) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `XcmTransactor::IndexToAccount` (r:0 w:1) + /// Proof: `XcmTransactor::IndexToAccount` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn deregister() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 5_707_000 picoseconds. + Weight::from_parts(5_973_000, 0) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `XcmTransactor::TransactInfoWithWeightLimit` (r:0 w:1) + /// Proof: `XcmTransactor::TransactInfoWithWeightLimit` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn set_transact_info() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_118_000 picoseconds. + Weight::from_parts(7_356_000, 0) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `XcmTransactor::TransactInfoWithWeightLimit` (r:0 w:1) + /// Proof: `XcmTransactor::TransactInfoWithWeightLimit` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn remove_transact_info() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 6_362_000 picoseconds. + Weight::from_parts(6_609_000, 0) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `XcmTransactor::DestinationAssetFeePerSecond` (r:0 w:1) + /// Proof: `XcmTransactor::DestinationAssetFeePerSecond` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn set_fee_per_second() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 6_443_000 picoseconds. + Weight::from_parts(6_670_000, 0) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `AssetManager::AssetIdType` (r:1 w:0) + /// Proof: `AssetManager::AssetIdType` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `XcmTransactor::IndexToAccount` (r:1 w:0) + /// Proof: `XcmTransactor::IndexToAccount` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `XcmTransactor::RelayIndices` (r:1 w:0) + /// Proof: `XcmTransactor::RelayIndices` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `XcmTransactor::TransactInfoWithWeightLimit` (r:1 w:0) + /// Proof: `XcmTransactor::TransactInfoWithWeightLimit` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `XcmTransactor::DestinationAssetFeePerSecond` (r:1 w:0) + /// Proof: `XcmTransactor::DestinationAssetFeePerSecond` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AssetManager::AssetTypeId` (r:1 w:0) + /// Proof: `AssetManager::AssetTypeId` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(174), added: 2649, mode: `MaxEncodedLen`) + fn transact_through_derivative() -> Weight { + // Proof Size summary in bytes: + // Measured: `489` + // Estimated: `3954` + // Minimum execution time: 30_458_000 picoseconds. + Weight::from_parts(31_176_000, 3954) + .saturating_add(T::DbWeight::get().reads(7_u64)) + } + /// Storage: `AssetManager::AssetIdType` (r:1 w:0) + /// Proof: `AssetManager::AssetIdType` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `XcmTransactor::TransactInfoWithWeightLimit` (r:1 w:0) + /// Proof: `XcmTransactor::TransactInfoWithWeightLimit` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `XcmTransactor::DestinationAssetFeePerSecond` (r:1 w:0) + /// Proof: `XcmTransactor::DestinationAssetFeePerSecond` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `AssetManager::AssetTypeId` (r:1 w:0) + /// Proof: `AssetManager::AssetTypeId` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Assets::Asset` (r:1 w:0) + /// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(174), added: 2649, mode: `MaxEncodedLen`) + fn transact_through_sovereign() -> Weight { + // Proof Size summary in bytes: + // Measured: `423` + // Estimated: `3888` + // Minimum execution time: 22_713_000 picoseconds. + Weight::from_parts(23_258_000, 3888) + .saturating_add(T::DbWeight::get().reads(5_u64)) + } + /// Storage: `AssetManager::AssetIdType` (r:1 w:0) + /// Proof: `AssetManager::AssetIdType` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `XcmTransactor::TransactInfoWithWeightLimit` (r:1 w:0) + /// Proof: `XcmTransactor::TransactInfoWithWeightLimit` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `XcmTransactor::DestinationAssetFeePerSecond` (r:1 w:0) + /// Proof: `XcmTransactor::DestinationAssetFeePerSecond` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn transact_through_signed() -> Weight { + // Proof Size summary in bytes: + // Measured: `467` + // Estimated: `3932` + // Minimum execution time: 38_097_000 picoseconds. + Weight::from_parts(38_892_000, 3932) + .saturating_add(T::DbWeight::get().reads(8_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `XcmTransactor::RelayIndices` (r:1 w:0) + /// Proof: `XcmTransactor::RelayIndices` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `AssetManager::AssetIdType` (r:1 w:0) + /// Proof: `AssetManager::AssetIdType` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `XcmTransactor::TransactInfoWithWeightLimit` (r:1 w:0) + /// Proof: `XcmTransactor::TransactInfoWithWeightLimit` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `XcmTransactor::DestinationAssetFeePerSecond` (r:1 w:0) + /// Proof: `XcmTransactor::DestinationAssetFeePerSecond` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn hrmp_manage() -> Weight { + // Proof Size summary in bytes: + // Measured: `471` + // Estimated: `3936` + // Minimum execution time: 40_918_000 picoseconds. + Weight::from_parts(42_238_000, 3936) + .saturating_add(T::DbWeight::get().reads(9_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } +} diff --git a/tracing/3001/runtime/moonbase/Cargo.toml b/tracing/3001/runtime/moonbase/Cargo.toml new file mode 100644 index 00000000..2b02064a --- /dev/null +++ b/tracing/3001/runtime/moonbase/Cargo.toml @@ -0,0 +1,422 @@ +[package] +authors = { workspace = true } +build = "build.rs" +description = "Moonbase Runtime" +edition = "2021" +homepage = "https://moonbeam.network" +license = "GPL-3.0-only" +name = "moonbase-runtime" +version = "0.8.4" + +[dependencies] +hex-literal = { workspace = true, optional = true } +log = { workspace = true } +num_enum = { workspace = true } +rlp = { workspace = true, optional = true } +serde = { workspace = true, features = ["derive"] } +sha3 = { workspace = true, optional = true } +smallvec = { workspace = true } +strum = { workspace = true } +strum_macros = { workspace = true } + +# Moonbeam +account = { workspace = true } +moonbeam-core-primitives = { workspace = true } +moonbeam-relay-encoder = { workspace = true } +moonbeam-runtime-common = { workspace = true } +precompile-utils = { workspace = true } +session-keys-primitives = { workspace = true } +xcm-primitives = { workspace = true } + +# Moonbeam pallets +moonbeam-xcm-benchmarks = { workspace = true } +pallet-asset-manager = { workspace = true } +pallet-author-mapping = { workspace = true } +pallet-crowdloan-rewards = { workspace = true } +pallet-erc20-xcm-bridge = { workspace = true } +pallet-ethereum-xcm = { workspace = true } +pallet-evm-chain-id = { workspace = true } +pallet-maintenance-mode = { workspace = true, features = ["xcm-support"] } +pallet-migrations = { workspace = true } +pallet-moonbeam-lazy-migrations = { workspace = true } +pallet-moonbeam-orbiters = { workspace = true } +pallet-parachain-staking = { workspace = true } +pallet-precompile-benchmarks = { workspace = true } +pallet-proxy-genesis-companion = { workspace = true } +pallet-randomness = { workspace = true } +pallet-xcm-transactor = { workspace = true } + +# Moonbeam precompiles +pallet-evm-precompile-author-mapping = { workspace = true } +pallet-evm-precompile-balances-erc20 = { workspace = true } +pallet-evm-precompile-batch = { workspace = true } +pallet-evm-precompile-call-permit = { workspace = true } +pallet-evm-precompile-collective = { workspace = true } +pallet-evm-precompile-conviction-voting = { workspace = true } +pallet-evm-precompile-crowdloan-rewards = { workspace = true } +pallet-evm-precompile-gmp = { workspace = true } +pallet-evm-precompile-identity = { workspace = true } +pallet-evm-precompile-parachain-staking = { workspace = true } +pallet-evm-precompile-preimage = { workspace = true } +pallet-evm-precompile-proxy = { workspace = true } +pallet-evm-precompile-randomness = { workspace = true } +pallet-evm-precompile-referenda = { workspace = true } +pallet-evm-precompile-registry = { workspace = true } +pallet-evm-precompile-relay-encoder = { workspace = true } +pallet-evm-precompile-relay-verifier = { workspace = true } +pallet-evm-precompile-xcm-transactor = { workspace = true } +pallet-evm-precompile-xcm-utils = { workspace = true } +pallet-evm-precompile-xtokens = { workspace = true } +pallet-evm-precompileset-assets-erc20 = { workspace = true } + +# Moonbeam tracing +evm-tracing-events = { workspace = true, optional = true } +moonbeam-evm-tracer = { workspace = true, optional = true } +moonbeam-rpc-primitives-debug = { workspace = true } +moonbeam-rpc-primitives-txpool = { workspace = true } + +# Substrate +frame-executive = { workspace = true } +frame-support = { workspace = true } +frame-system = { workspace = true } +frame-system-rpc-runtime-api = { workspace = true } +pallet-assets = { workspace = true } +pallet-balances = { workspace = true, features = ["insecure_zero_ed"] } +pallet-collective = { workspace = true } +pallet-conviction-voting = { workspace = true } +pallet-identity = { workspace = true } +pallet-multisig = { workspace = true } +pallet-preimage = { workspace = true } +pallet-proxy = { workspace = true } +pallet-referenda = { workspace = true } +pallet-root-testing = { workspace = true } +pallet-scheduler = { workspace = true } +pallet-society = { workspace = true } +pallet-sudo = { workspace = true } +pallet-timestamp = { workspace = true } +pallet-transaction-payment = { workspace = true } +pallet-transaction-payment-rpc-runtime-api = { workspace = true } +pallet-treasury = { workspace = true } +pallet-utility = { workspace = true } +pallet-whitelist = { workspace = true } +parity-scale-codec = { workspace = true, features = [ + "derive", + "max-encoded-len", + "chain-error", +] } +scale-info = { workspace = true, features = ["derive"] } +sp-api = { workspace = true } +sp-block-builder = { workspace = true } +sp-consensus-slots = { workspace = true } +sp-core = { workspace = true } +sp-debug-derive = { workspace = true } +sp-inherents = { workspace = true } +sp-io = { workspace = true, features = ["improved_panic_error_reporting"] } +sp-offchain = { workspace = true } +sp-runtime = { workspace = true } +sp-session = { workspace = true } +sp-std = { workspace = true } +sp-transaction-pool = { workspace = true } +sp-version = { workspace = true } +sp-weights = { workspace = true } +sp-genesis-builder = { workspace = true } + +# Frontier +fp-evm = { workspace = true } +fp-rpc = { workspace = true } +fp-self-contained = { workspace = true, features = ["serde"] } +pallet-ethereum = { workspace = true, features = ["forbid-evm-reentrancy"] } +pallet-evm = { workspace = true, features = ["forbid-evm-reentrancy"] } +pallet-evm-precompile-blake2 = { workspace = true } +pallet-evm-precompile-bn128 = { workspace = true } +pallet-evm-precompile-dispatch = { workspace = true } +pallet-evm-precompile-modexp = { workspace = true } +pallet-evm-precompile-sha3fips = { workspace = true } +pallet-evm-precompile-simple = { workspace = true } +pallet-evm-precompile-storage-cleaner = { workspace = true } + + +# Polkadot / XCM +orml-traits = { workspace = true } +orml-xcm-support = { workspace = true } +orml-xtokens = { workspace = true } +pallet-xcm = { workspace = true } +pallet-xcm-benchmarks = { workspace = true, optional = true } +pallet-message-queue = { workspace = true } +polkadot-core-primitives = { workspace = true } +polkadot-parachain = { workspace = true } +polkadot-runtime-common = { workspace = true } +xcm = { workspace = true } +xcm-builder = { workspace = true } +xcm-executor = { workspace = true } + +# Cumulus +cumulus-pallet-dmp-queue = { workspace = true } +cumulus-pallet-parachain-system = { workspace = true } +cumulus-pallet-xcm = { workspace = true } +cumulus-pallet-xcmp-queue = { workspace = true } +cumulus-primitives-core = { workspace = true } +cumulus-primitives-timestamp = { workspace = true } +cumulus-primitives-utility = { workspace = true } +parachain-info = { workspace = true } +parachains-common = { workspace = true } + +# Moonkit +async-backing-primitives = { workspace = true } +moonkit-xcm-primitives = { workspace = true } +nimbus-primitives = { workspace = true } +pallet-async-backing = { workspace = true } +pallet-author-inherent = { workspace = true } +pallet-author-slot-filter = { workspace = true } +pallet-emergency-para-xcm = { workspace = true } +pallet-evm-precompile-xcm = { workspace = true } +pallet-relay-storage-roots = { workspace = true } + +# Benchmarking +frame-benchmarking = { workspace = true, optional = true } +frame-system-benchmarking = { workspace = true, optional = true } +frame-try-runtime = { workspace = true, optional = true } + +[build-dependencies] +substrate-wasm-builder = { workspace = true } + +[features] +default = ["std", "evm-tracing"] +std = [ + "account/std", + "async-backing-primitives/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", + "evm-tracing-events/std", + "fp-evm/std", + "fp-rpc/std", + "fp-self-contained/std", + "frame-benchmarking/std", + "frame-executive/std", + "frame-support/std", + "frame-system-rpc-runtime-api/std", + "frame-system/std", + "moonbeam-core-primitives/std", + "moonbeam-evm-tracer/std", + "moonbeam-relay-encoder/std", + "moonbeam-rpc-primitives-debug/std", + "moonbeam-rpc-primitives-txpool/std", + "moonbeam-runtime-common/std", + "moonkit-xcm-primitives/std", + "nimbus-primitives/std", + "orml-xtokens/std", + "pallet-asset-manager/std", + "pallet-assets/std", + "pallet-async-backing/std", + "pallet-author-inherent/std", + "pallet-author-mapping/std", + "pallet-author-slot-filter/std", + "pallet-balances/std", + "pallet-collective/std", + "pallet-conviction-voting/std", + "pallet-crowdloan-rewards/std", + "pallet-emergency-para-xcm/std", + "pallet-erc20-xcm-bridge/std", + "pallet-evm-chain-id/std", + "pallet-ethereum-xcm/std", + "pallet-ethereum/std", + "pallet-evm-precompile-author-mapping/std", + "pallet-evm-precompile-balances-erc20/std", + "pallet-evm-precompile-batch/std", + "pallet-evm-precompile-call-permit/std", + "pallet-evm-precompile-collective/std", + "pallet-evm-precompile-conviction-voting/std", + "pallet-evm-precompile-parachain-staking/std", + "pallet-evm-precompile-preimage/std", + "pallet-evm-precompile-randomness/std", + "pallet-evm-precompile-referenda/std", + "pallet-evm-precompile-registry/std", + "pallet-evm-precompile-relay-verifier/std", + "pallet-evm-precompile-xcm/std", + "pallet-evm-precompile-xcm-transactor/std", + "pallet-evm-precompile-xcm-utils/std", + "pallet-evm-precompile-xtokens/std", + "pallet-evm-precompileset-assets-erc20/std", + "pallet-evm-precompile-storage-cleaner/std", + "pallet-evm/std", + "pallet-identity/std", + "pallet-maintenance-mode/std", + "pallet-migrations/std", + "pallet-moonbeam-lazy-migrations/std", + "pallet-moonbeam-orbiters/std", + "pallet-multisig/std", + "pallet-parachain-staking/std", + "pallet-precompile-benchmarks/std", + "pallet-preimage/std", + "pallet-proxy-genesis-companion/std", + "pallet-proxy/std", + "pallet-randomness/std", + "pallet-referenda/std", + "pallet-relay-storage-roots/std", + "pallet-root-testing/std", + "pallet-scheduler/std", + "pallet-society/std", + "pallet-sudo/std", + "pallet-timestamp/std", + "pallet-transaction-payment-rpc-runtime-api/std", + "pallet-transaction-payment/std", + "pallet-treasury/std", + "pallet-utility/std", + "pallet-whitelist/std", + "pallet-xcm-transactor/std", + "pallet-xcm/std", + "parachain-info/std", + "parachains-common/std", + "parity-scale-codec/std", + "precompile-utils/std", + "scale-info/std", + "session-keys-primitives/std", + "sp-api/std", + "sp-block-builder/std", + "sp-consensus-slots/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", + "sp-genesis-builder/std", + "strum/std", + "xcm-builder/std", + "xcm-executor/std", + "xcm-primitives/std", + "xcm/std", +] + +# Must be enabled for tracing runtimes only +evm-tracing = ["evm-tracing-events", "moonbeam-evm-tracer", "rlp", "sha3"] + +# Allow to print logs details (no wasm:stripped) +force-debug = ["sp-debug-derive/force-debug"] + +# Will be enabled by the `wasm-builder` when building the runtime for WASM. +runtime-wasm = [] + +# A feature that should be enabled when the runtime should be build for on-chain +# deployment. This will disable stuff that shouldn't be part of the on-chain wasm +# to make it smaller like logging for example. +on-chain-release-build = ["sp-api/disable-logging"] + +runtime-benchmarks = [ + "cumulus-pallet-parachain-system/runtime-benchmarks", + "cumulus-primitives-core/runtime-benchmarks", + "frame-benchmarking/runtime-benchmarks", + "frame-support/runtime-benchmarks", + "frame-system-benchmarking/runtime-benchmarks", + "frame-system/runtime-benchmarks", + "hex-literal", + "moonbeam-relay-encoder/runtime-benchmarks", + "moonbeam-runtime-common/runtime-benchmarks", + "moonbeam-xcm-benchmarks/runtime-benchmarks", + "parachains-common/runtime-benchmarks", + "pallet-asset-manager/runtime-benchmarks", + "pallet-assets/runtime-benchmarks", + "pallet-author-inherent/runtime-benchmarks", + "pallet-author-mapping/runtime-benchmarks", + "pallet-author-slot-filter/runtime-benchmarks", + "pallet-balances/runtime-benchmarks", + "pallet-collective/runtime-benchmarks", + "pallet-conviction-voting/runtime-benchmarks", + "pallet-crowdloan-rewards/runtime-benchmarks", + "pallet-ethereum-xcm/runtime-benchmarks", + "pallet-ethereum/runtime-benchmarks", + "pallet-evm/runtime-benchmarks", + "pallet-identity/runtime-benchmarks", + "pallet-migrations/runtime-benchmarks", + "pallet-moonbeam-lazy-migrations/runtime-benchmarks", + "pallet-moonbeam-orbiters/runtime-benchmarks", + "pallet-multisig/runtime-benchmarks", + "pallet-parachain-staking/runtime-benchmarks", + "pallet-precompile-benchmarks/runtime-benchmarks", + "pallet-preimage/runtime-benchmarks", + "pallet-proxy/runtime-benchmarks", + "pallet-randomness/runtime-benchmarks", + "pallet-referenda/runtime-benchmarks", + "pallet-relay-storage-roots/runtime-benchmarks", + "pallet-scheduler/runtime-benchmarks", + "pallet-society/runtime-benchmarks", + "pallet-sudo/runtime-benchmarks", + "pallet-timestamp/runtime-benchmarks", + "pallet-treasury/runtime-benchmarks", + "pallet-utility/runtime-benchmarks", + "pallet-whitelist/runtime-benchmarks", + "pallet-xcm-benchmarks/runtime-benchmarks", + "pallet-xcm-transactor/runtime-benchmarks", + "pallet-xcm/runtime-benchmarks", + "session-keys-primitives/runtime-benchmarks", + "sp-runtime/runtime-benchmarks", + "xcm-builder/runtime-benchmarks", +] + +try-runtime = [ + "cumulus-pallet-parachain-system/try-runtime", + "cumulus-pallet-xcmp-queue/try-runtime", + "cumulus-pallet-xcm/try-runtime", + "cumulus-pallet-dmp-queue/try-runtime", + "fp-self-contained/try-runtime", + "frame-executive/try-runtime", + "frame-system/try-runtime", + "frame-try-runtime", + "moonbeam-runtime-common/try-runtime", + "pallet-asset-manager/try-runtime", + "pallet-author-mapping/try-runtime", + "pallet-author-slot-filter/try-runtime", + "pallet-balances/try-runtime", + "pallet-collective/try-runtime", + "pallet-conviction-voting/try-runtime", + "pallet-emergency-para-xcm/try-runtime", + "pallet-maintenance-mode/try-runtime", + "pallet-migrations/try-runtime", + "pallet-moonbeam-lazy-migrations/try-runtime", + "pallet-parachain-staking/try-runtime", + "pallet-preimage/try-runtime", + "pallet-referenda/try-runtime", + "pallet-relay-storage-roots/try-runtime", + "pallet-root-testing/try-runtime", + "pallet-scheduler/try-runtime", + "pallet-society/try-runtime", + "pallet-timestamp/try-runtime", + "pallet-xcm-transactor/try-runtime", + "pallet-xcm/try-runtime", + "pallet-message-queue/try-runtime", + "pallet-utility/try-runtime", + "pallet-sudo/try-runtime", + "pallet-transaction-payment/try-runtime", + "parachain-info/try-runtime", + "pallet-evm-chain-id/try-runtime", + "parachain-info/try-runtime", + "pallet-evm/try-runtime", + "pallet-ethereum/try-runtime", + "pallet-treasury/try-runtime", + "pallet-author-inherent/try-runtime", + "pallet-crowdloan-rewards/try-runtime", + "pallet-proxy/try-runtime", + "pallet-identity/try-runtime", + "orml-xtokens/try-runtime", + "pallet-assets/try-runtime", + "pallet-xcm-transactor/try-runtime", + "pallet-proxy-genesis-companion/try-runtime", + "pallet-moonbeam-orbiters/try-runtime", + "pallet-ethereum-xcm/try-runtime", + "pallet-randomness/try-runtime", + "pallet-whitelist/try-runtime", + "pallet-erc20-xcm-bridge/try-runtime", + "pallet-multisig/try-runtime", + "pallet-async-backing/try-runtime", + "pallet-precompile-benchmarks/try-runtime", +] + +moonbase-runtime-benchmarks = [] diff --git a/tracing/3001/runtime/moonbase/build.rs b/tracing/3001/runtime/moonbase/build.rs new file mode 100644 index 00000000..3934b9c5 --- /dev/null +++ b/tracing/3001/runtime/moonbase/build.rs @@ -0,0 +1,25 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +use substrate_wasm_builder::WasmBuilder; + +fn main() { + WasmBuilder::new() + .with_current_project() + .export_heap_base() + .import_memory() + .build() +} diff --git a/tracing/3001/runtime/moonbase/src/asset_config.rs b/tracing/3001/runtime/moonbase/src/asset_config.rs new file mode 100644 index 00000000..27b87c4c --- /dev/null +++ b/tracing/3001/runtime/moonbase/src/asset_config.rs @@ -0,0 +1,218 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Asset configuration for Moonbase. +//! + +use crate::OpenTechCommitteeInstance; + +use super::{ + currency, governance, xcm_config, AccountId, AssetId, AssetManager, Assets, Balance, Balances, + Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, FOREIGN_ASSET_PRECOMPILE_ADDRESS_PREFIX, +}; + +use moonbeam_runtime_common::weights as moonbeam_weights; +use moonkit_xcm_primitives::AccountIdAssetIdConversion; + +use frame_support::{ + dispatch::GetDispatchInfo, + parameter_types, + traits::{AsEnsureOriginWithArg, ConstU128, ConstU32, EitherOfDiverse}, + weights::Weight, +}; + +use frame_system::{EnsureNever, EnsureRoot}; +use parity_scale_codec::{Compact, Decode, Encode}; +use scale_info::TypeInfo; +use sp_core::H160; + +use sp_std::{ + convert::{From, Into}, + prelude::*, +}; + +// Number of items that can be destroyed with our configured max extrinsic proof size. +// x = (a - b) / c where: +// a: maxExtrinsic proof size +// b: base proof size for destroy_accounts in pallet_assets weights +// c: proof size for each item +// 656.87 = (3_407_872 - 8232) / 5180 +const REMOVE_ITEMS_LIMIT: u32 = 656; + +// Not to disrupt the previous asset instance, we assign () to Foreign +pub type ForeignAssetInstance = (); + +// For foreign assets, these parameters dont matter much +// as this will only be called by root with the forced arguments +// No deposit is substracted with those methods +parameter_types! { + pub const AssetDeposit: Balance = 100 * currency::UNIT * currency::SUPPLY_FACTOR; + pub const ApprovalDeposit: Balance = 0; + pub const AssetsStringLimit: u32 = 50; + pub const MetadataDepositBase: Balance = currency::deposit(1,68); + pub const MetadataDepositPerByte: Balance = currency::deposit(0, 1); +} + +/// We allow Root and General Admin to execute privileged asset operations. +pub type AssetsForceOrigin = + EitherOfDiverse, governance::custom_origins::GeneralAdmin>; + +// Required for runtime benchmarks +pallet_assets::runtime_benchmarks_enabled! { + pub struct BenchmarkHelper; + impl pallet_assets::BenchmarkHelper for BenchmarkHelper + where + AssetIdParameter: From, + { + fn create_asset_id_parameter(id: u32) -> AssetIdParameter { + (id as u128).into() + } + } +} + +// Foreign assets +impl pallet_assets::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Balance = Balance; + type AssetId = AssetId; + type Currency = Balances; + type ForceOrigin = AssetsForceOrigin; + type AssetDeposit = AssetDeposit; + type MetadataDepositBase = MetadataDepositBase; + type MetadataDepositPerByte = MetadataDepositPerByte; + type ApprovalDeposit = ApprovalDeposit; + type StringLimit = AssetsStringLimit; + type Freezer = (); + type Extra = (); + type AssetAccountDeposit = ConstU128<{ currency::deposit(1, 18) }>; + type WeightInfo = moonbeam_weights::pallet_assets::WeightInfo; + type RemoveItemsLimit = ConstU32<{ REMOVE_ITEMS_LIMIT }>; + type AssetIdParameter = Compact; + type CreateOrigin = AsEnsureOriginWithArg>; + type CallbackHandle = (); + pallet_assets::runtime_benchmarks_enabled! { + type BenchmarkHelper = BenchmarkHelper; + } +} + +// We instruct how to register the Assets +// In this case, we tell it to Create an Asset in pallet-assets +pub struct AssetRegistrar; +use frame_support::{pallet_prelude::DispatchResult, transactional}; + +impl pallet_asset_manager::AssetRegistrar for AssetRegistrar { + #[transactional] + fn create_foreign_asset( + asset: AssetId, + min_balance: Balance, + metadata: AssetRegistrarMetadata, + is_sufficient: bool, + ) -> DispatchResult { + Assets::force_create( + RuntimeOrigin::root(), + asset.into(), + AssetManager::account_id(), + is_sufficient, + min_balance, + )?; + + // Lastly, the metadata + Assets::force_set_metadata( + RuntimeOrigin::root(), + asset.into(), + metadata.name, + metadata.symbol, + metadata.decimals, + metadata.is_frozen, + ) + } + + #[transactional] + fn destroy_foreign_asset(asset: AssetId) -> DispatchResult { + // Mark the asset as destroying + Assets::start_destroy(RuntimeOrigin::root(), asset.into()) + } + + fn destroy_asset_dispatch_info_weight(asset: AssetId) -> Weight { + // For us both of them (Foreign and Local) have the same annotated weight for a given + // witness + // We need to take the dispatch info from the destroy call, which is already annotated in + // the assets pallet + + // This is the dispatch info of destroy + RuntimeCall::Assets( + pallet_assets::Call::::start_destroy { + id: asset.into(), + }, + ) + .get_dispatch_info() + .weight + } +} + +#[derive(Clone, Default, Eq, Debug, PartialEq, Ord, PartialOrd, Encode, Decode, TypeInfo)] +pub struct AssetRegistrarMetadata { + pub name: Vec, + pub symbol: Vec, + pub decimals: u8, + pub is_frozen: bool, +} + +pub type ForeignAssetModifierOrigin = EitherOfDiverse< + EnsureRoot, + EitherOfDiverse< + pallet_collective::EnsureProportionMoreThan, + governance::custom_origins::GeneralAdmin, + >, +>; + +impl pallet_asset_manager::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Balance = Balance; + type AssetId = AssetId; + type AssetRegistrarMetadata = AssetRegistrarMetadata; + type ForeignAssetType = xcm_config::AssetType; + type AssetRegistrar = AssetRegistrar; + type ForeignAssetModifierOrigin = ForeignAssetModifierOrigin; + type WeightInfo = moonbeam_weights::pallet_asset_manager::WeightInfo; +} + +// Instruct how to go from an H160 to an AssetID +// We just take the lowest 128 bits +impl AccountIdAssetIdConversion for Runtime { + /// The way to convert an account to assetId is by ensuring that the prefix is 0XFFFFFFFF + /// and by taking the lowest 128 bits as the assetId + fn account_to_asset_id(account: AccountId) -> Option<(Vec, AssetId)> { + let h160_account: H160 = account.into(); + let mut data = [0u8; 16]; + let (prefix_part, id_part) = h160_account.as_fixed_bytes().split_at(4); + if prefix_part == FOREIGN_ASSET_PRECOMPILE_ADDRESS_PREFIX { + data.copy_from_slice(id_part); + let asset_id: AssetId = u128::from_be_bytes(data).into(); + Some((prefix_part.to_vec(), asset_id)) + } else { + None + } + } + + // The opposite conversion + fn asset_id_to_account(prefix: &[u8], asset_id: AssetId) -> AccountId { + let mut data = [0u8; 20]; + data[0..4].copy_from_slice(prefix); + data[4..20].copy_from_slice(&asset_id.to_be_bytes()); + AccountId::from(data) + } +} diff --git a/tracing/3001/runtime/moonbase/src/governance/councils.rs b/tracing/3001/runtime/moonbase/src/governance/councils.rs new file mode 100644 index 00000000..d6addeae --- /dev/null +++ b/tracing/3001/runtime/moonbase/src/governance/councils.rs @@ -0,0 +1,62 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Councils for Gov1 and Gov2 + +use super::*; +use moonbeam_runtime_common::weights as moonbeam_weights; + +pub type TreasuryCouncilInstance = pallet_collective::Instance3; +pub type OpenTechCommitteeInstance = pallet_collective::Instance4; + +parameter_types! { + // TODO: Check value of this parameter + pub MaxProposalWeight: Weight = Perbill::from_percent(50) * BlockWeights::get().max_block; +} + +impl pallet_collective::Config for Runtime { + type RuntimeOrigin = RuntimeOrigin; + type RuntimeEvent = RuntimeEvent; + type Proposal = RuntimeCall; + /// The maximum amount of time (in blocks) for treasury council members to vote on motions. + /// Motions may end in fewer blocks if enough votes are cast to determine the result. + type MotionDuration = ConstU32<{ 3 * DAYS }>; + /// The maximum number of proposals that can be open in the treasury council at once. + type MaxProposals = ConstU32<20>; + /// The maximum number of treasury council members. + type MaxMembers = ConstU32<9>; + type DefaultVote = pallet_collective::MoreThanMajorityThenPrimeDefaultVote; + type WeightInfo = moonbeam_weights::pallet_collective::WeightInfo; + type SetMembersOrigin = referenda::GeneralAdminOrRoot; + type MaxProposalWeight = MaxProposalWeight; +} + +impl pallet_collective::Config for Runtime { + type RuntimeOrigin = RuntimeOrigin; + type RuntimeEvent = RuntimeEvent; + type Proposal = RuntimeCall; + /// The maximum amount of time (in blocks) for technical committee members to vote on motions. + /// Motions may end in fewer blocks if enough votes are cast to determine the result. + type MotionDuration = ConstU32<{ 14 * DAYS }>; + /// The maximum number of proposals that can be open in the technical committee at once. + type MaxProposals = ConstU32<100>; + /// The maximum number of technical committee members. + type MaxMembers = ConstU32<100>; + type DefaultVote = pallet_collective::MoreThanMajorityThenPrimeDefaultVote; + type WeightInfo = moonbeam_weights::pallet_collective::WeightInfo; + type SetMembersOrigin = referenda::GeneralAdminOrRoot; + type MaxProposalWeight = MaxProposalWeight; +} diff --git a/tracing/3001/runtime/moonbase/src/governance/mod.rs b/tracing/3001/runtime/moonbase/src/governance/mod.rs new file mode 100644 index 00000000..36a2c6be --- /dev/null +++ b/tracing/3001/runtime/moonbase/src/governance/mod.rs @@ -0,0 +1,29 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Governance configurations + +pub mod councils; +pub mod referenda; + +use super::*; + +mod origins; +pub use origins::{ + custom_origins, GeneralAdmin, ReferendumCanceller, ReferendumKiller, WhitelistedCaller, +}; +mod tracks; +pub use tracks::TracksInfo; diff --git a/tracing/3001/runtime/moonbase/src/governance/origins.rs b/tracing/3001/runtime/moonbase/src/governance/origins.rs new file mode 100644 index 00000000..e8de3c35 --- /dev/null +++ b/tracing/3001/runtime/moonbase/src/governance/origins.rs @@ -0,0 +1,83 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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. + +//! Custom origins for governance interventions. +pub use custom_origins::*; + +#[frame_support::pallet] +pub mod custom_origins { + use frame_support::pallet_prelude::*; + use strum_macros::EnumString; + + #[pallet::config] + pub trait Config: frame_system::Config {} + + #[pallet::pallet] + pub struct Pallet(_); + + #[derive( + PartialEq, Eq, Clone, MaxEncodedLen, Encode, Decode, TypeInfo, RuntimeDebug, EnumString, + )] + #[strum(serialize_all = "snake_case")] + #[pallet::origin] + pub enum Origin { + /// Origin able to dispatch a whitelisted call. + WhitelistedCaller, + /// General admin + GeneralAdmin, + /// Origin able to cancel referenda. + ReferendumCanceller, + /// Origin able to kill referenda. + ReferendumKiller, + /// Fast General Admin + FastGeneralAdmin, + } + + macro_rules! decl_unit_ensures { + ( $name:ident: $success_type:ty = $success:expr ) => { + pub struct $name; + impl> + From> + EnsureOrigin for $name + { + type Success = $success_type; + fn try_origin(o: O) -> Result { + o.into().and_then(|o| match o { + Origin::$name => Ok($success), + r => Err(O::from(r)), + }) + } + #[cfg(feature = "runtime-benchmarks")] + fn try_successful_origin() -> Result { + Ok(O::from(Origin::$name)) + } + } + }; + ( $name:ident ) => { decl_unit_ensures! { $name : () = () } }; + ( $name:ident: $success_type:ty = $success:expr, $( $rest:tt )* ) => { + decl_unit_ensures! { $name: $success_type = $success } + decl_unit_ensures! { $( $rest )* } + }; + ( $name:ident, $( $rest:tt )* ) => { + decl_unit_ensures! { $name } + decl_unit_ensures! { $( $rest )* } + }; + () => {} + } + decl_unit_ensures!( + ReferendumCanceller, + ReferendumKiller, + WhitelistedCaller, + GeneralAdmin, + FastGeneralAdmin, + ); +} diff --git a/tracing/3001/runtime/moonbase/src/governance/referenda.rs b/tracing/3001/runtime/moonbase/src/governance/referenda.rs new file mode 100644 index 00000000..96bb3628 --- /dev/null +++ b/tracing/3001/runtime/moonbase/src/governance/referenda.rs @@ -0,0 +1,101 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! # Gov2 config +//! Includes runtime configs for these substrate pallets: +//! 1. pallet-conviction-voting +//! 2. pallet-whitelist +//! 3. pallet-referenda + +use super::*; +use crate::currency::*; +use frame_support::traits::{EitherOf, MapSuccess}; +use frame_system::EnsureRootWithSuccess; +use moonbeam_runtime_common::weights as moonbeam_weights; +use sp_runtime::traits::Replace; + +parameter_types! { + pub const VoteLockingPeriod: BlockNumber = 1 * DAYS; +} + +impl pallet_conviction_voting::Config for Runtime { + type WeightInfo = moonbeam_weights::pallet_conviction_voting::WeightInfo; + type RuntimeEvent = RuntimeEvent; + type Currency = Balances; + type Polls = Referenda; + type MaxTurnout = frame_support::traits::TotalIssuanceOf; + // Maximum number of concurrent votes an account may have + type MaxVotes = ConstU32<20>; + // Minimum period of vote locking + type VoteLockingPeriod = VoteLockingPeriod; +} + +parameter_types! { + pub const AlarmInterval: BlockNumber = 1; + pub const SubmissionDeposit: Balance = 10 * UNIT * SUPPLY_FACTOR; + pub const UndecidingTimeout: BlockNumber = 21 * DAYS; +} + +pub type GeneralAdminOrRoot = EitherOf, origins::GeneralAdmin>; + +/// The policy allows for Root or FastGeneralAdmin. +pub type FastGeneralAdminOrRoot = EitherOf, origins::FastGeneralAdmin>; + +impl custom_origins::Config for Runtime {} + +// The purpose of this pallet is to queue calls to be dispatched as by root later => the Dispatch +// origin corresponds to the Gov2 Whitelist track. +impl pallet_whitelist::Config for Runtime { + type WeightInfo = moonbeam_weights::pallet_whitelist::WeightInfo; + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + type WhitelistOrigin = EitherOf< + EnsureRootWithSuccess>, + MapSuccess< + pallet_collective::EnsureProportionAtLeast< + Self::AccountId, + OpenTechCommitteeInstance, + 5, + 9, + >, + Replace>, + >, + >; + type DispatchWhitelistedOrigin = EitherOf, WhitelistedCaller>; + type Preimages = Preimage; +} + +pallet_referenda::impl_tracksinfo_get!(TracksInfo, Balance, BlockNumber); + +impl pallet_referenda::Config for Runtime { + type WeightInfo = moonbeam_weights::pallet_referenda::WeightInfo; + type RuntimeCall = RuntimeCall; + type RuntimeEvent = RuntimeEvent; + type Scheduler = Scheduler; + type Currency = Balances; + type SubmitOrigin = frame_system::EnsureSigned; + type CancelOrigin = EitherOf, ReferendumCanceller>; + type KillOrigin = EitherOf, ReferendumKiller>; + type Slash = Treasury; + type Votes = pallet_conviction_voting::VotesOf; + type Tally = pallet_conviction_voting::TallyOf; + type SubmissionDeposit = SubmissionDeposit; + type MaxQueued = ConstU32<100>; + type UndecidingTimeout = UndecidingTimeout; + type AlarmInterval = AlarmInterval; + type Tracks = TracksInfo; + type Preimages = Preimage; +} diff --git a/tracing/3001/runtime/moonbase/src/governance/tracks.rs b/tracing/3001/runtime/moonbase/src/governance/tracks.rs new file mode 100644 index 00000000..72e18b9f --- /dev/null +++ b/tracing/3001/runtime/moonbase/src/governance/tracks.rs @@ -0,0 +1,193 @@ +// Copyright 2022 Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot 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. + +// Polkadot 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 Polkadot. If not, see . + +//! Track configurations for governance. + +use super::*; +use crate::currency::{KILOUNIT, SUPPLY_FACTOR, UNIT}; +use sp_std::str::FromStr; + +const fn percent(x: i32) -> sp_runtime::FixedI64 { + sp_runtime::FixedI64::from_rational(x as u128, 100) +} +const fn permill(x: i32) -> sp_runtime::FixedI64 { + sp_runtime::FixedI64::from_rational(x as u128, 1000) +} + +use pallet_referenda::Curve; +const TRACKS_DATA: [(u16, pallet_referenda::TrackInfo); 6] = [ + ( + 0, + pallet_referenda::TrackInfo { + // Name of this track. + name: "root", + // A limit for the number of referenda on this track that can be being decided at once. + // For Root origin this should generally be just one. + max_deciding: 5, + // Amount that must be placed on deposit before a decision can be made. + decision_deposit: 100 * KILOUNIT * SUPPLY_FACTOR, + // Amount of time this must be submitted for before a decision can be made. + prepare_period: 1 * DAYS, + // Amount of time that a decision may take to be approved prior to cancellation. + decision_period: 14 * DAYS, + // Amount of time that the approval criteria must hold before it can be approved. + confirm_period: 1 * DAYS, + // Minimum amount of time that an approved proposal must be in the dispatch queue. + min_enactment_period: 1 * DAYS, + // Minimum aye votes as percentage of overall conviction-weighted votes needed for + // approval as a function of time into decision period. + min_approval: Curve::make_reciprocal(4, 14, percent(80), percent(50), percent(100)), + // Minimum pre-conviction aye-votes ("support") as percentage of overall population that + // is needed for approval as a function of time into decision period. + min_support: Curve::make_linear(14, 14, permill(5), percent(25)), + }, + ), + ( + 1, + pallet_referenda::TrackInfo { + name: "whitelisted_caller", + max_deciding: 100, + decision_deposit: 10 * KILOUNIT * SUPPLY_FACTOR, + prepare_period: 10 * MINUTES, + decision_period: 14 * DAYS, + confirm_period: 10 * MINUTES, + min_enactment_period: 30 * MINUTES, + min_approval: Curve::make_reciprocal(1, 14, percent(96), percent(50), percent(100)), + min_support: Curve::make_reciprocal(1, 14 * 24, percent(1), percent(0), percent(2)), + }, + ), + ( + 2, + pallet_referenda::TrackInfo { + name: "general_admin", + max_deciding: 10, + decision_deposit: 500 * UNIT * SUPPLY_FACTOR, + prepare_period: 1 * HOURS, + decision_period: 14 * DAYS, + confirm_period: 1 * DAYS, + min_enactment_period: 1 * DAYS, + min_approval: Curve::make_reciprocal(4, 14, percent(80), percent(50), percent(100)), + min_support: Curve::make_reciprocal(7, 14, percent(10), percent(0), percent(50)), + }, + ), + ( + 3, + pallet_referenda::TrackInfo { + name: "referendum_canceller", + max_deciding: 20, + decision_deposit: 10 * KILOUNIT * SUPPLY_FACTOR, + prepare_period: 1 * HOURS, + decision_period: 14 * DAYS, + confirm_period: 3 * HOURS, + min_enactment_period: 10 * MINUTES, + min_approval: Curve::make_reciprocal(1, 14, percent(96), percent(50), percent(100)), + min_support: Curve::make_reciprocal(1, 14, percent(1), percent(0), percent(50)), + }, + ), + ( + 4, + pallet_referenda::TrackInfo { + name: "referendum_killer", + max_deciding: 100, + decision_deposit: 20 * KILOUNIT * SUPPLY_FACTOR, + prepare_period: 1 * HOURS, + decision_period: 14 * DAYS, + confirm_period: 3 * HOURS, + min_enactment_period: 10 * MINUTES, + min_approval: Curve::make_reciprocal(1, 14, percent(96), percent(50), percent(100)), + min_support: Curve::make_reciprocal(1, 14, percent(1), percent(0), percent(10)), + }, + ), + ( + 5, + pallet_referenda::TrackInfo { + name: "fast_general_admin", + max_deciding: 10, + decision_deposit: 500 * UNIT * SUPPLY_FACTOR, + prepare_period: 1 * HOURS, + decision_period: 14 * DAYS, + confirm_period: 3 * HOURS, + min_enactment_period: 10 * MINUTES, + min_approval: Curve::make_reciprocal(4, 14, percent(80), percent(50), percent(100)), + min_support: Curve::make_reciprocal(5, 14, percent(1), percent(0), percent(50)), + }, + ), +]; + +pub struct TracksInfo; +impl pallet_referenda::TracksInfo for TracksInfo { + type Id = u16; + type RuntimeOrigin = ::PalletsOrigin; + fn tracks() -> &'static [(Self::Id, pallet_referenda::TrackInfo)] { + &TRACKS_DATA[..] + } + fn track_for(id: &Self::RuntimeOrigin) -> Result { + if let Ok(system_origin) = frame_system::RawOrigin::try_from(id.clone()) { + match system_origin { + frame_system::RawOrigin::Root => { + if let Some((track_id, _)) = Self::tracks() + .into_iter() + .find(|(_, track)| track.name == "root") + { + Ok(*track_id) + } else { + Err(()) + } + } + _ => Err(()), + } + } else if let Ok(custom_origin) = custom_origins::Origin::try_from(id.clone()) { + if let Some((track_id, _)) = Self::tracks().into_iter().find(|(_, track)| { + if let Ok(track_custom_origin) = custom_origins::Origin::from_str(track.name) { + track_custom_origin == custom_origin + } else { + false + } + }) { + Ok(*track_id) + } else { + Err(()) + } + } else { + Err(()) + } + } +} + +#[test] +/// To ensure voters are always locked into their vote +fn vote_locking_always_longer_than_enactment_period() { + for (_, track) in TRACKS_DATA { + assert!( + ::VoteLockingPeriod::get() + >= track.min_enactment_period, + "Track {} has enactment period {} < vote locking period {}", + track.name, + track.min_enactment_period, + ::VoteLockingPeriod::get(), + ); + } +} + +#[test] +fn all_tracks_have_origins() { + for (_, track) in TRACKS_DATA { + // check name.into() is successful either converts into "root" or custom origin + let track_is_root = track.name == "root"; + let track_has_custom_origin = custom_origins::Origin::from_str(track.name).is_ok(); + assert!(track_is_root || track_has_custom_origin); + } +} diff --git a/tracing/3001/runtime/moonbase/src/lib.rs b/tracing/3001/runtime/moonbase/src/lib.rs new file mode 100644 index 00000000..212500c9 --- /dev/null +++ b/tracing/3001/runtime/moonbase/src/lib.rs @@ -0,0 +1,1809 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! The Moonbase Runtime. +//! +//! Primary features of this runtime include: +//! * Ethereum compatibility +//! * Moonbase tokenomics + +#![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 = "512"] + +// Make the WASM binary available. +#[cfg(feature = "std")] +include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); + +pub mod asset_config; +pub mod governance; +pub mod xcm_config; + +mod migrations; +mod precompiles; + +// Re-export required by get! macro. +#[cfg(feature = "std")] +pub use fp_evm::GenesisAccount; +pub use frame_support::traits::Get; +pub use moonbeam_core_primitives::{ + AccountId, AccountIndex, Address, AssetId, Balance, BlockNumber, DigestItem, Hash, Header, + Index, Signature, +}; +pub use pallet_author_slot_filter::EligibilityValue; +pub use pallet_parachain_staking::{weights::WeightInfo, InflationInfo, Range}; +pub use precompiles::{ + MoonbasePrecompiles, PrecompileName, FOREIGN_ASSET_PRECOMPILE_ADDRESS_PREFIX, +}; + +use account::AccountId20; +use cumulus_pallet_parachain_system::{RelayChainStateProof, RelaychainDataProvider}; +use cumulus_primitives_core::{relay_chain, AggregateMessageOrigin}; +use fp_rpc::TransactionStatus; +use frame_support::{ + construct_runtime, + dispatch::{DispatchClass, GetDispatchInfo, PostDispatchInfo}, + ensure, + pallet_prelude::DispatchResult, + parameter_types, + traits::{ + fungible::{Balanced, Credit, HoldConsideration, Inspect}, + tokens::imbalance::ResolveTo, + tokens::{PayFromAccount, UnityAssetBalanceConversion}, + ConstBool, ConstU128, ConstU16, ConstU32, ConstU64, ConstU8, Contains, EitherOfDiverse, + EqualPrivilegeOnly, FindAuthor, Imbalance, InstanceFilter, LinearStoragePrice, OnFinalize, + OnUnbalanced, + }, + weights::{ + constants::{RocksDbWeight, WEIGHT_REF_TIME_PER_SECOND}, + ConstantMultiplier, Weight, WeightToFeeCoefficient, WeightToFeeCoefficients, + WeightToFeePolynomial, + }, + PalletId, +}; + +use frame_system::{EnsureRoot, EnsureSigned}; +use governance::councils::*; +use moonbeam_rpc_primitives_txpool::TxPoolResponse; +use moonbeam_runtime_common::{ + timestamp::{ConsensusHookWrapperForRelayTimestamp, RelayTimestamp}, + weights as moonbeam_weights, +}; +use nimbus_primitives::CanAuthor; +use pallet_ethereum::Call::transact; +use pallet_ethereum::{PostLogContent, Transaction as EthereumTransaction}; +use pallet_evm::{ + Account as EVMAccount, EVMFungibleAdapter, EnsureAddressNever, EnsureAddressRoot, + FeeCalculator, GasWeightMapping, IdentityAddressMapping, + OnChargeEVMTransaction as OnChargeEVMTransactionT, Runner, +}; +use pallet_transaction_payment::{FungibleAdapter, Multiplier, TargetedFeeAdjustment}; +use pallet_treasury::TreasuryAccountId; +use parity_scale_codec::{Decode, Encode, MaxEncodedLen}; +use scale_info::TypeInfo; +use sp_api::impl_runtime_apis; +use sp_consensus_slots::Slot; +use sp_core::{OpaqueMetadata, H160, H256, U256}; +use sp_runtime::{ + create_runtime_str, generic, impl_opaque_keys, + traits::{ + BlakeTwo256, Block as BlockT, DispatchInfoOf, Dispatchable, IdentityLookup, + PostDispatchInfoOf, UniqueSaturatedInto, Zero, + }, + transaction_validity::{ + InvalidTransaction, TransactionSource, TransactionValidity, TransactionValidityError, + }, + ApplyExtrinsicResult, DispatchErrorWithPostInfo, FixedPointNumber, Perbill, Permill, + Perquintill, +}; +use sp_std::{ + convert::{From, Into}, + prelude::*, +}; +#[cfg(feature = "std")] +use sp_version::NativeVersion; +use sp_version::RuntimeVersion; + +use smallvec::smallvec; +use sp_runtime::serde::{Deserialize, Serialize}; + +#[cfg(any(feature = "std", test))] +pub use sp_runtime::BuildStorage; + +pub type Precompiles = MoonbasePrecompiles; + +/// UNIT, the native token, uses 18 decimals of precision. +pub mod currency { + use super::Balance; + + // Provide a common factor between runtimes based on a supply of 10_000_000 tokens. + pub const SUPPLY_FACTOR: Balance = 1; + + pub const WEI: Balance = 1; + pub const KILOWEI: Balance = 1_000; + pub const MEGAWEI: Balance = 1_000_000; + pub const GIGAWEI: Balance = 1_000_000_000; + pub const MICROUNIT: Balance = 1_000_000_000_000; + pub const MILLIUNIT: Balance = 1_000_000_000_000_000; + pub const UNIT: Balance = 1_000_000_000_000_000_000; + pub const KILOUNIT: Balance = 1_000_000_000_000_000_000_000; + + pub const TRANSACTION_BYTE_FEE: Balance = 1 * GIGAWEI * SUPPLY_FACTOR; + pub const STORAGE_BYTE_FEE: Balance = 100 * MICROUNIT * SUPPLY_FACTOR; + pub const WEIGHT_FEE: Balance = 50 * KILOWEI * SUPPLY_FACTOR; + + pub const fn deposit(items: u32, bytes: u32) -> Balance { + items as Balance * 1 * UNIT * SUPPLY_FACTOR + (bytes as Balance) * STORAGE_BYTE_FEE + } +} + +/// Maximum weight per block +pub const MAXIMUM_BLOCK_WEIGHT: Weight = Weight::from_parts(WEIGHT_REF_TIME_PER_SECOND, u64::MAX) + .saturating_mul(2) + .set_proof_size(relay_chain::MAX_POV_SIZE as u64); + +pub const MILLISECS_PER_BLOCK: u64 = 6_000; +pub const MINUTES: BlockNumber = 60_000 / (MILLISECS_PER_BLOCK as BlockNumber); +pub const HOURS: BlockNumber = MINUTES * 60; +pub const DAYS: BlockNumber = HOURS * 24; +pub const WEEKS: BlockNumber = DAYS * 7; +/// Opaque types. These are used by the CLI to instantiate machinery that don't need to know +/// the specifics of the runtime. They can then be made to be agnostic over specific formats +/// of data like extrinsics, allowing for them to continue syncing the network through upgrades +/// to even the core data structures. +pub mod opaque { + use super::*; + + pub use sp_runtime::OpaqueExtrinsic as UncheckedExtrinsic; + pub type Block = generic::Block; + + impl_opaque_keys! { + pub struct SessionKeys { + pub nimbus: AuthorInherent, + pub vrf: session_keys_primitives::VrfSessionKey, + } + } +} + +/// This runtime version. +/// The spec_version is composed of 2x2 digits. The first 2 digits represent major changes +/// that can't be skipped, such as data migration upgrades. The last 2 digits represent minor +/// changes which can be skipped. +#[sp_version::runtime_version] +pub const VERSION: RuntimeVersion = RuntimeVersion { + spec_name: create_runtime_str!("moonbase"), + impl_name: create_runtime_str!("moonbase"), + authoring_version: 4, + spec_version: 3001, + impl_version: 0, + apis: RUNTIME_API_VERSIONS, + transaction_version: 2, + state_version: 0, +}; + +/// 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(), + } +} + +const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(75); +pub const NORMAL_WEIGHT: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_mul(3).saturating_div(4); +// Here we assume Ethereum's base fee of 21000 gas and convert to weight, but we +// subtract roughly the cost of a balance transfer from it (about 1/3 the cost) +// and some cost to account for per-byte-fee. +// TODO: we should use benchmarking's overhead feature to measure this +pub const EXTRINSIC_BASE_WEIGHT: Weight = Weight::from_parts(10000 * WEIGHT_PER_GAS, 0); + +pub struct RuntimeBlockWeights; +impl Get for RuntimeBlockWeights { + fn get() -> frame_system::limits::BlockWeights { + frame_system::limits::BlockWeights::builder() + .for_class(DispatchClass::Normal, |weights| { + weights.base_extrinsic = EXTRINSIC_BASE_WEIGHT; + weights.max_total = NORMAL_WEIGHT.into(); + }) + .for_class(DispatchClass::Operational, |weights| { + weights.max_total = MAXIMUM_BLOCK_WEIGHT.into(); + weights.reserved = (MAXIMUM_BLOCK_WEIGHT - NORMAL_WEIGHT).into(); + }) + .avg_block_initialization(Perbill::from_percent(10)) + .build() + .expect("Provided BlockWeight definitions are valid, qed") + } +} + +parameter_types! { + pub const Version: RuntimeVersion = VERSION; + /// TODO: this is left here so that `impl_runtime_apis_plus_common` will find the same type for + /// `BlockWeights` in all runtimes. It can probably be removed once the custom + /// `RuntimeBlockWeights` has been pushed to each runtime. + pub BlockWeights: frame_system::limits::BlockWeights = RuntimeBlockWeights::get(); + /// We allow for 5 MB blocks. + pub BlockLength: frame_system::limits::BlockLength = frame_system::limits::BlockLength + ::max_with_normal_ratio(5 * 1024 * 1024, NORMAL_DISPATCH_RATIO); +} + +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 = IdentityLookup; + /// The index type for storing how many extrinsics an account has signed. + type Nonce = Index; + /// The index type for blocks. + type Block = Block; + /// The type for hashing blocks and tries. + type Hash = Hash; + /// The hashing algorithm used. + type Hashing = BlakeTwo256; + /// The ubiquitous event type. + type RuntimeEvent = RuntimeEvent; + /// The ubiquitous origin type. + type RuntimeOrigin = RuntimeOrigin; + /// The aggregated RuntimeTask type. + type RuntimeTask = RuntimeTask; + /// Maximum number of block number to block hash mappings to keep (oldest pruned first). + type BlockHashCount = ConstU32<256>; + /// Maximum weight of each block. With a default weight system of 1byte == 1weight, 4mb is ok. + type BlockWeights = RuntimeBlockWeights; + /// Maximum size of all encoded transactions (in bytes) that are allowed in one block. + type BlockLength = BlockLength; + /// Runtime version. + type Version = Version; + type PalletInfo = PalletInfo; + type AccountData = pallet_balances::AccountData; + type OnNewAccount = (); + type OnKilledAccount = (); + type DbWeight = RocksDbWeight; + type BaseCallFilter = MaintenanceMode; + type SystemWeightInfo = (); + /// This is used as an identifier of the chain. 42 is the generic substrate prefix. + type SS58Prefix = ConstU16<1287>; + type OnSetCode = cumulus_pallet_parachain_system::ParachainSetCode; + type MaxConsumers = frame_support::traits::ConstU32<16>; +} + +impl pallet_utility::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + type PalletsOrigin = OriginCaller; + type WeightInfo = moonbeam_weights::pallet_utility::WeightInfo; +} + +impl pallet_timestamp::Config for Runtime { + /// A timestamp: milliseconds since the unix epoch. + type Moment = u64; + type OnTimestampSet = (); + type MinimumPeriod = ConstU64<3000>; + type WeightInfo = moonbeam_weights::pallet_timestamp::WeightInfo; +} + +impl pallet_balances::Config for Runtime { + type MaxReserves = ConstU32<50>; + type ReserveIdentifier = [u8; 4]; + type MaxLocks = ConstU32<50>; + /// The type for recording an account's balance. + type Balance = Balance; + /// The ubiquitous event type. + type RuntimeEvent = RuntimeEvent; + type DustRemoval = (); + #[cfg(not(feature = "runtime-benchmarks"))] + type ExistentialDeposit = ConstU128<0>; + #[cfg(feature = "runtime-benchmarks")] + type ExistentialDeposit = ConstU128<1>; + type AccountStore = System; + type FreezeIdentifier = (); + type MaxFreezes = ConstU32<0>; + type RuntimeHoldReason = RuntimeHoldReason; + type RuntimeFreezeReason = RuntimeFreezeReason; + type WeightInfo = moonbeam_weights::pallet_balances::WeightInfo; +} + +pub struct DealWithFees(sp_std::marker::PhantomData); +impl OnUnbalanced>> for DealWithFees +where + R: pallet_balances::Config + pallet_treasury::Config, +{ + // this seems to be called for substrate-based transactions + fn on_unbalanceds( + mut fees_then_tips: impl Iterator>>, + ) { + if let Some(fees) = fees_then_tips.next() { + // for fees, 80% are burned, 20% to the treasury + let (_, to_treasury) = fees.ration(80, 20); + // Balances pallet automatically burns dropped Credits by decreasing + // total_supply accordingly + ResolveTo::, pallet_balances::Pallet>::on_unbalanced( + to_treasury, + ); + + // handle tip if there is one + if let Some(tip) = fees_then_tips.next() { + // for now we use the same burn/treasury strategy used for regular fees + let (_, to_treasury) = tip.ration(80, 20); + ResolveTo::, pallet_balances::Pallet>::on_unbalanced( + to_treasury, + ); + } + } + } + + // this is called from pallet_evm for Ethereum-based transactions + // (technically, it calls on_unbalanced, which calls this when non-zero) + fn on_nonzero_unbalanced(amount: Credit>) { + // Balances pallet automatically burns dropped Credits by decreasing + // total_supply accordingly + let (_, to_treasury) = amount.ration(80, 20); + ResolveTo::, pallet_balances::Pallet>::on_unbalanced(to_treasury); + } +} + +pub struct LengthToFee; +impl WeightToFeePolynomial for LengthToFee { + type Balance = Balance; + + fn polynomial() -> WeightToFeeCoefficients { + smallvec![ + WeightToFeeCoefficient { + degree: 1, + coeff_frac: Perbill::zero(), + coeff_integer: currency::TRANSACTION_BYTE_FEE, + negative: false, + }, + WeightToFeeCoefficient { + degree: 3, + coeff_frac: Perbill::zero(), + coeff_integer: 1 * currency::SUPPLY_FACTOR, + negative: false, + }, + ] + } +} + +impl pallet_transaction_payment::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type OnChargeTransaction = FungibleAdapter>; + type OperationalFeeMultiplier = ConstU8<5>; + type WeightToFee = ConstantMultiplier>; + type LengthToFee = LengthToFee; + type FeeMultiplierUpdate = FastAdjustingFeeUpdate; +} + +impl pallet_sudo::Config for Runtime { + type RuntimeCall = RuntimeCall; + type RuntimeEvent = RuntimeEvent; + type WeightInfo = moonbeam_weights::pallet_sudo::WeightInfo; +} + +impl pallet_evm_chain_id::Config for Runtime {} + +/// Current approximation of the gas/s consumption considering +/// EVM execution over compiled WASM (on 4.4Ghz CPU). +/// Given the 2 sec Weight, from which 75% only are used for transactions, +/// the total EVM execution gas limit is: GAS_PER_SECOND * 2 * 0.75 ~= 60_000_000. +pub const GAS_PER_SECOND: u64 = 40_000_000; + +/// Approximate ratio of the amount of Weight per Gas. +/// u64 works for approximations because Weight is a very small unit compared to gas. +pub const WEIGHT_PER_GAS: u64 = WEIGHT_REF_TIME_PER_SECOND / GAS_PER_SECOND; +/// The highest amount of new storage that can be created in a block (160KB). +pub const BLOCK_STORAGE_LIMIT: u64 = 160 * 1024; +parameter_types! { + pub BlockGasLimit: U256 + = U256::from(NORMAL_DISPATCH_RATIO * MAXIMUM_BLOCK_WEIGHT.ref_time() / WEIGHT_PER_GAS); + /// The portion of the `NORMAL_DISPATCH_RATIO` that we adjust the fees with. Blocks filled less + /// than this will decrease the weight and more will increase. + pub const TargetBlockFullness: Perquintill = Perquintill::from_percent(35); + /// The adjustment variable of the runtime. Higher values will cause `TargetBlockFullness` to + /// change the fees more rapidly. This fast multiplier responds by doubling/halving in + /// approximately one hour at extreme block congestion levels. + pub AdjustmentVariable: Multiplier = Multiplier::saturating_from_rational(4, 1_000); + /// Minimum amount of the multiplier. This value cannot be too low. A test case should ensure + /// that combined with `AdjustmentVariable`, we can recover from the minimum. + /// See `multiplier_can_grow_from_zero` in integration_tests.rs. + pub MinimumMultiplier: Multiplier = Multiplier::saturating_from_rational(1, 10); + /// Maximum multiplier. We pick a value that is expensive but not impossibly so; it should act + /// as a safety net. + pub MaximumMultiplier: Multiplier = Multiplier::from(100_000u128); + pub PrecompilesValue: MoonbasePrecompiles = MoonbasePrecompiles::<_>::new(); + pub WeightPerGas: Weight = Weight::from_parts(WEIGHT_PER_GAS, 0); + /// The amount of gas per pov. A ratio of 16 if we convert ref_time to gas and we compare + /// it with the pov_size for a block. E.g. + /// ceil( + /// (max_extrinsic.ref_time() / max_extrinsic.proof_size()) / WEIGHT_PER_GAS + /// ) + /// We should re-check `xcm_config::Erc20XcmBridgeTransferGasLimit` when changing this value + pub const GasLimitPovSizeRatio: u64 = 16; + /// The amount of gas per storage (in bytes): BLOCK_GAS_LIMIT / BLOCK_STORAGE_LIMIT + /// (60_000_000 / 160 kb) + pub GasLimitStorageGrowthRatio: u64 = 366; +} + +pub struct TransactionPaymentAsGasPrice; +impl FeeCalculator for TransactionPaymentAsGasPrice { + fn min_gas_price() -> (U256, Weight) { + // TODO: transaction-payment differs from EIP-1559 in that its tip and length fees are not + // scaled by the multiplier, which means its multiplier will be overstated when + // applied to an ethereum transaction + // note: transaction-payment uses both a congestion modifier (next_fee_multiplier, which is + // updated once per block in on_finalize) and a 'WeightToFee' implementation. Our + // runtime implements this as a 'ConstantModifier', so we can get away with a simple + // multiplication here. + // It is imperative that `saturating_mul_int` be performed as late as possible in the + // expression since it involves fixed point multiplication with a division by a fixed + // divisor. This leads to truncation and subsequent precision loss if performed too early. + // This can lead to min_gas_price being same across blocks even if the multiplier changes. + // There's still some precision loss when the final `gas_price` (used_gas * min_gas_price) + // is computed in frontier, but that's currently unavoidable. + let min_gas_price = TransactionPayment::next_fee_multiplier() + .saturating_mul_int(currency::WEIGHT_FEE.saturating_mul(WEIGHT_PER_GAS as u128)); + ( + min_gas_price.into(), + ::DbWeight::get().reads(1), + ) + } +} + +/// A "Fast" TargetedFeeAdjustment. Parameters chosen based on model described here: +/// https://research.web3.foundation/en/latest/polkadot/overview/2-token-economics.html#-1.-fast-adjusting-mechanism // editorconfig-checker-disable-line +/// +/// The adjustment algorithm boils down to: +/// +/// diff = (previous_block_weight - target) / maximum_block_weight +/// next_multiplier = prev_multiplier * (1 + (v * diff) + ((v * diff)^2 / 2)) +/// assert(next_multiplier > min) +/// where: v is AdjustmentVariable +/// target is TargetBlockFullness +/// min is MinimumMultiplier +pub type FastAdjustingFeeUpdate = TargetedFeeAdjustment< + R, + TargetBlockFullness, + AdjustmentVariable, + MinimumMultiplier, + MaximumMultiplier, +>; + +/// The author inherent provides an AccountId, but pallet evm needs an H160. +/// This simple adapter makes the conversion for any types T, U such that T: Into +pub struct FindAuthorAdapter(sp_std::marker::PhantomData<(T, U, Inner)>); + +impl FindAuthor for FindAuthorAdapter +where + T: Into, + Inner: FindAuthor, +{ + fn find_author<'a, I>(digests: I) -> Option + where + I: 'a + IntoIterator, + { + Inner::find_author(digests).map(Into::into) + } +} + +moonbeam_runtime_common::impl_on_charge_evm_transaction!(); + +impl pallet_evm::Config for Runtime { + type FeeCalculator = TransactionPaymentAsGasPrice; + type GasWeightMapping = pallet_evm::FixedGasWeightMapping; + type WeightPerGas = WeightPerGas; + type BlockHashMapping = pallet_ethereum::EthereumBlockHashMapping; + type CallOrigin = EnsureAddressRoot; + type WithdrawOrigin = EnsureAddressNever; + type AddressMapping = IdentityAddressMapping; + type Currency = Balances; + type RuntimeEvent = RuntimeEvent; + type Runner = pallet_evm::runner::stack::Runner; + type PrecompilesType = MoonbasePrecompiles; + type PrecompilesValue = PrecompilesValue; + type ChainId = EthereumChainId; + type OnChargeTransaction = OnChargeEVMTransaction>; + type BlockGasLimit = BlockGasLimit; + type FindAuthor = FindAuthorAdapter; + type OnCreate = (); + type GasLimitPovSizeRatio = GasLimitPovSizeRatio; + type SuicideQuickClearLimit = ConstU32<0>; + type GasLimitStorageGrowthRatio = GasLimitStorageGrowthRatio; + type Timestamp = RelayTimestamp; + type WeightInfo = moonbeam_weights::pallet_evm::WeightInfo; +} + +parameter_types! { + pub MaximumSchedulerWeight: Weight = NORMAL_DISPATCH_RATIO * RuntimeBlockWeights::get().max_block; + pub const NoPreimagePostponement: Option = Some(10); +} + +impl pallet_scheduler::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type RuntimeOrigin = RuntimeOrigin; + type PalletsOrigin = OriginCaller; + type RuntimeCall = RuntimeCall; + type MaximumWeight = MaximumSchedulerWeight; + type ScheduleOrigin = EnsureRoot; + type MaxScheduledPerBlock = ConstU32<50>; + type WeightInfo = moonbeam_weights::pallet_scheduler::WeightInfo; + type OriginPrivilegeCmp = EqualPrivilegeOnly; + type Preimages = Preimage; +} + +parameter_types! { + pub const PreimageBaseDeposit: Balance = 5 * currency::UNIT * currency::SUPPLY_FACTOR ; + pub const PreimageByteDeposit: Balance = currency::STORAGE_BYTE_FEE; + pub const PreimageHoldReason: RuntimeHoldReason = + RuntimeHoldReason::Preimage(pallet_preimage::HoldReason::Preimage); +} + +impl pallet_preimage::Config for Runtime { + type WeightInfo = moonbeam_weights::pallet_preimage::WeightInfo; + type RuntimeEvent = RuntimeEvent; + type Currency = Balances; + type ManagerOrigin = EnsureRoot; + type Consideration = HoldConsideration< + AccountId, + Balances, + PreimageHoldReason, + LinearStoragePrice, + >; +} + +parameter_types! { + pub const ProposalBond: Permill = Permill::from_percent(5); + pub const TreasuryId: PalletId = PalletId(*b"pc/trsry"); + pub TreasuryAccount: AccountId = Treasury::account_id(); +} + +type TreasuryApproveOrigin = EitherOfDiverse< + EnsureRoot, + pallet_collective::EnsureProportionAtLeast, +>; + +type TreasuryRejectOrigin = EitherOfDiverse< + EnsureRoot, + pallet_collective::EnsureProportionMoreThan, +>; + +impl pallet_treasury::Config for Runtime { + type PalletId = TreasuryId; + type Currency = Balances; + // At least three-fifths majority of the council is required (or root) to approve a proposal + type ApproveOrigin = TreasuryApproveOrigin; + // More than half of the council is required (or root) to reject a proposal + type RejectOrigin = TreasuryRejectOrigin; + type RuntimeEvent = RuntimeEvent; + // If spending proposal rejected, transfer proposer bond to treasury + type OnSlash = Treasury; + type ProposalBond = ProposalBond; + type ProposalBondMinimum = ConstU128<{ 1 * currency::UNIT * currency::SUPPLY_FACTOR }>; + type SpendPeriod = ConstU32<{ 6 * DAYS }>; + type Burn = (); + type BurnDestination = (); + type MaxApprovals = ConstU32<100>; + type WeightInfo = moonbeam_weights::pallet_treasury::WeightInfo; + type SpendFunds = (); + type ProposalBondMaximum = (); + #[cfg(not(feature = "runtime-benchmarks"))] + type SpendOrigin = frame_support::traits::NeverEnsureOrigin; // Disabled, no spending + #[cfg(feature = "runtime-benchmarks")] + type SpendOrigin = + frame_system::EnsureWithSuccess, AccountId, benches::MaxBalance>; + type AssetKind = (); + type Beneficiary = AccountId; + type BeneficiaryLookup = IdentityLookup; + type Paymaster = PayFromAccount; + type BalanceConverter = UnityAssetBalanceConversion; + type PayoutPeriod = ConstU32<{ 30 * DAYS }>; + #[cfg(feature = "runtime-benchmarks")] + type BenchmarkHelper = BenchmarkHelper; +} + +parameter_types! { + pub const MaxSubAccounts: u32 = 100; + pub const MaxAdditionalFields: u32 = 100; + pub const MaxRegistrars: u32 = 20; + pub const PendingUsernameExpiration: u32 = 7 * DAYS; + pub const MaxSuffixLength: u32 = 7; + pub const MaxUsernameLength: u32 = 32; +} + +type IdentityForceOrigin = + EitherOfDiverse, governance::custom_origins::GeneralAdmin>; +type IdentityRegistrarOrigin = + EitherOfDiverse, governance::custom_origins::GeneralAdmin>; + +impl pallet_identity::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Currency = Balances; + // Add one item in storage and take 258 bytes + type BasicDeposit = ConstU128<{ currency::deposit(1, 258) }>; + // Does not add any item to the storage but takes 1 bytes + type ByteDeposit = ConstU128<{ currency::deposit(0, 1) }>; + // Add one item in storage and take 53 bytes + type SubAccountDeposit = ConstU128<{ currency::deposit(1, 53) }>; + type MaxSubAccounts = MaxSubAccounts; + type IdentityInformation = pallet_identity::legacy::IdentityInfo; + type MaxRegistrars = MaxRegistrars; + type Slashed = Treasury; + type ForceOrigin = IdentityForceOrigin; + type RegistrarOrigin = IdentityRegistrarOrigin; + type OffchainSignature = Signature; + type SigningPublicKey = ::Signer; + type UsernameAuthorityOrigin = EnsureRoot; + type PendingUsernameExpiration = PendingUsernameExpiration; + type MaxSuffixLength = MaxSuffixLength; + type MaxUsernameLength = MaxUsernameLength; + type WeightInfo = moonbeam_weights::pallet_identity::WeightInfo; +} + +pub struct TransactionConverter; + +impl fp_rpc::ConvertTransaction for TransactionConverter { + fn convert_transaction(&self, transaction: pallet_ethereum::Transaction) -> UncheckedExtrinsic { + UncheckedExtrinsic::new_unsigned( + pallet_ethereum::Call::::transact { transaction }.into(), + ) + } +} + +impl fp_rpc::ConvertTransaction for TransactionConverter { + fn convert_transaction( + &self, + transaction: pallet_ethereum::Transaction, + ) -> opaque::UncheckedExtrinsic { + let extrinsic = UncheckedExtrinsic::new_unsigned( + pallet_ethereum::Call::::transact { transaction }.into(), + ); + let encoded = extrinsic.encode(); + opaque::UncheckedExtrinsic::decode(&mut &encoded[..]) + .expect("Encoded extrinsic is always valid") + } +} + +parameter_types! { + pub const PostBlockAndTxnHashes: PostLogContent = PostLogContent::BlockAndTxnHashes; +} + +impl pallet_ethereum::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type StateRoot = pallet_ethereum::IntermediateStateRoot; + type PostLogContent = PostBlockAndTxnHashes; + type ExtraDataLength = ConstU32<30>; +} + +pub struct EthereumXcmEnsureProxy; +impl xcm_primitives::EnsureProxy for EthereumXcmEnsureProxy { + fn ensure_ok(delegator: AccountId, delegatee: AccountId) -> Result<(), &'static str> { + // The EVM implicitely contains an Any proxy, so we only allow for "Any" proxies + let def: pallet_proxy::ProxyDefinition = + pallet_proxy::Pallet::::find_proxy( + &delegator, + &delegatee, + Some(ProxyType::Any), + ) + .map_err(|_| "proxy error: expected `ProxyType::Any`")?; + // We only allow to use it for delay zero proxies, as the call will immediatly be executed + ensure!(def.delay.is_zero(), "proxy delay is Non-zero`"); + Ok(()) + } +} + +impl pallet_ethereum_xcm::Config for Runtime { + type InvalidEvmTransactionError = pallet_ethereum::InvalidTransactionWrapper; + type ValidatedTransaction = pallet_ethereum::ValidatedTransaction; + type XcmEthereumOrigin = pallet_ethereum_xcm::EnsureXcmEthereumTransaction; + type ReservedXcmpWeight = ReservedXcmpWeight; + type EnsureProxy = EthereumXcmEnsureProxy; + type ControllerOrigin = EnsureRoot; +} + +parameter_types! { + pub const ReservedXcmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); + pub const ReservedDmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); + pub const RelayOrigin: AggregateMessageOrigin = AggregateMessageOrigin::Parent; +} + +/// Maximum number of blocks simultaneously accepted by the Runtime, not yet included +/// into the relay chain. +const UNINCLUDED_SEGMENT_CAPACITY: u32 = 3; +/// How many parachain blocks are processed by the relay chain per parent. Limits the +/// number of blocks authored per slot. +const BLOCK_PROCESSING_VELOCITY: u32 = 1; + +type ConsensusHook = pallet_async_backing::consensus_hook::FixedVelocityConsensusHook< + Runtime, + BLOCK_PROCESSING_VELOCITY, + UNINCLUDED_SEGMENT_CAPACITY, +>; + +impl cumulus_pallet_parachain_system::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type OnSystemEvent = (); + type SelfParaId = ParachainInfo; + type ReservedDmpWeight = ReservedDmpWeight; + type OutboundXcmpMessageSource = XcmpQueue; + type XcmpMessageHandler = EmergencyParaXcm; + type ReservedXcmpWeight = ReservedXcmpWeight; + type CheckAssociatedRelayNumber = EmergencyParaXcm; + type ConsensusHook = ConsensusHookWrapperForRelayTimestamp; + type DmpQueue = frame_support::traits::EnqueueWithOrigin; + type WeightInfo = cumulus_pallet_parachain_system::weights::SubstrateWeight; +} + +impl parachain_info::Config for Runtime {} + +pub struct OnNewRound; +impl pallet_parachain_staking::OnNewRound for OnNewRound { + fn on_new_round(round_index: pallet_parachain_staking::RoundIndex) -> Weight { + MoonbeamOrbiters::on_new_round(round_index) + } +} +pub struct PayoutCollatorOrOrbiterReward; +impl pallet_parachain_staking::PayoutCollatorReward for PayoutCollatorOrOrbiterReward { + fn payout_collator_reward( + for_round: pallet_parachain_staking::RoundIndex, + collator_id: AccountId, + amount: Balance, + ) -> Weight { + let extra_weight = + if MoonbeamOrbiters::is_collator_pool_with_active_orbiter(for_round, collator_id) { + MoonbeamOrbiters::distribute_rewards(for_round, collator_id, amount) + } else { + ParachainStaking::mint_collator_reward(for_round, collator_id, amount) + }; + + ::DbWeight::get() + .reads(1) + .saturating_add(extra_weight) + } +} + +pub struct OnInactiveCollator; +impl pallet_parachain_staking::OnInactiveCollator for OnInactiveCollator { + fn on_inactive_collator( + collator_id: AccountId, + round: pallet_parachain_staking::RoundIndex, + ) -> Result> { + let extra_weight = if !MoonbeamOrbiters::is_collator_pool_with_active_orbiter( + round, + collator_id.clone(), + ) { + ParachainStaking::go_offline_inner(collator_id)?; + ::WeightInfo::go_offline( + pallet_parachain_staking::MAX_CANDIDATES, + ) + } else { + Weight::zero() + }; + + Ok(::DbWeight::get() + .reads(1) + .saturating_add(extra_weight)) + } +} + +type MonetaryGovernanceOrigin = + EitherOfDiverse, governance::custom_origins::GeneralAdmin>; + +pub struct RelayChainSlotProvider; +impl Get for RelayChainSlotProvider { + fn get() -> Slot { + let slot_info = pallet_async_backing::pallet::Pallet::::slot_info(); + slot_info.unwrap_or_default().0 + } +} + +impl pallet_parachain_staking::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Currency = Balances; + type MonetaryGovernanceOrigin = MonetaryGovernanceOrigin; + /// Minimum round length is 2 minutes (10 * 12 second block times) + type MinBlocksPerRound = ConstU32<10>; + /// If a collator doesn't produce any block on this number of rounds, it is notified as inactive + type MaxOfflineRounds = ConstU32<2>; + /// Rounds before the collator leaving the candidates request can be executed + type LeaveCandidatesDelay = ConstU32<2>; + /// Rounds before the candidate bond increase/decrease can be executed + type CandidateBondLessDelay = ConstU32<2>; + /// Rounds before the delegator exit can be executed + type LeaveDelegatorsDelay = ConstU32<2>; + /// Rounds before the delegator revocation can be executed + type RevokeDelegationDelay = ConstU32<2>; + /// Rounds before the delegator bond increase/decrease can be executed + type DelegationBondLessDelay = ConstU32<2>; + /// Rounds before the reward is paid + type RewardPaymentDelay = ConstU32<2>; + /// Minimum collators selected per round, default at genesis and minimum forever after + type MinSelectedCandidates = ConstU32<8>; + /// Maximum top delegations per candidate + type MaxTopDelegationsPerCandidate = ConstU32<300>; + /// Maximum bottom delegations per candidate + type MaxBottomDelegationsPerCandidate = ConstU32<50>; + /// Maximum delegations per delegator + type MaxDelegationsPerDelegator = ConstU32<100>; + /// Minimum stake required to be reserved to be a candidate + type MinCandidateStk = ConstU128<{ 500 * currency::UNIT * currency::SUPPLY_FACTOR }>; + /// Minimum stake required to be reserved to be a delegator + type MinDelegation = ConstU128<{ 1 * currency::UNIT * currency::SUPPLY_FACTOR }>; + type BlockAuthor = AuthorInherent; + type OnCollatorPayout = (); + type PayoutCollatorReward = PayoutCollatorOrOrbiterReward; + type OnInactiveCollator = OnInactiveCollator; + type OnNewRound = OnNewRound; + type SlotProvider = RelayChainSlotProvider; + type WeightInfo = moonbeam_weights::pallet_parachain_staking::WeightInfo; + type MaxCandidates = ConstU32<200>; + type SlotDuration = ConstU64<6_000>; + type BlockTime = ConstU64<6_000>; +} + +impl pallet_author_inherent::Config for Runtime { + type SlotBeacon = RelaychainDataProvider; + type AccountLookup = MoonbeamOrbiters; + type CanAuthor = AuthorFilter; + type AuthorId = AccountId; + type WeightInfo = moonbeam_weights::pallet_author_inherent::WeightInfo; +} + +#[cfg(test)] +mod mock { + use super::*; + pub struct MockRandomness; + impl frame_support::traits::Randomness for MockRandomness { + fn random(subject: &[u8]) -> (H256, BlockNumber) { + (H256(sp_io::hashing::blake2_256(subject)), 0) + } + } +} + +impl pallet_author_slot_filter::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + #[cfg(not(test))] + type RandomnessSource = Randomness; + #[cfg(test)] + type RandomnessSource = mock::MockRandomness; + type PotentialAuthors = ParachainStaking; + type WeightInfo = moonbeam_weights::pallet_author_slot_filter::WeightInfo; +} + +impl pallet_async_backing::Config for Runtime { + type AllowMultipleBlocksPerSlot = ConstBool; + type GetAndVerifySlot = pallet_async_backing::RelaySlot; + type ExpectedBlockTime = ConstU64<6000>; +} + +parameter_types! { + pub const InitializationPayment: Perbill = Perbill::from_percent(30); + pub const RelaySignaturesThreshold: Perbill = Perbill::from_percent(100); + pub const SignatureNetworkIdentifier: &'static [u8] = b"moonbase-"; + +} + +impl pallet_crowdloan_rewards::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Initialized = ConstBool; + type InitializationPayment = InitializationPayment; + type MaxInitContributors = ConstU32<500>; + // TODO to be revisited + type MinimumReward = ConstU128<0>; + type RewardCurrency = Balances; + type RelayChainAccountId = [u8; 32]; + type RewardAddressAssociateOrigin = EnsureSigned; + type RewardAddressChangeOrigin = EnsureSigned; + type RewardAddressRelayVoteThreshold = RelaySignaturesThreshold; + type SignatureNetworkIdentifier = SignatureNetworkIdentifier; + type VestingBlockNumber = relay_chain::BlockNumber; + type VestingBlockProvider = RelaychainDataProvider; + type WeightInfo = moonbeam_weights::pallet_crowdloan_rewards::WeightInfo; +} + +// This is a simple session key manager. It should probably either work with, or be replaced +// entirely by pallet sessions +impl pallet_author_mapping::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type DepositCurrency = Balances; + type DepositAmount = ConstU128<{ 100 * currency::UNIT * currency::SUPPLY_FACTOR }>; + type Keys = session_keys_primitives::VrfId; + type WeightInfo = moonbeam_weights::pallet_author_mapping::WeightInfo; +} + +/// The type used to represent the kinds of proxying allowed. +#[derive( + Copy, + Clone, + Eq, + PartialEq, + Ord, + PartialOrd, + Encode, + Decode, + Debug, + MaxEncodedLen, + TypeInfo, + Serialize, + Deserialize, +)] +pub enum ProxyType { + /// All calls can be proxied. This is the trivial/most permissive filter. + Any = 0, + /// Only extrinsics that do not transfer funds. + NonTransfer = 1, + /// Only extrinsics related to governance (democracy and collectives). + Governance = 2, + /// Only extrinsics related to staking. + Staking = 3, + /// Allow to veto an announced proxy call. + CancelProxy = 4, + /// Allow extrinsic related to Balances. + Balances = 5, + /// Allow extrinsic related to AuthorMapping. + AuthorMapping = 6, + /// Allow extrinsic related to IdentityJudgement. + IdentityJudgement = 7, +} + +impl Default for ProxyType { + fn default() -> Self { + Self::Any + } +} + +fn is_governance_precompile(precompile_name: &precompiles::PrecompileName) -> bool { + matches!( + precompile_name, + PrecompileName::TreasuryCouncilInstance + | PrecompileName::ReferendaPrecompile + | PrecompileName::ConvictionVotingPrecompile + | PrecompileName::PreimagePrecompile + | PrecompileName::OpenTechCommitteeInstance, + ) +} + +// Be careful: Each time this filter is modified, the substrate filter must also be modified +// consistently. +impl pallet_evm_precompile_proxy::EvmProxyCallFilter for ProxyType { + fn is_evm_proxy_call_allowed( + &self, + call: &pallet_evm_precompile_proxy::EvmSubCall, + recipient_has_code: bool, + gas: u64, + ) -> precompile_utils::EvmResult { + Ok(match self { + ProxyType::Any => true, + ProxyType::NonTransfer => { + call.value == U256::zero() + && match PrecompileName::from_address(call.to.0) { + Some( + PrecompileName::AuthorMappingPrecompile + | PrecompileName::IdentityPrecompile + | PrecompileName::ParachainStakingPrecompile, + ) => true, + Some(ref precompile) if is_governance_precompile(precompile) => true, + _ => false, + } + } + ProxyType::Governance => { + call.value == U256::zero() + && matches!( + PrecompileName::from_address(call.to.0), + Some(ref precompile) if is_governance_precompile(precompile) + ) + } + ProxyType::Staking => { + call.value == U256::zero() + && matches!( + PrecompileName::from_address(call.to.0), + Some( + PrecompileName::AuthorMappingPrecompile + | PrecompileName::ParachainStakingPrecompile + ) + ) + } + // The proxy precompile does not contain method cancel_proxy + ProxyType::CancelProxy => false, + ProxyType::Balances => { + // Allow only "simple" accounts as recipient (no code nor precompile). + // Note: Checking the presence of the code is not enough because some precompiles + // have no code. + !recipient_has_code + && !precompile_utils::precompile_set::is_precompile_or_fail::( + call.to.0, gas, + )? + } + ProxyType::AuthorMapping => { + call.value == U256::zero() + && matches!( + PrecompileName::from_address(call.to.0), + Some(PrecompileName::AuthorMappingPrecompile) + ) + } + // There is no identity precompile + ProxyType::IdentityJudgement => false, + }) + } +} + +// Be careful: Each time this filter is modified, the EVM filter must also be modified consistently. +impl InstanceFilter for ProxyType { + fn filter(&self, c: &RuntimeCall) -> bool { + match self { + ProxyType::Any => true, + ProxyType::NonTransfer => { + matches!( + c, + RuntimeCall::System(..) + | RuntimeCall::ParachainSystem(..) + | RuntimeCall::Timestamp(..) + | RuntimeCall::ParachainStaking(..) + | RuntimeCall::Referenda(..) + | RuntimeCall::Preimage(..) + | RuntimeCall::ConvictionVoting(..) + | RuntimeCall::TreasuryCouncilCollective(..) + | RuntimeCall::OpenTechCommitteeCollective(..) + | RuntimeCall::Identity(..) + | RuntimeCall::Utility(..) + | RuntimeCall::Proxy(..) | RuntimeCall::AuthorMapping(..) + | RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::claim { .. } + ) + ) + } + ProxyType::Governance => matches!( + c, + RuntimeCall::Referenda(..) + | RuntimeCall::Preimage(..) + | RuntimeCall::ConvictionVoting(..) + | RuntimeCall::TreasuryCouncilCollective(..) + | RuntimeCall::OpenTechCommitteeCollective(..) + | RuntimeCall::Utility(..) + ), + ProxyType::Staking => matches!( + c, + RuntimeCall::ParachainStaking(..) + | RuntimeCall::Utility(..) + | RuntimeCall::AuthorMapping(..) + | RuntimeCall::MoonbeamOrbiters(..) + ), + ProxyType::CancelProxy => matches!( + c, + RuntimeCall::Proxy(pallet_proxy::Call::reject_announcement { .. }) + ), + ProxyType::Balances => { + matches!(c, RuntimeCall::Balances(..) | RuntimeCall::Utility(..)) + } + ProxyType::AuthorMapping => matches!(c, RuntimeCall::AuthorMapping(..)), + ProxyType::IdentityJudgement => matches!( + c, + RuntimeCall::Identity(pallet_identity::Call::provide_judgement { .. }) + | RuntimeCall::Utility(..) + ), + } + } + + fn is_superset(&self, o: &Self) -> bool { + match (self, o) { + (x, y) if x == y => true, + (ProxyType::Any, _) => true, + (_, ProxyType::Any) => false, + _ => false, + } + } +} + +impl pallet_proxy::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + type Currency = Balances; + type ProxyType = ProxyType; + // One storage item; key size 32, value size 8 + type ProxyDepositBase = ConstU128<{ currency::deposit(1, 8) }>; + // Additional storage item size of 21 bytes (20 bytes AccountId + 1 byte sizeof(ProxyType)). + type ProxyDepositFactor = ConstU128<{ currency::deposit(0, 21) }>; + type MaxProxies = ConstU32<32>; + type WeightInfo = moonbeam_weights::pallet_proxy::WeightInfo; + type MaxPending = ConstU32<32>; + type CallHasher = BlakeTwo256; + type AnnouncementDepositBase = ConstU128<{ currency::deposit(1, 8) }>; + // Additional storage item size of 56 bytes: + // - 20 bytes AccountId + // - 32 bytes Hasher (Blake2256) + // - 4 bytes BlockNumber (u32) + type AnnouncementDepositFactor = ConstU128<{ currency::deposit(0, 56) }>; +} + +impl pallet_migrations::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + // TODO wire up our correct list of migrations here. Maybe this shouldn't be in + // `moonbeam_runtime_common`. + type MigrationsList = ( + moonbeam_runtime_common::migrations::CommonMigrations, + migrations::MoonbaseMigrations, + ); + type XcmExecutionManager = XcmExecutionManager; +} + +impl pallet_moonbeam_lazy_migrations::Config for Runtime { + type WeightInfo = moonbeam_weights::pallet_moonbeam_lazy_migrations::WeightInfo; +} + +/// Maintenance mode Call filter +pub struct MaintenanceFilter; +impl Contains for MaintenanceFilter { + fn contains(c: &RuntimeCall) -> bool { + match c { + RuntimeCall::Assets(_) => false, + RuntimeCall::Balances(_) => false, + RuntimeCall::CrowdloanRewards(_) => false, + RuntimeCall::Ethereum(_) => false, + RuntimeCall::EVM(_) => false, + RuntimeCall::Identity(_) => false, + RuntimeCall::XTokens(_) => false, + RuntimeCall::ParachainStaking(_) => false, + RuntimeCall::MoonbeamOrbiters(_) => false, + RuntimeCall::PolkadotXcm(_) => false, + RuntimeCall::Treasury(_) => false, + RuntimeCall::XcmTransactor(_) => false, + RuntimeCall::EthereumXcm(_) => false, + _ => true, + } + } +} + +/// Normal Call Filter +/// We dont allow to create nor mint assets, this for now is disabled +/// We only allow transfers. For now creation of assets will go through +/// asset-manager, while minting/burning only happens through xcm messages +/// This can change in the future +pub struct NormalFilter; +impl Contains for NormalFilter { + fn contains(c: &RuntimeCall) -> bool { + match c { + RuntimeCall::Assets(method) => match method { + pallet_assets::Call::transfer { .. } => true, + pallet_assets::Call::transfer_keep_alive { .. } => true, + pallet_assets::Call::approve_transfer { .. } => true, + pallet_assets::Call::transfer_approved { .. } => true, + pallet_assets::Call::cancel_approval { .. } => true, + pallet_assets::Call::destroy_accounts { .. } => true, + pallet_assets::Call::destroy_approvals { .. } => true, + pallet_assets::Call::finish_destroy { .. } => true, + _ => false, + }, + // We filter anonymous proxy as they make "reserve" inconsistent + // See: https://github.com/paritytech/substrate/blob/37cca710eed3dadd4ed5364c7686608f5175cce1/frame/proxy/src/lib.rs#L270 // editorconfig-checker-disable-line + RuntimeCall::Proxy(method) => match method { + pallet_proxy::Call::create_pure { .. } => false, + pallet_proxy::Call::kill_pure { .. } => false, + pallet_proxy::Call::proxy { real, .. } => { + !pallet_evm::AccountCodes::::contains_key(H160::from(*real)) + } + _ => true, + }, + // Filtering the EVM prevents possible re-entrancy from the precompiles which could + // lead to unexpected scenarios. + // See https://github.com/PureStake/sr-moonbeam/issues/30 + // Note: It is also assumed that EVM calls are only allowed through `Origin::Root` so + // this can be seen as an additional security + RuntimeCall::EVM(_) => false, + RuntimeCall::Treasury( + pallet_treasury::Call::spend { .. } + | pallet_treasury::Call::payout { .. } + | pallet_treasury::Call::check_status { .. } + | pallet_treasury::Call::void_spend { .. }, + ) => false, + _ => true, + } + } +} + +pub struct XcmExecutionManager; +impl moonkit_xcm_primitives::PauseXcmExecution for XcmExecutionManager { + fn suspend_xcm_execution() -> DispatchResult { + XcmpQueue::suspend_xcm_execution(RuntimeOrigin::root()) + } + fn resume_xcm_execution() -> DispatchResult { + XcmpQueue::resume_xcm_execution(RuntimeOrigin::root()) + } +} + +impl pallet_maintenance_mode::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type NormalCallFilter = NormalFilter; + type MaintenanceCallFilter = MaintenanceFilter; + type MaintenanceOrigin = + pallet_collective::EnsureProportionAtLeast; + type XcmExecutionManager = XcmExecutionManager; +} + +impl pallet_proxy_genesis_companion::Config for Runtime { + type ProxyType = ProxyType; +} + +parameter_types! { + pub OrbiterReserveIdentifier: [u8; 4] = [b'o', b'r', b'b', b'i']; +} + +type AddCollatorOrigin = + EitherOfDiverse, governance::custom_origins::GeneralAdmin>; +type DelCollatorOrigin = + EitherOfDiverse, governance::custom_origins::GeneralAdmin>; + +impl pallet_moonbeam_orbiters::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type AccountLookup = AuthorMapping; + type AddCollatorOrigin = AddCollatorOrigin; + type Currency = Balances; + type DelCollatorOrigin = DelCollatorOrigin; + /// Maximum number of orbiters per collator + type MaxPoolSize = ConstU32<8>; + /// Maximum number of round to keep on storage + type MaxRoundArchive = ConstU32<4>; + type OrbiterReserveIdentifier = OrbiterReserveIdentifier; + type RotatePeriod = ConstU32<3>; + /// Round index type. + type RoundIndex = pallet_parachain_staking::RoundIndex; + type WeightInfo = moonbeam_weights::pallet_moonbeam_orbiters::WeightInfo; +} + +/// Only callable after `set_validation_data` is called which forms this proof the same way +fn relay_chain_state_proof() -> RelayChainStateProof { + let relay_storage_root = ParachainSystem::validation_data() + .expect("set in `set_validation_data`") + .relay_parent_storage_root; + let relay_chain_state = + ParachainSystem::relay_state_proof().expect("set in `set_validation_data`"); + RelayChainStateProof::new(ParachainInfo::get(), relay_storage_root, relay_chain_state) + .expect("Invalid relay chain state proof, already constructed in `set_validation_data`") +} + +pub struct BabeDataGetter; +impl pallet_randomness::GetBabeData> for BabeDataGetter { + // Tolerate panic here because only ever called in inherent (so can be omitted) + fn get_epoch_index() -> u64 { + if cfg!(feature = "runtime-benchmarks") { + // storage reads as per actual reads + let _relay_storage_root = ParachainSystem::validation_data(); + let _relay_chain_state = ParachainSystem::relay_state_proof(); + const BENCHMARKING_NEW_EPOCH: u64 = 10u64; + return BENCHMARKING_NEW_EPOCH; + } + relay_chain_state_proof() + .read_optional_entry(relay_chain::well_known_keys::EPOCH_INDEX) + .ok() + .flatten() + .expect("expected to be able to read epoch index from relay chain state proof") + } + fn get_epoch_randomness() -> Option { + if cfg!(feature = "runtime-benchmarks") { + // storage reads as per actual reads + let _relay_storage_root = ParachainSystem::validation_data(); + let _relay_chain_state = ParachainSystem::relay_state_proof(); + let benchmarking_babe_output = Hash::default(); + return Some(benchmarking_babe_output); + } + relay_chain_state_proof() + .read_optional_entry(relay_chain::well_known_keys::ONE_EPOCH_AGO_RANDOMNESS) + .ok() + .flatten() + } +} + +impl pallet_randomness::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type AddressMapping = sp_runtime::traits::ConvertInto; + type Currency = Balances; + type BabeDataGetter = BabeDataGetter; + type VrfKeyLookup = AuthorMapping; + type Deposit = ConstU128<{ 1 * currency::UNIT * currency::SUPPLY_FACTOR }>; + type MaxRandomWords = ConstU8<100>; + type MinBlockDelay = ConstU32<2>; + type MaxBlockDelay = ConstU32<2_000>; + type BlockExpirationDelay = ConstU32<10_000>; + type EpochExpirationDelay = ConstU64<10_000>; + type WeightInfo = moonbeam_weights::pallet_randomness::WeightInfo; +} + +impl pallet_root_testing::Config for Runtime { + type RuntimeEvent = RuntimeEvent; +} + +parameter_types! { + // One storage item; key size is 32 + 20; value is size 4+4+16+20 bytes = 44 bytes. + pub const DepositBase: Balance = currency::deposit(1, 96); + // Additional storage item size of 20 bytes. + pub const DepositFactor: Balance = currency::deposit(0, 20); + pub const MaxSignatories: u32 = 100; +} + +impl pallet_multisig::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + type Currency = Balances; + type DepositBase = DepositBase; + type DepositFactor = DepositFactor; + type MaxSignatories = MaxSignatories; + type WeightInfo = moonbeam_weights::pallet_multisig::WeightInfo; +} + +impl pallet_relay_storage_roots::Config for Runtime { + type MaxStorageRoots = ConstU32<30>; + type RelaychainStateProvider = cumulus_pallet_parachain_system::RelaychainDataProvider; + type WeightInfo = moonbeam_weights::pallet_relay_storage_roots::WeightInfo; +} + +impl pallet_precompile_benchmarks::Config for Runtime { + type WeightInfo = moonbeam_weights::pallet_precompile_benchmarks::WeightInfo; +} + +construct_runtime! { + pub enum Runtime + { + System: frame_system::{Pallet, Call, Storage, Config, Event} = 0, + Utility: pallet_utility::{Pallet, Call, Event} = 1, + Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent} = 2, + Balances: pallet_balances::{Pallet, Call, Storage, Config, Event} = 3, + Sudo: pallet_sudo::{Pallet, Call, Config, Storage, Event} = 4, + // Previously 5: pallet_randomness_collective_flip + ParachainSystem: cumulus_pallet_parachain_system::{Pallet, Call, Storage, Inherent, Event} = 6, + TransactionPayment: pallet_transaction_payment::{Pallet, Storage, Config, Event} = 7, + ParachainInfo: parachain_info::{Pallet, Storage, Config} = 8, + EthereumChainId: pallet_evm_chain_id::{Pallet, Storage, Config} = 9, + EVM: pallet_evm::{Pallet, Config, Call, Storage, Event} = 10, + Ethereum: pallet_ethereum::{Pallet, Call, Storage, Event, Origin, Config} = 11, + ParachainStaking: pallet_parachain_staking::{Pallet, Call, Storage, Event, Config} = 12, + Scheduler: pallet_scheduler::{Pallet, Storage, Event, Call} = 13, + // Previously 14: pallet_democracy::{Pallet, Storage, Config, Event, Call} = 14, + // Previously 15: CouncilCollective: pallet_collective:: + // Previously 16: TechCommitteeCollective: pallet_collective:: + Treasury: pallet_treasury::{Pallet, Storage, Config, Event, Call} = 17, + AuthorInherent: pallet_author_inherent::{Pallet, Call, Storage, Inherent} = 18, + AuthorFilter: pallet_author_slot_filter::{Pallet, Call, Storage, Event, Config} = 19, + CrowdloanRewards: pallet_crowdloan_rewards::{Pallet, Call, Config, Storage, Event} = 20, + AuthorMapping: pallet_author_mapping::{Pallet, Call, Config, Storage, Event} = 21, + Proxy: pallet_proxy::{Pallet, Call, Storage, Event} = 22, + MaintenanceMode: pallet_maintenance_mode::{Pallet, Call, Config, Storage, Event} = 23, + Identity: pallet_identity::{Pallet, Call, Storage, Event} = 24, + XcmpQueue: cumulus_pallet_xcmp_queue::{Pallet, Call, Storage, Event} = 25, + CumulusXcm: cumulus_pallet_xcm::{Pallet, Event, Origin} = 26, + DmpQueue: cumulus_pallet_dmp_queue::{Pallet, Call, Storage, Event} = 27, + PolkadotXcm: pallet_xcm::{Pallet, Call, Storage, Event, Origin, Config} = 28, + Assets: pallet_assets::{Pallet, Call, Storage, Event} = 29, + XTokens: orml_xtokens::{Pallet, Call, Storage, Event} = 30, + AssetManager: pallet_asset_manager::{Pallet, Call, Storage, Event} = 31, + Migrations: pallet_migrations::{Pallet, Storage, Config, Event} = 32, + XcmTransactor: pallet_xcm_transactor::{Pallet, Call, Config, Storage, Event} = 33, + ProxyGenesisCompanion: pallet_proxy_genesis_companion::{Pallet, Config} = 34, + // Previously 35: BaseFee + // Previously 36: pallet_assets:: + MoonbeamOrbiters: pallet_moonbeam_orbiters::{Pallet, Call, Storage, Event, Config} = 37, + EthereumXcm: pallet_ethereum_xcm::{Pallet, Call, Storage, Origin} = 38, + Randomness: pallet_randomness::{Pallet, Call, Storage, Event, Inherent} = 39, + TreasuryCouncilCollective: + pallet_collective::::{Pallet, Call, Storage, Event, Origin, Config} = 40, + ConvictionVoting: pallet_conviction_voting::{Pallet, Call, Storage, Event} = 41, + Referenda: pallet_referenda::{Pallet, Call, Storage, Event} = 42, + Origins: governance::custom_origins::{Origin} = 43, + Preimage: pallet_preimage::{Pallet, Call, Storage, Event, HoldReason} = 44, + Whitelist: pallet_whitelist::{Pallet, Call, Storage, Event} = 45, + OpenTechCommitteeCollective: + pallet_collective::::{Pallet, Call, Storage, Event, Origin, Config} = 46, + RootTesting: pallet_root_testing::{Pallet, Call, Storage, Event} = 47, + Erc20XcmBridge: pallet_erc20_xcm_bridge::{Pallet} = 48, + Multisig: pallet_multisig::{Pallet, Call, Storage, Event} = 49, + AsyncBacking: pallet_async_backing::{Pallet, Storage} = 50, + MoonbeamLazyMigrations: pallet_moonbeam_lazy_migrations::{Pallet, Call, Storage} = 51, + RelayStorageRoots: pallet_relay_storage_roots::{Pallet, Storage} = 52, + PrecompileBenchmarks: pallet_precompile_benchmarks::{Pallet} = 53, + MessageQueue: pallet_message_queue::{Pallet, Call, Storage, Event} = 54, + EmergencyParaXcm: pallet_emergency_para_xcm::{Pallet, Call, Storage, Event} = 55, + } +} + +/// 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 = + fp_self_contained::UncheckedExtrinsic; +/// Extrinsic type that has already been checked. +pub type CheckedExtrinsic = + fp_self_contained::CheckedExtrinsic; +/// Executive: handles dispatch to the various pallets. +pub type Executive = frame_executive::Executive< + Runtime, + Block, + frame_system::ChainContext, + Runtime, + AllPalletsWithSystem, +>; + +#[cfg(feature = "runtime-benchmarks")] +use moonbeam_runtime_common::benchmarking::BenchmarkHelper; +#[cfg(feature = "runtime-benchmarks")] +mod benches { + frame_support::parameter_types! { + pub const MaxBalance: crate::Balance = crate::Balance::max_value(); + } + + frame_benchmarking::define_benchmarks!( + [pallet_utility, Utility] + [pallet_timestamp, Timestamp] + [pallet_balances, Balances] + [pallet_sudo, Sudo] + [pallet_evm, EVM] + [pallet_assets, Assets] + [pallet_parachain_staking, ParachainStaking] + [pallet_scheduler, Scheduler] + [pallet_treasury, Treasury] + [pallet_author_inherent, AuthorInherent] + [pallet_author_slot_filter, AuthorFilter] + [pallet_crowdloan_rewards, CrowdloanRewards] + [pallet_author_mapping, AuthorMapping] + [pallet_proxy, Proxy] + [pallet_identity, Identity] + [cumulus_pallet_xcmp_queue, XcmpQueue] + [pallet_xcm, PalletXcmExtrinsicsBenchmark::] + [pallet_asset_manager, AssetManager] + [pallet_xcm_transactor, XcmTransactor] + [pallet_moonbeam_orbiters, MoonbeamOrbiters] + [pallet_randomness, Randomness] + [pallet_conviction_voting, ConvictionVoting] + [pallet_referenda, Referenda] + [pallet_preimage, Preimage] + [pallet_whitelist, Whitelist] + [pallet_multisig, Multisig] + [pallet_relay_storage_roots, RelayStorageRoots] + [pallet_precompile_benchmarks, PrecompileBenchmarks] + [pallet_moonbeam_lazy_migrations, MoonbeamLazyMigrations] + ); +} + +// All of our runtimes share most of their Runtime API implementations. +// We use a macro to implement this common part and add runtime-specific additional implementations. +// This macro expands to : +// ``` +// impl_runtime_apis! { +// // All impl blocks shared between all runtimes. +// +// // Specific impls provided to the `impl_runtime_apis_plus_common!` macro. +// } +// ``` +moonbeam_runtime_common::impl_runtime_apis_plus_common! { + impl sp_transaction_pool::runtime_api::TaggedTransactionQueue for Runtime { + fn validate_transaction( + source: TransactionSource, + xt: ::Extrinsic, + block_hash: ::Hash, + ) -> TransactionValidity { + // Filtered calls should not enter the tx pool as they'll fail if inserted. + // If this call is not allowed, we return early. + if !::BaseCallFilter::contains(&xt.0.function) { + return InvalidTransaction::Call.into(); + } + + // This runtime uses Substrate's pallet transaction payment. This + // makes the chain feel like a standard Substrate chain when submitting + // frame transactions and using Substrate ecosystem tools. It has the downside that + // transaction are not prioritized by gas_price. The following code reprioritizes + // transactions to overcome this. + // + // A more elegant, ethereum-first solution is + // a pallet that replaces pallet transaction payment, and allows users + // to directly specify a gas price rather than computing an effective one. + // #HopefullySomeday + + // First we pass the transactions to the standard FRAME executive. This calculates all the + // necessary tags, longevity and other properties that we will leave unchanged. + // This also assigns some priority that we don't care about and will overwrite next. + let mut intermediate_valid = Executive::validate_transaction(source, xt.clone(), block_hash)?; + + let dispatch_info = xt.get_dispatch_info(); + + // If this is a pallet ethereum transaction, then its priority is already set + // according to effective priority fee from pallet ethereum. If it is any other kind of + // transaction, we modify its priority. The goal is to arrive at a similar metric used + // by pallet ethereum, which means we derive a fee-per-gas from the txn's tip and + // weight. + Ok(match &xt.0.function { + RuntimeCall::Ethereum(transact { .. }) => intermediate_valid, + _ if dispatch_info.class != DispatchClass::Normal => intermediate_valid, + _ => { + let tip = match xt.0.signature { + None => 0, + Some((_, _, ref signed_extra)) => { + // Yuck, this depends on the index of charge transaction in Signed Extra + let charge_transaction = &signed_extra.7; + charge_transaction.tip() + } + }; + + let effective_gas = + ::GasWeightMapping::weight_to_gas( + dispatch_info.weight + ); + let tip_per_gas = if effective_gas > 0 { + tip.saturating_div(effective_gas as u128) + } else { + 0 + }; + + // Overwrite the original prioritization with this ethereum one + intermediate_valid.priority = tip_per_gas as u64; + intermediate_valid + } + }) + } + } + + impl async_backing_primitives::UnincludedSegmentApi for Runtime { + fn can_build_upon( + included_hash: ::Hash, + slot: async_backing_primitives::Slot, + ) -> bool { + ConsensusHook::can_build_upon(included_hash, slot) + } + } +} + +struct CheckInherents; + +// Parity has decided to depreciate this trait, but does not offer a satisfactory replacement, +// see issue: https://github.com/paritytech/polkadot-sdk/issues/2841 +#[allow(deprecated)] +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) + } +} + +// Nimbus's Executive wrapper allows relay validators to verify the seal digest +cumulus_pallet_parachain_system::register_validate_block!( + Runtime = Runtime, + BlockExecutor = pallet_author_inherent::BlockExecutor::, + CheckInherents = CheckInherents, +); + +moonbeam_runtime_common::impl_self_contained_call!(); + +// Shorthand for a Get field of a pallet Config. +#[macro_export] +macro_rules! get { + ($pallet:ident, $name:ident, $type:ty) => { + <<$crate::Runtime as $pallet::Config>::$name as $crate::Get<$type>>::get() + }; +} + +#[cfg(test)] +mod tests { + use super::{currency::*, *}; + + #[test] + // Helps us to identify a Pallet Call in case it exceeds the 1kb limit. + // Hint: this should be a rare case. If that happens, one or more of the dispatchable arguments + // need to be Boxed. + fn call_max_size() { + const CALL_ALIGN: u32 = 1024; + assert!(std::mem::size_of::>() <= CALL_ALIGN as usize); + assert!(std::mem::size_of::>() <= CALL_ALIGN as usize); + assert!(std::mem::size_of::>() <= CALL_ALIGN as usize); + assert!( + std::mem::size_of::>() <= CALL_ALIGN as usize + ); + assert!( + std::mem::size_of::>() <= CALL_ALIGN as usize + ); + assert!( + std::mem::size_of::>() <= CALL_ALIGN as usize + ); + assert!( + std::mem::size_of::>() <= CALL_ALIGN as usize + ); + assert!(std::mem::size_of::>() <= CALL_ALIGN as usize); + assert!( + std::mem::size_of::>() <= CALL_ALIGN as usize + ); + assert!(std::mem::size_of::>() <= CALL_ALIGN as usize); + assert!(std::mem::size_of::>() <= CALL_ALIGN as usize); + assert!(std::mem::size_of::>() <= CALL_ALIGN as usize); + assert!( + std::mem::size_of::>() + <= CALL_ALIGN as usize + ); + assert!(std::mem::size_of::>() <= CALL_ALIGN as usize); + assert!( + std::mem::size_of::>() + <= CALL_ALIGN as usize + ); + } + + #[test] + fn currency_constants_are_correct() { + assert_eq!(SUPPLY_FACTOR, 1); + + // txn fees + assert_eq!(TRANSACTION_BYTE_FEE, Balance::from(1 * GIGAWEI)); + assert_eq!( + get!(pallet_transaction_payment, OperationalFeeMultiplier, u8), + 5_u8 + ); + assert_eq!(STORAGE_BYTE_FEE, Balance::from(100 * MICROUNIT)); + + // treasury minimums + assert_eq!( + get!(pallet_treasury, ProposalBondMinimum, u128), + Balance::from(1 * UNIT) + ); + + // pallet_identity deposits + assert_eq!( + get!(pallet_identity, BasicDeposit, u128), + Balance::from(1 * UNIT + 25800 * MICROUNIT) + ); + assert_eq!( + get!(pallet_identity, ByteDeposit, u128), + Balance::from(100 * MICROUNIT) + ); + assert_eq!( + get!(pallet_identity, SubAccountDeposit, u128), + Balance::from(1 * UNIT + 5300 * MICROUNIT) + ); + + // staking minimums + assert_eq!( + get!(pallet_parachain_staking, MinCandidateStk, u128), + Balance::from(500 * UNIT) + ); + assert_eq!( + get!(pallet_parachain_staking, MinDelegation, u128), + Balance::from(1 * UNIT) + ); + + // crowdloan min reward + assert_eq!( + get!(pallet_crowdloan_rewards, MinimumReward, u128), + Balance::from(0u128) + ); + + // deposit for AuthorMapping + assert_eq!( + get!(pallet_author_mapping, DepositAmount, u128), + Balance::from(100 * UNIT) + ); + + // proxy deposits + assert_eq!( + get!(pallet_proxy, ProxyDepositBase, u128), + Balance::from(1 * UNIT + 800 * MICROUNIT) + ); + assert_eq!( + get!(pallet_proxy, ProxyDepositFactor, u128), + Balance::from(2100 * MICROUNIT) + ); + assert_eq!( + get!(pallet_proxy, AnnouncementDepositBase, u128), + Balance::from(1 * UNIT + 800 * MICROUNIT) + ); + assert_eq!( + get!(pallet_proxy, AnnouncementDepositFactor, u128), + Balance::from(5600 * MICROUNIT) + ); + } + + #[test] + fn max_offline_rounds_lower_or_eq_than_reward_payment_delay() { + assert!( + get!(pallet_parachain_staking, MaxOfflineRounds, u32) + <= get!(pallet_parachain_staking, RewardPaymentDelay, u32) + ); + } + + #[test] + // Required migration is + // pallet_parachain_staking::migrations::IncreaseMaxTopDelegationsPerCandidate + // Purpose of this test is to remind of required migration if constant is ever changed + fn updating_maximum_delegators_per_candidate_requires_configuring_required_migration() { + assert_eq!( + get!(pallet_parachain_staking, MaxTopDelegationsPerCandidate, u32), + 300 + ); + assert_eq!( + get!( + pallet_parachain_staking, + MaxBottomDelegationsPerCandidate, + u32 + ), + 50 + ); + } + + #[test] + fn test_proxy_type_can_be_decoded_from_valid_values() { + let test_cases = vec![ + // (input, expected) + (0u8, ProxyType::Any), + (1, ProxyType::NonTransfer), + (2, ProxyType::Governance), + (3, ProxyType::Staking), + (4, ProxyType::CancelProxy), + (5, ProxyType::Balances), + (6, ProxyType::AuthorMapping), + (7, ProxyType::IdentityJudgement), + ]; + + for (input, expected) in test_cases { + let actual = ProxyType::decode(&mut input.to_le_bytes().as_slice()); + assert_eq!( + Ok(expected), + actual, + "failed decoding ProxyType for value '{}'", + input + ); + } + } + + #[test] + fn configured_base_extrinsic_weight_is_evm_compatible() { + let min_ethereum_transaction_weight = WeightPerGas::get() * 21_000; + let base_extrinsic = ::BlockWeights::get() + .get(frame_support::dispatch::DispatchClass::Normal) + .base_extrinsic; + assert!(base_extrinsic.ref_time() <= min_ethereum_transaction_weight.ref_time()); + } + + #[test] + fn test_storage_growth_ratio_is_correct() { + let expected_storage_growth_ratio = BlockGasLimit::get() + .low_u64() + .saturating_div(BLOCK_STORAGE_LIMIT); + let actual_storage_growth_ratio = + ::GasLimitStorageGrowthRatio::get(); + assert_eq!( + expected_storage_growth_ratio, actual_storage_growth_ratio, + "Storage growth ratio is not correct" + ); + } +} diff --git a/tracing/3001/runtime/moonbase/src/migrations.rs b/tracing/3001/runtime/moonbase/src/migrations.rs new file mode 100644 index 00000000..89f5279d --- /dev/null +++ b/tracing/3001/runtime/moonbase/src/migrations.rs @@ -0,0 +1,28 @@ +// Copyright 2024 Moonbeam Foundation Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! # Moonbase specific Migrations + +use pallet_migrations::{GetMigrations, Migration}; +use sp_std::{prelude::*, vec}; + +pub struct MoonbaseMigrations; + +impl GetMigrations for MoonbaseMigrations { + fn get_migrations() -> Vec> { + vec![] + } +} diff --git a/tracing/3001/runtime/moonbase/src/precompiles.rs b/tracing/3001/runtime/moonbase/src/precompiles.rs new file mode 100644 index 00000000..610adc44 --- /dev/null +++ b/tracing/3001/runtime/moonbase/src/precompiles.rs @@ -0,0 +1,340 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +use crate::{ + asset_config::ForeignAssetInstance, + xcm_config::{AssetType, XcmExecutorConfig}, + OpenTechCommitteeInstance, TreasuryCouncilInstance, +}; +use crate::{AccountId, AssetId, AssetManager, Balances, Erc20XcmBridge, Runtime, H160}; +use frame_support::parameter_types; +use moonkit_xcm_primitives::{ + location_matcher::{Erc20PalletMatcher, ForeignAssetMatcher, SingleAddressMatcher}, + AccountIdAssetIdConversion, +}; +use pallet_evm_precompile_author_mapping::AuthorMappingPrecompile; +use pallet_evm_precompile_balances_erc20::{Erc20BalancesPrecompile, Erc20Metadata}; +use pallet_evm_precompile_batch::BatchPrecompile; +use pallet_evm_precompile_blake2::Blake2F; +use pallet_evm_precompile_bn128::{Bn128Add, Bn128Mul, Bn128Pairing}; +use pallet_evm_precompile_call_permit::CallPermitPrecompile; +use pallet_evm_precompile_collective::CollectivePrecompile; +use pallet_evm_precompile_conviction_voting::ConvictionVotingPrecompile; +use pallet_evm_precompile_crowdloan_rewards::CrowdloanRewardsPrecompile; +use pallet_evm_precompile_gmp::GmpPrecompile; +use pallet_evm_precompile_identity::IdentityPrecompile; +use pallet_evm_precompile_modexp::Modexp; +use pallet_evm_precompile_parachain_staking::ParachainStakingPrecompile; +use pallet_evm_precompile_preimage::PreimagePrecompile; +use pallet_evm_precompile_proxy::{OnlyIsProxyAndProxy, ProxyPrecompile}; +use pallet_evm_precompile_randomness::RandomnessPrecompile; +use pallet_evm_precompile_referenda::ReferendaPrecompile; +use pallet_evm_precompile_registry::PrecompileRegistry; +use pallet_evm_precompile_relay_encoder::RelayEncoderPrecompile; +use pallet_evm_precompile_relay_verifier::RelayDataVerifierPrecompile; +use pallet_evm_precompile_sha3fips::Sha3FIPS256; +use pallet_evm_precompile_simple::{ECRecover, ECRecoverPublicKey, Identity, Ripemd160, Sha256}; +use pallet_evm_precompile_storage_cleaner::StorageCleanerPrecompile; +use pallet_evm_precompile_xcm::PalletXcmPrecompile; +use pallet_evm_precompile_xcm_transactor::{ + v1::XcmTransactorPrecompileV1, v2::XcmTransactorPrecompileV2, v3::XcmTransactorPrecompileV3, +}; +use pallet_evm_precompile_xcm_utils::{AllExceptXcmExecute, XcmUtilsPrecompile}; +use pallet_evm_precompile_xtokens::XtokensPrecompile; +use pallet_evm_precompileset_assets_erc20::Erc20AssetsPrecompileSet; +use precompile_utils::precompile_set::*; +use sp_std::prelude::*; +use xcm_primitives::AsAssetType; + +/// ERC20 metadata for the native token. +pub struct NativeErc20Metadata; + +impl Erc20Metadata for NativeErc20Metadata { + /// Returns the name of the token. + fn name() -> &'static str { + "DEV token" + } + + /// Returns the symbol of the token. + fn symbol() -> &'static str { + "DEV" + } + + /// Returns the decimals places of the token. + fn decimals() -> u8 { + 18 + } + + /// Must return `true` only if it represents the main native currency of + /// the network. It must be the currency used in `pallet_evm`. + fn is_native_currency() -> bool { + true + } +} + +/// The asset precompile address prefix. Addresses that match against this prefix will be routed +/// to Erc20AssetsPrecompileSet being marked as foreign +pub const FOREIGN_ASSET_PRECOMPILE_ADDRESS_PREFIX: &[u8] = &[255u8; 4]; +/// The asset precompile address prefix. Addresses that match against this prefix will be routed +/// to Erc20AssetsPrecompileSet being marked as local +pub const LOCAL_ASSET_PRECOMPILE_ADDRESS_PREFIX: &[u8] = &[255u8, 255u8, 255u8, 254u8]; + +/// Const to identify ERC20_BALANCES_PRECOMPILE address +pub const ERC20_BALANCES_PRECOMPILE: u64 = 2050; + +parameter_types! { + pub ForeignAssetPrefix: &'static [u8] = FOREIGN_ASSET_PRECOMPILE_ADDRESS_PREFIX; + pub LocalAssetPrefix: &'static [u8] = LOCAL_ASSET_PRECOMPILE_ADDRESS_PREFIX; +} + +type EthereumPrecompilesChecks = (AcceptDelegateCall, CallableByContract, CallableByPrecompile); + +// Pallet-xcm precompile types. +// Type that converts AssetId into Location +type AssetIdToLocationManager = AsAssetType; + +// The pallet-balances address is identified by ERC20_BALANCES_PRECOMPILE const +type SingleAddressMatch = SingleAddressMatcher; + +// Type that matches an AccountId with a foreign asset address (if any) +type ForeignAssetMatch = ForeignAssetMatcher; + +// Erc20XcmBridge pallet is used to match ERC20s +type Erc20Match = Erc20PalletMatcher; + +#[precompile_utils::precompile_name_from_address] +type MoonbasePrecompilesAt = ( + // Ethereum precompiles: + // We allow DELEGATECALL to stay compliant with Ethereum behavior. + PrecompileAt, ECRecover, EthereumPrecompilesChecks>, + PrecompileAt, Sha256, EthereumPrecompilesChecks>, + PrecompileAt, Ripemd160, EthereumPrecompilesChecks>, + PrecompileAt, Identity, EthereumPrecompilesChecks>, + PrecompileAt, Modexp, EthereumPrecompilesChecks>, + PrecompileAt, Bn128Add, EthereumPrecompilesChecks>, + PrecompileAt, Bn128Mul, EthereumPrecompilesChecks>, + PrecompileAt, Bn128Pairing, EthereumPrecompilesChecks>, + PrecompileAt, Blake2F, EthereumPrecompilesChecks>, + // Non-Moonbeam specific nor Ethereum precompiles : + PrecompileAt, Sha3FIPS256, (CallableByContract, CallableByPrecompile)>, + RemovedPrecompileAt>, // Dispatch + PrecompileAt, ECRecoverPublicKey, (CallableByContract, CallableByPrecompile)>, + PrecompileAt, StorageCleanerPrecompile, CallableByPrecompile>, + // Moonbeam specific precompiles: + PrecompileAt< + AddressU64<2048>, + ParachainStakingPrecompile, + (CallableByContract, CallableByPrecompile), + >, + PrecompileAt< + AddressU64<2049>, + CrowdloanRewardsPrecompile, + (CallableByContract, CallableByPrecompile), + >, + PrecompileAt< + AddressU64, + Erc20BalancesPrecompile, + (CallableByContract, CallableByPrecompile), + >, + RemovedPrecompileAt>, // DemocracyPrecompile + PrecompileAt< + AddressU64<2052>, + XtokensPrecompile, + ( + SubcallWithMaxNesting<1>, + CallableByContract, + CallableByPrecompile, + ), + >, + PrecompileAt< + AddressU64<2053>, + RelayEncoderPrecompile, + (CallableByContract, CallableByPrecompile), + >, + PrecompileAt< + AddressU64<2054>, + XcmTransactorPrecompileV1, + (CallableByContract, CallableByPrecompile), + >, + PrecompileAt< + AddressU64<2055>, + AuthorMappingPrecompile, + (CallableByContract, CallableByPrecompile), + >, + PrecompileAt< + AddressU64<2056>, + BatchPrecompile, + ( + SubcallWithMaxNesting<2>, + // Batch is the only precompile allowed to call Batch. + CallableByPrecompile>>, + ), + >, + PrecompileAt< + AddressU64<2057>, + RandomnessPrecompile, + (SubcallWithMaxNesting<0>, CallableByContract), + >, + PrecompileAt< + AddressU64<2058>, + CallPermitPrecompile, + (SubcallWithMaxNesting<0>, CallableByContract), + >, + PrecompileAt< + AddressU64<2059>, + ProxyPrecompile, + ( + CallableByContract>, + SubcallWithMaxNesting<0>, + // Batch is the only precompile allowed to call Proxy. + CallableByPrecompile>>, + ), + >, + PrecompileAt< + AddressU64<2060>, + XcmUtilsPrecompile, + CallableByContract>, + >, + PrecompileAt< + AddressU64<2061>, + XcmTransactorPrecompileV2, + (CallableByContract, CallableByPrecompile), + >, + // CouncilCollective precompile + RemovedPrecompileAt>, + // TechCommitteeCollective precompile + RemovedPrecompileAt>, + PrecompileAt< + AddressU64<2064>, + CollectivePrecompile, + (CallableByContract, CallableByPrecompile), + >, + PrecompileAt< + AddressU64<2065>, + ReferendaPrecompile, + (CallableByContract, CallableByPrecompile), + >, + PrecompileAt< + AddressU64<2066>, + ConvictionVotingPrecompile, + (CallableByContract, CallableByPrecompile), + >, + PrecompileAt< + AddressU64<2067>, + PreimagePrecompile, + (CallableByContract, CallableByPrecompile), + >, + PrecompileAt< + AddressU64<2068>, + CollectivePrecompile, + (CallableByContract, CallableByPrecompile), + >, + PrecompileAt< + AddressU64<2069>, + PrecompileRegistry, + (CallableByContract, CallableByPrecompile), + >, + PrecompileAt, GmpPrecompile, SubcallWithMaxNesting<0>>, + PrecompileAt< + AddressU64<2071>, + XcmTransactorPrecompileV3, + (CallableByContract, CallableByPrecompile), + >, + PrecompileAt< + AddressU64<2072>, + IdentityPrecompile, + (CallableByContract, CallableByPrecompile), + >, + PrecompileAt< + AddressU64<2073>, + RelayDataVerifierPrecompile, + (CallableByContract, CallableByPrecompile), + >, + PrecompileAt< + AddressU64<2074>, + PalletXcmPrecompile, + (CallableByContract, CallableByPrecompile), + >, +); + +pub struct DisabledLocalAssets(sp_std::marker::PhantomData); + +impl sp_core::Get> for DisabledLocalAssets +where + Runtime: frame_system::Config, + Runtime::AccountId: Into, + Runtime: AccountIdAssetIdConversion, +{ + fn get() -> Vec { + vec![ + // https://moonbase.subscan.io/extrinsic/5245322-6?event=5245322-22 + 182085191673801920759598290391359780050u128, + // https://moonbase.subscan.io/extrinsic/3244752-4?event=3244752-9 + 282223684955665977914983262584256755878u128, + // https://moonbase.subscan.io/extrinsic/3158280-4?event=3158280-9 + 235962050501460763853961856666389569138u128, + // https://moonbase.subscan.io/block/3045900?tab=event&&event=3045900-4 + 45350527686064227409532032051821627910u128, + // https://moonbase.subscan.io/extrinsic/3024306-4?event=3024306-9 + 199439015574556113723291251263369885338u128, + // https://moonbase.subscan.io/extrinsic/2921640-4?event=2921640-9 + 236426850287284823323011839750645103615u128, + // https://moonbase.subscan.io/extrinsic/2748867-4?event=2748867-9 + 14626673838203901761839010613793775004u128, + // https://moonbase.subscan.io/extrinsic/2709788-4?event=2709788-9 + 95328064580428769161981851380106820590u128, + // https://moonbase.subscan.io/extrinsic/2670844-4?event=2670844-9 + 339028723712074529056817184013808486301u128, + // https://moonbase.subscan.io/extrinsic/2555083-4?event=2555083-9 + 100481493116602214283160747599845770751u128, + // https://moonbase.subscan.io/extrinsic/2473880-3?event=2473880-8 + 319515966007349957795820176952936446433u128, + // https://moonbase.subscan.io/extrinsic/2346438-3?event=2346438-6 + 337110116006454532607322340792629567158u128, + // https://moonbase.subscan.io/extrinsic/2239102-3?event=2239102-6 + 255225902946708983196362678630947296516u128, + // https://moonbase.subscan.io/extrinsic/2142964-4?event=2142964-12 + 3356866138193769031598374869367363824u128, + // https://moonbase.subscan.io/extrinsic/1967538-6?event=1967538-28 + 144992676743556815849525085098140609495u128, + ] + .iter() + .map(|id| Runtime::asset_id_to_account(LOCAL_ASSET_PRECOMPILE_ADDRESS_PREFIX, *id).into()) + .collect() + } +} + +/// The PrecompileSet installed in the Moonbase runtime. +/// We include the nine Istanbul precompiles +/// (https://github.com/ethereum/go-ethereum/blob/3c46f557/core/vm/contracts.go#L69) +/// The following distribution has been decided for the precompiles +/// 0-1023: Ethereum Mainnet Precompiles +/// 1024-2047 Precompiles that are not in Ethereum Mainnet but are neither Moonbeam specific +/// 2048-4095 Moonbeam specific precompiles +pub type MoonbasePrecompiles = PrecompileSetBuilder< + R, + ( + // Skip precompiles if out of range. + PrecompilesInRangeInclusive<(AddressU64<1>, AddressU64<4095>), MoonbasePrecompilesAt>, + // Prefixed precompile sets (XC20) + PrecompileSetStartingWith< + ForeignAssetPrefix, + Erc20AssetsPrecompileSet, + (CallableByContract, CallableByPrecompile), + >, + RemovedPrecompilesAt>, + ), +>; diff --git a/tracing/3001/runtime/moonbase/src/xcm_config.rs b/tracing/3001/runtime/moonbase/src/xcm_config.rs new file mode 100644 index 00000000..63ec0d0c --- /dev/null +++ b/tracing/3001/runtime/moonbase/src/xcm_config.rs @@ -0,0 +1,732 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! XCM configuration for Moonbase. +//! + +use super::{ + governance, AccountId, AssetId, AssetManager, Balance, Balances, DealWithFees, + EmergencyParaXcm, Erc20XcmBridge, MaintenanceMode, MessageQueue, ParachainInfo, + ParachainSystem, Perbill, PolkadotXcm, Runtime, RuntimeBlockWeights, RuntimeCall, RuntimeEvent, + RuntimeOrigin, Treasury, XcmpQueue, +}; +use crate::OpenTechCommitteeInstance; +use moonbeam_runtime_common::weights as moonbeam_weights; +use moonkit_xcm_primitives::AccountIdAssetIdConversion; +use sp_runtime::{ + traits::{Hash as THash, MaybeEquivalence, PostDispatchInfoOf}, + DispatchErrorWithPostInfo, +}; + +use frame_support::{ + parameter_types, + traits::{EitherOfDiverse, Everything, Nothing, PalletInfoAccess, TransformOrigin}, +}; + +use frame_system::{EnsureRoot, RawOrigin}; +use sp_core::{ConstU32, H160, H256}; +use sp_weights::Weight; +use xcm_builder::{ + AccountKey20Aliases, AllowKnownQueryResponses, AllowSubscriptionsFrom, + AllowTopLevelPaidExecutionFrom, ConvertedConcreteId, DescribeAllTerminal, DescribeFamily, + EnsureXcmOrigin, FungibleAdapter as XcmCurrencyAdapter, FungiblesAdapter, HashedDescription, + NoChecking, ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, + SiblingParachainConvertsVia, SignedAccountKey20AsNative, SovereignSignedViaLocation, + TakeWeightCredit, UsingComponents, WeightInfoBounds, WithComputedOrigin, +}; + +use parachains_common::message_queue::{NarrowOriginToSibling, ParaIdToSibling}; + +use xcm::latest::prelude::{ + Asset, GlobalConsensus, InteriorLocation, Junction, Location, NetworkId, PalletInstance, + Parachain, +}; +use xcm_executor::traits::{CallDispatcher, ConvertLocation, JustTry}; + +use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; +use orml_xcm_support::MultiNativeAsset; +use xcm_primitives::{ + AbsoluteAndRelativeReserve, AccountIdToCurrencyId, AccountIdToLocation, AsAssetType, + FirstAssetTrader, SignedToAccountId20, UtilityAvailableCalls, UtilityEncodeCall, XcmTransact, +}; + +use parity_scale_codec::{Decode, Encode}; +use scale_info::TypeInfo; + +use sp_core::Get; +use sp_std::{ + convert::{From, Into, TryFrom}, + prelude::*, +}; + +use orml_traits::parameter_type_with_key; + +use crate::governance::referenda::{FastGeneralAdminOrRoot, GeneralAdminOrRoot}; + +parameter_types! { + // The network Id of the relay + pub const RelayNetwork: NetworkId = NetworkId::Westend; + // The relay chain Origin type + pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); + // The universal location within the global consensus system + pub UniversalLocation: InteriorLocation = + [GlobalConsensus(RelayNetwork::get()), Parachain(ParachainInfo::parachain_id().into())].into(); + + + // Self Reserve location, defines the multilocation identifiying the self-reserve currency + // This is used to match it also against our Balances pallet when we receive such + // a Location: (Self Balances pallet index) + // We use the RELATIVE multilocation + pub SelfReserve: Location = Location { + parents: 0, + interior: [ + PalletInstance(::index() as u8) + ].into() + }; +} + +/// Type for specifying how a `Location` 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 default `AccountId`. + ParentIsPreset, + // Sibling parachain origins convert to AccountId via the `ParaId::into`. + SiblingParachainConvertsVia, + // If we receive a Location of type AccountKey20, just generate a native account + AccountKey20Aliases, + // Generate remote accounts according to polkadot standards + HashedDescription>, +); + +/// Wrapper type around `LocationToAccountId` to convert an `AccountId` to type `H160`. +pub struct LocationToH160; +impl ConvertLocation for LocationToH160 { + fn convert_location(location: &Location) -> Option { + >::convert_location(location) + .map(Into::into) + } +} + +// The non-reserve fungible transactor type +// It will use pallet-assets, and the Id will be matched against AsAssetType +// This is intended to match FOREIGN ASSETS +pub type ForeignFungiblesTransactor = FungiblesAdapter< + // Use this fungibles implementation: + super::Assets, + // Use this currency when it is a fungible asset matching the given location or name: + ( + ConvertedConcreteId< + AssetId, + Balance, + AsAssetType, + JustTry, + >, + ), + // Do a simple punn to convert an AccountId20 Location into a native chain account ID: + LocationToAccountId, + // Our chain's account ID type (we can't get away without mentioning it explicitly): + AccountId, + // We dont allow teleports. + NoChecking, + // We dont track any teleports + (), +>; + +/// The transactor for our own chain currency. +pub type LocalAssetTransactor = XcmCurrencyAdapter< + // Use this currency: + Balances, + // Use this currency when it is a fungible asset matching any of the locations in + // SelfReserveRepresentations + xcm_builder::IsConcrete, + // We can convert the MultiLocations with our converter above: + LocationToAccountId, + // Our chain's account ID type (we can't get away without mentioning it explicitly): + AccountId, + // We dont allow teleport + (), +>; + +// We use all transactors +// These correspond to +// SelfReserve asset, both pre and post 0.9.16 +// Foreign assets +// We can remove the Old reanchor once +// we import https://github.com/open-web3-stack/open-runtime-module-library/pull/708 +pub type AssetTransactors = ( + LocalAssetTransactor, + ForeignFungiblesTransactor, + Erc20XcmBridge, +); + +/// 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 + // recognised. + RelayChainAsNative, + // Native converter for sibling Parachains; will convert to a `SiblingPara` origin when + // recognised. + SiblingParachainAsNative, + // Xcm origins can be represented natively under the Xcm pallet's Xcm origin. + pallet_xcm::XcmPassthrough, + // Xcm Origins defined by a Multilocation of type AccountKey20 can be converted to a 20 byte- + // account local origin + SignedAccountKey20AsNative, +); + +parameter_types! { + /// Maximum number of instructions in a single XCM fragment. A sanity check against + /// weight caculations getting too crazy. + pub MaxInstructions: u32 = 100; +} + +/// Xcm Weigher shared between multiple Xcm-related configs. +pub type XcmWeigher = WeightInfoBounds< + moonbeam_xcm_benchmarks::weights::XcmWeight, + RuntimeCall, + MaxInstructions, +>; + +pub type XcmBarrier = ( + // Weight that is paid for may be consumed. + TakeWeightCredit, + // Expected responses are OK. + AllowKnownQueryResponses, + WithComputedOrigin< + ( + // If the message is one that immediately attemps to pay for execution, then allow it. + AllowTopLevelPaidExecutionFrom, + // Subscriptions for version tracking are OK. + AllowSubscriptionsFrom, + ), + UniversalLocation, + ConstU32<8>, + >, +); + +parameter_types! { + /// Xcm fees will go to the treasury account + pub XcmFeesAccount: AccountId = Treasury::account_id(); +} + +/// This is the struct that will handle the revenue from xcm fees +/// We do not burn anything because we want to mimic exactly what +/// the sovereign account has +pub type XcmFeesToAccount = xcm_primitives::XcmFeesToAccount< + super::Assets, + ( + ConvertedConcreteId< + AssetId, + Balance, + AsAssetType, + JustTry, + >, + ), + AccountId, + XcmFeesAccount, +>; + +// Our implementation of the Moonbeam Call +// Attachs the right origin in case the call is made to pallet-ethereum-xcm +#[cfg(not(feature = "evm-tracing"))] +moonbeam_runtime_common::impl_moonbeam_xcm_call!(); +#[cfg(feature = "evm-tracing")] +moonbeam_runtime_common::impl_moonbeam_xcm_call_tracing!(); + +moonbeam_runtime_common::impl_evm_runner_precompile_or_eth_xcm!(); + +pub struct SafeCallFilter; +impl frame_support::traits::Contains for SafeCallFilter { + fn contains(_call: &RuntimeCall) -> bool { + // TODO review + // This needs to be addressed at EVM level + true + } +} + +parameter_types! { + pub const MaxAssetsIntoHolding: u32 = xcm_primitives::MAX_ASSETS; +} + +pub struct XcmExecutorConfig; +impl xcm_executor::Config for XcmExecutorConfig { + type RuntimeCall = RuntimeCall; + type XcmSender = XcmRouter; + // How to withdraw and deposit an asset. + type AssetTransactor = AssetTransactors; + type OriginConverter = XcmOriginToTransactDispatchOrigin; + // Filter to the reserve withdraw operations + // Whenever the reserve matches the relative or absolute value + // of our chain, we always return the relative reserve + type IsReserve = MultiNativeAsset>; + type IsTeleporter = (); // No teleport + type UniversalLocation = UniversalLocation; + type Barrier = XcmBarrier; + type Weigher = XcmWeigher; + // We use two traders + // When we receive the relative representation of the self-reserve asset, + // we use UsingComponents and the local way of handling fees + // When we receive a non-reserve asset, we use AssetManager to fetch how many + // units per second we should charge + type Trader = ( + UsingComponents< + ::WeightToFee, + SelfReserve, + AccountId, + Balances, + DealWithFees, + >, + FirstAssetTrader, + ); + type ResponseHandler = PolkadotXcm; + type SubscriptionService = PolkadotXcm; + type AssetTrap = pallet_erc20_xcm_bridge::AssetTrapWrapper; + type AssetClaims = PolkadotXcm; + type CallDispatcher = MoonbeamCall; + type PalletInstancesInfo = crate::AllPalletsWithSystem; + type MaxAssetsIntoHolding = MaxAssetsIntoHolding; + type AssetLocker = (); + type AssetExchanger = (); + type FeeManager = (); + type MessageExporter = (); + type UniversalAliases = Nothing; + type SafeCallFilter = SafeCallFilter; + type Aliasers = Nothing; + type TransactionalProcessor = xcm_builder::FrameTransactionalProcessor; +} + +// Converts a Signed Local Origin into a Location +pub type LocalOriginToLocation = SignedToAccountId20; + +/// 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, +); + +type XcmExecutor = pallet_erc20_xcm_bridge::XcmExecutorWrapper< + XcmExecutorConfig, + xcm_executor::XcmExecutor, +>; + +impl pallet_xcm::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type SendXcmOrigin = EnsureXcmOrigin; + type XcmRouter = XcmRouter; + type ExecuteXcmOrigin = EnsureXcmOrigin; + type XcmExecuteFilter = Everything; + type XcmExecutor = XcmExecutor; + type XcmTeleportFilter = Nothing; + type XcmReserveTransferFilter = Everything; + type Weigher = XcmWeigher; + 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 MaxRemoteLockConsumers = ConstU32<0>; + type RemoteLockConsumerIdentifier = (); + // TODO pallet-xcm weights + type WeightInfo = moonbeam_weights::pallet_xcm::WeightInfo; + type AdminOrigin = EnsureRoot; +} + +impl cumulus_pallet_xcm::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type XcmExecutor = XcmExecutor; +} + +impl cumulus_pallet_xcmp_queue::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type ChannelInfo = ParachainSystem; + type VersionWrapper = PolkadotXcm; + type XcmpQueue = TransformOrigin; + type MaxInboundSuspended = sp_core::ConstU32<1_000>; + type ControllerOrigin = EnsureRoot; + type ControllerOriginConverter = XcmOriginToTransactDispatchOrigin; + type WeightInfo = moonbeam_weights::cumulus_pallet_xcmp_queue::WeightInfo; + type PriceForSiblingDelivery = polkadot_runtime_common::xcm_sender::NoPriceForMessageDelivery< + cumulus_primitives_core::ParaId, + >; +} + +parameter_types! { + pub const RelayOrigin: AggregateMessageOrigin = AggregateMessageOrigin::Parent; +} + +// TODO: This pallet can be removed after the lazy migration is done and +// event `Completed` is emitted. +// https://github.com/paritytech/polkadot-sdk/pull/1246 +impl cumulus_pallet_dmp_queue::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type DmpSink = frame_support::traits::EnqueueWithOrigin; + type WeightInfo = cumulus_pallet_dmp_queue::weights::SubstrateWeight; +} + +parameter_types! { + /// The amount of weight (if any) which should be provided to the message queue for + /// servicing enqueued items. + /// + /// This may be legitimately `None` in the case that you will call + /// `ServiceQueues::service_queues` manually. + pub MessageQueueServiceWeight: Weight = + Perbill::from_percent(25) * RuntimeBlockWeights::get().max_block; + /// The maximum number of stale pages (i.e. of overweight messages) allowed before culling + /// can happen. Once there are more stale pages than this, then historical pages may be + /// dropped, even if they contain unprocessed overweight messages. + pub const MessageQueueMaxStale: u32 = 8; + /// The size of the page; this implies the maximum message size which can be sent. + /// + /// A good value depends on the expected message sizes, their weights, the weight that is + /// available for processing them and the maximal needed message size. The maximal message + /// size is slightly lower than this as defined by [`MaxMessageLenOf`]. + pub const MessageQueueHeapSize: u32 = 128 * 1048; +} + +impl pallet_message_queue::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + #[cfg(feature = "runtime-benchmarks")] + type MessageProcessor = pallet_message_queue::mock_helpers::NoopMessageProcessor< + cumulus_primitives_core::AggregateMessageOrigin, + >; + #[cfg(not(feature = "runtime-benchmarks"))] + type MessageProcessor = + xcm_builder::ProcessXcmMessage; + type Size = u32; + type HeapSize = MessageQueueHeapSize; + type MaxStale = MessageQueueMaxStale; + type ServiceWeight = MessageQueueServiceWeight; + // The XCMP queue pallet is only ever able to handle the `Sibling(ParaId)` origin: + type QueueChangeHandler = NarrowOriginToSibling; + // NarrowOriginToSibling calls XcmpQueue's is_paused if Origin is sibling. Allows all other origins + type QueuePausedQuery = EmergencyParaXcm; + type WeightInfo = pallet_message_queue::weights::SubstrateWeight; +} + +impl pallet_emergency_para_xcm::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type CheckAssociatedRelayNumber = + cumulus_pallet_parachain_system::RelayNumberMonotonicallyIncreases; + type QueuePausedQuery = (MaintenanceMode, NarrowOriginToSibling); + type XcmpMessageHandler = XcmpQueue; + type PausedThreshold = ConstU32<300>; + type FastAuthorizeUpgradeOrigin = + pallet_collective::EnsureProportionAtLeast; + type PausedToNormalOrigin = + pallet_collective::EnsureProportionAtLeast; +} + +// Our AssetType. For now we only handle Xcm Assets +#[derive(Clone, Eq, Debug, PartialEq, Ord, PartialOrd, Encode, Decode, TypeInfo)] +pub enum AssetType { + Xcm(xcm::v3::Location), +} +impl Default for AssetType { + fn default() -> Self { + Self::Xcm(xcm::v3::Location::here()) + } +} + +impl From for AssetType { + fn from(location: xcm::v3::Location) -> Self { + Self::Xcm(location) + } +} + +// This can be removed once we fully adopt xcm::v4 everywhere +impl TryFrom for AssetType { + type Error = (); + fn try_from(location: Location) -> Result { + Ok(Self::Xcm(location.try_into()?)) + } +} + +impl Into> for AssetType { + fn into(self) -> Option { + match self { + Self::Xcm(location) => Some(location), + } + } +} + +impl Into> for AssetType { + fn into(self) -> Option { + match self { + Self::Xcm(location) => xcm_builder::V4V3LocationConverter::convert_back(&location), + } + } +} + +// Implementation on how to retrieve the AssetId from an AssetType +// We take it +impl From for AssetId { + fn from(asset: AssetType) -> AssetId { + match asset { + AssetType::Xcm(id) => { + let mut result: [u8; 16] = [0u8; 16]; + let hash: H256 = id.using_encoded(::Hashing::hash); + result.copy_from_slice(&hash.as_fixed_bytes()[0..16]); + u128::from_le_bytes(result) + } + } + } +} + +// Our currencyId. We distinguish for now between SelfReserve, and Others, defined by their Id. +#[derive(Clone, Eq, Debug, PartialEq, Ord, PartialOrd, Encode, Decode, TypeInfo)] +pub enum CurrencyId { + // Our native token + SelfReserve, + // Assets representing other chains native tokens + ForeignAsset(AssetId), + // Erc20 token + Erc20 { contract_address: H160 }, +} + +impl AccountIdToCurrencyId for Runtime { + fn account_to_currency_id(account: AccountId) -> Option { + Some(match account { + // the self-reserve currency is identified by the pallet-balances address + a if a == H160::from_low_u64_be(2050).into() => CurrencyId::SelfReserve, + // the rest of the currencies, by their corresponding erc20 address + _ => match Runtime::account_to_asset_id(account) { + // A foreign asset + Some((_prefix, asset_id)) => CurrencyId::ForeignAsset(asset_id), + // If no known prefix is identified, we consider that it's a "real" erc20 token + // (i.e. managed by a real smart contract) + None => CurrencyId::Erc20 { + contract_address: account.into(), + }, + }, + }) + } +} + +// How to convert from CurrencyId to Location +pub struct CurrencyIdToLocation(sp_std::marker::PhantomData); +impl sp_runtime::traits::Convert> + for CurrencyIdToLocation +where + AssetXConverter: MaybeEquivalence, +{ + fn convert(currency: CurrencyId) -> Option { + match currency { + CurrencyId::SelfReserve => { + let multi: Location = SelfReserve::get(); + Some(multi) + } + CurrencyId::ForeignAsset(asset) => AssetXConverter::convert_back(&asset), + CurrencyId::Erc20 { contract_address } => { + let mut location = Erc20XcmBridgePalletLocation::get(); + location + .push_interior(Junction::AccountKey20 { + key: contract_address.0, + network: None, + }) + .ok(); + Some(location) + } + } + } +} + +parameter_types! { + pub const BaseXcmWeight: Weight + = Weight::from_parts(200_000_000u64, 0); + pub const MaxAssetsForTransfer: usize = 2; + // This is how we are going to detect whether the asset is a Reserve asset + // This however is the chain part only + pub SelfLocation: Location = Location::here(); + // We need this to be able to catch when someone is trying to execute a non- + // cross-chain transfer in xtokens through the absolute path way + pub SelfLocationAbsolute: Location = Location { + parents:1, + interior: [ + Parachain(ParachainInfo::parachain_id().into()) + ].into() + }; + +} + +parameter_type_with_key! { + pub ParachainMinFee: |location: Location| -> Option { + match (location.parents, location.first_interior()) { + // AssetHub fee + (1, Some(Parachain(1001u32))) => Some(50_000_000u128), + _ => None, + } + }; +} + +impl orml_xtokens::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Balance = Balance; + type CurrencyId = CurrencyId; + type AccountIdToLocation = AccountIdToLocation; + type CurrencyIdConvert = CurrencyIdToLocation>; + type XcmExecutor = XcmExecutor; + type SelfLocation = SelfLocation; + type Weigher = XcmWeigher; + type BaseXcmWeight = BaseXcmWeight; + type UniversalLocation = UniversalLocation; + type MaxAssetsForTransfer = MaxAssetsForTransfer; + type MinXcmFee = ParachainMinFee; + type LocationsFilter = Everything; + type ReserveProvider = AbsoluteAndRelativeReserve; +} + +// 1 WND/ROC should be enough +parameter_types! { + pub MaxHrmpRelayFee: Asset = (Location::parent(), 1_000_000_000_000u128).into(); +} + +// For now we only allow to transact in the relay, although this might change in the future +// Transactors just defines the chains in which we allow transactions to be issued through +// xcm +#[derive(Clone, Eq, Debug, PartialEq, Ord, PartialOrd, Encode, Decode, TypeInfo)] +pub enum Transactors { + Relay, +} + +// Default for benchmarking +#[cfg(feature = "runtime-benchmarks")] +impl Default for Transactors { + fn default() -> Self { + Transactors::Relay + } +} + +impl TryFrom for Transactors { + type Error = (); + fn try_from(value: u8) -> Result { + match value { + 0u8 => Ok(Transactors::Relay), + _ => Err(()), + } + } +} + +impl UtilityEncodeCall for Transactors { + fn encode_call(self, call: UtilityAvailableCalls) -> Vec { + match self { + Transactors::Relay => pallet_xcm_transactor::Pallet::::encode_call( + pallet_xcm_transactor::Pallet(sp_std::marker::PhantomData::), + call, + ), + } + } +} + +impl XcmTransact for Transactors { + fn destination(self) -> Location { + match self { + Transactors::Relay => Location::parent(), + } + } +} + +pub type DerivativeAddressRegistrationOrigin = + EitherOfDiverse, governance::custom_origins::GeneralAdmin>; + +impl pallet_xcm_transactor::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Balance = Balance; + type Transactor = Transactors; + type DerivativeAddressRegistrationOrigin = DerivativeAddressRegistrationOrigin; + type SovereignAccountDispatcherOrigin = EnsureRoot; + type CurrencyId = CurrencyId; + type AccountIdToLocation = AccountIdToLocation; + type CurrencyIdToLocation = CurrencyIdToLocation>; + type XcmSender = XcmRouter; + type SelfLocation = SelfLocation; + type Weigher = XcmWeigher; + type UniversalLocation = UniversalLocation; + type BaseXcmWeight = BaseXcmWeight; + type AssetTransactor = AssetTransactors; + type ReserveProvider = AbsoluteAndRelativeReserve; + type WeightInfo = moonbeam_weights::pallet_xcm_transactor::WeightInfo; + type HrmpManipulatorOrigin = GeneralAdminOrRoot; + type HrmpOpenOrigin = FastGeneralAdminOrRoot; + type MaxHrmpFee = xcm_builder::Case; +} + +parameter_types! { + // This is the relative view of erc20 assets. + // Identified by this prefix + AccountKey20(contractAddress) + // We use the RELATIVE multilocation + pub Erc20XcmBridgePalletLocation: Location = Location { + parents:0, + interior: [ + PalletInstance(::index() as u8) + ].into() + }; + + // To be able to support almost all erc20 implementations, + // we provide a sufficiently hight gas limit. + pub Erc20XcmBridgeTransferGasLimit: u64 = 800_000; +} + +impl pallet_erc20_xcm_bridge::Config for Runtime { + type AccountIdConverter = LocationToH160; + type Erc20MultilocationPrefix = Erc20XcmBridgePalletLocation; + type Erc20TransferGasLimit = Erc20XcmBridgeTransferGasLimit; + type EvmRunner = EvmRunnerPrecompileOrEthXcm; +} + +#[cfg(feature = "runtime-benchmarks")] +mod testing { + use super::*; + use xcm_builder::V4V3LocationConverter; + + /// This From exists for benchmarking purposes. It has the potential side-effect of calling + /// AssetManager::set_asset_type_asset_id() and should NOT be used in any production code. + impl From for CurrencyId { + fn from(location: Location) -> CurrencyId { + use xcm_primitives::AssetTypeGetter; + + // If it does not exist, for benchmarking purposes, we create the association + let asset_id = if let Some(asset_id) = + AsAssetType::::convert_location(&location) + { + asset_id + } else { + let asset_type = AssetType::Xcm( + V4V3LocationConverter::convert(&location).expect("convert to v3"), + ); + let asset_id: AssetId = asset_type.clone().into(); + AssetManager::set_asset_type_asset_id(asset_type, asset_id); + asset_id + }; + + CurrencyId::ForeignAsset(asset_id) + } + } +} diff --git a/tracing/3001/runtime/moonbase/tests/common/mod.rs b/tracing/3001/runtime/moonbase/tests/common/mod.rs new file mode 100644 index 00000000..5910bda4 --- /dev/null +++ b/tracing/3001/runtime/moonbase/tests/common/mod.rs @@ -0,0 +1,396 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +#![allow(dead_code)] + +use cumulus_primitives_parachain_inherent::ParachainInherentData; +use fp_evm::GenesisAccount; +use frame_support::{ + assert_ok, + traits::{OnFinalize, OnInitialize}, +}; +use moonbase_runtime::{asset_config::AssetRegistrarMetadata, xcm_config::AssetType}; +pub use moonbase_runtime::{ + currency::UNIT, AccountId, AssetId, AssetManager, Assets, AsyncBacking, AuthorInherent, + Balance, Ethereum, InflationInfo, ParachainStaking, Range, Runtime, RuntimeCall, RuntimeEvent, + System, TransactionConverter, UncheckedExtrinsic, HOURS, +}; +use nimbus_primitives::{NimbusId, NIMBUS_ENGINE_ID}; +use polkadot_parachain::primitives::HeadData; +use sp_consensus_slots::Slot; +use sp_core::{Encode, Get, H160}; +use sp_runtime::{traits::Dispatchable, BuildStorage, Digest, DigestItem, Perbill, Percent}; + +use std::collections::BTreeMap; + +use fp_rpc::ConvertTransaction; +use pallet_transaction_payment::Multiplier; + +pub fn existential_deposit() -> u128 { + ::ExistentialDeposit::get() +} + +// A valid signed Alice transfer. +pub const VALID_ETH_TX: &str = + "02f86d8205018085174876e80085e8d4a5100082520894f24ff3a9cf04c71dbc94d0b566f7a27b9456\ + 6cac8080c001a0e1094e1a52520a75c0255db96132076dd0f1263089f838bea548cbdbfc64a4d19f031c\ + 92a8cb04e2d68d20a6158d542a07ac440cc8d07b6e36af02db046d92df"; + +// An invalid signed Alice transfer with a gas limit artifically set to 0. +pub const INVALID_ETH_TX: &str = + "f86180843b9aca00809412cb274aad8251c875c0bf6872b67d9983e53fdd01801ca00e28ba2dd3c5a\ + 3fd467d4afd7aefb4a34b373314fff470bb9db743a84d674a0aa06e5994f2d07eafe1c37b4ce5471ca\ + ecec29011f6f5bf0b1a552c55ea348df35f"; + +pub fn rpc_run_to_block(n: u32) { + while System::block_number() < n { + Ethereum::on_finalize(System::block_number()); + System::set_block_number(System::block_number() + 1); + Ethereum::on_initialize(System::block_number()); + } +} + +/// Utility function that advances the chain to the desired block number. +/// If an author is provided, that author information is injected to all the blocks in the meantime. +pub fn run_to_block(n: u32, author: Option) { + // Finalize the first block + Ethereum::on_finalize(System::block_number()); + while System::block_number() < n { + // Set the new block number and author + match author { + Some(ref author) => { + let pre_digest = Digest { + logs: vec![DigestItem::PreRuntime(NIMBUS_ENGINE_ID, author.encode())], + }; + System::reset_events(); + System::initialize( + &(System::block_number() + 1), + &System::parent_hash(), + &pre_digest, + ); + } + None => { + System::set_block_number(System::block_number() + 1); + } + } + + increase_last_relay_slot_number(1); + + // Initialize the new block + AuthorInherent::on_initialize(System::block_number()); + ParachainStaking::on_initialize(System::block_number()); + Ethereum::on_initialize(System::block_number()); + + // Finalize the block + Ethereum::on_finalize(System::block_number()); + ParachainStaking::on_finalize(System::block_number()); + } +} + +pub fn last_event() -> RuntimeEvent { + System::events().pop().expect("Event expected").event +} + +// Test struct with the purpose of initializing xcm assets +#[derive(Clone)] +pub struct XcmAssetInitialization { + pub asset_type: AssetType, + pub metadata: AssetRegistrarMetadata, + pub balances: Vec<(AccountId, Balance)>, + pub is_sufficient: bool, +} + +pub struct ExtBuilder { + // endowed accounts with balances + balances: Vec<(AccountId, Balance)>, + // [collator, amount] + collators: Vec<(AccountId, Balance)>, + // [delegator, collator, nomination_amount] + delegations: Vec<(AccountId, AccountId, Balance, Percent)>, + // per-round inflation config + inflation: InflationInfo, + // AuthorId -> AccoutId mappings + mappings: Vec<(NimbusId, AccountId)>, + // Crowdloan fund + crowdloan_fund: Balance, + // Chain id + chain_id: u64, + // EVM genesis accounts + evm_accounts: BTreeMap, + // [assettype, metadata, Vec] + xcm_assets: Vec, + safe_xcm_version: Option, +} + +impl Default for ExtBuilder { + fn default() -> ExtBuilder { + ExtBuilder { + balances: vec![], + delegations: vec![], + collators: vec![], + inflation: InflationInfo { + expect: Range { + min: 100_000 * UNIT, + ideal: 200_000 * UNIT, + max: 500_000 * UNIT, + }, + // not used + annual: Range { + min: Perbill::from_percent(50), + ideal: Perbill::from_percent(50), + max: Perbill::from_percent(50), + }, + // unrealistically high parameterization, only for testing + round: Range { + min: Perbill::from_percent(5), + ideal: Perbill::from_percent(5), + max: Perbill::from_percent(5), + }, + }, + mappings: vec![], + crowdloan_fund: 0, + chain_id: CHAIN_ID, + evm_accounts: BTreeMap::new(), + xcm_assets: vec![], + safe_xcm_version: None, + } + } +} + +impl ExtBuilder { + pub fn with_evm_accounts(mut self, accounts: BTreeMap) -> Self { + self.evm_accounts = accounts; + self + } + + pub fn with_balances(mut self, balances: Vec<(AccountId, Balance)>) -> Self { + self.balances = balances; + self + } + + pub fn with_collators(mut self, collators: Vec<(AccountId, Balance)>) -> Self { + self.collators = collators; + self + } + + pub fn with_delegations(mut self, delegations: Vec<(AccountId, AccountId, Balance)>) -> Self { + self.delegations = delegations + .into_iter() + .map(|d| (d.0, d.1, d.2, Percent::zero())) + .collect(); + self + } + + pub fn with_xcm_assets(mut self, xcm_assets: Vec) -> Self { + self.xcm_assets = xcm_assets; + self + } + + pub fn with_crowdloan_fund(mut self, crowdloan_fund: Balance) -> Self { + self.crowdloan_fund = crowdloan_fund; + self + } + + pub fn with_mappings(mut self, mappings: Vec<(NimbusId, AccountId)>) -> Self { + self.mappings = mappings; + self + } + + pub fn with_safe_xcm_version(mut self, safe_xcm_version: u32) -> Self { + self.safe_xcm_version = Some(safe_xcm_version); + self + } + + #[allow(dead_code)] + pub fn with_inflation(mut self, inflation: InflationInfo) -> Self { + self.inflation = inflation; + self + } + + pub fn build(self) -> sp_io::TestExternalities { + let mut t = frame_system::GenesisConfig::::default() + .build_storage() + .unwrap(); + + pallet_balances::GenesisConfig:: { + balances: self.balances, + } + .assimilate_storage(&mut t) + .unwrap(); + + pallet_parachain_staking::GenesisConfig:: { + candidates: self.collators, + delegations: self.delegations, + inflation_config: self.inflation, + collator_commission: Perbill::from_percent(20), + parachain_bond_reserve_percent: Percent::from_percent(30), + blocks_per_round: 2 * HOURS, + num_selected_candidates: 8, + } + .assimilate_storage(&mut t) + .unwrap(); + + pallet_crowdloan_rewards::GenesisConfig:: { + funded_amount: self.crowdloan_fund, + } + .assimilate_storage(&mut t) + .unwrap(); + + pallet_author_mapping::GenesisConfig:: { + mappings: self.mappings, + } + .assimilate_storage(&mut t) + .unwrap(); + + let genesis_config = pallet_evm_chain_id::GenesisConfig:: { + chain_id: self.chain_id, + ..Default::default() + }; + genesis_config.assimilate_storage(&mut t).unwrap(); + + let genesis_config = pallet_evm::GenesisConfig:: { + accounts: self.evm_accounts, + ..Default::default() + }; + genesis_config.assimilate_storage(&mut t).unwrap(); + + let genesis_config = pallet_ethereum::GenesisConfig:: { + ..Default::default() + }; + genesis_config.assimilate_storage(&mut t).unwrap(); + + let genesis_config = pallet_xcm::GenesisConfig:: { + safe_xcm_version: self.safe_xcm_version, + ..Default::default() + }; + genesis_config.assimilate_storage(&mut t).unwrap(); + + let genesis_config = pallet_transaction_payment::GenesisConfig:: { + multiplier: Multiplier::from(8u128), + ..Default::default() + }; + genesis_config.assimilate_storage(&mut t).unwrap(); + + let mut ext = sp_io::TestExternalities::new(t); + + let xcm_assets = self.xcm_assets.clone(); + + ext.execute_with(|| { + // If any xcm assets specified, we register them here + for xcm_asset_initialization in xcm_assets { + let asset_id: AssetId = xcm_asset_initialization.asset_type.clone().into(); + AssetManager::register_foreign_asset( + root_origin(), + xcm_asset_initialization.asset_type, + xcm_asset_initialization.metadata, + 1, + xcm_asset_initialization.is_sufficient, + ) + .unwrap(); + for (account, balance) in xcm_asset_initialization.balances { + Assets::mint( + origin_of(AssetManager::account_id()), + asset_id.into(), + account, + balance, + ) + .unwrap(); + } + } + System::set_block_number(1); + }); + ext + } +} + +pub const CHAIN_ID: u64 = 1281; +pub const ALICE: [u8; 20] = [4u8; 20]; +pub const ALICE_NIMBUS: [u8; 32] = [4u8; 32]; +pub const BOB: [u8; 20] = [5u8; 20]; +pub const CHARLIE: [u8; 20] = [6u8; 20]; +pub const DAVE: [u8; 20] = [7u8; 20]; +pub const EVM_CONTRACT: [u8; 20] = [8u8; 20]; + +pub fn origin_of(account_id: AccountId) -> ::RuntimeOrigin { + ::RuntimeOrigin::signed(account_id) +} + +pub fn inherent_origin() -> ::RuntimeOrigin { + ::RuntimeOrigin::none() +} + +pub fn root_origin() -> ::RuntimeOrigin { + ::RuntimeOrigin::root() +} + +pub fn unchecked_eth_tx(raw_hex_tx: &str) -> UncheckedExtrinsic { + let converter = TransactionConverter; + converter.convert_transaction(ethereum_transaction(raw_hex_tx)) +} + +pub fn ethereum_transaction(raw_hex_tx: &str) -> pallet_ethereum::Transaction { + let bytes = hex::decode(raw_hex_tx).expect("Transaction bytes."); + let transaction = ethereum::EnvelopedDecodable::decode(&bytes[..]); + assert!(transaction.is_ok()); + transaction.unwrap() +} + +/// Mock the inherent that sets validation data in ParachainSystem, which +/// contains the `relay_chain_block_number`, which is used in `author-filter` as a +/// source of randomness to filter valid authors at each block. +pub fn set_parachain_inherent_data() { + use cumulus_primitives_core::PersistedValidationData; + use cumulus_test_relay_sproof_builder::RelayStateSproofBuilder; + + let mut relay_sproof = RelayStateSproofBuilder::default(); + relay_sproof.para_id = 100u32.into(); + relay_sproof.included_para_head = Some(HeadData(vec![1, 2, 3])); + + let additional_key_values = vec![( + moonbeam_core_primitives::well_known_relay_keys::TIMESTAMP_NOW.to_vec(), + sp_timestamp::Timestamp::default().encode(), + )]; + + relay_sproof.additional_key_values = additional_key_values; + + let (relay_parent_storage_root, relay_chain_state) = relay_sproof.into_state_root_and_proof(); + + let vfp = PersistedValidationData { + relay_parent_number: 1u32, + relay_parent_storage_root, + ..Default::default() + }; + let parachain_inherent_data = ParachainInherentData { + validation_data: vfp, + relay_chain_state: relay_chain_state, + downward_messages: Default::default(), + horizontal_messages: Default::default(), + }; + assert_ok!(RuntimeCall::ParachainSystem( + cumulus_pallet_parachain_system::Call::::set_validation_data { + data: parachain_inherent_data + } + ) + .dispatch(inherent_origin())); +} + +pub(crate) fn increase_last_relay_slot_number(amount: u64) { + let last_relay_slot = u64::from(AsyncBacking::slot_info().unwrap_or_default().0); + frame_support::storage::unhashed::put( + &frame_support::storage::storage_prefix(b"AsyncBacking", b"SlotInfo"), + &((Slot::from(last_relay_slot + amount), 0)), + ); +} diff --git a/tracing/3001/runtime/moonbase/tests/evm_tracing.rs b/tracing/3001/runtime/moonbase/tests/evm_tracing.rs new file mode 100644 index 00000000..5a5b06ec --- /dev/null +++ b/tracing/3001/runtime/moonbase/tests/evm_tracing.rs @@ -0,0 +1,144 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Moonbase EVM tracing Integration Tests + +mod common; + +#[cfg(test)] +#[cfg(feature = "evm-tracing")] +mod tests { + use super::common::*; + + use pallet_evm::AddressMapping; + use sp_core::{H160, U256}; + + use moonbeam_core_primitives::Header; + use moonbeam_rpc_primitives_debug::runtime_decl_for_debug_runtime_api::DebugRuntimeApi; + use std::str::FromStr; + + #[test] + fn debug_runtime_api_trace_transaction() { + let alith = ::AddressMapping::into_account_id( + H160::from_str("6be02d1d3665660d22ff9624b7be0551ee1ac91b") + .expect("internal H160 is valid; qed"), + ); + ExtBuilder::default() + .with_balances(vec![ + (alith, 2_000 * UNIT), + (AccountId::from(ALICE), 2_000 * UNIT), + (AccountId::from(BOB), 1_000 * UNIT), + ]) + .build() + .execute_with(|| { + let non_eth_uxt = UncheckedExtrinsic::new_unsigned( + pallet_balances::Call::::transfer_allow_death { + dest: AccountId::from(BOB), + value: 1 * UNIT, + } + .into(), + ); + let transaction = ethereum_transaction(VALID_ETH_TX); + let eth_uxt = unchecked_eth_tx(VALID_ETH_TX); + let block = Header { + digest: Default::default(), + extrinsics_root: Default::default(), + number: 1, + parent_hash: Default::default(), + state_root: Default::default(), + }; + assert!(Runtime::trace_transaction( + vec![non_eth_uxt.clone(), eth_uxt, non_eth_uxt.clone()], + &transaction, + &block + ) + .is_ok()); + }); + } + + #[test] + fn debug_runtime_api_trace_block() { + let alith = ::AddressMapping::into_account_id( + H160::from_str("6be02d1d3665660d22ff9624b7be0551ee1ac91b") + .expect("internal H160 is valid; qed"), + ); + ExtBuilder::default() + .with_balances(vec![ + (alith, 2_000 * UNIT), + (AccountId::from(ALICE), 2_000 * UNIT), + (AccountId::from(BOB), 1_000 * UNIT), + ]) + .build() + .execute_with(|| { + let non_eth_uxt = UncheckedExtrinsic::new_unsigned( + pallet_balances::Call::::transfer_allow_death { + dest: AccountId::from(BOB), + value: 1 * UNIT, + } + .into(), + ); + let eth_uxt = unchecked_eth_tx(VALID_ETH_TX); + let eth_tx = ethereum_transaction(VALID_ETH_TX); + let eth_extrinsic_hash = eth_tx.hash(); + let block = Header { + digest: Default::default(), + extrinsics_root: Default::default(), + number: 1, + parent_hash: Default::default(), + state_root: Default::default(), + }; + assert!(Runtime::trace_block( + vec![non_eth_uxt.clone(), eth_uxt.clone(), non_eth_uxt, eth_uxt], + vec![eth_extrinsic_hash, eth_extrinsic_hash], + &block + ) + .is_ok()); + }); + } + + #[test] + fn debug_runtime_api_trace_call() { + let block = Header { + digest: Default::default(), + extrinsics_root: Default::default(), + number: 1, + parent_hash: Default::default(), + state_root: Default::default(), + }; + let alith = H160::from_str("6be02d1d3665660d22ff9624b7be0551ee1ac91b") + .expect("internal H160 is valid; qed"); + let alith_account_id = + ::AddressMapping::into_account_id(alith); + ExtBuilder::default() + .with_balances(vec![(alith_account_id, 100 * UNIT)]) + .build() + .execute_with(|| { + assert!(Runtime::trace_call( + &block, + alith, + H160::random(), + Vec::new(), + U256::from(99), + U256::max_value(), + Some(U256::one()), + Some(U256::one()), + None, + None, + ) + .is_ok()); + }); + } +} diff --git a/tracing/3001/runtime/moonbase/tests/integration_test.rs b/tracing/3001/runtime/moonbase/tests/integration_test.rs new file mode 100644 index 00000000..6e37a091 --- /dev/null +++ b/tracing/3001/runtime/moonbase/tests/integration_test.rs @@ -0,0 +1,3019 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Moonbase Runtime Integration Tests + +mod common; +use common::*; + +use precompile_utils::{ + precompile_set::{is_precompile_or_fail, IsActivePrecompile}, + prelude::*, + testing::*, +}; + +use fp_evm::{Context, IsPrecompileResult}; +use frame_support::{ + assert_noop, assert_ok, + dispatch::DispatchClass, + traits::{ + fungible::Inspect, Currency as CurrencyT, EnsureOrigin, PalletInfo, StorageInfo, + StorageInfoTrait, + }, + weights::{constants::WEIGHT_REF_TIME_PER_SECOND, Weight}, + StorageHasher, Twox128, +}; +use moonbase_runtime::{ + asset_config::{AssetRegistrarMetadata, ForeignAssetInstance}, + xcm_config::{AssetType, SelfReserve}, + AccountId, AssetId, AssetManager, Assets, Balances, CrowdloanRewards, Executive, + OpenTechCommitteeCollective, ParachainStaking, PolkadotXcm, Precompiles, Runtime, + RuntimeBlockWeights, RuntimeCall, RuntimeEvent, System, TransactionPayment, + TransactionPaymentAsGasPrice, TreasuryCouncilCollective, XTokens, XcmTransactor, + FOREIGN_ASSET_PRECOMPILE_ADDRESS_PREFIX, WEEKS, +}; +use polkadot_parachain::primitives::Sibling; +use precompile_utils::testing::MockHandle; +use sp_runtime::{ + traits::{Convert as XcmConvert, Dispatchable}, + BuildStorage, +}; +use std::str::from_utf8; +use xcm_builder::{ParentIsPreset, SiblingParachainConvertsVia}; +use xcm_executor::traits::ConvertLocation; + +use moonbase_runtime::currency::{GIGAWEI, WEI}; +use moonbeam_xcm_benchmarks::weights::XcmWeight; +use moonkit_xcm_primitives::AccountIdAssetIdConversion; +use nimbus_primitives::NimbusId; +use pallet_evm::PrecompileSet; +use pallet_evm_precompileset_assets_erc20::{SELECTOR_LOG_APPROVAL, SELECTOR_LOG_TRANSFER}; +use pallet_transaction_payment::Multiplier; +use pallet_xcm_transactor::{Currency, CurrencyPayment, HrmpOperation, TransactWeights}; +use parity_scale_codec::Encode; +use sha3::{Digest, Keccak256}; +use sp_core::{crypto::UncheckedFrom, ByteArray, Pair, H160, H256, U256}; +use sp_runtime::{DispatchError, ModuleError}; +use xcm::latest::prelude::*; + +type AuthorMappingPCall = + pallet_evm_precompile_author_mapping::AuthorMappingPrecompileCall; +type BatchPCall = pallet_evm_precompile_batch::BatchPrecompileCall; +type CrowdloanRewardsPCall = + pallet_evm_precompile_crowdloan_rewards::CrowdloanRewardsPrecompileCall; +type XcmUtilsPCall = pallet_evm_precompile_xcm_utils::XcmUtilsPrecompileCall< + Runtime, + moonbase_runtime::xcm_config::XcmExecutorConfig, +>; +type XtokensPCall = pallet_evm_precompile_xtokens::XtokensPrecompileCall; +type ForeignAssetsPCall = pallet_evm_precompileset_assets_erc20::Erc20AssetsPrecompileSetCall< + Runtime, + ForeignAssetInstance, +>; +type XcmTransactorV1PCall = + pallet_evm_precompile_xcm_transactor::v1::XcmTransactorPrecompileV1Call; +type XcmTransactorV2PCall = + pallet_evm_precompile_xcm_transactor::v2::XcmTransactorPrecompileV2Call; + +// TODO: can we construct a const U256...? +const BASE_FEE_GENISIS: u128 = 10 * GIGAWEI; + +#[test] +fn xcmp_queue_controller_origin_is_root() { + // important for the XcmExecutionManager impl of PauseExecution which uses root origin + // to suspend/resume XCM execution in xcmp_queue::on_idle + assert_ok!( + ::ControllerOrigin::ensure_origin(root_origin()) + ); +} + +#[test] +fn verify_pallet_prefixes() { + fn is_pallet_prefix(name: &str) { + // Compares the unhashed pallet prefix in the `StorageInstance` implementation by every + // storage item in the pallet P. This pallet prefix is used in conjunction with the + // item name to get the unique storage key: hash(PalletPrefix) + hash(StorageName) + // https://github.com/paritytech/substrate/blob/master/frame/support/procedural/src/pallet/ + // expand/storage.rs#L389-L401 + assert_eq!( + ::PalletInfo::name::

(), + Some(name) + ); + } + // TODO: use StorageInfoTrait from https://github.com/paritytech/substrate/pull/9246 + // This is now available with polkadot-v0.9.9 dependencies + is_pallet_prefix::("System"); + is_pallet_prefix::("Utility"); + is_pallet_prefix::("ParachainSystem"); + is_pallet_prefix::("TransactionPayment"); + is_pallet_prefix::("ParachainInfo"); + is_pallet_prefix::("EthereumChainId"); + is_pallet_prefix::("EVM"); + is_pallet_prefix::("Ethereum"); + is_pallet_prefix::("ParachainStaking"); + is_pallet_prefix::("Scheduler"); + is_pallet_prefix::("Treasury"); + is_pallet_prefix::( + "OpenTechCommitteeCollective", + ); + is_pallet_prefix::("AuthorInherent"); + is_pallet_prefix::("AuthorFilter"); + is_pallet_prefix::("CrowdloanRewards"); + is_pallet_prefix::("AuthorMapping"); + is_pallet_prefix::("MaintenanceMode"); + is_pallet_prefix::("Identity"); + is_pallet_prefix::("XcmpQueue"); + is_pallet_prefix::("CumulusXcm"); + is_pallet_prefix::("DmpQueue"); + is_pallet_prefix::("PolkadotXcm"); + is_pallet_prefix::("Assets"); + is_pallet_prefix::("XTokens"); + is_pallet_prefix::("AssetManager"); + is_pallet_prefix::("Migrations"); + is_pallet_prefix::("XcmTransactor"); + is_pallet_prefix::("ProxyGenesisCompanion"); + is_pallet_prefix::("MoonbeamOrbiters"); + is_pallet_prefix::("EthereumXcm"); + is_pallet_prefix::("Randomness"); + is_pallet_prefix::("TreasuryCouncilCollective"); + is_pallet_prefix::("MoonbeamLazyMigrations"); + is_pallet_prefix::("RelayStorageRoots"); + + let prefix = |pallet_name, storage_name| { + let mut res = [0u8; 32]; + res[0..16].copy_from_slice(&Twox128::hash(pallet_name)); + res[16..32].copy_from_slice(&Twox128::hash(storage_name)); + res.to_vec() + }; + assert_eq!( + ::storage_info(), + vec![ + StorageInfo { + pallet_name: b"Balances".to_vec(), + storage_name: b"TotalIssuance".to_vec(), + prefix: prefix(b"Balances", b"TotalIssuance"), + max_values: Some(1), + max_size: Some(16), + }, + StorageInfo { + pallet_name: b"Balances".to_vec(), + storage_name: b"InactiveIssuance".to_vec(), + prefix: prefix(b"Balances", b"InactiveIssuance"), + max_values: Some(1), + max_size: Some(16), + }, + StorageInfo { + pallet_name: b"Balances".to_vec(), + storage_name: b"Account".to_vec(), + prefix: prefix(b"Balances", b"Account"), + max_values: None, + max_size: Some(100), + }, + StorageInfo { + pallet_name: b"Balances".to_vec(), + storage_name: b"Locks".to_vec(), + prefix: prefix(b"Balances", b"Locks"), + max_values: None, + max_size: Some(1287), + }, + StorageInfo { + pallet_name: b"Balances".to_vec(), + storage_name: b"Reserves".to_vec(), + prefix: prefix(b"Balances", b"Reserves"), + max_values: None, + max_size: Some(1037), + }, + StorageInfo { + pallet_name: b"Balances".to_vec(), + storage_name: b"Holds".to_vec(), + prefix: prefix(b"Balances", b"Holds"), + max_values: None, + max_size: Some(55), + }, + StorageInfo { + pallet_name: b"Balances".to_vec(), + storage_name: b"Freezes".to_vec(), + prefix: prefix(b"Balances", b"Freezes"), + max_values: None, + max_size: Some(37), + }, + ] + ); + assert_eq!( + ::storage_info(), + vec![StorageInfo { + pallet_name: b"Sudo".to_vec(), + storage_name: b"Key".to_vec(), + prefix: prefix(b"Sudo", b"Key"), + max_values: Some(1), + max_size: Some(20), + }] + ); + assert_eq!( + ::storage_info(), + vec![ + StorageInfo { + pallet_name: b"Proxy".to_vec(), + storage_name: b"Proxies".to_vec(), + prefix: prefix(b"Proxy", b"Proxies"), + max_values: None, + max_size: Some(845), + }, + StorageInfo { + pallet_name: b"Proxy".to_vec(), + storage_name: b"Announcements".to_vec(), + prefix: prefix(b"Proxy", b"Announcements"), + max_values: None, + max_size: Some(1837), + } + ] + ); + assert_eq!( + ::storage_info(), + vec![StorageInfo { + pallet_name: b"MaintenanceMode".to_vec(), + storage_name: b"MaintenanceMode".to_vec(), + prefix: prefix(b"MaintenanceMode", b"MaintenanceMode"), + max_values: Some(1), + max_size: None, + },] + ); + + assert_eq!( + ::storage_info(), + vec![ + StorageInfo { + pallet_name: b"RelayStorageRoots".to_vec(), + storage_name: b"RelayStorageRoot".to_vec(), + prefix: prefix(b"RelayStorageRoots", b"RelayStorageRoot"), + max_values: None, + max_size: Some(44), + }, + StorageInfo { + pallet_name: b"RelayStorageRoots".to_vec(), + storage_name: b"RelayStorageRootKeys".to_vec(), + prefix: prefix(b"RelayStorageRoots", b"RelayStorageRootKeys"), + max_values: Some(1), + max_size: Some(121), + }, + ] + ); +} + +#[test] +fn test_collectives_storage_item_prefixes() { + for StorageInfo { pallet_name, .. } in + ::storage_info() + { + assert_eq!(pallet_name, b"TreasuryCouncilCollective".to_vec()); + } + + for StorageInfo { pallet_name, .. } in + ::storage_info() + { + assert_eq!(pallet_name, b"OpenTechCommitteeCollective".to_vec()); + } +} + +#[test] +fn collective_set_members_root_origin_works() { + ExtBuilder::default().build().execute_with(|| { + // TreasuryCouncilCollective + assert_ok!(TreasuryCouncilCollective::set_members( + ::RuntimeOrigin::root(), + vec![AccountId::from(ALICE), AccountId::from(BOB)], + Some(AccountId::from(ALICE)), + 2 + )); + // OpenTechCommitteeCollective + assert_ok!(OpenTechCommitteeCollective::set_members( + ::RuntimeOrigin::root(), + vec![AccountId::from(ALICE), AccountId::from(BOB)], + Some(AccountId::from(ALICE)), + 2 + )); + }); +} + +#[test] +fn collective_set_members_general_admin_origin_works() { + use moonbase_runtime::{ + governance::custom_origins::Origin as CustomOrigin, OriginCaller, Utility, + }; + + ExtBuilder::default().build().execute_with(|| { + let root_caller = ::RuntimeOrigin::root(); + let alice = AccountId::from(ALICE); + + // TreasuryCouncilCollective + let _ = Utility::dispatch_as( + root_caller.clone(), + Box::new(OriginCaller::Origins(CustomOrigin::GeneralAdmin)), + Box::new( + pallet_collective::Call::::set_members { + new_members: vec![alice, AccountId::from(BOB)], + prime: Some(alice), + old_count: 2, + } + .into(), + ), + ); + // OpenTechCommitteeCollective + let _ = Utility::dispatch_as( + root_caller, + Box::new(OriginCaller::Origins(CustomOrigin::GeneralAdmin)), + Box::new( + pallet_collective::Call::::set_members { + new_members: vec![alice, AccountId::from(BOB)], + prime: Some(alice), + old_count: 2, + } + .into(), + ), + ); + + assert_eq!( + System::events() + .into_iter() + .filter_map(|r| { + match r.event { + RuntimeEvent::Utility(pallet_utility::Event::DispatchedAs { result }) + if result.is_ok() => + { + Some(true) + } + _ => None, + } + }) + .collect::>() + .len(), + 2 + ) + }); +} + +#[test] +fn collective_set_members_signed_origin_does_not_work() { + let alice = AccountId::from(ALICE); + ExtBuilder::default().build().execute_with(|| { + // TreasuryCouncilCollective + assert!(TreasuryCouncilCollective::set_members( + ::RuntimeOrigin::signed(alice), + vec![AccountId::from(ALICE), AccountId::from(BOB)], + Some(AccountId::from(ALICE)), + 2 + ) + .is_err()); + // OpenTechCommitteeCollective + assert!(OpenTechCommitteeCollective::set_members( + ::RuntimeOrigin::signed(alice), + vec![AccountId::from(ALICE), AccountId::from(BOB)], + Some(AccountId::from(ALICE)), + 2 + ) + .is_err()); + }); +} + +#[test] +fn verify_pallet_indices() { + fn is_pallet_index(index: usize) { + assert_eq!( + ::PalletInfo::index::

(), + Some(index) + ); + } + is_pallet_index::(0); + is_pallet_index::(1); + is_pallet_index::(3); + is_pallet_index::(4); + is_pallet_index::(6); + is_pallet_index::(7); + is_pallet_index::(8); + is_pallet_index::(9); + is_pallet_index::(10); + is_pallet_index::(11); + is_pallet_index::(12); + is_pallet_index::(13); + //is_pallet_index::(14); Removed + is_pallet_index::(17); + is_pallet_index::(18); + is_pallet_index::(19); + is_pallet_index::(20); + is_pallet_index::(21); + is_pallet_index::(22); + is_pallet_index::(23); + is_pallet_index::(24); + is_pallet_index::(25); + is_pallet_index::(26); + is_pallet_index::(27); + is_pallet_index::(28); + is_pallet_index::(29); + is_pallet_index::(30); + is_pallet_index::(31); + is_pallet_index::(32); + is_pallet_index::(33); + is_pallet_index::(34); + is_pallet_index::(37); + is_pallet_index::(38); + is_pallet_index::(39); + is_pallet_index::(40); + is_pallet_index::(46); + is_pallet_index::(51); +} + +#[test] +fn verify_reserved_indices() { + use frame_metadata::*; + let metadata = moonbase_runtime::Runtime::metadata(); + let metadata = match metadata.1 { + RuntimeMetadata::V14(metadata) => metadata, + _ => panic!("metadata has been bumped, test needs to be updated"), + }; + // 35: BaseFee + // 36: pallet_assets:: + let reserved = vec![35, 36]; + let existing = metadata + .pallets + .iter() + .map(|p| p.index) + .collect::>(); + assert!(reserved.iter().all(|index| !existing.contains(index))); +} + +#[test] +fn verify_proxy_type_indices() { + assert_eq!(moonbase_runtime::ProxyType::Any as u8, 0); + assert_eq!(moonbase_runtime::ProxyType::NonTransfer as u8, 1); + assert_eq!(moonbase_runtime::ProxyType::Governance as u8, 2); + assert_eq!(moonbase_runtime::ProxyType::Staking as u8, 3); + assert_eq!(moonbase_runtime::ProxyType::CancelProxy as u8, 4); + assert_eq!(moonbase_runtime::ProxyType::Balances as u8, 5); + assert_eq!(moonbase_runtime::ProxyType::AuthorMapping as u8, 6); + assert_eq!(moonbase_runtime::ProxyType::IdentityJudgement as u8, 7); +} + +#[test] +fn join_collator_candidates() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * UNIT), + (AccountId::from(BOB), 2_000 * UNIT), + (AccountId::from(CHARLIE), 1_100 * UNIT), + (AccountId::from(DAVE), 1_000 * UNIT), + ]) + .with_collators(vec![ + (AccountId::from(ALICE), 1_000 * UNIT), + (AccountId::from(BOB), 1_000 * UNIT), + ]) + .with_delegations(vec![ + (AccountId::from(CHARLIE), AccountId::from(ALICE), 50 * UNIT), + (AccountId::from(CHARLIE), AccountId::from(BOB), 50 * UNIT), + ]) + .build() + .execute_with(|| { + assert_noop!( + ParachainStaking::join_candidates( + origin_of(AccountId::from(ALICE)), + 1_000 * UNIT, + 2u32 + ), + pallet_parachain_staking::Error::::CandidateExists + ); + assert_noop!( + ParachainStaking::join_candidates( + origin_of(AccountId::from(CHARLIE)), + 1_000 * UNIT, + 2u32 + ), + pallet_parachain_staking::Error::::DelegatorExists + ); + assert!(System::events().is_empty()); + assert_ok!(ParachainStaking::join_candidates( + origin_of(AccountId::from(DAVE)), + 1_000 * UNIT, + 2u32 + )); + assert_eq!( + last_event(), + RuntimeEvent::ParachainStaking( + pallet_parachain_staking::Event::JoinedCollatorCandidates { + account: AccountId::from(DAVE), + amount_locked: 1_000 * UNIT, + new_total_amt_locked: 3_100 * UNIT + } + ) + ); + let candidates = ParachainStaking::candidate_pool(); + assert_eq!(candidates.0[0].owner, AccountId::from(ALICE)); + assert_eq!(candidates.0[0].amount, 1_050 * UNIT); + assert_eq!(candidates.0[1].owner, AccountId::from(BOB)); + assert_eq!(candidates.0[1].amount, 1_050 * UNIT); + assert_eq!(candidates.0[2].owner, AccountId::from(DAVE)); + assert_eq!(candidates.0[2].amount, 1_000 * UNIT); + }); +} + +#[test] +fn transfer_through_evm_to_stake() { + ExtBuilder::default() + .with_balances(vec![(AccountId::from(ALICE), 2_000 * UNIT)]) + .build() + .execute_with(|| { + // Charlie has no balance => fails to stake + assert_noop!( + ParachainStaking::join_candidates( + origin_of(AccountId::from(CHARLIE)), + 1_000 * UNIT, + 0u32 + ), + DispatchError::Module(ModuleError { + index: 12, + error: [8, 0, 0, 0], + message: Some("InsufficientBalance") + }) + ); + + // Alice transfer from free balance 2000 UNIT to Bob + assert_ok!(Balances::transfer_allow_death( + origin_of(AccountId::from(ALICE)), + AccountId::from(BOB), + 2_000 * UNIT, + )); + assert_eq!(Balances::free_balance(AccountId::from(BOB)), 2_000 * UNIT); + + let gas_limit = 100000u64; + // Bob transfers 1000 UNIT to Charlie via EVM + assert_ok!(RuntimeCall::EVM(pallet_evm::Call::::call { + source: H160::from(BOB), + target: H160::from(CHARLIE), + input: Vec::new(), + value: (1_000 * UNIT).into(), + gas_limit, + max_fee_per_gas: U256::from(BASE_FEE_GENISIS), + max_priority_fee_per_gas: None, + nonce: None, + access_list: Vec::new(), + }) + .dispatch(::RuntimeOrigin::root())); + assert_eq!( + Balances::free_balance(AccountId::from(CHARLIE)), + 1_000 * UNIT, + ); + + // Charlie can stake now + assert_ok!(ParachainStaking::join_candidates( + origin_of(AccountId::from(CHARLIE)), + 1_000 * UNIT, + 0u32, + ),); + let candidates = ParachainStaking::candidate_pool(); + assert_eq!(candidates.0[0].owner, AccountId::from(CHARLIE)); + assert_eq!(candidates.0[0].amount, 1_000 * UNIT); + }); +} + +#[test] +fn reward_block_authors() { + ExtBuilder::default() + .with_balances(vec![ + // Alice gets 100 extra tokens for her mapping deposit + (AccountId::from(ALICE), 2_100 * UNIT), + (AccountId::from(BOB), 1_000 * UNIT), + ]) + .with_collators(vec![(AccountId::from(ALICE), 1_000 * UNIT)]) + .with_delegations(vec![( + AccountId::from(BOB), + AccountId::from(ALICE), + 500 * UNIT, + )]) + .with_mappings(vec![( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + AccountId::from(ALICE), + )]) + .build() + .execute_with(|| { + increase_last_relay_slot_number(1); + // Just before round 3 + run_to_block(2399, Some(NimbusId::from_slice(&ALICE_NIMBUS).unwrap())); + // no rewards doled out yet + assert_eq!( + Balances::usable_balance(AccountId::from(ALICE)), + 1_100 * UNIT, + ); + assert_eq!(Balances::usable_balance(AccountId::from(BOB)), 500 * UNIT,); + run_to_block(2401, Some(NimbusId::from_slice(&ALICE_NIMBUS).unwrap())); + // rewards minted and distributed + assert_eq!( + Balances::usable_balance(AccountId::from(ALICE)), + 1213666666584000000000, + ); + assert_eq!( + Balances::usable_balance(AccountId::from(BOB)), + 541333333292000000000, + ); + }); +} + +#[test] +fn reward_block_authors_with_parachain_bond_reserved() { + ExtBuilder::default() + .with_balances(vec![ + // Alice gets 100 extra tokens for her mapping deposit + (AccountId::from(ALICE), 2_100 * UNIT), + (AccountId::from(BOB), 1_000 * UNIT), + (AccountId::from(CHARLIE), UNIT), + ]) + .with_collators(vec![(AccountId::from(ALICE), 1_000 * UNIT)]) + .with_delegations(vec![( + AccountId::from(BOB), + AccountId::from(ALICE), + 500 * UNIT, + )]) + .with_mappings(vec![( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + AccountId::from(ALICE), + )]) + .build() + .execute_with(|| { + increase_last_relay_slot_number(1); + assert_ok!(ParachainStaking::set_parachain_bond_account( + root_origin(), + AccountId::from(CHARLIE), + ),); + + // Stop just before round 2 + run_to_block(1199, Some(NimbusId::from_slice(&ALICE_NIMBUS).unwrap())); + + // no rewards doled out yet + assert_eq!( + Balances::usable_balance(AccountId::from(ALICE)), + 1_100 * UNIT, + ); + assert_eq!(Balances::usable_balance(AccountId::from(BOB)), 500 * UNIT,); + assert_eq!(Balances::usable_balance(AccountId::from(CHARLIE)), UNIT,); + + // Go to round 2 + run_to_block(1201, Some(NimbusId::from_slice(&ALICE_NIMBUS).unwrap())); + + // 30% reserved for parachain bond + assert_eq!( + Balances::usable_balance(AccountId::from(CHARLIE)), + 47515000000000000000, + ); + + // Go to round 3 + run_to_block(2401, Some(NimbusId::from_slice(&ALICE_NIMBUS).unwrap())); + // rewards minted and distributed + assert_eq!( + Balances::usable_balance(AccountId::from(ALICE)), + 1182693333281650000000, + ); + assert_eq!( + Balances::usable_balance(AccountId::from(BOB)), + 525841666640825000000, + ); + // 30% again reserved for parachain bond + assert_eq!( + Balances::usable_balance(AccountId::from(CHARLIE)), + 94727725000000000000, + ); + }); +} + +#[test] +fn initialize_crowdloan_addresses_with_batch_and_pay() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * UNIT), + (AccountId::from(BOB), 1_000 * UNIT), + ]) + .with_collators(vec![(AccountId::from(ALICE), 1_000 * UNIT)]) + .with_mappings(vec![( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + AccountId::from(ALICE), + )]) + .with_crowdloan_fund(3_000_000 * UNIT) + .build() + .execute_with(|| { + // set parachain inherent data + set_parachain_inherent_data(); + let init_block = CrowdloanRewards::init_vesting_block(); + // This matches the previous vesting + let end_block = init_block + 4 * WEEKS; + // Batch calls always succeed. We just need to check the inner event + assert_ok!( + RuntimeCall::Utility(pallet_utility::Call::::batch_all { + calls: vec![ + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::initialize_reward_vec { + rewards: vec![( + [4u8; 32].into(), + Some(AccountId::from(CHARLIE)), + 1_500_000 * UNIT + )] + } + ), + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::initialize_reward_vec { + rewards: vec![( + [5u8; 32].into(), + Some(AccountId::from(DAVE)), + 1_500_000 * UNIT + )] + } + ), + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::complete_initialization { + lease_ending_block: end_block + } + ) + ] + }) + .dispatch(root_origin()) + ); + // 30 percent initial payout + assert_eq!(Balances::balance(&AccountId::from(CHARLIE)), 450_000 * UNIT); + // 30 percent initial payout + assert_eq!(Balances::balance(&AccountId::from(DAVE)), 450_000 * UNIT); + let expected = RuntimeEvent::Utility(pallet_utility::Event::BatchCompleted); + assert_eq!(last_event(), expected); + // This one should fail, as we already filled our data + assert_ok!( + RuntimeCall::Utility(pallet_utility::Call::::batch { + calls: vec![RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::initialize_reward_vec { + rewards: vec![([4u8; 32].into(), Some(AccountId::from(ALICE)), 432000)] + } + )] + }) + .dispatch(root_origin()) + ); + let expected_fail = RuntimeEvent::Utility(pallet_utility::Event::BatchInterrupted { + index: 0, + error: DispatchError::Module(ModuleError { + index: 20, + error: [8, 0, 0, 0], + message: None, + }), + }); + assert_eq!(last_event(), expected_fail); + // Claim 1 block. + assert_ok!(CrowdloanRewards::claim(origin_of(AccountId::from(CHARLIE)))); + assert_ok!(CrowdloanRewards::claim(origin_of(AccountId::from(DAVE)))); + + let vesting_period = 4 * WEEKS as u128; + let per_block = (1_050_000 * UNIT) / vesting_period; + + assert_eq!( + CrowdloanRewards::accounts_payable(&AccountId::from(CHARLIE)) + .unwrap() + .claimed_reward, + (450_000 * UNIT) + per_block + ); + assert_eq!( + CrowdloanRewards::accounts_payable(&AccountId::from(DAVE)) + .unwrap() + .claimed_reward, + (450_000 * UNIT) + per_block + ); + // The total claimed reward should be equal to the account balance at this point. + assert_eq!( + Balances::balance(&AccountId::from(CHARLIE)), + (450_000 * UNIT) + per_block + ); + assert_eq!( + Balances::balance(&AccountId::from(DAVE)), + (450_000 * UNIT) + per_block + ); + assert_noop!( + CrowdloanRewards::claim(origin_of(AccountId::from(ALICE))), + pallet_crowdloan_rewards::Error::::NoAssociatedClaim + ); + }); +} + +#[test] +fn initialize_crowdloan_address_and_change_with_relay_key_sig() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * UNIT), + (AccountId::from(BOB), 1_000 * UNIT), + ]) + .with_collators(vec![(AccountId::from(ALICE), 1_000 * UNIT)]) + .with_mappings(vec![( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + AccountId::from(ALICE), + )]) + .with_crowdloan_fund(3_000_000 * UNIT) + .build() + .execute_with(|| { + // set parachain inherent data + let init_block = CrowdloanRewards::init_vesting_block(); + // This matches the previous vesting + let end_block = init_block + 4 * WEEKS; + + let (pair1, _) = sp_core::sr25519::Pair::generate(); + let (pair2, _) = sp_core::sr25519::Pair::generate(); + + let public1 = pair1.public(); + let public2 = pair2.public(); + + // signature: + // WRAP_BYTES|| NetworkIdentifier|| new_account || previous_account || WRAP_BYTES + let mut message = pallet_crowdloan_rewards::WRAPPED_BYTES_PREFIX.to_vec(); + message.append(&mut b"moonbase-".to_vec()); + message.append(&mut AccountId::from(DAVE).encode()); + message.append(&mut AccountId::from(CHARLIE).encode()); + message.append(&mut pallet_crowdloan_rewards::WRAPPED_BYTES_POSTFIX.to_vec()); + + let signature1 = pair1.sign(&message); + let signature2 = pair2.sign(&message); + + // Batch calls always succeed. We just need to check the inner event + assert_ok!( + // two relay accounts pointing at the same reward account + RuntimeCall::Utility(pallet_utility::Call::::batch_all { + calls: vec![ + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::initialize_reward_vec { + rewards: vec![( + public1.into(), + Some(AccountId::from(CHARLIE)), + 1_500_000 * UNIT + )] + } + ), + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::initialize_reward_vec { + rewards: vec![( + public2.into(), + Some(AccountId::from(CHARLIE)), + 1_500_000 * UNIT + )] + } + ), + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::complete_initialization { + lease_ending_block: end_block + } + ) + ] + }) + .dispatch(root_origin()) + ); + // 30 percent initial payout + assert_eq!(Balances::balance(&AccountId::from(CHARLIE)), 900_000 * UNIT); + + // this should fail, as we are only providing one signature + assert_noop!( + CrowdloanRewards::change_association_with_relay_keys( + origin_of(AccountId::from(CHARLIE)), + AccountId::from(DAVE), + AccountId::from(CHARLIE), + vec![(public1.into(), signature1.clone().into())] + ), + pallet_crowdloan_rewards::Error::::InsufficientNumberOfValidProofs + ); + + // this should be valid + assert_ok!(CrowdloanRewards::change_association_with_relay_keys( + origin_of(AccountId::from(CHARLIE)), + AccountId::from(DAVE), + AccountId::from(CHARLIE), + vec![ + (public1.into(), signature1.into()), + (public2.into(), signature2.into()) + ] + )); + + assert_eq!( + CrowdloanRewards::accounts_payable(&AccountId::from(DAVE)) + .unwrap() + .claimed_reward, + (900_000 * UNIT) + ); + }); +} + +#[test] +fn claim_via_precompile() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * UNIT), + (AccountId::from(BOB), 1_000 * UNIT), + ]) + .with_collators(vec![(AccountId::from(ALICE), 1_000 * UNIT)]) + .with_mappings(vec![( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + AccountId::from(ALICE), + )]) + .with_crowdloan_fund(3_000_000 * UNIT) + .build() + .execute_with(|| { + // set parachain inherent data + set_parachain_inherent_data(); + let init_block = CrowdloanRewards::init_vesting_block(); + // This matches the previous vesting + let end_block = init_block + 4 * WEEKS; + // Batch calls always succeed. We just need to check the inner event + assert_ok!( + RuntimeCall::Utility(pallet_utility::Call::::batch_all { + calls: vec![ + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::initialize_reward_vec { + rewards: vec![( + [4u8; 32].into(), + Some(AccountId::from(CHARLIE)), + 1_500_000 * UNIT + )] + } + ), + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::initialize_reward_vec { + rewards: vec![( + [5u8; 32].into(), + Some(AccountId::from(DAVE)), + 1_500_000 * UNIT + )] + } + ), + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::complete_initialization { + lease_ending_block: end_block + } + ) + ] + }) + .dispatch(root_origin()) + ); + + // 30 percent initial payout + assert_eq!(Balances::balance(&AccountId::from(CHARLIE)), 450_000 * UNIT); + // 30 percent initial payout + assert_eq!(Balances::balance(&AccountId::from(DAVE)), 450_000 * UNIT); + + let crowdloan_precompile_address = H160::from_low_u64_be(2049); + + // Alice uses the crowdloan precompile to claim through the EVM + let gas_limit = 100000u64; + let gas_price: U256 = BASE_FEE_GENISIS.into(); + + // Construct the call data (selector, amount) + let mut call_data = Vec::::from([0u8; 4]); + call_data[0..4].copy_from_slice(&Keccak256::digest(b"claim()")[0..4]); + + assert_ok!(RuntimeCall::EVM(pallet_evm::Call::::call { + source: H160::from(CHARLIE), + target: crowdloan_precompile_address, + input: call_data, + value: U256::zero(), // No value sent in EVM + gas_limit, + max_fee_per_gas: gas_price, + max_priority_fee_per_gas: None, + nonce: None, // Use the next nonce + access_list: Vec::new(), + }) + .dispatch(::RuntimeOrigin::root())); + + let vesting_period = 4 * WEEKS as u128; + let per_block = (1_050_000 * UNIT) / vesting_period; + + assert_eq!( + CrowdloanRewards::accounts_payable(&AccountId::from(CHARLIE)) + .unwrap() + .claimed_reward, + (450_000 * UNIT) + per_block + ); + }) +} + +#[test] +fn is_contributor_via_precompile() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * UNIT), + (AccountId::from(BOB), 1_000 * UNIT), + ]) + .with_collators(vec![(AccountId::from(ALICE), 1_000 * UNIT)]) + .with_mappings(vec![( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + AccountId::from(ALICE), + )]) + .with_crowdloan_fund(3_000_000 * UNIT) + .build() + .execute_with(|| { + // set parachain inherent data + let init_block = CrowdloanRewards::init_vesting_block(); + // This matches the previous vesting + let end_block = init_block + 4 * WEEKS; + // Batch calls always succeed. We just need to check the inner event + assert_ok!( + RuntimeCall::Utility(pallet_utility::Call::::batch_all { + calls: vec![ + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::initialize_reward_vec { + rewards: vec![( + [4u8; 32].into(), + Some(AccountId::from(CHARLIE)), + 1_500_000 * UNIT + )] + } + ), + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::initialize_reward_vec { + rewards: vec![( + [5u8; 32].into(), + Some(AccountId::from(DAVE)), + 1_500_000 * UNIT + )] + } + ), + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::complete_initialization { + lease_ending_block: end_block + } + ) + ] + }) + .dispatch(root_origin()) + ); + + let crowdloan_precompile_address = H160::from_low_u64_be(2049); + + // Assert precompile reports Bob is not a contributor + Precompiles::new() + .prepare_test( + ALICE, + crowdloan_precompile_address, + CrowdloanRewardsPCall::is_contributor { + contributor: Address(BOB.into()), + }, + ) + .expect_cost(1000) + .expect_no_logs() + .execute_returns(false); + + // Assert precompile reports Charlie is a nominator + Precompiles::new() + .prepare_test( + ALICE, + crowdloan_precompile_address, + CrowdloanRewardsPCall::is_contributor { + contributor: Address(CHARLIE.into()), + }, + ) + .expect_cost(1000) + .expect_no_logs() + .execute_returns(true); + }) +} + +#[test] +fn reward_info_via_precompile() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * UNIT), + (AccountId::from(BOB), 1_000 * UNIT), + ]) + .with_collators(vec![(AccountId::from(ALICE), 1_000 * UNIT)]) + .with_mappings(vec![( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + AccountId::from(ALICE), + )]) + .with_crowdloan_fund(3_000_000 * UNIT) + .build() + .execute_with(|| { + // set parachain inherent data + let init_block = CrowdloanRewards::init_vesting_block(); + // This matches the previous vesting + let end_block = init_block + 4 * WEEKS; + // Batch calls always succeed. We just need to check the inner event + assert_ok!( + RuntimeCall::Utility(pallet_utility::Call::::batch_all { + calls: vec![ + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::initialize_reward_vec { + rewards: vec![( + [4u8; 32].into(), + Some(AccountId::from(CHARLIE)), + 1_500_000 * UNIT + )] + } + ), + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::initialize_reward_vec { + rewards: vec![( + [5u8; 32].into(), + Some(AccountId::from(DAVE)), + 1_500_000 * UNIT + )] + } + ), + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::complete_initialization { + lease_ending_block: end_block + } + ) + ] + }) + .dispatch(root_origin()) + ); + + let crowdloan_precompile_address = H160::from_low_u64_be(2049); + + let expected_total: U256 = (1_500_000 * UNIT).into(); + let expected_claimed: U256 = (450_000 * UNIT).into(); + + // Assert precompile reports correct Charlie reward info. + Precompiles::new() + .prepare_test( + ALICE, + crowdloan_precompile_address, + CrowdloanRewardsPCall::reward_info { + contributor: Address(AccountId::from(CHARLIE).into()), + }, + ) + .expect_cost(1000) + .expect_no_logs() + .execute_returns((expected_total, expected_claimed)); + }) +} + +#[test] +fn update_reward_address_via_precompile() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * UNIT), + (AccountId::from(BOB), 1_000 * UNIT), + ]) + .with_collators(vec![(AccountId::from(ALICE), 1_000 * UNIT)]) + .with_mappings(vec![( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + AccountId::from(ALICE), + )]) + .with_crowdloan_fund(3_000_000 * UNIT) + .build() + .execute_with(|| { + // set parachain inherent data + let init_block = CrowdloanRewards::init_vesting_block(); + // This matches the previous vesting + let end_block = init_block + 4 * WEEKS; + // Batch calls always succeed. We just need to check the inner event + assert_ok!( + RuntimeCall::Utility(pallet_utility::Call::::batch_all { + calls: vec![ + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::initialize_reward_vec { + rewards: vec![( + [4u8; 32].into(), + Some(AccountId::from(CHARLIE)), + 1_500_000 * UNIT + )] + } + ), + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::initialize_reward_vec { + rewards: vec![( + [5u8; 32].into(), + Some(AccountId::from(DAVE)), + 1_500_000 * UNIT + )] + } + ), + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::complete_initialization { + lease_ending_block: end_block + } + ) + ] + }) + .dispatch(root_origin()) + ); + + let crowdloan_precompile_address = H160::from_low_u64_be(2049); + + // Charlie uses the crowdloan precompile to update address through the EVM + let gas_limit = 100000u64; + let gas_price: U256 = BASE_FEE_GENISIS.into(); + + // Construct the input data to check if Bob is a contributor + let mut call_data = Vec::::from([0u8; 36]); + call_data[0..4] + .copy_from_slice(&Keccak256::digest(b"update_reward_address(address)")[0..4]); + call_data[16..36].copy_from_slice(&ALICE); + + assert_ok!(RuntimeCall::EVM(pallet_evm::Call::::call { + source: H160::from(CHARLIE), + target: crowdloan_precompile_address, + input: call_data, + value: U256::zero(), // No value sent in EVM + gas_limit, + max_fee_per_gas: gas_price, + max_priority_fee_per_gas: None, + nonce: None, // Use the next nonce + access_list: Vec::new(), + }) + .dispatch(::RuntimeOrigin::root())); + + assert!(CrowdloanRewards::accounts_payable(&AccountId::from(CHARLIE)).is_none()); + assert_eq!( + CrowdloanRewards::accounts_payable(&AccountId::from(ALICE)) + .unwrap() + .claimed_reward, + (450_000 * UNIT) + ); + }) +} + +#[test] +fn asset_can_be_registered() { + ExtBuilder::default().build().execute_with(|| { + let source_location = AssetType::Xcm(xcm::v3::Location::parent()); + let source_id: moonbase_runtime::AssetId = source_location.clone().into(); + let asset_metadata = AssetRegistrarMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + is_frozen: false, + }; + assert_ok!(AssetManager::register_foreign_asset( + moonbase_runtime::RuntimeOrigin::root(), + source_location, + asset_metadata, + 1u128, + true, + )); + assert!(AssetManager::asset_id_type(source_id).is_some()); + }); +} + +#[test] +fn xcm_asset_erc20_precompiles_supply_and_balance() { + ExtBuilder::default() + .with_xcm_assets(vec![XcmAssetInitialization { + asset_type: AssetType::Xcm(xcm::v3::Location::parent()), + metadata: AssetRegistrarMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + is_frozen: false, + }, + balances: vec![(AccountId::from(ALICE), 1_000 * UNIT)], + is_sufficient: true, + }]) + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * UNIT), + (AccountId::from(BOB), 1_000 * UNIT), + ]) + .build() + .execute_with(|| { + // We have the assetId that corresponds to the relay chain registered + let relay_asset_id: AssetId = AssetType::Xcm(xcm::v3::Location::parent()).into(); + + // Its address is + let asset_precompile_address = Runtime::asset_id_to_account( + FOREIGN_ASSET_PRECOMPILE_ADDRESS_PREFIX, + relay_asset_id, + ); + + // Assert the asset has been created with the correct supply + assert_eq!(Assets::total_supply(relay_asset_id), 1_000 * UNIT); + + // Access totalSupply through precompile. Important that the context is correct + Precompiles::new() + .prepare_test( + ALICE, + asset_precompile_address, + ForeignAssetsPCall::total_supply {}, + ) + .expect_cost(2000) + .expect_no_logs() + .execute_returns(U256::from(1000 * UNIT)); + + // Access balanceOf through precompile + Precompiles::new() + .prepare_test( + ALICE, + asset_precompile_address, + ForeignAssetsPCall::balance_of { + who: Address(ALICE.into()), + }, + ) + .expect_cost(2000) + .expect_no_logs() + .execute_returns(U256::from(1000 * UNIT)); + }); +} + +#[test] +fn xcm_asset_erc20_precompiles_transfer() { + ExtBuilder::default() + .with_xcm_assets(vec![XcmAssetInitialization { + asset_type: AssetType::Xcm(xcm::v3::Location::parent()), + metadata: AssetRegistrarMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + is_frozen: false, + }, + balances: vec![(AccountId::from(ALICE), 1_000 * UNIT)], + is_sufficient: true, + }]) + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * UNIT), + (AccountId::from(BOB), 1_000 * UNIT), + ]) + .build() + .execute_with(|| { + // We have the assetId that corresponds to the relay chain registered + let relay_asset_id: AssetId = AssetType::Xcm(xcm::v3::Location::parent()).into(); + + // Its address is + let asset_precompile_address = Runtime::asset_id_to_account( + FOREIGN_ASSET_PRECOMPILE_ADDRESS_PREFIX, + relay_asset_id, + ); + + // Transfer tokens from Alice to Bob, 400 UNIT. + Precompiles::new() + .prepare_test( + ALICE, + asset_precompile_address, + ForeignAssetsPCall::transfer { + to: Address(BOB.into()), + value: { 400 * UNIT }.into(), + }, + ) + .expect_cost(24342) + .expect_log(log3( + asset_precompile_address, + SELECTOR_LOG_TRANSFER, + H160::from(ALICE), + H160::from(BOB), + solidity::encode_event_data(U256::from(400 * UNIT)), + )) + .execute_returns(true); + + // Make sure BOB has 400 UNIT + Precompiles::new() + .prepare_test( + BOB, + asset_precompile_address, + ForeignAssetsPCall::balance_of { + who: Address(BOB.into()), + }, + ) + .expect_cost(2000) + .expect_no_logs() + .execute_returns(U256::from(400 * UNIT)); + }); +} + +#[test] +fn xcm_asset_erc20_precompiles_approve() { + ExtBuilder::default() + .with_xcm_assets(vec![XcmAssetInitialization { + asset_type: AssetType::Xcm(xcm::v3::Location::parent()), + metadata: AssetRegistrarMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + is_frozen: false, + }, + balances: vec![(AccountId::from(ALICE), 1_000 * UNIT)], + is_sufficient: true, + }]) + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * UNIT), + (AccountId::from(BOB), 1_000 * UNIT), + ]) + .build() + .execute_with(|| { + // We have the assetId that corresponds to the relay chain registered + let relay_asset_id: AssetId = AssetType::Xcm(xcm::v3::Location::parent()).into(); + + // Its address is + let asset_precompile_address = Runtime::asset_id_to_account( + FOREIGN_ASSET_PRECOMPILE_ADDRESS_PREFIX, + relay_asset_id, + ); + + // Aprove Bob for spending 400 UNIT from Alice + Precompiles::new() + .prepare_test( + ALICE, + asset_precompile_address, + ForeignAssetsPCall::approve { + spender: Address(BOB.into()), + value: { 400 * UNIT }.into(), + }, + ) + .expect_cost(14424) + .expect_log(log3( + asset_precompile_address, + SELECTOR_LOG_APPROVAL, + H160::from(ALICE), + H160::from(BOB), + solidity::encode_event_data(U256::from(400 * UNIT)), + )) + .execute_returns(true); + + // Transfer tokens from Alice to Charlie by using BOB as origin + Precompiles::new() + .prepare_test( + BOB, + asset_precompile_address, + ForeignAssetsPCall::transfer_from { + from: Address(ALICE.into()), + to: Address(CHARLIE.into()), + value: { 400 * UNIT }.into(), + }, + ) + .expect_cost(29686) + .expect_log(log3( + asset_precompile_address, + SELECTOR_LOG_TRANSFER, + H160::from(ALICE), + H160::from(CHARLIE), + solidity::encode_event_data(U256::from(400 * UNIT)), + )) + .execute_returns(true); + + // Make sure CHARLIE has 400 UNIT + Precompiles::new() + .prepare_test( + CHARLIE, + asset_precompile_address, + ForeignAssetsPCall::balance_of { + who: Address(CHARLIE.into()), + }, + ) + .expect_cost(2000) + .expect_no_logs() + .execute_returns(U256::from(400 * UNIT)); + }); +} + +#[test] +fn xtokens_precompiles_transfer() { + ExtBuilder::default() + .with_xcm_assets(vec![XcmAssetInitialization { + asset_type: AssetType::Xcm(xcm::v3::Location::parent()), + metadata: AssetRegistrarMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + is_frozen: false, + }, + balances: vec![(AccountId::from(ALICE), 1_000_000_000_000_000)], + is_sufficient: true, + }]) + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * UNIT), + (AccountId::from(BOB), 1_000 * UNIT), + ]) + .with_safe_xcm_version(2) + .build() + .execute_with(|| { + let xtokens_precompile_address = H160::from_low_u64_be(2052); + + // We have the assetId that corresponds to the relay chain registered + let relay_asset_id: AssetId = AssetType::Xcm(xcm::v3::Location::parent()).into(); + + // Its address is + let asset_precompile_address = Runtime::asset_id_to_account( + FOREIGN_ASSET_PRECOMPILE_ADDRESS_PREFIX, + relay_asset_id, + ); + + // Alice has 1000 tokens. She should be able to send through precompile + let destination = Location::new( + 1, + [Junction::AccountId32 { + network: None, + id: [1u8; 32], + }], + ); + + // We use the address of the asset as an identifier of the asset we want to transfer + Precompiles::new() + .prepare_test( + ALICE, + xtokens_precompile_address, + XtokensPCall::transfer { + currency_address: Address(asset_precompile_address.into()), + amount: 500_000_000_000_000u128.into(), + destination, + weight: 4_000_000, + }, + ) + .expect_cost(57639) + .expect_no_logs() + .execute_returns(()) + }) +} + +#[test] +fn xtokens_precompiles_transfer_multiasset() { + ExtBuilder::default() + .with_xcm_assets(vec![XcmAssetInitialization { + asset_type: AssetType::Xcm(xcm::v3::Location::parent()), + metadata: AssetRegistrarMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + is_frozen: false, + }, + balances: vec![(AccountId::from(ALICE), 1_000_000_000_000_000)], + is_sufficient: true, + }]) + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * UNIT), + (AccountId::from(BOB), 1_000 * UNIT), + ]) + .with_safe_xcm_version(2) + .build() + .execute_with(|| { + let xtokens_precompile_address = H160::from_low_u64_be(2052); + + // Alice has 1000 tokens. She should be able to send through precompile + let destination = Location::new( + 1, + [Junction::AccountId32 { + network: None, + id: [1u8; 32], + }], + ); + + // This time we transfer it through TransferMultiAsset + // Instead of the address, we encode directly the multilocation referencing the asset + Precompiles::new() + .prepare_test( + ALICE, + xtokens_precompile_address, + XtokensPCall::transfer_multiasset { + // We want to transfer the relay token + asset: Location::parent(), + amount: 500_000_000_000_000u128.into(), + destination, + weight: 4_000_000, + }, + ) + .expect_cost(57639) + .expect_no_logs() + .execute_returns(()); + }) +} + +#[test] +fn xtokens_precompiles_transfer_native() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * UNIT), + (AccountId::from(BOB), 1_000 * UNIT), + ]) + .with_safe_xcm_version(2) + .build() + .execute_with(|| { + let xtokens_precompile_address = H160::from_low_u64_be(2052); + + // Its address is + let asset_precompile_address = H160::from_low_u64_be(2050); + + // Alice has 1000 tokens. She should be able to send through precompile + let destination = Location::new( + 1, + [Junction::AccountId32 { + network: None, + id: [1u8; 32], + }], + ); + + // We use the address of the asset as an identifier of the asset we want to transfer + Precompiles::new() + .prepare_test( + ALICE, + xtokens_precompile_address, + XtokensPCall::transfer { + currency_address: Address(asset_precompile_address), + amount: { 500 * UNIT }.into(), + destination: destination.clone(), + weight: 4_000_000, + }, + ) + .expect_cost(16000) + .expect_no_logs() + .execute_returns(()); + }) +} + +fn run_with_system_weight(w: Weight, mut assertions: F) +where + F: FnMut() -> (), +{ + let mut t: sp_io::TestExternalities = frame_system::GenesisConfig::::default() + .build_storage() + .unwrap() + .into(); + t.execute_with(|| { + System::set_block_consumed_resources(w, 0); + assertions() + }); +} + +#[test] +#[rustfmt::skip] +fn length_fee_is_sensible() { + use sp_runtime::testing::TestXt; + + // tests that length fee is sensible for a few hypothetical transactions + ExtBuilder::default().build().execute_with(|| { + let call = frame_system::Call::remark:: { remark: vec![] }; + let uxt: TestXt<_, ()> = TestXt::new(call, Some((1u64, ()))); + + let calc_fee = |len: u32| -> Balance { + moonbase_runtime::TransactionPayment::query_fee_details(uxt.clone(), len) + .inclusion_fee + .expect("fee should be calculated") + .len_fee + }; + + // editorconfig-checker-disable + // left: cost of length fee, right: size in bytes + // /------------- proportional component: O(N * 1B) + // | /- exponential component: O(N ** 3) + // | | + assert_eq!( 1_000_000_001, calc_fee(1)); + assert_eq!( 10_000_001_000, calc_fee(10)); + assert_eq!( 100_001_000_000, calc_fee(100)); + assert_eq!( 1_001_000_000_000, calc_fee(1_000)); + assert_eq!( 11_000_000_000_000, calc_fee(10_000)); // inflection point + assert_eq!( 1_100_000_000_000_000, calc_fee(100_000)); + assert_eq!( 1_001_000_000_000_000_000, calc_fee(1_000_000)); // one UNIT, ~ 1MB + assert_eq!( 1_000_010_000_000_000_000_000, calc_fee(10_000_000)); + assert_eq!(1_000_000_100_000_000_000_000_000, calc_fee(100_000_000)); + // editorconfig-checker-enable + }); +} + +#[test] +fn multiplier_can_grow_from_zero() { + use frame_support::traits::Get; + + let minimum_multiplier = moonbase_runtime::MinimumMultiplier::get(); + let target = moonbase_runtime::TargetBlockFullness::get() + * RuntimeBlockWeights::get() + .get(DispatchClass::Normal) + .max_total + .unwrap(); + // if the min is too small, then this will not change, and we are doomed forever. + // the weight is 1/100th bigger than target. + run_with_system_weight(target * 101 / 100, || { + let next = moonbase_runtime::FastAdjustingFeeUpdate::::convert(minimum_multiplier); + assert!( + next > minimum_multiplier, + "{:?} !>= {:?}", + next, + minimum_multiplier + ); + }) +} + +#[test] +fn ethereum_invalid_transaction() { + ExtBuilder::default().build().execute_with(|| { + // Ensure an extrinsic not containing enough gas limit to store the transaction + // on chain is rejected. + assert_eq!( + Executive::apply_extrinsic(unchecked_eth_tx(INVALID_ETH_TX)), + Err( + sp_runtime::transaction_validity::TransactionValidityError::Invalid( + sp_runtime::transaction_validity::InvalidTransaction::Custom(0u8) + ) + ) + ); + }); +} + +#[test] +fn transfer_ed_0_substrate() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), (1 * UNIT) + (1 * WEI)), + (AccountId::from(BOB), existential_deposit()), + ]) + .build() + .execute_with(|| { + // Substrate transfer + assert_ok!(Balances::transfer_allow_death( + origin_of(AccountId::from(ALICE)), + AccountId::from(BOB), + 1 * UNIT, + )); + // 1 WEI is left in the account + assert_eq!(Balances::free_balance(AccountId::from(ALICE)), 1 * WEI); + }); +} + +#[test] +fn initial_gas_fee_is_correct() { + use fp_evm::FeeCalculator; + + ExtBuilder::default().build().execute_with(|| { + let multiplier = TransactionPayment::next_fee_multiplier(); + assert_eq!(multiplier, Multiplier::from(8u128)); + + assert_eq!( + TransactionPaymentAsGasPrice::min_gas_price(), + ( + 10_000_000_000u128.into(), + Weight::from_parts(25_000_000u64, 0) + ) + ); + }); +} + +#[test] +fn transfer_ed_0_evm() { + ExtBuilder::default() + .with_balances(vec![ + ( + AccountId::from(ALICE), + ((1 * UNIT) + (21_000 * BASE_FEE_GENISIS)) + (1 * WEI), + ), + (AccountId::from(BOB), existential_deposit()), + ]) + .build() + .execute_with(|| { + // EVM transfer + assert_ok!(RuntimeCall::EVM(pallet_evm::Call::::call { + source: H160::from(ALICE), + target: H160::from(BOB), + input: Vec::new(), + value: (1 * UNIT).into(), + gas_limit: 21_000u64, + max_fee_per_gas: U256::from(BASE_FEE_GENISIS), + max_priority_fee_per_gas: None, + nonce: Some(U256::from(0)), + access_list: Vec::new(), + }) + .dispatch(::RuntimeOrigin::root())); + // 1 WEI is left in the account + assert_eq!(Balances::free_balance(AccountId::from(ALICE)), 1 * WEI,); + }); +} + +#[test] +fn refund_ed_0_evm() { + ExtBuilder::default() + .with_balances(vec![ + ( + AccountId::from(ALICE), + ((1 * UNIT) + (21_777 * BASE_FEE_GENISIS) + existential_deposit()), + ), + (AccountId::from(BOB), existential_deposit()), + ]) + .build() + .execute_with(|| { + // EVM transfer that zeroes ALICE + assert_ok!(RuntimeCall::EVM(pallet_evm::Call::::call { + source: H160::from(ALICE), + target: H160::from(BOB), + input: Vec::new(), + value: (1 * UNIT).into(), + gas_limit: 21_777u64, + max_fee_per_gas: U256::from(BASE_FEE_GENISIS), + max_priority_fee_per_gas: None, + nonce: Some(U256::from(0)), + access_list: Vec::new(), + }) + .dispatch(::RuntimeOrigin::root())); + // ALICE is refunded + assert_eq!( + Balances::free_balance(AccountId::from(ALICE)), + 777 * BASE_FEE_GENISIS + existential_deposit(), + ); + }); +} + +#[test] +fn author_does_not_receive_priority_fee() { + ExtBuilder::default() + .with_balances(vec![( + AccountId::from(BOB), + (1 * UNIT) + (21_000 * (500 * GIGAWEI)), + )]) + .build() + .execute_with(|| { + // Some block author as seen by pallet-evm. + let author = AccountId::from(>::find_author()); + // Currently the default impl of the evm uses `deposit_into_existing`. + // If we were to use this implementation, and for an author to receive eventual tips, + // the account needs to be somehow initialized, otherwise the deposit would fail. + Balances::make_free_balance_be(&author, 100 * UNIT); + + // EVM transfer. + assert_ok!(RuntimeCall::EVM(pallet_evm::Call::::call { + source: H160::from(BOB), + target: H160::from(ALICE), + input: Vec::new(), + value: (1 * UNIT).into(), + gas_limit: 21_000u64, + max_fee_per_gas: U256::from(300 * GIGAWEI), + max_priority_fee_per_gas: Some(U256::from(200 * GIGAWEI)), + nonce: Some(U256::from(0)), + access_list: Vec::new(), + }) + .dispatch(::RuntimeOrigin::root())); + // Author free balance didn't change. + assert_eq!(Balances::free_balance(author), 100 * UNIT,); + }); +} + +#[test] +fn total_issuance_after_evm_transaction_with_priority_fee() { + ExtBuilder::default() + .with_balances(vec![ + ( + AccountId::from(BOB), + (1 * UNIT) + (21_000 * (2 * BASE_FEE_GENISIS) + existential_deposit()), + ), + (AccountId::from(ALICE), existential_deposit()), + ( + as sp_core::TypedGet>::get(), + existential_deposit(), + ), + ]) + .build() + .execute_with(|| { + let issuance_before = ::Currency::total_issuance(); + // EVM transfer. + assert_ok!(RuntimeCall::EVM(pallet_evm::Call::::call { + source: H160::from(BOB), + target: H160::from(ALICE), + input: Vec::new(), + value: (1 * UNIT).into(), + gas_limit: 21_000u64, + max_fee_per_gas: U256::from(2 * BASE_FEE_GENISIS), + max_priority_fee_per_gas: Some(U256::from(BASE_FEE_GENISIS)), + nonce: Some(U256::from(0)), + access_list: Vec::new(), + }) + .dispatch(::RuntimeOrigin::root())); + + let issuance_after = ::Currency::total_issuance(); + // Fee is 1 * base_fee + tip. + let fee = ((2 * BASE_FEE_GENISIS) * 21_000) as f64; + // 80% was burned. + let expected_burn = (fee * 0.8) as u128; + assert_eq!(issuance_after, issuance_before - expected_burn,); + // 20% was sent to treasury. + let expected_treasury = (fee * 0.2) as u128; + assert_eq!(moonbase_runtime::Treasury::pot(), expected_treasury); + }); +} + +#[test] +fn total_issuance_after_evm_transaction_without_priority_fee() { + use fp_evm::FeeCalculator; + ExtBuilder::default() + .with_balances(vec![ + ( + AccountId::from(BOB), + (1 * UNIT) + (21_000 * (2 * BASE_FEE_GENISIS)), + ), + (AccountId::from(ALICE), existential_deposit()), + ( + as sp_core::TypedGet>::get(), + existential_deposit(), + ), + ]) + .build() + .execute_with(|| { + let issuance_before = ::Currency::total_issuance(); + // EVM transfer. + assert_ok!(RuntimeCall::EVM(pallet_evm::Call::::call { + source: H160::from(BOB), + target: H160::from(ALICE), + input: Vec::new(), + value: (1 * UNIT).into(), + gas_limit: 21_000u64, + max_fee_per_gas: U256::from(BASE_FEE_GENISIS), + max_priority_fee_per_gas: None, + nonce: Some(U256::from(0)), + access_list: Vec::new(), + }) + .dispatch(::RuntimeOrigin::root())); + + let issuance_after = ::Currency::total_issuance(); + // Fee is 1 GWEI base fee. + let base_fee = TransactionPaymentAsGasPrice::min_gas_price().0; + assert_eq!(base_fee.as_u128(), BASE_FEE_GENISIS); // hint in case following asserts fail + let fee = (base_fee.as_u128() * 21_000u128) as f64; + // 80% was burned. + let expected_burn = (fee * 0.8) as u128; + assert_eq!(issuance_after, issuance_before - expected_burn,); + // 20% was sent to treasury. + let expected_treasury = (fee * 0.2) as u128; + assert_eq!(moonbase_runtime::Treasury::pot(), expected_treasury); + }); +} + +#[test] +fn root_can_change_default_xcm_vers() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * UNIT), + (AccountId::from(BOB), 1_000 * UNIT), + ]) + .with_xcm_assets(vec![XcmAssetInitialization { + asset_type: AssetType::Xcm(xcm::v3::Location::parent()), + metadata: AssetRegistrarMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + is_frozen: false, + }, + balances: vec![(AccountId::from(ALICE), 1_000_000_000_000_000)], + is_sufficient: true, + }]) + .build() + .execute_with(|| { + let source_location = AssetType::Xcm(xcm::v3::Location::parent()); + let dest = Location { + parents: 1, + interior: [AccountId32 { + network: None, + id: [1u8; 32], + }] + .into(), + }; + let source_id: moonbase_runtime::AssetId = source_location.clone().into(); + // Default XCM version is not set yet, so xtokens should fail because it does not + // know with which version to send + assert_noop!( + XTokens::transfer( + origin_of(AccountId::from(ALICE)), + moonbase_runtime::xcm_config::CurrencyId::ForeignAsset(source_id), + 100_000_000_000_000, + Box::new(xcm::VersionedLocation::V4(dest.clone())), + WeightLimit::Limited(4000000000.into()) + ), + orml_xtokens::Error::::XcmExecutionFailed + ); + + // Root sets the defaultXcm + assert_ok!(PolkadotXcm::force_default_xcm_version( + root_origin(), + Some(2) + )); + + // Now transferring does not fail + assert_ok!(XTokens::transfer( + origin_of(AccountId::from(ALICE)), + moonbase_runtime::xcm_config::CurrencyId::ForeignAsset(source_id), + 100_000_000_000_000, + Box::new(xcm::VersionedLocation::V4(dest)), + WeightLimit::Limited(4000000000.into()) + )); + }) +} + +#[test] +fn transactor_cannot_use_more_than_max_weight() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * UNIT), + (AccountId::from(BOB), 1_000 * UNIT), + ]) + .with_xcm_assets(vec![XcmAssetInitialization { + asset_type: AssetType::Xcm(xcm::v3::Location::parent()), + metadata: AssetRegistrarMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + is_frozen: false, + }, + balances: vec![(AccountId::from(ALICE), 1_000_000_000_000_000)], + is_sufficient: true, + }]) + .build() + .execute_with(|| { + let source_location = AssetType::Xcm(xcm::v3::Location::parent()); + let source_id: moonbase_runtime::AssetId = source_location.clone().into(); + assert_ok!(XcmTransactor::register( + root_origin(), + AccountId::from(ALICE), + 0, + )); + + // Root can set transact info + assert_ok!(XcmTransactor::set_transact_info( + root_origin(), + Box::new(xcm::VersionedLocation::V4(Location::parent())), + // Relay charges 1000 for every instruction, and we have 3, so 3000 + 3000.into(), + 20000.into(), + None + )); + // Root can set transact info + assert_ok!(XcmTransactor::set_fee_per_second( + root_origin(), + Box::new(xcm::VersionedLocation::V4(Location::parent())), + 1, + )); + + assert_noop!( + XcmTransactor::transact_through_derivative( + origin_of(AccountId::from(ALICE)), + moonbase_runtime::xcm_config::Transactors::Relay, + 0, + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + Location::parent() + ))), + fee_amount: None + }, + vec![], + // 20000 is the max + TransactWeights { + transact_required_weight_at_most: 17001.into(), + overall_weight: None + }, + false + ), + pallet_xcm_transactor::Error::::MaxWeightTransactReached + ); + assert_noop!( + XcmTransactor::transact_through_derivative( + origin_of(AccountId::from(ALICE)), + moonbase_runtime::xcm_config::Transactors::Relay, + 0, + CurrencyPayment { + currency: Currency::AsCurrencyId( + moonbase_runtime::xcm_config::CurrencyId::ForeignAsset(source_id) + ), + fee_amount: None + }, + vec![], + // 20000 is the max + TransactWeights { + transact_required_weight_at_most: 17001.into(), + overall_weight: None + }, + false + ), + pallet_xcm_transactor::Error::::MaxWeightTransactReached + ); + }) +} + +#[test] +fn root_can_use_hrmp_manage() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * UNIT), + (AccountId::from(BOB), 1_000 * UNIT), + ]) + .build() + .execute_with(|| { + // It fails sending, because the router does not work in test mode + // But all rest checks pass + assert_noop!( + XcmTransactor::hrmp_manage( + root_origin(), + HrmpOperation::Accept { + para_id: 2000u32.into() + }, + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + Location::parent() + ))), + fee_amount: Some(10000) + }, + // 20000 is the max + TransactWeights { + transact_required_weight_at_most: 17001.into(), + overall_weight: Some(Limited(20000.into())) + } + ), + pallet_xcm_transactor::Error::::ErrorValidating + ); + }) +} + +#[test] +fn transact_through_signed_precompile_works_v1() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * UNIT), + (AccountId::from(BOB), 1_000 * UNIT), + ]) + .with_safe_xcm_version(2) + .build() + .execute_with(|| { + // Destination + let dest = Location::parent(); + + let fee_payer_asset = Location::parent(); + + let bytes = vec![1u8, 2u8, 3u8]; + + let xcm_transactor_v1_precompile_address = H160::from_low_u64_be(2054); + + // Root can set transact info + assert_ok!(XcmTransactor::set_transact_info( + root_origin(), + Box::new(xcm::VersionedLocation::V4(Location::parent())), + // Relay charges 1000 for every instruction, and we have 3, so 3000 + 3000.into(), + Weight::from_parts(200_000, (xcm_primitives::DEFAULT_PROOF_SIZE) + 4000), + Some(4000.into()) + )); + // Root can set transact info + assert_ok!(XcmTransactor::set_fee_per_second( + root_origin(), + Box::new(xcm::VersionedLocation::V4(Location::parent())), + 1, + )); + + Precompiles::new() + .prepare_test( + ALICE, + xcm_transactor_v1_precompile_address, + XcmTransactorV1PCall::transact_through_signed_multilocation { + dest, + fee_asset: fee_payer_asset, + weight: 15000, + call: bytes.into(), + }, + ) + .expect_cost(17555) + .expect_no_logs() + .execute_returns(()); + }); +} + +#[test] +fn transact_through_signed_precompile_works_v2() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * UNIT), + (AccountId::from(BOB), 1_000 * UNIT), + ]) + .with_safe_xcm_version(2) + .build() + .execute_with(|| { + // Destination + let dest = Location::parent(); + + let fee_payer_asset = Location::parent(); + + let bytes = vec![1u8, 2u8, 3u8]; + + let total_weight = 1_000_000_000u64; + + let xcm_transactor_v2_precompile_address = H160::from_low_u64_be(2061); + + Precompiles::new() + .prepare_test( + ALICE, + xcm_transactor_v2_precompile_address, + XcmTransactorV2PCall::transact_through_signed_multilocation { + dest, + fee_asset: fee_payer_asset, + weight: 4_000_000, + call: bytes.into(), + fee_amount: u128::from(total_weight).into(), + overall_weight: total_weight, + }, + ) + .expect_cost(17555) + .expect_no_logs() + .execute_returns(()); + }); +} + +#[test] +fn transact_through_signed_cannot_send_to_local_chain() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * UNIT), + (AccountId::from(BOB), 1_000 * UNIT), + ]) + .with_safe_xcm_version(2) + .build() + .execute_with(|| { + // Destination + let dest = Location::here(); + + let fee_payer_asset = Location::parent(); + + let bytes = vec![1u8, 2u8, 3u8]; + + let total_weight = 1_000_000_000u64; + + let xcm_transactor_v2_precompile_address = H160::from_low_u64_be(2061); + + Precompiles::new() + .prepare_test( + ALICE, + xcm_transactor_v2_precompile_address, + XcmTransactorV2PCall::transact_through_signed_multilocation { + dest, + fee_asset: fee_payer_asset, + weight: 4_000_000, + call: bytes.into(), + fee_amount: u128::from(total_weight).into(), + overall_weight: total_weight, + }, + ) + .execute_reverts(|output| { + from_utf8(&output) + .unwrap() + .contains("Dispatched call failed with error:") + && from_utf8(&output).unwrap().contains("ErrorValidating") + }); + }); +} + +// Test to ensure we can use either in crowdloan rewards without worrying for migrations +#[test] +fn account_id_32_encodes_like_32_byte_u8_slice() { + let account_as_account_id_32: sp_runtime::AccountId32 = [1u8; 32].into(); + let account_as_slice = [1u8; 32]; + assert_eq!(account_as_account_id_32.encode(), account_as_slice.encode()); +} + +#[test] +fn author_mapping_precompile_associate_update_and_clear() { + ExtBuilder::default() + .with_balances(vec![(AccountId::from(ALICE), 1_000 * UNIT)]) + .build() + .execute_with(|| { + let author_mapping_precompile_address = H160::from_low_u64_be(2055); + let first_nimbus_id: NimbusId = + sp_core::sr25519::Public::unchecked_from([1u8; 32]).into(); + let first_vrf_id: session_keys_primitives::VrfId = + sp_core::sr25519::Public::unchecked_from([1u8; 32]).into(); + let second_nimbus_id: NimbusId = + sp_core::sr25519::Public::unchecked_from([2u8; 32]).into(); + let second_vrf_id: session_keys_primitives::VrfId = + sp_core::sr25519::Public::unchecked_from([2u8; 32]).into(); + + // Associate it + Precompiles::new() + .prepare_test( + ALICE, + author_mapping_precompile_address, + AuthorMappingPCall::add_association { + nimbus_id: [1u8; 32].into(), + }, + ) + .expect_cost(15126) + .expect_no_logs() + .execute_returns(()); + + let expected_associate_event = + RuntimeEvent::AuthorMapping(pallet_author_mapping::Event::KeysRegistered { + nimbus_id: first_nimbus_id.clone(), + account_id: AccountId::from(ALICE), + keys: first_vrf_id.clone(), + }); + assert_eq!(last_event(), expected_associate_event); + + // Update it + Precompiles::new() + .prepare_test( + ALICE, + author_mapping_precompile_address, + AuthorMappingPCall::update_association { + old_nimbus_id: [1u8; 32].into(), + new_nimbus_id: [2u8; 32].into(), + }, + ) + .expect_cost(14728) + .expect_no_logs() + .execute_returns(()); + + let expected_update_event = + RuntimeEvent::AuthorMapping(pallet_author_mapping::Event::KeysRotated { + new_nimbus_id: second_nimbus_id.clone(), + account_id: AccountId::from(ALICE), + new_keys: second_vrf_id.clone(), + }); + assert_eq!(last_event(), expected_update_event); + + // Clear it + Precompiles::new() + .prepare_test( + ALICE, + author_mapping_precompile_address, + AuthorMappingPCall::clear_association { + nimbus_id: [2u8; 32].into(), + }, + ) + .expect_cost(15189) + .expect_no_logs() + .execute_returns(()); + + let expected_clear_event = + RuntimeEvent::AuthorMapping(pallet_author_mapping::Event::KeysRemoved { + nimbus_id: second_nimbus_id, + account_id: AccountId::from(ALICE), + keys: second_vrf_id, + }); + assert_eq!(last_event(), expected_clear_event); + }); +} + +#[test] +fn author_mapping_register_and_set_keys() { + ExtBuilder::default() + .with_balances(vec![(AccountId::from(ALICE), 1_000 * UNIT)]) + .build() + .execute_with(|| { + let author_mapping_precompile_address = H160::from_low_u64_be(2055); + let first_nimbus_id: NimbusId = + sp_core::sr25519::Public::unchecked_from([1u8; 32]).into(); + let first_vrf_key: session_keys_primitives::VrfId = + sp_core::sr25519::Public::unchecked_from([3u8; 32]).into(); + let second_nimbus_id: NimbusId = + sp_core::sr25519::Public::unchecked_from([2u8; 32]).into(); + let second_vrf_key: session_keys_primitives::VrfId = + sp_core::sr25519::Public::unchecked_from([4u8; 32]).into(); + + // Associate it + Precompiles::new() + .prepare_test( + ALICE, + author_mapping_precompile_address, + AuthorMappingPCall::set_keys { + keys: solidity::encode_arguments(( + H256::from([1u8; 32]), + H256::from([3u8; 32]), + )) + .into(), + }, + ) + .expect_cost(16262) + .expect_no_logs() + .execute_returns(()); + + let expected_associate_event = + RuntimeEvent::AuthorMapping(pallet_author_mapping::Event::KeysRegistered { + nimbus_id: first_nimbus_id.clone(), + account_id: AccountId::from(ALICE), + keys: first_vrf_key.clone(), + }); + assert_eq!(last_event(), expected_associate_event); + + // Update it + Precompiles::new() + .prepare_test( + ALICE, + author_mapping_precompile_address, + AuthorMappingPCall::set_keys { + keys: solidity::encode_arguments(( + H256::from([2u8; 32]), + H256::from([4u8; 32]), + )) + .into(), + }, + ) + .expect_cost(16262) + .expect_no_logs() + .execute_returns(()); + + let expected_update_event = + RuntimeEvent::AuthorMapping(pallet_author_mapping::Event::KeysRotated { + new_nimbus_id: second_nimbus_id.clone(), + account_id: AccountId::from(ALICE), + new_keys: second_vrf_key.clone(), + }); + assert_eq!(last_event(), expected_update_event); + }); +} + +#[test] +fn test_xcm_utils_ml_tp_account() { + ExtBuilder::default().build().execute_with(|| { + let xcm_utils_precompile_address = H160::from_low_u64_be(2060); + let expected_address_parent: H160 = + ParentIsPreset::::convert_location(&Location::parent()) + .unwrap() + .into(); + + Precompiles::new() + .prepare_test( + ALICE, + xcm_utils_precompile_address, + XcmUtilsPCall::multilocation_to_address { + location: Location::parent(), + }, + ) + .expect_cost(1000) + .expect_no_logs() + .execute_returns(Address(expected_address_parent)); + + let parachain_2000_multilocation = Location::new(1, [Parachain(2000)]); + let expected_address_parachain: H160 = + SiblingParachainConvertsVia::::convert_location( + ¶chain_2000_multilocation, + ) + .unwrap() + .into(); + + Precompiles::new() + .prepare_test( + ALICE, + xcm_utils_precompile_address, + XcmUtilsPCall::multilocation_to_address { + location: parachain_2000_multilocation, + }, + ) + .expect_cost(1000) + .expect_no_logs() + .execute_returns(Address(expected_address_parachain)); + + let alice_in_parachain_2000_multilocation = Location::new( + 1, + [ + Parachain(2000), + AccountKey20 { + network: None, + key: ALICE, + }, + ], + ); + let expected_address_alice_in_parachain_2000 = + xcm_builder::HashedDescription::< + AccountId, + xcm_builder::DescribeFamily, + >::convert_location(&alice_in_parachain_2000_multilocation) + .unwrap() + .into(); + + Precompiles::new() + .prepare_test( + ALICE, + xcm_utils_precompile_address, + XcmUtilsPCall::multilocation_to_address { + location: alice_in_parachain_2000_multilocation, + }, + ) + .expect_cost(1000) + .expect_no_logs() + .execute_returns(Address(expected_address_alice_in_parachain_2000)); + }); +} + +#[test] +fn test_xcm_utils_weight_message() { + ExtBuilder::default().build().execute_with(|| { + let xcm_utils_precompile_address = H160::from_low_u64_be(2060); + let expected_weight = + XcmWeight::::clear_origin().ref_time(); + + let message: Vec = xcm::VersionedXcm::<()>::V4(Xcm(vec![ClearOrigin])).encode(); + + let input = XcmUtilsPCall::weight_message { + message: message.into(), + }; + + Precompiles::new() + .prepare_test(ALICE, xcm_utils_precompile_address, input) + .expect_cost(0) + .expect_no_logs() + .execute_returns(expected_weight); + }); +} + +#[test] +fn test_xcm_utils_get_units_per_second() { + ExtBuilder::default().build().execute_with(|| { + let xcm_utils_precompile_address = H160::from_low_u64_be(2060); + let location = SelfReserve::get(); + + let input = XcmUtilsPCall::get_units_per_second { location }; + + let expected_units = + WEIGHT_REF_TIME_PER_SECOND as u128 * moonbase_runtime::currency::WEIGHT_FEE; + + Precompiles::new() + .prepare_test(ALICE, xcm_utils_precompile_address, input) + .expect_cost(1000) + .expect_no_logs() + .execute_returns(expected_units); + }); +} + +#[test] +fn precompile_existence() { + ExtBuilder::default().build().execute_with(|| { + let precompiles = Precompiles::new(); + let precompile_addresses: std::collections::BTreeSet<_> = vec![ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 1024, 1025, 1026, 1027, 2048, 2049, 2050, 2051, 2052, 2053, + 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, + 2068, 2069, 2070, 2071, 2072, 2073, 2074, + ] + .into_iter() + .map(H160::from_low_u64_be) + .collect(); + + for i in 0..3000 { + let address = H160::from_low_u64_be(i); + + if precompile_addresses.contains(&address) { + assert!( + is_precompile_or_fail::(address, 100_000u64).expect("to be ok"), + "is_precompile({}) should return true", + i + ); + + assert!( + precompiles + .execute(&mut MockHandle::new( + address, + Context { + address, + caller: H160::zero(), + apparent_value: U256::zero() + } + ),) + .is_some(), + "execute({},..) should return Some(_)", + i + ); + } else { + assert!( + !is_precompile_or_fail::(address, 100_000u64).expect("to be ok"), + "is_precompile({}) should return false", + i + ); + + assert!( + precompiles + .execute(&mut MockHandle::new( + address, + Context { + address, + caller: H160::zero(), + apparent_value: U256::zero() + } + ),) + .is_none(), + "execute({},..) should return None", + i + ); + } + } + }); +} + +#[test] +fn removed_precompiles() { + ExtBuilder::default().build().execute_with(|| { + let precompiles = Precompiles::new(); + let removed_precompiles = [1025, 2051, 2062, 2063]; + + for i in 1..3000 { + let address = H160::from_low_u64_be(i); + + if !is_precompile_or_fail::(address, 100_000u64).expect("to be ok") { + continue; + } + + if !removed_precompiles.contains(&i) { + assert!( + match precompiles.is_active_precompile(address, 100_000u64) { + IsPrecompileResult::Answer { is_precompile, .. } => is_precompile, + _ => false, + }, + "{i} should be an active precompile" + ); + continue; + } + + assert!( + !match precompiles.is_active_precompile(address, 100_000u64) { + IsPrecompileResult::Answer { is_precompile, .. } => is_precompile, + _ => false, + }, + "{i} shouldn't be an active precompile" + ); + + precompiles + .prepare_test(Alice, address, []) + .execute_reverts(|out| out == b"Removed precompile"); + } + }) +} + +#[test] +fn substrate_based_fees_zero_txn_costs_only_base_extrinsic() { + use frame_support::dispatch::{DispatchInfo, Pays}; + use moonbase_runtime::{currency, EXTRINSIC_BASE_WEIGHT}; + + ExtBuilder::default().build().execute_with(|| { + let size_bytes = 0; + let tip = 0; + let dispatch_info = DispatchInfo { + weight: Weight::zero(), + class: DispatchClass::Normal, + pays_fee: Pays::Yes, + }; + + assert_eq!( + TransactionPayment::compute_fee(size_bytes, &dispatch_info, tip), + EXTRINSIC_BASE_WEIGHT.ref_time() as u128 * currency::WEIGHT_FEE, + ); + }); +} + +#[test] +fn deal_with_fees_handles_tip() { + use frame_support::traits::OnUnbalanced; + use moonbase_runtime::{DealWithFees, Treasury}; + + ExtBuilder::default().build().execute_with(|| { + // This test checks the functionality of the `DealWithFees` trait implementation in the runtime. + // It simulates a scenario where a fee and a tip are issued to an account and ensures that the + // treasury receives the correct amount (20% of the total), and the rest is burned (80%). + // + // The test follows these steps: + // 1. It issues a fee of 100 and a tip of 1000. + // 2. It checks the total supply before the fee and tip are dealt with, which should be 1_100. + // 3. It checks that the treasury's balance is initially 0. + // 4. It calls `DealWithFees::on_unbalanceds` with the fee and tip. + // 5. It checks that the treasury's balance is now 220 (20% of the fee and tip). + // 6. It checks that the total supply has decreased by 880 (80% of the fee and tip), indicating + // that this amount was burned. + let fee = as frame_support::traits::fungible::Balanced< + AccountId, + >>::issue(100); + let tip = as frame_support::traits::fungible::Balanced< + AccountId, + >>::issue(1000); + + let total_supply_before = Balances::total_issuance(); + assert_eq!(total_supply_before, 1_100); + assert_eq!(Balances::free_balance(&Treasury::account_id()), 0); + + DealWithFees::on_unbalanceds(vec![fee, tip].into_iter()); + + // treasury should have received 20% + assert_eq!(Balances::free_balance(&Treasury::account_id()), 220); + + // verify 80% burned + let total_supply_after = Balances::total_issuance(); + assert_eq!(total_supply_before - total_supply_after, 880); + }); +} + +#[test] +fn evm_revert_substrate_events() { + ExtBuilder::default() + .with_balances(vec![(AccountId::from(ALICE), 1_000 * UNIT)]) + .build() + .execute_with(|| { + let batch_precompile_address = H160::from_low_u64_be(2056); + + // Batch a transfer followed by an invalid call to batch. + // Thus BatchAll will revert the transfer. + assert_ok!(RuntimeCall::EVM(pallet_evm::Call::call { + source: ALICE.into(), + target: batch_precompile_address, + input: BatchPCall::batch_all { + to: vec![Address(BOB.into()), Address(batch_precompile_address)].into(), + value: vec![U256::from(1 * UNIT), U256::zero()].into(), + call_data: vec![].into(), + gas_limit: vec![].into() + } + .into(), + value: U256::zero(), // No value sent in EVM + gas_limit: 500_000, + max_fee_per_gas: U256::from(BASE_FEE_GENISIS), + max_priority_fee_per_gas: None, + nonce: Some(U256::from(0)), + access_list: Vec::new(), + }) + .dispatch(::RuntimeOrigin::root())); + + let transfer_count = System::events() + .iter() + .filter(|r| match r.event { + RuntimeEvent::Balances(pallet_balances::Event::Transfer { .. }) => true, + _ => false, + }) + .count(); + + assert_eq!(transfer_count, 0, "there should be no transfer event"); + }); +} + +#[test] +fn evm_success_keeps_substrate_events() { + ExtBuilder::default() + .with_balances(vec![(AccountId::from(ALICE), 1_000 * UNIT)]) + .build() + .execute_with(|| { + let batch_precompile_address = H160::from_low_u64_be(2056); + + assert_ok!(RuntimeCall::EVM(pallet_evm::Call::call { + source: ALICE.into(), + target: batch_precompile_address, + input: BatchPCall::batch_all { + to: vec![Address(BOB.into())].into(), + value: vec![U256::from(1 * UNIT)].into(), + call_data: vec![].into(), + gas_limit: vec![].into() + } + .into(), + value: U256::zero(), // No value sent in EVM + gas_limit: 500_000, + max_fee_per_gas: U256::from(BASE_FEE_GENISIS), + max_priority_fee_per_gas: None, + nonce: Some(U256::from(0)), + access_list: Vec::new(), + }) + .dispatch(::RuntimeOrigin::root())); + + let transfer_count = System::events() + .iter() + .filter(|r| match r.event { + RuntimeEvent::Balances(pallet_balances::Event::Transfer { .. }) => true, + _ => false, + }) + .count(); + + assert_eq!(transfer_count, 1, "there should be 1 transfer event"); + }); +} + +#[test] +fn validate_transaction_fails_on_filtered_call() { + use sp_runtime::transaction_validity::{ + InvalidTransaction, TransactionSource, TransactionValidityError, + }; + use sp_transaction_pool::runtime_api::runtime_decl_for_tagged_transaction_queue::TaggedTransactionQueueV3; // editorconfig-checker-disable-line + + ExtBuilder::default().build().execute_with(|| { + let xt = UncheckedExtrinsic::new_unsigned( + pallet_evm::Call::::call { + source: Default::default(), + target: H160::default(), + input: Vec::new(), + value: Default::default(), + gas_limit: Default::default(), + max_fee_per_gas: Default::default(), + max_priority_fee_per_gas: Default::default(), + nonce: Default::default(), + access_list: Default::default(), + } + .into(), + ); + + assert_eq!( + Runtime::validate_transaction(TransactionSource::External, xt, Default::default(),), + Err(TransactionValidityError::Invalid(InvalidTransaction::Call)), + ); + }); +} + +#[cfg(test)] +mod fee_tests { + use super::*; + use fp_evm::FeeCalculator; + use frame_support::{ + traits::{ConstU128, OnFinalize}, + weights::{ConstantMultiplier, WeightToFee}, + }; + use moonbase_runtime::{ + currency, BlockWeights, FastAdjustingFeeUpdate, LengthToFee, MinimumMultiplier, + TargetBlockFullness, TransactionPaymentAsGasPrice, NORMAL_WEIGHT, WEIGHT_PER_GAS, + }; + use sp_runtime::{BuildStorage, FixedPointNumber, Perbill}; + + fn run_with_system_weight(w: Weight, mut assertions: F) + where + F: FnMut() -> (), + { + let mut t: sp_io::TestExternalities = frame_system::GenesisConfig::::default() + .build_storage() + .unwrap() + .into(); + t.execute_with(|| { + System::set_block_consumed_resources(w, 0); + assertions() + }); + } + + #[test] + fn test_multiplier_can_grow_from_zero() { + let minimum_multiplier = MinimumMultiplier::get(); + let target = TargetBlockFullness::get() + * BlockWeights::get() + .get(DispatchClass::Normal) + .max_total + .unwrap(); + // if the min is too small, then this will not change, and we are doomed forever. + // the weight is 1/100th bigger than target. + run_with_system_weight(target * 101 / 100, || { + let next = FastAdjustingFeeUpdate::::convert(minimum_multiplier); + assert!( + next > minimum_multiplier, + "{:?} !>= {:?}", + next, + minimum_multiplier + ); + }) + } + + #[test] + fn test_fee_calculation() { + let base_extrinsic = BlockWeights::get() + .get(DispatchClass::Normal) + .base_extrinsic; + let multiplier = sp_runtime::FixedU128::from_float(0.999000000000000000); + let extrinsic_len = 100u32; + let extrinsic_weight = 5_000u64; + let tip = 42u128; + type WeightToFeeImpl = + ConstantMultiplier>; + type LengthToFeeImpl = LengthToFee; + + // base_fee + (multiplier * extrinsic_weight_fee) + extrinsic_length_fee + tip + let expected_fee = + WeightToFeeImpl::weight_to_fee(&base_extrinsic) + + multiplier.saturating_mul_int(WeightToFeeImpl::weight_to_fee( + &Weight::from_parts(extrinsic_weight, 1), + )) + LengthToFeeImpl::weight_to_fee(&Weight::from_parts(extrinsic_len as u64, 1)) + + tip; + + let mut t: sp_io::TestExternalities = frame_system::GenesisConfig::::default() + .build_storage() + .unwrap() + .into(); + t.execute_with(|| { + pallet_transaction_payment::NextFeeMultiplier::::set(multiplier); + let actual_fee = TransactionPayment::compute_fee( + extrinsic_len, + &frame_support::dispatch::DispatchInfo { + class: DispatchClass::Normal, + pays_fee: frame_support::dispatch::Pays::Yes, + weight: Weight::from_parts(extrinsic_weight, 1), + }, + tip, + ); + + assert_eq!( + expected_fee, + actual_fee, + "The actual fee did not match the expected fee, diff {}", + actual_fee - expected_fee + ); + }); + } + + #[test] + fn test_min_gas_price_is_deterministic() { + let mut t: sp_io::TestExternalities = frame_system::GenesisConfig::::default() + .build_storage() + .unwrap() + .into(); + t.execute_with(|| { + let multiplier = sp_runtime::FixedU128::from_u32(1); + pallet_transaction_payment::NextFeeMultiplier::::set(multiplier); + let actual = TransactionPaymentAsGasPrice::min_gas_price().0; + let expected: U256 = multiplier + .saturating_mul_int(currency::WEIGHT_FEE.saturating_mul(WEIGHT_PER_GAS as u128)) + .into(); + + assert_eq!(expected, actual); + }); + } + + #[test] + fn test_min_gas_price_has_no_precision_loss_from_saturating_mul_int() { + let mut t: sp_io::TestExternalities = frame_system::GenesisConfig::::default() + .build_storage() + .unwrap() + .into(); + t.execute_with(|| { + let multiplier_1 = sp_runtime::FixedU128::from_float(0.999593900000000000); + let multiplier_2 = sp_runtime::FixedU128::from_float(0.999593200000000000); + + pallet_transaction_payment::NextFeeMultiplier::::set(multiplier_1); + let a = TransactionPaymentAsGasPrice::min_gas_price(); + pallet_transaction_payment::NextFeeMultiplier::::set(multiplier_2); + let b = TransactionPaymentAsGasPrice::min_gas_price(); + + assert_ne!( + a, b, + "both gas prices were equal, unexpected precision loss incurred" + ); + }); + } + + #[test] + fn test_fee_scenarios() { + use sp_runtime::FixedU128; + let mut t: sp_io::TestExternalities = frame_system::GenesisConfig::::default() + .build_storage() + .unwrap() + .into(); + t.execute_with(|| { + let weight_fee_per_gas = currency::WEIGHT_FEE.saturating_mul(WEIGHT_PER_GAS as u128); + let sim = |start_gas_price: u128, fullness: Perbill, num_blocks: u64| -> U256 { + let start_multiplier = + FixedU128::from_rational(start_gas_price, weight_fee_per_gas); + pallet_transaction_payment::NextFeeMultiplier::::set(start_multiplier); + + let block_weight = NORMAL_WEIGHT * fullness; + + for i in 0..num_blocks { + System::set_block_number(i as u32); + System::set_block_consumed_resources(block_weight, 0); + TransactionPayment::on_finalize(i as u32); + } + + TransactionPaymentAsGasPrice::min_gas_price().0 + }; + + // The expected values are the ones observed during test execution, + // they are expected to change when parameters that influence + // the fee calculation are changed, and should be updated accordingly. + // If a test fails when nothing specific to fees has changed, + // it may indicate an unexpected collateral effect and should be investigated + + assert_eq!( + sim(1_000_000_000, Perbill::from_percent(0), 1), + U256::from(998_600_980), + ); + assert_eq!( + sim(1_000_000_000, Perbill::from_percent(25), 1), + U256::from(999_600_080), + ); + assert_eq!( + sim(1_000_000_000, Perbill::from_percent(50), 1), + U256::from(1_000_600_180), + ); + assert_eq!( + sim(1_000_000_000, Perbill::from_percent(100), 1), + U256::from(1_002_603_380), + ); + + // 1 "real" hour (at 6-second blocks) + assert_eq!( + sim(1_000_000_000, Perbill::from_percent(0), 600), + U256::from(431_710_642), + ); + assert_eq!( + sim(1_000_000_000, Perbill::from_percent(25), 600), + U256::from(786_627_866), + ); + assert_eq!( + sim(1_000_000_000, Perbill::from_percent(50), 600), + U256::from(1_433_329_383u128), + ); + assert_eq!( + sim(1_000_000_000, Perbill::from_percent(100), 600), + U256::from(4_758_812_897u128), + ); + + // 1 "real" day (at 6-second blocks) + assert_eq!( + sim(1_000_000_000, Perbill::from_percent(0), 14400), + U256::from(125_000_000), // lower bound enforced + ); + assert_eq!( + sim(1_000_000_000, Perbill::from_percent(25), 14400), + U256::from(125_000_000), + ); + assert_eq!( + sim(1_000_000_000, Perbill::from_percent(50), 14400), + U256::from(5_653_326_895_069u128), + ); + assert_eq!( + sim(1_000_000_000, Perbill::from_percent(100), 14400), + U256::from(125_000_000_000_000u128), // upper bound enforced + ); + }); + } +} diff --git a/tracing/3001/runtime/moonbase/tests/runtime_apis.rs b/tracing/3001/runtime/moonbase/tests/runtime_apis.rs new file mode 100644 index 00000000..7cfb9dc1 --- /dev/null +++ b/tracing/3001/runtime/moonbase/tests/runtime_apis.rs @@ -0,0 +1,397 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Moonbase Runtime Api Integration Tests + +mod common; +use common::*; + +use fp_evm::GenesisAccount; +use frame_support::assert_ok; +use nimbus_primitives::NimbusId; +use pallet_evm::{Account as EVMAccount, AddressMapping, FeeCalculator}; +use sp_core::{ByteArray, H160, H256, U256}; + +use fp_rpc::runtime_decl_for_ethereum_runtime_rpc_api::EthereumRuntimeRPCApi; +use moonbase_runtime::{Executive, TransactionPaymentAsGasPrice}; +use moonbeam_core_primitives::Header; +use moonbeam_rpc_primitives_txpool::runtime_decl_for_tx_pool_runtime_api::TxPoolRuntimeApi; +use nimbus_primitives::runtime_decl_for_nimbus_api::NimbusApi; +use std::{collections::BTreeMap, str::FromStr}; + +#[test] +fn ethereum_runtime_rpc_api_chain_id() { + ExtBuilder::default().build().execute_with(|| { + assert_eq!(Runtime::chain_id(), CHAIN_ID); + }); +} + +#[test] +fn ethereum_runtime_rpc_api_account_basic() { + ExtBuilder::default() + .with_balances(vec![( + AccountId::from(ALICE), + 2_000 * UNIT + existential_deposit(), + )]) + .build() + .execute_with(|| { + assert_eq!( + Runtime::account_basic(H160::from(ALICE)), + EVMAccount { + balance: U256::from(2_000 * UNIT), + nonce: U256::zero() + } + ); + }); +} + +#[test] +fn ethereum_runtime_rpc_api_gas_price() { + ExtBuilder::default().build().execute_with(|| { + assert_eq!( + Runtime::gas_price(), + TransactionPaymentAsGasPrice::min_gas_price().0 + ); + }); +} + +#[test] +fn ethereum_runtime_rpc_api_account_code_at() { + let address = H160::from(EVM_CONTRACT); + let code: Vec = vec![1, 2, 3, 4, 5]; + ExtBuilder::default() + .with_evm_accounts({ + let mut map = BTreeMap::new(); + map.insert( + address, + GenesisAccount { + balance: U256::zero(), + code: code.clone(), + nonce: Default::default(), + storage: Default::default(), + }, + ); + map + }) + .build() + .execute_with(|| { + assert_eq!(Runtime::account_code_at(address), code); + }); +} + +#[test] +fn ethereum_runtime_rpc_api_author() { + ExtBuilder::default() + .with_collators(vec![(AccountId::from(ALICE), 1_000 * UNIT)]) + .with_mappings(vec![( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + AccountId::from(ALICE), + )]) + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * UNIT), + (AccountId::from(BOB), 1_000 * UNIT), + ]) + .with_delegations(vec![( + AccountId::from(BOB), + AccountId::from(ALICE), + 500 * UNIT, + )]) + .build() + .execute_with(|| { + run_to_block(2, Some(NimbusId::from_slice(&ALICE_NIMBUS).unwrap())); + assert_eq!(Runtime::author(), H160::from(ALICE)); + }); +} + +#[test] +fn ethereum_runtime_rpc_api_storage_at() { + let address = H160::from(EVM_CONTRACT); + let mut key = [0u8; 32]; + key[31..32].copy_from_slice(&[6u8][..]); + let mut value = [0u8; 32]; + value[31..32].copy_from_slice(&[7u8][..]); + let item = H256::from_slice(&key[..]); + let mut storage: BTreeMap = BTreeMap::new(); + storage.insert(H256::from_slice(&key[..]), item); + ExtBuilder::default() + .with_evm_accounts({ + let mut map = BTreeMap::new(); + map.insert( + address, + GenesisAccount { + balance: U256::zero(), + code: Vec::new(), + nonce: Default::default(), + storage: storage.clone(), + }, + ); + map + }) + .build() + .execute_with(|| { + assert_eq!(Runtime::storage_at(address, U256::from(6)), item); + }); +} + +#[test] +fn ethereum_runtime_rpc_api_call() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * UNIT), + (AccountId::from(BOB), 2_000 * UNIT), + ]) + .build() + .execute_with(|| { + let execution_result = Runtime::call( + H160::from(ALICE), // from + H160::from(BOB), // to + Vec::new(), // data + U256::from(1000u64), // value + U256::from(100000u64), // gas_limit + None, // max_fee_per_gas + None, // max_priority_fee_per_gas + None, // nonce + false, // estimate + None, // access_list + ); + assert!(execution_result.is_ok()); + }); +} + +#[test] +fn ethereum_runtime_rpc_api_create() { + ExtBuilder::default() + .with_balances(vec![(AccountId::from(ALICE), 2_000 * UNIT)]) + .build() + .execute_with(|| { + let execution_result = Runtime::create( + H160::from(ALICE), // from + vec![0, 1, 1, 0], // data + U256::zero(), // value + U256::from(100000u64), // gas_limit + None, // max_fee_per_gas + None, // max_priority_fee_per_gas + None, // nonce + false, // estimate + None, // access_list + ); + assert!(execution_result.is_ok()); + }); +} + +#[test] +fn ethereum_runtime_rpc_api_current_transaction_statuses() { + let alith = ::AddressMapping::into_account_id( + H160::from_str("f24ff3a9cf04c71dbc94d0b566f7a27b94566cac") + .expect("internal H160 is valid; qed"), + ); + ExtBuilder::default() + .with_collators(vec![(AccountId::from(ALICE), 1_000 * UNIT)]) + .with_mappings(vec![( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + AccountId::from(ALICE), + )]) + .with_balances(vec![ + (alith, 2_000 * UNIT), + (AccountId::from(ALICE), 2_000 * UNIT), + (AccountId::from(BOB), 1_000 * UNIT), + ]) + .with_delegations(vec![( + AccountId::from(BOB), + AccountId::from(ALICE), + 500 * UNIT, + )]) + .build() + .execute_with(|| { + let _result = Executive::apply_extrinsic(unchecked_eth_tx(VALID_ETH_TX)); + rpc_run_to_block(2); + let statuses = + Runtime::current_transaction_statuses().expect("Transaction statuses result."); + assert_eq!(statuses.len(), 1); + }); +} + +#[test] +fn ethereum_runtime_rpc_api_current_block() { + ExtBuilder::default() + .with_collators(vec![(AccountId::from(ALICE), 1_000 * UNIT)]) + .with_mappings(vec![( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + AccountId::from(ALICE), + )]) + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * UNIT), + (AccountId::from(BOB), 1_000 * UNIT), + ]) + .with_delegations(vec![( + AccountId::from(BOB), + AccountId::from(ALICE), + 500 * UNIT, + )]) + .build() + .execute_with(|| { + rpc_run_to_block(2); + let block = Runtime::current_block().expect("Block result."); + assert_eq!(block.header.number, U256::from(1u8)); + }); +} + +#[test] +fn ethereum_runtime_rpc_api_current_receipts() { + let alith = ::AddressMapping::into_account_id( + H160::from_str("f24ff3a9cf04c71dbc94d0b566f7a27b94566cac") + .expect("internal H160 is valid; qed"), + ); + ExtBuilder::default() + .with_collators(vec![(AccountId::from(ALICE), 1_000 * UNIT)]) + .with_mappings(vec![( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + AccountId::from(ALICE), + )]) + .with_balances(vec![ + (alith, 2_000 * UNIT), + (AccountId::from(ALICE), 2_000 * UNIT), + (AccountId::from(BOB), 1_000 * UNIT), + ]) + .with_delegations(vec![( + AccountId::from(BOB), + AccountId::from(ALICE), + 500 * UNIT, + )]) + .build() + .execute_with(|| { + let _result = Executive::apply_extrinsic(unchecked_eth_tx(VALID_ETH_TX)); + rpc_run_to_block(2); + let receipts = Runtime::current_receipts().expect("Receipts result."); + assert_eq!(receipts.len(), 1); + }); +} + +#[test] +fn txpool_runtime_api_extrinsic_filter() { + ExtBuilder::default().build().execute_with(|| { + let non_eth_uxt = UncheckedExtrinsic::new_unsigned( + pallet_balances::Call::::transfer_allow_death { + dest: AccountId::from(BOB), + value: 1 * UNIT, + } + .into(), + ); + + let eth_uxt = unchecked_eth_tx(VALID_ETH_TX); + let txpool = >::extrinsic_filter( + vec![eth_uxt.clone(), non_eth_uxt.clone()], + vec![unchecked_eth_tx(VALID_ETH_TX), non_eth_uxt], + ); + assert_eq!(txpool.ready.len(), 1); + assert_eq!(txpool.future.len(), 1); + }); +} + +#[test] +fn can_author_when_selected_is_empty() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), 20_000_000 * UNIT), + (AccountId::from(BOB), 10_000_000 * UNIT), + ]) + .with_collators(vec![(AccountId::from(ALICE), 2_000_000 * UNIT)]) + .with_mappings(vec![( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + AccountId::from(ALICE), + )]) + .build() + .execute_with(|| { + run_to_block(2, Some(NimbusId::from_slice(&ALICE_NIMBUS).unwrap())); + + assert_eq!(ParachainStaking::candidate_pool().0.len(), 1); + + let slot_number = 0; + let parent = Header { + digest: Default::default(), + extrinsics_root: Default::default(), + number: Default::default(), + parent_hash: Default::default(), + state_root: Default::default(), + }; + + // Base case: ALICE can author blocks when she is the only candidate + let can_author_block = Runtime::can_author( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + slot_number, + &parent, + ); + + assert!(can_author_block); + + // Remove ALICE from candidate pool, leaving the candidate_pool empty + assert_ok!(ParachainStaking::go_offline(origin_of(AccountId::from( + ALICE + )))); + + // Need to fast forward to right before the next session, which is when selected candidates + // will be updated. We want to test the creation of the first block of the next session. + run_to_block(1799, Some(NimbusId::from_slice(&ALICE_NIMBUS).unwrap())); + + assert_eq!(ParachainStaking::candidate_pool().0.len(), 0); + + let slot_number = 0; + let parent = Header { + digest: Default::default(), + extrinsics_root: Default::default(), + number: 1799, + parent_hash: Default::default(), + state_root: Default::default(), + }; + + let can_author_block = Runtime::can_author( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + slot_number, + &parent, + ); + + assert!(can_author_block); + + // Check that it works as expected after session update + run_to_block(1800, Some(NimbusId::from_slice(&ALICE_NIMBUS).unwrap())); + + assert_eq!(ParachainStaking::candidate_pool().0.len(), 0); + + let slot_number = 0; + let parent = Header { + digest: Default::default(), + extrinsics_root: Default::default(), + number: 1800, + parent_hash: Default::default(), + state_root: Default::default(), + }; + + let can_author_block = Runtime::can_author( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + slot_number, + &parent, + ); + + assert!(can_author_block); + }); +} + +// Some Priority-related test ideas +// 1. Eth balance transfer with various gas prices. Priority == gas price +// 2. Eth contract call with various gas prices. Priority == gas price +// 3. System remark with no tip -> calculate expected priority from gas weight mapping +// 4. System remark with tip. +// 5. Operational dispatch has higher priority than normal for otherwise same transactions diff --git a/tracing/3001/runtime/moonbase/tests/xcm_mock/mod.rs b/tracing/3001/runtime/moonbase/tests/xcm_mock/mod.rs new file mode 100644 index 00000000..f556bc47 --- /dev/null +++ b/tracing/3001/runtime/moonbase/tests/xcm_mock/mod.rs @@ -0,0 +1,272 @@ +// Copyright 2021 Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot 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. + +// Polkadot 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 Polkadot. If not, see . + +pub mod parachain; +pub mod relay_chain; +pub mod statemint_like; +use cumulus_primitives_core::ParaId; +use pallet_xcm_transactor::relay_indices::*; +use sp_runtime::traits::AccountIdConversion; +use sp_runtime::{AccountId32, BuildStorage}; +use xcm_simulator::{decl_test_network, decl_test_parachain, decl_test_relay_chain, TestExt}; + +use polkadot_runtime_parachains::configuration::{ + GenesisConfig as ConfigurationGenesisConfig, HostConfiguration, +}; +use polkadot_runtime_parachains::paras::{ + GenesisConfig as ParasGenesisConfig, ParaGenesisArgs, ParaKind, +}; + +use sp_core::{H160, U256}; +use std::{collections::BTreeMap, str::FromStr}; + +pub const PARAALICE: [u8; 20] = [1u8; 20]; +pub const RELAYALICE: AccountId32 = AccountId32::new([0u8; 32]); +pub const RELAYBOB: AccountId32 = AccountId32::new([2u8; 32]); + +pub fn para_a_account() -> AccountId32 { + ParaId::from(1).into_account_truncating() +} + +pub fn para_b_account() -> AccountId32 { + ParaId::from(2).into_account_truncating() +} + +pub fn para_a_account_20() -> parachain::AccountId { + ParaId::from(1).into_account_truncating() +} + +pub fn evm_account() -> H160 { + H160::from_str("1000000000000000000000000000000000000001").unwrap() +} + +pub fn mock_para_genesis_info() -> ParaGenesisArgs { + ParaGenesisArgs { + genesis_head: vec![1u8].into(), + validation_code: vec![1u8].into(), + para_kind: ParaKind::Parachain, + } +} + +pub fn mock_relay_config() -> HostConfiguration { + HostConfiguration:: { + hrmp_channel_max_capacity: u32::MAX, + hrmp_channel_max_total_size: u32::MAX, + hrmp_max_parachain_inbound_channels: 10, + hrmp_max_parachain_outbound_channels: 10, + hrmp_channel_max_message_size: u32::MAX, + // Changed to avoid aritmetic errors within hrmp_close + max_downward_message_size: 100_000u32, + ..Default::default() + } +} + +decl_test_parachain! { + pub struct ParaA { + Runtime = parachain::Runtime, + XcmpMessageHandler = parachain::MsgQueue, + DmpMessageHandler = parachain::MsgQueue, + new_ext = para_ext(1), + } +} + +decl_test_parachain! { + pub struct ParaB { + Runtime = parachain::Runtime, + XcmpMessageHandler = parachain::MsgQueue, + DmpMessageHandler = parachain::MsgQueue, + new_ext = para_ext(2), + } +} + +decl_test_parachain! { + pub struct ParaC { + Runtime = parachain::Runtime, + XcmpMessageHandler = parachain::MsgQueue, + DmpMessageHandler = parachain::MsgQueue, + new_ext = para_ext(3), + } +} + +decl_test_parachain! { + pub struct Statemint { + Runtime = statemint_like::Runtime, + XcmpMessageHandler = statemint_like::MsgQueue, + DmpMessageHandler = statemint_like::MsgQueue, + new_ext = statemint_ext(4), + } +} + +decl_test_relay_chain! { + pub struct Relay { + Runtime = relay_chain::Runtime, + RuntimeCall = relay_chain::RuntimeCall, + RuntimeEvent = relay_chain::RuntimeEvent, + XcmConfig = relay_chain::XcmConfig, + MessageQueue = relay_chain::MessageQueue, + System = relay_chain::System, + new_ext = relay_ext(vec![1, 2, 3, 4]), + } +} + +decl_test_network! { + pub struct MockNet { + relay_chain = Relay, + parachains = vec![ + (1, ParaA), + (2, ParaB), + (3, ParaC), + (4, Statemint), + ], + } +} + +pub const INITIAL_BALANCE: u128 = 10_000_000_000_000_000; + +pub const INITIAL_EVM_BALANCE: u128 = 0; +pub const INITIAL_EVM_NONCE: u32 = 1; + +pub fn para_ext(para_id: u32) -> sp_io::TestExternalities { + use parachain::{MsgQueue, Runtime, System}; + + let mut t = frame_system::GenesisConfig::::default() + .build_storage() + .unwrap(); + + pallet_balances::GenesisConfig:: { + balances: vec![(PARAALICE.into(), INITIAL_BALANCE)], + } + .assimilate_storage(&mut t) + .unwrap(); + + pallet_xcm_transactor::GenesisConfig:: { + // match relay runtime construct_runtime order in xcm_mock::relay_chain + relay_indices: RelayChainIndices { + hrmp: 6u8, + init_open_channel: 0u8, + accept_open_channel: 1u8, + close_channel: 2u8, + cancel_open_request: 6u8, + ..Default::default() + }, + ..Default::default() + } + .assimilate_storage(&mut t) + .unwrap(); + + // EVM accounts are self-sufficient. + let mut evm_accounts = BTreeMap::new(); + evm_accounts.insert( + evm_account(), + fp_evm::GenesisAccount { + nonce: U256::from(INITIAL_EVM_NONCE), + balance: U256::from(INITIAL_EVM_BALANCE), + storage: Default::default(), + code: vec![ + 0x00, // STOP + ], + }, + ); + + let genesis_config = pallet_evm::GenesisConfig:: { + accounts: evm_accounts, + ..Default::default() + }; + genesis_config.assimilate_storage(&mut t).unwrap(); + + let mut ext = sp_io::TestExternalities::new(t); + ext.execute_with(|| { + System::set_block_number(1); + MsgQueue::set_para_id(para_id.into()); + }); + ext +} + +pub fn statemint_ext(para_id: u32) -> sp_io::TestExternalities { + use statemint_like::{MsgQueue, Runtime, System}; + + let mut t = frame_system::GenesisConfig::::default() + .build_storage() + .unwrap(); + + pallet_balances::GenesisConfig:: { + balances: vec![ + (RELAYALICE.into(), INITIAL_BALANCE), + (RELAYBOB.into(), INITIAL_BALANCE), + ], + } + .assimilate_storage(&mut t) + .unwrap(); + + let mut ext = sp_io::TestExternalities::new(t); + ext.execute_with(|| { + System::set_block_number(1); + MsgQueue::set_para_id(para_id.into()); + }); + ext +} + +pub fn relay_ext(paras: Vec) -> sp_io::TestExternalities { + use relay_chain::{Runtime, System}; + + let mut t = frame_system::GenesisConfig::::default() + .build_storage() + .unwrap(); + + pallet_balances::GenesisConfig:: { + balances: vec![(RELAYALICE, INITIAL_BALANCE)], + } + .assimilate_storage(&mut t) + .unwrap(); + + let para_genesis: Vec<(ParaId, ParaGenesisArgs)> = paras + .iter() + .map(|¶_id| (para_id.into(), mock_para_genesis_info())) + .collect(); + + let genesis_config = ConfigurationGenesisConfig:: { + config: mock_relay_config(), + }; + genesis_config.assimilate_storage(&mut t).unwrap(); + + let genesis_config = ParasGenesisConfig:: { + paras: para_genesis, + ..Default::default() + }; + genesis_config.assimilate_storage(&mut t).unwrap(); + + let mut ext = sp_io::TestExternalities::new(t); + ext.execute_with(|| { + System::set_block_number(1); + }); + ext +} +pub type RelayChainPalletXcm = pallet_xcm::Pallet; +pub type Hrmp = polkadot_runtime_parachains::hrmp::Pallet; + +pub type StatemintBalances = pallet_balances::Pallet; +pub type StatemintChainPalletXcm = pallet_xcm::Pallet; +pub type StatemintAssets = pallet_assets::Pallet; + +pub type ParachainPalletXcm = pallet_xcm::Pallet; +pub type Assets = pallet_assets::Pallet; + +pub type Treasury = pallet_treasury::Pallet; +pub type AssetManager = pallet_asset_manager::Pallet; +pub type XTokens = orml_xtokens::Pallet; +pub type RelayBalances = pallet_balances::Pallet; +pub type ParaBalances = pallet_balances::Pallet; +pub type XcmTransactor = pallet_xcm_transactor::Pallet; diff --git a/tracing/3001/runtime/moonbase/tests/xcm_mock/parachain.rs b/tracing/3001/runtime/moonbase/tests/xcm_mock/parachain.rs new file mode 100644 index 00000000..ad480234 --- /dev/null +++ b/tracing/3001/runtime/moonbase/tests/xcm_mock/parachain.rs @@ -0,0 +1,1103 @@ +// Copyright 2021 Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot 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. + +// Polkadot 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 Polkadot. If not, see . + +//! Parachain runtime mock. + +use frame_support::{ + construct_runtime, + dispatch::GetDispatchInfo, + ensure, parameter_types, + traits::{ + AsEnsureOriginWithArg, ConstU32, Everything, Get, InstanceFilter, Nothing, PalletInfoAccess, + }, + weights::Weight, + PalletId, +}; + +use frame_system::{pallet_prelude::BlockNumberFor, EnsureNever, EnsureRoot}; +use pallet_xcm::migration::v1::VersionUncheckedMigrateToV1; +use parity_scale_codec::{Decode, Encode, MaxEncodedLen}; +use sp_core::H256; +use sp_runtime::{ + traits::{BlakeTwo256, Hash, IdentityLookup, MaybeEquivalence, Zero}, + Permill, +}; +use sp_std::{convert::TryFrom, prelude::*}; +use xcm::{latest::prelude::*, Version as XcmVersion, VersionedXcm}; + +use cumulus_primitives_core::relay_chain::HrmpChannelId; +use orml_traits::parameter_type_with_key; +use pallet_ethereum::PostLogContent; +use polkadot_core_primitives::BlockNumber as RelayBlockNumber; +use polkadot_parachain::primitives::{Id as ParaId, Sibling}; +use xcm::latest::{ + AssetId as XcmAssetId, Error as XcmError, ExecuteXcm, + Junction::{PalletInstance, Parachain}, + Location, NetworkId, Outcome, Xcm, +}; +use xcm_builder::{ + AccountKey20Aliases, AllowKnownQueryResponses, AllowSubscriptionsFrom, + AllowTopLevelPaidExecutionFrom, ConvertedConcreteId, EnsureXcmOrigin, FixedRateOfFungible, + FixedWeightBounds, FungibleAdapter as XcmCurrencyAdapter, FungiblesAdapter, IsConcrete, + NoChecking, ParentAsSuperuser, ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, + SiblingParachainConvertsVia, SignedAccountKey20AsNative, SovereignSignedViaLocation, + TakeWeightCredit, WithComputedOrigin, +}; +use xcm_executor::{traits::JustTry, Config, XcmExecutor}; + +pub use moonbase_runtime::xcm_config::AssetType; +#[cfg(feature = "runtime-benchmarks")] +use moonbeam_runtime_common::benchmarking::BenchmarkHelper as ArgumentsBenchmarkHelper; +use scale_info::TypeInfo; +use xcm_simulator::{ + DmpMessageHandlerT as DmpMessageHandler, XcmpMessageFormat, + XcmpMessageHandlerT as XcmpMessageHandler, +}; + +pub type AccountId = moonbeam_core_primitives::AccountId; +pub type Balance = u128; +pub type AssetId = u128; +pub type BlockNumber = BlockNumberFor; + +parameter_types! { + pub const BlockHashCount: u32 = 250; +} + +impl frame_system::Config for Runtime { + type RuntimeOrigin = RuntimeOrigin; + type RuntimeCall = RuntimeCall; + type RuntimeTask = RuntimeTask; + type Nonce = u64; + type Block = Block; + type Hash = H256; + type Hashing = ::sp_runtime::traits::BlakeTwo256; + type AccountId = AccountId; + type Lookup = IdentityLookup; + type RuntimeEvent = RuntimeEvent; + type BlockHashCount = BlockHashCount; + type BlockWeights = (); + type BlockLength = (); + type Version = (); + type PalletInfo = PalletInfo; + type AccountData = pallet_balances::AccountData; + type OnNewAccount = (); + type OnKilledAccount = (); + type DbWeight = (); + type BaseCallFilter = Everything; + type SystemWeightInfo = (); + type SS58Prefix = (); + type OnSetCode = (); + type MaxConsumers = frame_support::traits::ConstU32<16>; +} + +parameter_types! { + pub ExistentialDeposit: Balance = 0; + pub const MaxLocks: u32 = 50; + pub const MaxReserves: u32 = 50; +} + +impl pallet_balances::Config for Runtime { + type MaxLocks = MaxLocks; + type Balance = Balance; + type RuntimeEvent = RuntimeEvent; + type DustRemoval = (); + type ExistentialDeposit = ExistentialDeposit; + type AccountStore = System; + type WeightInfo = (); + type MaxReserves = MaxReserves; + type ReserveIdentifier = [u8; 8]; + type RuntimeHoldReason = (); + type FreezeIdentifier = (); + type MaxFreezes = (); + type RuntimeFreezeReason = (); +} + +pub type ForeignAssetInstance = (); + +// Required for runtime benchmarks +pallet_assets::runtime_benchmarks_enabled! { + pub struct BenchmarkHelper; + impl pallet_assets::BenchmarkHelper for BenchmarkHelper + where + AssetIdParameter: From, + { + fn create_asset_id_parameter(id: u32) -> AssetIdParameter { + (id as u128).into() + } + } +} + +parameter_types! { + pub const AssetDeposit: Balance = 10; // Does not really matter as this will be only called by root + pub const ApprovalDeposit: Balance = 0; + pub const AssetsStringLimit: u32 = 50; + pub const MetadataDepositBase: Balance = 0; + pub const MetadataDepositPerByte: Balance = 0; + pub const AssetAccountDeposit: Balance = 0; +} + +impl pallet_assets::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Balance = Balance; + type AssetId = AssetId; + type Currency = Balances; + type ForceOrigin = EnsureRoot; + type AssetDeposit = AssetDeposit; + type MetadataDepositBase = MetadataDepositBase; + type MetadataDepositPerByte = MetadataDepositPerByte; + type ApprovalDeposit = ApprovalDeposit; + type StringLimit = AssetsStringLimit; + type Freezer = (); + type Extra = (); + type AssetAccountDeposit = AssetAccountDeposit; + type WeightInfo = pallet_assets::weights::SubstrateWeight; + type RemoveItemsLimit = ConstU32<656>; + type AssetIdParameter = AssetId; + type CreateOrigin = AsEnsureOriginWithArg>; + type CallbackHandle = (); + pallet_assets::runtime_benchmarks_enabled! { + type BenchmarkHelper = BenchmarkHelper; + } +} + +/// Type for specifying how a `Location` 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 default `AccountId`. + ParentIsPreset, + // Sibling parachain origins convert to AccountId via the `ParaId::into`. + SiblingParachainConvertsVia, + AccountKey20Aliases, + // The rest of multilocations convert via hashing it + xcm_builder::HashedDescription< + AccountId, + xcm_builder::DescribeFamily, + >, +); + +/// 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 + // recognised. + RelayChainAsNative, + // Native converter for sibling Parachains; will convert to a `SiblingPara` origin when + // recognised. + SiblingParachainAsNative, + // Superuser converter for the Relay-chain (Parent) location. This will allow it to issue a + // transaction from the Root origin. + ParentAsSuperuser, + // Xcm origins can be represented natively under the Xcm pallet's Xcm origin. + pallet_xcm::XcmPassthrough, + SignedAccountKey20AsNative, +); + +parameter_types! { + pub const UnitWeightCost: Weight = Weight::from_parts(1u64, 1u64); + pub MaxInstructions: u32 = 100; +} + +// Instructing how incoming xcm assets will be handled +pub type ForeignFungiblesTransactor = FungiblesAdapter< + // Use this fungibles implementation: + Assets, + // Use this currency when it is a fungible asset matching any of the locations in + // SelfReserveRepresentations + ( + ConvertedConcreteId< + AssetId, + Balance, + xcm_primitives::AsAssetType, + JustTry, + >, + ), + // Do a simple punn to convert an AccountId32 Location into a native chain account ID: + LocationToAccountId, + // Our chain's account ID type (we can't get away without mentioning it explicitly): + AccountId, + // We dont allow teleports. + NoChecking, + // We dont track any teleports + (), +>; + +/// The transactor for our own chain currency. +pub type LocalAssetTransactor = XcmCurrencyAdapter< + // Use this currency: + Balances, + // Use this currency when it is a fungible asset matching any of the locations in + // SelfReserveRepresentations + IsConcrete, + // We can convert the Locations with our converter above: + LocationToAccountId, + // Our chain's account ID type (we can't get away without mentioning it explicitly): + AccountId, + // We dont allow teleport + (), +>; + +// These will be our transactors +// We use both transactors +pub type AssetTransactors = (LocalAssetTransactor, ForeignFungiblesTransactor); + +pub type XcmRouter = super::ParachainXcmRouter; + +pub type XcmBarrier = ( + // Weight that is paid for may be consumed. + TakeWeightCredit, + // Expected responses are OK. + AllowKnownQueryResponses, + WithComputedOrigin< + ( + // If the message is one that immediately attemps to pay for execution, then allow it. + AllowTopLevelPaidExecutionFrom, + // Subscriptions for version tracking are OK. + AllowSubscriptionsFrom, + ), + UniversalLocation, + ConstU32<8>, + >, +); + +parameter_types! { + /// Xcm fees will go to the treasury account + pub XcmFeesAccount: AccountId = Treasury::account_id(); +} + +/// This is the struct that will handle the revenue from xcm fees +pub type XcmFeesToAccount_ = xcm_primitives::XcmFeesToAccount< + Assets, + ( + ConvertedConcreteId< + AssetId, + Balance, + xcm_primitives::AsAssetType, + JustTry, + >, + ), + AccountId, + XcmFeesAccount, +>; + +parameter_types! { + // We cannot skip the native trader for some specific tests, so we will have to work with + // a native trader that charges same number of units as weight + // We use both the old and new anchoring logics + pub ParaTokensPerSecond: (XcmAssetId, u128, u128) = ( + AssetId(SelfReserve::get()), + 1000000000000, + 0, + ); +} + +parameter_types! { + pub const RelayNetwork: NetworkId = NetworkId::Polkadot; + pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); + pub UniversalLocation: InteriorLocation = + [GlobalConsensus(RelayNetwork::get()), Parachain(MsgQueue::parachain_id().into())].into(); + + // New Self Reserve location, defines the multilocation identifiying the self-reserve currency + // This is used to match it also against our Balances pallet when we receive such + // a Location: (Self Balances pallet index) + pub SelfReserve: Location = Location { + parents:0, + interior: [ + PalletInstance(::index() as u8) + ].into() + }; + pub const MaxAssetsIntoHolding: u32 = 64; +} + +use frame_system::RawOrigin; +use sp_runtime::traits::PostDispatchInfoOf; +use sp_runtime::DispatchErrorWithPostInfo; +use xcm_executor::traits::CallDispatcher; +moonbeam_runtime_common::impl_moonbeam_xcm_call!(); + +pub struct XcmConfig; +impl Config for XcmConfig { + type RuntimeCall = RuntimeCall; + type XcmSender = XcmRouter; + type AssetTransactor = AssetTransactors; + type OriginConverter = XcmOriginToTransactDispatchOrigin; + type IsReserve = orml_xcm_support::MultiNativeAsset< + xcm_primitives::AbsoluteAndRelativeReserve, + >; + type IsTeleporter = (); + type UniversalLocation = UniversalLocation; + type Barrier = XcmBarrier; + type Weigher = FixedWeightBounds; + // We use three traders + // When we receive either representation of the self-reserve asset, + // When we receive a non-reserve asset, we use AssetManager to fetch how many + // units per second we should charge + type Trader = ( + FixedRateOfFungible, + xcm_primitives::FirstAssetTrader, + ); + + type ResponseHandler = PolkadotXcm; + type SubscriptionService = PolkadotXcm; + type AssetTrap = PolkadotXcm; + type AssetClaims = PolkadotXcm; + type CallDispatcher = MoonbeamCall; + type AssetLocker = (); + type AssetExchanger = (); + type PalletInstancesInfo = (); + type MaxAssetsIntoHolding = MaxAssetsIntoHolding; + type FeeManager = (); + type MessageExporter = (); + type UniversalAliases = Nothing; + type SafeCallFilter = Everything; + type Aliasers = Nothing; + + type TransactionalProcessor = (); +} + +impl cumulus_pallet_xcm::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type XcmExecutor = XcmExecutor; +} + +// Our currencyId. We distinguish for now between SelfReserve, and Others, defined by their Id. +#[derive(Clone, Eq, Debug, PartialEq, Ord, PartialOrd, Encode, Decode, TypeInfo)] +pub enum CurrencyId { + SelfReserve, + ForeignAsset(AssetId), +} + +// How to convert from CurrencyId to Location +pub struct CurrencyIdToLocation(sp_std::marker::PhantomData); +impl sp_runtime::traits::Convert> + for CurrencyIdToLocation +where + AssetXConverter: MaybeEquivalence, +{ + fn convert(currency: CurrencyId) -> Option { + match currency { + CurrencyId::SelfReserve => { + // For now and until Xtokens is adapted to handle 0.9.16 version we use + // the old anchoring here + // This is not a problem in either cases, since the view of the destination + // chain does not change + // TODO! change this to NewAnchoringSelfReserve once xtokens is adapted for it + let multi: Location = SelfReserve::get(); + Some(multi) + } + CurrencyId::ForeignAsset(asset) => AssetXConverter::convert_back(&asset), + } + } +} + +parameter_types! { + pub const BaseXcmWeight: Weight = Weight::from_parts(100u64, 100u64); + pub const MaxAssetsForTransfer: usize = 2; + pub SelfLocation: Location = Location::here(); + pub SelfLocationAbsolute: Location = Location { + parents:1, + interior: [ + Parachain(MsgQueue::parachain_id().into()) + ].into() + }; +} + +parameter_type_with_key! { + pub ParachainMinFee: |location: Location| -> Option { + match (location.parents, location.first_interior()) { + (1, Some(Parachain(4u32))) => Some(50u128), + _ => None, + } + }; +} + +// The XCM message wrapper wrapper +impl orml_xtokens::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Balance = Balance; + type CurrencyId = CurrencyId; + type AccountIdToLocation = xcm_primitives::AccountIdToLocation; + type CurrencyIdConvert = + CurrencyIdToLocation>; + type XcmExecutor = XcmExecutor; + type SelfLocation = SelfLocation; + type Weigher = xcm_builder::FixedWeightBounds; + type BaseXcmWeight = BaseXcmWeight; + type UniversalLocation = UniversalLocation; + type MaxAssetsForTransfer = MaxAssetsForTransfer; + type MinXcmFee = ParachainMinFee; + type LocationsFilter = Everything; + type ReserveProvider = xcm_primitives::AbsoluteAndRelativeReserve; +} + +parameter_types! { + pub const ProposalBond: Permill = Permill::from_percent(5); + pub const ProposalBondMinimum: Balance = 0; + pub const SpendPeriod: u32 = 0; + pub const TreasuryId: PalletId = PalletId(*b"pc/trsry"); + pub const MaxApprovals: u32 = 100; + pub TreasuryAccount: AccountId = Treasury::account_id(); +} + +impl pallet_treasury::Config for Runtime { + type PalletId = TreasuryId; + type Currency = Balances; + type ApproveOrigin = EnsureRoot; + type RejectOrigin = EnsureRoot; + type RuntimeEvent = RuntimeEvent; + type OnSlash = Treasury; + type ProposalBond = ProposalBond; + type ProposalBondMinimum = ProposalBondMinimum; + type SpendPeriod = SpendPeriod; + type Burn = (); + type BurnDestination = (); + type MaxApprovals = MaxApprovals; + type WeightInfo = (); + type SpendFunds = (); + type ProposalBondMaximum = (); + type SpendOrigin = frame_support::traits::NeverEnsureOrigin; // Same as Polkadot + type AssetKind = (); + type Beneficiary = AccountId; + type BeneficiaryLookup = IdentityLookup; + type Paymaster = PayFromAccount; + type BalanceConverter = UnityAssetBalanceConversion; + type PayoutPeriod = ConstU32<0>; + #[cfg(feature = "runtime-benchmarks")] + type BenchmarkHelper = ArgumentsBenchmarkHelper; +} + +#[frame_support::pallet] +pub mod mock_msg_queue { + use super::*; + use frame_support::pallet_prelude::*; + + #[pallet::config] + pub trait Config: frame_system::Config { + type RuntimeEvent: From> + IsType<::RuntimeEvent>; + type XcmExecutor: ExecuteXcm; + } + + #[pallet::call] + impl Pallet {} + + #[pallet::pallet] + pub struct Pallet(_); + + #[pallet::storage] + #[pallet::getter(fn parachain_id)] + pub(super) type ParachainId = StorageValue<_, ParaId, ValueQuery>; + + impl Get for Pallet { + fn get() -> ParaId { + Self::parachain_id() + } + } + + pub type MessageId = [u8; 32]; + + #[pallet::event] + #[pallet::generate_deposit(pub(super) fn deposit_event)] + pub enum Event { + // XCMP + /// Some XCM was executed OK. + Success(Option), + /// Some XCM failed. + Fail(Option, XcmError), + /// Bad XCM version used. + BadVersion(Option), + /// Bad XCM format used. + BadFormat(Option), + + // DMP + /// Downward message is invalid XCM. + InvalidFormat(MessageId), + /// Downward message is unsupported version of XCM. + UnsupportedVersion(MessageId), + /// Downward message executed with the given outcome. + ExecutedDownward(MessageId, Outcome), + } + + impl Pallet { + pub fn set_para_id(para_id: ParaId) { + ParachainId::::put(para_id); + } + + fn handle_xcmp_message( + sender: ParaId, + _sent_at: RelayBlockNumber, + xcm: VersionedXcm, + max_weight: Weight, + ) -> Result { + let hash = Encode::using_encoded(&xcm, T::Hashing::hash); + let (result, event) = match Xcm::::try_from(xcm) { + Ok(xcm) => { + let location = Location::new(1, [Parachain(sender.into())]); + let mut id = [0u8; 32]; + id.copy_from_slice(hash.as_ref()); + match T::XcmExecutor::prepare_and_execute( + location, + xcm, + &mut id, + max_weight, + Weight::zero(), + ) { + Outcome::Error { error } => { + (Err(error.clone()), Event::Fail(Some(hash), error)) + } + Outcome::Complete { used } => (Ok(used), Event::Success(Some(hash))), + // As far as the caller is concerned, this was dispatched without error, so + // we just report the weight used. + Outcome::Incomplete { used, error } => { + (Ok(used), Event::Fail(Some(hash), error)) + } + } + } + Err(()) => ( + Err(XcmError::UnhandledXcmVersion), + Event::BadVersion(Some(hash)), + ), + }; + Self::deposit_event(event); + result + } + } + + impl XcmpMessageHandler for Pallet { + fn handle_xcmp_messages<'a, I: Iterator>( + iter: I, + max_weight: Weight, + ) -> Weight { + for (sender, sent_at, data) in iter { + let mut data_ref = data; + let _ = XcmpMessageFormat::decode(&mut data_ref) + .expect("Simulator encodes with versioned xcm format; qed"); + + let mut remaining_fragments = &data_ref[..]; + while !remaining_fragments.is_empty() { + if let Ok(xcm) = + VersionedXcm::::decode(&mut remaining_fragments) + { + let _ = Self::handle_xcmp_message(sender, sent_at, xcm, max_weight); + } else { + debug_assert!(false, "Invalid incoming XCMP message data"); + } + } + } + max_weight + } + } + + impl DmpMessageHandler for Pallet { + fn handle_dmp_messages( + iter: impl Iterator)>, + limit: Weight, + ) -> Weight { + for (_i, (_sent_at, data)) in iter.enumerate() { + let mut id = sp_io::hashing::blake2_256(&data[..]); + let maybe_msg = VersionedXcm::::decode(&mut &data[..]) + .map(Xcm::::try_from); + match maybe_msg { + Err(_) => { + Self::deposit_event(Event::InvalidFormat(id)); + } + Ok(Err(())) => { + Self::deposit_event(Event::UnsupportedVersion(id)); + } + Ok(Ok(x)) => { + let outcome = T::XcmExecutor::prepare_and_execute( + Parent, + x, + &mut id, + limit, + Weight::zero(), + ); + + Self::deposit_event(Event::ExecutedDownward(id, outcome)); + } + } + } + limit + } + } +} + +// Pallet to provide the version, used to test runtime upgrade version changes +#[frame_support::pallet] +pub mod mock_version_changer { + use super::*; + use frame_support::pallet_prelude::*; + + #[pallet::config] + pub trait Config: frame_system::Config { + type RuntimeEvent: From> + IsType<::RuntimeEvent>; + } + + #[pallet::call] + impl Pallet {} + + #[pallet::pallet] + pub struct Pallet(_); + + #[pallet::storage] + #[pallet::getter(fn current_version)] + pub(super) type CurrentVersion = StorageValue<_, XcmVersion, ValueQuery>; + + impl Get for Pallet { + fn get() -> XcmVersion { + Self::current_version() + } + } + + #[pallet::event] + #[pallet::generate_deposit(pub(super) fn deposit_event)] + pub enum Event { + // XCMP + /// Some XCM was executed OK. + VersionChanged(XcmVersion), + } + + impl Pallet { + pub fn set_version(version: XcmVersion) { + CurrentVersion::::put(version); + Self::deposit_event(Event::VersionChanged(version)); + } + } +} + +impl mock_msg_queue::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type XcmExecutor = XcmExecutor; +} + +impl mock_version_changer::Config for Runtime { + type RuntimeEvent = RuntimeEvent; +} + +pub type LocalOriginToLocation = + xcm_primitives::SignedToAccountId20; + +parameter_types! { + pub MatcherLocation: Location = Location::here(); +} + +impl pallet_xcm::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type SendXcmOrigin = EnsureXcmOrigin; + type XcmRouter = XcmRouter; + type ExecuteXcmOrigin = EnsureXcmOrigin; + type XcmExecuteFilter = frame_support::traits::Nothing; + type XcmExecutor = XcmExecutor; + // Do not allow teleports + type XcmTeleportFilter = Nothing; + type XcmReserveTransferFilter = Everything; + type Weigher = FixedWeightBounds; + type UniversalLocation = UniversalLocation; + type RuntimeOrigin = RuntimeOrigin; + type RuntimeCall = RuntimeCall; + const VERSION_DISCOVERY_QUEUE_SIZE: u32 = 100; + // We use a custom one to test runtime ugprades + type AdvertisedXcmVersion = XcmVersioner; + type Currency = Balances; + type CurrencyMatcher = IsConcrete; + type TrustedLockers = (); + type SovereignAccountOf = (); + type MaxLockers = ConstU32<8>; + type WeightInfo = pallet_xcm::TestWeightInfo; + type MaxRemoteLockConsumers = ConstU32<0>; + type RemoteLockConsumerIdentifier = (); + type AdminOrigin = frame_system::EnsureRoot; +} + +// We instruct how to register the Assets +// In this case, we tell it to Create an Asset in pallet-assets +pub struct AssetRegistrar; +use frame_support::pallet_prelude::DispatchResult; +impl pallet_asset_manager::AssetRegistrar for AssetRegistrar { + fn create_foreign_asset( + asset: AssetId, + min_balance: Balance, + metadata: AssetMetadata, + is_sufficient: bool, + ) -> DispatchResult { + Assets::force_create( + RuntimeOrigin::root(), + asset, + AssetManager::account_id(), + is_sufficient, + min_balance, + )?; + + Assets::force_set_metadata( + RuntimeOrigin::root(), + asset, + metadata.name, + metadata.symbol, + metadata.decimals, + false, + ) + } + + fn destroy_foreign_asset(asset: AssetId) -> DispatchResult { + // Mark the asset as destroying + Assets::start_destroy(RuntimeOrigin::root(), asset.into())?; + + Ok(()) + } + + fn destroy_asset_dispatch_info_weight(asset: AssetId) -> Weight { + RuntimeCall::Assets( + pallet_assets::Call::::start_destroy { + id: asset.into(), + }, + ) + .get_dispatch_info() + .weight + } +} + +#[derive(Clone, Default, Eq, Debug, PartialEq, Ord, PartialOrd, Encode, Decode, TypeInfo)] +pub struct AssetMetadata { + pub name: Vec, + pub symbol: Vec, + pub decimals: u8, +} + +impl pallet_asset_manager::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Balance = Balance; + type AssetId = AssetId; + type AssetRegistrarMetadata = AssetMetadata; + type ForeignAssetType = AssetType; + type AssetRegistrar = AssetRegistrar; + type ForeignAssetModifierOrigin = EnsureRoot; + type WeightInfo = (); +} + +// 1 ROC/WND should be enough +parameter_types! { + pub MaxHrmpRelayFee: Asset = (Location::parent(), 1_000_000_000_000u128).into(); +} + +impl pallet_xcm_transactor::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Balance = Balance; + type Transactor = MockTransactors; + type DerivativeAddressRegistrationOrigin = EnsureRoot; + type SovereignAccountDispatcherOrigin = frame_system::EnsureRoot; + type CurrencyId = CurrencyId; + type AccountIdToLocation = xcm_primitives::AccountIdToLocation; + type CurrencyIdToLocation = + CurrencyIdToLocation>; + type SelfLocation = SelfLocation; + type Weigher = xcm_builder::FixedWeightBounds; + type UniversalLocation = UniversalLocation; + type XcmSender = XcmRouter; + type BaseXcmWeight = BaseXcmWeight; + type AssetTransactor = AssetTransactors; + type ReserveProvider = xcm_primitives::AbsoluteAndRelativeReserve; + type WeightInfo = (); + type HrmpManipulatorOrigin = EnsureRoot; + type HrmpOpenOrigin = EnsureRoot; + type MaxHrmpFee = xcm_builder::Case; +} + +parameter_types! { + pub const MinimumPeriod: u64 = 1000; +} +impl pallet_timestamp::Config for Runtime { + type Moment = u64; + type OnTimestampSet = (); + type MinimumPeriod = MinimumPeriod; + type WeightInfo = (); +} + +use sp_core::U256; + +const MAX_POV_SIZE: u64 = 5 * 1024 * 1024; +/// Block storage limit in bytes. Set to 40 KB. +const BLOCK_STORAGE_LIMIT: u64 = 40 * 1024; + +parameter_types! { + pub BlockGasLimit: U256 = U256::from(u64::MAX); + pub WeightPerGas: Weight = Weight::from_parts(1, 0); + pub GasLimitPovSizeRatio: u64 = { + let block_gas_limit = BlockGasLimit::get().min(u64::MAX.into()).low_u64(); + block_gas_limit.saturating_div(MAX_POV_SIZE) + }; + pub GasLimitStorageGrowthRatio: u64 = + BlockGasLimit::get().min(u64::MAX.into()).low_u64().saturating_div(BLOCK_STORAGE_LIMIT); +} + +impl pallet_evm::Config for Runtime { + type FeeCalculator = (); + type GasWeightMapping = pallet_evm::FixedGasWeightMapping; + type WeightPerGas = WeightPerGas; + + type CallOrigin = pallet_evm::EnsureAddressRoot; + type WithdrawOrigin = pallet_evm::EnsureAddressNever; + + type AddressMapping = pallet_evm::IdentityAddressMapping; + type Currency = Balances; + type Runner = pallet_evm::runner::stack::Runner; + + type RuntimeEvent = RuntimeEvent; + type PrecompilesType = (); + type PrecompilesValue = (); + type ChainId = (); + type BlockGasLimit = BlockGasLimit; + type OnChargeTransaction = (); + type BlockHashMapping = pallet_evm::SubstrateBlockHashMapping; + type FindAuthor = (); + type OnCreate = (); + type GasLimitPovSizeRatio = GasLimitPovSizeRatio; + type SuicideQuickClearLimit = ConstU32<0>; + type GasLimitStorageGrowthRatio = GasLimitStorageGrowthRatio; + type Timestamp = Timestamp; + type WeightInfo = pallet_evm::weights::SubstrateWeight; +} + +pub struct NormalFilter; +impl frame_support::traits::Contains for NormalFilter { + fn contains(c: &RuntimeCall) -> bool { + match c { + _ => true, + } + } +} + +// We need to use the encoding from the relay mock runtime +#[derive(Encode, Decode)] +pub enum RelayCall { + #[codec(index = 5u8)] + // the index should match the position of the module in `construct_runtime!` + Utility(UtilityCall), + #[codec(index = 6u8)] + // the index should match the position of the module in `construct_runtime!` + Hrmp(HrmpCall), +} + +#[derive(Encode, Decode)] +pub enum UtilityCall { + #[codec(index = 1u8)] + AsDerivative(u16), +} + +// HRMP call encoding, needed for xcm transactor pallet +#[derive(Encode, Decode)] +pub enum HrmpCall { + #[codec(index = 0u8)] + InitOpenChannel(ParaId, u32, u32), + #[codec(index = 1u8)] + AcceptOpenChannel(ParaId), + #[codec(index = 2u8)] + CloseChannel(HrmpChannelId), + #[codec(index = 6u8)] + CancelOpenRequest(HrmpChannelId, u32), +} + +#[derive(Clone, Eq, Debug, PartialEq, Ord, PartialOrd, Encode, Decode, TypeInfo)] +pub enum MockTransactors { + Relay, +} + +impl xcm_primitives::XcmTransact for MockTransactors { + fn destination(self) -> Location { + match self { + MockTransactors::Relay => Location::parent(), + } + } +} + +impl xcm_primitives::UtilityEncodeCall for MockTransactors { + fn encode_call(self, call: xcm_primitives::UtilityAvailableCalls) -> Vec { + match self { + MockTransactors::Relay => match call { + xcm_primitives::UtilityAvailableCalls::AsDerivative(a, b) => { + let mut call = + RelayCall::Utility(UtilityCall::AsDerivative(a.clone())).encode(); + call.append(&mut b.clone()); + call + } + }, + } + } +} + +pub struct MockHrmpEncoder; +impl xcm_primitives::HrmpEncodeCall for MockHrmpEncoder { + fn hrmp_encode_call( + call: xcm_primitives::HrmpAvailableCalls, + ) -> Result, xcm::latest::Error> { + match call { + xcm_primitives::HrmpAvailableCalls::InitOpenChannel(a, b, c) => Ok(RelayCall::Hrmp( + HrmpCall::InitOpenChannel(a.clone(), b.clone(), c.clone()), + ) + .encode()), + xcm_primitives::HrmpAvailableCalls::AcceptOpenChannel(a) => { + Ok(RelayCall::Hrmp(HrmpCall::AcceptOpenChannel(a.clone())).encode()) + } + xcm_primitives::HrmpAvailableCalls::CloseChannel(a) => { + Ok(RelayCall::Hrmp(HrmpCall::CloseChannel(a.clone())).encode()) + } + xcm_primitives::HrmpAvailableCalls::CancelOpenRequest(a, b) => { + Ok(RelayCall::Hrmp(HrmpCall::CancelOpenRequest(a.clone(), b.clone())).encode()) + } + } + } +} + +parameter_types! { + pub const PostBlockAndTxnHashes: PostLogContent = PostLogContent::BlockAndTxnHashes; +} + +impl pallet_ethereum::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type StateRoot = pallet_ethereum::IntermediateStateRoot; + type PostLogContent = PostBlockAndTxnHashes; + type ExtraDataLength = ConstU32<30>; +} +parameter_types! { + pub ReservedXcmpWeight: Weight = Weight::from_parts(u64::max_value(), 0); +} + +#[derive( + Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Encode, Decode, Debug, MaxEncodedLen, TypeInfo, +)] +pub enum ProxyType { + NotAllowed = 0, + Any = 1, +} + +impl pallet_evm_precompile_proxy::EvmProxyCallFilter for ProxyType {} + +impl InstanceFilter for ProxyType { + fn filter(&self, _c: &RuntimeCall) -> bool { + match self { + ProxyType::NotAllowed => false, + ProxyType::Any => true, + } + } + fn is_superset(&self, _o: &Self) -> bool { + false + } +} + +impl Default for ProxyType { + fn default() -> Self { + Self::NotAllowed + } +} + +parameter_types! { + pub const ProxyCost: u64 = 1; +} + +impl pallet_proxy::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + type Currency = Balances; + type ProxyType = ProxyType; + type ProxyDepositBase = ProxyCost; + type ProxyDepositFactor = ProxyCost; + type MaxProxies = ConstU32<32>; + type WeightInfo = pallet_proxy::weights::SubstrateWeight; + type MaxPending = ConstU32<32>; + type CallHasher = BlakeTwo256; + type AnnouncementDepositBase = ProxyCost; + type AnnouncementDepositFactor = ProxyCost; +} + +pub struct EthereumXcmEnsureProxy; +impl xcm_primitives::EnsureProxy for EthereumXcmEnsureProxy { + fn ensure_ok(delegator: AccountId, delegatee: AccountId) -> Result<(), &'static str> { + // The EVM implicitely contains an Any proxy, so we only allow for "Any" proxies + let def: pallet_proxy::ProxyDefinition = + pallet_proxy::Pallet::::find_proxy( + &delegator, + &delegatee, + Some(ProxyType::Any), + ) + .map_err(|_| "proxy error: expected `ProxyType::Any`")?; + // We only allow to use it for delay zero proxies, as the call will iMmediatly be executed + ensure!(def.delay.is_zero(), "proxy delay is Non-zero`"); + Ok(()) + } +} + +impl pallet_ethereum_xcm::Config for Runtime { + type InvalidEvmTransactionError = pallet_ethereum::InvalidTransactionWrapper; + type ValidatedTransaction = pallet_ethereum::ValidatedTransaction; + type XcmEthereumOrigin = pallet_ethereum_xcm::EnsureXcmEthereumTransaction; + type ReservedXcmpWeight = ReservedXcmpWeight; + type EnsureProxy = EthereumXcmEnsureProxy; + type ControllerOrigin = EnsureRoot; +} + +type Block = frame_system::mocking::MockBlockU32; + +construct_runtime!( + pub enum Runtime { + System: frame_system, + Balances: pallet_balances, + MsgQueue: mock_msg_queue, + XcmVersioner: mock_version_changer, + + PolkadotXcm: pallet_xcm, + Assets: pallet_assets, + CumulusXcm: cumulus_pallet_xcm, + XTokens: orml_xtokens, + AssetManager: pallet_asset_manager, + XcmTransactor: pallet_xcm_transactor, + Treasury: pallet_treasury, + Proxy: pallet_proxy, + + Timestamp: pallet_timestamp, + EVM: pallet_evm, + Ethereum: pallet_ethereum, + EthereumXcm: pallet_ethereum_xcm, + } +); + +pub(crate) fn para_events() -> Vec { + System::events() + .into_iter() + .map(|r| r.event) + .filter_map(|e| Some(e)) + .collect::>() +} + +use frame_support::traits::tokens::{PayFromAccount, UnityAssetBalanceConversion}; +use frame_support::traits::{OnFinalize, OnInitialize, OnRuntimeUpgrade}; +pub(crate) fn on_runtime_upgrade() { + VersionUncheckedMigrateToV1::::on_runtime_upgrade(); +} + +pub(crate) fn para_roll_to(n: BlockNumber) { + while System::block_number() < n { + PolkadotXcm::on_finalize(System::block_number()); + Balances::on_finalize(System::block_number()); + System::on_finalize(System::block_number()); + System::set_block_number(System::block_number() + 1); + System::on_initialize(System::block_number()); + Balances::on_initialize(System::block_number()); + PolkadotXcm::on_initialize(System::block_number()); + } +} diff --git a/tracing/3001/runtime/moonbase/tests/xcm_mock/relay_chain.rs b/tracing/3001/runtime/moonbase/tests/xcm_mock/relay_chain.rs new file mode 100644 index 00000000..40bff5e1 --- /dev/null +++ b/tracing/3001/runtime/moonbase/tests/xcm_mock/relay_chain.rs @@ -0,0 +1,412 @@ +// Copyright 2021 Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot 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. + +// Polkadot 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 Polkadot. If not, see . + +//! Relay chain runtime mock. + +use frame_support::{ + construct_runtime, parameter_types, + traits::{Everything, Nothing, ProcessMessage, ProcessMessageError}, +}; +use frame_system::pallet_prelude::BlockNumberFor; +use sp_core::H256; +use sp_runtime::{ + traits::{ConstU32, IdentityLookup}, + AccountId32, +}; + +use frame_support::weights::{Weight, WeightMeter}; +use polkadot_parachain::primitives::Id as ParaId; +use polkadot_runtime_parachains::{ + configuration, dmp, hrmp, + inclusion::{AggregateMessageOrigin, UmpQueueId}, + origin, paras, shared, +}; +use sp_runtime::transaction_validity::TransactionPriority; +use sp_runtime::Permill; +use xcm::latest::prelude::*; +use xcm_builder::{ + Account32Hash, AccountId32Aliases, AllowKnownQueryResponses, AllowSubscriptionsFrom, + AllowTopLevelPaidExecutionFrom, ChildParachainAsNative, ChildParachainConvertsVia, + ChildSystemParachainAsSuperuser, FixedRateOfFungible, FixedWeightBounds, + FungibleAdapter as XcmCurrencyAdapter, IsConcrete, ProcessXcmMessage, + SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, + WithComputedOrigin, +}; +use xcm_executor::{Config, XcmExecutor}; +pub type AccountId = AccountId32; +pub type Balance = u128; +pub type BlockNumber = BlockNumberFor; + +parameter_types! { + pub const BlockHashCount: u32 = 250; +} + +impl frame_system::Config for Runtime { + type RuntimeOrigin = RuntimeOrigin; + type RuntimeCall = RuntimeCall; + type RuntimeTask = RuntimeTask; + type Nonce = u64; + type Block = Block; + type Hash = H256; + type Hashing = ::sp_runtime::traits::BlakeTwo256; + type AccountId = AccountId; + type Lookup = IdentityLookup; + type RuntimeEvent = RuntimeEvent; + type BlockHashCount = BlockHashCount; + type BlockWeights = (); + type BlockLength = (); + type Version = (); + type PalletInfo = PalletInfo; + type AccountData = pallet_balances::AccountData; + type OnNewAccount = (); + type OnKilledAccount = (); + type DbWeight = (); + type BaseCallFilter = Everything; + type SystemWeightInfo = (); + type SS58Prefix = (); + type OnSetCode = (); + type MaxConsumers = ConstU32<16>; +} + +parameter_types! { + pub ExistentialDeposit: Balance = 1; + pub const MaxLocks: u32 = 50; + pub const MaxReserves: u32 = 50; +} + +impl pallet_balances::Config for Runtime { + type MaxLocks = MaxLocks; + type Balance = Balance; + type RuntimeEvent = RuntimeEvent; + type DustRemoval = (); + type ExistentialDeposit = ExistentialDeposit; + type AccountStore = System; + type WeightInfo = (); + type MaxReserves = MaxReserves; + type ReserveIdentifier = [u8; 8]; + type RuntimeHoldReason = (); + type FreezeIdentifier = (); + type MaxFreezes = (); + type RuntimeFreezeReason = (); +} + +impl pallet_utility::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + type WeightInfo = (); + type PalletsOrigin = OriginCaller; +} + +impl shared::Config for Runtime { + type DisabledValidators = (); +} + +impl configuration::Config for Runtime { + type WeightInfo = configuration::TestWeightInfo; +} + +parameter_types! { + pub KsmLocation: Location = Here.into(); + pub const KusamaNetwork: NetworkId = NetworkId::Kusama; + pub const AnyNetwork: Option = None; + pub UniversalLocation: InteriorLocation = Here; +} + +pub type SovereignAccountOf = ( + ChildParachainConvertsVia, + AccountId32Aliases, + // Not enabled in the relay per se, but we enable it to test + // the transact_through_signed extrinsic + Account32Hash, +); + +pub type LocalAssetTransactor = + XcmCurrencyAdapter, SovereignAccountOf, AccountId, ()>; + +type LocalOriginConverter = ( + SovereignSignedViaLocation, + ChildParachainAsNative, + SignedAccountId32AsNative, + ChildSystemParachainAsSuperuser, +); + +parameter_types! { + pub const BaseXcmWeight: Weight = Weight::from_parts(1000u64, 1000u64); + pub KsmPerSecond: (AssetId, u128, u128) = (AssetId(KsmLocation::get()), 1, 1); + pub const MaxInstructions: u32 = 100; + pub const MaxAssetsIntoHolding: u32 = 64; + pub MatcherLocation: Location = Location::here(); +} + +pub type XcmRouter = super::RelayChainXcmRouter; + +pub type XcmBarrier = ( + // Weight that is paid for may be consumed. + TakeWeightCredit, + // Expected responses are OK. + AllowKnownQueryResponses, + WithComputedOrigin< + ( + // If the message is one that immediately attemps to pay for execution, then allow it. + AllowTopLevelPaidExecutionFrom, + // Subscriptions for version tracking are OK. + AllowSubscriptionsFrom, + ), + UniversalLocation, + ConstU32<8>, + >, +); + +parameter_types! { + pub Kusama: AssetFilter = Wild(AllOf { fun: WildFungible, id: AssetId(KsmLocation::get()) }); + pub Statemine: Location = Parachain(4).into(); + pub KusamaForStatemine: (AssetFilter, Location) = (Kusama::get(), Statemine::get()); +} + +pub type TrustedTeleporters = xcm_builder::Case; + +pub struct XcmConfig; +impl Config for XcmConfig { + type RuntimeCall = RuntimeCall; + type XcmSender = XcmRouter; + type AssetTransactor = LocalAssetTransactor; + type OriginConverter = LocalOriginConverter; + type IsReserve = (); + type IsTeleporter = TrustedTeleporters; + type UniversalLocation = UniversalLocation; + type Barrier = XcmBarrier; + type Weigher = FixedWeightBounds; + type Trader = FixedRateOfFungible; + type ResponseHandler = XcmPallet; + type AssetTrap = XcmPallet; + type AssetClaims = XcmPallet; + type SubscriptionService = XcmPallet; + type CallDispatcher = RuntimeCall; + type AssetLocker = (); + type AssetExchanger = (); + type PalletInstancesInfo = (); + type MaxAssetsIntoHolding = MaxAssetsIntoHolding; + type FeeManager = (); + type MessageExporter = (); + type UniversalAliases = Nothing; + type SafeCallFilter = Everything; + type Aliasers = Nothing; + type TransactionalProcessor = (); +} + +pub type LocalOriginToLocation = SignedToAccountId32; + +impl pallet_xcm::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type SendXcmOrigin = xcm_builder::EnsureXcmOrigin; + type XcmRouter = XcmRouter; + // Anyone can execute XCM messages locally... + type ExecuteXcmOrigin = xcm_builder::EnsureXcmOrigin; + type XcmExecuteFilter = Nothing; + type XcmExecutor = XcmExecutor; + type XcmTeleportFilter = Everything; + type XcmReserveTransferFilter = Everything; + type Weigher = FixedWeightBounds; + 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 = (); + type MaxLockers = ConstU32<8>; + type WeightInfo = pallet_xcm::TestWeightInfo; + type MaxRemoteLockConsumers = ConstU32<0>; + type RemoteLockConsumerIdentifier = (); + type AdminOrigin = frame_system::EnsureRoot; +} + +parameter_types! { + pub const FirstMessageFactorPercent: u64 = 100; +} + +parameter_types! { + pub const ParasUnsignedPriority: TransactionPriority = TransactionPriority::max_value(); +} + +/// A very dumb implementation of `EstimateNextSessionRotation`. At the moment of writing, this +/// is more to satisfy type requirements rather than to test anything. +pub struct TestNextSessionRotation; + +impl frame_support::traits::EstimateNextSessionRotation for TestNextSessionRotation { + fn average_session_length() -> u32 { + 10 + } + + fn estimate_current_session_progress(_now: u32) -> (Option, Weight) { + (None, Weight::zero()) + } + + fn estimate_next_session_rotation(_now: u32) -> (Option, Weight) { + (None, Weight::zero()) + } +} + +impl paras::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type WeightInfo = paras::TestWeightInfo; + type UnsignedPriority = ParasUnsignedPriority; + type NextSessionRotation = TestNextSessionRotation; + type QueueFootprinter = (); + type OnNewHead = (); + type AssignCoretime = (); +} + +impl dmp::Config for Runtime {} + +impl hrmp::Config for Runtime { + type RuntimeOrigin = RuntimeOrigin; + type RuntimeEvent = RuntimeEvent; + type Currency = Balances; + type WeightInfo = TestHrmpWeightInfo; + type ChannelManager = frame_system::EnsureRoot; +} + +impl frame_system::offchain::SendTransactionTypes for Runtime +where + RuntimeCall: From, +{ + type Extrinsic = UncheckedExtrinsic; + type OverarchingCall = RuntimeCall; +} + +impl origin::Config for Runtime {} + +type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic; +type Block = frame_system::mocking::MockBlockU32; + +parameter_types! { + pub MessageQueueServiceWeight: Weight = Weight::from_parts(1_000_000_000, 1_000_000); + pub const MessageQueueHeapSize: u32 = 65_536; + pub const MessageQueueMaxStale: u32 = 16; +} + +pub struct MessageProcessor; +impl ProcessMessage for MessageProcessor { + type Origin = AggregateMessageOrigin; + + fn process_message( + message: &[u8], + origin: Self::Origin, + meter: &mut WeightMeter, + id: &mut [u8; 32], + ) -> Result { + let para = match origin { + AggregateMessageOrigin::Ump(UmpQueueId::Para(para)) => para, + }; + ProcessXcmMessage::, RuntimeCall>::process_message( + message, + Junction::Parachain(para.into()), + meter, + id, + ) + } +} + +impl pallet_message_queue::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Size = u32; + type HeapSize = MessageQueueHeapSize; + type MaxStale = MessageQueueMaxStale; + type ServiceWeight = MessageQueueServiceWeight; + type MessageProcessor = MessageProcessor; + type QueueChangeHandler = (); + type WeightInfo = (); + type QueuePausedQuery = (); +} + +construct_runtime!( + pub enum Runtime { + System: frame_system, + Balances: pallet_balances, + ParasOrigin: origin, + MessageQueue: pallet_message_queue, + XcmPallet: pallet_xcm, + Utility: pallet_utility, + Hrmp: hrmp, + Dmp: dmp, + Paras: paras, + Configuration: configuration, + } +); + +pub(crate) fn relay_events() -> Vec { + System::events() + .into_iter() + .map(|r| r.event) + .filter_map(|e| Some(e)) + .collect::>() +} + +use frame_support::traits::{OnFinalize, OnInitialize}; +pub(crate) fn relay_roll_to(n: BlockNumber) { + while System::block_number() < n { + XcmPallet::on_finalize(System::block_number()); + Balances::on_finalize(System::block_number()); + System::on_finalize(System::block_number()); + System::set_block_number(System::block_number() + 1); + System::on_initialize(System::block_number()); + Balances::on_initialize(System::block_number()); + XcmPallet::on_initialize(System::block_number()); + } +} + +/// A weight info that is only suitable for testing. +pub struct TestHrmpWeightInfo; + +impl hrmp::WeightInfo for TestHrmpWeightInfo { + fn hrmp_accept_open_channel() -> Weight { + Weight::from_parts(1, 0) + } + fn force_clean_hrmp(_: u32, _: u32) -> Weight { + Weight::from_parts(1, 0) + } + fn force_process_hrmp_close(_: u32) -> Weight { + Weight::from_parts(1, 0) + } + fn force_process_hrmp_open(_: u32) -> Weight { + Weight::from_parts(1, 0) + } + fn hrmp_cancel_open_request(_: u32) -> Weight { + Weight::from_parts(1, 0) + } + fn hrmp_close_channel() -> Weight { + Weight::from_parts(1, 0) + } + fn hrmp_init_open_channel() -> Weight { + Weight::from_parts(1, 0) + } + fn clean_open_channel_requests(_: u32) -> Weight { + Weight::from_parts(1, 0) + } + fn force_open_hrmp_channel(_: u32) -> Weight { + Weight::from_parts(1, 0) + } + fn establish_system_channel() -> Weight { + Weight::from_parts(1, 0) + } + + fn poke_channel_deposits() -> Weight { + Weight::from_parts(1, 0) + } +} diff --git a/tracing/3001/runtime/moonbase/tests/xcm_mock/statemint_like.rs b/tracing/3001/runtime/moonbase/tests/xcm_mock/statemint_like.rs new file mode 100644 index 00000000..a3da2c21 --- /dev/null +++ b/tracing/3001/runtime/moonbase/tests/xcm_mock/statemint_like.rs @@ -0,0 +1,575 @@ +// Copyright 2021 Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot 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. + +// Polkadot 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 Polkadot. If not, see . + +//! Relay chain runtime mock. + +use frame_support::{ + construct_runtime, parameter_types, + traits::{AsEnsureOriginWithArg, Contains, Everything, Nothing}, + weights::Weight, +}; +use frame_system::{EnsureRoot, EnsureSigned}; + +use sp_core::H256; +use sp_runtime::{ + traits::{ConstU32, Hash, IdentityLookup}, + AccountId32, +}; + +use polkadot_core_primitives::BlockNumber as RelayBlockNumber; + +use polkadot_parachain::primitives::Id as ParaId; +use polkadot_parachain::primitives::Sibling; +use sp_std::convert::TryFrom; +use xcm::latest::prelude::*; +use xcm::VersionedXcm; +use xcm_builder::{ + AccountId32Aliases, AllowKnownQueryResponses, AllowSubscriptionsFrom, + AllowTopLevelPaidExecutionFrom, AllowUnpaidExecutionFrom, AsPrefixedGeneralIndex, + ConvertedConcreteId, EnsureXcmOrigin, FixedRateOfFungible, FixedWeightBounds, FungibleAdapter, + FungiblesAdapter, IsConcrete, NoChecking, ParentAsSuperuser, ParentIsPreset, + RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, + SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, +}; +use xcm_executor::{traits::JustTry, Config, XcmExecutor}; +use xcm_simulator::{ + DmpMessageHandlerT as DmpMessageHandler, XcmpMessageFormat, + XcmpMessageHandlerT as XcmpMessageHandler, +}; +pub type AccountId = AccountId32; +pub type Balance = u128; +pub type AssetId = u128; + +parameter_types! { + pub const BlockHashCount: u32 = 250; +} + +impl frame_system::Config for Runtime { + type RuntimeOrigin = RuntimeOrigin; + type RuntimeCall = RuntimeCall; + type RuntimeTask = RuntimeTask; + type Nonce = u64; + type Block = Block; + type Hash = H256; + type Hashing = ::sp_runtime::traits::BlakeTwo256; + type AccountId = AccountId; + type Lookup = IdentityLookup; + type RuntimeEvent = RuntimeEvent; + type BlockHashCount = BlockHashCount; + type BlockWeights = (); + type BlockLength = (); + type Version = (); + type PalletInfo = PalletInfo; + type AccountData = pallet_balances::AccountData; + type OnNewAccount = (); + type OnKilledAccount = (); + type DbWeight = (); + type BaseCallFilter = Everything; + type SystemWeightInfo = (); + type SS58Prefix = (); + type OnSetCode = (); + type MaxConsumers = frame_support::traits::ConstU32<16>; +} + +parameter_types! { + pub ExistentialDeposit: Balance = 1; + pub const MaxLocks: u32 = 50; + pub const MaxReserves: u32 = 50; +} + +impl pallet_balances::Config for Runtime { + type MaxLocks = MaxLocks; + type Balance = Balance; + type RuntimeEvent = RuntimeEvent; + type DustRemoval = (); + type ExistentialDeposit = ExistentialDeposit; + type AccountStore = System; + type WeightInfo = (); + type MaxReserves = MaxReserves; + type ReserveIdentifier = [u8; 8]; + type RuntimeHoldReason = (); + type FreezeIdentifier = (); + type MaxFreezes = (); + type RuntimeFreezeReason = (); +} + +// Required for runtime benchmarks +pallet_assets::runtime_benchmarks_enabled! { + pub struct BenchmarkHelper; + impl pallet_assets::BenchmarkHelper for BenchmarkHelper + where + AssetIdParameter: From, + { + fn create_asset_id_parameter(id: u32) -> AssetIdParameter { + (id as u128).into() + } + } +} + +parameter_types! { + pub const AssetDeposit: Balance = 0; // 1 UNIT deposit to create asset + pub const ApprovalDeposit: Balance = 0; + pub const AssetsStringLimit: u32 = 50; + /// Key = 32 bytes, Value = 36 bytes (32+1+1+1+1) + // https://github.com/paritytech/substrate/blob/069917b/frame/assets/src/lib.rs#L257L271 + pub const MetadataDepositBase: Balance = 0; + pub const MetadataDepositPerByte: Balance = 0; + pub const ExecutiveBody: BodyId = BodyId::Executive; + pub const AssetAccountDeposit: Balance = 0; +} + +impl pallet_assets::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Balance = Balance; + type AssetId = AssetId; + type Currency = Balances; + type ForceOrigin = EnsureRoot; + type AssetDeposit = AssetDeposit; + type MetadataDepositBase = MetadataDepositBase; + type MetadataDepositPerByte = MetadataDepositPerByte; + type ApprovalDeposit = ApprovalDeposit; + type StringLimit = AssetsStringLimit; + type Freezer = (); + type Extra = (); + type AssetAccountDeposit = AssetAccountDeposit; + type WeightInfo = (); + type RemoveItemsLimit = ConstU32<656>; + type AssetIdParameter = AssetId; + type CreateOrigin = AsEnsureOriginWithArg>; + type CallbackHandle = (); + pallet_assets::runtime_benchmarks_enabled! { + type BenchmarkHelper = BenchmarkHelper; + } +} + +parameter_types! { + pub const KsmLocation: Location = Location::parent(); + pub const RelayNetwork: NetworkId = NetworkId::Kusama; + pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); + pub UniversalLocation: InteriorLocation = + [GlobalConsensus(RelayNetwork::get()), Parachain(MsgQueue::parachain_id().into())].into(); + pub Local: Location = Here.into(); + pub CheckingAccount: AccountId = PolkadotXcm::check_account(); + pub KsmPerSecond: (xcm::latest::prelude::AssetId, u128, u128) = + (AssetId(KsmLocation::get()), 1, 1); +} + +/// Type for specifying how a `Location` 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 default `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 = FungibleAdapter< + // Use this currency: + Balances, + // Use this currency when it is a fungible asset matching the given location or name: + IsConcrete, + // Convert an XCM Location into a local 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 of `Balances`. + (), +>; + +/// 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: + ConvertedConcreteId< + AssetId, + Balance, + AsPrefixedGeneralIndex, + JustTry, + >, + // Convert an XCM Location 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. + NoChecking, + // The account to use for tracking teleports. + CheckingAccount, +>; +/// Means for transacting assets on this chain. +pub type AssetTransactors = (CurrencyTransactor, FungiblesTransactor); + +/// 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 convert to a `Relay` origin when + // recognised. + RelayChainAsNative, + // Native converter for sibling Parachains; will convert to a `SiblingPara` origin when + // recognised. + 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 + // `RuntimeOrigin::signed` origin of the same 32-byte value. + SignedAccountId32AsNative, + // Xcm origins can be represented natively under the Xcm pallet's Xcm origin. + pallet_xcm::XcmPassthrough, +); + +parameter_types! { + // One XCM operation is 1_000_000_000 weight - almost certainly a conservative estimate. + pub UnitWeightCost: Weight = Weight::from_parts(100u64, 100u64); + pub const MaxInstructions: u32 = 100; +} + +pub struct ParentOrParentsExecutivePlurality; +impl Contains for ParentOrParentsExecutivePlurality { + fn contains(location: &Location) -> bool { + matches!( + location.unpack(), + (1, []) + | ( + 1, + [Plurality { + id: BodyId::Executive, + .. + }] + ) + ) + } +} + +pub struct ParentOrSiblings; +impl Contains for ParentOrSiblings { + fn contains(location: &Location) -> bool { + matches!(location.unpack(), (1, []) | (1, [_])) + } +} + +pub type Barrier = ( + TakeWeightCredit, + AllowTopLevelPaidExecutionFrom, + // Parent and its exec plurality get free execution + AllowUnpaidExecutionFrom, + // Expected responses are OK. + AllowKnownQueryResponses, + // Subscriptions for version tracking are OK. + AllowSubscriptionsFrom, +); + +parameter_types! { + pub MatcherLocation: Location = Location::here(); + pub const MaxAssetsIntoHolding: u32 = 64; +} + +pub struct XcmConfig; +impl Config for XcmConfig { + type RuntimeCall = RuntimeCall; + type XcmSender = XcmRouter; + type AssetTransactor = AssetTransactors; + type OriginConverter = XcmOriginToTransactDispatchOrigin; + type IsReserve = + orml_xcm_support::MultiNativeAsset; + type IsTeleporter = (); + type UniversalLocation = UniversalLocation; + type Barrier = Barrier; + type Weigher = FixedWeightBounds; + type Trader = FixedRateOfFungible; + type ResponseHandler = PolkadotXcm; + type AssetTrap = PolkadotXcm; + type AssetClaims = PolkadotXcm; + type SubscriptionService = PolkadotXcm; + type CallDispatcher = RuntimeCall; + type AssetLocker = (); + type AssetExchanger = (); + type PalletInstancesInfo = (); + type MaxAssetsIntoHolding = MaxAssetsIntoHolding; + type FeeManager = (); + type MessageExporter = (); + type UniversalAliases = Nothing; + type SafeCallFilter = Everything; + type Aliasers = Nothing; + + type TransactionalProcessor = (); +} + +/// No local origins on this chain are allowed to dispatch XCM sends/executions. +pub type LocalOriginToLocation = SignedToAccountId32; + +pub type XcmRouter = super::ParachainXcmRouter; + +impl pallet_xcm::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type SendXcmOrigin = EnsureXcmOrigin; + type XcmRouter = XcmRouter; + type ExecuteXcmOrigin = EnsureXcmOrigin; + type XcmExecuteFilter = Nothing; + type XcmExecutor = XcmExecutor; + type XcmTeleportFilter = Everything; + type XcmReserveTransferFilter = Everything; + type Weigher = FixedWeightBounds; + 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 = IsConcrete; + type TrustedLockers = (); + type SovereignAccountOf = (); + type MaxLockers = ConstU32<8>; + type WeightInfo = pallet_xcm::TestWeightInfo; + type MaxRemoteLockConsumers = ConstU32<0>; + type RemoteLockConsumerIdentifier = (); + type AdminOrigin = frame_system::EnsureRoot; +} + +impl cumulus_pallet_xcm::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type XcmExecutor = XcmExecutor; +} + +#[frame_support::pallet] +pub mod mock_msg_queue { + use super::*; + use frame_support::pallet_prelude::*; + + #[pallet::config] + pub trait Config: frame_system::Config { + type RuntimeEvent: From> + IsType<::RuntimeEvent>; + type XcmExecutor: ExecuteXcm; + } + + #[pallet::call] + impl Pallet {} + + #[pallet::pallet] + pub struct Pallet(_); + + #[pallet::storage] + #[pallet::getter(fn parachain_id)] + pub(super) type ParachainId = StorageValue<_, ParaId, ValueQuery>; + + impl Get for Pallet { + fn get() -> ParaId { + Self::parachain_id() + } + } + + pub type MessageId = [u8; 32]; + + #[pallet::event] + #[pallet::generate_deposit(pub(super) fn deposit_event)] + pub enum Event { + // XCMP + /// Some XCM was executed OK. + Success(Option), + /// Some XCM failed. + Fail(Option, XcmError), + /// Bad XCM version used. + BadVersion(Option), + /// Bad XCM format used. + BadFormat(Option), + + // DMP + /// Downward message is invalid XCM. + InvalidFormat(MessageId), + /// Downward message is unsupported version of XCM. + UnsupportedVersion(MessageId), + /// Downward message executed with the given outcome. + ExecutedDownward(MessageId, Outcome), + } + + impl Pallet { + pub fn set_para_id(para_id: ParaId) { + ParachainId::::put(para_id); + } + + fn handle_xcmp_message( + sender: ParaId, + _sent_at: RelayBlockNumber, + xcm: VersionedXcm, + max_weight: Weight, + ) -> Result { + let hash = Encode::using_encoded(&xcm, T::Hashing::hash); + let (result, event) = match Xcm::::try_from(xcm) { + Ok(xcm) => { + let location = Location::new(1, [Parachain(sender.into())]); + let mut id = [0u8; 32]; + id.copy_from_slice(hash.as_ref()); + match T::XcmExecutor::prepare_and_execute( + location, + xcm, + &mut id, + max_weight, + Weight::zero(), + ) { + Outcome::Error { error } => { + (Err(error.clone()), Event::Fail(Some(hash), error)) + } + Outcome::Complete { used } => (Ok(used), Event::Success(Some(hash))), + // As far as the caller is concerned, this was dispatched without error, so + // we just report the weight used. + Outcome::Incomplete { used, error } => { + (Ok(used), Event::Fail(Some(hash), error)) + } + } + } + Err(()) => ( + Err(XcmError::UnhandledXcmVersion), + Event::BadVersion(Some(hash)), + ), + }; + Self::deposit_event(event); + result + } + } + + impl XcmpMessageHandler for Pallet { + fn handle_xcmp_messages<'a, I: Iterator>( + iter: I, + max_weight: Weight, + ) -> Weight { + for (sender, sent_at, data) in iter { + let mut data_ref = data; + let _ = XcmpMessageFormat::decode(&mut data_ref) + .expect("Simulator encodes with versioned xcm format; qed"); + + let mut remaining_fragments = &data_ref[..]; + while !remaining_fragments.is_empty() { + if let Ok(xcm) = + VersionedXcm::::decode(&mut remaining_fragments) + { + let _ = Self::handle_xcmp_message(sender, sent_at, xcm, max_weight); + } else { + debug_assert!(false, "Invalid incoming XCMP message data"); + } + } + } + max_weight + } + } + + impl DmpMessageHandler for Pallet { + fn handle_dmp_messages( + iter: impl Iterator)>, + limit: Weight, + ) -> Weight { + for (_i, (_sent_at, data)) in iter.enumerate() { + let mut id = sp_io::hashing::blake2_256(&data[..]); + let maybe_msg = VersionedXcm::::decode(&mut &data[..]) + .map(Xcm::::try_from); + match maybe_msg { + Err(_) => { + Self::deposit_event(Event::InvalidFormat(id)); + } + Ok(Err(())) => { + Self::deposit_event(Event::UnsupportedVersion(id)); + } + Ok(Ok(x)) => { + let outcome = T::XcmExecutor::prepare_and_execute( + Parent, + x, + &mut id, + limit, + Weight::zero(), + ); + + Self::deposit_event(Event::ExecutedDownward(id, outcome)); + } + } + } + limit + } + } +} +impl mock_msg_queue::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type XcmExecutor = XcmExecutor; +} + +// Pallet to cover test cases for change https://github.com/paritytech/cumulus/pull/831 +#[frame_support::pallet] +pub mod mock_statemint_prefix { + use super::*; + use frame_support::pallet_prelude::*; + + #[pallet::config] + pub trait Config: frame_system::Config { + type RuntimeEvent: From> + IsType<::RuntimeEvent>; + } + + #[pallet::call] + impl Pallet {} + + #[pallet::pallet] + #[pallet::without_storage_info] + pub struct Pallet(_); + + #[pallet::storage] + #[pallet::getter(fn current_prefix)] + pub(super) type CurrentPrefix = StorageValue<_, Location, ValueQuery>; + + impl Get for Pallet { + fn get() -> Location { + Self::current_prefix() + } + } + + #[pallet::event] + #[pallet::generate_deposit(pub(super) fn deposit_event)] + pub enum Event { + // Changed Prefix + PrefixChanged(Location), + } + + impl Pallet { + pub fn set_prefix(prefix: Location) { + CurrentPrefix::::put(&prefix); + Self::deposit_event(Event::PrefixChanged(prefix)); + } + } +} + +impl mock_statemint_prefix::Config for Runtime { + type RuntimeEvent = RuntimeEvent; +} + +type Block = frame_system::mocking::MockBlockU32; +construct_runtime!( + pub enum Runtime { + System: frame_system, + Balances: pallet_balances, + PolkadotXcm: pallet_xcm, + CumulusXcm: cumulus_pallet_xcm, + MsgQueue: mock_msg_queue, + Assets: pallet_assets, + PrefixChanger: mock_statemint_prefix, + + } +); diff --git a/tracing/3001/runtime/moonbase/tests/xcm_tests.rs b/tracing/3001/runtime/moonbase/tests/xcm_tests.rs new file mode 100644 index 00000000..c7e68510 --- /dev/null +++ b/tracing/3001/runtime/moonbase/tests/xcm_tests.rs @@ -0,0 +1,3964 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Moonbase Runtime Xcm Tests + +mod xcm_mock; +use frame_support::{ + assert_ok, + traits::{ConstU32, PalletInfo, PalletInfoAccess}, + weights::constants::WEIGHT_REF_TIME_PER_SECOND, + weights::Weight, + BoundedVec, +}; +use pallet_xcm_transactor::{ + Currency, CurrencyPayment, HrmpInitParams, HrmpOperation, TransactWeights, +}; +use sp_runtime::traits::MaybeEquivalence; +use sp_std::boxed::Box; +use xcm::latest::prelude::{ + AccountId32, AccountKey20, All, BuyExecution, ClearOrigin, DepositAsset, GeneralIndex, + Junction, Junctions, Limited, Location, OriginKind, PalletInstance, Parachain, QueryResponse, + Reanchorable, Response, WeightLimit, WithdrawAsset, Xcm, +}; +use xcm::{VersionedLocation, WrapVersion}; +use xcm_executor::traits::ConvertLocation; +use xcm_mock::*; +use xcm_primitives::{UtilityEncodeCall, DEFAULT_PROOF_SIZE}; +use xcm_simulator::TestExt; +mod common; +use cumulus_primitives_core::relay_chain::HrmpChannelId; +// Send a relay asset (like DOT) to a parachain A +#[test] +fn receive_relay_asset_from_relay() { + MockNet::reset(); + + let source_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let source_id: parachain::AssetId = source_location.clone().into(); + let asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + // register relay asset in parachain A + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 0u128, + 0 + )); + }); + + // Actually send relay asset to parachain + let dest: Location = AccountKey20 { + network: None, + key: PARAALICE, + } + .into(); + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest).clone().into()), + Box::new(([], 123).into()), + 0, + )); + }); + + // Verify that parachain received the asset + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 123); + }); +} + +// Send relay asset (like DOT) back from Parachain A to relaychain +#[test] +fn send_relay_asset_to_relay() { + MockNet::reset(); + + let source_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + + // Register relay asset in paraA + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + // Free execution + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 0u128, + 0 + )); + }); + + let dest: Location = Junction::AccountKey20 { + network: None, + key: PARAALICE, + } + .into(); + + // First send relay chain asset to Parachain like in previous test + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest).clone().into()), + Box::new(([], 123).into()), + 0, + )); + }); + + ParaA::execute_with(|| { + // Free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 123); + }); + + // Lets gather the balance before sending back money + let mut balance_before_sending = 0; + Relay::execute_with(|| { + balance_before_sending = RelayBalances::free_balance(&RELAYALICE); + }); + + // We now send back some money to the relay + let dest = Location { + parents: 1, + interior: [AccountId32 { + network: None, + id: RELAYALICE.into(), + }] + .into(), + }; + + ParaA::execute_with(|| { + // free execution, full amount received + assert_ok!(XTokens::transfer( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::ForeignAsset(source_id), + 123, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) + )); + }); + + // The balances in paraAlice should have been substracted + ParaA::execute_with(|| { + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 0); + }); + + // Balances in the relay should have been received + Relay::execute_with(|| { + // Free execution,x full amount received + assert!(RelayBalances::free_balance(&RELAYALICE) > balance_before_sending); + }); +} + +#[test] +fn send_relay_asset_to_para_b() { + MockNet::reset(); + + let source_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + + // Register asset in paraA. Free execution + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata.clone(), + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location.clone(), + 0u128, + 0 + )); + }); + + // Register asset in paraB. Free execution + ParaB::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 0u128, + 0 + )); + }); + + // First send relay chain asset to Parachain A like in previous test + let dest: Location = Junction::AccountKey20 { + network: None, + key: PARAALICE, + } + .into(); + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest).clone().into()), + Box::new(([], 123).into()), + 0, + )); + }); + + ParaA::execute_with(|| { + // Free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 123); + }); + + // Now send relay asset from para A to para B + let dest = Location { + parents: 1, + interior: [ + Parachain(2), + AccountKey20 { + network: None, + key: PARAALICE.into(), + }, + ] + .into(), + }; + + ParaA::execute_with(|| { + assert_ok!(XTokens::transfer( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::ForeignAsset(source_id), + 100, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) + )); + }); + + // Para A balances should have been substracted + ParaA::execute_with(|| { + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 23); + }); + + // Para B balances should have been credited + ParaB::execute_with(|| { + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 100); + }); +} + +#[test] +fn send_para_a_asset_to_para_b() { + MockNet::reset(); + + // this represents the asset in paraA + let para_a_balances = Location::new(1, [Parachain(1), PalletInstance(1u8)]); + let source_location = parachain::AssetType::Xcm( + xcm_builder::V4V3LocationConverter::convert(¶_a_balances).expect("convert to v3"), + ); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"ParaAToken".to_vec(), + symbol: b"ParaA".to_vec(), + decimals: 18, + }; + + // Register asset in paraB. Free execution + ParaB::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 0u128, + 0 + )); + }); + + // Send para A asset from para A to para B + let dest = Location { + parents: 1, + interior: [ + Parachain(2), + AccountKey20 { + network: None, + key: PARAALICE.into(), + }, + ] + .into(), + }; + + ParaA::execute_with(|| { + // Free execution, full amount received + assert_ok!(XTokens::transfer( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::SelfReserve, + 100, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(800000u64, DEFAULT_PROOF_SIZE)) + )); + }); + + // Native token is substracted in paraA + ParaA::execute_with(|| { + assert_eq!( + ParaBalances::free_balance(&PARAALICE.into()), + INITIAL_BALANCE - 100 + ); + }); + + // Asset is minted in paraB + ParaB::execute_with(|| { + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 100); + }); +} + +#[test] +fn send_para_a_asset_from_para_b_to_para_c() { + MockNet::reset(); + + // Represents para A asset + let para_a_balances = Location::new(1, [Parachain(1), PalletInstance(1u8)]); + let source_location = parachain::AssetType::Xcm( + xcm_builder::V4V3LocationConverter::convert(¶_a_balances).expect("convert to v3"), + ); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"ParaAToken".to_vec(), + symbol: b"ParaA".to_vec(), + decimals: 18, + }; + + // Register para A asset in parachain B. Free execution + ParaB::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata.clone(), + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location.clone(), + 0u128, + 0 + )); + }); + + // Register para A asset in parachain C. Free execution + ParaC::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 0u128, + 0 + )); + }); + + // Send para A asset to para B + let dest = Location { + parents: 1, + interior: [ + Parachain(2), + AccountKey20 { + network: None, + key: PARAALICE.into(), + }, + ] + .into(), + }; + ParaA::execute_with(|| { + // free execution, full amount received + assert_ok!(XTokens::transfer( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::SelfReserve, + 100, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(80u64, DEFAULT_PROOF_SIZE)) + )); + }); + + // Para A balances have been substracted + ParaA::execute_with(|| { + assert_eq!( + ParaBalances::free_balance(&PARAALICE.into()), + INITIAL_BALANCE - 100 + ); + }); + + // Para B balances have been credited + ParaB::execute_with(|| { + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 100); + }); + + // Send para A asset from para B to para C + let dest = Location { + parents: 1, + interior: [ + Parachain(3), + AccountKey20 { + network: None, + key: PARAALICE.into(), + }, + ] + .into(), + }; + + ParaB::execute_with(|| { + assert_ok!(XTokens::transfer( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::ForeignAsset(source_id), + 100, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(80u64, DEFAULT_PROOF_SIZE)) + )); + }); + + // The message passed through parachainA so we needed to pay since its the native token + ParaC::execute_with(|| { + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 96); + }); +} + +#[test] +fn send_para_a_asset_to_para_b_and_back_to_para_a() { + MockNet::reset(); + + // Para A asset + let para_a_balances = Location::new(1, [Parachain(1), PalletInstance(1u8)]); + let source_location = parachain::AssetType::Xcm( + xcm_builder::V4V3LocationConverter::convert(¶_a_balances).expect("convert to v3"), + ); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"ParaAToken".to_vec(), + symbol: b"ParaA".to_vec(), + decimals: 18, + }; + + // Register para A asset in para B + ParaB::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 0u128, + 0 + )); + }); + + // Send para A asset to para B + let dest = Location { + parents: 1, + interior: [ + Parachain(2), + AccountKey20 { + network: None, + key: PARAALICE.into(), + }, + ] + .into(), + }; + ParaA::execute_with(|| { + assert_ok!(XTokens::transfer( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::SelfReserve, + 100, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(80u64, DEFAULT_PROOF_SIZE)) + )); + }); + + // Balances have been substracted + ParaA::execute_with(|| { + assert_eq!( + ParaBalances::free_balance(&PARAALICE.into()), + INITIAL_BALANCE - 100 + ); + }); + + // Para B balances have been credited + ParaB::execute_with(|| { + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 100); + }); + + // Send back para A asset to para A + let dest = Location { + parents: 1, + interior: [ + Parachain(1), + AccountKey20 { + network: None, + key: PARAALICE.into(), + }, + ] + .into(), + }; + ParaB::execute_with(|| { + assert_ok!(XTokens::transfer( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::ForeignAsset(source_id), + 100, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(80u64, DEFAULT_PROOF_SIZE)) + )); + }); + + ParaA::execute_with(|| { + // Weight used is 4 + assert_eq!( + ParaBalances::free_balance(&PARAALICE.into()), + INITIAL_BALANCE - 4 + ); + }); +} + +#[test] +fn send_para_a_asset_to_para_b_and_back_to_para_a_with_new_reanchoring() { + MockNet::reset(); + + let para_a_balances = Location::new(1, [Parachain(1), PalletInstance(1u8)]); + let source_location = parachain::AssetType::Xcm( + xcm_builder::V4V3LocationConverter::convert(¶_a_balances).expect("convert to v3"), + ); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"ParaAToken".to_vec(), + symbol: b"ParaA".to_vec(), + decimals: 18, + }; + + ParaB::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 0u128, + 0 + )); + }); + + let dest = Location { + parents: 1, + interior: [ + Parachain(2), + AccountKey20 { + network: None, + key: PARAALICE.into(), + }, + ] + .into(), + }; + ParaA::execute_with(|| { + assert_ok!(XTokens::transfer( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::SelfReserve, + 100, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(80u64, DEFAULT_PROOF_SIZE)) + )); + }); + + // Para A asset has been credited + ParaA::execute_with(|| { + assert_eq!( + ParaBalances::free_balance(&PARAALICE.into()), + INITIAL_BALANCE - 100 + ); + }); + + ParaB::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 100); + }); + + // This time we will force the new reanchoring by manually sending the + // Message through polkadotXCM pallet + + let dest = Location { + parents: 1, + interior: [Parachain(1)].into(), + }; + + let reanchored_para_a_balances = Location::new(0, [PalletInstance(1u8)]); + + let message = xcm::VersionedXcm::<()>::V4(Xcm(vec![ + WithdrawAsset((reanchored_para_a_balances.clone(), 100).into()), + ClearOrigin, + BuyExecution { + fees: (reanchored_para_a_balances, 100).into(), + weight_limit: Limited(80.into()), + }, + DepositAsset { + assets: All.into(), + beneficiary: Location::new( + 0, + [AccountKey20 { + network: None, + key: PARAALICE, + }], + ), + }, + ])); + ParaB::execute_with(|| { + // Send a message to the sovereign account in ParaA to withdraw + // and deposit asset + assert_ok!(ParachainPalletXcm::send( + parachain::RuntimeOrigin::root(), + Box::new(dest.into()), + Box::new(message), + )); + }); + + ParaA::execute_with(|| { + // Weight used is 4 + assert_eq!( + ParaBalances::free_balance(&PARAALICE.into()), + INITIAL_BALANCE - 4 + ); + }); +} + +#[test] +fn receive_relay_asset_with_trader() { + MockNet::reset(); + + let source_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + + // This time we are gonna put a rather high number of units per second + // we know later we will divide by 1e12 + // Lets put 1e6 as units per second + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 2500000000000u128, + 0 + )); + }); + + let dest: Location = Junction::AccountKey20 { + network: None, + key: PARAALICE, + } + .into(); + // We are sending 100 tokens from relay. + // Amount spent in fees is Units per second * weight / 1_000_000_000_000 (weight per second) + // weight is 4 since we are executing 4 instructions with a unitweightcost of 1. + // Units per second should be 2_500_000_000_000_000 + // Therefore with no refund, we should receive 10 tokens less + // Native trader fails for this, and we use the asset trader + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest).clone().into()), + Box::new(([], 100).into()), + 0, + )); + }); + + ParaA::execute_with(|| { + // non-free execution, not full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 90); + // Fee should have been received by treasury + assert_eq!(Assets::balance(source_id, &Treasury::account_id()), 10); + }); +} + +#[test] +fn send_para_a_asset_to_para_b_with_trader() { + MockNet::reset(); + + let para_a_balances = Location::new(1, [Parachain(1), PalletInstance(1u8)]); + let source_location = parachain::AssetType::Xcm( + xcm_builder::V4V3LocationConverter::convert(¶_a_balances).expect("convert to v3"), + ); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"ParaAToken".to_vec(), + symbol: b"ParaA".to_vec(), + decimals: 18, + }; + + ParaB::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 2500000000000u128, + 0 + )); + }); + + let dest = Location { + parents: 1, + interior: [ + Parachain(2), + AccountKey20 { + network: None, + key: PARAALICE.into(), + }, + ] + .into(), + }; + + // In destination chain, we only need 4 weight + // We put 10 weight, 6 of which should be refunded and 4 of which should go to treasury + ParaA::execute_with(|| { + assert_ok!(XTokens::transfer( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::SelfReserve, + 100, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(10u64, DEFAULT_PROOF_SIZE)) + )); + }); + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!( + ParaBalances::free_balance(&PARAALICE.into()), + INITIAL_BALANCE - 100 + ); + }); + + // We are sending 100 tokens from para A. + // Amount spent in fees is Units per second * weight / 1_000_000_000_000 (weight per second) + // weight is 4 since we are executing 4 instructions with a unitweightcost of 1. + // Units per second should be 2_500_000_000_000_000 + // Since we set 10 weight in destination chain, 25 will be charged upfront + // 15 of those will be refunded, while 10 will go to treasury as the true weight used + // will be 4 + ParaB::execute_with(|| { + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 90); + // Fee should have been received by treasury + assert_eq!(Assets::balance(source_id, &Treasury::account_id()), 10); + }); +} + +#[test] +fn send_para_a_asset_to_para_b_with_trader_and_fee() { + MockNet::reset(); + + let para_a_balances = Location::new(1, [Parachain(1), PalletInstance(1u8)]); + let source_location = parachain::AssetType::Xcm( + xcm_builder::V4V3LocationConverter::convert(¶_a_balances).expect("convert to v3"), + ); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"ParaAToken".to_vec(), + symbol: b"ParaA".to_vec(), + decimals: 18, + }; + + ParaB::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + // With these units per second, 80K weight convrets to 1 asset unit + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 12500000u128, + 0 + )); + }); + + let dest = Location { + parents: 1, + interior: [ + Parachain(2), + AccountKey20 { + network: None, + key: PARAALICE.into(), + }, + ] + .into(), + }; + + // we use transfer_with_fee + ParaA::execute_with(|| { + assert_ok!(XTokens::transfer_with_fee( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::SelfReserve, + 100, + 1, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(800000u64, DEFAULT_PROOF_SIZE)) + )); + }); + ParaA::execute_with(|| { + // 100 tokens transferred plus 1 taken from fees + assert_eq!( + ParaBalances::free_balance(&PARAALICE.into()), + INITIAL_BALANCE - 100 - 1 + ); + }); + + ParaB::execute_with(|| { + // free execution, full amount received because trully the xcm instruction does not cost + // what it is specified + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 101); + }); +} + +#[test] +fn error_when_not_paying_enough() { + MockNet::reset(); + + let source_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + + let dest: Location = Junction::AccountKey20 { + network: None, + key: PARAALICE, + } + .into(); + // This time we are gonna put a rather high number of units per second + // we know later we will divide by 1e12 + // Lets put 1e6 as units per second + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 2500000000000u128, + 0 + )); + }); + + // We are sending 100 tokens from relay. + // If we set the dest weight to be 1e7, we know the buy_execution will spend 1e7*1e6/1e12 = 10 + // Therefore with no refund, we should receive 10 tokens less + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest).clone().into()), + Box::new(([], 5).into()), + 0, + )); + }); + + ParaA::execute_with(|| { + // amount not received as it is not paying enough + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 0); + }); +} + +#[test] +fn transact_through_derivative_multilocation() { + MockNet::reset(); + + let source_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 1u128, + 0 + )); + + // Root can set transact info + assert_ok!(XcmTransactor::set_transact_info( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(Location::parent())), + // Relay charges 1000 for every instruction, and we have 3, so 3000 + 3000.into(), + 20000000000.into(), + None + )); + // Root can set transact info + assert_ok!(XcmTransactor::set_fee_per_second( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(Location::parent())), + WEIGHT_REF_TIME_PER_SECOND as u128, + )); + }); + + // Let's construct the call to know how much weight it is going to require + + let dest: Location = AccountKey20 { + network: None, + key: PARAALICE, + } + .into(); + Relay::execute_with(|| { + // 4000000000 transact + 3000 correspond to 4000003000 tokens. 100 more for the transfer call + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest).clone().into()), + Box::new(([], 4000003100u128).into()), + 0, + )); + }); + + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 4000003100); + }); + + // Register address + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::register( + parachain::RuntimeOrigin::root(), + PARAALICE.into(), + 0, + )); + }); + + // Send to registered address + + let registered_address = derivative_account_id(para_a_account(), 0); + let dest = Location { + parents: 1, + interior: [AccountId32 { + network: None, + id: registered_address.clone().into(), + }] + .into(), + }; + + ParaA::execute_with(|| { + // free execution, full amount received + assert_ok!(XTokens::transfer( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::ForeignAsset(source_id), + 100, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) + )); + }); + + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 4000003000); + }); + + // What we will do now is transfer this relay tokens from the derived account to the sovereign + // again + Relay::execute_with(|| { + // free execution,x full amount received + assert!(RelayBalances::free_balance(¶_a_account()) == 4000003000); + }); + + // Encode the call. Balances transact to para_a_account + // First index + let mut encoded: Vec = Vec::new(); + let index = ::PalletInfo::index::< + relay_chain::Balances, + >() + .unwrap() as u8; + + encoded.push(index); + + // Then call bytes + let mut call_bytes = pallet_balances::Call::::transfer_allow_death { + dest: para_a_account(), + value: 100u32.into(), + } + .encode(); + encoded.append(&mut call_bytes); + + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::transact_through_derivative( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::MockTransactors::Relay, + 0, + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + Location::parent() + ))), + fee_amount: None + }, + // 4000000000 + 3000 we should have taken out 4000003000 tokens from the caller + encoded, + TransactWeights { + transact_required_weight_at_most: 4000000000.into(), + overall_weight: None + }, + false + )); + let event_found: Option = parachain::para_events() + .iter() + .find_map(|event| match event.clone() { + parachain::RuntimeEvent::PolkadotXcm(pallet_xcm::Event::AssetsTrapped { + .. + }) => Some(event.clone()), + _ => None, + }); + // Assert that the events do not contain the assets being trapped + assert!(event_found.is_none()); + }); + + Relay::execute_with(|| { + // free execution,x full amount received + assert!(RelayBalances::free_balance(¶_a_account()) == 100); + + assert!(RelayBalances::free_balance(®istered_address) == 0); + }); +} + +#[test] +fn transact_through_derivative_with_custom_fee_weight() { + MockNet::reset(); + + let source_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 1u128, + 0 + )); + }); + + // Let's construct the call to know how much weight it is going to require + + let dest: Location = AccountKey20 { + network: None, + key: PARAALICE, + } + .into(); + Relay::execute_with(|| { + // 4000000000 transact + 3000 correspond to 4000003000 tokens. 100 more for the transfer call + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest).clone().into()), + Box::new(([], 4000003100u128).into()), + 0, + )); + }); + + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 4000003100); + }); + + // Register address + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::register( + parachain::RuntimeOrigin::root(), + PARAALICE.into(), + 0, + )); + }); + + // Send to registered address + + let registered_address = derivative_account_id(para_a_account(), 0); + let dest = Location { + parents: 1, + interior: [AccountId32 { + network: None, + id: registered_address.clone().into(), + }] + .into(), + }; + + ParaA::execute_with(|| { + // free execution, full amount received + assert_ok!(XTokens::transfer( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::ForeignAsset(source_id), + 100, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) + )); + }); + + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 4000003000); + }); + + // What we will do now is transfer this relay tokens from the derived account to the sovereign + // again + Relay::execute_with(|| { + // free execution,x full amount received + assert!(RelayBalances::free_balance(¶_a_account()) == 4000003000); + }); + + // Encode the call. Balances transact to para_a_account + // First index + let mut encoded: Vec = Vec::new(); + let index = ::PalletInfo::index::< + relay_chain::Balances, + >() + .unwrap() as u8; + + encoded.push(index); + + // Then call bytes + let mut call_bytes = pallet_balances::Call::::transfer_allow_death { + dest: para_a_account(), + value: 100u32.into(), + } + .encode(); + encoded.append(&mut call_bytes); + + let overall_weight = 4000003000u64; + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::transact_through_derivative( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::MockTransactors::Relay, + 0, + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + Location::parent() + ))), + // 1-1 fee weight mapping + fee_amount: Some(overall_weight as u128) + }, + // 4000000000 + 3000 we should have taken out 4000003000 tokens from the caller + encoded, + TransactWeights { + transact_required_weight_at_most: 4000000000.into(), + overall_weight: Some(Limited(overall_weight.into())) + }, + false + )); + let event_found: Option = parachain::para_events() + .iter() + .find_map(|event| match event.clone() { + parachain::RuntimeEvent::PolkadotXcm(pallet_xcm::Event::AssetsTrapped { + .. + }) => Some(event.clone()), + _ => None, + }); + // Assert that the events do not contain the assets being trapped + assert!(event_found.is_none()); + }); + + Relay::execute_with(|| { + // free execution,x full amount received + assert!(RelayBalances::free_balance(¶_a_account()) == 100); + + assert!(RelayBalances::free_balance(®istered_address) == 0); + }); +} + +#[test] +fn transact_through_derivative_with_custom_fee_weight_refund() { + MockNet::reset(); + + let source_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 1u128, + 0 + )); + }); + + // Let's construct the call to know how much weight it is going to require + + let dest: Location = AccountKey20 { + network: None, + key: PARAALICE, + } + .into(); + Relay::execute_with(|| { + // 4000000000 transact + 9000 correspond to 4000009000 tokens. 100 more for the transfer call + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest).clone().into()), + Box::new(([], 4000009100u128).into()), + 0, + )); + }); + + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 4000009100); + }); + + // Register address + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::register( + parachain::RuntimeOrigin::root(), + PARAALICE.into(), + 0, + )); + }); + + // Send to registered address + + let registered_address = derivative_account_id(para_a_account(), 0); + let dest = Location { + parents: 1, + interior: [AccountId32 { + network: None, + id: registered_address.clone().into(), + }] + .into(), + }; + + ParaA::execute_with(|| { + // free execution, full amount received + assert_ok!(XTokens::transfer( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::ForeignAsset(source_id), + 100, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) + )); + }); + + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 4000009000); + }); + + // What we will do now is transfer this relay tokens from the derived account to the sovereign + // again + Relay::execute_with(|| { + // free execution,x full amount received + assert!(RelayBalances::free_balance(¶_a_account()) == 4000009000); + }); + + // Encode the call. Balances transact to para_a_account + // First index + let mut encoded: Vec = Vec::new(); + let index = ::PalletInfo::index::< + relay_chain::Balances, + >() + .unwrap() as u8; + + encoded.push(index); + + // Then call bytes + let mut call_bytes = pallet_balances::Call::::transfer_allow_death { + dest: para_a_account(), + value: 100u32.into(), + } + .encode(); + encoded.append(&mut call_bytes); + + let overall_weight = 4000009000u64; + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::transact_through_derivative( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::MockTransactors::Relay, + 0, + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + Location::parent() + ))), + // 1-1 fee weight mapping + fee_amount: Some(overall_weight as u128) + }, + encoded, + TransactWeights { + transact_required_weight_at_most: 4000000000.into(), + overall_weight: Some(Limited(overall_weight.into())) + }, + true + )); + let event_found: Option = parachain::para_events() + .iter() + .find_map(|event| match event.clone() { + parachain::RuntimeEvent::PolkadotXcm(pallet_xcm::Event::AssetsTrapped { + .. + }) => Some(event.clone()), + _ => None, + }); + // Assert that the events do not contain the assets being trapped + assert!(event_found.is_none()); + }); + + Relay::execute_with(|| { + // free execution,x full amount received + // 4000005186 refunded + 100 transferred = 4000005286 + assert_eq!(RelayBalances::free_balance(¶_a_account()), 4000005286); + assert_eq!(RelayBalances::free_balance(®istered_address), 0); + }); +} + +#[test] +fn transact_through_sovereign() { + MockNet::reset(); + + let source_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 1u128, + 0 + )); + + // Root can set transact info + assert_ok!(XcmTransactor::set_transact_info( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(Location::parent())), + // Relay charges 1000 for every instruction, and we have 3, so 3000 + 3000.into(), + 20000000000.into(), + None + )); + // Root can set transact info + assert_ok!(XcmTransactor::set_fee_per_second( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(Location::parent())), + WEIGHT_REF_TIME_PER_SECOND as u128, + )); + }); + + let dest: Location = AccountKey20 { + network: None, + key: PARAALICE, + } + .into(); + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest).clone().into()), + Box::new(([], 4000003100u128).into()), + 0, + )); + }); + + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 4000003100); + }); + + // Register address + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::register( + parachain::RuntimeOrigin::root(), + PARAALICE.into(), + 0, + )); + }); + + // Send to registered address + let registered_address = derivative_account_id(para_a_account(), 0); + let dest = Location { + parents: 1, + interior: [AccountId32 { + network: None, + id: registered_address.clone().into(), + }] + .into(), + }; + + ParaA::execute_with(|| { + // free execution, full amount received + assert_ok!(XTokens::transfer( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::ForeignAsset(source_id), + 100, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) + )); + }); + + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 4000003000); + }); + + // What we will do now is transfer this relay tokens from the derived account to the sovereign + // again + Relay::execute_with(|| { + // free execution,x full amount received + assert!(RelayBalances::free_balance(¶_a_account()) == 4000003000); + 0 + }); + + // We send the xcm transact operation to parent + let dest = Location { + parents: 1, + interior: [].into(), + }; + + // Encode the call. Balances transact to para_a_account + // First index + let mut encoded: Vec = Vec::new(); + let index = ::PalletInfo::index::< + relay_chain::Balances, + >() + .unwrap() as u8; + + encoded.push(index); + + // Then call bytes + let mut call_bytes = pallet_balances::Call::::transfer_allow_death { + dest: para_a_account(), + value: 100u32.into(), + } + .encode(); + encoded.append(&mut call_bytes); + + let utility_bytes = parachain::MockTransactors::Relay.encode_call( + xcm_primitives::UtilityAvailableCalls::AsDerivative(0, encoded), + ); + + // Root can directly pass the execution byes to the sovereign + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::transact_through_sovereign( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(dest)), + Some(PARAALICE.into()), + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + Location::parent() + ))), + fee_amount: None + }, + utility_bytes, + OriginKind::SovereignAccount, + TransactWeights { + transact_required_weight_at_most: 4000000000.into(), + overall_weight: None + }, + false + )); + }); + + Relay::execute_with(|| { + // free execution,x full amount received + assert!(RelayBalances::free_balance(¶_a_account()) == 100); + + assert!(RelayBalances::free_balance(®istered_address) == 0); + }); +} + +#[test] +fn transact_through_sovereign_fee_payer_none() { + MockNet::reset(); + + ParaA::execute_with(|| { + // Root can set transact info + assert_ok!(XcmTransactor::set_transact_info( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(Location::parent())), + // Relay charges 1000 for every instruction, and we have 3, so 3000 + 3000.into(), + 20000000000.into(), + None + )); + // Root can set transact info + assert_ok!(XcmTransactor::set_fee_per_second( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(Location::parent())), + WEIGHT_REF_TIME_PER_SECOND as u128, + )); + }); + + let derivative_address = derivative_account_id(para_a_account(), 0); + + Relay::execute_with(|| { + // Transfer 100 tokens to derivative_address on the relay + assert_ok!(RelayBalances::transfer_keep_alive( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + derivative_address.clone(), + 100u128 + )); + + // Transfer the XCM execution fee amount to ParaA's sovereign account + assert_ok!(RelayBalances::transfer_keep_alive( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + para_a_account(), + 4000003000u128 + )); + }); + + // Check balances before the transact call + Relay::execute_with(|| { + assert_eq!(RelayBalances::free_balance(¶_a_account()), 4000003000); + assert_eq!(RelayBalances::free_balance(&derivative_address), 100); + assert_eq!(RelayBalances::free_balance(&RELAYBOB), 0); + }); + + // Encode the call. Balances transfer of 100 relay tokens to RELAYBOB + let mut encoded: Vec = Vec::new(); + let index = ::PalletInfo::index::< + relay_chain::Balances, + >() + .unwrap() as u8; + + encoded.push(index); + + let mut call_bytes = pallet_balances::Call::::transfer_allow_death { + dest: RELAYBOB, + value: 100u32.into(), + } + .encode(); + encoded.append(&mut call_bytes); + + // The final call will be an AsDerivative using index 0 + let utility_bytes = parachain::MockTransactors::Relay.encode_call( + xcm_primitives::UtilityAvailableCalls::AsDerivative(0, encoded), + ); + + // We send the xcm transact operation to parent + let dest = Location { + parents: 1, + interior: /* Here */ [].into(), + }; + + // Root can directly pass the execution byes to the sovereign + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::transact_through_sovereign( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(dest)), + // No fee_payer here. The sovereign account will pay the fees on destination. + None, + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + Location::parent() + ))), + fee_amount: None + }, + utility_bytes, + OriginKind::SovereignAccount, + TransactWeights { + transact_required_weight_at_most: 4000000000.into(), + overall_weight: None + }, + false + )); + }); + + // Check balances after the transact call are correct + Relay::execute_with(|| { + assert_eq!(RelayBalances::free_balance(¶_a_account()), 0); + assert_eq!(RelayBalances::free_balance(&derivative_address), 0); + assert_eq!(RelayBalances::free_balance(&RELAYBOB), 100); + }); +} + +#[test] +fn transact_through_sovereign_with_custom_fee_weight() { + MockNet::reset(); + + let source_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 1u128, + 0 + )); + }); + + let dest: Location = AccountKey20 { + network: None, + key: PARAALICE, + } + .into(); + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest).clone().into()), + Box::new(([], 4000003100u128).into()), + 0, + )); + }); + + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 4000003100); + }); + + // Register address + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::register( + parachain::RuntimeOrigin::root(), + PARAALICE.into(), + 0, + )); + }); + + // Send to registered address + let registered_address = derivative_account_id(para_a_account(), 0); + let dest = Location { + parents: 1, + interior: [AccountId32 { + network: None, + id: registered_address.clone().into(), + }] + .into(), + }; + + ParaA::execute_with(|| { + // free execution, full amount received + assert_ok!(XTokens::transfer( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::ForeignAsset(source_id), + 100, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) + )); + }); + + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 4000003000); + }); + + // What we will do now is transfer this relay tokens from the derived account to the sovereign + // again + Relay::execute_with(|| { + // free execution,x full amount received + assert!(RelayBalances::free_balance(¶_a_account()) == 4000003000); + 0 + }); + + // We send the xcm transact operation to parent + let dest = Location { + parents: 1, + interior: [].into(), + }; + + // Encode the call. Balances transact to para_a_account + // First index + let mut encoded: Vec = Vec::new(); + let index = ::PalletInfo::index::< + relay_chain::Balances, + >() + .unwrap() as u8; + + encoded.push(index); + + // Then call bytes + let mut call_bytes = pallet_balances::Call::::transfer_allow_death { + dest: para_a_account(), + value: 100u32.into(), + } + .encode(); + encoded.append(&mut call_bytes); + + let utility_bytes = parachain::MockTransactors::Relay.encode_call( + xcm_primitives::UtilityAvailableCalls::AsDerivative(0, encoded), + ); + + let total_weight = 4000003000u64; + // Root can directly pass the execution byes to the sovereign + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::transact_through_sovereign( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(dest)), + Some(PARAALICE.into()), + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + Location::parent() + ))), + // 1-1 fee-weight mapping + fee_amount: Some(total_weight as u128) + }, + utility_bytes, + OriginKind::SovereignAccount, + TransactWeights { + transact_required_weight_at_most: 4000000000.into(), + overall_weight: Some(Limited(total_weight.into())) + }, + false + )); + }); + + Relay::execute_with(|| { + // free execution,x full amount received + assert!(RelayBalances::free_balance(¶_a_account()) == 100); + + assert!(RelayBalances::free_balance(®istered_address) == 0); + }); +} + +#[test] +fn transact_through_sovereign_with_custom_fee_weight_refund() { + MockNet::reset(); + + let source_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 1u128, + 0 + )); + }); + + let dest: Location = AccountKey20 { + network: None, + key: PARAALICE, + } + .into(); + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest).clone().into()), + Box::new(([], 4000009100u128).into()), + 0, + )); + }); + + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 4000009100); + }); + + // Register address + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::register( + parachain::RuntimeOrigin::root(), + PARAALICE.into(), + 0, + )); + }); + + // Send to registered address + let registered_address = derivative_account_id(para_a_account(), 0); + let dest = Location { + parents: 1, + interior: [AccountId32 { + network: None, + id: registered_address.clone().into(), + }] + .into(), + }; + + ParaA::execute_with(|| { + // free execution, full amount received + assert_ok!(XTokens::transfer( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::ForeignAsset(source_id), + 100, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) + )); + }); + + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 4000009000); + }); + + // What we will do now is transfer this relay tokens from the derived account to the sovereign + // again + Relay::execute_with(|| { + // free execution,x full amount received + assert!(RelayBalances::free_balance(¶_a_account()) == 4000009000); + 0 + }); + + // We send the xcm transact operation to parent + let dest = Location { + parents: 1, + interior: [].into(), + }; + + // Encode the call. Balances transact to para_a_account + // First index + let mut encoded: Vec = Vec::new(); + let index = ::PalletInfo::index::< + relay_chain::Balances, + >() + .unwrap() as u8; + + encoded.push(index); + + // Then call bytes + let mut call_bytes = pallet_balances::Call::::transfer_allow_death { + dest: para_a_account(), + value: 100u32.into(), + } + .encode(); + encoded.append(&mut call_bytes); + + let utility_bytes = parachain::MockTransactors::Relay.encode_call( + xcm_primitives::UtilityAvailableCalls::AsDerivative(0, encoded), + ); + + let total_weight = 4000009000u64; + // Root can directly pass the execution byes to the sovereign + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::transact_through_sovereign( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(dest)), + Some(PARAALICE.into()), + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + Location::parent() + ))), + // 1-1 fee-weight mapping + fee_amount: Some(total_weight as u128) + }, + utility_bytes, + OriginKind::SovereignAccount, + TransactWeights { + transact_required_weight_at_most: 4000000000.into(), + overall_weight: Some(Limited(total_weight.into())) + }, + true + )); + }); + + Relay::execute_with(|| { + // free execution,x full amount received + // 4000005186 refunded + 100 transferred = 4000005286 + assert_eq!(RelayBalances::free_balance(¶_a_account()), 4000005286); + + assert_eq!(RelayBalances::free_balance(®istered_address), 0); + }); +} + +#[test] +fn test_automatic_versioning_on_runtime_upgrade_with_relay() { + MockNet::reset(); + + let source_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + // register relay asset in parachain A and set XCM version to 1 + ParaA::execute_with(|| { + parachain::XcmVersioner::set_version(1); + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 0u128, + 0 + )); + }); + + let response = Response::Version(2); + let querier: Location = [].into(); + + // This is irrelevant, nothing will be done with this message, + // but we need to pass a message as an argument to trigger the storage change + let mock_message: Xcm<()> = Xcm(vec![QueryResponse { + query_id: 0, + response, + max_weight: Weight::zero(), + querier: Some(querier), + }]); + // The router is mocked, and we cannot use WrapVersion in ChildParachainRouter. So we will force + // it directly here + // Actually send relay asset to parachain + let dest: Location = AccountKey20 { + network: None, + key: PARAALICE, + } + .into(); + + Relay::execute_with(|| { + // This sets the default version, for not known destinations + assert_ok!(RelayChainPalletXcm::force_default_xcm_version( + relay_chain::RuntimeOrigin::root(), + Some(2) + )); + + // Wrap version, which sets VersionedStorage + // This is necessary because the mock router does not use wrap_version, but + // this is not necessary in prod + assert_ok!(::wrap_version( + &Parachain(1).into(), + mock_message + )); + + // Transfer assets. Since it is an unknown destination, it will query for version + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest).clone().into()), + Box::new(([], 123).into()), + 0, + )); + + // Let's advance the relay. This should trigger the subscription message + relay_chain::relay_roll_to(2); + + // queries should have been updated + assert!(RelayChainPalletXcm::query(0).is_some()); + }); + + let expected_supported_version: relay_chain::RuntimeEvent = + pallet_xcm::Event::SupportedVersionChanged { + location: Location { + parents: 0, + interior: [Parachain(1)].into(), + }, + version: 1, + } + .into(); + + Relay::execute_with(|| { + // Assert that the events vector contains the version change + assert!(relay_chain::relay_events().contains(&expected_supported_version)); + }); + + // ParaA changes version to 2, and calls on_runtime_upgrade. This should notify the targets + // of the new version change + ParaA::execute_with(|| { + // Set version + parachain::XcmVersioner::set_version(2); + // Do runtime upgrade + parachain::on_runtime_upgrade(); + // Initialize block, to call on_initialize and notify targets + parachain::para_roll_to(2); + // Expect the event in the parachain + assert!(parachain::para_events().iter().any(|e| matches!( + e, + parachain::RuntimeEvent::PolkadotXcm(pallet_xcm::Event::VersionChangeNotified { + result: 2, + .. + }) + ))); + }); + + // This event should have been seen in the relay + let expected_supported_version_2: relay_chain::RuntimeEvent = + pallet_xcm::Event::SupportedVersionChanged { + location: Location { + parents: 0, + interior: [Parachain(1)].into(), + }, + version: 2, + } + .into(); + + Relay::execute_with(|| { + // Assert that the events vector contains the new version change + assert!(relay_chain::relay_events().contains(&expected_supported_version_2)); + }); +} + +#[test] +fn test_automatic_versioning_on_runtime_upgrade_with_para_b() { + MockNet::reset(); + + let para_a_balances = Location::new(1, [Parachain(1), PalletInstance(1u8)]); + let source_location = parachain::AssetType::Xcm( + xcm_builder::V4V3LocationConverter::convert(¶_a_balances).expect("convert to v3"), + ); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"ParaAToken".to_vec(), + symbol: b"ParaA".to_vec(), + decimals: 18, + }; + let response = Response::Version(2); + let querier: Location = [].into(); + + // This is irrelevant, nothing will be done with this message, + // but we need to pass a message as an argument to trigger the storage change + let mock_message: Xcm<()> = Xcm(vec![QueryResponse { + query_id: 0, + response, + max_weight: Weight::zero(), + querier: Some(querier), + }]); + + ParaA::execute_with(|| { + // advertised version + parachain::XcmVersioner::set_version(2); + }); + + ParaB::execute_with(|| { + // Let's try with v0 + parachain::XcmVersioner::set_version(0); + + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 0u128, + 0 + )); + }); + + ParaA::execute_with(|| { + // This sets the default version, for not known destinations + assert_ok!(ParachainPalletXcm::force_default_xcm_version( + parachain::RuntimeOrigin::root(), + Some(2) + )); + // Wrap version, which sets VersionedStorage + assert_ok!(::wrap_version( + &Location::new(1, [Parachain(2)]).into(), + mock_message + )); + + parachain::para_roll_to(2); + + // queries should have been updated + assert!(ParachainPalletXcm::query(0).is_some()); + }); + + let expected_supported_version: parachain::RuntimeEvent = + pallet_xcm::Event::SupportedVersionChanged { + location: Location { + parents: 1, + interior: [Parachain(2)].into(), + }, + version: 0, + } + .into(); + + ParaA::execute_with(|| { + // Assert that the events vector contains the version change + assert!(parachain::para_events().contains(&expected_supported_version)); + }); + + // Let's ensure talking in v0 works + let dest = Location { + parents: 1, + interior: [ + Parachain(2), + AccountKey20 { + network: None, + key: PARAALICE.into(), + }, + ] + .into(), + } + .into(); + ParaA::execute_with(|| { + // free execution, full amount received + assert_ok!(XTokens::transfer( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::SelfReserve, + 100, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(80u64, DEFAULT_PROOF_SIZE)) + )); + // free execution, full amount received + assert_eq!( + ParaBalances::free_balance(&PARAALICE.into()), + INITIAL_BALANCE - 100 + ); + }); + + ParaB::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 100); + }); + + // ParaB changes version to 2, and calls on_runtime_upgrade. This should notify the targets + // of the new version change + ParaB::execute_with(|| { + // Set version + parachain::XcmVersioner::set_version(2); + // Do runtime upgrade + parachain::on_runtime_upgrade(); + // Initialize block, to call on_initialize and notify targets + parachain::para_roll_to(2); + // Expect the event in the parachain + assert!(parachain::para_events().iter().any(|e| matches!( + e, + parachain::RuntimeEvent::PolkadotXcm(pallet_xcm::Event::VersionChangeNotified { + result: 2, + .. + }) + ))); + }); + + // This event should have been seen in para A + let expected_supported_version_2: parachain::RuntimeEvent = + pallet_xcm::Event::SupportedVersionChanged { + location: Location { + parents: 1, + interior: [Parachain(2)].into(), + }, + version: 2, + } + .into(); + + // Para A should have received the version change + ParaA::execute_with(|| { + // Assert that the events vector contains the new version change + assert!(parachain::para_events().contains(&expected_supported_version_2)); + }); +} + +#[test] +fn receive_asset_with_no_sufficients_not_possible_if_non_existent_account() { + MockNet::reset(); + + let fresh_account = [2u8; 20]; + let source_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let source_id: parachain::AssetId = source_location.clone().into(); + let asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + // register relay asset in parachain A + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + false + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 0u128, + 0 + )); + }); + + // Actually send relay asset to parachain + let dest: Location = AccountKey20 { + network: None, + key: fresh_account, + } + .into(); + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest.clone()).clone().into()), + Box::new(([], 123).into()), + 0, + )); + }); + + // parachain should not have received assets + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &fresh_account.into()), 0); + }); + + // Send native token to fresh_account + ParaA::execute_with(|| { + assert_ok!(ParaBalances::transfer_allow_death( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + fresh_account.into(), + 100 + )); + }); + + // Re-send tokens + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest).clone().into()), + Box::new(([], 123).into()), + 0, + )); + }); + + // parachain should have received assets + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &fresh_account.into()), 123); + }); +} + +#[test] +fn receive_assets_with_sufficients_true_allows_non_funded_account_to_receive_assets() { + MockNet::reset(); + + let fresh_account = [2u8; 20]; + let source_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let source_id: parachain::AssetId = source_location.clone().into(); + let asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + // register relay asset in parachain A + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 0u128, + 0 + )); + }); + + // Actually send relay asset to parachain + let dest: Location = AccountKey20 { + network: None, + key: fresh_account, + } + .into(); + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest.clone()).clone().into()), + Box::new(([], 123).into()), + 0, + )); + }); + + // parachain should have received assets + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &fresh_account.into()), 123); + }); +} + +#[test] +fn evm_account_receiving_assets_should_handle_sufficients_ref_count() { + MockNet::reset(); + + let mut sufficient_account = [0u8; 20]; + sufficient_account[0..20].copy_from_slice(&evm_account()[..]); + + let evm_account_id = parachain::AccountId::from(sufficient_account); + + // Evm account is self sufficient + ParaA::execute_with(|| { + assert_eq!(parachain::System::account(evm_account_id).sufficients, 1); + }); + + let source_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + // register relay asset in parachain A + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 0u128, + 0 + )); + }); + + // Actually send relay asset to parachain + let dest: Location = AccountKey20 { + network: None, + key: sufficient_account, + } + .into(); + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest.clone()).clone().into()), + Box::new(([], 123).into()), + 0, + )); + }); + + // Evm account sufficient ref count increased by 1. + ParaA::execute_with(|| { + // TODO: since the suicided logic was introduced the data of the smart contract is not + // removed, it will have to be updated in a future release when there is the ability to + // remove contract data + // assert_eq!(parachain::System::account(evm_account_id).sufficients, 2); + }); + + ParaA::execute_with(|| { + // Remove the account from the evm context. + parachain::EVM::remove_account(&evm_account()); + // Evm account sufficient ref count decreased by 1. + // TODO: since the suicided logic was introduced the data of the smart contract is not + // removed, it will have to be updated in a future release when there is the ability to + // remove contract data + // assert_eq!(parachain::System::account(evm_account_id).sufficients, 1); + }); +} + +#[test] +fn empty_account_should_not_be_reset() { + MockNet::reset(); + + // Test account has nonce 1 on genesis. + let mut sufficient_account = [0u8; 20]; + sufficient_account[0..20].copy_from_slice(&evm_account()[..]); + + let evm_account_id = parachain::AccountId::from(sufficient_account); + + let source_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let source_id: parachain::AssetId = source_location.clone().into(); + let asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + // register relay asset in parachain A + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + false + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 0u128, + 0 + )); + }); + + // Send native token to evm_account + ParaA::execute_with(|| { + assert_ok!(ParaBalances::transfer_allow_death( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + evm_account_id, + 100 + )); + }); + + // Actually send relay asset to parachain + let dest: Location = AccountKey20 { + network: None, + key: sufficient_account, + } + .into(); + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest.clone()).clone().into()), + Box::new(([], 123).into()), + 0, + )); + }); + + ParaA::execute_with(|| { + // Empty the assets from the account. + // As this makes the account go below the `min_balance`, the account is considered dead + // at eyes of pallet-assets, and the consumer reference is decreased by 1 and is now Zero. + assert_ok!(parachain::Assets::transfer( + parachain::RuntimeOrigin::signed(evm_account_id), + source_id, + PARAALICE.into(), + 123 + )); + // Verify account asset balance is Zero. + assert_eq!( + parachain::Assets::balance(source_id, &evm_account_id.into()), + 0 + ); + // Because we no longer have consumer references, we can set the balance to Zero. + // This would reset the account if our ED were to be > than Zero. + assert_ok!(ParaBalances::force_set_balance( + parachain::RuntimeOrigin::root(), + evm_account_id, + 0, + )); + // Verify account native balance is Zero. + assert_eq!(ParaBalances::free_balance(&evm_account_id), 0); + // Remove the account from the evm context. + // This decreases the sufficients reference by 1 and now is Zero. + parachain::EVM::remove_account(&evm_account()); + // Verify reference count. + let account = parachain::System::account(evm_account_id); + assert_eq!(account.sufficients, 0); + assert_eq!(account.consumers, 0); + assert_eq!(account.providers, 1); + // We expect the account to be alive in a Zero ED context. + assert_eq!(parachain::System::account_nonce(evm_account_id), 1); + }); +} + +#[test] +fn test_statemint_like() { + MockNet::reset(); + + let dest_para = Location::new(1, [Parachain(1)]); + + let sov = xcm_builder::SiblingParachainConvertsVia::< + polkadot_parachain::primitives::Sibling, + statemint_like::AccountId, + >::convert_location(&dest_para) + .unwrap(); + + let statemint_asset_a_balances = Location::new( + 1, + [ + Parachain(4), + PalletInstance(5), + xcm::latest::prelude::GeneralIndex(0u128), + ], + ); + let source_location = parachain::AssetType::Xcm( + xcm_builder::V4V3LocationConverter::convert(&statemint_asset_a_balances) + .expect("convert to v3"), + ); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"StatemintToken".to_vec(), + symbol: b"StatemintToken".to_vec(), + decimals: 12, + }; + + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata.clone(), + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 0u128, + 0 + )); + }); + + Statemint::execute_with(|| { + // Set new prefix + statemint_like::PrefixChanger::set_prefix( + PalletInstance(::index() as u8).into(), + ); + assert_ok!(StatemintAssets::create( + statemint_like::RuntimeOrigin::signed(RELAYALICE), + 0, + RELAYALICE, + 1 + )); + + assert_ok!(StatemintAssets::mint( + statemint_like::RuntimeOrigin::signed(RELAYALICE), + 0, + RELAYALICE, + 300000000000000 + )); + + // This is needed, since the asset is created as non-sufficient + assert_ok!(StatemintBalances::transfer_allow_death( + statemint_like::RuntimeOrigin::signed(RELAYALICE), + sov, + 100000000000000 + )); + + // Actually send relay asset to parachain + let dest: Location = AccountKey20 { + network: None, + key: PARAALICE, + } + .into(); + + // Send asset with previous prefix + assert_ok!(StatemintChainPalletXcm::reserve_transfer_assets( + statemint_like::RuntimeOrigin::signed(RELAYALICE), + Box::new(Location::new(1, [Parachain(1)]).into()), + Box::new(VersionedLocation::V4(dest).clone().into()), + Box::new( + ( + [ + xcm::latest::prelude::PalletInstance( + ::index() as u8 + ), + xcm::latest::prelude::GeneralIndex(0), + ], + 123 + ) + .into() + ), + 0, + )); + }); + + ParaA::execute_with(|| { + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 123); + }); +} + +#[test] +fn send_statemint_asset_from_para_a_to_statemint_with_relay_fee() { + MockNet::reset(); + + // Relay asset + let relay_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let source_relay_id: parachain::AssetId = relay_location.clone().into(); + + let relay_asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + + // Statemint asset + let statemint_asset = Location::new( + 1, + [Parachain(4u32), PalletInstance(5u8), GeneralIndex(10u128)], + ); + let statemint_location_asset = parachain::AssetType::Xcm( + xcm_builder::V4V3LocationConverter::convert(&statemint_asset).expect("convert to v3"), + ); + let source_statemint_asset_id: parachain::AssetId = statemint_location_asset.clone().into(); + + let asset_metadata_statemint_asset = parachain::AssetMetadata { + name: b"USDC".to_vec(), + symbol: b"USDC".to_vec(), + decimals: 12, + }; + + let dest_para = Location::new(1, [Parachain(1)]); + + let sov = xcm_builder::SiblingParachainConvertsVia::< + polkadot_parachain::primitives::Sibling, + statemint_like::AccountId, + >::convert_location(&dest_para) + .unwrap(); + + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + relay_location.clone(), + relay_asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + relay_location, + 0u128, + 0 + )); + + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + statemint_location_asset.clone(), + asset_metadata_statemint_asset, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + statemint_location_asset, + 0u128, + 1 + )); + }); + + let parachain_beneficiary_from_relay: Location = Junction::AccountKey20 { + network: None, + key: PARAALICE, + } + .into(); + + // Send relay chain asset to Alice in Parachain A + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new( + VersionedLocation::V4(parachain_beneficiary_from_relay) + .clone() + .into() + ), + Box::new(([], 200).into()), + 0, + )); + }); + + Statemint::execute_with(|| { + // Set new prefix + statemint_like::PrefixChanger::set_prefix( + PalletInstance(::index() as u8).into(), + ); + + assert_ok!(StatemintAssets::create( + statemint_like::RuntimeOrigin::signed(RELAYALICE), + 10, + RELAYALICE, + 1 + )); + + assert_ok!(StatemintAssets::mint( + statemint_like::RuntimeOrigin::signed(RELAYALICE), + 10, + RELAYALICE, + 300000000000000 + )); + + // Send some native statemint tokens to sovereign for fees. + // We can't pay fees with USDC as the asset is minted as non-sufficient. + assert_ok!(StatemintBalances::transfer_allow_death( + statemint_like::RuntimeOrigin::signed(RELAYALICE), + sov, + 100000000000000 + )); + + // Send statemint USDC asset to Alice in Parachain A + let parachain_beneficiary_from_statemint: Location = AccountKey20 { + network: None, + key: PARAALICE, + } + .into(); + + // Send with new prefix + assert_ok!(StatemintChainPalletXcm::reserve_transfer_assets( + statemint_like::RuntimeOrigin::signed(RELAYALICE), + Box::new(Location::new(1, [Parachain(1)]).into()), + Box::new( + VersionedLocation::V4(parachain_beneficiary_from_statemint) + .clone() + .into() + ), + Box::new( + ( + [ + xcm::latest::prelude::PalletInstance( + ::index() as u8 + ), + GeneralIndex(10), + ], + 125 + ) + .into() + ), + 0, + )); + }); + + let statemint_beneficiary = Location { + parents: 1, + interior: [ + Parachain(4), + AccountId32 { + network: None, + id: RELAYBOB.into(), + }, + ] + .into(), + }; + + ParaA::execute_with(|| { + // Alice has received 125 USDC + assert_eq!( + Assets::balance(source_statemint_asset_id, &PARAALICE.into()), + 125 + ); + + // Alice has received 200 Relay assets + assert_eq!(Assets::balance(source_relay_id, &PARAALICE.into()), 200); + }); + + Statemint::execute_with(|| { + // Check that BOB's balance is empty before the transfer + assert_eq!(StatemintAssets::account_balances(RELAYBOB), vec![]); + }); + + // Transfer USDC from Parachain A to Statemint using Relay asset as fee + ParaA::execute_with(|| { + assert_ok!(XTokens::transfer_multicurrencies( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + vec![ + ( + parachain::CurrencyId::ForeignAsset(source_statemint_asset_id), + 100 + ), + (parachain::CurrencyId::ForeignAsset(source_relay_id), 100) + ], + 1, + Box::new(VersionedLocation::V4(statemint_beneficiary)), + WeightLimit::Limited(Weight::from_parts(80_000_000u64, 100_000u64)) + )); + }); + + ParaA::execute_with(|| { + // Alice has 100 USDC less + assert_eq!( + Assets::balance(source_statemint_asset_id, &PARAALICE.into()), + 25 + ); + + // Alice has 100 relay asset less + assert_eq!(Assets::balance(source_relay_id, &PARAALICE.into()), 100); + }); + + Statemint::execute_with(|| { + // Check that BOB received 100 USDC on statemint + assert_eq!(StatemintAssets::account_balances(RELAYBOB), vec![(10, 100)]); + }); +} + +#[test] +fn transact_through_signed_multilocation() { + MockNet::reset(); + let mut ancestry = Location::parent(); + + ParaA::execute_with(|| { + // Root can set transact info + assert_ok!(XcmTransactor::set_transact_info( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(Location::parent())), + // Relay charges 1000 for every instruction, and we have 3, so 3000 + 3000.into(), + 20000000000.into(), + // 4 instructions in transact through signed + Some(4000.into()) + )); + // Root can set transact info + assert_ok!(XcmTransactor::set_fee_per_second( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(Location::parent())), + WEIGHT_REF_TIME_PER_SECOND as u128, + )); + ancestry = parachain::UniversalLocation::get().into(); + }); + + // Let's construct the Junction that we will append with DescendOrigin + let signed_origin: Junctions = [AccountKey20 { + network: None, + key: PARAALICE, + }] + .into(); + + let mut descend_origin_multilocation = parachain::SelfLocation::get(); + descend_origin_multilocation + .append_with(signed_origin) + .unwrap(); + + // To convert it to what the relay will see instead of us + descend_origin_multilocation + .reanchor(&Location::parent(), &ancestry.interior) + .unwrap(); + + let derived = xcm_builder::Account32Hash::< + relay_chain::KusamaNetwork, + relay_chain::AccountId, + >::convert_location(&descend_origin_multilocation) + .unwrap(); + + Relay::execute_with(|| { + // free execution, full amount received + assert_ok!(RelayBalances::transfer_allow_death( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + derived.clone(), + 4000004100u128, + )); + // derived account has all funds + assert!(RelayBalances::free_balance(&derived) == 4000004100); + // sovereign account has 0 funds + assert!(RelayBalances::free_balance(¶_a_account()) == 0); + }); + + // Encode the call. Balances transact to para_a_account + // First index + let mut encoded: Vec = Vec::new(); + let index = ::PalletInfo::index::< + relay_chain::Balances, + >() + .unwrap() as u8; + + encoded.push(index); + + // Then call bytes + let mut call_bytes = pallet_balances::Call::::transfer_allow_death { + // 100 to sovereign + dest: para_a_account(), + value: 100u32.into(), + } + .encode(); + encoded.append(&mut call_bytes); + + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::transact_through_signed( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + Box::new(xcm::VersionedLocation::V4(Location::parent())), + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + Location::parent() + ))), + fee_amount: None + }, + encoded, + // 4000000000 for transfer + 4000 for XCM + TransactWeights { + transact_required_weight_at_most: 4000000000.into(), + overall_weight: None + }, + false + )); + }); + + Relay::execute_with(|| { + assert!(RelayBalances::free_balance(¶_a_account()) == 100); + + assert!(RelayBalances::free_balance(&derived) == 0); + }); +} + +#[test] +fn transact_through_signed_multilocation_custom_fee_and_weight() { + MockNet::reset(); + let mut ancestry = Location::parent(); + + ParaA::execute_with(|| { + ancestry = parachain::UniversalLocation::get().into(); + }); + + // Let's construct the Junction that we will append with DescendOrigin + let signed_origin: Junctions = [AccountKey20 { + network: None, + key: PARAALICE, + }] + .into(); + + let mut descend_origin_multilocation = parachain::SelfLocation::get(); + descend_origin_multilocation + .append_with(signed_origin) + .unwrap(); + + // To convert it to what the relay will see instead of us + descend_origin_multilocation + .reanchor(&Location::parent(), &ancestry.interior) + .unwrap(); + + let derived = xcm_builder::Account32Hash::< + relay_chain::KusamaNetwork, + relay_chain::AccountId, + >::convert_location(&descend_origin_multilocation) + .unwrap(); + + Relay::execute_with(|| { + // free execution, full amount received + assert_ok!(RelayBalances::transfer_allow_death( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + derived.clone(), + 4000004100u128, + )); + // derived account has all funds + assert!(RelayBalances::free_balance(&derived) == 4000004100); + // sovereign account has 0 funds + assert!(RelayBalances::free_balance(¶_a_account()) == 0); + }); + + // Encode the call. Balances transact to para_a_account + // First index + let mut encoded: Vec = Vec::new(); + let index = ::PalletInfo::index::< + relay_chain::Balances, + >() + .unwrap() as u8; + + encoded.push(index); + + // Then call bytes + let mut call_bytes = pallet_balances::Call::::transfer_allow_death { + // 100 to sovereign + dest: para_a_account(), + value: 100u32.into(), + } + .encode(); + encoded.append(&mut call_bytes); + + let total_weight = 4000004000u64; + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::transact_through_signed( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + Box::new(xcm::VersionedLocation::V4(Location::parent())), + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + Location::parent() + ))), + fee_amount: Some(total_weight as u128) + }, + encoded, + // 4000000000 for transfer + 4000 for XCM + TransactWeights { + transact_required_weight_at_most: 4000000000.into(), + overall_weight: Some(Limited(total_weight.into())) + }, + false + )); + }); + + Relay::execute_with(|| { + assert!(RelayBalances::free_balance(¶_a_account()) == 100); + + assert!(RelayBalances::free_balance(&derived) == 0); + }); +} + +#[test] +fn transact_through_signed_multilocation_custom_fee_and_weight_refund() { + MockNet::reset(); + let mut ancestry = Location::parent(); + + ParaA::execute_with(|| { + ancestry = parachain::UniversalLocation::get().into(); + }); + + // Let's construct the Junction that we will append with DescendOrigin + let signed_origin: Junctions = [AccountKey20 { + network: None, + key: PARAALICE, + }] + .into(); + + let mut descend_origin_multilocation = parachain::SelfLocation::get(); + descend_origin_multilocation + .append_with(signed_origin) + .unwrap(); + + // To convert it to what the relay will see instead of us + descend_origin_multilocation + .reanchor(&Location::parent(), &ancestry.interior) + .unwrap(); + + let derived = xcm_builder::Account32Hash::< + relay_chain::KusamaNetwork, + relay_chain::AccountId, + >::convert_location(&descend_origin_multilocation) + .unwrap(); + + Relay::execute_with(|| { + // free execution, full amount received + assert_ok!(RelayBalances::transfer_allow_death( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + derived.clone(), + 4000009100u128, + )); + // derived account has all funds + assert!(RelayBalances::free_balance(&derived) == 4000009100); + // sovereign account has 0 funds + assert!(RelayBalances::free_balance(¶_a_account()) == 0); + }); + + // Encode the call. Balances transact to para_a_account + // First index + let mut encoded: Vec = Vec::new(); + let index = ::PalletInfo::index::< + relay_chain::Balances, + >() + .unwrap() as u8; + + encoded.push(index); + + // Then call bytes + let mut call_bytes = pallet_balances::Call::::transfer_allow_death { + // 100 to sovereign + dest: para_a_account(), + value: 100u32.into(), + } + .encode(); + encoded.append(&mut call_bytes); + + let total_weight = 4000009000u64; + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::transact_through_signed( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + Box::new(xcm::VersionedLocation::V4(Location::parent())), + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + Location::parent() + ))), + fee_amount: Some(total_weight as u128) + }, + encoded, + // 4000000000 for transfer + 9000 for XCM + TransactWeights { + transact_required_weight_at_most: 4000000000.into(), + overall_weight: Some(Limited(total_weight.into())) + }, + true + )); + }); + + Relay::execute_with(|| { + // 100 transferred + assert_eq!(RelayBalances::free_balance(¶_a_account()), 100); + + // 4000005186 refunded + assert_eq!(RelayBalances::free_balance(&derived), 4000005186); + }); +} + +#[test] +fn transact_through_signed_multilocation_para_to_para() { + MockNet::reset(); + let mut ancestry = Location::parent(); + + let para_b_location = Location::new(1, [Parachain(2)]); + + let para_b_balances = Location::new(1, [Parachain(2), PalletInstance(1u8)]); + + ParaA::execute_with(|| { + // Root can set transact info + assert_ok!(XcmTransactor::set_transact_info( + parachain::RuntimeOrigin::root(), + // ParaB + Box::new(xcm::VersionedLocation::V4(para_b_location.clone())), + // Para charges 1000 for every instruction, and we have 3, so 3 + 3.into(), + 20000000000.into(), + // 4 instructions in transact through signed + Some(4.into()) + )); + // Root can set transact info + assert_ok!(XcmTransactor::set_fee_per_second( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(para_b_balances.clone())), + parachain::ParaTokensPerSecond::get().1 as u128, + )); + ancestry = parachain::UniversalLocation::get().into(); + }); + + // Let's construct the Junction that we will append with DescendOrigin + let signed_origin: Junctions = [AccountKey20 { + network: None, + key: PARAALICE, + }] + .into(); + + let mut descend_origin_multilocation = parachain::SelfLocation::get(); + descend_origin_multilocation + .append_with(signed_origin) + .unwrap(); + + // To convert it to what the paraB will see instead of us + descend_origin_multilocation + .reanchor(¶_b_location, &ancestry.interior) + .unwrap(); + + let derived = xcm_builder::HashedDescription::< + parachain::AccountId, + xcm_builder::DescribeFamily, + >::convert_location(&descend_origin_multilocation) + .unwrap(); + + ParaB::execute_with(|| { + // free execution, full amount received + assert_ok!(ParaBalances::transfer_allow_death( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + derived.clone(), + 4000000104u128, + )); + // derived account has all funds + assert!(ParaBalances::free_balance(&derived) == 4000000104); + // sovereign account has 0 funds + assert!(ParaBalances::free_balance(¶_a_account_20()) == 0); + }); + + // Encode the call. Balances transact to para_a_account + // First index + let mut encoded: Vec = Vec::new(); + let index = + ::PalletInfo::index::() + .unwrap() as u8; + + encoded.push(index); + + // Then call bytes + let mut call_bytes = pallet_balances::Call::::transfer_allow_death { + // 100 to sovereign + dest: para_a_account_20(), + value: 100u32.into(), + } + .encode(); + encoded.append(&mut call_bytes); + + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::transact_through_signed( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + Box::new(xcm::VersionedLocation::V4(para_b_location)), + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + para_b_balances + ))), + fee_amount: None + }, + encoded, + // 4000000000 for transfer + 4000 for XCM + // 1-1 to fee + TransactWeights { + transact_required_weight_at_most: 4000000000.into(), + overall_weight: None + }, + false + )); + }); + + ParaB::execute_with(|| { + assert!(ParaBalances::free_balance(&derived) == 0); + + assert!(ParaBalances::free_balance(¶_a_account_20()) == 100); + }); +} + +#[test] +fn transact_through_signed_multilocation_para_to_para_refund() { + MockNet::reset(); + let mut ancestry = Location::parent(); + + let para_b_location = Location::new(1, [Parachain(2)]); + + let para_b_balances = Location::new(1, [Parachain(2), PalletInstance(1u8)]); + + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::set_fee_per_second( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(para_b_balances.clone())), + parachain::ParaTokensPerSecond::get().1 as u128, + )); + ancestry = parachain::UniversalLocation::get().into(); + }); + + // Let's construct the Junction that we will append with DescendOrigin + let signed_origin: Junctions = [AccountKey20 { + network: None, + key: PARAALICE, + }] + .into(); + + let mut descend_origin_multilocation = parachain::SelfLocation::get(); + descend_origin_multilocation + .append_with(signed_origin) + .unwrap(); + + // To convert it to what the paraB will see instead of us + descend_origin_multilocation + .reanchor(¶_b_location, &ancestry.interior) + .unwrap(); + + let derived = xcm_builder::HashedDescription::< + parachain::AccountId, + xcm_builder::DescribeFamily, + >::convert_location(&descend_origin_multilocation) + .unwrap(); + + ParaB::execute_with(|| { + // free execution, full amount received + assert_ok!(ParaBalances::transfer_allow_death( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + derived.clone(), + 4000009100u128, + )); + // derived account has all funds + assert!(ParaBalances::free_balance(&derived) == 4000009100); + // sovereign account has 0 funds + assert!(ParaBalances::free_balance(¶_a_account_20()) == 0); + }); + + // Encode the call. Balances transact to para_a_account + // First index + let mut encoded: Vec = Vec::new(); + let index = + ::PalletInfo::index::() + .unwrap() as u8; + + encoded.push(index); + + // Then call bytes + let mut call_bytes = pallet_balances::Call::::transfer_allow_death { + // 100 to sovereign + dest: para_a_account_20(), + value: 100u32.into(), + } + .encode(); + encoded.append(&mut call_bytes); + + let overall_weight = 4000009000u64; + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::transact_through_signed( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + Box::new(xcm::VersionedLocation::V4(para_b_location)), + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + para_b_balances + ))), + fee_amount: Some(overall_weight as u128) + }, + encoded, + // 4000000000 for transfer + 9000 for XCM + TransactWeights { + transact_required_weight_at_most: 4000000000.into(), + overall_weight: Some(Limited(overall_weight.into())) + }, + true + )); + }); + + ParaB::execute_with(|| { + // Check the derived account was refunded + assert_eq!(ParaBalances::free_balance(&derived), 8993); + + // Check the transfer was executed + assert_eq!(ParaBalances::free_balance(¶_a_account_20()), 100); + }); +} + +#[test] +fn transact_through_signed_multilocation_para_to_para_ethereum() { + MockNet::reset(); + let mut ancestry = Location::parent(); + + let para_b_location = Location::new(1, [Parachain(2)]); + + let para_b_balances = Location::new(1, [Parachain(2), PalletInstance(1u8)]); + + ParaA::execute_with(|| { + // Root can set transact info + assert_ok!(XcmTransactor::set_transact_info( + parachain::RuntimeOrigin::root(), + // ParaB + Box::new(xcm::VersionedLocation::V4(para_b_location.clone())), + // Para charges 1000 for every instruction, and we have 3, so 3 + 3.into(), + 20000000000.into(), + // 4 instructions in transact through signed + Some(4.into()) + )); + // Root can set transact info + assert_ok!(XcmTransactor::set_fee_per_second( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(para_b_balances.clone())), + parachain::ParaTokensPerSecond::get().1 as u128, + )); + ancestry = parachain::UniversalLocation::get().into(); + }); + + // Let's construct the Junction that we will append with DescendOrigin + let signed_origin: Junctions = [AccountKey20 { + network: None, + key: PARAALICE, + }] + .into(); + + let mut descend_origin_multilocation = parachain::SelfLocation::get(); + descend_origin_multilocation + .append_with(signed_origin) + .unwrap(); + + // To convert it to what the paraB will see instead of us + descend_origin_multilocation + .reanchor(¶_b_location, &ancestry.interior) + .unwrap(); + + let derived = xcm_builder::HashedDescription::< + parachain::AccountId, + xcm_builder::DescribeFamily, + >::convert_location(&descend_origin_multilocation) + .unwrap(); + + let mut parachain_b_alice_balances_before = 0; + ParaB::execute_with(|| { + assert_ok!(ParaBalances::transfer_allow_death( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + derived.clone(), + 4000000104u128, + )); + // derived account has all funds + assert!(ParaBalances::free_balance(&derived) == 4000000104); + // sovereign account has 0 funds + assert!(ParaBalances::free_balance(¶_a_account_20()) == 0); + + parachain_b_alice_balances_before = ParaBalances::free_balance(&PARAALICE.into()) + }); + + // Encode the call. Balances transact to para_a_account + // First index + let mut encoded: Vec = Vec::new(); + let index = + ::PalletInfo::index::() + .unwrap() as u8; + + encoded.push(index); + + use sp_core::U256; + // Let's do a EVM transfer + let eth_tx = + xcm_primitives::EthereumXcmTransaction::V1(xcm_primitives::EthereumXcmTransactionV1 { + gas_limit: U256::from(21000), + fee_payment: xcm_primitives::EthereumXcmFee::Auto, + action: pallet_ethereum::TransactionAction::Call(PARAALICE.into()), + value: U256::from(100), + input: BoundedVec::< + u8, + ConstU32<{ xcm_primitives::MAX_ETHEREUM_XCM_INPUT_SIZE }> + >::try_from(vec![]).unwrap(), + access_list: None, + }); + + // Then call bytes + let mut call_bytes = pallet_ethereum_xcm::Call::::transact { + xcm_transaction: eth_tx, + } + .encode(); + encoded.append(&mut call_bytes); + + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::transact_through_signed( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + Box::new(xcm::VersionedLocation::V4(para_b_location)), + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + para_b_balances + ))), + fee_amount: None + }, + encoded, + // 4000000000 for transfer + 4000 for XCM + // 1-1 to fee + TransactWeights { + transact_required_weight_at_most: 4000000000.into(), + overall_weight: None + }, + false + )); + }); + + ParaB::execute_with(|| { + // Make sure the EVM transfer went through + assert!( + ParaBalances::free_balance(&PARAALICE.into()) + == parachain_b_alice_balances_before + 100 + ); + }); +} + +#[test] +fn transact_through_signed_multilocation_para_to_para_ethereum_no_proxy_fails() { + MockNet::reset(); + let mut ancestry = Location::parent(); + + let para_b_location = Location::new(1, [Parachain(2)]); + + let para_b_balances = Location::new(1, [Parachain(2), PalletInstance(1u8)]); + + ParaA::execute_with(|| { + // Root can set transact info + assert_ok!(XcmTransactor::set_transact_info( + parachain::RuntimeOrigin::root(), + // ParaB + Box::new(xcm::VersionedLocation::V4(para_b_location.clone())), + // Para charges 1000 for every instruction, and we have 3, so 3 + 3.into(), + 20000000000.into(), + // 4 instructions in transact through signed + Some(4.into()) + )); + // Root can set transact info + assert_ok!(XcmTransactor::set_fee_per_second( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(para_b_balances.clone())), + parachain::ParaTokensPerSecond::get().1 as u128, + )); + ancestry = parachain::UniversalLocation::get().into(); + }); + + // Let's construct the Junction that we will append with DescendOrigin + let signed_origin: Junctions = [AccountKey20 { + network: None, + key: PARAALICE, + }] + .into(); + + let mut descend_origin_multilocation = parachain::SelfLocation::get(); + descend_origin_multilocation + .append_with(signed_origin) + .unwrap(); + + // To convert it to what the paraB will see instead of us + descend_origin_multilocation + .reanchor(¶_b_location, &ancestry.interior) + .unwrap(); + + let derived = xcm_builder::HashedDescription::< + parachain::AccountId, + xcm_builder::DescribeFamily, + >::convert_location(&descend_origin_multilocation) + .unwrap(); + + let mut parachain_b_alice_balances_before = 0; + ParaB::execute_with(|| { + assert_ok!(ParaBalances::transfer_allow_death( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + derived.clone(), + 4000000104u128, + )); + // derived account has all funds + assert!(ParaBalances::free_balance(&derived) == 4000000104); + // sovereign account has 0 funds + assert!(ParaBalances::free_balance(¶_a_account_20()) == 0); + + parachain_b_alice_balances_before = ParaBalances::free_balance(&PARAALICE.into()) + }); + + // Encode the call. Balances transact to para_a_account + // First index + let mut encoded: Vec = Vec::new(); + let index = + ::PalletInfo::index::() + .unwrap() as u8; + + encoded.push(index); + + use sp_core::U256; + // Let's do a EVM transfer + let eth_tx = + xcm_primitives::EthereumXcmTransaction::V1(xcm_primitives::EthereumXcmTransactionV1 { + gas_limit: U256::from(21000), + fee_payment: xcm_primitives::EthereumXcmFee::Auto, + action: pallet_ethereum::TransactionAction::Call(PARAALICE.into()), + value: U256::from(100), + input: BoundedVec::< + u8, + ConstU32<{ xcm_primitives::MAX_ETHEREUM_XCM_INPUT_SIZE }> + >::try_from(vec![]).unwrap(), + access_list: None, + }); + + // Then call bytes + let mut call_bytes = pallet_ethereum_xcm::Call::::transact_through_proxy { + transact_as: PARAALICE.into(), + xcm_transaction: eth_tx, + } + .encode(); + encoded.append(&mut call_bytes); + + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::transact_through_signed( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + Box::new(xcm::VersionedLocation::V4(para_b_location)), + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + para_b_balances + ))), + fee_amount: None + }, + encoded, + TransactWeights { + transact_required_weight_at_most: 4000000000.into(), + overall_weight: None + }, + false + )); + }); + + ParaB::execute_with(|| { + // Make sure the EVM transfer wasn't executed + assert!(ParaBalances::free_balance(&PARAALICE.into()) == parachain_b_alice_balances_before); + }); +} + +#[test] +fn transact_through_signed_multilocation_para_to_para_ethereum_proxy_succeeds() { + MockNet::reset(); + let mut ancestry = Location::parent(); + + let para_b_location = Location::new(1, [Parachain(2)]); + + let para_b_balances = Location::new(1, [Parachain(2), PalletInstance(1u8)]); + + ParaA::execute_with(|| { + // Root can set transact info + assert_ok!(XcmTransactor::set_transact_info( + parachain::RuntimeOrigin::root(), + // ParaB + Box::new(xcm::VersionedLocation::V4(para_b_location.clone())), + // Para charges 1000 for every instruction, and we have 3, so 3 + 3.into(), + 20000000000.into(), + // 4 instructions in transact through signed + Some(4.into()) + )); + // Root can set transact info + assert_ok!(XcmTransactor::set_fee_per_second( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(para_b_balances.clone())), + parachain::ParaTokensPerSecond::get().1 as u128, + )); + ancestry = parachain::UniversalLocation::get().into(); + }); + + // Let's construct the Junction that we will append with DescendOrigin + let signed_origin: Junctions = [AccountKey20 { + network: None, + key: PARAALICE, + }] + .into(); + + let mut descend_origin_multilocation = parachain::SelfLocation::get(); + descend_origin_multilocation + .append_with(signed_origin) + .unwrap(); + + // To convert it to what the paraB will see instead of us + descend_origin_multilocation + .reanchor(¶_b_location, &ancestry.interior) + .unwrap(); + + let derived = xcm_builder::HashedDescription::< + parachain::AccountId, + xcm_builder::DescribeFamily, + >::convert_location(&descend_origin_multilocation) + .unwrap(); + + let transfer_recipient = evm_account(); + let mut transfer_recipient_balance_before = 0; + ParaB::execute_with(|| { + assert_ok!(ParaBalances::transfer_allow_death( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + derived.clone(), + 4000000104u128, + )); + // derived account has all funds + assert!(ParaBalances::free_balance(&derived) == 4000000104); + // sovereign account has 0 funds + assert!(ParaBalances::free_balance(¶_a_account_20()) == 0); + + transfer_recipient_balance_before = ParaBalances::free_balance(&transfer_recipient.into()); + + // Add proxy ALICE -> derived + let _ = parachain::Proxy::add_proxy_delegate( + &PARAALICE.into(), + derived, + parachain::ProxyType::Any, + 0, + ); + }); + + // Encode the call. Balances transact to para_a_account + // First index + let mut encoded: Vec = Vec::new(); + let index = + ::PalletInfo::index::() + .unwrap() as u8; + + encoded.push(index); + + use sp_core::U256; + // Let's do a EVM transfer + let eth_tx = + xcm_primitives::EthereumXcmTransaction::V2(xcm_primitives::EthereumXcmTransactionV2 { + gas_limit: U256::from(21000), + action: pallet_ethereum::TransactionAction::Call(transfer_recipient.into()), + value: U256::from(100), + input: BoundedVec::< + u8, + ConstU32<{ xcm_primitives::MAX_ETHEREUM_XCM_INPUT_SIZE }> + >::try_from(vec![]).unwrap(), + access_list: None, + }); + + // Then call bytes + let mut call_bytes = pallet_ethereum_xcm::Call::::transact_through_proxy { + transact_as: PARAALICE.into(), + xcm_transaction: eth_tx, + } + .encode(); + encoded.append(&mut call_bytes); + + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::transact_through_signed( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + Box::new(xcm::VersionedLocation::V4(para_b_location)), + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + para_b_balances + ))), + fee_amount: None + }, + encoded, + TransactWeights { + transact_required_weight_at_most: 4000000000.into(), + overall_weight: None + }, + false + )); + }); + + ParaB::execute_with(|| { + // Make sure the EVM transfer was executed + assert!( + ParaBalances::free_balance(&transfer_recipient.into()) + == transfer_recipient_balance_before + 100 + ); + }); +} + +#[test] +fn hrmp_init_accept_through_root() { + MockNet::reset(); + + Relay::execute_with(|| { + assert_ok!(RelayBalances::transfer_allow_death( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + para_a_account(), + 1000u128 + )); + assert_ok!(RelayBalances::transfer_allow_death( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + para_b_account(), + 1000u128 + )); + }); + + ParaA::execute_with(|| { + let total_fee = 1_000u128; + let total_weight: u64 = 1_000_000_000; + let tx_weight: u64 = 500_000_000; + // Root can send hrmp init channel + assert_ok!(XcmTransactor::hrmp_manage( + parachain::RuntimeOrigin::root(), + HrmpOperation::InitOpen(HrmpInitParams { + para_id: 2u32.into(), + proposed_max_capacity: 1, + proposed_max_message_size: 1 + }), + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + Location::parent() + ))), + fee_amount: Some(total_fee) + }, + TransactWeights { + transact_required_weight_at_most: tx_weight.into(), + overall_weight: Some(Limited(total_weight.into())) + } + )); + }); + Relay::execute_with(|| { + let expected_event: relay_chain::RuntimeEvent = + polkadot_runtime_parachains::hrmp::Event::OpenChannelRequested { + sender: 1u32.into(), + recipient: 2u32.into(), + proposed_max_capacity: 1u32, + proposed_max_message_size: 1u32, + } + .into(); + assert!(relay_chain::relay_events().contains(&expected_event)); + }); + ParaB::execute_with(|| { + let total_fee = 1_000u128; + let total_weight: u64 = 1_000_000_000; + let tx_weight: u64 = 500_000_000; + // Root can send hrmp accept channel + assert_ok!(XcmTransactor::hrmp_manage( + parachain::RuntimeOrigin::root(), + HrmpOperation::Accept { + para_id: 1u32.into() + }, + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + Location::parent() + ))), + fee_amount: Some(total_fee) + }, + TransactWeights { + transact_required_weight_at_most: tx_weight.into(), + overall_weight: Some(Limited(total_weight.into())) + } + )); + }); + + Relay::execute_with(|| { + let expected_event: relay_chain::RuntimeEvent = + polkadot_runtime_parachains::hrmp::Event::OpenChannelAccepted { + sender: 1u32.into(), + recipient: 2u32.into(), + } + .into(); + assert!(relay_chain::relay_events().contains(&expected_event)); + }); +} + +#[test] +fn hrmp_close_works() { + MockNet::reset(); + + Relay::execute_with(|| { + assert_ok!(RelayBalances::transfer_allow_death( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + para_a_account(), + 1000u128 + )); + assert_ok!(Hrmp::force_open_hrmp_channel( + relay_chain::RuntimeOrigin::root(), + 1u32.into(), + 2u32.into(), + 1u32, + 1u32 + )); + assert_ok!(Hrmp::force_process_hrmp_open( + relay_chain::RuntimeOrigin::root(), + 1u32 + )); + }); + + ParaA::execute_with(|| { + let total_fee = 1_000u128; + let total_weight: u64 = 1_000_000_000; + let tx_weight: u64 = 500_000_000; + assert_ok!(XcmTransactor::hrmp_manage( + parachain::RuntimeOrigin::root(), + HrmpOperation::Close(HrmpChannelId { + sender: 1u32.into(), + recipient: 2u32.into() + }), + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + Location::parent() + ))), + fee_amount: Some(total_fee) + }, + TransactWeights { + transact_required_weight_at_most: tx_weight.into(), + overall_weight: Some(Limited(total_weight.into())) + } + )); + }); + Relay::execute_with(|| { + let expected_event: relay_chain::RuntimeEvent = + polkadot_runtime_parachains::hrmp::Event::ChannelClosed { + by_parachain: 1u32.into(), + channel_id: HrmpChannelId { + sender: 1u32.into(), + recipient: 2u32.into(), + }, + } + .into(); + assert!(relay_chain::relay_events().contains(&expected_event)); + }); +} + +use parity_scale_codec::{Decode, Encode}; +use sp_io::hashing::blake2_256; + +// Helper to derive accountIds +pub fn derivative_account_id(who: sp_runtime::AccountId32, index: u16) -> sp_runtime::AccountId32 { + let entropy = (b"modlpy/utilisuba", who, index).using_encoded(blake2_256); + sp_runtime::AccountId32::decode(&mut &entropy[..]).expect("valid account id") +} diff --git a/tracing/3001/runtime/moonbeam/Cargo.toml b/tracing/3001/runtime/moonbeam/Cargo.toml new file mode 100644 index 00000000..6524e30c --- /dev/null +++ b/tracing/3001/runtime/moonbeam/Cargo.toml @@ -0,0 +1,404 @@ +[package] +authors = { workspace = true } +build = "build.rs" +description = "Moonbeam Runtime" +edition = "2021" +homepage = "https://moonbeam.network" +license = "GPL-3.0-only" +name = "moonbeam-runtime" +version = "0.8.4" + +[dependencies] +hex-literal = { workspace = true, optional = true } +log = { workspace = true } +num_enum = { workspace = true } +rlp = { workspace = true, optional = true } +serde = { workspace = true, features = ["derive"] } +sha3 = { workspace = true, optional = true } +smallvec = { workspace = true } +strum = { workspace = true } +strum_macros = { workspace = true } + +# Moonbeam +account = { workspace = true } +moonbeam-core-primitives = { workspace = true } +moonbeam-relay-encoder = { workspace = true } +moonbeam-runtime-common = { workspace = true } +precompile-utils = { workspace = true } +session-keys-primitives = { workspace = true } +xcm-primitives = { workspace = true } + +# Moonbeam pallets +moonbeam-xcm-benchmarks = { workspace = true } +pallet-asset-manager = { workspace = true } +pallet-author-mapping = { workspace = true } +pallet-crowdloan-rewards = { workspace = true } +pallet-erc20-xcm-bridge = { workspace = true } +pallet-ethereum-xcm = { workspace = true } +pallet-evm-chain-id = { workspace = true } +pallet-maintenance-mode = { workspace = true, features = ["xcm-support"] } +pallet-migrations = { workspace = true } +pallet-moonbeam-lazy-migrations = { workspace = true } +pallet-moonbeam-orbiters = { workspace = true } +pallet-parachain-staking = { workspace = true } +pallet-precompile-benchmarks = { workspace = true } +pallet-proxy-genesis-companion = { workspace = true } +pallet-randomness = { workspace = true } +pallet-xcm-transactor = { workspace = true } + +# Moonbeam precompiles +pallet-evm-precompile-author-mapping = { workspace = true } +pallet-evm-precompile-balances-erc20 = { workspace = true } +pallet-evm-precompile-batch = { workspace = true } +pallet-evm-precompile-call-permit = { workspace = true } +pallet-evm-precompile-collective = { workspace = true } +pallet-evm-precompile-conviction-voting = { workspace = true } +pallet-evm-precompile-crowdloan-rewards = { workspace = true } +pallet-evm-precompile-gmp = { workspace = true } +pallet-evm-precompile-identity = { workspace = true } +pallet-evm-precompile-parachain-staking = { workspace = true } +pallet-evm-precompile-preimage = { workspace = true } +pallet-evm-precompile-proxy = { workspace = true } +pallet-evm-precompile-randomness = { workspace = true } +pallet-evm-precompile-referenda = { workspace = true } +pallet-evm-precompile-registry = { workspace = true } +pallet-evm-precompile-relay-encoder = { workspace = true } +pallet-evm-precompile-relay-verifier = { workspace = true } +pallet-evm-precompile-xcm-transactor = { workspace = true } +pallet-evm-precompile-xcm-utils = { workspace = true } +pallet-evm-precompile-xtokens = { workspace = true } +pallet-evm-precompileset-assets-erc20 = { workspace = true } + +# Moonbeam tracing +evm-tracing-events = { workspace = true, optional = true } +moonbeam-evm-tracer = { workspace = true, optional = true } +moonbeam-rpc-primitives-debug = { workspace = true } +moonbeam-rpc-primitives-txpool = { workspace = true } + +# Substrate +frame-executive = { workspace = true } +frame-support = { workspace = true } +frame-system = { workspace = true } +frame-system-rpc-runtime-api = { workspace = true } +pallet-assets = { workspace = true } +pallet-balances = { workspace = true, features = ["insecure_zero_ed"] } +pallet-collective = { workspace = true } +pallet-conviction-voting = { workspace = true } +pallet-identity = { workspace = true } +pallet-multisig = { workspace = true } +pallet-preimage = { workspace = true } +pallet-proxy = { workspace = true } +pallet-referenda = { workspace = true } +pallet-root-testing = { workspace = true } +pallet-scheduler = { workspace = true } +pallet-society = { workspace = true } +pallet-timestamp = { workspace = true } +pallet-transaction-payment = { workspace = true } +pallet-transaction-payment-rpc-runtime-api = { workspace = true } +pallet-treasury = { workspace = true } +pallet-utility = { workspace = true } +pallet-whitelist = { workspace = true } +parity-scale-codec = { workspace = true, features = [ + "derive", + "max-encoded-len", + "chain-error", +] } +scale-info = { workspace = true, features = ["derive"] } +sp-api = { workspace = true } +sp-block-builder = { workspace = true } +sp-consensus-slots = { workspace = true } +sp-core = { workspace = true } +sp-inherents = { workspace = true } +sp-io = { workspace = true, features = ["improved_panic_error_reporting"] } +sp-offchain = { workspace = true } +sp-runtime = { workspace = true } +sp-session = { workspace = true } +sp-std = { workspace = true } +sp-transaction-pool = { workspace = true } +sp-version = { workspace = true } +sp-weights = { workspace = true } +sp-genesis-builder = { workspace = true } + +# Frontier +fp-evm = { workspace = true } +fp-rpc = { workspace = true } +fp-self-contained = { workspace = true, features = ["serde"] } +pallet-ethereum = { workspace = true, features = ["forbid-evm-reentrancy"] } +pallet-evm = { workspace = true, features = ["forbid-evm-reentrancy"] } +pallet-evm-precompile-blake2 = { workspace = true } +pallet-evm-precompile-bn128 = { workspace = true } +pallet-evm-precompile-dispatch = { workspace = true } +pallet-evm-precompile-modexp = { workspace = true } +pallet-evm-precompile-sha3fips = { workspace = true } +pallet-evm-precompile-simple = { workspace = true } + +# Polkadot / XCM +orml-traits = { workspace = true } +orml-xcm-support = { workspace = true } +orml-xtokens = { workspace = true } +pallet-xcm = { workspace = true } +pallet-xcm-benchmarks = { workspace = true, optional = true } +pallet-message-queue = { workspace = true } +polkadot-core-primitives = { workspace = true } +polkadot-runtime-common = { workspace = true } +polkadot-parachain = { workspace = true } +xcm = { workspace = true } +xcm-builder = { workspace = true } +xcm-executor = { workspace = true } + +# Cumulus +cumulus-pallet-dmp-queue = { workspace = true } +cumulus-pallet-parachain-system = { workspace = true } +cumulus-pallet-xcm = { workspace = true } +cumulus-pallet-xcmp-queue = { workspace = true } +cumulus-primitives-core = { workspace = true } +cumulus-primitives-timestamp = { workspace = true } +cumulus-primitives-utility = { workspace = true } +parachain-info = { workspace = true } +parachains-common = { workspace = true } + +# Moonkit +async-backing-primitives = { workspace = true } +moonkit-xcm-primitives = { workspace = true } +nimbus-primitives = { workspace = true } +pallet-async-backing = { workspace = true } +pallet-author-inherent = { workspace = true } +pallet-author-slot-filter = { workspace = true } +pallet-relay-storage-roots = { workspace = true } + +# Benchmarking +frame-benchmarking = { workspace = true, optional = true } +frame-system-benchmarking = { workspace = true, optional = true } +frame-try-runtime = { workspace = true, optional = true } + +[build-dependencies] +substrate-wasm-builder = { workspace = true } + +[features] +default = ["std", "evm-tracing"] +std = [ + "account/std", + "async-backing-primitives/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", + "evm-tracing-events/std", + "fp-evm/std", + "fp-rpc/std", + "fp-self-contained/std", + "frame-benchmarking/std", + "frame-executive/std", + "frame-support/std", + "frame-system-rpc-runtime-api/std", + "frame-system/std", + "moonbeam-core-primitives/std", + "moonbeam-evm-tracer/std", + "moonbeam-relay-encoder/std", + "moonbeam-rpc-primitives-debug/std", + "moonbeam-rpc-primitives-txpool/std", + "moonbeam-runtime-common/std", + "moonbeam-xcm-benchmarks/std", + "moonkit-xcm-primitives/std", + "nimbus-primitives/std", + "orml-xtokens/std", + "pallet-asset-manager/std", + "pallet-assets/std", + "pallet-async-backing/std", + "pallet-author-inherent/std", + "pallet-author-mapping/std", + "pallet-author-slot-filter/std", + "pallet-balances/std", + "pallet-collective/std", + "pallet-conviction-voting/std", + "pallet-crowdloan-rewards/std", + "pallet-erc20-xcm-bridge/std", + "pallet-evm-chain-id/std", + "pallet-ethereum-xcm/std", + "pallet-ethereum/std", + "pallet-evm-precompile-author-mapping/std", + "pallet-evm-precompile-balances-erc20/std", + "pallet-evm-precompile-batch/std", + "pallet-evm-precompile-call-permit/std", + "pallet-evm-precompile-collective/std", + "pallet-evm-precompile-conviction-voting/std", + "pallet-evm-precompile-parachain-staking/std", + "pallet-evm-precompile-preimage/std", + "pallet-evm-precompile-randomness/std", + "pallet-evm-precompile-referenda/std", + "pallet-evm-precompile-relay-encoder/std", + "pallet-evm-precompile-relay-verifier/std", + "pallet-evm-precompile-xcm-transactor/std", + "pallet-evm-precompile-xcm-utils/std", + "pallet-evm-precompile-xtokens/std", + "pallet-evm-precompileset-assets-erc20/std", + "pallet-evm/std", + "pallet-identity/std", + "pallet-maintenance-mode/std", + "pallet-migrations/std", + "pallet-moonbeam-lazy-migrations/std", + "pallet-moonbeam-orbiters/std", + "pallet-multisig/std", + "pallet-parachain-staking/std", + "pallet-precompile-benchmarks/std", + "pallet-preimage/std", + "pallet-proxy-genesis-companion/std", + "pallet-proxy/std", + "pallet-randomness/std", + "pallet-referenda/std", + "pallet-relay-storage-roots/std", + "pallet-root-testing/std", + "pallet-scheduler/std", + "pallet-society/std", + "pallet-timestamp/std", + "pallet-transaction-payment-rpc-runtime-api/std", + "pallet-transaction-payment/std", + "pallet-treasury/std", + "pallet-utility/std", + "pallet-whitelist/std", + "pallet-xcm-transactor/std", + "pallet-xcm/std", + "parachain-info/std", + "parachains-common/std", + "parity-scale-codec/std", + "precompile-utils/std", + "scale-info/std", + "session-keys-primitives/std", + "sp-api/std", + "sp-block-builder/std", + "sp-consensus-slots/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", + "sp-genesis-builder/std", + "strum/std", + "xcm-builder/std", + "xcm-executor/std", + "xcm-primitives/std", + "xcm/std", +] +evm-tracing = ["evm-tracing-events", "moonbeam-evm-tracer", "rlp", "sha3"] + +# Will be enabled by the `wasm-builder` when building the runtime for WASM. +runtime-wasm = [] + +# A feature that should be enabled when the runtime should be build for on-chain +# deployment. This will disable stuff that shouldn't be part of the on-chain wasm +# to make it smaller like logging for example. +on-chain-release-build = ["sp-api/disable-logging"] + +runtime-benchmarks = [ + "cumulus-pallet-parachain-system/runtime-benchmarks", + "cumulus-primitives-core/runtime-benchmarks", + "frame-benchmarking", + "frame-benchmarking/runtime-benchmarks", + "frame-support/runtime-benchmarks", + "frame-system-benchmarking/runtime-benchmarks", + "frame-system/runtime-benchmarks", + "hex-literal", + "moonbeam-relay-encoder/runtime-benchmarks", + "moonbeam-runtime-common/runtime-benchmarks", + "moonbeam-xcm-benchmarks/runtime-benchmarks", + "parachains-common/runtime-benchmarks", + "pallet-asset-manager/runtime-benchmarks", + "pallet-assets/runtime-benchmarks", + "pallet-author-inherent/runtime-benchmarks", + "pallet-author-mapping/runtime-benchmarks", + "pallet-author-slot-filter/runtime-benchmarks", + "pallet-balances/runtime-benchmarks", + "pallet-collective/runtime-benchmarks", + "pallet-conviction-voting/runtime-benchmarks", + "pallet-crowdloan-rewards/runtime-benchmarks", + "pallet-ethereum-xcm/runtime-benchmarks", + "pallet-ethereum/runtime-benchmarks", + "pallet-evm/runtime-benchmarks", + "pallet-identity/runtime-benchmarks", + "pallet-migrations/runtime-benchmarks", + "pallet-moonbeam-lazy-migrations/runtime-benchmarks", + "pallet-moonbeam-orbiters/runtime-benchmarks", + "pallet-multisig/runtime-benchmarks", + "pallet-parachain-staking/runtime-benchmarks", + "pallet-precompile-benchmarks/runtime-benchmarks", + "pallet-preimage/runtime-benchmarks", + "pallet-proxy/runtime-benchmarks", + "pallet-randomness/runtime-benchmarks", + "pallet-referenda/runtime-benchmarks", + "pallet-relay-storage-roots/runtime-benchmarks", + "pallet-scheduler/runtime-benchmarks", + "pallet-society/runtime-benchmarks", + "pallet-timestamp/runtime-benchmarks", + "pallet-treasury/runtime-benchmarks", + "pallet-utility/runtime-benchmarks", + "pallet-whitelist/runtime-benchmarks", + "pallet-xcm-benchmarks/runtime-benchmarks", + "pallet-xcm-transactor/runtime-benchmarks", + "pallet-xcm/runtime-benchmarks", + "session-keys-primitives/runtime-benchmarks", + "sp-runtime/runtime-benchmarks", + "xcm-builder/runtime-benchmarks", +] + +try-runtime = [ + "cumulus-pallet-parachain-system/try-runtime", + "cumulus-pallet-xcmp-queue/try-runtime", + "cumulus-pallet-xcm/try-runtime", + "cumulus-pallet-dmp-queue/try-runtime", + "fp-self-contained/try-runtime", + "frame-executive/try-runtime", + "frame-system/try-runtime", + "frame-try-runtime", + "moonbeam-runtime-common/try-runtime", + "pallet-asset-manager/try-runtime", + "pallet-async-backing/try-runtime", + "pallet-author-mapping/try-runtime", + "pallet-author-slot-filter/try-runtime", + "pallet-balances/try-runtime", + "pallet-collective/try-runtime", + "pallet-conviction-voting/try-runtime", + "pallet-maintenance-mode/try-runtime", + "pallet-migrations/try-runtime", + "pallet-moonbeam-lazy-migrations/try-runtime", + "pallet-parachain-staking/try-runtime", + "pallet-precompile-benchmarks/try-runtime", + "pallet-preimage/try-runtime", + "pallet-referenda/try-runtime", + "pallet-relay-storage-roots/try-runtime", + "pallet-root-testing/try-runtime", + "pallet-scheduler/try-runtime", + "pallet-society/try-runtime", + "pallet-timestamp/try-runtime", + "pallet-whitelist/try-runtime", + "pallet-xcm/try-runtime", + "pallet-message-queue/try-runtime", + "pallet-utility/try-runtime", + "pallet-transaction-payment/try-runtime", + "parachain-info/try-runtime", + "pallet-evm-chain-id/try-runtime", + "parachain-info/try-runtime", + "pallet-evm/try-runtime", + "pallet-ethereum/try-runtime", + "pallet-treasury/try-runtime", + "pallet-author-inherent/try-runtime", + "pallet-crowdloan-rewards/try-runtime", + "pallet-proxy/try-runtime", + "pallet-identity/try-runtime", + "orml-xtokens/try-runtime", + "pallet-assets/try-runtime", + "pallet-xcm-transactor/try-runtime", + "pallet-proxy-genesis-companion/try-runtime", + "pallet-moonbeam-orbiters/try-runtime", + "pallet-ethereum-xcm/try-runtime", + "pallet-randomness/try-runtime", + "pallet-whitelist/try-runtime", + "pallet-erc20-xcm-bridge/try-runtime", + "pallet-multisig/try-runtime", +] diff --git a/tracing/3001/runtime/moonbeam/build.rs b/tracing/3001/runtime/moonbeam/build.rs new file mode 100644 index 00000000..3934b9c5 --- /dev/null +++ b/tracing/3001/runtime/moonbeam/build.rs @@ -0,0 +1,25 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +use substrate_wasm_builder::WasmBuilder; + +fn main() { + WasmBuilder::new() + .with_current_project() + .export_heap_base() + .import_memory() + .build() +} diff --git a/tracing/3001/runtime/moonbeam/src/asset_config.rs b/tracing/3001/runtime/moonbeam/src/asset_config.rs new file mode 100644 index 00000000..200841c5 --- /dev/null +++ b/tracing/3001/runtime/moonbeam/src/asset_config.rs @@ -0,0 +1,216 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Asset configuration for Moonbase. +//! + +use super::{ + currency, governance, xcm_config, AccountId, AssetId, AssetManager, Assets, Balance, Balances, + OpenTechCommitteeInstance, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, + FOREIGN_ASSET_PRECOMPILE_ADDRESS_PREFIX, +}; + +use frame_support::{ + dispatch::GetDispatchInfo, + parameter_types, + traits::{AsEnsureOriginWithArg, ConstU128, ConstU32, EitherOfDiverse}, + weights::Weight, +}; +use moonbeam_runtime_common::weights as moonbeam_weights; +use moonkit_xcm_primitives::AccountIdAssetIdConversion; + +use frame_system::{EnsureNever, EnsureRoot}; +use sp_core::H160; + +use parity_scale_codec::{Compact, Decode, Encode}; +use scale_info::TypeInfo; + +use sp_std::{ + convert::{From, Into}, + prelude::*, +}; + +// Number of items that can be destroyed with our configured max extrinsic proof size. +// x = (a - b) / c where: +// a: maxExtrinsic proof size +// b: base proof size for destroy_accounts in pallet_assets weights +// c: proof size for each item +// 656.87 = (3_407_872 - 8232) / 5180 +const REMOVE_ITEMS_LIMIT: u32 = 656; + +// Not to disrupt the previous asset instance, we assign () to Foreign +pub type ForeignAssetInstance = (); + +// For foreign assets, these parameters dont matter much +// as this will only be called by root with the forced arguments +// No deposit is substracted with those methods +parameter_types! { + pub const AssetDeposit: Balance = 100 * currency::GLMR * currency::SUPPLY_FACTOR; + pub const ApprovalDeposit: Balance = 0; + pub const AssetsStringLimit: u32 = 50; + pub const MetadataDepositBase: Balance = currency::deposit(1,68); + pub const MetadataDepositPerByte: Balance = currency::deposit(0, 1); +} + +/// We allow Root and General Admin to execute privileged asset operations. +pub type AssetsForceOrigin = + EitherOfDiverse, governance::custom_origins::GeneralAdmin>; + +// Required for runtime benchmarks +pallet_assets::runtime_benchmarks_enabled! { + pub struct BenchmarkHelper; + impl pallet_assets::BenchmarkHelper for BenchmarkHelper + where + AssetIdParameter: From, + { + fn create_asset_id_parameter(id: u32) -> AssetIdParameter { + (id as u128).into() + } + } +} + +// Foreign assets +impl pallet_assets::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Balance = Balance; + type AssetId = AssetId; + type Currency = Balances; + type ForceOrigin = AssetsForceOrigin; + type AssetDeposit = AssetDeposit; + type MetadataDepositBase = MetadataDepositBase; + type MetadataDepositPerByte = MetadataDepositPerByte; + type ApprovalDeposit = ApprovalDeposit; + type StringLimit = AssetsStringLimit; + type Freezer = (); + type Extra = (); + type AssetAccountDeposit = ConstU128<{ currency::deposit(1, 18) }>; + type WeightInfo = moonbeam_weights::pallet_assets::WeightInfo; + type RemoveItemsLimit = ConstU32<{ REMOVE_ITEMS_LIMIT }>; + type AssetIdParameter = Compact; + type CreateOrigin = AsEnsureOriginWithArg>; + type CallbackHandle = (); + pallet_assets::runtime_benchmarks_enabled! { + type BenchmarkHelper = BenchmarkHelper; + } +} + +// We instruct how to register the Assets +// In this case, we tell it to Create an Asset in pallet-assets +pub struct AssetRegistrar; +use frame_support::{pallet_prelude::DispatchResult, transactional}; + +impl pallet_asset_manager::AssetRegistrar for AssetRegistrar { + #[transactional] + fn create_foreign_asset( + asset: AssetId, + min_balance: Balance, + metadata: AssetRegistrarMetadata, + is_sufficient: bool, + ) -> DispatchResult { + Assets::force_create( + RuntimeOrigin::root(), + asset.into(), + AssetManager::account_id(), + is_sufficient, + min_balance, + )?; + + // Lastly, the metadata + Assets::force_set_metadata( + RuntimeOrigin::root(), + asset.into(), + metadata.name, + metadata.symbol, + metadata.decimals, + metadata.is_frozen, + ) + } + + #[transactional] + fn destroy_foreign_asset(asset: AssetId) -> DispatchResult { + // Mark the asset as destroying + Assets::start_destroy(RuntimeOrigin::root(), asset.into()) + } + + fn destroy_asset_dispatch_info_weight(asset: AssetId) -> Weight { + // For us both of them (Foreign and Local) have the same annotated weight for a given + // witness + // We need to take the dispatch info from the destroy call, which is already annotated in + // the assets pallet + + // This is the dispatch info of destroy + RuntimeCall::Assets( + pallet_assets::Call::::start_destroy { + id: asset.into(), + }, + ) + .get_dispatch_info() + .weight + } +} + +#[derive(Clone, Default, Eq, Debug, PartialEq, Ord, PartialOrd, Encode, Decode, TypeInfo)] +pub struct AssetRegistrarMetadata { + pub name: Vec, + pub symbol: Vec, + pub decimals: u8, + pub is_frozen: bool, +} +pub type ForeignAssetModifierOrigin = EitherOfDiverse< + EnsureRoot, + EitherOfDiverse< + pallet_collective::EnsureProportionMoreThan, + governance::custom_origins::GeneralAdmin, + >, +>; + +impl pallet_asset_manager::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Balance = Balance; + type AssetId = AssetId; + type AssetRegistrarMetadata = AssetRegistrarMetadata; + type ForeignAssetType = xcm_config::AssetType; + type AssetRegistrar = AssetRegistrar; + type ForeignAssetModifierOrigin = ForeignAssetModifierOrigin; + type WeightInfo = moonbeam_weights::pallet_asset_manager::WeightInfo; +} + +// Instruct how to go from an H160 to an AssetID +// We just take the lowest 128 bits +impl AccountIdAssetIdConversion for Runtime { + /// The way to convert an account to assetId is by ensuring that the prefix is 0XFFFFFFFF + /// and by taking the lowest 128 bits as the assetId + fn account_to_asset_id(account: AccountId) -> Option<(Vec, AssetId)> { + let h160_account: H160 = account.into(); + let mut data = [0u8; 16]; + let (prefix_part, id_part) = h160_account.as_fixed_bytes().split_at(4); + if prefix_part == FOREIGN_ASSET_PRECOMPILE_ADDRESS_PREFIX { + data.copy_from_slice(id_part); + let asset_id: AssetId = u128::from_be_bytes(data).into(); + Some((prefix_part.to_vec(), asset_id)) + } else { + None + } + } + + // The opposite conversion + fn asset_id_to_account(prefix: &[u8], asset_id: AssetId) -> AccountId { + let mut data = [0u8; 20]; + data[0..4].copy_from_slice(prefix); + data[4..20].copy_from_slice(&asset_id.to_be_bytes()); + AccountId::from(data) + } +} diff --git a/tracing/3001/runtime/moonbeam/src/governance/councils.rs b/tracing/3001/runtime/moonbeam/src/governance/councils.rs new file mode 100644 index 00000000..c8cc1ca3 --- /dev/null +++ b/tracing/3001/runtime/moonbeam/src/governance/councils.rs @@ -0,0 +1,61 @@ +// Copyright 2019-2023 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Councils for Gov1 and Gov2 + +use super::*; + +pub type TreasuryCouncilInstance = pallet_collective::Instance3; +pub type OpenTechCommitteeInstance = pallet_collective::Instance4; + +parameter_types! { + // TODO: Check value of this parameter + pub MaxProposalWeight: Weight = Perbill::from_percent(50) * RuntimeBlockWeights::get().max_block; +} + +impl pallet_collective::Config for Runtime { + type RuntimeOrigin = RuntimeOrigin; + type RuntimeEvent = RuntimeEvent; + type Proposal = RuntimeCall; + /// The maximum amount of time (in blocks) for treasury council members to vote on motions. + /// Motions may end in fewer blocks if enough votes are cast to determine the result. + type MotionDuration = ConstU32<{ 3 * DAYS }>; + /// The maximum number of proposals that can be open in the treasury council at once. + type MaxProposals = ConstU32<20>; + /// The maximum number of treasury council members. + type MaxMembers = ConstU32<9>; + type DefaultVote = pallet_collective::MoreThanMajorityThenPrimeDefaultVote; + type WeightInfo = moonbeam_weights::pallet_collective::WeightInfo; + type SetMembersOrigin = referenda::GeneralAdminOrRoot; + type MaxProposalWeight = MaxProposalWeight; +} + +impl pallet_collective::Config for Runtime { + type RuntimeOrigin = RuntimeOrigin; + type RuntimeEvent = RuntimeEvent; + type Proposal = RuntimeCall; + /// The maximum amount of time (in blocks) for technical committee members to vote on motions. + /// Motions may end in fewer blocks if enough votes are cast to determine the result. + type MotionDuration = ConstU32<{ 14 * DAYS }>; + /// The maximum number of proposals that can be open in the technical committee at once. + type MaxProposals = ConstU32<100>; + /// The maximum number of technical committee members. + type MaxMembers = ConstU32<100>; + type DefaultVote = pallet_collective::MoreThanMajorityThenPrimeDefaultVote; + type WeightInfo = moonbeam_weights::pallet_collective::WeightInfo; + type SetMembersOrigin = referenda::GeneralAdminOrRoot; + type MaxProposalWeight = MaxProposalWeight; +} diff --git a/tracing/3001/runtime/moonbeam/src/governance/mod.rs b/tracing/3001/runtime/moonbeam/src/governance/mod.rs new file mode 100644 index 00000000..bfe3def3 --- /dev/null +++ b/tracing/3001/runtime/moonbeam/src/governance/mod.rs @@ -0,0 +1,29 @@ +// Copyright 2019-2023 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Governance configurations + +pub mod councils; +pub mod referenda; + +use super::*; + +mod origins; +pub use origins::{ + custom_origins, GeneralAdmin, ReferendumCanceller, ReferendumKiller, WhitelistedCaller, +}; +mod tracks; +pub use tracks::TracksInfo; diff --git a/tracing/3001/runtime/moonbeam/src/governance/origins.rs b/tracing/3001/runtime/moonbeam/src/governance/origins.rs new file mode 100644 index 00000000..48154cd1 --- /dev/null +++ b/tracing/3001/runtime/moonbeam/src/governance/origins.rs @@ -0,0 +1,85 @@ +// Copyright 2019-2023 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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. + +//! Custom origins for governance interventions. +#![cfg_attr(not(feature = "std"), no_std)] + +pub use custom_origins::*; + +#[frame_support::pallet] +pub mod custom_origins { + use frame_support::pallet_prelude::*; + use strum_macros::EnumString; + + #[pallet::config] + pub trait Config: frame_system::Config {} + + #[pallet::pallet] + pub struct Pallet(_); + + #[derive( + PartialEq, Eq, Clone, MaxEncodedLen, Encode, Decode, TypeInfo, RuntimeDebug, EnumString, + )] + #[strum(serialize_all = "snake_case")] + #[pallet::origin] + pub enum Origin { + /// Origin able to dispatch a whitelisted call. + WhitelistedCaller, + /// General admin + GeneralAdmin, + /// Origin able to cancel referenda. + ReferendumCanceller, + /// Origin able to kill referenda. + ReferendumKiller, + /// Fast General Admin + FastGeneralAdmin, + } + + macro_rules! decl_unit_ensures { + ( $name:ident: $success_type:ty = $success:expr ) => { + pub struct $name; + impl> + From> + EnsureOrigin for $name + { + type Success = $success_type; + fn try_origin(o: O) -> Result { + o.into().and_then(|o| match o { + Origin::$name => Ok($success), + r => Err(O::from(r)), + }) + } + #[cfg(feature = "runtime-benchmarks")] + fn try_successful_origin() -> Result { + Ok(O::from(Origin::$name)) + } + } + }; + ( $name:ident ) => { decl_unit_ensures! { $name : () = () } }; + ( $name:ident: $success_type:ty = $success:expr, $( $rest:tt )* ) => { + decl_unit_ensures! { $name: $success_type = $success } + decl_unit_ensures! { $( $rest )* } + }; + ( $name:ident, $( $rest:tt )* ) => { + decl_unit_ensures! { $name } + decl_unit_ensures! { $( $rest )* } + }; + () => {} + } + decl_unit_ensures!( + ReferendumCanceller, + ReferendumKiller, + WhitelistedCaller, + GeneralAdmin, + FastGeneralAdmin, + ); +} diff --git a/tracing/3001/runtime/moonbeam/src/governance/referenda.rs b/tracing/3001/runtime/moonbeam/src/governance/referenda.rs new file mode 100644 index 00000000..62720a0d --- /dev/null +++ b/tracing/3001/runtime/moonbeam/src/governance/referenda.rs @@ -0,0 +1,100 @@ +// Copyright 2019-2023 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! # Gov2 config +//! Includes runtime configs for these substrate pallets: +//! 1. pallet-conviction-voting +//! 2. pallet-whitelist +//! 3. pallet-referenda + +use super::*; +use crate::currency::{GLMR, SUPPLY_FACTOR}; +use frame_support::traits::{EitherOf, MapSuccess}; +use frame_system::EnsureRootWithSuccess; +use sp_runtime::traits::Replace; + +parameter_types! { + pub const VoteLockingPeriod: BlockNumber = 1 * DAYS; +} + +impl pallet_conviction_voting::Config for Runtime { + type WeightInfo = moonbeam_weights::pallet_conviction_voting::WeightInfo; + type RuntimeEvent = RuntimeEvent; + type Currency = Balances; + type Polls = Referenda; + type MaxTurnout = frame_support::traits::TotalIssuanceOf; + // Maximum number of concurrent votes an account may have + type MaxVotes = ConstU32<20>; + // Minimum period of vote locking + type VoteLockingPeriod = VoteLockingPeriod; +} + +parameter_types! { + pub const AlarmInterval: BlockNumber = 1; + pub const SubmissionDeposit: Balance = 10 * GLMR * SUPPLY_FACTOR; + pub const UndecidingTimeout: BlockNumber = 21 * DAYS; +} + +// Origin for general admin or root +pub type GeneralAdminOrRoot = EitherOf, origins::GeneralAdmin>; +// The policy allows for Root or FastGeneralAdmin. +pub type FastGeneralAdminOrRoot = EitherOf, origins::FastGeneralAdmin>; + +impl custom_origins::Config for Runtime {} + +// The purpose of this pallet is to queue calls to be dispatched as by root later => the Dispatch +// origin corresponds to the Gov2 Whitelist track. +impl pallet_whitelist::Config for Runtime { + type WeightInfo = moonbeam_weights::pallet_whitelist::WeightInfo; + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + type WhitelistOrigin = EitherOf< + EnsureRootWithSuccess>, + MapSuccess< + pallet_collective::EnsureProportionAtLeast< + Self::AccountId, + OpenTechCommitteeInstance, + 5, + 9, + >, + Replace>, + >, + >; + type DispatchWhitelistedOrigin = EitherOf, WhitelistedCaller>; + type Preimages = Preimage; +} + +pallet_referenda::impl_tracksinfo_get!(TracksInfo, Balance, BlockNumber); + +impl pallet_referenda::Config for Runtime { + type WeightInfo = moonbeam_weights::pallet_referenda::WeightInfo; + type RuntimeCall = RuntimeCall; + type RuntimeEvent = RuntimeEvent; + type Scheduler = Scheduler; + type Currency = Balances; + type SubmitOrigin = frame_system::EnsureSigned; + type CancelOrigin = EitherOf, ReferendumCanceller>; + type KillOrigin = EitherOf, ReferendumKiller>; + type Slash = Treasury; + type Votes = pallet_conviction_voting::VotesOf; + type Tally = pallet_conviction_voting::TallyOf; + type SubmissionDeposit = SubmissionDeposit; + type MaxQueued = ConstU32<100>; + type UndecidingTimeout = UndecidingTimeout; + type AlarmInterval = AlarmInterval; + type Tracks = TracksInfo; + type Preimages = Preimage; +} diff --git a/tracing/3001/runtime/moonbeam/src/governance/tracks.rs b/tracing/3001/runtime/moonbeam/src/governance/tracks.rs new file mode 100644 index 00000000..a69cd645 --- /dev/null +++ b/tracing/3001/runtime/moonbeam/src/governance/tracks.rs @@ -0,0 +1,193 @@ +// Copyright 2022 Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot 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. + +// Polkadot 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 Polkadot. If not, see . + +//! Track configurations for governance. + +use super::*; +use crate::currency::{GLMR, KILOGLMR, SUPPLY_FACTOR}; +use sp_std::str::FromStr; + +const fn percent(x: i32) -> sp_runtime::FixedI64 { + sp_runtime::FixedI64::from_rational(x as u128, 100) +} +const fn permill(x: i32) -> sp_runtime::FixedI64 { + sp_runtime::FixedI64::from_rational(x as u128, 1000) +} + +use pallet_referenda::Curve; +const TRACKS_DATA: [(u16, pallet_referenda::TrackInfo); 6] = [ + ( + 0, + pallet_referenda::TrackInfo { + // Name of this track. + name: "root", + // A limit for the number of referenda on this track that can be being decided at once. + // For Root origin this should generally be just one. + max_deciding: 5, + // Amount that must be placed on deposit before a decision can be made. + decision_deposit: 20 * KILOGLMR * SUPPLY_FACTOR, + // Amount of time this must be submitted for before a decision can be made. + prepare_period: 1 * DAYS, + // Amount of time that a decision may take to be approved prior to cancellation. + decision_period: 14 * DAYS, + // Amount of time that the approval criteria must hold before it can be approved. + confirm_period: 1 * DAYS, + // Minimum amount of time that an approved proposal must be in the dispatch queue. + min_enactment_period: 1 * DAYS, + // Minimum aye votes as percentage of overall conviction-weighted votes needed for + // approval as a function of time into decision period. + min_approval: Curve::make_reciprocal(4, 14, percent(80), percent(50), percent(100)), + // Minimum pre-conviction aye-votes ("support") as percentage of overall population that + // is needed for approval as a function of time into decision period. + min_support: Curve::make_linear(14, 14, permill(5), percent(25)), + }, + ), + ( + 1, + pallet_referenda::TrackInfo { + name: "whitelisted_caller", + max_deciding: 100, + decision_deposit: 2 * KILOGLMR * SUPPLY_FACTOR, + prepare_period: 10 * MINUTES, + decision_period: 14 * DAYS, + confirm_period: 10 * MINUTES, + min_enactment_period: 30 * MINUTES, + min_approval: Curve::make_reciprocal(1, 14, percent(96), percent(50), percent(100)), + min_support: Curve::make_reciprocal(1, 14 * 24, percent(1), percent(0), percent(2)), + }, + ), + ( + 2, + pallet_referenda::TrackInfo { + name: "general_admin", + max_deciding: 10, + decision_deposit: 100 * GLMR * SUPPLY_FACTOR, + prepare_period: 1 * HOURS, + decision_period: 14 * DAYS, + confirm_period: 1 * DAYS, + min_enactment_period: 1 * DAYS, + min_approval: Curve::make_reciprocal(4, 14, percent(80), percent(50), percent(100)), + min_support: Curve::make_reciprocal(7, 14, percent(10), percent(0), percent(50)), + }, + ), + ( + 3, + pallet_referenda::TrackInfo { + name: "referendum_canceller", + max_deciding: 20, + decision_deposit: 2 * KILOGLMR * SUPPLY_FACTOR, + prepare_period: 1 * HOURS, + decision_period: 14 * DAYS, + confirm_period: 3 * HOURS, + min_enactment_period: 10 * MINUTES, + min_approval: Curve::make_reciprocal(1, 14, percent(96), percent(50), percent(100)), + min_support: Curve::make_reciprocal(1, 14, percent(1), percent(0), percent(10)), + }, + ), + ( + 4, + pallet_referenda::TrackInfo { + name: "referendum_killer", + max_deciding: 100, + decision_deposit: 4 * KILOGLMR * SUPPLY_FACTOR, + prepare_period: 1 * HOURS, + decision_period: 14 * DAYS, + confirm_period: 3 * HOURS, + min_enactment_period: 10 * MINUTES, + min_approval: Curve::make_reciprocal(1, 14, percent(96), percent(50), percent(100)), + min_support: Curve::make_reciprocal(1, 14, percent(1), percent(0), percent(10)), + }, + ), + ( + 5, + pallet_referenda::TrackInfo { + name: "fast_general_admin", + max_deciding: 10, + decision_deposit: 100 * GLMR * SUPPLY_FACTOR, + prepare_period: 1 * HOURS, + decision_period: 14 * DAYS, + confirm_period: 3 * HOURS, + min_enactment_period: 10 * MINUTES, + min_approval: Curve::make_reciprocal(4, 14, percent(80), percent(50), percent(100)), + min_support: Curve::make_reciprocal(5, 14, percent(1), percent(0), percent(50)), + }, + ), +]; + +pub struct TracksInfo; +impl pallet_referenda::TracksInfo for TracksInfo { + type Id = u16; + type RuntimeOrigin = ::PalletsOrigin; + fn tracks() -> &'static [(Self::Id, pallet_referenda::TrackInfo)] { + &TRACKS_DATA[..] + } + fn track_for(id: &Self::RuntimeOrigin) -> Result { + if let Ok(system_origin) = frame_system::RawOrigin::try_from(id.clone()) { + match system_origin { + frame_system::RawOrigin::Root => { + if let Some((track_id, _)) = Self::tracks() + .into_iter() + .find(|(_, track)| track.name == "root") + { + Ok(*track_id) + } else { + Err(()) + } + } + _ => Err(()), + } + } else if let Ok(custom_origin) = custom_origins::Origin::try_from(id.clone()) { + if let Some((track_id, _)) = Self::tracks().into_iter().find(|(_, track)| { + if let Ok(track_custom_origin) = custom_origins::Origin::from_str(track.name) { + track_custom_origin == custom_origin + } else { + false + } + }) { + Ok(*track_id) + } else { + Err(()) + } + } else { + Err(()) + } + } +} + +#[test] +/// To ensure voters are always locked into their vote +fn vote_locking_always_longer_than_enactment_period() { + for (_, track) in TRACKS_DATA { + assert!( + ::VoteLockingPeriod::get() + >= track.min_enactment_period, + "Track {} has enactment period {} < vote locking period {}", + track.name, + track.min_enactment_period, + ::VoteLockingPeriod::get(), + ); + } +} + +#[test] +fn all_tracks_have_origins() { + for (_, track) in TRACKS_DATA { + // check name.into() is successful either converts into "root" or custom origin + let track_is_root = track.name == "root"; + let track_has_custom_origin = custom_origins::Origin::from_str(track.name).is_ok(); + assert!(track_is_root || track_has_custom_origin); + } +} diff --git a/tracing/3001/runtime/moonbeam/src/lib.rs b/tracing/3001/runtime/moonbeam/src/lib.rs new file mode 100644 index 00000000..29e9de68 --- /dev/null +++ b/tracing/3001/runtime/moonbeam/src/lib.rs @@ -0,0 +1,1813 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! The Moonbeam Runtime. +//! +//! Primary features of this runtime include: +//! * Ethereum compatibility +//! * Moonbeam tokenomics + +#![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")); + +use account::AccountId20; +use cumulus_pallet_parachain_system::{RelayChainStateProof, RelaychainDataProvider}; +use fp_rpc::TransactionStatus; + +use cumulus_primitives_core::{relay_chain, AggregateMessageOrigin}; +#[cfg(feature = "std")] +pub use fp_evm::GenesisAccount; +pub use frame_support::traits::Get; +use frame_support::{ + construct_runtime, + dispatch::{DispatchClass, GetDispatchInfo, PostDispatchInfo}, + ensure, + pallet_prelude::DispatchResult, + parameter_types, + traits::{ + fungible::{Balanced, Credit, HoldConsideration, Inspect}, + tokens::imbalance::ResolveTo, + tokens::{PayFromAccount, UnityAssetBalanceConversion}, + ConstBool, ConstU128, ConstU16, ConstU32, ConstU64, ConstU8, Contains, EitherOfDiverse, + EqualPrivilegeOnly, Imbalance, InstanceFilter, LinearStoragePrice, OnFinalize, + OnUnbalanced, + }, + weights::{ + constants::{RocksDbWeight, WEIGHT_REF_TIME_PER_SECOND}, + ConstantMultiplier, Weight, WeightToFeeCoefficient, WeightToFeeCoefficients, + WeightToFeePolynomial, + }, + PalletId, +}; +use frame_system::{EnsureRoot, EnsureSigned}; +pub use moonbeam_core_primitives::{ + AccountId, AccountIndex, Address, AssetId, Balance, BlockNumber, DigestItem, Hash, Header, + Index, Signature, +}; +use moonbeam_rpc_primitives_txpool::TxPoolResponse; +use moonbeam_runtime_common::{ + timestamp::{ConsensusHookWrapperForRelayTimestamp, RelayTimestamp}, + weights as moonbeam_weights, +}; +use pallet_ethereum::Call::transact; +use pallet_ethereum::{PostLogContent, Transaction as EthereumTransaction}; +use pallet_evm::{ + Account as EVMAccount, EVMFungibleAdapter, EnsureAddressNever, EnsureAddressRoot, + FeeCalculator, GasWeightMapping, IdentityAddressMapping, + OnChargeEVMTransaction as OnChargeEVMTransactionT, Runner, +}; +pub use pallet_parachain_staking::{weights::WeightInfo, InflationInfo, Range}; +use pallet_transaction_payment::{FungibleAdapter, Multiplier, TargetedFeeAdjustment}; +use pallet_treasury::TreasuryAccountId; +use parity_scale_codec::{Decode, Encode, MaxEncodedLen}; +use scale_info::TypeInfo; +use serde::{Deserialize, Serialize}; +use smallvec::smallvec; +use sp_api::impl_runtime_apis; +use sp_consensus_slots::Slot; +use sp_core::{OpaqueMetadata, H160, H256, U256}; +use sp_runtime::{ + create_runtime_str, generic, impl_opaque_keys, + traits::{ + BlakeTwo256, Block as BlockT, DispatchInfoOf, Dispatchable, IdentityLookup, + PostDispatchInfoOf, UniqueSaturatedInto, Zero, + }, + transaction_validity::{ + InvalidTransaction, TransactionSource, TransactionValidity, TransactionValidityError, + }, + ApplyExtrinsicResult, DispatchErrorWithPostInfo, FixedPointNumber, Perbill, Permill, + Perquintill, SaturatedConversion, +}; +use sp_std::{convert::TryFrom, prelude::*}; + +#[cfg(feature = "std")] +use sp_version::NativeVersion; +use sp_version::RuntimeVersion; + +use nimbus_primitives::CanAuthor; + +mod migrations; +mod precompiles; +pub use precompiles::{ + MoonbeamPrecompiles, PrecompileName, FOREIGN_ASSET_PRECOMPILE_ADDRESS_PREFIX, +}; + +#[cfg(any(feature = "std", test))] +pub use sp_runtime::BuildStorage; + +pub type Precompiles = MoonbeamPrecompiles; + +pub mod asset_config; +pub mod governance; +pub mod xcm_config; +use governance::councils::*; + +/// GLMR, the native token, uses 18 decimals of precision. +pub mod currency { + use super::Balance; + + // Provide a common factor between runtimes based on a supply of 10_000_000 tokens. + pub const SUPPLY_FACTOR: Balance = 100; + + pub const WEI: Balance = 1; + pub const KILOWEI: Balance = 1_000; + pub const MEGAWEI: Balance = 1_000_000; + pub const GIGAWEI: Balance = 1_000_000_000; + pub const MICROGLMR: Balance = 1_000_000_000_000; + pub const MILLIGLMR: Balance = 1_000_000_000_000_000; + pub const GLMR: Balance = 1_000_000_000_000_000_000; + pub const KILOGLMR: Balance = 1_000_000_000_000_000_000_000; + + pub const TRANSACTION_BYTE_FEE: Balance = 1 * GIGAWEI * SUPPLY_FACTOR; + pub const STORAGE_BYTE_FEE: Balance = 100 * MICROGLMR * SUPPLY_FACTOR; + pub const WEIGHT_FEE: Balance = 50 * KILOWEI * SUPPLY_FACTOR; + + pub const fn deposit(items: u32, bytes: u32) -> Balance { + items as Balance * 100 * MILLIGLMR * SUPPLY_FACTOR + (bytes as Balance) * STORAGE_BYTE_FEE + } +} + +/// Maximum weight per block +pub const MAXIMUM_BLOCK_WEIGHT: Weight = Weight::from_parts(WEIGHT_REF_TIME_PER_SECOND, u64::MAX) + .saturating_div(2) + .set_proof_size(relay_chain::MAX_POV_SIZE as u64); + +pub const MILLISECS_PER_BLOCK: u64 = 6_000; +pub const MINUTES: BlockNumber = 60_000 / (MILLISECS_PER_BLOCK as BlockNumber); +pub const HOURS: BlockNumber = MINUTES * 60; +pub const DAYS: BlockNumber = HOURS * 24; +pub const WEEKS: BlockNumber = DAYS * 7; +pub const MONTHS: BlockNumber = DAYS * 30; +/// Opaque types. These are used by the CLI to instantiate machinery that don't need to know +/// the specifics of the runtime. They can then be made to be agnostic over specific formats +/// of data like extrinsics, allowing for them to continue syncing the network through upgrades +/// to even the core datastructures. +pub mod opaque { + use super::*; + + pub use sp_runtime::OpaqueExtrinsic as UncheckedExtrinsic; + pub type Block = generic::Block; + + impl_opaque_keys! { + pub struct SessionKeys { + pub nimbus: AuthorInherent, + pub vrf: session_keys_primitives::VrfSessionKey, + } + } +} + +/// This runtime version. +/// The spec_version is composed of 2x2 digits. The first 2 digits represent major changes +/// that can't be skipped, such as data migration upgrades. The last 2 digits represent minor +/// changes which can be skipped. +#[sp_version::runtime_version] +pub const VERSION: RuntimeVersion = RuntimeVersion { + spec_name: create_runtime_str!("moonbeam"), + impl_name: create_runtime_str!("moonbeam"), + authoring_version: 3, + spec_version: 3001, + impl_version: 0, + apis: RUNTIME_API_VERSIONS, + transaction_version: 2, + state_version: 0, +}; + +/// 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(), + } +} + +const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(75); +pub const NORMAL_WEIGHT: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_mul(3).saturating_div(4); +// Here we assume Ethereum's base fee of 21000 gas and convert to weight, but we +// subtract roughly the cost of a balance transfer from it (about 1/3 the cost) +// and some cost to account for per-byte-fee. +// TODO: we should use benchmarking's overhead feature to measure this +pub const EXTRINSIC_BASE_WEIGHT: Weight = Weight::from_parts(10000 * WEIGHT_PER_GAS, 0); + +pub struct RuntimeBlockWeights; +impl Get for RuntimeBlockWeights { + fn get() -> frame_system::limits::BlockWeights { + frame_system::limits::BlockWeights::builder() + .for_class(DispatchClass::Normal, |weights| { + weights.base_extrinsic = EXTRINSIC_BASE_WEIGHT; + weights.max_total = NORMAL_WEIGHT.into(); + }) + .for_class(DispatchClass::Operational, |weights| { + weights.max_total = MAXIMUM_BLOCK_WEIGHT.into(); + weights.reserved = (MAXIMUM_BLOCK_WEIGHT - NORMAL_WEIGHT).into(); + }) + .avg_block_initialization(Perbill::from_percent(10)) + .build() + .expect("Provided BlockWeight definitions are valid, qed") + } +} + +parameter_types! { + pub const Version: RuntimeVersion = VERSION; + /// We allow for 5 MB blocks. + pub BlockLength: frame_system::limits::BlockLength = frame_system::limits::BlockLength + ::max_with_normal_ratio(5 * 1024 * 1024, NORMAL_DISPATCH_RATIO); +} + +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 = IdentityLookup; + /// The index type for storing how many extrinsics an account has signed. + type Nonce = Index; + /// The index type for blocks. + type Block = Block; + /// The type for hashing blocks and tries. + type Hash = Hash; + /// The hashing algorithm used. + type Hashing = BlakeTwo256; + /// The ubiquitous event type. + type RuntimeEvent = RuntimeEvent; + /// The ubiquitous origin type. + type RuntimeOrigin = RuntimeOrigin; + /// The aggregated RuntimeTask type. + type RuntimeTask = RuntimeTask; + /// Maximum number of block number to block hash mappings to keep (oldest pruned first). + type BlockHashCount = ConstU32<256>; + /// Maximum weight of each block. With a default weight system of 1byte == 1weight, 4mb is ok. + type BlockWeights = RuntimeBlockWeights; + /// Maximum size of all encoded transactions (in bytes) that are allowed in one block. + type BlockLength = BlockLength; + /// Runtime version. + type Version = Version; + type PalletInfo = PalletInfo; + type AccountData = pallet_balances::AccountData; + type OnNewAccount = (); + type OnKilledAccount = (); + type DbWeight = RocksDbWeight; + type BaseCallFilter = MaintenanceMode; + type SystemWeightInfo = (); + /// This is used as an identifier of the chain. 42 is the generic substrate prefix. + type SS58Prefix = ConstU16<1284>; + type OnSetCode = cumulus_pallet_parachain_system::ParachainSetCode; + type MaxConsumers = frame_support::traits::ConstU32<16>; +} + +impl pallet_utility::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + type PalletsOrigin = OriginCaller; + type WeightInfo = moonbeam_weights::pallet_utility::WeightInfo; +} + +impl pallet_timestamp::Config for Runtime { + /// A timestamp: milliseconds since the unix epoch. + type Moment = u64; + type OnTimestampSet = (); + type MinimumPeriod = ConstU64<3000>; + type WeightInfo = moonbeam_weights::pallet_timestamp::WeightInfo; +} + +impl pallet_balances::Config for Runtime { + type MaxReserves = ConstU32<50>; + type ReserveIdentifier = [u8; 4]; + type MaxLocks = ConstU32<50>; + /// The type for recording an account's balance. + type Balance = Balance; + /// The ubiquitous event type. + type RuntimeEvent = RuntimeEvent; + type DustRemoval = (); + type ExistentialDeposit = ConstU128<0>; + type AccountStore = System; + type FreezeIdentifier = (); + type MaxFreezes = ConstU32<0>; + type RuntimeHoldReason = RuntimeHoldReason; + type RuntimeFreezeReason = RuntimeFreezeReason; + type WeightInfo = moonbeam_weights::pallet_balances::WeightInfo; +} + +pub struct DealWithFees(sp_std::marker::PhantomData); +impl OnUnbalanced>> for DealWithFees +where + R: pallet_balances::Config + pallet_treasury::Config, +{ + // this seems to be called for substrate-based transactions + fn on_unbalanceds( + mut fees_then_tips: impl Iterator>>, + ) { + if let Some(fees) = fees_then_tips.next() { + // for fees, 80% are burned, 20% to the treasury + let (_, to_treasury) = fees.ration(80, 20); + // Balances pallet automatically burns dropped Credits by decreasing + // total_supply accordingly + ResolveTo::, pallet_balances::Pallet>::on_unbalanced( + to_treasury, + ); + + // handle tip if there is one + if let Some(tip) = fees_then_tips.next() { + // for now we use the same burn/treasury strategy used for regular fees + let (_, to_treasury) = tip.ration(80, 20); + ResolveTo::, pallet_balances::Pallet>::on_unbalanced( + to_treasury, + ); + } + } + } + + // this is called from pallet_evm for Ethereum-based transactions + // (technically, it calls on_unbalanced, which calls this when non-zero) + fn on_nonzero_unbalanced(amount: Credit>) { + // Balances pallet automatically burns dropped Credits by decreasing + // total_supply accordingly + let (_, to_treasury) = amount.ration(80, 20); + ResolveTo::, pallet_balances::Pallet>::on_unbalanced(to_treasury); + } +} + +pub struct LengthToFee; +impl WeightToFeePolynomial for LengthToFee { + type Balance = Balance; + + fn polynomial() -> WeightToFeeCoefficients { + smallvec![ + WeightToFeeCoefficient { + degree: 1, + coeff_frac: Perbill::zero(), + coeff_integer: currency::TRANSACTION_BYTE_FEE, + negative: false, + }, + WeightToFeeCoefficient { + degree: 3, + coeff_frac: Perbill::zero(), + coeff_integer: 1 * currency::SUPPLY_FACTOR, + negative: false, + }, + ] + } +} + +impl pallet_transaction_payment::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type OnChargeTransaction = FungibleAdapter>; + type OperationalFeeMultiplier = ConstU8<5>; + type WeightToFee = ConstantMultiplier>; + type LengthToFee = LengthToFee; + type FeeMultiplierUpdate = SlowAdjustingFeeUpdate; +} + +impl pallet_evm_chain_id::Config for Runtime {} + +/// Current approximation of the gas/s consumption considering +/// EVM execution over compiled WASM (on 4.4Ghz CPU). +/// Given the 500ms Weight, from which 75% only are used for transactions, +/// the total EVM execution gas limit is: GAS_PER_SECOND * 0.500 * 0.75 ~= 15_000_000. +pub const GAS_PER_SECOND: u64 = 40_000_000; + +/// Approximate ratio of the amount of Weight per Gas. +/// u64 works for approximations because Weight is a very small unit compared to gas. +pub const WEIGHT_PER_GAS: u64 = WEIGHT_REF_TIME_PER_SECOND / GAS_PER_SECOND; + +parameter_types! { + pub BlockGasLimit: U256 + = U256::from(NORMAL_DISPATCH_RATIO * MAXIMUM_BLOCK_WEIGHT.ref_time() / WEIGHT_PER_GAS); + /// The portion of the `NORMAL_DISPATCH_RATIO` that we adjust the fees with. Blocks filled less + /// than this will decrease the weight and more will increase. + pub const TargetBlockFullness: Perquintill = Perquintill::from_percent(35); + /// The adjustment variable of the runtime. Higher values will cause `TargetBlockFullness` to + /// change the fees more rapidly. This low value causes changes to occur slowly over time. + pub AdjustmentVariable: Multiplier = Multiplier::saturating_from_rational(4, 1_000); + /// Minimum amount of the multiplier. This value cannot be too low. A test case should ensure + /// that combined with `AdjustmentVariable`, we can recover from the minimum. + /// See `multiplier_can_grow_from_zero` in integration_tests.rs. + /// This value is currently only used by pallet-transaction-payment as an assertion that the + /// next multiplier is always > min value. + pub MinimumMultiplier: Multiplier = Multiplier::from(1u128); + /// Maximum multiplier. We pick a value that is expensive but not impossibly so; it should act + /// as a safety net. + pub MaximumMultiplier: Multiplier = Multiplier::from(100_000u128); + pub PrecompilesValue: MoonbeamPrecompiles = MoonbeamPrecompiles::<_>::new(); + pub WeightPerGas: Weight = Weight::from_parts(WEIGHT_PER_GAS, 0); + /// The amount of gas per pov. A ratio of 4 if we convert ref_time to gas and we compare + /// it with the pov_size for a block. E.g. + /// ceil( + /// (max_extrinsic.ref_time() / max_extrinsic.proof_size()) / WEIGHT_PER_GAS + /// ) + /// We should re-check `xcm_config::Erc20XcmBridgeTransferGasLimit` when changing this value + pub const GasLimitPovSizeRatio: u64 = 4; + /// The amount of gas per storage (in bytes): BLOCK_GAS_LIMIT / BLOCK_STORAGE_LIMIT + /// The current definition of BLOCK_STORAGE_LIMIT is 40 KB, resulting in a value of 366. + pub GasLimitStorageGrowthRatio: u64 = 366; +} + +pub struct TransactionPaymentAsGasPrice; +impl FeeCalculator for TransactionPaymentAsGasPrice { + fn min_gas_price() -> (U256, Weight) { + // note: transaction-payment differs from EIP-1559 in that its tip and length fees are not + // scaled by the multiplier, which means its multiplier will be overstated when + // applied to an ethereum transaction + // note: transaction-payment uses both a congestion modifier (next_fee_multiplier, which is + // updated once per block in on_finalize) and a 'WeightToFee' implementation. Our + // runtime implements this as a 'ConstantModifier', so we can get away with a simple + // multiplication here. + // It is imperative that `saturating_mul_int` be performed as late as possible in the + // expression since it involves fixed point multiplication with a division by a fixed + // divisor. This leads to truncation and subsequent precision loss if performed too early. + // This can lead to min_gas_price being same across blocks even if the multiplier changes. + // There's still some precision loss when the final `gas_price` (used_gas * min_gas_price) + // is computed in frontier, but that's currently unavoidable. + let min_gas_price = TransactionPayment::next_fee_multiplier() + .saturating_mul_int(currency::WEIGHT_FEE.saturating_mul(WEIGHT_PER_GAS as u128)); + ( + min_gas_price.into(), + ::DbWeight::get().reads(1), + ) + } +} + +/// Parameterized slow adjusting fee updated based on +/// https://w3f-research.readthedocs.io/en/latest/polkadot/overview/2-token-economics.html#-2.-slow-adjusting-mechanism // editorconfig-checker-disable-line +/// +/// The adjustment algorithm boils down to: +/// +/// diff = (previous_block_weight - target) / maximum_block_weight +/// next_multiplier = prev_multiplier * (1 + (v * diff) + ((v * diff)^2 / 2)) +/// assert(next_multiplier > min) +/// where: v is AdjustmentVariable +/// target is TargetBlockFullness +/// min is MinimumMultiplier +pub type SlowAdjustingFeeUpdate = TargetedFeeAdjustment< + R, + TargetBlockFullness, + AdjustmentVariable, + MinimumMultiplier, + MaximumMultiplier, +>; + +use frame_support::traits::FindAuthor; +//TODO It feels like this shold be able to work for any T: H160, but I tried for +// embarassingly long and couldn't figure that out. + +/// The author inherent provides a AccountId20, but pallet evm needs an H160. +/// This simple adapter makes the conversion. +pub struct FindAuthorAdapter(sp_std::marker::PhantomData); + +impl FindAuthor for FindAuthorAdapter +where + Inner: FindAuthor, +{ + fn find_author<'a, I>(digests: I) -> Option + where + I: 'a + IntoIterator, + { + Inner::find_author(digests).map(Into::into) + } +} + +moonbeam_runtime_common::impl_on_charge_evm_transaction!(); + +impl pallet_evm::Config for Runtime { + type FeeCalculator = TransactionPaymentAsGasPrice; + type GasWeightMapping = pallet_evm::FixedGasWeightMapping; + type WeightPerGas = WeightPerGas; + type BlockHashMapping = pallet_ethereum::EthereumBlockHashMapping; + type CallOrigin = EnsureAddressRoot; + type WithdrawOrigin = EnsureAddressNever; + type AddressMapping = IdentityAddressMapping; + type Currency = Balances; + type RuntimeEvent = RuntimeEvent; + type Runner = pallet_evm::runner::stack::Runner; + type PrecompilesType = MoonbeamPrecompiles; + type PrecompilesValue = PrecompilesValue; + type ChainId = EthereumChainId; + type OnChargeTransaction = OnChargeEVMTransaction>; + type BlockGasLimit = BlockGasLimit; + type FindAuthor = FindAuthorAdapter; + type OnCreate = (); + type GasLimitPovSizeRatio = GasLimitPovSizeRatio; + type SuicideQuickClearLimit = ConstU32<0>; + type GasLimitStorageGrowthRatio = GasLimitStorageGrowthRatio; + type Timestamp = RelayTimestamp; + type WeightInfo = moonbeam_weights::pallet_evm::WeightInfo; +} + +parameter_types! { + pub MaximumSchedulerWeight: Weight = NORMAL_DISPATCH_RATIO * RuntimeBlockWeights::get().max_block; +} + +impl pallet_scheduler::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type RuntimeOrigin = RuntimeOrigin; + type PalletsOrigin = OriginCaller; + type RuntimeCall = RuntimeCall; + type MaximumWeight = MaximumSchedulerWeight; + type ScheduleOrigin = EnsureRoot; + type MaxScheduledPerBlock = ConstU32<50>; + type WeightInfo = moonbeam_weights::pallet_scheduler::WeightInfo; + type OriginPrivilegeCmp = EqualPrivilegeOnly; + type Preimages = Preimage; +} + +parameter_types! { + pub const PreimageBaseDeposit: Balance = 5 * currency::GLMR * currency::SUPPLY_FACTOR ; + pub const PreimageByteDeposit: Balance = currency::STORAGE_BYTE_FEE; + pub const PreimageHoldReason: RuntimeHoldReason = + RuntimeHoldReason::Preimage(pallet_preimage::HoldReason::Preimage); +} + +impl pallet_preimage::Config for Runtime { + type WeightInfo = moonbeam_weights::pallet_preimage::WeightInfo; + type RuntimeEvent = RuntimeEvent; + type Currency = Balances; + type ManagerOrigin = EnsureRoot; + type Consideration = HoldConsideration< + AccountId, + Balances, + PreimageHoldReason, + LinearStoragePrice, + >; +} + +parameter_types! { + pub const ProposalBond: Permill = Permill::from_percent(5); + pub const TreasuryId: PalletId = PalletId(*b"py/trsry"); + pub TreasuryAccount: AccountId = Treasury::account_id(); +} + +type TreasuryApproveOrigin = EitherOfDiverse< + EnsureRoot, + pallet_collective::EnsureProportionAtLeast, +>; + +type TreasuryRejectOrigin = EitherOfDiverse< + EnsureRoot, + pallet_collective::EnsureProportionMoreThan, +>; + +impl pallet_treasury::Config for Runtime { + type PalletId = TreasuryId; + type Currency = Balances; + // At least three-fifths majority of the council is required (or root) to approve a proposal + type ApproveOrigin = TreasuryApproveOrigin; + // More than half of the council is required (or root) to reject a proposal + type RejectOrigin = TreasuryRejectOrigin; + type RuntimeEvent = RuntimeEvent; + // If spending proposal rejected, transfer proposer bond to treasury + type OnSlash = Treasury; + type ProposalBond = ProposalBond; + type ProposalBondMinimum = ConstU128<{ 1 * currency::GLMR * currency::SUPPLY_FACTOR }>; + type SpendPeriod = ConstU32<{ 6 * DAYS }>; + type Burn = (); + type BurnDestination = (); + type MaxApprovals = ConstU32<100>; + type WeightInfo = moonbeam_weights::pallet_treasury::WeightInfo; + type SpendFunds = (); + type ProposalBondMaximum = (); + #[cfg(not(feature = "runtime-benchmarks"))] + type SpendOrigin = frame_support::traits::NeverEnsureOrigin; // Disabled, no spending + #[cfg(feature = "runtime-benchmarks")] + type SpendOrigin = + frame_system::EnsureWithSuccess, AccountId, benches::MaxBalance>; + type AssetKind = (); + type Beneficiary = AccountId; + type BeneficiaryLookup = IdentityLookup; + type Paymaster = PayFromAccount; + type BalanceConverter = UnityAssetBalanceConversion; + type PayoutPeriod = ConstU32<{ 30 * DAYS }>; + #[cfg(feature = "runtime-benchmarks")] + type BenchmarkHelper = BenchmarkHelper; +} + +parameter_types! { + pub const MaxSubAccounts: u32 = 100; + pub const MaxAdditionalFields: u32 = 100; + pub const MaxRegistrars: u32 = 20; + pub const PendingUsernameExpiration: u32 = 7 * DAYS; + pub const MaxSuffixLength: u32 = 7; + pub const MaxUsernameLength: u32 = 32; +} + +type IdentityForceOrigin = + EitherOfDiverse, governance::custom_origins::GeneralAdmin>; +type IdentityRegistrarOrigin = + EitherOfDiverse, governance::custom_origins::GeneralAdmin>; + +impl pallet_identity::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Currency = Balances; + // Add one item in storage and take 258 bytes + type BasicDeposit = ConstU128<{ currency::deposit(1, 258) }>; + // Does not add any item to the storage but takes 1 bytes + type ByteDeposit = ConstU128<{ currency::deposit(0, 1) }>; + // Add one item in storage and take 53 bytes + type SubAccountDeposit = ConstU128<{ currency::deposit(1, 53) }>; + type MaxSubAccounts = MaxSubAccounts; + type IdentityInformation = pallet_identity::legacy::IdentityInfo; + type MaxRegistrars = MaxRegistrars; + type Slashed = Treasury; + type ForceOrigin = IdentityForceOrigin; + type RegistrarOrigin = IdentityRegistrarOrigin; + type OffchainSignature = Signature; + type SigningPublicKey = ::Signer; + type UsernameAuthorityOrigin = EnsureRoot; + type PendingUsernameExpiration = PendingUsernameExpiration; + type MaxSuffixLength = MaxSuffixLength; + type MaxUsernameLength = MaxUsernameLength; + type WeightInfo = moonbeam_weights::pallet_identity::WeightInfo; +} + +pub struct TransactionConverter; + +impl fp_rpc::ConvertTransaction for TransactionConverter { + fn convert_transaction(&self, transaction: pallet_ethereum::Transaction) -> UncheckedExtrinsic { + UncheckedExtrinsic::new_unsigned( + pallet_ethereum::Call::::transact { transaction }.into(), + ) + } +} + +impl fp_rpc::ConvertTransaction for TransactionConverter { + fn convert_transaction( + &self, + transaction: pallet_ethereum::Transaction, + ) -> opaque::UncheckedExtrinsic { + let extrinsic = UncheckedExtrinsic::new_unsigned( + pallet_ethereum::Call::::transact { transaction }.into(), + ); + let encoded = extrinsic.encode(); + opaque::UncheckedExtrinsic::decode(&mut &encoded[..]) + .expect("Encoded extrinsic is always valid") + } +} + +parameter_types! { + pub const PostBlockAndTxnHashes: PostLogContent = PostLogContent::BlockAndTxnHashes; +} + +impl pallet_ethereum::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type StateRoot = pallet_ethereum::IntermediateStateRoot; + type PostLogContent = PostBlockAndTxnHashes; + type ExtraDataLength = ConstU32<30>; +} + +/// Maximum number of blocks simultaneously accepted by the Runtime, not yet included +/// into the relay chain. +const UNINCLUDED_SEGMENT_CAPACITY: u32 = 3; +/// How many parachain blocks are processed by the relay chain per parent. Limits the +/// number of blocks authored per slot. +const BLOCK_PROCESSING_VELOCITY: u32 = 1; + +type ConsensusHook = pallet_async_backing::consensus_hook::FixedVelocityConsensusHook< + Runtime, + BLOCK_PROCESSING_VELOCITY, + UNINCLUDED_SEGMENT_CAPACITY, +>; + +impl cumulus_pallet_parachain_system::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type OnSystemEvent = (); + type SelfParaId = ParachainInfo; + type ReservedDmpWeight = ReservedDmpWeight; + type OutboundXcmpMessageSource = XcmpQueue; + type XcmpMessageHandler = XcmpQueue; + type ReservedXcmpWeight = ReservedXcmpWeight; + type CheckAssociatedRelayNumber = + cumulus_pallet_parachain_system::RelayNumberMonotonicallyIncreases; + type ConsensusHook = ConsensusHookWrapperForRelayTimestamp; + type DmpQueue = frame_support::traits::EnqueueWithOrigin; + type WeightInfo = cumulus_pallet_parachain_system::weights::SubstrateWeight; +} + +pub struct EthereumXcmEnsureProxy; +impl xcm_primitives::EnsureProxy for EthereumXcmEnsureProxy { + fn ensure_ok(delegator: AccountId, delegatee: AccountId) -> Result<(), &'static str> { + // The EVM implicitely contains an Any proxy, so we only allow for "Any" proxies + let def: pallet_proxy::ProxyDefinition = + pallet_proxy::Pallet::::find_proxy( + &delegator, + &delegatee, + Some(ProxyType::Any), + ) + .map_err(|_| "proxy error: expected `ProxyType::Any`")?; + // We only allow to use it for delay zero proxies, as the call will immediatly be executed + ensure!(def.delay.is_zero(), "proxy delay is Non-zero`"); + Ok(()) + } +} + +impl pallet_ethereum_xcm::Config for Runtime { + type InvalidEvmTransactionError = pallet_ethereum::InvalidTransactionWrapper; + type ValidatedTransaction = pallet_ethereum::ValidatedTransaction; + type XcmEthereumOrigin = pallet_ethereum_xcm::EnsureXcmEthereumTransaction; + type ReservedXcmpWeight = ReservedXcmpWeight; + type EnsureProxy = EthereumXcmEnsureProxy; + type ControllerOrigin = EnsureRoot; +} + +parameter_types! { + pub const ReservedXcmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); + pub const ReservedDmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); + pub const RelayOrigin: AggregateMessageOrigin = AggregateMessageOrigin::Parent; +} + +impl parachain_info::Config for Runtime {} + +pub struct OnNewRound; +impl pallet_parachain_staking::OnNewRound for OnNewRound { + fn on_new_round(round_index: pallet_parachain_staking::RoundIndex) -> Weight { + MoonbeamOrbiters::on_new_round(round_index) + } +} +pub struct PayoutCollatorOrOrbiterReward; +impl pallet_parachain_staking::PayoutCollatorReward for PayoutCollatorOrOrbiterReward { + fn payout_collator_reward( + for_round: pallet_parachain_staking::RoundIndex, + collator_id: AccountId, + amount: Balance, + ) -> Weight { + let extra_weight = + if MoonbeamOrbiters::is_collator_pool_with_active_orbiter(for_round, collator_id) { + MoonbeamOrbiters::distribute_rewards(for_round, collator_id, amount) + } else { + ParachainStaking::mint_collator_reward(for_round, collator_id, amount) + }; + + ::DbWeight::get() + .reads(1) + .saturating_add(extra_weight) + } +} + +pub struct OnInactiveCollator; +impl pallet_parachain_staking::OnInactiveCollator for OnInactiveCollator { + fn on_inactive_collator( + collator_id: AccountId, + round: pallet_parachain_staking::RoundIndex, + ) -> Result> { + let extra_weight = if !MoonbeamOrbiters::is_collator_pool_with_active_orbiter( + round, + collator_id.clone(), + ) { + ParachainStaking::go_offline_inner(collator_id)?; + ::WeightInfo::go_offline( + pallet_parachain_staking::MAX_CANDIDATES, + ) + } else { + Weight::zero() + }; + + Ok(::DbWeight::get() + .reads(1) + .saturating_add(extra_weight)) + } +} +type MonetaryGovernanceOrigin = + EitherOfDiverse, governance::custom_origins::GeneralAdmin>; + +pub struct RelayChainSlotProvider; +impl Get for RelayChainSlotProvider { + fn get() -> Slot { + let slot_info = pallet_async_backing::pallet::Pallet::::slot_info(); + slot_info.unwrap_or_default().0 + } +} + +impl pallet_parachain_staking::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Currency = Balances; + type MonetaryGovernanceOrigin = MonetaryGovernanceOrigin; + /// Minimum round length is 2 minutes (10 * 12 second block times) + type MinBlocksPerRound = ConstU32<10>; + /// If a collator doesn't produce any block on this number of rounds, it is notified as inactive + type MaxOfflineRounds = ConstU32<1>; + /// Rounds before the collator leaving the candidates request can be executed + type LeaveCandidatesDelay = ConstU32<{ 4 * 7 }>; + /// Rounds before the candidate bond increase/decrease can be executed + type CandidateBondLessDelay = ConstU32<{ 4 * 7 }>; + /// Rounds before the delegator exit can be executed + type LeaveDelegatorsDelay = ConstU32<{ 4 * 7 }>; + /// Rounds before the delegator revocation can be executed + type RevokeDelegationDelay = ConstU32<{ 4 * 7 }>; + /// Rounds before the delegator bond increase/decrease can be executed + type DelegationBondLessDelay = ConstU32<{ 4 * 7 }>; + /// Rounds before the reward is paid + type RewardPaymentDelay = ConstU32<2>; + /// Minimum collators selected per round, default at genesis and minimum forever after + type MinSelectedCandidates = ConstU32<8>; + /// Maximum top delegations per candidate + type MaxTopDelegationsPerCandidate = ConstU32<300>; + /// Maximum bottom delegations per candidate + type MaxBottomDelegationsPerCandidate = ConstU32<50>; + /// Maximum delegations per delegator + type MaxDelegationsPerDelegator = ConstU32<100>; + /// Minimum stake required to be reserved to be a candidate + type MinCandidateStk = ConstU128<{ 20_000 * currency::GLMR * currency::SUPPLY_FACTOR }>; + /// Minimum stake required to be reserved to be a delegator + type MinDelegation = ConstU128<{ 500 * currency::MILLIGLMR * currency::SUPPLY_FACTOR }>; + type BlockAuthor = AuthorInherent; + type OnCollatorPayout = (); + type PayoutCollatorReward = PayoutCollatorOrOrbiterReward; + type OnInactiveCollator = OnInactiveCollator; + type OnNewRound = OnNewRound; + type SlotProvider = RelayChainSlotProvider; + type WeightInfo = moonbeam_weights::pallet_parachain_staking::WeightInfo; + type MaxCandidates = ConstU32<200>; + type SlotDuration = ConstU64<6_000>; + type BlockTime = ConstU64<6_000>; +} + +impl pallet_author_inherent::Config for Runtime { + type SlotBeacon = RelaychainDataProvider; + type AccountLookup = MoonbeamOrbiters; + type CanAuthor = AuthorFilter; + type AuthorId = AccountId; + type WeightInfo = moonbeam_weights::pallet_author_inherent::WeightInfo; +} + +impl pallet_author_slot_filter::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type RandomnessSource = Randomness; + type PotentialAuthors = ParachainStaking; + type WeightInfo = moonbeam_weights::pallet_author_slot_filter::WeightInfo; +} + +impl pallet_async_backing::Config for Runtime { + type AllowMultipleBlocksPerSlot = ConstBool; + type GetAndVerifySlot = pallet_async_backing::RelaySlot; + type ExpectedBlockTime = ConstU64<6000>; +} + +parameter_types! { + pub const InitializationPayment: Perbill = Perbill::from_percent(30); + pub const RelaySignaturesThreshold: Perbill = Perbill::from_percent(100); + pub const SignatureNetworkIdentifier: &'static [u8] = b"moonbeam-"; +} + +impl pallet_crowdloan_rewards::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Initialized = ConstBool; + type InitializationPayment = InitializationPayment; + type MaxInitContributors = ConstU32<500>; + type MinimumReward = ConstU128<0>; + type RewardCurrency = Balances; + type RelayChainAccountId = [u8; 32]; + type RewardAddressAssociateOrigin = EnsureSigned; + type RewardAddressChangeOrigin = EnsureSigned; + type RewardAddressRelayVoteThreshold = RelaySignaturesThreshold; + type SignatureNetworkIdentifier = SignatureNetworkIdentifier; + type VestingBlockNumber = relay_chain::BlockNumber; + type VestingBlockProvider = RelaychainDataProvider; + type WeightInfo = moonbeam_weights::pallet_crowdloan_rewards::WeightInfo; +} + +// This is a simple session key manager. It should probably either work with, or be replaced +// entirely by pallet sessions +impl pallet_author_mapping::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type DepositCurrency = Balances; + type DepositAmount = ConstU128<{ 100 * currency::GLMR * currency::SUPPLY_FACTOR }>; + type Keys = session_keys_primitives::VrfId; + type WeightInfo = moonbeam_weights::pallet_author_mapping::WeightInfo; +} + +/// The type used to represent the kinds of proxying allowed. +#[derive( + Copy, + Clone, + Eq, + PartialEq, + Ord, + PartialOrd, + Encode, + Decode, + Debug, + MaxEncodedLen, + TypeInfo, + Serialize, + Deserialize, +)] +pub enum ProxyType { + /// All calls can be proxied. This is the trivial/most permissive filter. + Any = 0, + /// Only extrinsics that do not transfer funds. + NonTransfer = 1, + /// Only extrinsics related to governance (democracy and collectives). + Governance = 2, + /// Only extrinsics related to staking. + Staking = 3, + /// Allow to veto an announced proxy call. + CancelProxy = 4, + /// Allow extrinsic related to Balances. + Balances = 5, + /// Allow extrinsic related to AuthorMapping. + AuthorMapping = 6, + /// Allow extrinsic related to IdentityJudgement. + IdentityJudgement = 7, +} + +impl Default for ProxyType { + fn default() -> Self { + Self::Any + } +} + +fn is_governance_precompile(precompile_name: &precompiles::PrecompileName) -> bool { + matches!( + precompile_name, + PrecompileName::ConvictionVotingPrecompile + | PrecompileName::PreimagePrecompile + | PrecompileName::ReferendaPrecompile + | PrecompileName::OpenTechCommitteeInstance + | PrecompileName::TreasuryCouncilInstance + ) +} + +// Be careful: Each time this filter is modified, the substrate filter must also be modified +// consistently. +impl pallet_evm_precompile_proxy::EvmProxyCallFilter for ProxyType { + fn is_evm_proxy_call_allowed( + &self, + call: &pallet_evm_precompile_proxy::EvmSubCall, + recipient_has_code: bool, + gas: u64, + ) -> precompile_utils::EvmResult { + Ok(match self { + ProxyType::Any => { + match PrecompileName::from_address(call.to.0) { + // Any precompile that can execute a subcall should be forbidden here, + // to ensure that unauthorized smart contract can't be called + // indirectly. + // To be safe, we only allow the precompiles we need. + Some( + PrecompileName::AuthorMappingPrecompile + | PrecompileName::ParachainStakingPrecompile, + ) => true, + Some(ref precompile) if is_governance_precompile(precompile) => true, + // All non-whitelisted precompiles are forbidden + Some(_) => false, + // Allow evm transfer to "simple" account (no code nor precompile) + // For the moment, no smart contract other than precompiles is allowed. + // In the future, we may create a dynamic whitelist to authorize some audited + // smart contracts through governance. + None => { + // If the address is not recognized, allow only evm transfert to "simple" + // accounts (no code nor precompile). + // Note: Checking the presence of the code is not enough because some + // precompiles have no code. + !recipient_has_code + && precompile_utils::precompile_set::is_precompile_or_fail::( + call.to.0, gas, + )? + } + } + } + ProxyType::NonTransfer => { + call.value == U256::zero() + && match PrecompileName::from_address(call.to.0) { + Some( + PrecompileName::AuthorMappingPrecompile + | PrecompileName::ParachainStakingPrecompile, + ) => true, + Some(ref precompile) if is_governance_precompile(precompile) => true, + _ => false, + } + } + ProxyType::Governance => { + call.value == U256::zero() + && matches!( + PrecompileName::from_address(call.to.0), + Some(ref precompile) if is_governance_precompile(precompile) + ) + } + ProxyType::Staking => { + call.value == U256::zero() + && matches!( + PrecompileName::from_address(call.to.0), + Some( + PrecompileName::AuthorMappingPrecompile + | PrecompileName::ParachainStakingPrecompile + ) + ) + } + // The proxy precompile does not contain method cancel_proxy + ProxyType::CancelProxy => false, + ProxyType::Balances => { + // Allow only "simple" accounts as recipient (no code nor precompile). + // Note: Checking the presence of the code is not enough because some precompiles + // have no code. + !recipient_has_code + && !precompile_utils::precompile_set::is_precompile_or_fail::( + call.to.0, gas, + )? + } + ProxyType::AuthorMapping => { + call.value == U256::zero() + && matches!( + PrecompileName::from_address(call.to.0), + Some(PrecompileName::AuthorMappingPrecompile) + ) + } + // There is no identity precompile + ProxyType::IdentityJudgement => false, + }) + } +} + +// Be careful: Each time this filter is modified, the EVM filter must also be modified consistently. +impl InstanceFilter for ProxyType { + fn filter(&self, c: &RuntimeCall) -> bool { + match self { + ProxyType::Any => true, + ProxyType::NonTransfer => { + matches!( + c, + RuntimeCall::System(..) + | RuntimeCall::ParachainSystem(..) + | RuntimeCall::Timestamp(..) + | RuntimeCall::ParachainStaking(..) + | RuntimeCall::Referenda(..) + | RuntimeCall::Preimage(..) + | RuntimeCall::ConvictionVoting(..) + | RuntimeCall::TreasuryCouncilCollective(..) + | RuntimeCall::OpenTechCommitteeCollective(..) + | RuntimeCall::Identity(..) + | RuntimeCall::Utility(..) + | RuntimeCall::Proxy(..) | RuntimeCall::AuthorMapping(..) + | RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::claim { .. } + ) + ) + } + ProxyType::Governance => matches!( + c, + RuntimeCall::Referenda(..) + | RuntimeCall::Preimage(..) + | RuntimeCall::ConvictionVoting(..) + | RuntimeCall::TreasuryCouncilCollective(..) + | RuntimeCall::OpenTechCommitteeCollective(..) + | RuntimeCall::Utility(..) + ), + ProxyType::Staking => matches!( + c, + RuntimeCall::ParachainStaking(..) + | RuntimeCall::Utility(..) + | RuntimeCall::AuthorMapping(..) + | RuntimeCall::MoonbeamOrbiters(..) + ), + ProxyType::CancelProxy => matches!( + c, + RuntimeCall::Proxy(pallet_proxy::Call::reject_announcement { .. }) + ), + ProxyType::Balances => { + matches!(c, RuntimeCall::Balances(..) | RuntimeCall::Utility(..)) + } + ProxyType::AuthorMapping => matches!(c, RuntimeCall::AuthorMapping(..)), + ProxyType::IdentityJudgement => matches!( + c, + RuntimeCall::Identity(pallet_identity::Call::provide_judgement { .. }) + | RuntimeCall::Utility(..) + ), + } + } + + fn is_superset(&self, o: &Self) -> bool { + match (self, o) { + (x, y) if x == y => true, + (ProxyType::Any, _) => true, + (_, ProxyType::Any) => false, + _ => false, + } + } +} + +impl pallet_proxy::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + type Currency = Balances; + type ProxyType = ProxyType; + // One storage item; key size 32, value size 8 + type ProxyDepositBase = ConstU128<{ currency::deposit(1, 8) }>; + // Additional storage item size of 21 bytes (20 bytes AccountId + 1 byte sizeof(ProxyType)). + type ProxyDepositFactor = ConstU128<{ currency::deposit(0, 21) }>; + type MaxProxies = ConstU32<32>; + type WeightInfo = moonbeam_weights::pallet_proxy::WeightInfo; + type MaxPending = ConstU32<32>; + type CallHasher = BlakeTwo256; + type AnnouncementDepositBase = ConstU128<{ currency::deposit(1, 8) }>; + // Additional storage item size of 56 bytes: + // - 20 bytes AccountId + // - 32 bytes Hasher (Blake2256) + // - 4 bytes BlockNumber (u32) + type AnnouncementDepositFactor = ConstU128<{ currency::deposit(0, 56) }>; +} + +impl pallet_migrations::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type MigrationsList = ( + moonbeam_runtime_common::migrations::CommonMigrations, + migrations::MoonbeamMigrations, + ); + type XcmExecutionManager = XcmExecutionManager; +} + +impl pallet_moonbeam_lazy_migrations::Config for Runtime { + type WeightInfo = moonbeam_weights::pallet_moonbeam_lazy_migrations::WeightInfo; +} + +/// Maintenance mode Call filter +pub struct MaintenanceFilter; +impl Contains for MaintenanceFilter { + fn contains(c: &RuntimeCall) -> bool { + match c { + RuntimeCall::Assets(_) => false, + RuntimeCall::Balances(_) => false, + RuntimeCall::CrowdloanRewards(_) => false, + RuntimeCall::Ethereum(_) => false, + RuntimeCall::EVM(_) => false, + RuntimeCall::Identity(_) => false, + RuntimeCall::XTokens(_) => false, + RuntimeCall::ParachainStaking(_) => false, + RuntimeCall::MoonbeamOrbiters(_) => false, + RuntimeCall::PolkadotXcm(_) => false, + RuntimeCall::Treasury(_) => false, + RuntimeCall::XcmTransactor(_) => false, + RuntimeCall::EthereumXcm(_) => false, + _ => true, + } + } +} + +/// Normal Call Filter +/// We dont allow to create nor mint assets, this for now is disabled +/// We only allow transfers. For now creation of assets will go through +/// asset-manager, while minting/burning only happens through xcm messages +/// This can change in the future +pub struct NormalFilter; +impl Contains for NormalFilter { + fn contains(c: &RuntimeCall) -> bool { + match c { + RuntimeCall::Assets(method) => match method { + pallet_assets::Call::transfer { .. } => true, + pallet_assets::Call::transfer_keep_alive { .. } => true, + pallet_assets::Call::approve_transfer { .. } => true, + pallet_assets::Call::transfer_approved { .. } => true, + pallet_assets::Call::cancel_approval { .. } => true, + pallet_assets::Call::destroy_accounts { .. } => true, + pallet_assets::Call::destroy_approvals { .. } => true, + pallet_assets::Call::finish_destroy { .. } => true, + _ => false, + }, + // We just want to enable this in case of live chains, since the default version + // is populated at genesis + RuntimeCall::PolkadotXcm(method) => match method { + pallet_xcm::Call::force_default_xcm_version { .. } => true, + _ => false, + }, + // We filter anonymous proxy as they make "reserve" inconsistent + // See: https://github.com/paritytech/substrate/blob/37cca710eed3dadd4ed5364c7686608f5175cce1/frame/proxy/src/lib.rs#L270 // editorconfig-checker-disable-line + RuntimeCall::Proxy(method) => match method { + pallet_proxy::Call::create_pure { .. } => false, + pallet_proxy::Call::kill_pure { .. } => false, + pallet_proxy::Call::proxy { real, .. } => { + !pallet_evm::AccountCodes::::contains_key(H160::from(*real)) + } + _ => true, + }, + // Filtering the EVM prevents possible re-entrancy from the precompiles which could + // lead to unexpected scenarios. + // See https://github.com/PureStake/sr-moonbeam/issues/30 + // Note: It is also assumed that EVM calls are only allowed through `Origin::Root` so + // this can be seen as an additional security + RuntimeCall::EVM(_) => false, + RuntimeCall::Treasury( + pallet_treasury::Call::spend { .. } + | pallet_treasury::Call::payout { .. } + | pallet_treasury::Call::check_status { .. } + | pallet_treasury::Call::void_spend { .. }, + ) => false, + _ => true, + } + } +} + +pub struct XcmExecutionManager; +impl moonkit_xcm_primitives::PauseXcmExecution for XcmExecutionManager { + fn suspend_xcm_execution() -> DispatchResult { + XcmpQueue::suspend_xcm_execution(RuntimeOrigin::root()) + } + fn resume_xcm_execution() -> DispatchResult { + XcmpQueue::resume_xcm_execution(RuntimeOrigin::root()) + } +} + +impl pallet_maintenance_mode::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type NormalCallFilter = NormalFilter; + type MaintenanceCallFilter = MaintenanceFilter; + type MaintenanceOrigin = + pallet_collective::EnsureProportionAtLeast; + type XcmExecutionManager = XcmExecutionManager; +} + +impl pallet_proxy_genesis_companion::Config for Runtime { + type ProxyType = ProxyType; +} + +parameter_types! { + pub OrbiterReserveIdentifier: [u8; 4] = [b'o', b'r', b'b', b'i']; +} + +type AddCollatorOrigin = + EitherOfDiverse, governance::custom_origins::GeneralAdmin>; +type DelCollatorOrigin = + EitherOfDiverse, governance::custom_origins::GeneralAdmin>; + +impl pallet_moonbeam_orbiters::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type AccountLookup = AuthorMapping; + type AddCollatorOrigin = AddCollatorOrigin; + type Currency = Balances; + type DelCollatorOrigin = DelCollatorOrigin; + /// Maximum number of orbiters per collator + type MaxPoolSize = ConstU32<8>; + /// Maximum number of round to keep on storage + type MaxRoundArchive = ConstU32<4>; + type OrbiterReserveIdentifier = OrbiterReserveIdentifier; + type RotatePeriod = ConstU32<1>; + /// Round index type. + type RoundIndex = pallet_parachain_staking::RoundIndex; + type WeightInfo = moonbeam_weights::pallet_moonbeam_orbiters::WeightInfo; +} + +/// Only callable after `set_validation_data` is called which forms this proof the same way +fn relay_chain_state_proof() -> RelayChainStateProof { + let relay_storage_root = ParachainSystem::validation_data() + .expect("set in `set_validation_data`") + .relay_parent_storage_root; + let relay_chain_state = + ParachainSystem::relay_state_proof().expect("set in `set_validation_data`"); + RelayChainStateProof::new(ParachainInfo::get(), relay_storage_root, relay_chain_state) + .expect("Invalid relay chain state proof, already constructed in `set_validation_data`") +} + +pub struct BabeDataGetter; +impl pallet_randomness::GetBabeData> for BabeDataGetter { + // Tolerate panic here because only ever called in inherent (so can be omitted) + fn get_epoch_index() -> u64 { + if cfg!(feature = "runtime-benchmarks") { + // storage reads as per actual reads + let _relay_storage_root = ParachainSystem::validation_data(); + let _relay_chain_state = ParachainSystem::relay_state_proof(); + const BENCHMARKING_NEW_EPOCH: u64 = 10u64; + return BENCHMARKING_NEW_EPOCH; + } + relay_chain_state_proof() + .read_optional_entry(relay_chain::well_known_keys::EPOCH_INDEX) + .ok() + .flatten() + .expect("expected to be able to read epoch index from relay chain state proof") + } + fn get_epoch_randomness() -> Option { + if cfg!(feature = "runtime-benchmarks") { + // storage reads as per actual reads + let _relay_storage_root = ParachainSystem::validation_data(); + let _relay_chain_state = ParachainSystem::relay_state_proof(); + let benchmarking_babe_output = Hash::default(); + return Some(benchmarking_babe_output); + } + relay_chain_state_proof() + .read_optional_entry(relay_chain::well_known_keys::ONE_EPOCH_AGO_RANDOMNESS) + .ok() + .flatten() + } +} + +impl pallet_randomness::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type AddressMapping = sp_runtime::traits::ConvertInto; + type Currency = Balances; + type BabeDataGetter = BabeDataGetter; + type VrfKeyLookup = AuthorMapping; + type Deposit = ConstU128<{ 1 * currency::GLMR * currency::SUPPLY_FACTOR }>; + type MaxRandomWords = ConstU8<100>; + type MinBlockDelay = ConstU32<2>; + type MaxBlockDelay = ConstU32<2_000>; + type BlockExpirationDelay = ConstU32<10_000>; + type EpochExpirationDelay = ConstU64<10_000>; + type WeightInfo = moonbeam_weights::pallet_randomness::WeightInfo; +} + +impl pallet_root_testing::Config for Runtime { + type RuntimeEvent = RuntimeEvent; +} + +parameter_types! { + // One storage item; key size is 32 + 20; value is size 4+4+16+20 bytes = 44 bytes. + pub const DepositBase: Balance = currency::deposit(1, 96); + // Additional storage item size of 20 bytes. + pub const DepositFactor: Balance = currency::deposit(0, 20); + pub const MaxSignatories: u32 = 100; +} + +impl pallet_multisig::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + type Currency = Balances; + type DepositBase = DepositBase; + type DepositFactor = DepositFactor; + type MaxSignatories = MaxSignatories; + type WeightInfo = moonbeam_weights::pallet_multisig::WeightInfo; +} + +impl pallet_relay_storage_roots::Config for Runtime { + type MaxStorageRoots = ConstU32<30>; + type RelaychainStateProvider = cumulus_pallet_parachain_system::RelaychainDataProvider; + type WeightInfo = moonbeam_weights::pallet_relay_storage_roots::WeightInfo; +} + +impl pallet_precompile_benchmarks::Config for Runtime { + type WeightInfo = moonbeam_weights::pallet_precompile_benchmarks::WeightInfo; +} + +construct_runtime! { + pub enum Runtime + { + // System support stuff. + System: frame_system::{Pallet, Call, Storage, Config, Event} = 0, + ParachainSystem: cumulus_pallet_parachain_system::{Pallet, Call, Storage, Inherent, Event} = 1, + // Previously 2: pallet_randomness_collective_flip + Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent} = 3, + ParachainInfo: parachain_info::{Pallet, Storage, Config} = 4, + RootTesting: pallet_root_testing::{Pallet, Call, Storage, Event} = 5, + + // Monetary stuff. + Balances: pallet_balances::{Pallet, Call, Storage, Config, Event} = 10, + TransactionPayment: pallet_transaction_payment::{Pallet, Storage, Config, Event} = 11, + + // Consensus support. + ParachainStaking: pallet_parachain_staking::{Pallet, Call, Storage, Event, Config} = 20, + AuthorInherent: pallet_author_inherent::{Pallet, Call, Storage, Inherent} = 21, + AuthorFilter: pallet_author_slot_filter::{Pallet, Call, Storage, Event, Config} = 22, + AuthorMapping: pallet_author_mapping::{Pallet, Call, Config, Storage, Event} = 23, + MoonbeamOrbiters: pallet_moonbeam_orbiters::{Pallet, Call, Storage, Event} = 24, + AsyncBacking: pallet_async_backing::{Pallet, Storage} = 25, + + // Handy utilities. + Utility: pallet_utility::{Pallet, Call, Event} = 30, + Proxy: pallet_proxy::{Pallet, Call, Storage, Event} = 31, + MaintenanceMode: pallet_maintenance_mode::{Pallet, Call, Config, Storage, Event} = 32, + Identity: pallet_identity::{Pallet, Call, Storage, Event} = 33, + Migrations: pallet_migrations::{Pallet, Storage, Config, Event} = 34, + ProxyGenesisCompanion: pallet_proxy_genesis_companion::{Pallet, Config} = 35, + Multisig: pallet_multisig::{Pallet, Call, Storage, Event} = 36, + MoonbeamLazyMigrations: pallet_moonbeam_lazy_migrations::{Pallet, Call, Storage} = 37, + + // Has been permanently removed for safety reasons. + // Sudo: pallet_sudo::{Pallet, Call, Config, Storage, Event} = 40, + + // Ethereum compatibility. + EthereumChainId: pallet_evm_chain_id::{Pallet, Storage, Config} = 50, + EVM: pallet_evm::{Pallet, Config, Call, Storage, Event} = 51, + Ethereum: pallet_ethereum::{Pallet, Call, Storage, Event, Origin, Config} = 52, + + // Governance stuff. + Scheduler: pallet_scheduler::{Pallet, Storage, Event, Call} = 60, + // Democracy: 61, + Preimage: pallet_preimage::{Pallet, Call, Storage, Event, HoldReason} = 62, + ConvictionVoting: pallet_conviction_voting::{Pallet, Call, Storage, Event} = 63, + Referenda: pallet_referenda::{Pallet, Call, Storage, Event} = 64, + Origins: governance::custom_origins::{Origin} = 65, + Whitelist: pallet_whitelist::{Pallet, Call, Storage, Event} = 66, + + // Council stuff. + // CouncilCollective: 70 + // TechCommitteeCollective: 71 + TreasuryCouncilCollective: + pallet_collective::::{Pallet, Call, Storage, Event, Origin, Config} = 72, + OpenTechCommitteeCollective: + pallet_collective::::{Pallet, Call, Storage, Event, Origin, Config} = 73, + + // Treasury stuff. + Treasury: pallet_treasury::{Pallet, Storage, Config, Event, Call} = 80, + + // Crowdloan stuff. + CrowdloanRewards: pallet_crowdloan_rewards::{Pallet, Call, Config, Storage, Event} = 90, + + // XCM + XcmpQueue: cumulus_pallet_xcmp_queue::{Pallet, Storage, Event} = 100, + CumulusXcm: cumulus_pallet_xcm::{Pallet, Event, Origin} = 101, + DmpQueue: cumulus_pallet_dmp_queue::{Pallet, Call, Storage, Event} = 102, + PolkadotXcm: pallet_xcm::{Pallet, Storage, Call, Event, Origin, Config} = 103, + Assets: pallet_assets::{Pallet, Call, Storage, Event} = 104, + AssetManager: pallet_asset_manager::{Pallet, Call, Storage, Event} = 105, + XTokens: orml_xtokens::{Pallet, Call, Storage, Event} = 106, + XcmTransactor: pallet_xcm_transactor::{Pallet, Call, Storage, Event} = 107, + // Previously 108: pallet_assets:: + EthereumXcm: pallet_ethereum_xcm::{Pallet, Call, Storage, Origin} = 109, + Erc20XcmBridge: pallet_erc20_xcm_bridge::{Pallet} = 110, + MessageQueue: pallet_message_queue::{Pallet, Call, Storage, Event} = 111, + RelayStorageRoots: pallet_relay_storage_roots::{Pallet, Storage} = 112, + PrecompileBenchmarks: pallet_precompile_benchmarks::{Pallet} = 113, + + // Randomness + Randomness: pallet_randomness::{Pallet, Call, Storage, Event, Inherent} = 120, + } +} + +#[cfg(feature = "runtime-benchmarks")] +use moonbeam_runtime_common::benchmarking::BenchmarkHelper; +#[cfg(feature = "runtime-benchmarks")] +mod benches { + frame_support::parameter_types! { + pub const MaxBalance: crate::Balance = crate::Balance::max_value(); + } + + frame_benchmarking::define_benchmarks!( + [pallet_utility, Utility] + [pallet_timestamp, Timestamp] + [pallet_balances, Balances] + [pallet_evm, EVM] + [pallet_assets, Assets] + [pallet_parachain_staking, ParachainStaking] + [pallet_scheduler, Scheduler] + [pallet_treasury, Treasury] + [pallet_author_inherent, AuthorInherent] + [pallet_author_slot_filter, AuthorFilter] + [pallet_crowdloan_rewards, CrowdloanRewards] + [pallet_author_mapping, AuthorMapping] + [pallet_proxy, Proxy] + [pallet_identity, Identity] + [cumulus_pallet_xcmp_queue, XcmpQueue] + [pallet_xcm, PalletXcmExtrinsicsBenchmark::] + [pallet_asset_manager, AssetManager] + [pallet_xcm_transactor, XcmTransactor] + [pallet_moonbeam_orbiters, MoonbeamOrbiters] + [pallet_randomness, Randomness] + [pallet_conviction_voting, ConvictionVoting] + [pallet_referenda, Referenda] + [pallet_preimage, Preimage] + [pallet_whitelist, Whitelist] + [pallet_multisig, Multisig] + [pallet_moonbeam_lazy_migrations, MoonbeamLazyMigrations] + [pallet_relay_storage_roots, RelayStorageRoots] + ); +} + +/// 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 = + fp_self_contained::UncheckedExtrinsic; +/// Extrinsic type that has already been checked. +pub type CheckedExtrinsic = + fp_self_contained::CheckedExtrinsic; +/// Executive: handles dispatch to the various pallets. +pub type Executive = frame_executive::Executive< + Runtime, + Block, + frame_system::ChainContext, + Runtime, + AllPalletsWithSystem, +>; + +// All of our runtimes share most of their Runtime API implementations. +// We use a macro to implement this common part and add runtime-specific additional implementations. +// This macro expands to : +// ``` +// impl_runtime_apis! { +// // All impl blocks shared between all runtimes. +// +// // Specific impls provided to the `impl_runtime_apis_plus_common!` macro. +// } +// ``` +moonbeam_runtime_common::impl_runtime_apis_plus_common! { + impl sp_transaction_pool::runtime_api::TaggedTransactionQueue for Runtime { + fn validate_transaction( + source: TransactionSource, + xt: ::Extrinsic, + block_hash: ::Hash, + ) -> TransactionValidity { + // Filtered calls should not enter the tx pool as they'll fail if inserted. + // If this call is not allowed, we return early. + if !::BaseCallFilter::contains(&xt.0.function) { + return InvalidTransaction::Call.into(); + } + + // This runtime uses Substrate's pallet transaction payment. This + // makes the chain feel like a standard Substrate chain when submitting + // frame transactions and using Substrate ecosystem tools. It has the downside that + // transaction are not prioritized by gas_price. The following code reprioritizes + // transactions to overcome this. + // + // A more elegant, ethereum-first solution is + // a pallet that replaces pallet transaction payment, and allows users + // to directly specify a gas price rather than computing an effective one. + // #HopefullySomeday + + // First we pass the transactions to the standard FRAME executive. This calculates all the + // necessary tags, longevity and other properties that we will leave unchanged. + // This also assigns some priority that we don't care about and will overwrite next. + let mut intermediate_valid = Executive::validate_transaction(source, xt.clone(), block_hash)?; + + let dispatch_info = xt.get_dispatch_info(); + + // If this is a pallet ethereum transaction, then its priority is already set + // according to gas price from pallet ethereum. If it is any other kind of transaction, + // we modify its priority. + Ok(match &xt.0.function { + RuntimeCall::Ethereum(transact { .. }) => intermediate_valid, + _ if dispatch_info.class != DispatchClass::Normal => intermediate_valid, + _ => { + let tip = match xt.0.signature { + None => 0, + Some((_, _, ref signed_extra)) => { + // Yuck, this depends on the index of charge transaction in Signed Extra + let charge_transaction = &signed_extra.7; + charge_transaction.tip() + } + }; + + // Calculate the fee that will be taken by pallet transaction payment + let fee: u64 = TransactionPayment::compute_fee( + xt.encode().len() as u32, + &dispatch_info, + tip, + ).saturated_into(); + + // Calculate how much gas this effectively uses according to the existing mapping + let effective_gas = + ::GasWeightMapping::weight_to_gas( + dispatch_info.weight + ); + + // Here we calculate an ethereum-style effective gas price using the + // current fee of the transaction. Because the weight -> gas conversion is + // lossy, we have to handle the case where a very low weight maps to zero gas. + let effective_gas_price = if effective_gas > 0 { + fee / effective_gas + } else { + // If the effective gas was zero, we just act like it was 1. + fee + }; + + // Overwrite the original prioritization with this ethereum one + intermediate_valid.priority = effective_gas_price; + intermediate_valid + } + }) + } + } + + impl async_backing_primitives::UnincludedSegmentApi for Runtime { + fn can_build_upon( + included_hash: ::Hash, + slot: async_backing_primitives::Slot, + ) -> bool { + ConsensusHook::can_build_upon(included_hash, slot) + } + } +} + +struct CheckInherents; + +// Parity has decided to depreciate this trait, but does not offer a satisfactory replacement, +// see issue: https://github.com/paritytech/polkadot-sdk/issues/2841 +#[allow(deprecated)] +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) + } +} + +// Nimbus's Executive wrapper allows relay validators to verify the seal digest +cumulus_pallet_parachain_system::register_validate_block!( + Runtime = Runtime, + BlockExecutor = pallet_author_inherent::BlockExecutor::, + CheckInherents = CheckInherents, +); + +moonbeam_runtime_common::impl_self_contained_call!(); + +// Shorthand for a Get field of a pallet Config. +#[macro_export] +macro_rules! get { + ($pallet:ident, $name:ident, $type:ty) => { + <<$crate::Runtime as $pallet::Config>::$name as $crate::Get<$type>>::get() + }; +} + +#[cfg(test)] +mod tests { + use super::{currency::*, *}; + + #[test] + // Helps us to identify a Pallet Call in case it exceeds the 1kb limit. + // Hint: this should be a rare case. If that happens, one or more of the dispatchable arguments + // need to be Boxed. + fn call_max_size() { + const CALL_ALIGN: u32 = 1024; + assert!(std::mem::size_of::>() <= CALL_ALIGN as usize); + assert!(std::mem::size_of::>() <= CALL_ALIGN as usize); + assert!(std::mem::size_of::>() <= CALL_ALIGN as usize); + assert!( + std::mem::size_of::>() <= CALL_ALIGN as usize + ); + assert!( + std::mem::size_of::>() <= CALL_ALIGN as usize + ); + assert!( + std::mem::size_of::>() <= CALL_ALIGN as usize + ); + assert!( + std::mem::size_of::>() <= CALL_ALIGN as usize + ); + assert!(std::mem::size_of::>() <= CALL_ALIGN as usize); + assert!( + std::mem::size_of::>() <= CALL_ALIGN as usize + ); + assert!(std::mem::size_of::>() <= CALL_ALIGN as usize); + assert!( + std::mem::size_of::>() + <= CALL_ALIGN as usize + ); + assert!( + std::mem::size_of::>() + <= CALL_ALIGN as usize + ); + } + + #[test] + fn currency_constants_are_correct() { + assert_eq!(SUPPLY_FACTOR, 100); + + // txn fees + assert_eq!(TRANSACTION_BYTE_FEE, Balance::from(100 * GIGAWEI)); + assert_eq!( + get!(pallet_transaction_payment, OperationalFeeMultiplier, u8), + 5_u8 + ); + assert_eq!(STORAGE_BYTE_FEE, Balance::from(10 * MILLIGLMR)); + + // treasury minimums + assert_eq!( + get!(pallet_treasury, ProposalBondMinimum, u128), + Balance::from(100 * GLMR) + ); + + // pallet_identity deposits + assert_eq!( + get!(pallet_identity, BasicDeposit, u128), + Balance::from(10 * GLMR + 2580 * MILLIGLMR) + ); + assert_eq!( + get!(pallet_identity, ByteDeposit, u128), + Balance::from(10 * MILLIGLMR) + ); + assert_eq!( + get!(pallet_identity, SubAccountDeposit, u128), + Balance::from(10 * GLMR + 530 * MILLIGLMR) + ); + + // staking minimums + assert_eq!( + get!(pallet_parachain_staking, MinCandidateStk, u128), + Balance::from(2_000_000 * GLMR) + ); + assert_eq!( + get!(pallet_parachain_staking, MinDelegation, u128), + Balance::from(50 * GLMR) + ); + + // crowdloan min reward + assert_eq!( + get!(pallet_crowdloan_rewards, MinimumReward, u128), + Balance::from(0u128) + ); + + // deposit for AuthorMapping + assert_eq!( + get!(pallet_author_mapping, DepositAmount, u128), + Balance::from(10 * KILOGLMR) + ); + + // proxy deposits + assert_eq!( + get!(pallet_proxy, ProxyDepositBase, u128), + Balance::from(10 * GLMR + 80 * MILLIGLMR) + ); + assert_eq!( + get!(pallet_proxy, ProxyDepositFactor, u128), + Balance::from(210 * MILLIGLMR) + ); + assert_eq!( + get!(pallet_proxy, AnnouncementDepositBase, u128), + Balance::from(10 * GLMR + 80 * MILLIGLMR) + ); + assert_eq!( + get!(pallet_proxy, AnnouncementDepositFactor, u128), + Balance::from(560 * MILLIGLMR) + ); + } + + #[test] + fn max_offline_rounds_lower_or_eq_than_reward_payment_delay() { + assert!( + get!(pallet_parachain_staking, MaxOfflineRounds, u32) + <= get!(pallet_parachain_staking, RewardPaymentDelay, u32) + ); + } + + #[test] + // Required migration is + // pallet_parachain_staking::migrations::IncreaseMaxTopDelegationsPerCandidate + // Purpose of this test is to remind of required migration if constant is ever changed + fn updating_maximum_delegators_per_candidate_requires_configuring_required_migration() { + assert_eq!( + get!(pallet_parachain_staking, MaxTopDelegationsPerCandidate, u32), + 300 + ); + assert_eq!( + get!( + pallet_parachain_staking, + MaxBottomDelegationsPerCandidate, + u32 + ), + 50 + ); + } + + #[test] + fn configured_base_extrinsic_weight_is_evm_compatible() { + let min_ethereum_transaction_weight = WeightPerGas::get() * 21_000; + let base_extrinsic = ::BlockWeights::get() + .get(frame_support::dispatch::DispatchClass::Normal) + .base_extrinsic; + assert!(base_extrinsic.ref_time() <= min_ethereum_transaction_weight.ref_time()); + } + + #[test] + fn test_storage_growth_ratio_is_correct() { + // This is the highest amount of new storage that can be created in a block 40 KB + let block_storage_limit = 40 * 1024; + let expected_storage_growth_ratio = BlockGasLimit::get() + .low_u64() + .saturating_div(block_storage_limit); + let actual_storage_growth_ratio = + ::GasLimitStorageGrowthRatio::get(); + assert_eq!( + expected_storage_growth_ratio, actual_storage_growth_ratio, + "Storage growth ratio is not correct" + ); + } +} diff --git a/tracing/3001/runtime/moonbeam/src/migrations.rs b/tracing/3001/runtime/moonbeam/src/migrations.rs new file mode 100644 index 00000000..274ec8d1 --- /dev/null +++ b/tracing/3001/runtime/moonbeam/src/migrations.rs @@ -0,0 +1,58 @@ +// Copyright 2024 Moonbeam Foundation Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! # Moonbeam specific Migrations + +use crate::Runtime; +use frame_support::{traits::OnRuntimeUpgrade, weights::Weight}; +use pallet_migrations::{GetMigrations, Migration}; +use pallet_parachain_staking::migrations::{ComputeTheoreticalFirstSlot, MultiplyRoundLenBy2}; +use sp_std::{prelude::*, vec}; + +pub struct MoonbeamMigrations; + +impl GetMigrations for MoonbeamMigrations { + fn get_migrations() -> Vec> { + vec![ + Box::new(PalletStakingMultiplyRoundLenBy2), + Box::new(PalletStakingComputeTheoreticalFirstSlot), + ] + } +} + +// This migration should only be applied to runtimes with async backing enabled +pub struct PalletStakingComputeTheoreticalFirstSlot; +impl Migration for PalletStakingComputeTheoreticalFirstSlot { + fn friendly_name(&self) -> &str { + "MM_PalletStakingComputeTheoreticalFirstSlot" + } + + fn migrate(&self, _available_weight: Weight) -> Weight { + ComputeTheoreticalFirstSlot::::on_runtime_upgrade() + } +} + +// This migration should only be applied to runtimes with async backing enabled +pub struct PalletStakingMultiplyRoundLenBy2; +impl Migration for PalletStakingMultiplyRoundLenBy2 { + fn friendly_name(&self) -> &str { + "MM_MultiplyRoundLenBy2" + } + + fn migrate(&self, _available_weight: Weight) -> Weight { + MultiplyRoundLenBy2::::on_runtime_upgrade() + } +} diff --git a/tracing/3001/runtime/moonbeam/src/precompiles.rs b/tracing/3001/runtime/moonbeam/src/precompiles.rs new file mode 100644 index 00000000..b3c4f675 --- /dev/null +++ b/tracing/3001/runtime/moonbeam/src/precompiles.rs @@ -0,0 +1,286 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +use crate::{ + asset_config::ForeignAssetInstance, xcm_config::XcmExecutorConfig, OpenTechCommitteeInstance, + TreasuryCouncilInstance, +}; +use crate::{AssetId, H160}; +use frame_support::parameter_types; +use moonkit_xcm_primitives::AccountIdAssetIdConversion; +use pallet_evm_precompile_author_mapping::AuthorMappingPrecompile; +use pallet_evm_precompile_balances_erc20::{Erc20BalancesPrecompile, Erc20Metadata}; +use pallet_evm_precompile_batch::BatchPrecompile; +use pallet_evm_precompile_blake2::Blake2F; +use pallet_evm_precompile_bn128::{Bn128Add, Bn128Mul, Bn128Pairing}; +use pallet_evm_precompile_call_permit::CallPermitPrecompile; +use pallet_evm_precompile_collective::CollectivePrecompile; +use pallet_evm_precompile_conviction_voting::ConvictionVotingPrecompile; +use pallet_evm_precompile_crowdloan_rewards::CrowdloanRewardsPrecompile; +use pallet_evm_precompile_gmp::GmpPrecompile; +use pallet_evm_precompile_identity::IdentityPrecompile; +use pallet_evm_precompile_modexp::Modexp; +use pallet_evm_precompile_parachain_staking::ParachainStakingPrecompile; +use pallet_evm_precompile_preimage::PreimagePrecompile; +use pallet_evm_precompile_proxy::{OnlyIsProxyAndProxy, ProxyPrecompile}; +use pallet_evm_precompile_randomness::RandomnessPrecompile; +use pallet_evm_precompile_referenda::ReferendaPrecompile; +use pallet_evm_precompile_registry::PrecompileRegistry; +use pallet_evm_precompile_relay_encoder::RelayEncoderPrecompile; +use pallet_evm_precompile_relay_verifier::RelayDataVerifierPrecompile; +use pallet_evm_precompile_sha3fips::Sha3FIPS256; +use pallet_evm_precompile_simple::{ECRecover, ECRecoverPublicKey, Identity, Ripemd160, Sha256}; +use pallet_evm_precompile_xcm_transactor::{ + v1::XcmTransactorPrecompileV1, v2::XcmTransactorPrecompileV2, v3::XcmTransactorPrecompileV3, +}; +use pallet_evm_precompile_xcm_utils::XcmUtilsPrecompile; +use pallet_evm_precompile_xtokens::XtokensPrecompile; +use pallet_evm_precompileset_assets_erc20::Erc20AssetsPrecompileSet; +use precompile_utils::precompile_set::*; +use sp_std::prelude::*; + +pub struct NativeErc20Metadata; + +/// ERC20 metadata for the native token. +impl Erc20Metadata for NativeErc20Metadata { + /// Returns the name of the token. + fn name() -> &'static str { + "GLMR token" + } + + /// Returns the symbol of the token. + fn symbol() -> &'static str { + "GLMR" + } + + /// Returns the decimals places of the token. + fn decimals() -> u8 { + 18 + } + + /// Must return `true` only if it represents the main native currency of + /// the network. It must be the currency used in `pallet_evm`. + fn is_native_currency() -> bool { + true + } +} + +/// The asset precompile address prefix. Addresses that match against this prefix will be routed +/// to Erc20AssetsPrecompileSet being marked as foreign +pub const FOREIGN_ASSET_PRECOMPILE_ADDRESS_PREFIX: &[u8] = &[255u8; 4]; +/// The asset precompile address prefix. Addresses that match against this prefix will be routed +/// to Erc20AssetsPrecompileSet being marked as local +pub const LOCAL_ASSET_PRECOMPILE_ADDRESS_PREFIX: &[u8] = &[255u8, 255u8, 255u8, 254u8]; + +parameter_types! { + pub ForeignAssetPrefix: &'static [u8] = FOREIGN_ASSET_PRECOMPILE_ADDRESS_PREFIX; + pub LocalAssetPrefix: &'static [u8] = LOCAL_ASSET_PRECOMPILE_ADDRESS_PREFIX; +} + +type EthereumPrecompilesChecks = (AcceptDelegateCall, CallableByContract, CallableByPrecompile); + +#[precompile_utils::precompile_name_from_address] +type MoonbeamPrecompilesAt = ( + // Ethereum precompiles: + // We allow DELEGATECALL to stay compliant with Ethereum behavior. + PrecompileAt, ECRecover, EthereumPrecompilesChecks>, + PrecompileAt, Sha256, EthereumPrecompilesChecks>, + PrecompileAt, Ripemd160, EthereumPrecompilesChecks>, + PrecompileAt, Identity, EthereumPrecompilesChecks>, + PrecompileAt, Modexp, EthereumPrecompilesChecks>, + PrecompileAt, Bn128Add, EthereumPrecompilesChecks>, + PrecompileAt, Bn128Mul, EthereumPrecompilesChecks>, + PrecompileAt, Bn128Pairing, EthereumPrecompilesChecks>, + PrecompileAt, Blake2F, EthereumPrecompilesChecks>, + // Non-Moonbeam specific nor Ethereum precompiles : + PrecompileAt, Sha3FIPS256, (CallableByContract, CallableByPrecompile)>, + RemovedPrecompileAt>, // Dispatch + PrecompileAt, ECRecoverPublicKey, (CallableByContract, CallableByPrecompile)>, + // Moonbeam specific precompiles: + PrecompileAt< + AddressU64<2048>, + ParachainStakingPrecompile, + (CallableByContract, CallableByPrecompile), + >, + PrecompileAt< + AddressU64<2049>, + CrowdloanRewardsPrecompile, + (CallableByContract, CallableByPrecompile), + >, + PrecompileAt< + AddressU64<2050>, + Erc20BalancesPrecompile, + (CallableByContract, CallableByPrecompile), + >, + RemovedPrecompileAt>, // Democracy + PrecompileAt< + AddressU64<2052>, + XtokensPrecompile, + ( + SubcallWithMaxNesting<1>, + CallableByContract, + CallableByPrecompile, + ), + >, + PrecompileAt< + AddressU64<2053>, + RelayEncoderPrecompile, + (CallableByContract, CallableByPrecompile), + >, + PrecompileAt< + AddressU64<2054>, + XcmTransactorPrecompileV1, + (CallableByContract, CallableByPrecompile), + >, + PrecompileAt< + AddressU64<2055>, + AuthorMappingPrecompile, + (CallableByContract, CallableByPrecompile), + >, + PrecompileAt< + AddressU64<2056>, + BatchPrecompile, + ( + SubcallWithMaxNesting<2>, + // Batch is the only precompile allowed to call Batch. + CallableByPrecompile>>, + ), + >, + PrecompileAt< + AddressU64<2057>, + RandomnessPrecompile, + (SubcallWithMaxNesting<0>, CallableByContract), + >, + PrecompileAt< + AddressU64<2058>, + CallPermitPrecompile, + (SubcallWithMaxNesting<0>, CallableByContract), + >, + PrecompileAt< + AddressU64<2059>, + ProxyPrecompile, + ( + CallableByContract>, + SubcallWithMaxNesting<0>, + // Batch is the only precompile allowed to call Proxy. + CallableByPrecompile>>, + ), + >, + PrecompileAt< + AddressU64<2060>, + XcmUtilsPrecompile, + CallableByContract< + pallet_evm_precompile_xcm_utils::AllExceptXcmExecute, + >, + >, + PrecompileAt< + AddressU64<2061>, + XcmTransactorPrecompileV2, + (CallableByContract, CallableByPrecompile), + >, + RemovedPrecompileAt>, //CouncilInstance + RemovedPrecompileAt>, // TechCommitteeInstance + PrecompileAt< + AddressU64<2064>, + CollectivePrecompile, + (CallableByContract, CallableByPrecompile), + >, + PrecompileAt< + AddressU64<2065>, + ReferendaPrecompile, + (CallableByContract, CallableByPrecompile), + >, + PrecompileAt< + AddressU64<2066>, + ConvictionVotingPrecompile, + (CallableByContract, CallableByPrecompile), + >, + PrecompileAt< + AddressU64<2067>, + PreimagePrecompile, + (CallableByContract, CallableByPrecompile), + >, + PrecompileAt< + AddressU64<2068>, + CollectivePrecompile, + (CallableByContract, CallableByPrecompile), + >, + PrecompileAt< + AddressU64<2069>, + PrecompileRegistry, + (CallableByContract, CallableByPrecompile), + >, + PrecompileAt, GmpPrecompile, SubcallWithMaxNesting<0>>, + PrecompileAt< + AddressU64<2071>, + XcmTransactorPrecompileV3, + (CallableByContract, CallableByPrecompile), + >, + PrecompileAt< + AddressU64<2072>, + IdentityPrecompile, + (CallableByContract, CallableByPrecompile), + >, + PrecompileAt< + AddressU64<2073>, + RelayDataVerifierPrecompile, + (CallableByContract, CallableByPrecompile), + >, +); + +pub struct DisabledLocalAssets(sp_std::marker::PhantomData); + +impl sp_core::Get> for DisabledLocalAssets +where + Runtime: frame_system::Config, + Runtime::AccountId: Into, + Runtime: AccountIdAssetIdConversion, +{ + fn get() -> Vec { + vec![ + 337110116006454532607322340792629567158u128, + 278750993613512357835566279094880339619, + 228256396637196286254896220398224702687, + 270195117769614861929703564202131636628, + ] + .iter() + .map(|id| Runtime::asset_id_to_account(LOCAL_ASSET_PRECOMPILE_ADDRESS_PREFIX, *id).into()) + .collect() + } +} + +/// The PrecompileSet installed in the Moonbeam runtime. +/// We include the nine Istanbul precompiles +/// (https://github.com/ethereum/go-ethereum/blob/3c46f557/core/vm/contracts.go#L69) +/// as well as a special precompile for dispatching Substrate extrinsics +/// The following distribution has been decided for the precompiles +/// 0-1023: Ethereum Mainnet Precompiles +/// 1024-2047 Precompiles that are not in Ethereum Mainnet but are neither Moonbeam specific +/// 2048-4095 Moonbeam specific precompiles +pub type MoonbeamPrecompiles = PrecompileSetBuilder< + R, + ( + // Skip precompiles if out of range. + PrecompilesInRangeInclusive<(AddressU64<1>, AddressU64<4095>), MoonbeamPrecompilesAt>, + // Prefixed precompile sets (XC20) + PrecompileSetStartingWith< + ForeignAssetPrefix, + Erc20AssetsPrecompileSet, + (CallableByContract, CallableByPrecompile), + >, + RemovedPrecompilesAt>, + ), +>; diff --git a/tracing/3001/runtime/moonbeam/src/xcm_config.rs b/tracing/3001/runtime/moonbeam/src/xcm_config.rs new file mode 100644 index 00000000..5d95f517 --- /dev/null +++ b/tracing/3001/runtime/moonbeam/src/xcm_config.rs @@ -0,0 +1,709 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! XCM configuration for Moonbase. +//! + +use super::{ + governance, AccountId, AssetId, AssetManager, Balance, Balances, DealWithFees, Erc20XcmBridge, + MaintenanceMode, MessageQueue, ParachainInfo, ParachainSystem, Perbill, PolkadotXcm, Runtime, + RuntimeBlockWeights, RuntimeCall, RuntimeEvent, RuntimeOrigin, Treasury, XcmpQueue, +}; + +use frame_support::{ + parameter_types, + traits::{EitherOfDiverse, Everything, Nothing, PalletInfoAccess, TransformOrigin}, +}; +use moonbeam_runtime_common::weights as moonbeam_weights; +use moonkit_xcm_primitives::AccountIdAssetIdConversion; +use sp_runtime::{ + traits::{Hash as THash, MaybeEquivalence, PostDispatchInfoOf}, + DispatchErrorWithPostInfo, +}; +use sp_weights::Weight; + +use frame_system::{EnsureRoot, RawOrigin}; +use sp_core::{ConstU32, H160, H256}; + +use xcm_builder::{ + AccountKey20Aliases, AllowKnownQueryResponses, AllowSubscriptionsFrom, + AllowTopLevelPaidExecutionFrom, ConvertedConcreteId, DescribeAllTerminal, DescribeFamily, + EnsureXcmOrigin, FungibleAdapter as XcmCurrencyAdapter, FungiblesAdapter, HashedDescription, + NoChecking, ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, + SiblingParachainConvertsVia, SignedAccountKey20AsNative, SovereignSignedViaLocation, + TakeWeightCredit, UsingComponents, WeightInfoBounds, WithComputedOrigin, +}; + +use parachains_common::message_queue::{NarrowOriginToSibling, ParaIdToSibling}; +use xcm::latest::prelude::{ + Asset, GlobalConsensus, InteriorLocation, Junction, Location, NetworkId, PalletInstance, + Parachain, +}; +use xcm_executor::traits::{CallDispatcher, ConvertLocation, JustTry}; + +use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; +use orml_xcm_support::MultiNativeAsset; +use xcm_primitives::{ + AbsoluteAndRelativeReserve, AccountIdToCurrencyId, AccountIdToLocation, AsAssetType, + FirstAssetTrader, SignedToAccountId20, UtilityAvailableCalls, UtilityEncodeCall, XcmTransact, +}; + +use parity_scale_codec::{Decode, Encode}; +use scale_info::TypeInfo; + +use sp_core::Get; +use sp_std::{ + convert::{From, Into, TryFrom}, + prelude::*, +}; + +use orml_traits::parameter_type_with_key; + +use crate::governance::referenda::{FastGeneralAdminOrRoot, GeneralAdminOrRoot}; + +parameter_types! { + // The network Id of the relay + pub const RelayNetwork: NetworkId = NetworkId::Polkadot; + // The relay chain Origin type + pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); + pub UniversalLocation: InteriorLocation = + [GlobalConsensus(RelayNetwork::get()), Parachain(ParachainInfo::parachain_id().into())].into(); + // Self Reserve location, defines the multilocation identifiying the self-reserve currency + // This is used to match it also against our Balances pallet when we receive such + // a Location: (Self Balances pallet index) + // We use the RELATIVE multilocation + pub SelfReserve: Location = Location { + parents:0, + interior: [ + PalletInstance(::index() as u8) + ].into() + }; +} + +/// Type for specifying how a `Location` 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 default `AccountId`. + ParentIsPreset, + // Sibling parachain origins convert to AccountId via the `ParaId::into`. + SiblingParachainConvertsVia, + // If we receive a Location of type AccountKey20, just generate a native account + AccountKey20Aliases, + // Generate remote accounts according to polkadot standards + HashedDescription>, +); + +/// Wrapper type around `LocationToAccountId` to convert an `AccountId` to type `H160`. +pub struct LocationToH160; +impl ConvertLocation for LocationToH160 { + fn convert_location(location: &Location) -> Option { + >::convert_location(location) + .map(Into::into) + } +} + +// The non-reserve fungible transactor type +// It will use pallet-assets, and the Id will be matched against AsAssetType +pub type ForeignFungiblesTransactor = FungiblesAdapter< + // Use this fungibles implementation: + super::Assets, + // Use this currency when it is a fungible asset matching the given location or name: + ( + ConvertedConcreteId< + AssetId, + Balance, + AsAssetType, + JustTry, + >, + ), + // Do a simple punn to convert an AccountId20 Location into a native chain account ID: + LocationToAccountId, + // Our chain's account ID type (we can't get away without mentioning it explicitly): + AccountId, + // We dont allow teleports. + NoChecking, + // We dont track any teleports + (), +>; + +/// The transactor for our own chain currency. +pub type LocalAssetTransactor = XcmCurrencyAdapter< + // Use this currency: + Balances, + // Use this currency when it is a fungible asset matching any of the locations in + // SelfReserveRepresentations + xcm_builder::IsConcrete, + // We can convert the MultiLocations with our converter above: + LocationToAccountId, + // Our chain's account ID type (we can't get away without mentioning it explicitly): + AccountId, + // We dont allow teleport + (), +>; + +// We use all transactors +pub type AssetTransactors = ( + LocalAssetTransactor, + ForeignFungiblesTransactor, + Erc20XcmBridge, +); + +/// 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 + // recognised. + RelayChainAsNative, + // Native converter for sibling Parachains; will convert to a `SiblingPara` origin when + // recognised. + SiblingParachainAsNative, + // Xcm origins can be represented natively under the Xcm pallet's Xcm origin. + pallet_xcm::XcmPassthrough, + // Xcm Origins defined by a Multilocation of type AccountKey20 can be converted to a 20 byte- + // account local origin + SignedAccountKey20AsNative, +); + +parameter_types! { + /// The amount of weight an XCM operation takes. This is safe overestimate. + pub UnitWeightCost: Weight = Weight::from_parts(200_000_000u64, 0); + /// Maximum number of instructions in a single XCM fragment. A sanity check against + /// weight caculations getting too crazy. + pub MaxInstructions: u32 = 100; +} + +/// Xcm Weigher shared between multiple Xcm-related configs. +pub type XcmWeigher = WeightInfoBounds< + moonbeam_xcm_benchmarks::weights::XcmWeight, + RuntimeCall, + MaxInstructions, +>; + +pub type XcmBarrier = ( + // Weight that is paid for may be consumed. + TakeWeightCredit, + // Expected responses are OK. + AllowKnownQueryResponses, + WithComputedOrigin< + ( + // If the message is one that immediately attemps to pay for execution, then allow it. + AllowTopLevelPaidExecutionFrom, + // Subscriptions for version tracking are OK. + AllowSubscriptionsFrom, + ), + UniversalLocation, + ConstU32<8>, + >, +); + +parameter_types! { + /// Xcm fees will go to the treasury account + pub XcmFeesAccount: AccountId = Treasury::account_id(); +} + +/// This is the struct that will handle the revenue from xcm fees +/// We do not burn anything because we want to mimic exactly what +/// the sovereign account has +pub type XcmFeesToAccount = xcm_primitives::XcmFeesToAccount< + super::Assets, + ( + ConvertedConcreteId< + AssetId, + Balance, + AsAssetType, + JustTry, + >, + ), + AccountId, + XcmFeesAccount, +>; + +pub struct SafeCallFilter; +impl frame_support::traits::Contains for SafeCallFilter { + fn contains(_call: &RuntimeCall) -> bool { + // TODO review + // This needs to be addressed at EVM level + true + } +} + +parameter_types! { + pub const MaxAssetsIntoHolding: u32 = xcm_primitives::MAX_ASSETS; +} + +// Our implementation of the Moonbeam Call +// Attachs the right origin in case the call is made to pallet-ethereum-xcm +#[cfg(not(feature = "evm-tracing"))] +moonbeam_runtime_common::impl_moonbeam_xcm_call!(); +#[cfg(feature = "evm-tracing")] +moonbeam_runtime_common::impl_moonbeam_xcm_call_tracing!(); + +moonbeam_runtime_common::impl_evm_runner_precompile_or_eth_xcm!(); + +pub struct XcmExecutorConfig; +impl xcm_executor::Config for XcmExecutorConfig { + type RuntimeCall = RuntimeCall; + type XcmSender = XcmRouter; + // How to withdraw and deposit an asset. + type AssetTransactor = AssetTransactors; + type OriginConverter = XcmOriginToTransactDispatchOrigin; + // Filter to the reserve withdraw operations + // Whenever the reserve matches the relative or absolute value + // of our chain, we always return the relative reserve + type IsReserve = MultiNativeAsset>; + type IsTeleporter = (); // No teleport + type UniversalLocation = UniversalLocation; + type Barrier = XcmBarrier; + type Weigher = XcmWeigher; + // We use two traders + // When we receive the relative representation of the self-reserve asset, + // we use UsingComponents and the local way of handling fees + // When we receive a non-reserve asset, we use AssetManager to fetch how many + // units per second we should charge + type Trader = ( + UsingComponents< + ::WeightToFee, + SelfReserve, + AccountId, + Balances, + DealWithFees, + >, + FirstAssetTrader, + ); + type ResponseHandler = PolkadotXcm; + type SubscriptionService = PolkadotXcm; + type AssetTrap = pallet_erc20_xcm_bridge::AssetTrapWrapper; + type AssetClaims = PolkadotXcm; + type CallDispatcher = MoonbeamCall; + type PalletInstancesInfo = crate::AllPalletsWithSystem; + type MaxAssetsIntoHolding = MaxAssetsIntoHolding; + type AssetLocker = (); + type AssetExchanger = (); + type FeeManager = (); + type MessageExporter = (); + type UniversalAliases = Nothing; + type SafeCallFilter = SafeCallFilter; + type Aliasers = Nothing; + type TransactionalProcessor = xcm_builder::FrameTransactionalProcessor; +} + +type XcmExecutor = pallet_erc20_xcm_bridge::XcmExecutorWrapper< + XcmExecutorConfig, + xcm_executor::XcmExecutor, +>; + +// Converts a Signed Local Origin into a Location +pub type LocalOriginToLocation = SignedToAccountId20; + +/// 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, +); + +impl pallet_xcm::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type SendXcmOrigin = EnsureXcmOrigin; + type XcmRouter = XcmRouter; + type ExecuteXcmOrigin = EnsureXcmOrigin; + type XcmExecuteFilter = Nothing; + type XcmExecutor = XcmExecutor; + type XcmTeleportFilter = Nothing; + type XcmReserveTransferFilter = Everything; + type Weigher = XcmWeigher; + 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 MaxRemoteLockConsumers = ConstU32<0>; + type RemoteLockConsumerIdentifier = (); + // TODO pallet-xcm weights + type WeightInfo = moonbeam_weights::pallet_xcm::WeightInfo; + type AdminOrigin = EnsureRoot; +} + +impl cumulus_pallet_xcm::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type XcmExecutor = XcmExecutor; +} + +impl cumulus_pallet_xcmp_queue::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type ChannelInfo = ParachainSystem; + type VersionWrapper = PolkadotXcm; + type XcmpQueue = TransformOrigin; + type MaxInboundSuspended = sp_core::ConstU32<1_000>; + type ControllerOrigin = EnsureRoot; + type ControllerOriginConverter = XcmOriginToTransactDispatchOrigin; + type WeightInfo = moonbeam_weights::cumulus_pallet_xcmp_queue::WeightInfo; + type PriceForSiblingDelivery = polkadot_runtime_common::xcm_sender::NoPriceForMessageDelivery< + cumulus_primitives_core::ParaId, + >; +} + +parameter_types! { + pub const RelayOrigin: AggregateMessageOrigin = AggregateMessageOrigin::Parent; +} + +// TODO: This pallet can be removed after the lazy migration is done and +// event `Completed` is emitted. +// https://github.com/paritytech/polkadot-sdk/pull/1246 +impl cumulus_pallet_dmp_queue::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type DmpSink = frame_support::traits::EnqueueWithOrigin; + type WeightInfo = cumulus_pallet_dmp_queue::weights::SubstrateWeight; +} + +parameter_types! { + /// The amount of weight (if any) which should be provided to the message queue for + /// servicing enqueued items. + /// + /// This may be legitimately `None` in the case that you will call + /// `ServiceQueues::service_queues` manually. + pub MessageQueueServiceWeight: Weight = + Perbill::from_percent(25) * RuntimeBlockWeights::get().max_block; + /// The maximum number of stale pages (i.e. of overweight messages) allowed before culling + /// can happen. Once there are more stale pages than this, then historical pages may be + /// dropped, even if they contain unprocessed overweight messages. + pub const MessageQueueMaxStale: u32 = 8; + /// The size of the page; this implies the maximum message size which can be sent. + /// + /// A good value depends on the expected message sizes, their weights, the weight that is + /// available for processing them and the maximal needed message size. The maximal message + /// size is slightly lower than this as defined by [`MaxMessageLenOf`]. + pub const MessageQueueHeapSize: u32 = 128 * 1048; +} + +impl pallet_message_queue::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + #[cfg(feature = "runtime-benchmarks")] + type MessageProcessor = pallet_message_queue::mock_helpers::NoopMessageProcessor< + cumulus_primitives_core::AggregateMessageOrigin, + >; + #[cfg(not(feature = "runtime-benchmarks"))] + type MessageProcessor = + xcm_builder::ProcessXcmMessage; + type Size = u32; + type HeapSize = MessageQueueHeapSize; + type MaxStale = MessageQueueMaxStale; + type ServiceWeight = MessageQueueServiceWeight; + // The XCMP queue pallet is only ever able to handle the `Sibling(ParaId)` origin: + type QueueChangeHandler = NarrowOriginToSibling; + // NarrowOriginToSibling calls XcmpQueue's is_paused if Origin is sibling. Allows all other origins + type QueuePausedQuery = (MaintenanceMode, NarrowOriginToSibling); + type WeightInfo = pallet_message_queue::weights::SubstrateWeight; +} + +// Our AssetType. For now we only handle Xcm Assets +#[derive(Clone, Eq, Debug, PartialEq, Ord, PartialOrd, Encode, Decode, TypeInfo)] +pub enum AssetType { + Xcm(xcm::v3::Location), +} +impl Default for AssetType { + fn default() -> Self { + Self::Xcm(xcm::v3::Location::here()) + } +} + +impl From for AssetType { + fn from(location: xcm::v3::Location) -> Self { + Self::Xcm(location) + } +} + +// This can be removed once we fully adopt xcm::v4 everywhere +impl TryFrom for AssetType { + type Error = (); + fn try_from(location: Location) -> Result { + Ok(Self::Xcm(location.try_into()?)) + } +} + +impl Into> for AssetType { + fn into(self) -> Option { + match self { + Self::Xcm(location) => Some(location), + } + } +} + +impl Into> for AssetType { + fn into(self) -> Option { + match self { + Self::Xcm(location) => xcm_builder::V4V3LocationConverter::convert_back(&location), + } + } +} + +// Implementation on how to retrieve the AssetId from an AssetType +// We simply hash the AssetType and take the lowest 128 bits +impl From for AssetId { + fn from(asset: AssetType) -> AssetId { + match asset { + AssetType::Xcm(id) => { + let mut result: [u8; 16] = [0u8; 16]; + let hash: H256 = id.using_encoded(::Hashing::hash); + result.copy_from_slice(&hash.as_fixed_bytes()[0..16]); + u128::from_le_bytes(result) + } + } + } +} + +// Our currencyId. We distinguish for now between SelfReserve, and Others, defined by their Id. +#[derive(Clone, Eq, Debug, PartialEq, Ord, PartialOrd, Encode, Decode, TypeInfo)] +pub enum CurrencyId { + // Our native token + SelfReserve, + // Assets representing other chains native tokens + ForeignAsset(AssetId), + // Erc20 token + Erc20 { contract_address: H160 }, +} + +impl AccountIdToCurrencyId for Runtime { + fn account_to_currency_id(account: AccountId) -> Option { + Some(match account { + // the self-reserve currency is identified by the pallet-balances address + a if a == H160::from_low_u64_be(2050).into() => CurrencyId::SelfReserve, + // the rest of the currencies, by their corresponding erc20 address + _ => match Runtime::account_to_asset_id(account) { + // We distinguish by prefix, and depending on it we create either + // Foreign or Local + Some((_prefix, asset_id)) => CurrencyId::ForeignAsset(asset_id), + // If no known prefix is identified, we consider that it's a "real" erc20 token + // (i.e. managed by a real smart contract) + None => CurrencyId::Erc20 { + contract_address: account.into(), + }, + }, + }) + } +} +// How to convert from CurrencyId to Location +pub struct CurrencyIdToLocation(sp_std::marker::PhantomData); +impl sp_runtime::traits::Convert> + for CurrencyIdToLocation +where + AssetXConverter: sp_runtime::traits::MaybeEquivalence, +{ + fn convert(currency: CurrencyId) -> Option { + match currency { + CurrencyId::SelfReserve => { + let multi: Location = SelfReserve::get(); + Some(multi) + } + CurrencyId::ForeignAsset(asset) => AssetXConverter::convert_back(&asset), + CurrencyId::Erc20 { contract_address } => { + let mut location = Erc20XcmBridgePalletLocation::get(); + location + .push_interior(Junction::AccountKey20 { + key: contract_address.0, + network: None, + }) + .ok(); + Some(location) + } + } + } +} + +parameter_types! { + pub const BaseXcmWeight: Weight = Weight::from_parts(200_000_000u64, 0); + pub const MaxAssetsForTransfer: usize = 2; + + // This is how we are going to detect whether the asset is a Reserve asset + // This however is the chain part only + pub SelfLocation: Location = Location::here(); + // We need this to be able to catch when someone is trying to execute a non- + // cross-chain transfer in xtokens through the absolute path way + pub SelfLocationAbsolute: Location = Location { + parents:1, + interior: [ + Parachain(ParachainInfo::parachain_id().into()) + ].into() + }; +} + +parameter_type_with_key! { + pub ParachainMinFee: |location: Location| -> Option { + match (location.parents, location.first_interior()) { + // Polkadot AssetHub fee + (1, Some(Parachain(1000u32))) => Some(50_000_000u128), + _ => None, + } + }; +} + +impl orml_xtokens::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Balance = Balance; + type CurrencyId = CurrencyId; + type AccountIdToLocation = AccountIdToLocation; + type CurrencyIdConvert = CurrencyIdToLocation>; + type XcmExecutor = XcmExecutor; + type SelfLocation = SelfLocation; + type Weigher = XcmWeigher; + type BaseXcmWeight = BaseXcmWeight; + type UniversalLocation = UniversalLocation; + type MaxAssetsForTransfer = MaxAssetsForTransfer; + type MinXcmFee = ParachainMinFee; + type LocationsFilter = Everything; + type ReserveProvider = AbsoluteAndRelativeReserve; +} + +// 1 DOT should be enough +parameter_types! { + pub MaxHrmpRelayFee: Asset = (Location::parent(), 1_000_000_000_000u128).into(); +} + +// For now we only allow to transact in the relay, although this might change in the future +// Transactors just defines the chains in which we allow transactions to be issued through +// xcm +#[derive(Clone, Eq, Debug, PartialEq, Ord, PartialOrd, Encode, Decode, TypeInfo)] +pub enum Transactors { + Relay, +} + +// Default for benchmarking +#[cfg(feature = "runtime-benchmarks")] +impl Default for Transactors { + fn default() -> Self { + Transactors::Relay + } +} + +impl TryFrom for Transactors { + type Error = (); + fn try_from(value: u8) -> Result { + match value { + 0u8 => Ok(Transactors::Relay), + _ => Err(()), + } + } +} + +impl UtilityEncodeCall for Transactors { + fn encode_call(self, call: UtilityAvailableCalls) -> Vec { + match self { + Transactors::Relay => pallet_xcm_transactor::Pallet::::encode_call( + pallet_xcm_transactor::Pallet(sp_std::marker::PhantomData::), + call, + ), + } + } +} + +impl XcmTransact for Transactors { + fn destination(self) -> Location { + match self { + Transactors::Relay => Location::parent(), + } + } +} + +pub type DerivativeAddressRegistrationOrigin = + EitherOfDiverse, governance::custom_origins::GeneralAdmin>; + +impl pallet_xcm_transactor::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Balance = Balance; + type Transactor = Transactors; + type DerivativeAddressRegistrationOrigin = DerivativeAddressRegistrationOrigin; + type SovereignAccountDispatcherOrigin = EnsureRoot; + type CurrencyId = CurrencyId; + type AccountIdToLocation = AccountIdToLocation; + type CurrencyIdToLocation = CurrencyIdToLocation>; + type XcmSender = XcmRouter; + type SelfLocation = SelfLocation; + type Weigher = XcmWeigher; + type UniversalLocation = UniversalLocation; + type BaseXcmWeight = BaseXcmWeight; + type AssetTransactor = AssetTransactors; + type ReserveProvider = AbsoluteAndRelativeReserve; + type WeightInfo = moonbeam_weights::pallet_xcm_transactor::WeightInfo; + type HrmpManipulatorOrigin = GeneralAdminOrRoot; + type HrmpOpenOrigin = FastGeneralAdminOrRoot; + type MaxHrmpFee = xcm_builder::Case; +} + +parameter_types! { + // This is the relative view of erc20 assets. + // Identified by this prefix + AccountKey20(contractAddress) + // We use the RELATIVE multilocation + pub Erc20XcmBridgePalletLocation: Location = Location { + parents:0, + interior: [ + PalletInstance(::index() as u8) + ].into() + }; + + // To be able to support almost all erc20 implementations, + // we provide a sufficiently hight gas limit. + pub Erc20XcmBridgeTransferGasLimit: u64 = 200_000; +} + +impl pallet_erc20_xcm_bridge::Config for Runtime { + type AccountIdConverter = LocationToH160; + type Erc20MultilocationPrefix = Erc20XcmBridgePalletLocation; + type Erc20TransferGasLimit = Erc20XcmBridgeTransferGasLimit; + type EvmRunner = EvmRunnerPrecompileOrEthXcm; +} + +#[cfg(feature = "runtime-benchmarks")] +mod testing { + use super::*; + use xcm_builder::V4V3LocationConverter; + + /// This From exists for benchmarking purposes. It has the potential side-effect of calling + /// AssetManager::set_asset_type_asset_id() and should NOT be used in any production code. + impl From for CurrencyId { + fn from(location: Location) -> CurrencyId { + use xcm_primitives::AssetTypeGetter; + + // If it does not exist, for benchmarking purposes, we create the association + let asset_id = if let Some(asset_id) = + AsAssetType::::convert_location(&location) + { + asset_id + } else { + let asset_type = AssetType::Xcm( + V4V3LocationConverter::convert(&location).expect("convert to v3"), + ); + let asset_id: AssetId = asset_type.clone().into(); + AssetManager::set_asset_type_asset_id(asset_type, asset_id); + asset_id + }; + + CurrencyId::ForeignAsset(asset_id) + } + } +} diff --git a/tracing/3001/runtime/moonbeam/tests/common/mod.rs b/tracing/3001/runtime/moonbeam/tests/common/mod.rs new file mode 100644 index 00000000..3d92f80a --- /dev/null +++ b/tracing/3001/runtime/moonbeam/tests/common/mod.rs @@ -0,0 +1,394 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +#![allow(dead_code)] + +use cumulus_primitives_parachain_inherent::ParachainInherentData; +use fp_evm::GenesisAccount; +use frame_support::{ + assert_ok, + traits::{OnFinalize, OnInitialize}, +}; +pub use moonbeam_runtime::{ + asset_config::AssetRegistrarMetadata, currency::GLMR, xcm_config::AssetType, AccountId, + AssetId, AssetManager, AsyncBacking, AuthorInherent, Balance, Ethereum, InflationInfo, + ParachainStaking, Range, Runtime, RuntimeCall, RuntimeEvent, System, TransactionConverter, + UncheckedExtrinsic, HOURS, +}; +use nimbus_primitives::{NimbusId, NIMBUS_ENGINE_ID}; +use polkadot_parachain::primitives::HeadData; +use sp_consensus_slots::Slot; +use sp_core::{Encode, H160}; +use sp_runtime::{traits::Dispatchable, BuildStorage, Digest, DigestItem, Perbill, Percent}; + +use std::collections::BTreeMap; + +use fp_rpc::ConvertTransaction; + +// A valid signed Alice transfer. +pub const VALID_ETH_TX: &str = + "02f869820501808085e8d4a51000825208943cd0a705a2dc65e5b1e1205896baa2be8a07c6e00180c\ + 001a061087911e877a5802142a89a40d231d50913db399eb50839bb2d04e612b22ec8a01aa313efdf2\ + 793bea76da6813bda611444af16a6207a8cfef2d9c8aa8f8012f7"; + +// An invalid signed Alice transfer with a gas limit artifically set to 0. +pub const INVALID_ETH_TX: &str = + "f8628085174876e800809412cb274aad8251c875c0bf6872b67d9983e53fdd01801ba011110796057\ + 0e2d49fcc2afbc582e1abd3eeb027242b92abcebcec7cdefab63ea001732f6fac84acdd5b096554230\ + 75003e7f07430652c3d6722e18f50b3d34e29"; + +pub fn rpc_run_to_block(n: u32) { + while System::block_number() < n { + Ethereum::on_finalize(System::block_number()); + System::set_block_number(System::block_number() + 1); + Ethereum::on_initialize(System::block_number()); + } +} + +/// Utility function that advances the chain to the desired block number. +/// If an author is provided, that author information is injected to all the blocks in the meantime. +pub fn run_to_block(n: u32, author: Option) { + // Finalize the first block + Ethereum::on_finalize(System::block_number()); + while System::block_number() < n { + // Set the new block number and author + match author { + Some(ref author) => { + let pre_digest = Digest { + logs: vec![DigestItem::PreRuntime(NIMBUS_ENGINE_ID, author.encode())], + }; + System::reset_events(); + System::initialize( + &(System::block_number() + 1), + &System::parent_hash(), + &pre_digest, + ); + } + None => { + System::set_block_number(System::block_number() + 1); + } + } + + increase_last_relay_slot_number(1); + + // Initialize the new block + AuthorInherent::on_initialize(System::block_number()); + ParachainStaking::on_initialize(System::block_number()); + Ethereum::on_initialize(System::block_number()); + + // Finalize the block + Ethereum::on_finalize(System::block_number()); + ParachainStaking::on_finalize(System::block_number()); + } +} + +pub fn last_event() -> RuntimeEvent { + System::events().pop().expect("Event expected").event +} + +// Helper function to give a simple evm context suitable for tests. +// We can remove this once https://github.com/rust-blockchain/evm/pull/35 +// is in our dependency graph. +pub fn evm_test_context() -> fp_evm::Context { + fp_evm::Context { + address: Default::default(), + caller: Default::default(), + apparent_value: From::from(0), + } +} + +// Test struct with the purpose of initializing xcm assets +#[derive(Clone)] +pub struct XcmAssetInitialization { + pub asset_type: AssetType, + pub metadata: AssetRegistrarMetadata, + pub balances: Vec<(AccountId, Balance)>, + pub is_sufficient: bool, +} + +pub struct ExtBuilder { + // endowed accounts with balances + balances: Vec<(AccountId, Balance)>, + // [collator, amount] + collators: Vec<(AccountId, Balance)>, + // [delegator, collator, nomination_amount] + delegations: Vec<(AccountId, AccountId, Balance, Percent)>, + // per-round inflation config + inflation: InflationInfo, + // AuthorId -> AccountId mappings + mappings: Vec<(NimbusId, AccountId)>, + // Crowdloan fund + crowdloan_fund: Balance, + // Chain id + chain_id: u64, + // EVM genesis accounts + evm_accounts: BTreeMap, + // [assettype, metadata, Vec, is_sufficient] + xcm_assets: Vec, + safe_xcm_version: Option, +} + +impl Default for ExtBuilder { + fn default() -> ExtBuilder { + ExtBuilder { + balances: vec![], + delegations: vec![], + collators: vec![], + inflation: InflationInfo { + expect: Range { + min: 100_000 * GLMR, + ideal: 200_000 * GLMR, + max: 500_000 * GLMR, + }, + // not used + annual: Range { + min: Perbill::from_percent(50), + ideal: Perbill::from_percent(50), + max: Perbill::from_percent(50), + }, + // unrealistically high parameterization, only for testing + round: Range { + min: Perbill::from_percent(5), + ideal: Perbill::from_percent(5), + max: Perbill::from_percent(5), + }, + }, + mappings: vec![], + crowdloan_fund: 0, + chain_id: CHAIN_ID, + evm_accounts: BTreeMap::new(), + xcm_assets: vec![], + safe_xcm_version: None, + } + } +} + +impl ExtBuilder { + pub fn with_evm_accounts(mut self, accounts: BTreeMap) -> Self { + self.evm_accounts = accounts; + self + } + + pub fn with_balances(mut self, balances: Vec<(AccountId, Balance)>) -> Self { + self.balances = balances; + self + } + + pub fn with_collators(mut self, collators: Vec<(AccountId, Balance)>) -> Self { + self.collators = collators; + self + } + + pub fn with_delegations(mut self, delegations: Vec<(AccountId, AccountId, Balance)>) -> Self { + self.delegations = delegations + .into_iter() + .map(|d| (d.0, d.1, d.2, Percent::zero())) + .collect(); + self + } + + pub fn with_crowdloan_fund(mut self, crowdloan_fund: Balance) -> Self { + self.crowdloan_fund = crowdloan_fund; + self + } + + pub fn with_mappings(mut self, mappings: Vec<(NimbusId, AccountId)>) -> Self { + self.mappings = mappings; + self + } + + pub fn with_xcm_assets(mut self, xcm_assets: Vec) -> Self { + self.xcm_assets = xcm_assets; + self + } + + pub fn with_safe_xcm_version(mut self, safe_xcm_version: u32) -> Self { + self.safe_xcm_version = Some(safe_xcm_version); + self + } + + #[allow(dead_code)] + pub fn with_inflation(mut self, inflation: InflationInfo) -> Self { + self.inflation = inflation; + self + } + + pub fn build(self) -> sp_io::TestExternalities { + let mut t = frame_system::GenesisConfig::::default() + .build_storage() + .unwrap(); + + pallet_balances::GenesisConfig:: { + balances: self.balances, + } + .assimilate_storage(&mut t) + .unwrap(); + + pallet_parachain_staking::GenesisConfig:: { + candidates: self.collators, + delegations: self.delegations, + inflation_config: self.inflation, + collator_commission: Perbill::from_percent(20), + parachain_bond_reserve_percent: Percent::from_percent(30), + blocks_per_round: 6 * HOURS, + num_selected_candidates: 8, + } + .assimilate_storage(&mut t) + .unwrap(); + + pallet_crowdloan_rewards::GenesisConfig:: { + funded_amount: self.crowdloan_fund, + } + .assimilate_storage(&mut t) + .unwrap(); + + pallet_author_mapping::GenesisConfig:: { + mappings: self.mappings, + } + .assimilate_storage(&mut t) + .unwrap(); + + let genesis_config = pallet_evm_chain_id::GenesisConfig:: { + chain_id: self.chain_id, + ..Default::default() + }; + genesis_config.assimilate_storage(&mut t).unwrap(); + + let genesis_config = pallet_evm::GenesisConfig:: { + accounts: self.evm_accounts, + ..Default::default() + }; + genesis_config.assimilate_storage(&mut t).unwrap(); + + let genesis_config = pallet_ethereum::GenesisConfig:: { + ..Default::default() + }; + genesis_config.assimilate_storage(&mut t).unwrap(); + + let genesis_config = pallet_xcm::GenesisConfig:: { + safe_xcm_version: self.safe_xcm_version, + ..Default::default() + }; + genesis_config.assimilate_storage(&mut t).unwrap(); + + let mut ext = sp_io::TestExternalities::new(t); + let xcm_assets = self.xcm_assets.clone(); + ext.execute_with(|| { + // If any xcm assets specified, we register them here + for xcm_asset_initialization in xcm_assets { + let asset_id: AssetId = xcm_asset_initialization.asset_type.clone().into(); + AssetManager::register_foreign_asset( + root_origin(), + xcm_asset_initialization.asset_type, + xcm_asset_initialization.metadata, + 1, + xcm_asset_initialization.is_sufficient, + ) + .unwrap(); + for (account, balance) in xcm_asset_initialization.balances { + moonbeam_runtime::Assets::mint( + origin_of(AssetManager::account_id()), + asset_id.into(), + account, + balance, + ) + .unwrap(); + } + } + System::set_block_number(1); + }); + ext + } +} + +pub const CHAIN_ID: u64 = 1281; +pub const ALICE: [u8; 20] = [4u8; 20]; +pub const ALICE_NIMBUS: [u8; 32] = [4u8; 32]; +pub const BOB: [u8; 20] = [5u8; 20]; +pub const CHARLIE: [u8; 20] = [6u8; 20]; +pub const DAVE: [u8; 20] = [7u8; 20]; +pub const EVM_CONTRACT: [u8; 20] = [8u8; 20]; + +pub fn origin_of(account_id: AccountId) -> ::RuntimeOrigin { + ::RuntimeOrigin::signed(account_id) +} + +pub fn inherent_origin() -> ::RuntimeOrigin { + ::RuntimeOrigin::none() +} + +pub fn root_origin() -> ::RuntimeOrigin { + ::RuntimeOrigin::root() +} + +/// Mock the inherent that sets validation data in ParachainSystem, which +/// contains the `relay_chain_block_number`, which is used in `author-filter` as a +/// source of randomness to filter valid authors at each block. +pub fn set_parachain_inherent_data() { + use cumulus_primitives_core::PersistedValidationData; + use cumulus_test_relay_sproof_builder::RelayStateSproofBuilder; + + let mut relay_sproof = RelayStateSproofBuilder::default(); + relay_sproof.para_id = 100u32.into(); + relay_sproof.included_para_head = Some(HeadData(vec![1, 2, 3])); + + let additional_key_values = vec![( + moonbeam_core_primitives::well_known_relay_keys::TIMESTAMP_NOW.to_vec(), + sp_timestamp::Timestamp::default().encode(), + )]; + + relay_sproof.additional_key_values = additional_key_values; + + let (relay_parent_storage_root, relay_chain_state) = relay_sproof.into_state_root_and_proof(); + + let vfp = PersistedValidationData { + relay_parent_number: 1u32, + relay_parent_storage_root, + ..Default::default() + }; + let parachain_inherent_data = ParachainInherentData { + validation_data: vfp, + relay_chain_state: relay_chain_state, + downward_messages: Default::default(), + horizontal_messages: Default::default(), + }; + assert_ok!(RuntimeCall::ParachainSystem( + cumulus_pallet_parachain_system::Call::::set_validation_data { + data: parachain_inherent_data + } + ) + .dispatch(inherent_origin())); +} + +pub fn unchecked_eth_tx(raw_hex_tx: &str) -> UncheckedExtrinsic { + let converter = TransactionConverter; + converter.convert_transaction(ethereum_transaction(raw_hex_tx)) +} + +pub fn ethereum_transaction(raw_hex_tx: &str) -> pallet_ethereum::Transaction { + let bytes = hex::decode(raw_hex_tx).expect("Transaction bytes."); + let transaction = ethereum::EnvelopedDecodable::decode(&bytes[..]); + assert!(transaction.is_ok()); + transaction.unwrap() +} + +pub(crate) fn increase_last_relay_slot_number(amount: u64) { + let last_relay_slot = u64::from(AsyncBacking::slot_info().unwrap_or_default().0); + frame_support::storage::unhashed::put( + &frame_support::storage::storage_prefix(b"AsyncBacking", b"SlotInfo"), + &((Slot::from(last_relay_slot + amount), 0)), + ); +} diff --git a/tracing/3001/runtime/moonbeam/tests/evm_tracing.rs b/tracing/3001/runtime/moonbeam/tests/evm_tracing.rs new file mode 100644 index 00000000..c47675d1 --- /dev/null +++ b/tracing/3001/runtime/moonbeam/tests/evm_tracing.rs @@ -0,0 +1,144 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Moonbeam EVM tracing Integration Tests + +mod common; + +#[cfg(test)] +#[cfg(feature = "evm-tracing")] +mod tests { + use super::common::*; + + use pallet_evm::AddressMapping; + use sp_core::{H160, U256}; + + use moonbeam_core_primitives::Header; + use moonbeam_rpc_primitives_debug::runtime_decl_for_debug_runtime_api::DebugRuntimeApi; + use std::str::FromStr; + + #[test] + fn debug_runtime_api_trace_transaction() { + let alith = ::AddressMapping::into_account_id( + H160::from_str("6be02d1d3665660d22ff9624b7be0551ee1ac91b") + .expect("internal H160 is valid; qed"), + ); + ExtBuilder::default() + .with_balances(vec![ + (alith, 2_000 * GLMR), + (AccountId::from(ALICE), 2_000 * GLMR), + (AccountId::from(BOB), 1_000 * GLMR), + ]) + .build() + .execute_with(|| { + let non_eth_uxt = UncheckedExtrinsic::new_unsigned( + pallet_balances::Call::::transfer_allow_death { + dest: AccountId::from(BOB), + value: 1 * GLMR, + } + .into(), + ); + let transaction = ethereum_transaction(VALID_ETH_TX); + let eth_uxt = unchecked_eth_tx(VALID_ETH_TX); + let block = Header { + digest: Default::default(), + extrinsics_root: Default::default(), + number: 1, + parent_hash: Default::default(), + state_root: Default::default(), + }; + assert!(Runtime::trace_transaction( + vec![non_eth_uxt.clone(), eth_uxt, non_eth_uxt.clone()], + &transaction, + &block + ) + .is_ok()); + }); + } + + #[test] + fn debug_runtime_api_trace_block() { + let alith = ::AddressMapping::into_account_id( + H160::from_str("6be02d1d3665660d22ff9624b7be0551ee1ac91b") + .expect("internal H160 is valid; qed"), + ); + ExtBuilder::default() + .with_balances(vec![ + (alith, 2_000 * GLMR), + (AccountId::from(ALICE), 2_000 * GLMR), + (AccountId::from(BOB), 1_000 * GLMR), + ]) + .build() + .execute_with(|| { + let non_eth_uxt = UncheckedExtrinsic::new_unsigned( + pallet_balances::Call::::transfer_allow_death { + dest: AccountId::from(BOB), + value: 1 * GLMR, + } + .into(), + ); + let eth_uxt = unchecked_eth_tx(VALID_ETH_TX); + let eth_tx = ethereum_transaction(VALID_ETH_TX); + let eth_extrinsic_hash = eth_tx.hash(); + let block = Header { + digest: Default::default(), + extrinsics_root: Default::default(), + number: 1, + parent_hash: Default::default(), + state_root: Default::default(), + }; + assert!(Runtime::trace_block( + vec![non_eth_uxt.clone(), eth_uxt.clone(), non_eth_uxt, eth_uxt], + vec![eth_extrinsic_hash, eth_extrinsic_hash], + &block + ) + .is_ok()); + }); + } + + #[test] + fn debug_runtime_api_trace_call() { + let block = Header { + digest: Default::default(), + extrinsics_root: Default::default(), + number: 1, + parent_hash: Default::default(), + state_root: Default::default(), + }; + let alith = H160::from_str("6be02d1d3665660d22ff9624b7be0551ee1ac91b") + .expect("internal H160 is valid; qed"); + let alith_account_id = + ::AddressMapping::into_account_id(alith); + ExtBuilder::default() + .with_balances(vec![(alith_account_id, 100 * GLMR)]) + .build() + .execute_with(|| { + assert!(Runtime::trace_call( + &block, + alith, + H160::random(), + Vec::new(), + U256::from(99), + U256::max_value(), + Some(U256::one()), + Some(U256::one()), + None, + None, + ) + .is_ok()); + }); + } +} diff --git a/tracing/3001/runtime/moonbeam/tests/integration_test.rs b/tracing/3001/runtime/moonbeam/tests/integration_test.rs new file mode 100644 index 00000000..5ddca956 --- /dev/null +++ b/tracing/3001/runtime/moonbeam/tests/integration_test.rs @@ -0,0 +1,2889 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Moonbeam Runtime Integration Tests + +#![cfg(test)] + +mod common; +use common::*; + +use fp_evm::{Context, IsPrecompileResult}; +use frame_support::{ + assert_noop, assert_ok, + dispatch::DispatchClass, + traits::{ + fungible::Inspect, Currency as CurrencyT, EnsureOrigin, PalletInfo, StorageInfo, + StorageInfoTrait, + }, + weights::{constants::WEIGHT_REF_TIME_PER_SECOND, Weight}, + StorageHasher, Twox128, +}; +use moonbeam_runtime::currency::{GIGAWEI, WEI}; +use moonbeam_runtime::{ + asset_config::ForeignAssetInstance, + currency::GLMR, + xcm_config::{CurrencyId, SelfReserve}, + AccountId, Balances, CrowdloanRewards, Executive, OpenTechCommitteeCollective, + ParachainStaking, PolkadotXcm, Precompiles, Runtime, RuntimeBlockWeights, RuntimeCall, + RuntimeEvent, System, TransactionPayment, TransactionPaymentAsGasPrice, + TreasuryCouncilCollective, XTokens, XcmTransactor, FOREIGN_ASSET_PRECOMPILE_ADDRESS_PREFIX, + WEEKS, +}; +use moonbeam_xcm_benchmarks::weights::XcmWeight; +use moonkit_xcm_primitives::AccountIdAssetIdConversion; +use nimbus_primitives::NimbusId; +use pallet_evm::PrecompileSet; +use pallet_evm_precompileset_assets_erc20::{SELECTOR_LOG_APPROVAL, SELECTOR_LOG_TRANSFER}; +use pallet_transaction_payment::Multiplier; +use pallet_xcm_transactor::{Currency, CurrencyPayment, TransactWeights}; +use parity_scale_codec::Encode; +use polkadot_parachain::primitives::Sibling; +use precompile_utils::{ + precompile_set::{is_precompile_or_fail, IsActivePrecompile}, + prelude::*, + testing::*, +}; +use sha3::{Digest, Keccak256}; +use sp_core::{ByteArray, Pair, H160, U256}; +use sp_runtime::{ + traits::{Convert, Dispatchable}, + BuildStorage, DispatchError, ModuleError, +}; +use std::str::from_utf8; +use xcm::latest::prelude::*; +use xcm::{VersionedAsset, VersionedAssets, VersionedLocation}; +use xcm_builder::{ParentIsPreset, SiblingParachainConvertsVia}; +use xcm_executor::traits::ConvertLocation; + +type BatchPCall = pallet_evm_precompile_batch::BatchPrecompileCall; +type CrowdloanRewardsPCall = + pallet_evm_precompile_crowdloan_rewards::CrowdloanRewardsPrecompileCall; +type XcmUtilsPCall = pallet_evm_precompile_xcm_utils::XcmUtilsPrecompileCall< + Runtime, + moonbeam_runtime::xcm_config::XcmExecutorConfig, +>; +type XtokensPCall = pallet_evm_precompile_xtokens::XtokensPrecompileCall; +type ForeignAssetsPCall = pallet_evm_precompileset_assets_erc20::Erc20AssetsPrecompileSetCall< + Runtime, + ForeignAssetInstance, +>; +type XcmTransactorV2PCall = + pallet_evm_precompile_xcm_transactor::v2::XcmTransactorPrecompileV2Call; + +const BASE_FEE_GENESIS: u128 = 10000 * GIGAWEI; + +#[test] +fn xcmp_queue_controller_origin_is_root() { + // important for the XcmExecutionManager impl of PauseExecution which uses root origin + // to suspend/resume XCM execution in xcmp_queue::on_idle + assert_ok!( + ::ControllerOrigin::ensure_origin(root_origin()) + ); +} + +#[test] +fn verify_pallet_prefixes() { + fn is_pallet_prefix(name: &str) { + // Compares the unhashed pallet prefix in the `StorageInstance` implementation by every + // storage item in the pallet P. This pallet prefix is used in conjunction with the + // item name to get the unique storage key: hash(PalletPrefix) + hash(StorageName) + // https://github.com/paritytech/substrate/blob/master/frame/support/procedural/src/pallet/ + // expand/storage.rs#L389-L401 + assert_eq!( + ::PalletInfo::name::

(), + Some(name) + ); + } + // TODO: use StorageInfoTrait once https://github.com/paritytech/substrate/pull/9246 + // is pulled in substrate deps. + is_pallet_prefix::("System"); + is_pallet_prefix::("Utility"); + is_pallet_prefix::("ParachainSystem"); + is_pallet_prefix::("TransactionPayment"); + is_pallet_prefix::("ParachainInfo"); + is_pallet_prefix::("EthereumChainId"); + is_pallet_prefix::("EVM"); + is_pallet_prefix::("Ethereum"); + is_pallet_prefix::("ParachainStaking"); + is_pallet_prefix::("Scheduler"); + is_pallet_prefix::( + "OpenTechCommitteeCollective", + ); + is_pallet_prefix::("Treasury"); + is_pallet_prefix::("AuthorInherent"); + is_pallet_prefix::("AuthorFilter"); + is_pallet_prefix::("CrowdloanRewards"); + is_pallet_prefix::("AuthorMapping"); + is_pallet_prefix::("MaintenanceMode"); + is_pallet_prefix::("Identity"); + is_pallet_prefix::("XcmpQueue"); + is_pallet_prefix::("CumulusXcm"); + is_pallet_prefix::("DmpQueue"); + is_pallet_prefix::("PolkadotXcm"); + is_pallet_prefix::("Assets"); + is_pallet_prefix::("XTokens"); + is_pallet_prefix::("AssetManager"); + is_pallet_prefix::("Migrations"); + is_pallet_prefix::("XcmTransactor"); + is_pallet_prefix::("ProxyGenesisCompanion"); + is_pallet_prefix::("MoonbeamOrbiters"); + is_pallet_prefix::("TreasuryCouncilCollective"); + is_pallet_prefix::("MoonbeamLazyMigrations"); + is_pallet_prefix::("RelayStorageRoots"); + + let prefix = |pallet_name, storage_name| { + let mut res = [0u8; 32]; + res[0..16].copy_from_slice(&Twox128::hash(pallet_name)); + res[16..32].copy_from_slice(&Twox128::hash(storage_name)); + res.to_vec() + }; + assert_eq!( + ::storage_info(), + vec![ + StorageInfo { + pallet_name: b"Timestamp".to_vec(), + storage_name: b"Now".to_vec(), + prefix: prefix(b"Timestamp", b"Now"), + max_values: Some(1), + max_size: Some(8), + }, + StorageInfo { + pallet_name: b"Timestamp".to_vec(), + storage_name: b"DidUpdate".to_vec(), + prefix: prefix(b"Timestamp", b"DidUpdate"), + max_values: Some(1), + max_size: Some(1), + } + ] + ); + assert_eq!( + ::storage_info(), + vec![ + StorageInfo { + pallet_name: b"Balances".to_vec(), + storage_name: b"TotalIssuance".to_vec(), + prefix: prefix(b"Balances", b"TotalIssuance"), + max_values: Some(1), + max_size: Some(16), + }, + StorageInfo { + pallet_name: b"Balances".to_vec(), + storage_name: b"InactiveIssuance".to_vec(), + prefix: prefix(b"Balances", b"InactiveIssuance"), + max_values: Some(1), + max_size: Some(16), + }, + StorageInfo { + pallet_name: b"Balances".to_vec(), + storage_name: b"Account".to_vec(), + prefix: prefix(b"Balances", b"Account"), + max_values: None, + max_size: Some(100), + }, + StorageInfo { + pallet_name: b"Balances".to_vec(), + storage_name: b"Locks".to_vec(), + prefix: prefix(b"Balances", b"Locks"), + max_values: None, + max_size: Some(1287), + }, + StorageInfo { + pallet_name: b"Balances".to_vec(), + storage_name: b"Reserves".to_vec(), + prefix: prefix(b"Balances", b"Reserves"), + max_values: None, + max_size: Some(1037), + }, + StorageInfo { + pallet_name: b"Balances".to_vec(), + storage_name: b"Holds".to_vec(), + prefix: prefix(b"Balances", b"Holds"), + max_values: None, + max_size: Some(55), + }, + StorageInfo { + pallet_name: b"Balances".to_vec(), + storage_name: b"Freezes".to_vec(), + prefix: prefix(b"Balances", b"Freezes"), + max_values: None, + max_size: Some(37), + }, + ] + ); + assert_eq!( + ::storage_info(), + vec![ + StorageInfo { + pallet_name: b"Proxy".to_vec(), + storage_name: b"Proxies".to_vec(), + prefix: prefix(b"Proxy", b"Proxies"), + max_values: None, + max_size: Some(845), + }, + StorageInfo { + pallet_name: b"Proxy".to_vec(), + storage_name: b"Announcements".to_vec(), + prefix: prefix(b"Proxy", b"Announcements"), + max_values: None, + max_size: Some(1837), + } + ] + ); + assert_eq!( + ::storage_info(), + vec![StorageInfo { + pallet_name: b"MaintenanceMode".to_vec(), + storage_name: b"MaintenanceMode".to_vec(), + prefix: prefix(b"MaintenanceMode", b"MaintenanceMode"), + max_values: Some(1), + max_size: None, + },] + ); + assert_eq!( + ::storage_info(), + vec![ + StorageInfo { + pallet_name: b"RelayStorageRoots".to_vec(), + storage_name: b"RelayStorageRoot".to_vec(), + prefix: prefix(b"RelayStorageRoots", b"RelayStorageRoot"), + max_values: None, + max_size: Some(44), + }, + StorageInfo { + pallet_name: b"RelayStorageRoots".to_vec(), + storage_name: b"RelayStorageRootKeys".to_vec(), + prefix: prefix(b"RelayStorageRoots", b"RelayStorageRootKeys"), + max_values: Some(1), + max_size: Some(121), + }, + ] + ); +} + +#[test] +fn test_collectives_storage_item_prefixes() { + for StorageInfo { pallet_name, .. } in + ::storage_info() + { + assert_eq!(pallet_name, b"TreasuryCouncilCollective".to_vec()); + } + + for StorageInfo { pallet_name, .. } in + ::storage_info() + { + assert_eq!(pallet_name, b"OpenTechCommitteeCollective".to_vec()); + } +} + +#[test] +fn collective_set_members_root_origin_works() { + ExtBuilder::default().build().execute_with(|| { + // TreasuryCouncilCollective + assert_ok!(TreasuryCouncilCollective::set_members( + ::RuntimeOrigin::root(), + vec![AccountId::from(ALICE), AccountId::from(BOB)], + Some(AccountId::from(ALICE)), + 2 + )); + // OpenTechCommitteeCollective + assert_ok!(OpenTechCommitteeCollective::set_members( + ::RuntimeOrigin::root(), + vec![AccountId::from(ALICE), AccountId::from(BOB)], + Some(AccountId::from(ALICE)), + 2 + )); + }); +} + +#[test] +fn collective_set_members_general_admin_origin_works() { + use moonbeam_runtime::{ + governance::custom_origins::Origin as CustomOrigin, OriginCaller, Utility, + }; + + ExtBuilder::default().build().execute_with(|| { + let root_caller = ::RuntimeOrigin::root(); + let alice = AccountId::from(ALICE); + + // TreasuryCouncilCollective + let _ = Utility::dispatch_as( + root_caller.clone(), + Box::new(OriginCaller::Origins(CustomOrigin::GeneralAdmin)), + Box::new( + pallet_collective::Call::::set_members { + new_members: vec![alice, AccountId::from(BOB)], + prime: Some(alice), + old_count: 2, + } + .into(), + ), + ); + // OpenTechCommitteeCollective + let _ = Utility::dispatch_as( + root_caller, + Box::new(OriginCaller::Origins(CustomOrigin::GeneralAdmin)), + Box::new( + pallet_collective::Call::::set_members { + new_members: vec![alice, AccountId::from(BOB)], + prime: Some(alice), + old_count: 2, + } + .into(), + ), + ); + + assert_eq!( + System::events() + .into_iter() + .filter_map(|r| { + match r.event { + RuntimeEvent::Utility(pallet_utility::Event::DispatchedAs { result }) + if result.is_ok() => + { + Some(true) + } + _ => None, + } + }) + .collect::>() + .len(), + 2 + ) + }); +} + +#[test] +fn collective_set_members_signed_origin_does_not_work() { + let alice = AccountId::from(ALICE); + ExtBuilder::default().build().execute_with(|| { + // TreasuryCouncilCollective + assert!(TreasuryCouncilCollective::set_members( + ::RuntimeOrigin::signed(alice), + vec![AccountId::from(ALICE), AccountId::from(BOB)], + Some(AccountId::from(ALICE)), + 2 + ) + .is_err()); + // OpenTechCommitteeCollective + assert!(OpenTechCommitteeCollective::set_members( + ::RuntimeOrigin::signed(alice), + vec![AccountId::from(ALICE), AccountId::from(BOB)], + Some(AccountId::from(ALICE)), + 2 + ) + .is_err()); + }); +} + +#[test] +fn verify_pallet_indices() { + fn is_pallet_index(index: usize) { + assert_eq!( + ::PalletInfo::index::

(), + Some(index) + ); + } + + // System support + is_pallet_index::(0); + is_pallet_index::(1); + is_pallet_index::(3); + is_pallet_index::(4); + // Monetary + is_pallet_index::(10); + is_pallet_index::(11); + // Consensus support + is_pallet_index::(20); + is_pallet_index::(21); + is_pallet_index::(22); + is_pallet_index::(23); + is_pallet_index::(24); + // Handy utilities + is_pallet_index::(30); + is_pallet_index::(31); + is_pallet_index::(32); + is_pallet_index::(33); + is_pallet_index::(34); + is_pallet_index::(35); + is_pallet_index::(37); + // Ethereum compatibility + is_pallet_index::(50); + is_pallet_index::(51); + is_pallet_index::(52); + // Governance + is_pallet_index::(60); + // is_pallet_index::(61); Removed + // Council + // is_pallet_index::(70); Removed + // is_pallet_index::(71); Removed + is_pallet_index::(72); + is_pallet_index::(73); + // Treasury + is_pallet_index::(80); + // Crowdloan + is_pallet_index::(90); + // XCM Stuff + is_pallet_index::(100); + is_pallet_index::(101); + is_pallet_index::(102); + is_pallet_index::(103); + is_pallet_index::(104); + is_pallet_index::(105); + is_pallet_index::(106); + is_pallet_index::(107); +} + +#[test] +fn verify_reserved_indices() { + use frame_metadata::*; + let metadata = moonbeam_runtime::Runtime::metadata(); + let metadata = match metadata.1 { + RuntimeMetadata::V14(metadata) => metadata, + _ => panic!("metadata has been bumped, test needs to be updated"), + }; + // 40: Sudo + // 53: BaseFee + // 108: pallet_assets:: + let reserved = vec![40, 53, 108]; + let existing = metadata + .pallets + .iter() + .map(|p| p.index) + .collect::>(); + assert!(reserved.iter().all(|index| !existing.contains(index))); +} + +#[test] +fn verify_proxy_type_indices() { + assert_eq!(moonbeam_runtime::ProxyType::Any as u8, 0); + assert_eq!(moonbeam_runtime::ProxyType::NonTransfer as u8, 1); + assert_eq!(moonbeam_runtime::ProxyType::Governance as u8, 2); + assert_eq!(moonbeam_runtime::ProxyType::Staking as u8, 3); + assert_eq!(moonbeam_runtime::ProxyType::CancelProxy as u8, 4); + assert_eq!(moonbeam_runtime::ProxyType::Balances as u8, 5); + assert_eq!(moonbeam_runtime::ProxyType::AuthorMapping as u8, 6); + assert_eq!(moonbeam_runtime::ProxyType::IdentityJudgement as u8, 7); +} + +#[test] +fn join_collator_candidates() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), 10_000_000 * GLMR), + (AccountId::from(BOB), 10_000_000 * GLMR), + (AccountId::from(CHARLIE), 10_000_000 * GLMR), + (AccountId::from(DAVE), 10_000_000 * GLMR), + ]) + .with_collators(vec![ + (AccountId::from(ALICE), 2_000_000 * GLMR), + (AccountId::from(BOB), 2_000_000 * GLMR), + ]) + .with_delegations(vec![ + ( + AccountId::from(CHARLIE), + AccountId::from(ALICE), + 5_000 * GLMR, + ), + (AccountId::from(CHARLIE), AccountId::from(BOB), 5_000 * GLMR), + ]) + .build() + .execute_with(|| { + assert_noop!( + ParachainStaking::join_candidates( + origin_of(AccountId::from(ALICE)), + 2_000_000 * GLMR, + 2u32 + ), + pallet_parachain_staking::Error::::CandidateExists + ); + assert_noop!( + ParachainStaking::join_candidates( + origin_of(AccountId::from(CHARLIE)), + 2_000_000 * GLMR, + 2u32 + ), + pallet_parachain_staking::Error::::DelegatorExists + ); + assert!(System::events().is_empty()); + assert_ok!(ParachainStaking::join_candidates( + origin_of(AccountId::from(DAVE)), + 2_000_000 * GLMR, + 2u32 + )); + assert_eq!( + last_event(), + RuntimeEvent::ParachainStaking( + pallet_parachain_staking::Event::JoinedCollatorCandidates { + account: AccountId::from(DAVE), + amount_locked: 2_000_000 * GLMR, + new_total_amt_locked: 6_010_000 * GLMR + } + ) + ); + let candidates = ParachainStaking::candidate_pool(); + assert_eq!(candidates.0[0].owner, AccountId::from(ALICE)); + assert_eq!(candidates.0[0].amount, 2_005_000 * GLMR); + assert_eq!(candidates.0[1].owner, AccountId::from(BOB)); + assert_eq!(candidates.0[1].amount, 2_005_000 * GLMR); + assert_eq!(candidates.0[2].owner, AccountId::from(DAVE)); + assert_eq!(candidates.0[2].amount, 2_000_000 * GLMR); + }); +} + +#[test] +fn transfer_through_evm_to_stake() { + ExtBuilder::default() + .with_balances(vec![(AccountId::from(ALICE), 10_000_000 * GLMR)]) + .build() + .execute_with(|| { + // Charlie has no balance => fails to stake + assert_noop!( + ParachainStaking::join_candidates( + origin_of(AccountId::from(CHARLIE)), + 2_000_000 * GLMR, + 2u32 + ), + DispatchError::Module(ModuleError { + index: 20, + error: [8, 0, 0, 0], + message: Some("InsufficientBalance") + }) + ); + // Alice transfer from free balance 3_000_000 GLMR to Bob + assert_ok!(Balances::transfer_allow_death( + origin_of(AccountId::from(ALICE)), + AccountId::from(BOB), + 3_000_000 * GLMR, + )); + assert_eq!( + Balances::free_balance(AccountId::from(BOB)), + 3_000_000 * GLMR + ); + + let gas_limit = 100000u64; + let gas_price: U256 = BASE_FEE_GENESIS.into(); + // Bob transfers 2_000_000 GLMR to Charlie via EVM + assert_ok!(RuntimeCall::EVM(pallet_evm::Call::::call { + source: H160::from(BOB), + target: H160::from(CHARLIE), + input: vec![], + value: (2_000_000 * GLMR).into(), + gas_limit, + max_fee_per_gas: gas_price, + max_priority_fee_per_gas: None, + nonce: None, + access_list: Vec::new(), + }) + .dispatch(::RuntimeOrigin::root())); + assert_eq!( + Balances::free_balance(AccountId::from(CHARLIE)), + 2_000_000 * GLMR, + ); + + // Charlie can stake now + assert_ok!(ParachainStaking::join_candidates( + origin_of(AccountId::from(CHARLIE)), + 2_000_000 * GLMR, + 2u32 + ),); + let candidates = ParachainStaking::candidate_pool(); + assert_eq!(candidates.0[0].owner, AccountId::from(CHARLIE)); + assert_eq!(candidates.0[0].amount, 2_000_000 * GLMR); + }); +} + +#[test] +fn reward_block_authors() { + ExtBuilder::default() + .with_balances(vec![ + // Alice gets 10k extra tokens for her mapping deposit + (AccountId::from(ALICE), 10_010_000 * GLMR), + (AccountId::from(BOB), 10_000_000 * GLMR), + ]) + .with_collators(vec![(AccountId::from(ALICE), 2_000_000 * GLMR)]) + .with_delegations(vec![( + AccountId::from(BOB), + AccountId::from(ALICE), + 50_000 * GLMR, + )]) + .with_mappings(vec![( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + AccountId::from(ALICE), + )]) + .build() + .execute_with(|| { + increase_last_relay_slot_number(1); + // Just before round 3 + run_to_block(7199, Some(NimbusId::from_slice(&ALICE_NIMBUS).unwrap())); + // no rewards doled out yet + assert_eq!( + Balances::usable_balance(AccountId::from(ALICE)), + 8_010_000 * GLMR, + ); + assert_eq!( + Balances::usable_balance(AccountId::from(BOB)), + 9_950_000 * GLMR, + ); + run_to_block(7201, Some(NimbusId::from_slice(&ALICE_NIMBUS).unwrap())); + // rewards minted and distributed + assert_eq!( + Balances::usable_balance(AccountId::from(ALICE)), + 8990978048702400000000000, + ); + assert_eq!( + Balances::usable_balance(AccountId::from(BOB)), + 9969521950497200000000000, + ); + }); +} + +#[test] +fn reward_block_authors_with_parachain_bond_reserved() { + ExtBuilder::default() + .with_balances(vec![ + // Alice gets 10k extra tokens for her mapping deposit + (AccountId::from(ALICE), 10_010_000 * GLMR), + (AccountId::from(BOB), 10_000_000 * GLMR), + (AccountId::from(CHARLIE), 10_000 * GLMR), + ]) + .with_collators(vec![(AccountId::from(ALICE), 2_000_000 * GLMR)]) + .with_delegations(vec![( + AccountId::from(BOB), + AccountId::from(ALICE), + 50_000 * GLMR, + )]) + .with_mappings(vec![( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + AccountId::from(ALICE), + )]) + .build() + .execute_with(|| { + increase_last_relay_slot_number(1); + assert_ok!(ParachainStaking::set_parachain_bond_account( + root_origin(), + AccountId::from(CHARLIE), + ),); + + // Stop just before round 3 + run_to_block(7199, Some(NimbusId::from_slice(&ALICE_NIMBUS).unwrap())); + // no collators rewards doled out yet + assert_eq!( + Balances::usable_balance(AccountId::from(ALICE)), + 8_010_000 * GLMR, + ); + assert_eq!( + Balances::usable_balance(AccountId::from(BOB)), + 9_950_000 * GLMR, + ); + // 30% reserved for parachain bond + assert_eq!( + Balances::usable_balance(AccountId::from(CHARLIE)), + 310300000000000000000000, + ); + + // Go to round 3 + run_to_block(7201, Some(NimbusId::from_slice(&ALICE_NIMBUS).unwrap())); + + // collators rewards minted and distributed + assert_eq!( + Balances::usable_balance(AccountId::from(ALICE)), + 8698492682878000000000000, + ); + assert_eq!( + Balances::usable_balance(AccountId::from(BOB)), + 9962207316621500000000000, + ); + // 30% reserved for parachain bond again + assert_eq!( + Balances::usable_balance(AccountId::from(CHARLIE)), + 615104500000000000000000, + ); + }); +} + +#[test] +fn initialize_crowdloan_addresses_with_batch_and_pay() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), 200_000 * GLMR), + (AccountId::from(BOB), 100_000 * GLMR), + ]) + .with_collators(vec![(AccountId::from(ALICE), 100_000 * GLMR)]) + .with_mappings(vec![( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + AccountId::from(ALICE), + )]) + .with_crowdloan_fund(300_000_000 * GLMR) + .build() + .execute_with(|| { + // set parachain inherent data + set_parachain_inherent_data(); + let init_block = CrowdloanRewards::init_vesting_block(); + // This matches the previous vesting + let end_block = init_block + 4 * WEEKS; + // Batch calls always succeed. We just need to check the inner event + assert_ok!( + RuntimeCall::Utility(pallet_utility::Call::::batch_all { + calls: vec![ + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::initialize_reward_vec { + rewards: vec![( + [4u8; 32].into(), + Some(AccountId::from(CHARLIE)), + 150_000_000 * GLMR + )] + } + ), + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::initialize_reward_vec { + rewards: vec![( + [5u8; 32].into(), + Some(AccountId::from(DAVE)), + 150_000_000 * GLMR + )] + } + ), + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::complete_initialization { + lease_ending_block: end_block + } + ) + ] + }) + .dispatch(root_origin()) + ); + // 30 percent initial payout + assert_eq!( + Balances::balance(&AccountId::from(CHARLIE)), + 45_000_000 * GLMR + ); + // 30 percent initial payout + assert_eq!(Balances::balance(&AccountId::from(DAVE)), 45_000_000 * GLMR); + let expected = RuntimeEvent::Utility(pallet_utility::Event::BatchCompleted); + assert_eq!(last_event(), expected); + // This one should fail, as we already filled our data + assert_ok!( + RuntimeCall::Utility(pallet_utility::Call::::batch { + calls: vec![RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::initialize_reward_vec { + rewards: vec![( + [4u8; 32].into(), + Some(AccountId::from(ALICE)), + 43_200_000 + )] + } + )] + }) + .dispatch(root_origin()) + ); + let expected_fail = RuntimeEvent::Utility(pallet_utility::Event::BatchInterrupted { + index: 0, + error: DispatchError::Module(ModuleError { + index: 90, + error: [8, 0, 0, 0], + message: None, + }), + }); + assert_eq!(last_event(), expected_fail); + // Claim 1 block. + assert_ok!(CrowdloanRewards::claim(origin_of(AccountId::from(CHARLIE)))); + assert_ok!(CrowdloanRewards::claim(origin_of(AccountId::from(DAVE)))); + + let vesting_period = 4 * WEEKS as u128; + let per_block = (105_000_000 * GLMR) / vesting_period; + + assert_eq!( + CrowdloanRewards::accounts_payable(&AccountId::from(CHARLIE)) + .unwrap() + .claimed_reward, + (45_000_000 * GLMR) + per_block + ); + assert_eq!( + CrowdloanRewards::accounts_payable(&AccountId::from(DAVE)) + .unwrap() + .claimed_reward, + (45_000_000 * GLMR) + per_block + ); + // The total claimed reward should be equal to the account balance at this point. + assert_eq!( + Balances::balance(&AccountId::from(CHARLIE)), + (45_000_000 * GLMR) + per_block + ); + assert_eq!( + Balances::balance(&AccountId::from(DAVE)), + (45_000_000 * GLMR) + per_block + ); + assert_noop!( + CrowdloanRewards::claim(origin_of(AccountId::from(ALICE))), + pallet_crowdloan_rewards::Error::::NoAssociatedClaim + ); + }); +} + +#[test] +fn initialize_crowdloan_address_and_change_with_relay_key_sig() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * GLMR), + (AccountId::from(BOB), 1_000 * GLMR), + ]) + .with_collators(vec![(AccountId::from(ALICE), 1_000 * GLMR)]) + .with_mappings(vec![( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + AccountId::from(ALICE), + )]) + .with_crowdloan_fund(3_000_000 * GLMR) + .build() + .execute_with(|| { + // set parachain inherent data + set_parachain_inherent_data(); + let init_block = CrowdloanRewards::init_vesting_block(); + // This matches the previous vesting + let end_block = init_block + 4 * WEEKS; + + let (pair1, _) = sp_core::sr25519::Pair::generate(); + let (pair2, _) = sp_core::sr25519::Pair::generate(); + + let public1 = pair1.public(); + let public2 = pair2.public(); + + // signature is new_account || previous_account + let mut message = pallet_crowdloan_rewards::WRAPPED_BYTES_PREFIX.to_vec(); + message.append(&mut b"moonbeam-".to_vec()); + message.append(&mut AccountId::from(DAVE).encode()); + message.append(&mut AccountId::from(CHARLIE).encode()); + message.append(&mut pallet_crowdloan_rewards::WRAPPED_BYTES_POSTFIX.to_vec()); + let signature1 = pair1.sign(&message); + let signature2 = pair2.sign(&message); + + // Batch calls always succeed. We just need to check the inner event + assert_ok!( + // two relay accounts pointing at the same reward account + RuntimeCall::Utility(pallet_utility::Call::::batch_all { + calls: vec![ + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::initialize_reward_vec { + rewards: vec![( + public1.into(), + Some(AccountId::from(CHARLIE)), + 1_500_000 * GLMR + )] + } + ), + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::initialize_reward_vec { + rewards: vec![( + public2.into(), + Some(AccountId::from(CHARLIE)), + 1_500_000 * GLMR + )] + } + ), + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::complete_initialization { + lease_ending_block: end_block + } + ) + ] + }) + .dispatch(root_origin()) + ); + // 30 percent initial payout + assert_eq!(Balances::balance(&AccountId::from(CHARLIE)), 900_000 * GLMR); + + // this should fail, as we are only providing one signature + assert_noop!( + CrowdloanRewards::change_association_with_relay_keys( + origin_of(AccountId::from(CHARLIE)), + AccountId::from(DAVE), + AccountId::from(CHARLIE), + vec![(public1.into(), signature1.clone().into())] + ), + pallet_crowdloan_rewards::Error::::InsufficientNumberOfValidProofs + ); + + // this should be valid + assert_ok!(CrowdloanRewards::change_association_with_relay_keys( + origin_of(AccountId::from(CHARLIE)), + AccountId::from(DAVE), + AccountId::from(CHARLIE), + vec![ + (public1.into(), signature1.into()), + (public2.into(), signature2.into()) + ] + )); + + assert_eq!( + CrowdloanRewards::accounts_payable(&AccountId::from(DAVE)) + .unwrap() + .claimed_reward, + (900_000 * GLMR) + ); + }); +} + +#[test] +fn claim_via_precompile() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * GLMR), + (AccountId::from(BOB), 1_000 * GLMR), + ]) + .with_collators(vec![(AccountId::from(ALICE), 1_000 * GLMR)]) + .with_mappings(vec![( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + AccountId::from(ALICE), + )]) + .with_crowdloan_fund(3_000_000 * GLMR) + .build() + .execute_with(|| { + // set parachain inherent data + set_parachain_inherent_data(); + let init_block = CrowdloanRewards::init_vesting_block(); + // This matches the previous vesting + let end_block = init_block + 4 * WEEKS; + // Batch calls always succeed. We just need to check the inner event + assert_ok!( + RuntimeCall::Utility(pallet_utility::Call::::batch_all { + calls: vec![ + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::initialize_reward_vec { + rewards: vec![( + [4u8; 32].into(), + Some(AccountId::from(CHARLIE)), + 1_500_000 * GLMR + )] + } + ), + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::initialize_reward_vec { + rewards: vec![( + [5u8; 32].into(), + Some(AccountId::from(DAVE)), + 1_500_000 * GLMR + )] + } + ), + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::complete_initialization { + lease_ending_block: end_block + } + ) + ] + }) + .dispatch(root_origin()) + ); + + assert!(CrowdloanRewards::initialized()); + + // 30 percent initial payout + assert_eq!(Balances::balance(&AccountId::from(CHARLIE)), 450_000 * GLMR); + // 30 percent initial payout + assert_eq!(Balances::balance(&AccountId::from(DAVE)), 450_000 * GLMR); + + let crowdloan_precompile_address = H160::from_low_u64_be(2049); + + // Alice uses the crowdloan precompile to claim through the EVM + let gas_limit = 100000u64; + let gas_price: U256 = BASE_FEE_GENESIS.into(); + + // Construct the call data (selector, amount) + let mut call_data = Vec::::from([0u8; 4]); + call_data[0..4].copy_from_slice(&Keccak256::digest(b"claim()")[0..4]); + + assert_ok!(RuntimeCall::EVM(pallet_evm::Call::::call { + source: H160::from(CHARLIE), + target: crowdloan_precompile_address, + input: call_data, + value: U256::zero(), // No value sent in EVM + gas_limit, + max_fee_per_gas: gas_price, + max_priority_fee_per_gas: None, + nonce: None, // Use the next nonce + access_list: Vec::new(), + }) + .dispatch(::RuntimeOrigin::root())); + + let vesting_period = 4 * WEEKS as u128; + let per_block = (1_050_000 * GLMR) / vesting_period; + + assert_eq!( + CrowdloanRewards::accounts_payable(&AccountId::from(CHARLIE)) + .unwrap() + .claimed_reward, + (450_000 * GLMR) + per_block + ); + }) +} + +#[test] +fn is_contributor_via_precompile() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), 200_000 * GLMR), + (AccountId::from(BOB), 100_000 * GLMR), + ]) + .with_collators(vec![(AccountId::from(ALICE), 100_000 * GLMR)]) + .with_mappings(vec![( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + AccountId::from(ALICE), + )]) + .with_crowdloan_fund(3_000_000_000 * GLMR) + .build() + .execute_with(|| { + // set parachain inherent data + set_parachain_inherent_data(); + let init_block = CrowdloanRewards::init_vesting_block(); + // This matches the previous vesting + let end_block = init_block + 4 * WEEKS; + // Batch calls always succeed. We just need to check the inner event + assert_ok!( + RuntimeCall::Utility(pallet_utility::Call::::batch_all { + calls: vec![ + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::initialize_reward_vec { + rewards: vec![( + [4u8; 32].into(), + Some(AccountId::from(CHARLIE)), + 1_500_000_000 * GLMR + )] + } + ), + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::initialize_reward_vec { + rewards: vec![( + [5u8; 32].into(), + Some(AccountId::from(DAVE)), + 1_500_000_000 * GLMR + )] + } + ), + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::complete_initialization { + lease_ending_block: end_block + } + ) + ] + }) + .dispatch(root_origin()) + ); + + let crowdloan_precompile_address = H160::from_low_u64_be(2049); + + // Assert precompile reports Bob is not a contributor + Precompiles::new() + .prepare_test( + ALICE, + crowdloan_precompile_address, + CrowdloanRewardsPCall::is_contributor { + contributor: Address(AccountId::from(BOB).into()), + }, + ) + .expect_cost(1000) + .expect_no_logs() + .execute_returns(false); + + // Assert precompile reports Charlie is a nominator + Precompiles::new() + .prepare_test( + ALICE, + crowdloan_precompile_address, + CrowdloanRewardsPCall::is_contributor { + contributor: Address(AccountId::from(CHARLIE).into()), + }, + ) + .expect_cost(1000) + .expect_no_logs() + .execute_returns(true); + }) +} + +#[test] +fn reward_info_via_precompile() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), 200_000 * GLMR), + (AccountId::from(BOB), 100_000 * GLMR), + ]) + .with_collators(vec![(AccountId::from(ALICE), 100_000 * GLMR)]) + .with_mappings(vec![( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + AccountId::from(ALICE), + )]) + .with_crowdloan_fund(3_000_000 * GLMR) + .build() + .execute_with(|| { + // set parachain inherent data + set_parachain_inherent_data(); + let init_block = CrowdloanRewards::init_vesting_block(); + // This matches the previous vesting + let end_block = init_block + 4 * WEEKS; + // Batch calls always succeed. We just need to check the inner event + assert_ok!( + RuntimeCall::Utility(pallet_utility::Call::::batch_all { + calls: vec![ + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::initialize_reward_vec { + rewards: vec![( + [4u8; 32].into(), + Some(AccountId::from(CHARLIE)), + 1_500_000 * GLMR + )] + } + ), + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::initialize_reward_vec { + rewards: vec![( + [5u8; 32].into(), + Some(AccountId::from(DAVE)), + 1_500_000 * GLMR + )] + } + ), + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::complete_initialization { + lease_ending_block: end_block + } + ) + ] + }) + .dispatch(root_origin()) + ); + + let crowdloan_precompile_address = H160::from_low_u64_be(2049); + + let expected_total: U256 = (1_500_000 * GLMR).into(); + let expected_claimed: U256 = (450_000 * GLMR).into(); + + // Assert precompile reports correct Charlie reward info. + Precompiles::new() + .prepare_test( + ALICE, + crowdloan_precompile_address, + CrowdloanRewardsPCall::reward_info { + contributor: Address(AccountId::from(CHARLIE).into()), + }, + ) + .expect_cost(1000) + .expect_no_logs() + .execute_returns((expected_total, expected_claimed)); + }) +} + +#[test] +fn update_reward_address_via_precompile() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * GLMR), + (AccountId::from(BOB), 1_000 * GLMR), + ]) + .with_collators(vec![(AccountId::from(ALICE), 1_000 * GLMR)]) + .with_mappings(vec![( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + AccountId::from(ALICE), + )]) + .with_crowdloan_fund(3_000_000 * GLMR) + .build() + .execute_with(|| { + // set parachain inherent data + set_parachain_inherent_data(); + let init_block = CrowdloanRewards::init_vesting_block(); + // This matches the previous vesting + let end_block = init_block + 4 * WEEKS; + // Batch calls always succeed. We just need to check the inner event + assert_ok!( + RuntimeCall::Utility(pallet_utility::Call::::batch_all { + calls: vec![ + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::initialize_reward_vec { + rewards: vec![( + [4u8; 32].into(), + Some(AccountId::from(CHARLIE)), + 1_500_000 * GLMR + )] + } + ), + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::initialize_reward_vec { + rewards: vec![( + [5u8; 32].into(), + Some(AccountId::from(DAVE)), + 1_500_000 * GLMR + )] + } + ), + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::complete_initialization { + lease_ending_block: end_block + } + ) + ] + }) + .dispatch(root_origin()) + ); + + let crowdloan_precompile_address = H160::from_low_u64_be(2049); + + // Charlie uses the crowdloan precompile to update address through the EVM + let gas_limit = 100000u64; + let gas_price: U256 = BASE_FEE_GENESIS.into(); + + // Construct the input data to check if Bob is a contributor + let mut call_data = Vec::::from([0u8; 36]); + call_data[0..4] + .copy_from_slice(&Keccak256::digest(b"update_reward_address(address)")[0..4]); + call_data[16..36].copy_from_slice(&ALICE); + + assert_ok!(RuntimeCall::EVM(pallet_evm::Call::::call { + source: H160::from(CHARLIE), + target: crowdloan_precompile_address, + input: call_data, + value: U256::zero(), // No value sent in EVM + gas_limit, + max_fee_per_gas: gas_price, + max_priority_fee_per_gas: None, + nonce: None, // Use the next nonce + access_list: Vec::new(), + }) + .dispatch(::RuntimeOrigin::root())); + + assert!(CrowdloanRewards::accounts_payable(&AccountId::from(CHARLIE)).is_none()); + assert_eq!( + CrowdloanRewards::accounts_payable(&AccountId::from(ALICE)) + .unwrap() + .claimed_reward, + (450_000 * GLMR) + ); + }) +} + +fn run_with_system_weight(w: Weight, mut assertions: F) +where + F: FnMut() -> (), +{ + let mut t: sp_io::TestExternalities = frame_system::GenesisConfig::::default() + .build_storage() + .unwrap() + .into(); + t.execute_with(|| { + System::set_block_consumed_resources(w, 0); + assertions() + }); +} + +#[test] +#[rustfmt::skip] +fn length_fee_is_sensible() { + use sp_runtime::testing::TestXt; + + // tests that length fee is sensible for a few hypothetical transactions + ExtBuilder::default().build().execute_with(|| { + let call = frame_system::Call::remark:: { remark: vec![] }; + let uxt: TestXt<_, ()> = TestXt::new(call, Some((1u64, ()))); + + let calc_fee = |len: u32| -> Balance { + moonbeam_runtime::TransactionPayment::query_fee_details(uxt.clone(), len) + .inclusion_fee + .expect("fee should be calculated") + .len_fee + }; + + // editorconfig-checker-disable + // left: cost of length fee, right: size in bytes + // /------------- proportional component: O(N * 1B) + // | /- exponential component: O(N ** 3) + // | | + assert_eq!( 100_000_000_100, calc_fee(1)); + assert_eq!( 1_000_000_100_000, calc_fee(10)); + assert_eq!( 10_000_100_000_000, calc_fee(100)); + assert_eq!( 100_100_000_000_000, calc_fee(1_000)); + assert_eq!( 1_100_000_000_000_000, calc_fee(10_000)); // inflection point + assert_eq!( 110_000_000_000_000_000, calc_fee(100_000)); + assert_eq!( 100_100_000_000_000_000_000, calc_fee(1_000_000)); // 100 GLMR, ~ 1MB + assert_eq!( 100_001_000_000_000_000_000_000, calc_fee(10_000_000)); + assert_eq!(100_000_010_000_000_000_000_000_000, calc_fee(100_000_000)); + // editorconfig-checker-enable + }); +} + +#[test] +fn multiplier_can_grow_from_zero() { + use frame_support::traits::Get; + + let minimum_multiplier = moonbeam_runtime::MinimumMultiplier::get(); + let target = moonbeam_runtime::TargetBlockFullness::get() + * RuntimeBlockWeights::get() + .get(DispatchClass::Normal) + .max_total + .unwrap(); + // if the min is too small, then this will not change, and we are doomed forever. + // the weight is 1/100th bigger than target. + run_with_system_weight(target * 101 / 100, || { + let next = moonbeam_runtime::SlowAdjustingFeeUpdate::::convert(minimum_multiplier); + assert!( + next > minimum_multiplier, + "{:?} !>= {:?}", + next, + minimum_multiplier + ); + }) +} + +#[test] +fn ethereum_invalid_transaction() { + ExtBuilder::default().build().execute_with(|| { + // Ensure an extrinsic not containing enough gas limit to store the transaction + // on chain is rejected. + assert_eq!( + Executive::apply_extrinsic(unchecked_eth_tx(INVALID_ETH_TX)), + Err( + sp_runtime::transaction_validity::TransactionValidityError::Invalid( + sp_runtime::transaction_validity::InvalidTransaction::Custom(0u8) + ) + ) + ); + }); +} + +#[test] +fn initial_gas_fee_is_correct() { + use fp_evm::FeeCalculator; + + ExtBuilder::default().build().execute_with(|| { + let multiplier = TransactionPayment::next_fee_multiplier(); + assert_eq!(multiplier, Multiplier::from(1u128)); + + assert_eq!( + TransactionPaymentAsGasPrice::min_gas_price(), + ( + 125_000_000_000u128.into(), + Weight::from_parts(25_000_000u64, 0) + ) + ); + }); +} + +#[test] +fn min_gas_fee_is_correct() { + use fp_evm::FeeCalculator; + use frame_support::traits::Hooks; + + ExtBuilder::default().build().execute_with(|| { + pallet_transaction_payment::NextFeeMultiplier::::put(Multiplier::from(0)); + TransactionPayment::on_finalize(System::block_number()); // should trigger min to kick in + + let multiplier = TransactionPayment::next_fee_multiplier(); + assert_eq!(multiplier, Multiplier::from(1u128)); + + assert_eq!( + TransactionPaymentAsGasPrice::min_gas_price(), + ( + 125_000_000_000u128.into(), + Weight::from_parts(25_000_000u64, 0) + ) + ); + }); +} + +#[test] +fn transfer_ed_0_substrate() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), (1 * GLMR) + (1 * WEI)), + (AccountId::from(BOB), 0), + ]) + .build() + .execute_with(|| { + // Substrate transfer + assert_ok!(Balances::transfer_allow_death( + origin_of(AccountId::from(ALICE)), + AccountId::from(BOB), + 1 * GLMR, + )); + // 1 WEI is left in the account + assert_eq!(Balances::free_balance(AccountId::from(ALICE)), 1 * WEI); + }); +} + +#[test] +fn transfer_ed_0_evm() { + ExtBuilder::default() + .with_balances(vec![ + ( + AccountId::from(ALICE), + ((1 * GLMR) + (21_000 * BASE_FEE_GENESIS)) + (1 * WEI), + ), + (AccountId::from(BOB), 0), + ]) + .build() + .execute_with(|| { + // EVM transfer + assert_ok!(RuntimeCall::EVM(pallet_evm::Call::::call { + source: H160::from(ALICE), + target: H160::from(BOB), + input: Vec::new(), + value: (1 * GLMR).into(), + gas_limit: 21_000u64, + max_fee_per_gas: BASE_FEE_GENESIS.into(), + max_priority_fee_per_gas: Some(BASE_FEE_GENESIS.into()), + nonce: Some(U256::from(0)), + access_list: Vec::new(), + }) + .dispatch(::RuntimeOrigin::root())); + // 1 WEI is left in the account + assert_eq!(Balances::free_balance(AccountId::from(ALICE)), 1 * WEI,); + }); +} + +#[test] +fn refund_ed_0_evm() { + ExtBuilder::default() + .with_balances(vec![ + ( + AccountId::from(ALICE), + ((1 * GLMR) + (21_777 * BASE_FEE_GENESIS)), + ), + (AccountId::from(BOB), 0), + ]) + .build() + .execute_with(|| { + // EVM transfer that zeroes ALICE + assert_ok!(RuntimeCall::EVM(pallet_evm::Call::::call { + source: H160::from(ALICE), + target: H160::from(BOB), + input: Vec::new(), + value: (1 * GLMR).into(), + gas_limit: 21_777u64, + max_fee_per_gas: BASE_FEE_GENESIS.into(), + max_priority_fee_per_gas: Some(BASE_FEE_GENESIS.into()), + nonce: Some(U256::from(0)), + access_list: Vec::new(), + }) + .dispatch(::RuntimeOrigin::root())); + // ALICE is refunded + assert_eq!( + Balances::free_balance(AccountId::from(ALICE)), + 777 * BASE_FEE_GENESIS, + ); + }); +} + +#[test] +fn author_does_not_receive_priority_fee() { + ExtBuilder::default() + .with_balances(vec![( + AccountId::from(BOB), + (1 * GLMR) + (21_000 * (500 * GIGAWEI)), + )]) + .build() + .execute_with(|| { + // Some block author as seen by pallet-evm. + let author = AccountId::from(>::find_author()); + // Currently the default impl of the evm uses `deposit_into_existing`. + // If we were to use this implementation, and for an author to receive eventual tips, + // the account needs to be somehow initialized, otherwise the deposit would fail. + Balances::make_free_balance_be(&author, 100 * GLMR); + + // EVM transfer. + assert_ok!(RuntimeCall::EVM(pallet_evm::Call::::call { + source: H160::from(BOB), + target: H160::from(ALICE), + input: Vec::new(), + value: (1 * GLMR).into(), + gas_limit: 21_000u64, + max_fee_per_gas: U256::from(300 * GIGAWEI), + max_priority_fee_per_gas: Some(U256::from(200 * GIGAWEI)), + nonce: Some(U256::from(0)), + access_list: Vec::new(), + }) + .dispatch(::RuntimeOrigin::root())); + // Author free balance didn't change. + assert_eq!(Balances::free_balance(author), 100 * GLMR,); + }); +} + +#[test] +fn total_issuance_after_evm_transaction_with_priority_fee() { + ExtBuilder::default() + .with_balances(vec![( + AccountId::from(BOB), + (1 * GLMR) + (21_000 * (200 * GIGAWEI)), + )]) + .build() + .execute_with(|| { + let issuance_before = ::Currency::total_issuance(); + // EVM transfer. + assert_ok!(RuntimeCall::EVM(pallet_evm::Call::::call { + source: H160::from(BOB), + target: H160::from(ALICE), + input: Vec::new(), + value: (1 * GLMR).into(), + gas_limit: 21_000u64, + max_fee_per_gas: U256::from(200 * GIGAWEI), + max_priority_fee_per_gas: Some(U256::from(100 * GIGAWEI)), + nonce: Some(U256::from(0)), + access_list: Vec::new(), + }) + .dispatch(::RuntimeOrigin::root())); + + let issuance_after = ::Currency::total_issuance(); + // Fee is 100 GWEI base fee + 100 GWEI tip. + let fee = ((200 * GIGAWEI) * 21_000) as f64; + // 80% was burned. + let expected_burn = (fee * 0.8) as u128; + assert_eq!(issuance_after, issuance_before - expected_burn,); + // 20% was sent to treasury. + let expected_treasury = (fee * 0.2) as u128; + assert_eq!(moonbeam_runtime::Treasury::pot(), expected_treasury); + }); +} + +#[test] +fn total_issuance_after_evm_transaction_without_priority_fee() { + ExtBuilder::default() + .with_balances(vec![( + AccountId::from(BOB), + (1 * GLMR) + (21_000 * BASE_FEE_GENESIS), + )]) + .build() + .execute_with(|| { + let issuance_before = ::Currency::total_issuance(); + // EVM transfer. + assert_ok!(RuntimeCall::EVM(pallet_evm::Call::::call { + source: H160::from(BOB), + target: H160::from(ALICE), + input: Vec::new(), + value: (1 * GLMR).into(), + gas_limit: 21_000u64, + max_fee_per_gas: BASE_FEE_GENESIS.into(), + max_priority_fee_per_gas: Some(BASE_FEE_GENESIS.into()), + nonce: Some(U256::from(0)), + access_list: Vec::new(), + }) + .dispatch(::RuntimeOrigin::root())); + + let issuance_after = ::Currency::total_issuance(); + // Fee is 100 GWEI base fee. + let fee = (BASE_FEE_GENESIS * 21_000) as f64; + // 80% was burned. + let expected_burn = (fee * 0.8) as u128; + assert_eq!(issuance_after, issuance_before - expected_burn,); + // 20% was sent to treasury. + let expected_treasury = (fee * 0.2) as u128; + assert_eq!(moonbeam_runtime::Treasury::pot(), expected_treasury); + }); +} + +#[test] +fn root_can_change_default_xcm_vers() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * GLMR), + (AccountId::from(BOB), 1_000 * GLMR), + ]) + .with_xcm_assets(vec![XcmAssetInitialization { + asset_type: AssetType::Xcm(xcm::v3::Location::parent()), + metadata: AssetRegistrarMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + is_frozen: false, + }, + balances: vec![(AccountId::from(ALICE), 1_000_000_000_000_000)], + is_sufficient: true, + }]) + .build() + .execute_with(|| { + let source_location = AssetType::Xcm(xcm::v3::Location::parent()); + let dest = Location { + parents: 1, + interior: [AccountId32 { + network: None, + id: [1u8; 32], + }] + .into(), + }; + let source_id: moonbeam_runtime::AssetId = source_location.clone().into(); + // Default XCM version is not set yet, so xtokens should fail because it does not + // know with which version to send + assert_noop!( + XTokens::transfer( + origin_of(AccountId::from(ALICE)), + CurrencyId::ForeignAsset(source_id), + 100_000_000_000_000, + Box::new(xcm::VersionedLocation::V4(dest.clone())), + WeightLimit::Limited(4000000000.into()) + ), + orml_xtokens::Error::::XcmExecutionFailed + ); + + // Root sets the defaultXcm + assert_ok!(PolkadotXcm::force_default_xcm_version( + root_origin(), + Some(2) + )); + + // Now transferring does not fail + assert_ok!(XTokens::transfer( + origin_of(AccountId::from(ALICE)), + CurrencyId::ForeignAsset(source_id), + 100_000_000_000_000, + Box::new(xcm::VersionedLocation::V4(dest)), + WeightLimit::Limited(4000000000.into()) + )); + }) +} + +#[test] +fn asset_can_be_registered() { + ExtBuilder::default().build().execute_with(|| { + let source_location = AssetType::Xcm(xcm::v3::Location::parent()); + let source_id: moonbeam_runtime::AssetId = source_location.clone().into(); + let asset_metadata = AssetRegistrarMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + is_frozen: false, + }; + assert_ok!(AssetManager::register_foreign_asset( + moonbeam_runtime::RuntimeOrigin::root(), + source_location, + asset_metadata, + 1u128, + true + )); + assert!(AssetManager::asset_id_type(source_id).is_some()); + }); +} + +#[test] +fn xcm_asset_erc20_precompiles_supply_and_balance() { + ExtBuilder::default() + .with_xcm_assets(vec![XcmAssetInitialization { + asset_type: AssetType::Xcm(xcm::v3::Location::parent()), + metadata: AssetRegistrarMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + is_frozen: false, + }, + balances: vec![(AccountId::from(ALICE), 1_000 * GLMR)], + is_sufficient: true, + }]) + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * GLMR), + (AccountId::from(BOB), 1_000 * GLMR), + ]) + .build() + .execute_with(|| { + // We have the assetId that corresponds to the relay chain registered + let relay_asset_id: moonbeam_runtime::AssetId = + AssetType::Xcm(xcm::v3::Location::parent()).into(); + + // Its address is + let asset_precompile_address = Runtime::asset_id_to_account( + FOREIGN_ASSET_PRECOMPILE_ADDRESS_PREFIX, + relay_asset_id, + ); + + // Assert the asset has been created with the correct supply + assert_eq!( + moonbeam_runtime::Assets::total_supply(relay_asset_id), + 1_000 * GLMR + ); + + // Access totalSupply through precompile. Important that the context is correct + Precompiles::new() + .prepare_test( + ALICE, + asset_precompile_address, + ForeignAssetsPCall::total_supply {}, + ) + .expect_cost(2000) + .expect_no_logs() + .execute_returns(U256::from(1000 * GLMR)); + + // Access balanceOf through precompile + Precompiles::new() + .prepare_test( + ALICE, + asset_precompile_address, + ForeignAssetsPCall::balance_of { + who: Address(ALICE.into()), + }, + ) + .expect_cost(2000) + .expect_no_logs() + .execute_returns(U256::from(1000 * GLMR)); + }); +} + +#[test] +fn xcm_asset_erc20_precompiles_transfer() { + ExtBuilder::default() + .with_xcm_assets(vec![XcmAssetInitialization { + asset_type: AssetType::Xcm(xcm::v3::Location::parent()), + metadata: AssetRegistrarMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + is_frozen: false, + }, + balances: vec![(AccountId::from(ALICE), 1_000 * GLMR)], + is_sufficient: true, + }]) + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * GLMR), + (AccountId::from(BOB), 1_000 * GLMR), + ]) + .build() + .execute_with(|| { + // We have the assetId that corresponds to the relay chain registered + let relay_asset_id: moonbeam_runtime::AssetId = + AssetType::Xcm(xcm::v3::Location::parent()).into(); + + // Its address is + let asset_precompile_address = Runtime::asset_id_to_account( + FOREIGN_ASSET_PRECOMPILE_ADDRESS_PREFIX, + relay_asset_id, + ); + + // Transfer tokens from Aice to Bob, 400 GLMR. + Precompiles::new() + .prepare_test( + ALICE, + asset_precompile_address, + ForeignAssetsPCall::transfer { + to: Address(BOB.into()), + value: { 400 * GLMR }.into(), + }, + ) + .expect_cost(24342) + .expect_log(log3( + asset_precompile_address, + SELECTOR_LOG_TRANSFER, + H160::from(ALICE), + H160::from(BOB), + solidity::encode_event_data(U256::from(400 * GLMR)), + )) + .execute_returns(true); + + // Make sure BOB has 400 GLMR + Precompiles::new() + .prepare_test( + BOB, + asset_precompile_address, + ForeignAssetsPCall::balance_of { + who: Address(BOB.into()), + }, + ) + .expect_cost(2000) + .expect_no_logs() + .execute_returns(U256::from(400 * GLMR)); + }); +} + +#[test] +fn xcm_asset_erc20_precompiles_approve() { + ExtBuilder::default() + .with_xcm_assets(vec![XcmAssetInitialization { + asset_type: AssetType::Xcm(xcm::v3::Location::parent()), + metadata: AssetRegistrarMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + is_frozen: false, + }, + balances: vec![(AccountId::from(ALICE), 1_000 * GLMR)], + is_sufficient: true, + }]) + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * GLMR), + (AccountId::from(BOB), 1_000 * GLMR), + ]) + .build() + .execute_with(|| { + // We have the assetId that corresponds to the relay chain registered + let relay_asset_id: moonbeam_runtime::AssetId = + AssetType::Xcm(xcm::v3::Location::parent()).into(); + + // Its address is + let asset_precompile_address = Runtime::asset_id_to_account( + FOREIGN_ASSET_PRECOMPILE_ADDRESS_PREFIX, + relay_asset_id, + ); + + // Aprove Bob for spending 400 GLMR from Alice + Precompiles::new() + .prepare_test( + ALICE, + asset_precompile_address, + ForeignAssetsPCall::approve { + spender: Address(BOB.into()), + value: { 400 * GLMR }.into(), + }, + ) + .expect_cost(14424) + .expect_log(log3( + asset_precompile_address, + SELECTOR_LOG_APPROVAL, + H160::from(ALICE), + H160::from(BOB), + solidity::encode_event_data(U256::from(400 * GLMR)), + )) + .execute_returns(true); + + // Transfer tokens from Alice to Charlie by using BOB as origin + Precompiles::new() + .prepare_test( + BOB, + asset_precompile_address, + ForeignAssetsPCall::transfer_from { + from: Address(ALICE.into()), + to: Address(CHARLIE.into()), + value: { 400 * GLMR }.into(), + }, + ) + .expect_cost(29686) + .expect_log(log3( + asset_precompile_address, + SELECTOR_LOG_TRANSFER, + H160::from(ALICE), + H160::from(CHARLIE), + solidity::encode_event_data(U256::from(400 * GLMR)), + )) + .execute_returns(true); + + // Make sure CHARLIE has 400 GLMR + Precompiles::new() + .prepare_test( + CHARLIE, + asset_precompile_address, + ForeignAssetsPCall::balance_of { + who: Address(CHARLIE.into()), + }, + ) + .expect_cost(2000) + .expect_no_logs() + .execute_returns(U256::from(400 * GLMR)); + }); +} + +#[test] +fn xtokens_precompile_transfer() { + ExtBuilder::default() + .with_xcm_assets(vec![XcmAssetInitialization { + asset_type: AssetType::Xcm(xcm::v3::Location::parent()), + metadata: AssetRegistrarMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + is_frozen: false, + }, + balances: vec![(AccountId::from(ALICE), 1_000_000_000_000_000)], + is_sufficient: true, + }]) + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * GLMR), + (AccountId::from(BOB), 1_000 * GLMR), + ]) + .with_safe_xcm_version(2) + .build() + .execute_with(|| { + let xtokens_precompile_address = H160::from_low_u64_be(2052); + + // We have the assetId that corresponds to the relay chain registered + let relay_asset_id: moonbeam_runtime::AssetId = + AssetType::Xcm(xcm::v3::Location::parent()).into(); + + // Its address is + let asset_precompile_address = Runtime::asset_id_to_account( + FOREIGN_ASSET_PRECOMPILE_ADDRESS_PREFIX, + relay_asset_id, + ); + + // Alice has 1000 tokens. She should be able to send through precompile + let destination = Location::new( + 1, + [Junction::AccountId32 { + network: None, + id: [1u8; 32], + }], + ); + + // We use the address of the asset as an identifier of the asset we want to transfer + Precompiles::new() + .prepare_test( + ALICE, + xtokens_precompile_address, + XtokensPCall::transfer { + currency_address: Address(asset_precompile_address.into()), + amount: 500_000_000_000_000u128.into(), + destination: destination.clone(), + weight: 4_000_000, + }, + ) + .expect_cost(57639) + .expect_no_logs() + .execute_returns(()) + }) +} + +#[test] +fn xtokens_precompile_transfer_multiasset() { + ExtBuilder::default() + .with_xcm_assets(vec![XcmAssetInitialization { + asset_type: AssetType::Xcm(xcm::v3::Location::parent()), + metadata: AssetRegistrarMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + is_frozen: false, + }, + balances: vec![(AccountId::from(ALICE), 1_000_000_000_000_000)], + is_sufficient: true, + }]) + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * GLMR), + (AccountId::from(BOB), 1_000 * GLMR), + ]) + .with_safe_xcm_version(2) + .build() + .execute_with(|| { + let xtokens_precompile_address = H160::from_low_u64_be(2052); + + // Alice has 1000 tokens. She should be able to send through precompile + let destination = Location::new( + 1, + [Junction::AccountId32 { + network: None, + id: [1u8; 32], + }], + ); + + // This time we transfer it through TransferMultiAsset + // Instead of the address, we encode directly the multilocation referencing the asset + Precompiles::new() + .prepare_test( + ALICE, + xtokens_precompile_address, + XtokensPCall::transfer_multiasset { + // We want to transfer the relay token + asset: Location::parent(), + amount: 500_000_000_000_000u128.into(), + destination: destination.clone(), + weight: 4_000_000, + }, + ) + .expect_cost(57639) + .expect_no_logs() + .execute_returns(()); + }) +} + +#[test] +fn make_sure_glmr_can_be_transferred_precompile() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * GLMR), + (AccountId::from(BOB), 1_000 * GLMR), + ]) + .with_collators(vec![(AccountId::from(ALICE), 1_000 * GLMR)]) + .with_mappings(vec![( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + AccountId::from(ALICE), + )]) + .with_safe_xcm_version(2) + .build() + .execute_with(|| { + let dest = Location { + parents: 1, + interior: [AccountId32 { + network: None, + id: [1u8; 32], + }] + .into(), + }; + assert_ok!(XTokens::transfer_multiasset( + origin_of(AccountId::from(ALICE)), + Box::new(VersionedAsset::V4(Asset { + id: AssetId(moonbeam_runtime::xcm_config::SelfReserve::get()), + fun: Fungible(1000) + })), + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(40000.into()) + )); + }); +} + +#[test] +fn make_sure_glmr_can_be_transferred() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * GLMR), + (AccountId::from(BOB), 1_000 * GLMR), + ]) + .with_collators(vec![(AccountId::from(ALICE), 1_000 * GLMR)]) + .with_mappings(vec![( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + AccountId::from(ALICE), + )]) + .with_safe_xcm_version(2) + .build() + .execute_with(|| { + let dest = Location { + parents: 1, + interior: [AccountId32 { + network: None, + id: [1u8; 32], + }] + .into(), + }; + assert_ok!(XTokens::transfer( + origin_of(AccountId::from(ALICE)), + CurrencyId::SelfReserve, + 100, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(40000.into()) + )); + }); +} + +#[test] +fn make_sure_polkadot_xcm_cannot_be_called() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * GLMR), + (AccountId::from(BOB), 1_000 * GLMR), + ]) + .with_collators(vec![(AccountId::from(ALICE), 1_000 * GLMR)]) + .with_mappings(vec![( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + AccountId::from(ALICE), + )]) + .build() + .execute_with(|| { + let dest = Location { + parents: 1, + interior: [AccountId32 { + network: None, + id: [1u8; 32], + }] + .into(), + }; + let assets: Assets = [Asset { + id: AssetId(moonbeam_runtime::xcm_config::SelfLocation::get()), + fun: Fungible(1000), + }] + .to_vec() + .into(); + assert_noop!( + RuntimeCall::PolkadotXcm(pallet_xcm::Call::::reserve_transfer_assets { + dest: Box::new(VersionedLocation::V4(dest.clone())), + beneficiary: Box::new(VersionedLocation::V4(dest)), + assets: Box::new(VersionedAssets::V4(assets)), + fee_asset_item: 0, + }) + .dispatch(::RuntimeOrigin::signed( + AccountId::from(ALICE) + )), + frame_system::Error::::CallFiltered + ); + }); +} + +#[test] +fn transact_through_signed_precompile_works_v2() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * GLMR), + (AccountId::from(BOB), 1_000 * GLMR), + ]) + .with_safe_xcm_version(2) + .build() + .execute_with(|| { + // Destination + let dest = Location::parent(); + + let fee_payer_asset = Location::parent(); + + let bytes = vec![1u8, 2u8, 3u8]; + + let total_weight = 1_000_000_000u64; + + let xcm_transactor_v2_precompile_address = H160::from_low_u64_be(2061); + + Precompiles::new() + .prepare_test( + ALICE, + xcm_transactor_v2_precompile_address, + XcmTransactorV2PCall::transact_through_signed_multilocation { + dest, + fee_asset: fee_payer_asset, + weight: 4_000_000, + call: bytes.into(), + fee_amount: u128::from(total_weight).into(), + overall_weight: total_weight, + }, + ) + .expect_cost(17555) + .expect_no_logs() + .execute_returns(()); + }); +} + +#[test] +fn transact_through_signed_cannot_send_to_local_chain() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * GLMR), + (AccountId::from(BOB), 1_000 * GLMR), + ]) + .with_safe_xcm_version(2) + .build() + .execute_with(|| { + // Destination + let dest = Location::here(); + + let fee_payer_asset = Location::parent(); + + let bytes = vec![1u8, 2u8, 3u8]; + + let total_weight = 1_000_000_000u64; + + let xcm_transactor_v2_precompile_address = H160::from_low_u64_be(2061); + + Precompiles::new() + .prepare_test( + ALICE, + xcm_transactor_v2_precompile_address, + XcmTransactorV2PCall::transact_through_signed_multilocation { + dest, + fee_asset: fee_payer_asset, + weight: 4_000_000, + call: bytes.into(), + fee_amount: u128::from(total_weight).into(), + overall_weight: total_weight, + }, + ) + .execute_reverts(|output| { + from_utf8(&output) + .unwrap() + .contains("Dispatched call failed with error:") + && from_utf8(&output).unwrap().contains("ErrorValidating") + }); + }); +} + +#[test] +fn transactor_cannot_use_more_than_max_weight() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * GLMR), + (AccountId::from(BOB), 1_000 * GLMR), + ]) + .with_xcm_assets(vec![XcmAssetInitialization { + asset_type: AssetType::Xcm(xcm::v3::Location::parent()), + metadata: AssetRegistrarMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + is_frozen: false, + }, + balances: vec![(AccountId::from(ALICE), 1_000_000_000_000_000)], + is_sufficient: true, + }]) + .build() + .execute_with(|| { + let source_location = AssetType::Xcm(xcm::v3::Location::parent()); + let source_id: moonbeam_runtime::AssetId = source_location.clone().into(); + assert_ok!(XcmTransactor::register( + root_origin(), + AccountId::from(ALICE), + 0, + )); + + // Root can set transact info + assert_ok!(XcmTransactor::set_transact_info( + root_origin(), + Box::new(xcm::VersionedLocation::V4(Location::parent())), + // Relay charges 1000 for every instruction, and we have 3, so 3000 + 3000.into(), + 20000.into(), + None + )); + + // Root can set transact info + assert_ok!(XcmTransactor::set_fee_per_second( + root_origin(), + Box::new(xcm::VersionedLocation::V4(Location::parent())), + 1, + )); + + assert_noop!( + XcmTransactor::transact_through_derivative( + origin_of(AccountId::from(ALICE)), + moonbeam_runtime::xcm_config::Transactors::Relay, + 0, + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + Location::parent() + ))), + fee_amount: None + }, + vec![], + // 2000 is the max + TransactWeights { + transact_required_weight_at_most: 17001.into(), + overall_weight: None + }, + false + ), + pallet_xcm_transactor::Error::::MaxWeightTransactReached + ); + assert_noop!( + XcmTransactor::transact_through_derivative( + origin_of(AccountId::from(ALICE)), + moonbeam_runtime::xcm_config::Transactors::Relay, + 0, + CurrencyPayment { + currency: Currency::AsCurrencyId(CurrencyId::ForeignAsset(source_id)), + fee_amount: None + }, + vec![], + // 20000 is the max + TransactWeights { + transact_required_weight_at_most: 17001.into(), + overall_weight: None + }, + false + ), + pallet_xcm_transactor::Error::::MaxWeightTransactReached + ); + }) +} + +#[test] +fn call_xtokens_with_fee() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * GLMR), + (AccountId::from(BOB), 1_000 * GLMR), + ]) + .with_safe_xcm_version(2) + .with_xcm_assets(vec![XcmAssetInitialization { + asset_type: AssetType::Xcm(xcm::v3::Location::parent()), + metadata: AssetRegistrarMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + is_frozen: false, + }, + balances: vec![(AccountId::from(ALICE), 1_000_000_000_000_000)], + is_sufficient: true, + }]) + .build() + .execute_with(|| { + let source_location = AssetType::Xcm(xcm::v3::Location::parent()); + let dest = Location { + parents: 1, + interior: [AccountId32 { + network: None, + id: [1u8; 32], + }] + .into(), + }; + let source_id: moonbeam_runtime::AssetId = source_location.clone().into(); + + let before_balance = + moonbeam_runtime::Assets::balance(source_id, &AccountId::from(ALICE)); + + // We are able to transfer with fee + assert_ok!(XTokens::transfer_with_fee( + origin_of(AccountId::from(ALICE)), + CurrencyId::ForeignAsset(source_id), + 100_000_000_000_000, + 100, + Box::new(xcm::VersionedLocation::V4(dest.clone())), + WeightLimit::Limited(4000000000.into()) + )); + + let after_balance = + moonbeam_runtime::Assets::balance(source_id, &AccountId::from(ALICE)); + // At least these much (plus fees) should have been charged + assert_eq!(before_balance - 100_000_000_000_000 - 100, after_balance); + }); +} + +#[test] +fn test_xcm_utils_ml_tp_account() { + ExtBuilder::default().build().execute_with(|| { + let xcm_utils_precompile_address = H160::from_low_u64_be(2060); + let expected_address_parent: H160 = + ParentIsPreset::::convert_location(&Location::parent()) + .unwrap() + .into(); + + Precompiles::new() + .prepare_test( + ALICE, + xcm_utils_precompile_address, + XcmUtilsPCall::multilocation_to_address { + location: Location::parent(), + }, + ) + .expect_cost(1000) + .expect_no_logs() + .execute_returns(Address(expected_address_parent)); + + let parachain_2000_location = Location::new(1, [Parachain(2000)]); + let expected_address_parachain: H160 = + SiblingParachainConvertsVia::::convert_location( + ¶chain_2000_location, + ) + .unwrap() + .into(); + + Precompiles::new() + .prepare_test( + ALICE, + xcm_utils_precompile_address, + XcmUtilsPCall::multilocation_to_address { + location: parachain_2000_location, + }, + ) + .expect_cost(1000) + .expect_no_logs() + .execute_returns(Address(expected_address_parachain)); + + let alice_in_parachain_2000_location = Location::new( + 1, + [ + Parachain(2000), + AccountKey20 { + network: None, + key: ALICE, + }, + ], + ); + let expected_address_alice_in_parachain_2000 = + xcm_builder::HashedDescription::< + AccountId, + xcm_builder::DescribeFamily, + >::convert_location(&alice_in_parachain_2000_location) + .unwrap() + .into(); + + Precompiles::new() + .prepare_test( + ALICE, + xcm_utils_precompile_address, + XcmUtilsPCall::multilocation_to_address { + location: alice_in_parachain_2000_location, + }, + ) + .expect_cost(1000) + .expect_no_logs() + .execute_returns(Address(expected_address_alice_in_parachain_2000)); + }); +} + +#[test] +fn test_xcm_utils_weight_message() { + ExtBuilder::default().build().execute_with(|| { + let xcm_utils_precompile_address = H160::from_low_u64_be(2060); + let expected_weight = + XcmWeight::::clear_origin().ref_time(); + + let message: Vec = xcm::VersionedXcm::<()>::V4(Xcm(vec![ClearOrigin])).encode(); + + let input = XcmUtilsPCall::weight_message { + message: message.into(), + }; + + Precompiles::new() + .prepare_test(ALICE, xcm_utils_precompile_address, input) + .expect_cost(0) + .expect_no_logs() + .execute_returns(expected_weight); + }); +} + +#[test] +fn test_xcm_utils_get_units_per_second() { + ExtBuilder::default().build().execute_with(|| { + let xcm_utils_precompile_address = H160::from_low_u64_be(2060); + let location = SelfReserve::get(); + + let input = XcmUtilsPCall::get_units_per_second { location }; + + let expected_units = + WEIGHT_REF_TIME_PER_SECOND as u128 * moonbeam_runtime::currency::WEIGHT_FEE; + + Precompiles::new() + .prepare_test(ALICE, xcm_utils_precompile_address, input) + .expect_cost(1000) + .expect_no_logs() + .execute_returns(expected_units); + }); +} + +#[test] +fn precompile_existence() { + ExtBuilder::default().build().execute_with(|| { + let precompiles = Precompiles::new(); + let precompile_addresses: std::collections::BTreeSet<_> = vec![ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 1024, 1025, 1026, 2048, 2049, 2050, 2051, 2052, 2053, 2054, + 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, + 2069, 2070, 2071, 2072, 2073, + ] + .into_iter() + .map(H160::from_low_u64_be) + .collect(); + + for i in 0..3000 { + let address = H160::from_low_u64_be(i); + + if precompile_addresses.contains(&address) { + assert!( + is_precompile_or_fail::(address, 100_000u64).expect("to be ok"), + "is_precompile({}) should return true", + i + ); + + assert!( + precompiles + .execute(&mut MockHandle::new( + address, + Context { + address, + caller: H160::zero(), + apparent_value: U256::zero() + } + ),) + .is_some(), + "execute({},..) should return Some(_)", + i + ); + } else { + assert!( + !is_precompile_or_fail::(address, 100_000u64).expect("to be ok"), + "is_precompile({}) should return false", + i + ); + + assert!( + precompiles + .execute(&mut MockHandle::new( + address, + Context { + address, + caller: H160::zero(), + apparent_value: U256::zero() + } + ),) + .is_none(), + "execute({},..) should return None", + i + ); + } + } + }); +} + +#[test] +fn removed_precompiles() { + ExtBuilder::default().build().execute_with(|| { + let precompiles = Precompiles::new(); + let removed_precompiles = [1025, 2051, 2062, 2063]; + + for i in 1..3000 { + let address = H160::from_low_u64_be(i); + + if !is_precompile_or_fail::(address, 100_000u64).expect("to be ok") { + continue; + } + + if !removed_precompiles.contains(&i) { + assert!( + match precompiles.is_active_precompile(address, 100_000u64) { + IsPrecompileResult::Answer { is_precompile, .. } => is_precompile, + _ => false, + }, + "{i} should be an active precompile" + ); + continue; + } + + assert!( + !match precompiles.is_active_precompile(address, 100_000u64) { + IsPrecompileResult::Answer { is_precompile, .. } => is_precompile, + _ => false, + }, + "{i} shouldn't be an active precompile" + ); + + precompiles + .prepare_test(Alice, address, []) + .execute_reverts(|out| out == b"Removed precompile"); + } + }) +} + +#[test] +fn deal_with_fees_handles_tip() { + use frame_support::traits::OnUnbalanced; + use moonbeam_runtime::{DealWithFees, Treasury}; + + ExtBuilder::default().build().execute_with(|| { + // This test checks the functionality of the `DealWithFees` trait implementation in the runtime. + // It simulates a scenario where a fee and a tip are issued to an account and ensures that the + // treasury receives the correct amount (20% of the total), and the rest is burned (80%). + // + // The test follows these steps: + // 1. It issues a fee of 100 and a tip of 1000. + // 2. It checks the total supply before the fee and tip are dealt with, which should be 1_100. + // 3. It checks that the treasury's balance is initially 0. + // 4. It calls `DealWithFees::on_unbalanceds` with the fee and tip. + // 5. It checks that the treasury's balance is now 220 (20% of the fee and tip). + // 6. It checks that the total supply has decreased by 880 (80% of the fee and tip), indicating + // that this amount was burned. + let fee = as frame_support::traits::fungible::Balanced< + AccountId, + >>::issue(100); + let tip = as frame_support::traits::fungible::Balanced< + AccountId, + >>::issue(1000); + + let total_supply_before = Balances::total_issuance(); + assert_eq!(total_supply_before, 1_100); + assert_eq!(Balances::free_balance(&Treasury::account_id()), 0); + + DealWithFees::on_unbalanceds(vec![fee, tip].into_iter()); + + // treasury should have received 20% + assert_eq!(Balances::free_balance(&Treasury::account_id()), 220); + + // verify 80% burned + let total_supply_after = Balances::total_issuance(); + assert_eq!(total_supply_before - total_supply_after, 880); + }); +} + +#[test] +fn evm_revert_substrate_events() { + ExtBuilder::default() + .with_balances(vec![(AccountId::from(ALICE), 100_000 * GLMR)]) + .build() + .execute_with(|| { + let batch_precompile_address = H160::from_low_u64_be(2056); + + // Batch a transfer followed by an invalid call to batch. + // Thus BatchAll will revert the transfer. + assert_ok!(RuntimeCall::EVM(pallet_evm::Call::call { + source: ALICE.into(), + target: batch_precompile_address, + + input: BatchPCall::batch_all { + to: vec![Address(BOB.into()), Address(batch_precompile_address)].into(), + value: vec![U256::from(1 * GLMR), U256::zero()].into(), + call_data: vec![].into(), + gas_limit: vec![].into() + } + .into(), + value: U256::zero(), // No value sent in EVM + gas_limit: 500_000, + max_fee_per_gas: BASE_FEE_GENESIS.into(), + max_priority_fee_per_gas: None, + nonce: Some(U256::from(0)), + access_list: Vec::new(), + }) + .dispatch(::RuntimeOrigin::root())); + + let transfer_count = System::events() + .iter() + .filter(|r| match r.event { + RuntimeEvent::Balances(pallet_balances::Event::Transfer { .. }) => true, + _ => false, + }) + .count(); + + assert_eq!(transfer_count, 0, "there should be no transfer event"); + }); +} + +#[test] +fn evm_success_keeps_substrate_events() { + ExtBuilder::default() + .with_balances(vec![(AccountId::from(ALICE), 100_000 * GLMR)]) + .build() + .execute_with(|| { + let batch_precompile_address = H160::from_low_u64_be(2056); + + assert_ok!(RuntimeCall::EVM(pallet_evm::Call::call { + source: ALICE.into(), + target: batch_precompile_address, + input: BatchPCall::batch_all { + to: vec![Address(BOB.into())].into(), + value: vec![U256::from(1 * GLMR)].into(), + call_data: vec![].into(), + gas_limit: vec![].into() + } + .into(), + value: U256::zero(), // No value sent in EVM + gas_limit: 500_000, + max_fee_per_gas: BASE_FEE_GENESIS.into(), + max_priority_fee_per_gas: None, + nonce: Some(U256::from(0)), + access_list: Vec::new(), + }) + .dispatch(::RuntimeOrigin::root())); + + let transfer_count = System::events() + .iter() + .filter(|r| match r.event { + RuntimeEvent::Balances(pallet_balances::Event::Transfer { .. }) => true, + _ => false, + }) + .count(); + + assert_eq!(transfer_count, 1, "there should be 1 transfer event"); + }); +} + +#[cfg(test)] +mod fee_tests { + use super::*; + use fp_evm::FeeCalculator; + use frame_support::{ + traits::{ConstU128, OnFinalize}, + weights::{ConstantMultiplier, WeightToFee}, + }; + use moonbeam_runtime::{ + currency, LengthToFee, MinimumMultiplier, RuntimeBlockWeights, SlowAdjustingFeeUpdate, + TargetBlockFullness, TransactionPaymentAsGasPrice, NORMAL_WEIGHT, WEIGHT_PER_GAS, + }; + use sp_core::Get; + use sp_runtime::{BuildStorage, FixedPointNumber, Perbill}; + + fn run_with_system_weight(w: Weight, mut assertions: F) + where + F: FnMut() -> (), + { + let mut t: sp_io::TestExternalities = frame_system::GenesisConfig::::default() + .build_storage() + .unwrap() + .into(); + t.execute_with(|| { + System::set_block_consumed_resources(w, 0); + assertions() + }); + } + + #[test] + fn test_multiplier_can_grow_from_zero() { + let minimum_multiplier = MinimumMultiplier::get(); + let target = TargetBlockFullness::get() + * RuntimeBlockWeights::get() + .get(DispatchClass::Normal) + .max_total + .unwrap(); + // if the min is too small, then this will not change, and we are doomed forever. + // the weight is 1/100th bigger than target. + run_with_system_weight(target * 101 / 100, || { + let next = SlowAdjustingFeeUpdate::::convert(minimum_multiplier); + assert!( + next > minimum_multiplier, + "{:?} !>= {:?}", + next, + minimum_multiplier + ); + }) + } + + #[test] + fn test_fee_calculation() { + let base_extrinsic = RuntimeBlockWeights::get() + .get(DispatchClass::Normal) + .base_extrinsic; + let multiplier = sp_runtime::FixedU128::from_float(0.999000000000000000); + let extrinsic_len = 100u32; + let extrinsic_weight = 5_000u64; + let tip = 42u128; + type WeightToFeeImpl = ConstantMultiplier>; + type LengthToFeeImpl = LengthToFee; + + // base_fee + (multiplier * extrinsic_weight_fee) + extrinsic_length_fee + tip + let expected_fee = + WeightToFeeImpl::weight_to_fee(&base_extrinsic) + + multiplier.saturating_mul_int(WeightToFeeImpl::weight_to_fee( + &Weight::from_parts(extrinsic_weight, 1), + )) + LengthToFeeImpl::weight_to_fee(&Weight::from_parts(extrinsic_len as u64, 1)) + + tip; + + let mut t: sp_io::TestExternalities = frame_system::GenesisConfig::::default() + .build_storage() + .unwrap() + .into(); + t.execute_with(|| { + pallet_transaction_payment::NextFeeMultiplier::::set(multiplier); + let actual_fee = TransactionPayment::compute_fee( + extrinsic_len, + &frame_support::dispatch::DispatchInfo { + class: DispatchClass::Normal, + pays_fee: frame_support::dispatch::Pays::Yes, + weight: Weight::from_parts(extrinsic_weight, 1), + }, + tip, + ); + + assert_eq!( + expected_fee, + actual_fee, + "The actual fee did not match the expected fee, diff {}", + actual_fee - expected_fee + ); + }); + } + + #[test] + fn test_min_gas_price_is_deterministic() { + let mut t: sp_io::TestExternalities = frame_system::GenesisConfig::::default() + .build_storage() + .unwrap() + .into(); + t.execute_with(|| { + let multiplier = sp_runtime::FixedU128::from_u32(1); + pallet_transaction_payment::NextFeeMultiplier::::set(multiplier); + let actual = TransactionPaymentAsGasPrice::min_gas_price().0; + let expected: U256 = multiplier + .saturating_mul_int(currency::WEIGHT_FEE.saturating_mul(WEIGHT_PER_GAS as u128)) + .into(); + + assert_eq!(expected, actual); + }); + } + + #[test] + fn test_min_gas_price_has_no_precision_loss_from_saturating_mul_int() { + let mut t: sp_io::TestExternalities = frame_system::GenesisConfig::::default() + .build_storage() + .unwrap() + .into(); + t.execute_with(|| { + let multiplier_1 = sp_runtime::FixedU128::from_float(0.999593900000000000); + let multiplier_2 = sp_runtime::FixedU128::from_float(0.999593200000000000); + + pallet_transaction_payment::NextFeeMultiplier::::set(multiplier_1); + let a = TransactionPaymentAsGasPrice::min_gas_price(); + pallet_transaction_payment::NextFeeMultiplier::::set(multiplier_2); + let b = TransactionPaymentAsGasPrice::min_gas_price(); + + assert_ne!( + a, b, + "both gas prices were equal, unexpected precision loss incurred" + ); + }); + } + + #[test] + fn test_fee_scenarios() { + use sp_runtime::FixedU128; + let mut t: sp_io::TestExternalities = frame_system::GenesisConfig::::default() + .build_storage() + .unwrap() + .into(); + t.execute_with(|| { + let weight_fee_per_gas = currency::WEIGHT_FEE.saturating_mul(WEIGHT_PER_GAS as u128); + let sim = |start_gas_price: u128, fullness: Perbill, num_blocks: u64| -> U256 { + let start_multiplier = + FixedU128::from_rational(start_gas_price, weight_fee_per_gas); + pallet_transaction_payment::NextFeeMultiplier::::set(start_multiplier); + + let block_weight = NORMAL_WEIGHT * fullness; + + for i in 0..num_blocks { + System::set_block_number(i as u32); + System::set_block_consumed_resources(block_weight, 0); + TransactionPayment::on_finalize(i as u32); + } + + TransactionPaymentAsGasPrice::min_gas_price().0 + }; + + // The expected values are the ones observed during test execution, + // they are expected to change when parameters that influence + // the fee calculation are changed, and should be updated accordingly. + // If a test fails when nothing specific to fees has changed, + // it may indicate an unexpected collateral effect and should be investigated + + assert_eq!( + sim(1_000_000_000, Perbill::from_percent(0), 1), + U256::from(125_000_000_000u128), + ); + assert_eq!( + sim(1_000_000_000, Perbill::from_percent(25), 1), + U256::from(125_000_000_000u128), + ); + assert_eq!( + sim(1_000_000_000, Perbill::from_percent(50), 1), + U256::from(125_075_022_500u128), + ); + assert_eq!( + sim(1_000_000_000, Perbill::from_percent(100), 1), + U256::from(125_325_422_500u128), + ); + + // 1 "real" hour (at 12-second blocks) + assert_eq!( + sim(1_000_000_000, Perbill::from_percent(0), 600), + U256::from(125_000_000_000u128), + ); + assert_eq!( + sim(1_000_000_000, Perbill::from_percent(25), 600), + U256::from(125_000_000_000u128), + ); + assert_eq!( + sim(1_000_000_000, Perbill::from_percent(50), 600), + U256::from(179_166_172_951u128), + ); + assert_eq!( + sim(1_000_000_000, Perbill::from_percent(100), 600), + U256::from(594_851_612_166u128), + ); + + // 1 "real" day (at 12-second blocks) + assert_eq!( + sim(1_000_000_000, Perbill::from_percent(0), 14400), + U256::from(125_000_000_000u128), // lower bound enforced + ); + assert_eq!( + sim(1_000_000_000, Perbill::from_percent(25), 14400), + U256::from(125_000_000_000u128), + ); + assert_eq!( + sim(1_000_000_000, Perbill::from_percent(50), 14400), + U256::from(706_665_861_883_635u128), + ); + assert_eq!( + sim(1_000_000_000, Perbill::from_percent(100), 14400), + U256::from(12_500_000_000_000_000u128), // upper bound enforced + ); + }); + } +} diff --git a/tracing/3001/runtime/moonbeam/tests/runtime_apis.rs b/tracing/3001/runtime/moonbeam/tests/runtime_apis.rs new file mode 100644 index 00000000..b7df77d0 --- /dev/null +++ b/tracing/3001/runtime/moonbeam/tests/runtime_apis.rs @@ -0,0 +1,395 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Moonbeam Runtime Api Integration Tests + +mod common; +use common::*; + +use fp_evm::GenesisAccount; +use frame_support::assert_ok; +use nimbus_primitives::NimbusId; +use pallet_evm::{Account as EVMAccount, AddressMapping, FeeCalculator}; +use sp_core::{ByteArray, H160, H256, U256}; + +use fp_rpc::runtime_decl_for_ethereum_runtime_rpc_api::EthereumRuntimeRPCApi; +use moonbeam_core_primitives::Header; +use moonbeam_rpc_primitives_txpool::runtime_decl_for_tx_pool_runtime_api::TxPoolRuntimeApi; +use moonbeam_runtime::{Executive, TransactionPaymentAsGasPrice}; +use nimbus_primitives::runtime_decl_for_nimbus_api::NimbusApi; +use std::{collections::BTreeMap, str::FromStr}; + +#[test] +fn ethereum_runtime_rpc_api_chain_id() { + ExtBuilder::default().build().execute_with(|| { + assert_eq!(Runtime::chain_id(), CHAIN_ID); + }); +} + +#[test] +fn ethereum_runtime_rpc_api_account_basic() { + ExtBuilder::default() + .with_balances(vec![(AccountId::from(ALICE), 2_000 * GLMR)]) + .build() + .execute_with(|| { + assert_eq!( + Runtime::account_basic(H160::from(ALICE)), + EVMAccount { + balance: U256::from(2_000 * GLMR), + nonce: U256::zero() + } + ); + }); +} + +#[test] +fn ethereum_runtime_rpc_api_gas_price() { + ExtBuilder::default().build().execute_with(|| { + assert_eq!( + Runtime::gas_price(), + TransactionPaymentAsGasPrice::min_gas_price().0 + ); + }); +} + +#[test] +fn ethereum_runtime_rpc_api_account_code_at() { + let address = H160::from(EVM_CONTRACT); + let code: Vec = vec![1, 2, 3, 4, 5]; + ExtBuilder::default() + .with_evm_accounts({ + let mut map = BTreeMap::new(); + map.insert( + address, + GenesisAccount { + balance: U256::zero(), + code: code.clone(), + nonce: Default::default(), + storage: Default::default(), + }, + ); + map + }) + .build() + .execute_with(|| { + assert_eq!(Runtime::account_code_at(address), code); + }); +} + +#[test] +fn ethereum_runtime_rpc_api_author() { + ExtBuilder::default() + .with_collators(vec![(AccountId::from(ALICE), 100_000 * GLMR)]) + .with_mappings(vec![( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + AccountId::from(ALICE), + )]) + .with_balances(vec![ + (AccountId::from(ALICE), 200_000 * GLMR), + (AccountId::from(BOB), 100_000 * GLMR), + ]) + .with_delegations(vec![( + AccountId::from(BOB), + AccountId::from(ALICE), + 50_000 * GLMR, + )]) + .build() + .execute_with(|| { + set_parachain_inherent_data(); + run_to_block(2, Some(NimbusId::from_slice(&ALICE_NIMBUS).unwrap())); + assert_eq!(Runtime::author(), H160::from(ALICE)); + }); +} + +#[test] +fn ethereum_runtime_rpc_api_storage_at() { + let address = H160::from(EVM_CONTRACT); + let mut key = [0u8; 32]; + key[31..32].copy_from_slice(&[6u8][..]); + let mut value = [0u8; 32]; + value[31..32].copy_from_slice(&[7u8][..]); + let item = H256::from_slice(&key[..]); + let mut storage: BTreeMap = BTreeMap::new(); + storage.insert(H256::from_slice(&key[..]), item); + ExtBuilder::default() + .with_evm_accounts({ + let mut map = BTreeMap::new(); + map.insert( + address, + GenesisAccount { + balance: U256::zero(), + code: Vec::new(), + nonce: Default::default(), + storage: storage.clone(), + }, + ); + map + }) + .build() + .execute_with(|| { + assert_eq!(Runtime::storage_at(address, U256::from(6)), item); + }); +} + +#[test] +fn ethereum_runtime_rpc_api_call() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * GLMR), + (AccountId::from(BOB), 2_000 * GLMR), + ]) + .build() + .execute_with(|| { + let execution_result = Runtime::call( + H160::from(ALICE), // from + H160::from(BOB), // to + Vec::new(), // data + U256::from(1000u64), // value + U256::from(100000u64), // gas_limit + None, // max_fee_per_gas + None, // max_priority_fee_per_gas + None, // nonce + false, // estimate + None, // access_list + ); + assert!(execution_result.is_ok()); + }); +} + +#[test] +fn ethereum_runtime_rpc_api_create() { + ExtBuilder::default() + .with_balances(vec![(AccountId::from(ALICE), 2_000 * GLMR)]) + .build() + .execute_with(|| { + let execution_result = Runtime::create( + H160::from(ALICE), // from + vec![0, 1, 1, 0], // data + U256::zero(), // value + U256::from(100000u64), // gas_limit + None, // max_fee_per_gas + None, // max_priority_fee_per_gas + None, // nonce + false, // estimate + None, // access_list + ); + assert!(execution_result.is_ok()); + }); +} + +#[test] +fn ethereum_runtime_rpc_api_current_transaction_statuses() { + let alith = ::AddressMapping::into_account_id( + H160::from_str("f24FF3a9CF04c71Dbc94D0b566f7A27B94566cac") + .expect("internal H160 is valid; qed"), + ); + ExtBuilder::default() + .with_collators(vec![(AccountId::from(ALICE), 100_000 * GLMR)]) + .with_mappings(vec![( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + AccountId::from(ALICE), + )]) + .with_balances(vec![ + (alith, 200_000 * GLMR), + (AccountId::from(ALICE), 200_000 * GLMR), + (AccountId::from(BOB), 100_000 * GLMR), + ]) + .with_delegations(vec![( + AccountId::from(BOB), + AccountId::from(ALICE), + 50_000 * GLMR, + )]) + .build() + .execute_with(|| { + set_parachain_inherent_data(); + + let _result = Executive::apply_extrinsic(unchecked_eth_tx(VALID_ETH_TX)); + + rpc_run_to_block(2); + let statuses = + Runtime::current_transaction_statuses().expect("Transaction statuses result."); + assert_eq!(statuses.len(), 1); + }); +} + +#[test] +fn ethereum_runtime_rpc_api_current_block() { + ExtBuilder::default() + .with_collators(vec![(AccountId::from(ALICE), 100_000 * GLMR)]) + .with_mappings(vec![( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + AccountId::from(ALICE), + )]) + .with_balances(vec![ + (AccountId::from(ALICE), 200_000 * GLMR), + (AccountId::from(BOB), 100_000 * GLMR), + ]) + .with_delegations(vec![( + AccountId::from(BOB), + AccountId::from(ALICE), + 50_000 * GLMR, + )]) + .build() + .execute_with(|| { + set_parachain_inherent_data(); + rpc_run_to_block(2); + let block = Runtime::current_block().expect("Block result."); + assert_eq!(block.header.number, U256::from(1u8)); + }); +} + +#[test] +fn ethereum_runtime_rpc_api_current_receipts() { + let alith = ::AddressMapping::into_account_id( + H160::from_str("f24FF3a9CF04c71Dbc94D0b566f7A27B94566cac") + .expect("internal H160 is valid; qed"), + ); + ExtBuilder::default() + .with_collators(vec![(AccountId::from(ALICE), 100_000 * GLMR)]) + .with_mappings(vec![( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + AccountId::from(ALICE), + )]) + .with_balances(vec![ + (alith, 200_000 * GLMR), + (AccountId::from(ALICE), 200_000 * GLMR), + (AccountId::from(BOB), 100_000 * GLMR), + ]) + .with_delegations(vec![( + AccountId::from(BOB), + AccountId::from(ALICE), + 50_000 * GLMR, + )]) + .build() + .execute_with(|| { + set_parachain_inherent_data(); + + let _result = Executive::apply_extrinsic(unchecked_eth_tx(VALID_ETH_TX)); + + rpc_run_to_block(2); + let receipts = Runtime::current_receipts().expect("Receipts result."); + assert_eq!(receipts.len(), 1); + }); +} + +#[test] +fn txpool_runtime_api_extrinsic_filter() { + ExtBuilder::default().build().execute_with(|| { + let non_eth_uxt = UncheckedExtrinsic::new_unsigned( + pallet_balances::Call::::transfer_allow_death { + dest: AccountId::from(BOB), + value: 1 * GLMR, + } + .into(), + ); + let eth_uxt = unchecked_eth_tx(VALID_ETH_TX); + let txpool = >::extrinsic_filter( + vec![eth_uxt.clone(), non_eth_uxt.clone()], + vec![unchecked_eth_tx(VALID_ETH_TX), non_eth_uxt], + ); + assert_eq!(txpool.ready.len(), 1); + assert_eq!(txpool.future.len(), 1); + }); +} + +#[test] +fn can_author_when_selected_is_empty() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), 20_000_000 * GLMR), + (AccountId::from(BOB), 10_000_000 * GLMR), + ]) + .with_collators(vec![(AccountId::from(ALICE), 2_000_000 * GLMR)]) + .with_mappings(vec![( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + AccountId::from(ALICE), + )]) + .build() + .execute_with(|| { + set_parachain_inherent_data(); + run_to_block(2, Some(NimbusId::from_slice(&ALICE_NIMBUS).unwrap())); + + assert_eq!(ParachainStaking::candidate_pool().0.len(), 1); + + let slot_number = 0; + let parent = Header { + digest: Default::default(), + extrinsics_root: Default::default(), + number: Default::default(), + parent_hash: Default::default(), + state_root: Default::default(), + }; + + // Base case: ALICE can author blocks when she is the only candidate + let can_author_block = Runtime::can_author( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + slot_number, + &parent, + ); + + assert!(can_author_block); + + // Remove ALICE from candidate pool, leaving the candidate_pool empty + assert_ok!(ParachainStaking::go_offline(origin_of(AccountId::from( + ALICE + )))); + + // Need to fast forward to right before the next session, which is when selected candidates + // will be updated. We want to test the creation of the first block of the next session. + run_to_block(1799, Some(NimbusId::from_slice(&ALICE_NIMBUS).unwrap())); + + assert_eq!(ParachainStaking::candidate_pool().0.len(), 0); + + let slot_number = 0; + let parent = Header { + digest: Default::default(), + extrinsics_root: Default::default(), + number: 1799, + parent_hash: Default::default(), + state_root: Default::default(), + }; + + let can_author_block = Runtime::can_author( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + slot_number, + &parent, + ); + + assert!(can_author_block); + + // Check that it works as expected after session update + run_to_block(1800, Some(NimbusId::from_slice(&ALICE_NIMBUS).unwrap())); + + assert_eq!(ParachainStaking::candidate_pool().0.len(), 0); + + let slot_number = 0; + let parent = Header { + digest: Default::default(), + extrinsics_root: Default::default(), + number: 1800, + parent_hash: Default::default(), + state_root: Default::default(), + }; + + let can_author_block = Runtime::can_author( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + slot_number, + &parent, + ); + + assert!(can_author_block); + }); +} diff --git a/tracing/3001/runtime/moonbeam/tests/xcm_mock/mod.rs b/tracing/3001/runtime/moonbeam/tests/xcm_mock/mod.rs new file mode 100644 index 00000000..d52700b8 --- /dev/null +++ b/tracing/3001/runtime/moonbeam/tests/xcm_mock/mod.rs @@ -0,0 +1,271 @@ +// Copyright 2021 Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot 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. + +// Polkadot 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 Polkadot. If not, see . + +pub mod parachain; +pub mod relay_chain; +pub mod statemint_like; + +use cumulus_primitives_core::ParaId; +use pallet_xcm_transactor::relay_indices::*; +use sp_runtime::traits::AccountIdConversion; +use sp_runtime::{AccountId32, BuildStorage}; +use xcm_simulator::{decl_test_network, decl_test_parachain, decl_test_relay_chain, TestExt}; + +use polkadot_runtime_parachains::configuration::{ + GenesisConfig as ConfigurationGenesisConfig, HostConfiguration, +}; +use polkadot_runtime_parachains::paras::{ + GenesisConfig as ParasGenesisConfig, ParaGenesisArgs, ParaKind, +}; +use sp_core::{H160, U256}; +use std::{collections::BTreeMap, str::FromStr}; + +pub const PARAALICE: [u8; 20] = [1u8; 20]; +pub const RELAYALICE: AccountId32 = AccountId32::new([0u8; 32]); +pub const RELAYBOB: AccountId32 = AccountId32::new([2u8; 32]); + +pub fn para_a_account() -> AccountId32 { + ParaId::from(1).into_account_truncating() +} + +pub fn para_b_account() -> AccountId32 { + ParaId::from(2).into_account_truncating() +} + +pub fn para_a_account_20() -> parachain::AccountId { + ParaId::from(1).into_account_truncating() +} + +pub fn evm_account() -> H160 { + H160::from_str("1000000000000000000000000000000000000001").unwrap() +} + +pub fn mock_para_genesis_info() -> ParaGenesisArgs { + ParaGenesisArgs { + genesis_head: vec![1u8].into(), + validation_code: vec![1u8].into(), + para_kind: ParaKind::Parachain, + } +} + +pub fn mock_relay_config() -> HostConfiguration { + HostConfiguration:: { + hrmp_channel_max_capacity: u32::MAX, + hrmp_channel_max_total_size: u32::MAX, + hrmp_max_parachain_inbound_channels: 10, + hrmp_max_parachain_outbound_channels: 10, + hrmp_channel_max_message_size: u32::MAX, + // Changed to avoid aritmetic errors within hrmp_close + max_downward_message_size: 100_000u32, + ..Default::default() + } +} + +decl_test_parachain! { + pub struct ParaA { + Runtime = parachain::Runtime, + XcmpMessageHandler = parachain::MsgQueue, + DmpMessageHandler = parachain::MsgQueue, + new_ext = para_ext(1), + } +} + +decl_test_parachain! { + pub struct ParaB { + Runtime = parachain::Runtime, + XcmpMessageHandler = parachain::MsgQueue, + DmpMessageHandler = parachain::MsgQueue, + new_ext = para_ext(2), + } +} + +decl_test_parachain! { + pub struct ParaC { + Runtime = parachain::Runtime, + XcmpMessageHandler = parachain::MsgQueue, + DmpMessageHandler = parachain::MsgQueue, + new_ext = para_ext(3), + } +} + +decl_test_parachain! { + pub struct Statemint { + Runtime = statemint_like::Runtime, + XcmpMessageHandler = statemint_like::MsgQueue, + DmpMessageHandler = statemint_like::MsgQueue, + new_ext = statemint_ext(4), + } +} + +decl_test_relay_chain! { + pub struct Relay { + Runtime = relay_chain::Runtime, + RuntimeCall = relay_chain::RuntimeCall, + RuntimeEvent = relay_chain::RuntimeEvent, + XcmConfig = relay_chain::XcmConfig, + MessageQueue = relay_chain::MessageQueue, + System = relay_chain::System, + new_ext = relay_ext(vec![1, 2, 3, 4]), + } +} + +decl_test_network! { + pub struct MockNet { + relay_chain = Relay, + parachains = vec![ + (1, ParaA), + (2, ParaB), + (3, ParaC), + (4, Statemint), + ], + } +} + +pub const INITIAL_BALANCE: u128 = 10_000_000_000_000_000; + +pub const INITIAL_EVM_BALANCE: u128 = 0; +pub const INITIAL_EVM_NONCE: u32 = 1; + +pub fn para_ext(para_id: u32) -> sp_io::TestExternalities { + use parachain::{MsgQueue, Runtime, System}; + + let mut t = frame_system::GenesisConfig::::default() + .build_storage() + .unwrap(); + + pallet_balances::GenesisConfig:: { + balances: vec![(PARAALICE.into(), INITIAL_BALANCE)], + } + .assimilate_storage(&mut t) + .unwrap(); + + pallet_xcm_transactor::GenesisConfig:: { + // match relay runtime construct_runtime order in xcm_mock::relay_chain + relay_indices: RelayChainIndices { + hrmp: 6u8, + init_open_channel: 0u8, + accept_open_channel: 1u8, + close_channel: 2u8, + cancel_open_request: 6u8, + ..Default::default() + }, + ..Default::default() + } + .assimilate_storage(&mut t) + .unwrap(); + + // EVM accounts are self-sufficient. + let mut evm_accounts = BTreeMap::new(); + evm_accounts.insert( + evm_account(), + fp_evm::GenesisAccount { + nonce: U256::from(INITIAL_EVM_NONCE), + balance: U256::from(INITIAL_EVM_BALANCE), + storage: Default::default(), + code: vec![ + 0x00, // STOP + ], + }, + ); + + let genesis_config = pallet_evm::GenesisConfig:: { + accounts: evm_accounts, + ..Default::default() + }; + genesis_config.assimilate_storage(&mut t).unwrap(); + + let mut ext = sp_io::TestExternalities::new(t); + ext.execute_with(|| { + System::set_block_number(1); + MsgQueue::set_para_id(para_id.into()); + }); + ext +} + +pub fn statemint_ext(para_id: u32) -> sp_io::TestExternalities { + use statemint_like::{MsgQueue, Runtime, System}; + + let mut t = frame_system::GenesisConfig::::default() + .build_storage() + .unwrap(); + + pallet_balances::GenesisConfig:: { + balances: vec![ + (RELAYALICE.into(), INITIAL_BALANCE), + (RELAYBOB.into(), INITIAL_BALANCE), + ], + } + .assimilate_storage(&mut t) + .unwrap(); + + let mut ext = sp_io::TestExternalities::new(t); + ext.execute_with(|| { + System::set_block_number(1); + MsgQueue::set_para_id(para_id.into()); + }); + ext +} + +pub fn relay_ext(paras: Vec) -> sp_io::TestExternalities { + use relay_chain::{Runtime, System}; + + let mut t = frame_system::GenesisConfig::::default() + .build_storage() + .unwrap(); + + pallet_balances::GenesisConfig:: { + balances: vec![(RELAYALICE, INITIAL_BALANCE)], + } + .assimilate_storage(&mut t) + .unwrap(); + + let para_genesis: Vec<(ParaId, ParaGenesisArgs)> = paras + .iter() + .map(|¶_id| (para_id.into(), mock_para_genesis_info())) + .collect(); + + let genesis_config = ConfigurationGenesisConfig:: { + config: mock_relay_config(), + }; + genesis_config.assimilate_storage(&mut t).unwrap(); + + let genesis_config = ParasGenesisConfig:: { + paras: para_genesis, + ..Default::default() + }; + genesis_config.assimilate_storage(&mut t).unwrap(); + + let mut ext = sp_io::TestExternalities::new(t); + ext.execute_with(|| { + System::set_block_number(1); + }); + ext +} + +pub type RelayChainPalletXcm = pallet_xcm::Pallet; +pub type Hrmp = polkadot_runtime_parachains::hrmp::Pallet; + +pub type StatemintBalances = pallet_balances::Pallet; +pub type StatemintChainPalletXcm = pallet_xcm::Pallet; +pub type StatemintAssets = pallet_assets::Pallet; + +pub type Assets = pallet_assets::Pallet; +pub type Treasury = pallet_treasury::Pallet; +pub type AssetManager = pallet_asset_manager::Pallet; +pub type XTokens = orml_xtokens::Pallet; +pub type RelayBalances = pallet_balances::Pallet; +pub type ParaBalances = pallet_balances::Pallet; +pub type XcmTransactor = pallet_xcm_transactor::Pallet; diff --git a/tracing/3001/runtime/moonbeam/tests/xcm_mock/parachain.rs b/tracing/3001/runtime/moonbeam/tests/xcm_mock/parachain.rs new file mode 100644 index 00000000..3ed310da --- /dev/null +++ b/tracing/3001/runtime/moonbeam/tests/xcm_mock/parachain.rs @@ -0,0 +1,1088 @@ +// Copyright 2021 Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot 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. + +// Polkadot 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 Polkadot. If not, see . + +//! Parachain runtime mock. + +use frame_support::{ + construct_runtime, + dispatch::GetDispatchInfo, + ensure, parameter_types, + traits::{ + AsEnsureOriginWithArg, ConstU32, Everything, Get, InstanceFilter, Nothing, PalletInfoAccess, + }, + weights::Weight, + PalletId, +}; +pub use moonbeam_runtime::xcm_config::AssetType; + +use frame_system::{pallet_prelude::BlockNumberFor, EnsureNever, EnsureRoot}; +use pallet_xcm::migration::v1::VersionUncheckedMigrateToV1; +use parity_scale_codec::{Decode, Encode, MaxEncodedLen}; +use sp_core::H256; +use sp_runtime::{ + traits::{BlakeTwo256, Hash, IdentityLookup, MaybeEquivalence, Zero}, + Permill, +}; +use sp_std::{convert::TryFrom, prelude::*}; +use xcm::{latest::prelude::*, Version as XcmVersion, VersionedXcm}; + +use cumulus_primitives_core::relay_chain::HrmpChannelId; +use orml_traits::parameter_type_with_key; +use pallet_ethereum::PostLogContent; +use polkadot_core_primitives::BlockNumber as RelayBlockNumber; +use polkadot_parachain::primitives::{Id as ParaId, Sibling}; +use xcm::latest::{ + AssetId as XcmAssetId, Error as XcmError, ExecuteXcm, + Junction::{PalletInstance, Parachain}, + Location, NetworkId, Outcome, Xcm, +}; +use xcm_builder::{ + AccountKey20Aliases, AllowKnownQueryResponses, AllowSubscriptionsFrom, + AllowTopLevelPaidExecutionFrom, ConvertedConcreteId, EnsureXcmOrigin, FixedRateOfFungible, + FixedWeightBounds, FungibleAdapter as XcmCurrencyAdapter, FungiblesAdapter, IsConcrete, + NoChecking, ParentAsSuperuser, ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, + SiblingParachainConvertsVia, SignedAccountKey20AsNative, SovereignSignedViaLocation, + TakeWeightCredit, WithComputedOrigin, +}; +use xcm_executor::{traits::JustTry, Config, XcmExecutor}; + +#[cfg(feature = "runtime-benchmarks")] +use moonbeam_runtime_common::benchmarking::BenchmarkHelper as ArgumentsBenchmarkHelper; +use scale_info::TypeInfo; +use xcm_simulator::{ + DmpMessageHandlerT as DmpMessageHandler, XcmpMessageFormat, + XcmpMessageHandlerT as XcmpMessageHandler, +}; + +pub type AccountId = moonbeam_core_primitives::AccountId; +pub type Balance = u128; +pub type AssetId = u128; +pub type BlockNumber = BlockNumberFor; + +parameter_types! { + pub const BlockHashCount: u32 = 250; +} + +impl frame_system::Config for Runtime { + type RuntimeOrigin = RuntimeOrigin; + type RuntimeCall = RuntimeCall; + type RuntimeTask = RuntimeTask; + type Nonce = u64; + type Block = Block; + type Hash = H256; + type Hashing = ::sp_runtime::traits::BlakeTwo256; + type AccountId = AccountId; + type Lookup = IdentityLookup; + type RuntimeEvent = RuntimeEvent; + type BlockHashCount = BlockHashCount; + type BlockWeights = (); + type BlockLength = (); + type Version = (); + type PalletInfo = PalletInfo; + type AccountData = pallet_balances::AccountData; + type OnNewAccount = (); + type OnKilledAccount = (); + type DbWeight = (); + type BaseCallFilter = Everything; + type SystemWeightInfo = (); + type SS58Prefix = (); + type OnSetCode = (); + type MaxConsumers = frame_support::traits::ConstU32<16>; +} + +parameter_types! { + pub ExistentialDeposit: Balance = 0; + pub const MaxLocks: u32 = 50; + pub const MaxReserves: u32 = 50; +} + +impl pallet_balances::Config for Runtime { + type MaxLocks = MaxLocks; + type Balance = Balance; + type RuntimeEvent = RuntimeEvent; + type DustRemoval = (); + type ExistentialDeposit = ExistentialDeposit; + type AccountStore = System; + type WeightInfo = (); + type MaxReserves = MaxReserves; + type ReserveIdentifier = [u8; 8]; + type RuntimeHoldReason = (); + type FreezeIdentifier = (); + type MaxFreezes = (); + type RuntimeFreezeReason = (); +} + +pub type ForeignAssetInstance = (); + +// Required for runtime benchmarks +pallet_assets::runtime_benchmarks_enabled! { + pub struct BenchmarkHelper; + impl pallet_assets::BenchmarkHelper for BenchmarkHelper + where + AssetIdParameter: From, + { + fn create_asset_id_parameter(id: u32) -> AssetIdParameter { + (id as u128).into() + } + } +} + +parameter_types! { + pub const AssetDeposit: Balance = 1; // Does not really matter as this will be only called by root + pub const ApprovalDeposit: Balance = 0; + pub const AssetsStringLimit: u32 = 50; + pub const MetadataDepositBase: Balance = 0; + pub const MetadataDepositPerByte: Balance = 0; + pub const AssetAccountDeposit: Balance = 0; +} + +impl pallet_assets::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Balance = Balance; + type AssetId = AssetId; + type Currency = Balances; + type ForceOrigin = EnsureRoot; + type AssetDeposit = AssetDeposit; + type MetadataDepositBase = MetadataDepositBase; + type MetadataDepositPerByte = MetadataDepositPerByte; + type ApprovalDeposit = ApprovalDeposit; + type StringLimit = AssetsStringLimit; + type Freezer = (); + type Extra = (); + type AssetAccountDeposit = AssetAccountDeposit; + type WeightInfo = pallet_assets::weights::SubstrateWeight; + type RemoveItemsLimit = ConstU32<656>; + type AssetIdParameter = AssetId; + type CreateOrigin = AsEnsureOriginWithArg>; + type CallbackHandle = (); + pallet_assets::runtime_benchmarks_enabled! { + type BenchmarkHelper = BenchmarkHelper; + } +} + +/// Type for specifying how a `Location` 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 default `AccountId`. + ParentIsPreset, + // Sibling parachain origins convert to AccountId via the `ParaId::into`. + SiblingParachainConvertsVia, + AccountKey20Aliases, + // Generate remote accounts according to polkadot standards + xcm_builder::HashedDescription< + AccountId, + xcm_builder::DescribeFamily, + >, +); + +/// 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 + // recognised. + RelayChainAsNative, + // Native converter for sibling Parachains; will convert to a `SiblingPara` origin when + // recognised. + SiblingParachainAsNative, + // Superuser converter for the Relay-chain (Parent) location. This will allow it to issue a + // transaction from the Root origin. + ParentAsSuperuser, + // Xcm origins can be represented natively under the Xcm pallet's Xcm origin. + pallet_xcm::XcmPassthrough, + SignedAccountKey20AsNative, +); + +parameter_types! { + pub const UnitWeightCost: Weight = Weight::from_parts(1u64, 1u64); + pub MaxInstructions: u32 = 100; +} + +// Instructing how incoming xcm assets will be handled +pub type ForeignFungiblesTransactor = FungiblesAdapter< + // Use this fungibles implementation: + Assets, + // Use this currency when it is a fungible asset matching the given location or name: + ( + ConvertedConcreteId< + AssetId, + Balance, + xcm_primitives::AsAssetType, + JustTry, + >, + ), + // Do a simple punn to convert an AccountId32 Location into a native chain account ID: + LocationToAccountId, + // Our chain's account ID type (we can't get away without mentioning it explicitly): + AccountId, + // We dont allow teleports. + NoChecking, + // We dont track any teleports + (), +>; + +pub type LocalAssetTransactor = XcmCurrencyAdapter< + // Use this currency: + Balances, + // Use this currency when it is a fungible asset matching any of the locations in + // SelfReserveRepresentations + IsConcrete, + // We can convert the Locations with our converter above: + LocationToAccountId, + // Our chain's account ID type (we can't get away without mentioning it explicitly): + AccountId, + // We dont allow teleport + (), +>; + +// We use all transactors +pub type AssetTransactors = (LocalAssetTransactor, ForeignFungiblesTransactor); +pub type XcmRouter = super::ParachainXcmRouter; + +pub type XcmBarrier = ( + // Weight that is paid for may be consumed. + TakeWeightCredit, + // Expected responses are OK. + AllowKnownQueryResponses, + WithComputedOrigin< + ( + // If the message is one that immediately attemps to pay for execution, then allow it. + AllowTopLevelPaidExecutionFrom, + // Subscriptions for version tracking are OK. + AllowSubscriptionsFrom, + ), + UniversalLocation, + ConstU32<8>, + >, +); + +parameter_types! { + /// Xcm fees will go to the treasury account + pub XcmFeesAccount: AccountId = Treasury::account_id(); +} + +/// This is the struct that will handle the revenue from xcm fees +pub type XcmFeesToAccount_ = xcm_primitives::XcmFeesToAccount< + Assets, + ( + ConvertedConcreteId< + AssetId, + Balance, + xcm_primitives::AsAssetType, + JustTry, + >, + ), + AccountId, + XcmFeesAccount, +>; + +parameter_types! { + // We cannot skip the native trader for some specific tests, so we will have to work with + // a native trader that charges same number of units as weight + pub ParaTokensPerSecond: (XcmAssetId, u128, u128) = ( + AssetId(SelfReserve::get()), + 1000000000000, + 0, + ); +} + +parameter_types! { + pub const RelayNetwork: NetworkId = NetworkId::Polkadot; + pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); + pub UniversalLocation: InteriorLocation = + [GlobalConsensus(RelayNetwork::get()), Parachain(MsgQueue::parachain_id().into())].into(); + pub SelfReserve: Location = Location { + parents:0, + interior: [ + PalletInstance(::index() as u8) + ].into() + }; + pub const MaxAssetsIntoHolding: u32 = 64; +} + +use frame_system::RawOrigin; +use sp_runtime::traits::PostDispatchInfoOf; +use sp_runtime::DispatchErrorWithPostInfo; +use xcm_executor::traits::CallDispatcher; +moonbeam_runtime_common::impl_moonbeam_xcm_call!(); + +pub struct XcmConfig; +impl Config for XcmConfig { + type RuntimeCall = RuntimeCall; + type XcmSender = XcmRouter; + type AssetTransactor = AssetTransactors; + type OriginConverter = XcmOriginToTransactDispatchOrigin; + type IsReserve = orml_xcm_support::MultiNativeAsset< + xcm_primitives::AbsoluteAndRelativeReserve, + >; + type IsTeleporter = (); + type UniversalLocation = UniversalLocation; + type Barrier = XcmBarrier; + type Weigher = FixedWeightBounds; + // We use two traders + // When we receive the self-reserve asset, + // When we receive a non-reserve asset, we use AssetManager to fetch how many + // units per second we should charge + type Trader = ( + FixedRateOfFungible, + xcm_primitives::FirstAssetTrader, + ); + type ResponseHandler = PolkadotXcm; + type SubscriptionService = PolkadotXcm; + type AssetTrap = PolkadotXcm; + type AssetClaims = PolkadotXcm; + type CallDispatcher = MoonbeamCall; + type AssetLocker = (); + type AssetExchanger = (); + type PalletInstancesInfo = (); + type MaxAssetsIntoHolding = MaxAssetsIntoHolding; + type FeeManager = (); + type MessageExporter = (); + type UniversalAliases = Nothing; + type SafeCallFilter = Everything; + type Aliasers = Nothing; + + type TransactionalProcessor = (); +} + +impl cumulus_pallet_xcm::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type XcmExecutor = XcmExecutor; +} + +// Our currencyId. We distinguish for now between SelfReserve, and Others, defined by their Id. +#[derive(Clone, Eq, Debug, PartialEq, Ord, PartialOrd, Encode, Decode, TypeInfo)] +pub enum CurrencyId { + SelfReserve, + ForeignAsset(AssetId), +} + +// How to convert from CurrencyId to Location +pub struct CurrencyIdToLocation(sp_std::marker::PhantomData); +impl sp_runtime::traits::Convert> + for CurrencyIdToLocation +where + AssetXConverter: MaybeEquivalence, +{ + fn convert(currency: CurrencyId) -> Option { + match currency { + CurrencyId::SelfReserve => { + let multi: Location = SelfReserve::get(); + Some(multi) + } + CurrencyId::ForeignAsset(asset) => AssetXConverter::convert_back(&asset), + } + } +} + +parameter_types! { + pub const BaseXcmWeight: Weight = Weight::from_parts(100u64, 100u64); + pub const MaxAssetsForTransfer: usize = 2; + pub SelfLocation: Location = Location::here(); + pub SelfLocationAbsolute: Location = Location { + parents:1, + interior: [ + Parachain(MsgQueue::parachain_id().into()) + ].into() + }; +} + +parameter_type_with_key! { + pub ParachainMinFee: |location: Location| -> Option { + match (location.parents, location.first_interior()) { + (1, Some(Parachain(4u32))) => Some(50u128), + _ => None, + } + }; +} + +// The XCM message wrapper wrapper +impl orml_xtokens::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Balance = Balance; + type CurrencyId = CurrencyId; + type AccountIdToLocation = xcm_primitives::AccountIdToLocation; + type CurrencyIdConvert = + CurrencyIdToLocation>; + type XcmExecutor = XcmExecutor; + type SelfLocation = SelfLocation; + type Weigher = xcm_builder::FixedWeightBounds; + type BaseXcmWeight = BaseXcmWeight; + type UniversalLocation = UniversalLocation; + type MaxAssetsForTransfer = MaxAssetsForTransfer; + type MinXcmFee = ParachainMinFee; + type LocationsFilter = Everything; + type ReserveProvider = xcm_primitives::AbsoluteAndRelativeReserve; +} + +parameter_types! { + pub const ProposalBond: Permill = Permill::from_percent(5); + pub const ProposalBondMinimum: Balance = 0; + pub const SpendPeriod: u32 = 0; + pub const TreasuryId: PalletId = PalletId(*b"pc/trsry"); + pub const MaxApprovals: u32 = 100; + pub TreasuryAccount: AccountId = Treasury::account_id(); +} + +impl pallet_treasury::Config for Runtime { + type PalletId = TreasuryId; + type Currency = Balances; + type ApproveOrigin = EnsureRoot; + type RejectOrigin = EnsureRoot; + type RuntimeEvent = RuntimeEvent; + type OnSlash = Treasury; + type ProposalBond = ProposalBond; + type ProposalBondMinimum = ProposalBondMinimum; + type SpendPeriod = SpendPeriod; + type Burn = (); + type BurnDestination = (); + type MaxApprovals = MaxApprovals; + type WeightInfo = (); + type SpendFunds = (); + type ProposalBondMaximum = (); + type SpendOrigin = frame_support::traits::NeverEnsureOrigin; // Same as Polkadot + type AssetKind = (); + type Beneficiary = AccountId; + type BeneficiaryLookup = IdentityLookup; + type Paymaster = PayFromAccount; + type BalanceConverter = UnityAssetBalanceConversion; + type PayoutPeriod = ConstU32<0>; + #[cfg(feature = "runtime-benchmarks")] + type BenchmarkHelper = ArgumentsBenchmarkHelper; +} + +#[frame_support::pallet] +pub mod mock_msg_queue { + use super::*; + use frame_support::pallet_prelude::*; + + #[pallet::config] + pub trait Config: frame_system::Config { + type RuntimeEvent: From> + IsType<::RuntimeEvent>; + type XcmExecutor: ExecuteXcm; + } + + #[pallet::call] + impl Pallet {} + + #[pallet::pallet] + pub struct Pallet(_); + + #[pallet::storage] + #[pallet::getter(fn parachain_id)] + pub(super) type ParachainId = StorageValue<_, ParaId, ValueQuery>; + + impl Get for Pallet { + fn get() -> ParaId { + Self::parachain_id() + } + } + + pub type MessageId = [u8; 32]; + + #[pallet::event] + #[pallet::generate_deposit(pub(super) fn deposit_event)] + pub enum Event { + // XCMP + /// Some XCM was executed OK. + Success(Option), + /// Some XCM failed. + Fail(Option, XcmError), + /// Bad XCM version used. + BadVersion(Option), + /// Bad XCM format used. + BadFormat(Option), + + // DMP + /// Downward message is invalid XCM. + InvalidFormat(MessageId), + /// Downward message is unsupported version of XCM. + UnsupportedVersion(MessageId), + /// Downward message executed with the given outcome. + ExecutedDownward(MessageId, Outcome), + } + + impl Pallet { + pub fn set_para_id(para_id: ParaId) { + ParachainId::::put(para_id); + } + + fn handle_xcmp_message( + sender: ParaId, + _sent_at: RelayBlockNumber, + xcm: VersionedXcm, + max_weight: Weight, + ) -> Result { + let hash = Encode::using_encoded(&xcm, T::Hashing::hash); + let (result, event) = match Xcm::::try_from(xcm) { + Ok(xcm) => { + let location = Location::new(1, [Parachain(sender.into())]); + let mut id = [0u8; 32]; + id.copy_from_slice(hash.as_ref()); + match T::XcmExecutor::prepare_and_execute( + location, + xcm, + &mut id, + max_weight, + Weight::zero(), + ) { + Outcome::Error { error } => { + (Err(error.clone()), Event::Fail(Some(hash), error)) + } + Outcome::Complete { used } => (Ok(used), Event::Success(Some(hash))), + // As far as the caller is concerned, this was dispatched without error, so + // we just report the weight used. + Outcome::Incomplete { used, error } => { + (Ok(used), Event::Fail(Some(hash), error)) + } + } + } + Err(()) => ( + Err(XcmError::UnhandledXcmVersion), + Event::BadVersion(Some(hash)), + ), + }; + Self::deposit_event(event); + result + } + } + + impl XcmpMessageHandler for Pallet { + fn handle_xcmp_messages<'a, I: Iterator>( + iter: I, + max_weight: Weight, + ) -> Weight { + for (sender, sent_at, data) in iter { + let mut data_ref = data; + let _ = XcmpMessageFormat::decode(&mut data_ref) + .expect("Simulator encodes with versioned xcm format; qed"); + + let mut remaining_fragments = &data_ref[..]; + while !remaining_fragments.is_empty() { + if let Ok(xcm) = + VersionedXcm::::decode(&mut remaining_fragments) + { + let _ = Self::handle_xcmp_message(sender, sent_at, xcm, max_weight); + } else { + debug_assert!(false, "Invalid incoming XCMP message data"); + } + } + } + max_weight + } + } + + impl DmpMessageHandler for Pallet { + fn handle_dmp_messages( + iter: impl Iterator)>, + limit: Weight, + ) -> Weight { + for (_i, (_sent_at, data)) in iter.enumerate() { + let mut id = sp_io::hashing::blake2_256(&data[..]); + let maybe_msg = VersionedXcm::::decode(&mut &data[..]) + .map(Xcm::::try_from); + match maybe_msg { + Err(_) => { + Self::deposit_event(Event::InvalidFormat(id)); + } + Ok(Err(())) => { + Self::deposit_event(Event::UnsupportedVersion(id)); + } + Ok(Ok(x)) => { + let outcome = T::XcmExecutor::prepare_and_execute( + Parent, + x, + &mut id, + limit, + Weight::zero(), + ); + + Self::deposit_event(Event::ExecutedDownward(id, outcome)); + } + } + } + limit + } + } +} + +// Pallet to provide the version, used to test runtime upgrade version changes +#[frame_support::pallet] +pub mod mock_version_changer { + use super::*; + use frame_support::pallet_prelude::*; + + #[pallet::config] + pub trait Config: frame_system::Config { + type RuntimeEvent: From> + IsType<::RuntimeEvent>; + } + + #[pallet::call] + impl Pallet {} + + #[pallet::pallet] + pub struct Pallet(_); + + #[pallet::storage] + #[pallet::getter(fn current_version)] + pub(super) type CurrentVersion = StorageValue<_, XcmVersion, ValueQuery>; + + impl Get for Pallet { + fn get() -> XcmVersion { + Self::current_version() + } + } + + #[pallet::event] + #[pallet::generate_deposit(pub(super) fn deposit_event)] + pub enum Event { + // XCMP + /// Some XCM was executed OK. + VersionChanged(XcmVersion), + } + + impl Pallet { + pub fn set_version(version: XcmVersion) { + CurrentVersion::::put(version); + Self::deposit_event(Event::VersionChanged(version)); + } + } +} + +impl mock_msg_queue::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type XcmExecutor = XcmExecutor; +} + +impl mock_version_changer::Config for Runtime { + type RuntimeEvent = RuntimeEvent; +} + +pub type LocalOriginToLocation = + xcm_primitives::SignedToAccountId20; + +parameter_types! { + pub MatcherLocation: Location = Location::here(); +} + +impl pallet_xcm::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type SendXcmOrigin = EnsureXcmOrigin; + type XcmRouter = XcmRouter; + type ExecuteXcmOrigin = EnsureXcmOrigin; + type XcmExecuteFilter = frame_support::traits::Nothing; + type XcmExecutor = XcmExecutor; + // Do not allow teleports + type XcmTeleportFilter = Nothing; + type XcmReserveTransferFilter = Everything; + type Weigher = FixedWeightBounds; + type UniversalLocation = UniversalLocation; + type RuntimeOrigin = RuntimeOrigin; + type RuntimeCall = RuntimeCall; + const VERSION_DISCOVERY_QUEUE_SIZE: u32 = 100; + // We use a custom one to test runtime ugprades + type AdvertisedXcmVersion = XcmVersioner; + type Currency = Balances; + type CurrencyMatcher = IsConcrete; + type TrustedLockers = (); + type SovereignAccountOf = (); + type MaxLockers = ConstU32<8>; + type WeightInfo = pallet_xcm::TestWeightInfo; + type MaxRemoteLockConsumers = ConstU32<0>; + type RemoteLockConsumerIdentifier = (); + type AdminOrigin = frame_system::EnsureRoot; +} + +// We instruct how to register the Assets +// In this case, we tell it to Create an Asset in pallet-assets +pub struct AssetRegistrar; +use frame_support::pallet_prelude::DispatchResult; +impl pallet_asset_manager::AssetRegistrar for AssetRegistrar { + fn create_foreign_asset( + asset: AssetId, + min_balance: Balance, + metadata: AssetMetadata, + is_sufficient: bool, + ) -> DispatchResult { + Assets::force_create( + RuntimeOrigin::root(), + asset, + AssetManager::account_id(), + is_sufficient, + min_balance, + )?; + + Assets::force_set_metadata( + RuntimeOrigin::root(), + asset, + metadata.name, + metadata.symbol, + metadata.decimals, + false, + ) + } + + fn destroy_foreign_asset(asset: AssetId) -> DispatchResult { + // Mark the asset as destroying + Assets::start_destroy(RuntimeOrigin::root(), asset.into())?; + + Ok(()) + } + + fn destroy_asset_dispatch_info_weight(asset: AssetId) -> Weight { + RuntimeCall::Assets( + pallet_assets::Call::::start_destroy { + id: asset.into(), + }, + ) + .get_dispatch_info() + .weight + } +} + +#[derive(Clone, Default, Eq, Debug, PartialEq, Ord, PartialOrd, Encode, Decode, TypeInfo)] +pub struct AssetMetadata { + pub name: Vec, + pub symbol: Vec, + pub decimals: u8, +} + +impl pallet_asset_manager::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Balance = Balance; + type AssetId = AssetId; + type AssetRegistrarMetadata = AssetMetadata; + type ForeignAssetType = AssetType; + type AssetRegistrar = AssetRegistrar; + type ForeignAssetModifierOrigin = EnsureRoot; + type WeightInfo = (); +} + +// 1 DOT should be enough +parameter_types! { + pub MaxHrmpRelayFee: Asset = (Location::parent(), 1_000_000_000_000u128).into(); +} + +impl pallet_xcm_transactor::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Balance = Balance; + type Transactor = MockTransactors; + type DerivativeAddressRegistrationOrigin = EnsureRoot; + type SovereignAccountDispatcherOrigin = frame_system::EnsureRoot; + type CurrencyId = CurrencyId; + type AccountIdToLocation = xcm_primitives::AccountIdToLocation; + type CurrencyIdToLocation = + CurrencyIdToLocation>; + type SelfLocation = SelfLocation; + type Weigher = xcm_builder::FixedWeightBounds; + type UniversalLocation = UniversalLocation; + type XcmSender = XcmRouter; + type BaseXcmWeight = BaseXcmWeight; + type AssetTransactor = AssetTransactors; + type ReserveProvider = xcm_primitives::AbsoluteAndRelativeReserve; + type WeightInfo = (); + type HrmpManipulatorOrigin = EnsureRoot; + type HrmpOpenOrigin = EnsureRoot; + type MaxHrmpFee = xcm_builder::Case; +} + +parameter_types! { + pub const MinimumPeriod: u64 = 1000; +} +impl pallet_timestamp::Config for Runtime { + type Moment = u64; + type OnTimestampSet = (); + type MinimumPeriod = MinimumPeriod; + type WeightInfo = (); +} + +use sp_core::U256; + +const MAX_POV_SIZE: u64 = 5 * 1024 * 1024; +/// Block storage limit in bytes. Set to 40 KB. +const BLOCK_STORAGE_LIMIT: u64 = 40 * 1024; + +parameter_types! { + pub BlockGasLimit: U256 = U256::from(u64::MAX); + pub WeightPerGas: Weight = Weight::from_parts(1, 0); + pub GasLimitPovSizeRatio: u64 = { + let block_gas_limit = BlockGasLimit::get().min(u64::MAX.into()).low_u64(); + block_gas_limit.saturating_div(MAX_POV_SIZE) + }; + pub GasLimitStorageGrowthRatio: u64 = + BlockGasLimit::get().min(u64::MAX.into()).low_u64().saturating_div(BLOCK_STORAGE_LIMIT); +} + +impl pallet_evm::Config for Runtime { + type FeeCalculator = (); + type GasWeightMapping = pallet_evm::FixedGasWeightMapping; + type WeightPerGas = WeightPerGas; + + type CallOrigin = pallet_evm::EnsureAddressRoot; + type WithdrawOrigin = pallet_evm::EnsureAddressNever; + + type AddressMapping = pallet_evm::IdentityAddressMapping; + type Currency = Balances; + type Runner = pallet_evm::runner::stack::Runner; + + type RuntimeEvent = RuntimeEvent; + type PrecompilesType = (); + type PrecompilesValue = (); + type ChainId = (); + type BlockGasLimit = BlockGasLimit; + type OnChargeTransaction = (); + type BlockHashMapping = pallet_evm::SubstrateBlockHashMapping; + type FindAuthor = (); + type OnCreate = (); + type GasLimitPovSizeRatio = GasLimitPovSizeRatio; + type SuicideQuickClearLimit = ConstU32<0>; + type GasLimitStorageGrowthRatio = GasLimitStorageGrowthRatio; + type Timestamp = Timestamp; + type WeightInfo = pallet_evm::weights::SubstrateWeight; +} + +pub struct NormalFilter; +impl frame_support::traits::Contains for NormalFilter { + fn contains(c: &RuntimeCall) -> bool { + match c { + _ => true, + } + } +} + +// We need to use the encoding from the relay mock runtime +#[derive(Encode, Decode)] +pub enum RelayCall { + #[codec(index = 5u8)] + // the index should match the position of the module in `construct_runtime!` + Utility(UtilityCall), + #[codec(index = 6u8)] + // the index should match the position of the module in `construct_runtime!` + Hrmp(HrmpCall), +} + +#[derive(Encode, Decode)] +pub enum UtilityCall { + #[codec(index = 1u8)] + AsDerivative(u16), +} + +// HRMP call encoding, needed for xcm transactor pallet +#[derive(Encode, Decode)] +pub enum HrmpCall { + #[codec(index = 0u8)] + InitOpenChannel(ParaId, u32, u32), + #[codec(index = 1u8)] + AcceptOpenChannel(ParaId), + #[codec(index = 2u8)] + CloseChannel(HrmpChannelId), + #[codec(index = 6u8)] + CancelOpenRequest(HrmpChannelId, u32), +} + +#[derive(Clone, Eq, Debug, PartialEq, Ord, PartialOrd, Encode, Decode, TypeInfo)] +pub enum MockTransactors { + Relay, +} + +impl xcm_primitives::XcmTransact for MockTransactors { + fn destination(self) -> Location { + match self { + MockTransactors::Relay => Location::parent(), + } + } +} + +impl xcm_primitives::UtilityEncodeCall for MockTransactors { + fn encode_call(self, call: xcm_primitives::UtilityAvailableCalls) -> Vec { + match self { + MockTransactors::Relay => match call { + xcm_primitives::UtilityAvailableCalls::AsDerivative(a, b) => { + let mut call = + RelayCall::Utility(UtilityCall::AsDerivative(a.clone())).encode(); + call.append(&mut b.clone()); + call + } + }, + } + } +} + +pub struct MockHrmpEncoder; +impl xcm_primitives::HrmpEncodeCall for MockHrmpEncoder { + fn hrmp_encode_call( + call: xcm_primitives::HrmpAvailableCalls, + ) -> Result, xcm::latest::Error> { + match call { + xcm_primitives::HrmpAvailableCalls::InitOpenChannel(a, b, c) => Ok(RelayCall::Hrmp( + HrmpCall::InitOpenChannel(a.clone(), b.clone(), c.clone()), + ) + .encode()), + xcm_primitives::HrmpAvailableCalls::AcceptOpenChannel(a) => { + Ok(RelayCall::Hrmp(HrmpCall::AcceptOpenChannel(a.clone())).encode()) + } + xcm_primitives::HrmpAvailableCalls::CloseChannel(a) => { + Ok(RelayCall::Hrmp(HrmpCall::CloseChannel(a.clone())).encode()) + } + xcm_primitives::HrmpAvailableCalls::CancelOpenRequest(a, b) => { + Ok(RelayCall::Hrmp(HrmpCall::CancelOpenRequest(a.clone(), b.clone())).encode()) + } + } + } +} + +parameter_types! { + pub const PostBlockAndTxnHashes: PostLogContent = PostLogContent::BlockAndTxnHashes; +} + +impl pallet_ethereum::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type StateRoot = pallet_ethereum::IntermediateStateRoot; + type PostLogContent = PostBlockAndTxnHashes; + type ExtraDataLength = ConstU32<30>; +} +parameter_types! { + pub ReservedXcmpWeight: Weight = Weight::from_parts(u64::max_value(), 0); +} + +#[derive( + Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Encode, Decode, Debug, MaxEncodedLen, TypeInfo, +)] +pub enum ProxyType { + NotAllowed = 0, + Any = 1, +} + +impl pallet_evm_precompile_proxy::EvmProxyCallFilter for ProxyType {} + +impl InstanceFilter for ProxyType { + fn filter(&self, _c: &RuntimeCall) -> bool { + match self { + ProxyType::NotAllowed => false, + ProxyType::Any => true, + } + } + fn is_superset(&self, _o: &Self) -> bool { + false + } +} + +impl Default for ProxyType { + fn default() -> Self { + Self::NotAllowed + } +} + +parameter_types! { + pub const ProxyCost: u64 = 1; +} + +impl pallet_proxy::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + type Currency = Balances; + type ProxyType = ProxyType; + type ProxyDepositBase = ProxyCost; + type ProxyDepositFactor = ProxyCost; + type MaxProxies = ConstU32<32>; + type WeightInfo = pallet_proxy::weights::SubstrateWeight; + type MaxPending = ConstU32<32>; + type CallHasher = BlakeTwo256; + type AnnouncementDepositBase = ProxyCost; + type AnnouncementDepositFactor = ProxyCost; +} + +pub struct EthereumXcmEnsureProxy; +impl xcm_primitives::EnsureProxy for EthereumXcmEnsureProxy { + fn ensure_ok(delegator: AccountId, delegatee: AccountId) -> Result<(), &'static str> { + // The EVM implicitely contains an Any proxy, so we only allow for "Any" proxies + let def: pallet_proxy::ProxyDefinition = + pallet_proxy::Pallet::::find_proxy( + &delegator, + &delegatee, + Some(ProxyType::Any), + ) + .map_err(|_| "proxy error: expected `ProxyType::Any`")?; + // We only allow to use it for delay zero proxies, as the call will iMmediatly be executed + ensure!(def.delay.is_zero(), "proxy delay is Non-zero`"); + Ok(()) + } +} + +impl pallet_ethereum_xcm::Config for Runtime { + type InvalidEvmTransactionError = pallet_ethereum::InvalidTransactionWrapper; + type ValidatedTransaction = pallet_ethereum::ValidatedTransaction; + type XcmEthereumOrigin = pallet_ethereum_xcm::EnsureXcmEthereumTransaction; + type ReservedXcmpWeight = ReservedXcmpWeight; + type EnsureProxy = EthereumXcmEnsureProxy; + type ControllerOrigin = EnsureRoot; +} + +type Block = frame_system::mocking::MockBlockU32; + +construct_runtime!( + pub enum Runtime { + System: frame_system, + Balances: pallet_balances, + MsgQueue: mock_msg_queue, + XcmVersioner: mock_version_changer, + + PolkadotXcm: pallet_xcm, + Assets: pallet_assets, + CumulusXcm: cumulus_pallet_xcm, + XTokens: orml_xtokens, + AssetManager: pallet_asset_manager, + XcmTransactor: pallet_xcm_transactor, + Treasury: pallet_treasury, + Proxy: pallet_proxy, + + Timestamp: pallet_timestamp, + EVM: pallet_evm, + Ethereum: pallet_ethereum, + EthereumXcm: pallet_ethereum_xcm, + } +); + +pub(crate) fn para_events() -> Vec { + System::events() + .into_iter() + .map(|r| r.event) + .filter_map(|e| Some(e)) + .collect::>() +} + +use frame_support::traits::tokens::{PayFromAccount, UnityAssetBalanceConversion}; +use frame_support::traits::{OnFinalize, OnInitialize, OnRuntimeUpgrade}; +pub(crate) fn on_runtime_upgrade() { + VersionUncheckedMigrateToV1::::on_runtime_upgrade(); +} + +pub(crate) fn para_roll_to(n: BlockNumber) { + while System::block_number() < n { + PolkadotXcm::on_finalize(System::block_number()); + Balances::on_finalize(System::block_number()); + System::on_finalize(System::block_number()); + System::set_block_number(System::block_number() + 1); + System::on_initialize(System::block_number()); + Balances::on_initialize(System::block_number()); + PolkadotXcm::on_initialize(System::block_number()); + } +} diff --git a/tracing/3001/runtime/moonbeam/tests/xcm_mock/relay_chain.rs b/tracing/3001/runtime/moonbeam/tests/xcm_mock/relay_chain.rs new file mode 100644 index 00000000..40bff5e1 --- /dev/null +++ b/tracing/3001/runtime/moonbeam/tests/xcm_mock/relay_chain.rs @@ -0,0 +1,412 @@ +// Copyright 2021 Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot 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. + +// Polkadot 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 Polkadot. If not, see . + +//! Relay chain runtime mock. + +use frame_support::{ + construct_runtime, parameter_types, + traits::{Everything, Nothing, ProcessMessage, ProcessMessageError}, +}; +use frame_system::pallet_prelude::BlockNumberFor; +use sp_core::H256; +use sp_runtime::{ + traits::{ConstU32, IdentityLookup}, + AccountId32, +}; + +use frame_support::weights::{Weight, WeightMeter}; +use polkadot_parachain::primitives::Id as ParaId; +use polkadot_runtime_parachains::{ + configuration, dmp, hrmp, + inclusion::{AggregateMessageOrigin, UmpQueueId}, + origin, paras, shared, +}; +use sp_runtime::transaction_validity::TransactionPriority; +use sp_runtime::Permill; +use xcm::latest::prelude::*; +use xcm_builder::{ + Account32Hash, AccountId32Aliases, AllowKnownQueryResponses, AllowSubscriptionsFrom, + AllowTopLevelPaidExecutionFrom, ChildParachainAsNative, ChildParachainConvertsVia, + ChildSystemParachainAsSuperuser, FixedRateOfFungible, FixedWeightBounds, + FungibleAdapter as XcmCurrencyAdapter, IsConcrete, ProcessXcmMessage, + SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, + WithComputedOrigin, +}; +use xcm_executor::{Config, XcmExecutor}; +pub type AccountId = AccountId32; +pub type Balance = u128; +pub type BlockNumber = BlockNumberFor; + +parameter_types! { + pub const BlockHashCount: u32 = 250; +} + +impl frame_system::Config for Runtime { + type RuntimeOrigin = RuntimeOrigin; + type RuntimeCall = RuntimeCall; + type RuntimeTask = RuntimeTask; + type Nonce = u64; + type Block = Block; + type Hash = H256; + type Hashing = ::sp_runtime::traits::BlakeTwo256; + type AccountId = AccountId; + type Lookup = IdentityLookup; + type RuntimeEvent = RuntimeEvent; + type BlockHashCount = BlockHashCount; + type BlockWeights = (); + type BlockLength = (); + type Version = (); + type PalletInfo = PalletInfo; + type AccountData = pallet_balances::AccountData; + type OnNewAccount = (); + type OnKilledAccount = (); + type DbWeight = (); + type BaseCallFilter = Everything; + type SystemWeightInfo = (); + type SS58Prefix = (); + type OnSetCode = (); + type MaxConsumers = ConstU32<16>; +} + +parameter_types! { + pub ExistentialDeposit: Balance = 1; + pub const MaxLocks: u32 = 50; + pub const MaxReserves: u32 = 50; +} + +impl pallet_balances::Config for Runtime { + type MaxLocks = MaxLocks; + type Balance = Balance; + type RuntimeEvent = RuntimeEvent; + type DustRemoval = (); + type ExistentialDeposit = ExistentialDeposit; + type AccountStore = System; + type WeightInfo = (); + type MaxReserves = MaxReserves; + type ReserveIdentifier = [u8; 8]; + type RuntimeHoldReason = (); + type FreezeIdentifier = (); + type MaxFreezes = (); + type RuntimeFreezeReason = (); +} + +impl pallet_utility::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + type WeightInfo = (); + type PalletsOrigin = OriginCaller; +} + +impl shared::Config for Runtime { + type DisabledValidators = (); +} + +impl configuration::Config for Runtime { + type WeightInfo = configuration::TestWeightInfo; +} + +parameter_types! { + pub KsmLocation: Location = Here.into(); + pub const KusamaNetwork: NetworkId = NetworkId::Kusama; + pub const AnyNetwork: Option = None; + pub UniversalLocation: InteriorLocation = Here; +} + +pub type SovereignAccountOf = ( + ChildParachainConvertsVia, + AccountId32Aliases, + // Not enabled in the relay per se, but we enable it to test + // the transact_through_signed extrinsic + Account32Hash, +); + +pub type LocalAssetTransactor = + XcmCurrencyAdapter, SovereignAccountOf, AccountId, ()>; + +type LocalOriginConverter = ( + SovereignSignedViaLocation, + ChildParachainAsNative, + SignedAccountId32AsNative, + ChildSystemParachainAsSuperuser, +); + +parameter_types! { + pub const BaseXcmWeight: Weight = Weight::from_parts(1000u64, 1000u64); + pub KsmPerSecond: (AssetId, u128, u128) = (AssetId(KsmLocation::get()), 1, 1); + pub const MaxInstructions: u32 = 100; + pub const MaxAssetsIntoHolding: u32 = 64; + pub MatcherLocation: Location = Location::here(); +} + +pub type XcmRouter = super::RelayChainXcmRouter; + +pub type XcmBarrier = ( + // Weight that is paid for may be consumed. + TakeWeightCredit, + // Expected responses are OK. + AllowKnownQueryResponses, + WithComputedOrigin< + ( + // If the message is one that immediately attemps to pay for execution, then allow it. + AllowTopLevelPaidExecutionFrom, + // Subscriptions for version tracking are OK. + AllowSubscriptionsFrom, + ), + UniversalLocation, + ConstU32<8>, + >, +); + +parameter_types! { + pub Kusama: AssetFilter = Wild(AllOf { fun: WildFungible, id: AssetId(KsmLocation::get()) }); + pub Statemine: Location = Parachain(4).into(); + pub KusamaForStatemine: (AssetFilter, Location) = (Kusama::get(), Statemine::get()); +} + +pub type TrustedTeleporters = xcm_builder::Case; + +pub struct XcmConfig; +impl Config for XcmConfig { + type RuntimeCall = RuntimeCall; + type XcmSender = XcmRouter; + type AssetTransactor = LocalAssetTransactor; + type OriginConverter = LocalOriginConverter; + type IsReserve = (); + type IsTeleporter = TrustedTeleporters; + type UniversalLocation = UniversalLocation; + type Barrier = XcmBarrier; + type Weigher = FixedWeightBounds; + type Trader = FixedRateOfFungible; + type ResponseHandler = XcmPallet; + type AssetTrap = XcmPallet; + type AssetClaims = XcmPallet; + type SubscriptionService = XcmPallet; + type CallDispatcher = RuntimeCall; + type AssetLocker = (); + type AssetExchanger = (); + type PalletInstancesInfo = (); + type MaxAssetsIntoHolding = MaxAssetsIntoHolding; + type FeeManager = (); + type MessageExporter = (); + type UniversalAliases = Nothing; + type SafeCallFilter = Everything; + type Aliasers = Nothing; + type TransactionalProcessor = (); +} + +pub type LocalOriginToLocation = SignedToAccountId32; + +impl pallet_xcm::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type SendXcmOrigin = xcm_builder::EnsureXcmOrigin; + type XcmRouter = XcmRouter; + // Anyone can execute XCM messages locally... + type ExecuteXcmOrigin = xcm_builder::EnsureXcmOrigin; + type XcmExecuteFilter = Nothing; + type XcmExecutor = XcmExecutor; + type XcmTeleportFilter = Everything; + type XcmReserveTransferFilter = Everything; + type Weigher = FixedWeightBounds; + 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 = (); + type MaxLockers = ConstU32<8>; + type WeightInfo = pallet_xcm::TestWeightInfo; + type MaxRemoteLockConsumers = ConstU32<0>; + type RemoteLockConsumerIdentifier = (); + type AdminOrigin = frame_system::EnsureRoot; +} + +parameter_types! { + pub const FirstMessageFactorPercent: u64 = 100; +} + +parameter_types! { + pub const ParasUnsignedPriority: TransactionPriority = TransactionPriority::max_value(); +} + +/// A very dumb implementation of `EstimateNextSessionRotation`. At the moment of writing, this +/// is more to satisfy type requirements rather than to test anything. +pub struct TestNextSessionRotation; + +impl frame_support::traits::EstimateNextSessionRotation for TestNextSessionRotation { + fn average_session_length() -> u32 { + 10 + } + + fn estimate_current_session_progress(_now: u32) -> (Option, Weight) { + (None, Weight::zero()) + } + + fn estimate_next_session_rotation(_now: u32) -> (Option, Weight) { + (None, Weight::zero()) + } +} + +impl paras::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type WeightInfo = paras::TestWeightInfo; + type UnsignedPriority = ParasUnsignedPriority; + type NextSessionRotation = TestNextSessionRotation; + type QueueFootprinter = (); + type OnNewHead = (); + type AssignCoretime = (); +} + +impl dmp::Config for Runtime {} + +impl hrmp::Config for Runtime { + type RuntimeOrigin = RuntimeOrigin; + type RuntimeEvent = RuntimeEvent; + type Currency = Balances; + type WeightInfo = TestHrmpWeightInfo; + type ChannelManager = frame_system::EnsureRoot; +} + +impl frame_system::offchain::SendTransactionTypes for Runtime +where + RuntimeCall: From, +{ + type Extrinsic = UncheckedExtrinsic; + type OverarchingCall = RuntimeCall; +} + +impl origin::Config for Runtime {} + +type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic; +type Block = frame_system::mocking::MockBlockU32; + +parameter_types! { + pub MessageQueueServiceWeight: Weight = Weight::from_parts(1_000_000_000, 1_000_000); + pub const MessageQueueHeapSize: u32 = 65_536; + pub const MessageQueueMaxStale: u32 = 16; +} + +pub struct MessageProcessor; +impl ProcessMessage for MessageProcessor { + type Origin = AggregateMessageOrigin; + + fn process_message( + message: &[u8], + origin: Self::Origin, + meter: &mut WeightMeter, + id: &mut [u8; 32], + ) -> Result { + let para = match origin { + AggregateMessageOrigin::Ump(UmpQueueId::Para(para)) => para, + }; + ProcessXcmMessage::, RuntimeCall>::process_message( + message, + Junction::Parachain(para.into()), + meter, + id, + ) + } +} + +impl pallet_message_queue::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Size = u32; + type HeapSize = MessageQueueHeapSize; + type MaxStale = MessageQueueMaxStale; + type ServiceWeight = MessageQueueServiceWeight; + type MessageProcessor = MessageProcessor; + type QueueChangeHandler = (); + type WeightInfo = (); + type QueuePausedQuery = (); +} + +construct_runtime!( + pub enum Runtime { + System: frame_system, + Balances: pallet_balances, + ParasOrigin: origin, + MessageQueue: pallet_message_queue, + XcmPallet: pallet_xcm, + Utility: pallet_utility, + Hrmp: hrmp, + Dmp: dmp, + Paras: paras, + Configuration: configuration, + } +); + +pub(crate) fn relay_events() -> Vec { + System::events() + .into_iter() + .map(|r| r.event) + .filter_map(|e| Some(e)) + .collect::>() +} + +use frame_support::traits::{OnFinalize, OnInitialize}; +pub(crate) fn relay_roll_to(n: BlockNumber) { + while System::block_number() < n { + XcmPallet::on_finalize(System::block_number()); + Balances::on_finalize(System::block_number()); + System::on_finalize(System::block_number()); + System::set_block_number(System::block_number() + 1); + System::on_initialize(System::block_number()); + Balances::on_initialize(System::block_number()); + XcmPallet::on_initialize(System::block_number()); + } +} + +/// A weight info that is only suitable for testing. +pub struct TestHrmpWeightInfo; + +impl hrmp::WeightInfo for TestHrmpWeightInfo { + fn hrmp_accept_open_channel() -> Weight { + Weight::from_parts(1, 0) + } + fn force_clean_hrmp(_: u32, _: u32) -> Weight { + Weight::from_parts(1, 0) + } + fn force_process_hrmp_close(_: u32) -> Weight { + Weight::from_parts(1, 0) + } + fn force_process_hrmp_open(_: u32) -> Weight { + Weight::from_parts(1, 0) + } + fn hrmp_cancel_open_request(_: u32) -> Weight { + Weight::from_parts(1, 0) + } + fn hrmp_close_channel() -> Weight { + Weight::from_parts(1, 0) + } + fn hrmp_init_open_channel() -> Weight { + Weight::from_parts(1, 0) + } + fn clean_open_channel_requests(_: u32) -> Weight { + Weight::from_parts(1, 0) + } + fn force_open_hrmp_channel(_: u32) -> Weight { + Weight::from_parts(1, 0) + } + fn establish_system_channel() -> Weight { + Weight::from_parts(1, 0) + } + + fn poke_channel_deposits() -> Weight { + Weight::from_parts(1, 0) + } +} diff --git a/tracing/3001/runtime/moonbeam/tests/xcm_mock/statemint_like.rs b/tracing/3001/runtime/moonbeam/tests/xcm_mock/statemint_like.rs new file mode 100644 index 00000000..a3da2c21 --- /dev/null +++ b/tracing/3001/runtime/moonbeam/tests/xcm_mock/statemint_like.rs @@ -0,0 +1,575 @@ +// Copyright 2021 Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot 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. + +// Polkadot 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 Polkadot. If not, see . + +//! Relay chain runtime mock. + +use frame_support::{ + construct_runtime, parameter_types, + traits::{AsEnsureOriginWithArg, Contains, Everything, Nothing}, + weights::Weight, +}; +use frame_system::{EnsureRoot, EnsureSigned}; + +use sp_core::H256; +use sp_runtime::{ + traits::{ConstU32, Hash, IdentityLookup}, + AccountId32, +}; + +use polkadot_core_primitives::BlockNumber as RelayBlockNumber; + +use polkadot_parachain::primitives::Id as ParaId; +use polkadot_parachain::primitives::Sibling; +use sp_std::convert::TryFrom; +use xcm::latest::prelude::*; +use xcm::VersionedXcm; +use xcm_builder::{ + AccountId32Aliases, AllowKnownQueryResponses, AllowSubscriptionsFrom, + AllowTopLevelPaidExecutionFrom, AllowUnpaidExecutionFrom, AsPrefixedGeneralIndex, + ConvertedConcreteId, EnsureXcmOrigin, FixedRateOfFungible, FixedWeightBounds, FungibleAdapter, + FungiblesAdapter, IsConcrete, NoChecking, ParentAsSuperuser, ParentIsPreset, + RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, + SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, +}; +use xcm_executor::{traits::JustTry, Config, XcmExecutor}; +use xcm_simulator::{ + DmpMessageHandlerT as DmpMessageHandler, XcmpMessageFormat, + XcmpMessageHandlerT as XcmpMessageHandler, +}; +pub type AccountId = AccountId32; +pub type Balance = u128; +pub type AssetId = u128; + +parameter_types! { + pub const BlockHashCount: u32 = 250; +} + +impl frame_system::Config for Runtime { + type RuntimeOrigin = RuntimeOrigin; + type RuntimeCall = RuntimeCall; + type RuntimeTask = RuntimeTask; + type Nonce = u64; + type Block = Block; + type Hash = H256; + type Hashing = ::sp_runtime::traits::BlakeTwo256; + type AccountId = AccountId; + type Lookup = IdentityLookup; + type RuntimeEvent = RuntimeEvent; + type BlockHashCount = BlockHashCount; + type BlockWeights = (); + type BlockLength = (); + type Version = (); + type PalletInfo = PalletInfo; + type AccountData = pallet_balances::AccountData; + type OnNewAccount = (); + type OnKilledAccount = (); + type DbWeight = (); + type BaseCallFilter = Everything; + type SystemWeightInfo = (); + type SS58Prefix = (); + type OnSetCode = (); + type MaxConsumers = frame_support::traits::ConstU32<16>; +} + +parameter_types! { + pub ExistentialDeposit: Balance = 1; + pub const MaxLocks: u32 = 50; + pub const MaxReserves: u32 = 50; +} + +impl pallet_balances::Config for Runtime { + type MaxLocks = MaxLocks; + type Balance = Balance; + type RuntimeEvent = RuntimeEvent; + type DustRemoval = (); + type ExistentialDeposit = ExistentialDeposit; + type AccountStore = System; + type WeightInfo = (); + type MaxReserves = MaxReserves; + type ReserveIdentifier = [u8; 8]; + type RuntimeHoldReason = (); + type FreezeIdentifier = (); + type MaxFreezes = (); + type RuntimeFreezeReason = (); +} + +// Required for runtime benchmarks +pallet_assets::runtime_benchmarks_enabled! { + pub struct BenchmarkHelper; + impl pallet_assets::BenchmarkHelper for BenchmarkHelper + where + AssetIdParameter: From, + { + fn create_asset_id_parameter(id: u32) -> AssetIdParameter { + (id as u128).into() + } + } +} + +parameter_types! { + pub const AssetDeposit: Balance = 0; // 1 UNIT deposit to create asset + pub const ApprovalDeposit: Balance = 0; + pub const AssetsStringLimit: u32 = 50; + /// Key = 32 bytes, Value = 36 bytes (32+1+1+1+1) + // https://github.com/paritytech/substrate/blob/069917b/frame/assets/src/lib.rs#L257L271 + pub const MetadataDepositBase: Balance = 0; + pub const MetadataDepositPerByte: Balance = 0; + pub const ExecutiveBody: BodyId = BodyId::Executive; + pub const AssetAccountDeposit: Balance = 0; +} + +impl pallet_assets::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Balance = Balance; + type AssetId = AssetId; + type Currency = Balances; + type ForceOrigin = EnsureRoot; + type AssetDeposit = AssetDeposit; + type MetadataDepositBase = MetadataDepositBase; + type MetadataDepositPerByte = MetadataDepositPerByte; + type ApprovalDeposit = ApprovalDeposit; + type StringLimit = AssetsStringLimit; + type Freezer = (); + type Extra = (); + type AssetAccountDeposit = AssetAccountDeposit; + type WeightInfo = (); + type RemoveItemsLimit = ConstU32<656>; + type AssetIdParameter = AssetId; + type CreateOrigin = AsEnsureOriginWithArg>; + type CallbackHandle = (); + pallet_assets::runtime_benchmarks_enabled! { + type BenchmarkHelper = BenchmarkHelper; + } +} + +parameter_types! { + pub const KsmLocation: Location = Location::parent(); + pub const RelayNetwork: NetworkId = NetworkId::Kusama; + pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); + pub UniversalLocation: InteriorLocation = + [GlobalConsensus(RelayNetwork::get()), Parachain(MsgQueue::parachain_id().into())].into(); + pub Local: Location = Here.into(); + pub CheckingAccount: AccountId = PolkadotXcm::check_account(); + pub KsmPerSecond: (xcm::latest::prelude::AssetId, u128, u128) = + (AssetId(KsmLocation::get()), 1, 1); +} + +/// Type for specifying how a `Location` 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 default `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 = FungibleAdapter< + // Use this currency: + Balances, + // Use this currency when it is a fungible asset matching the given location or name: + IsConcrete, + // Convert an XCM Location into a local 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 of `Balances`. + (), +>; + +/// 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: + ConvertedConcreteId< + AssetId, + Balance, + AsPrefixedGeneralIndex, + JustTry, + >, + // Convert an XCM Location 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. + NoChecking, + // The account to use for tracking teleports. + CheckingAccount, +>; +/// Means for transacting assets on this chain. +pub type AssetTransactors = (CurrencyTransactor, FungiblesTransactor); + +/// 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 convert to a `Relay` origin when + // recognised. + RelayChainAsNative, + // Native converter for sibling Parachains; will convert to a `SiblingPara` origin when + // recognised. + 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 + // `RuntimeOrigin::signed` origin of the same 32-byte value. + SignedAccountId32AsNative, + // Xcm origins can be represented natively under the Xcm pallet's Xcm origin. + pallet_xcm::XcmPassthrough, +); + +parameter_types! { + // One XCM operation is 1_000_000_000 weight - almost certainly a conservative estimate. + pub UnitWeightCost: Weight = Weight::from_parts(100u64, 100u64); + pub const MaxInstructions: u32 = 100; +} + +pub struct ParentOrParentsExecutivePlurality; +impl Contains for ParentOrParentsExecutivePlurality { + fn contains(location: &Location) -> bool { + matches!( + location.unpack(), + (1, []) + | ( + 1, + [Plurality { + id: BodyId::Executive, + .. + }] + ) + ) + } +} + +pub struct ParentOrSiblings; +impl Contains for ParentOrSiblings { + fn contains(location: &Location) -> bool { + matches!(location.unpack(), (1, []) | (1, [_])) + } +} + +pub type Barrier = ( + TakeWeightCredit, + AllowTopLevelPaidExecutionFrom, + // Parent and its exec plurality get free execution + AllowUnpaidExecutionFrom, + // Expected responses are OK. + AllowKnownQueryResponses, + // Subscriptions for version tracking are OK. + AllowSubscriptionsFrom, +); + +parameter_types! { + pub MatcherLocation: Location = Location::here(); + pub const MaxAssetsIntoHolding: u32 = 64; +} + +pub struct XcmConfig; +impl Config for XcmConfig { + type RuntimeCall = RuntimeCall; + type XcmSender = XcmRouter; + type AssetTransactor = AssetTransactors; + type OriginConverter = XcmOriginToTransactDispatchOrigin; + type IsReserve = + orml_xcm_support::MultiNativeAsset; + type IsTeleporter = (); + type UniversalLocation = UniversalLocation; + type Barrier = Barrier; + type Weigher = FixedWeightBounds; + type Trader = FixedRateOfFungible; + type ResponseHandler = PolkadotXcm; + type AssetTrap = PolkadotXcm; + type AssetClaims = PolkadotXcm; + type SubscriptionService = PolkadotXcm; + type CallDispatcher = RuntimeCall; + type AssetLocker = (); + type AssetExchanger = (); + type PalletInstancesInfo = (); + type MaxAssetsIntoHolding = MaxAssetsIntoHolding; + type FeeManager = (); + type MessageExporter = (); + type UniversalAliases = Nothing; + type SafeCallFilter = Everything; + type Aliasers = Nothing; + + type TransactionalProcessor = (); +} + +/// No local origins on this chain are allowed to dispatch XCM sends/executions. +pub type LocalOriginToLocation = SignedToAccountId32; + +pub type XcmRouter = super::ParachainXcmRouter; + +impl pallet_xcm::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type SendXcmOrigin = EnsureXcmOrigin; + type XcmRouter = XcmRouter; + type ExecuteXcmOrigin = EnsureXcmOrigin; + type XcmExecuteFilter = Nothing; + type XcmExecutor = XcmExecutor; + type XcmTeleportFilter = Everything; + type XcmReserveTransferFilter = Everything; + type Weigher = FixedWeightBounds; + 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 = IsConcrete; + type TrustedLockers = (); + type SovereignAccountOf = (); + type MaxLockers = ConstU32<8>; + type WeightInfo = pallet_xcm::TestWeightInfo; + type MaxRemoteLockConsumers = ConstU32<0>; + type RemoteLockConsumerIdentifier = (); + type AdminOrigin = frame_system::EnsureRoot; +} + +impl cumulus_pallet_xcm::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type XcmExecutor = XcmExecutor; +} + +#[frame_support::pallet] +pub mod mock_msg_queue { + use super::*; + use frame_support::pallet_prelude::*; + + #[pallet::config] + pub trait Config: frame_system::Config { + type RuntimeEvent: From> + IsType<::RuntimeEvent>; + type XcmExecutor: ExecuteXcm; + } + + #[pallet::call] + impl Pallet {} + + #[pallet::pallet] + pub struct Pallet(_); + + #[pallet::storage] + #[pallet::getter(fn parachain_id)] + pub(super) type ParachainId = StorageValue<_, ParaId, ValueQuery>; + + impl Get for Pallet { + fn get() -> ParaId { + Self::parachain_id() + } + } + + pub type MessageId = [u8; 32]; + + #[pallet::event] + #[pallet::generate_deposit(pub(super) fn deposit_event)] + pub enum Event { + // XCMP + /// Some XCM was executed OK. + Success(Option), + /// Some XCM failed. + Fail(Option, XcmError), + /// Bad XCM version used. + BadVersion(Option), + /// Bad XCM format used. + BadFormat(Option), + + // DMP + /// Downward message is invalid XCM. + InvalidFormat(MessageId), + /// Downward message is unsupported version of XCM. + UnsupportedVersion(MessageId), + /// Downward message executed with the given outcome. + ExecutedDownward(MessageId, Outcome), + } + + impl Pallet { + pub fn set_para_id(para_id: ParaId) { + ParachainId::::put(para_id); + } + + fn handle_xcmp_message( + sender: ParaId, + _sent_at: RelayBlockNumber, + xcm: VersionedXcm, + max_weight: Weight, + ) -> Result { + let hash = Encode::using_encoded(&xcm, T::Hashing::hash); + let (result, event) = match Xcm::::try_from(xcm) { + Ok(xcm) => { + let location = Location::new(1, [Parachain(sender.into())]); + let mut id = [0u8; 32]; + id.copy_from_slice(hash.as_ref()); + match T::XcmExecutor::prepare_and_execute( + location, + xcm, + &mut id, + max_weight, + Weight::zero(), + ) { + Outcome::Error { error } => { + (Err(error.clone()), Event::Fail(Some(hash), error)) + } + Outcome::Complete { used } => (Ok(used), Event::Success(Some(hash))), + // As far as the caller is concerned, this was dispatched without error, so + // we just report the weight used. + Outcome::Incomplete { used, error } => { + (Ok(used), Event::Fail(Some(hash), error)) + } + } + } + Err(()) => ( + Err(XcmError::UnhandledXcmVersion), + Event::BadVersion(Some(hash)), + ), + }; + Self::deposit_event(event); + result + } + } + + impl XcmpMessageHandler for Pallet { + fn handle_xcmp_messages<'a, I: Iterator>( + iter: I, + max_weight: Weight, + ) -> Weight { + for (sender, sent_at, data) in iter { + let mut data_ref = data; + let _ = XcmpMessageFormat::decode(&mut data_ref) + .expect("Simulator encodes with versioned xcm format; qed"); + + let mut remaining_fragments = &data_ref[..]; + while !remaining_fragments.is_empty() { + if let Ok(xcm) = + VersionedXcm::::decode(&mut remaining_fragments) + { + let _ = Self::handle_xcmp_message(sender, sent_at, xcm, max_weight); + } else { + debug_assert!(false, "Invalid incoming XCMP message data"); + } + } + } + max_weight + } + } + + impl DmpMessageHandler for Pallet { + fn handle_dmp_messages( + iter: impl Iterator)>, + limit: Weight, + ) -> Weight { + for (_i, (_sent_at, data)) in iter.enumerate() { + let mut id = sp_io::hashing::blake2_256(&data[..]); + let maybe_msg = VersionedXcm::::decode(&mut &data[..]) + .map(Xcm::::try_from); + match maybe_msg { + Err(_) => { + Self::deposit_event(Event::InvalidFormat(id)); + } + Ok(Err(())) => { + Self::deposit_event(Event::UnsupportedVersion(id)); + } + Ok(Ok(x)) => { + let outcome = T::XcmExecutor::prepare_and_execute( + Parent, + x, + &mut id, + limit, + Weight::zero(), + ); + + Self::deposit_event(Event::ExecutedDownward(id, outcome)); + } + } + } + limit + } + } +} +impl mock_msg_queue::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type XcmExecutor = XcmExecutor; +} + +// Pallet to cover test cases for change https://github.com/paritytech/cumulus/pull/831 +#[frame_support::pallet] +pub mod mock_statemint_prefix { + use super::*; + use frame_support::pallet_prelude::*; + + #[pallet::config] + pub trait Config: frame_system::Config { + type RuntimeEvent: From> + IsType<::RuntimeEvent>; + } + + #[pallet::call] + impl Pallet {} + + #[pallet::pallet] + #[pallet::without_storage_info] + pub struct Pallet(_); + + #[pallet::storage] + #[pallet::getter(fn current_prefix)] + pub(super) type CurrentPrefix = StorageValue<_, Location, ValueQuery>; + + impl Get for Pallet { + fn get() -> Location { + Self::current_prefix() + } + } + + #[pallet::event] + #[pallet::generate_deposit(pub(super) fn deposit_event)] + pub enum Event { + // Changed Prefix + PrefixChanged(Location), + } + + impl Pallet { + pub fn set_prefix(prefix: Location) { + CurrentPrefix::::put(&prefix); + Self::deposit_event(Event::PrefixChanged(prefix)); + } + } +} + +impl mock_statemint_prefix::Config for Runtime { + type RuntimeEvent = RuntimeEvent; +} + +type Block = frame_system::mocking::MockBlockU32; +construct_runtime!( + pub enum Runtime { + System: frame_system, + Balances: pallet_balances, + PolkadotXcm: pallet_xcm, + CumulusXcm: cumulus_pallet_xcm, + MsgQueue: mock_msg_queue, + Assets: pallet_assets, + PrefixChanger: mock_statemint_prefix, + + } +); diff --git a/tracing/3001/runtime/moonbeam/tests/xcm_tests.rs b/tracing/3001/runtime/moonbeam/tests/xcm_tests.rs new file mode 100644 index 00000000..33725512 --- /dev/null +++ b/tracing/3001/runtime/moonbeam/tests/xcm_tests.rs @@ -0,0 +1,3681 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Moonbeam Runtime Xcm Tests + +mod xcm_mock; + +use cumulus_primitives_core::relay_chain::HrmpChannelId; +use frame_support::{ + assert_ok, + traits::{PalletInfo, PalletInfoAccess}, + weights::{constants::WEIGHT_REF_TIME_PER_SECOND, Weight}, + BoundedVec, +}; +use pallet_xcm_transactor::{ + Currency, CurrencyPayment, HrmpInitParams, HrmpOperation, TransactWeights, +}; +use sp_core::ConstU32; +use sp_runtime::traits::MaybeEquivalence; +use xcm::latest::prelude::{ + AccountId32, AccountKey20, GeneralIndex, Junction, Junctions, Limited, Location, OriginKind, + PalletInstance, Parachain, QueryResponse, Reanchorable, Response, WeightLimit, Xcm, +}; +use xcm::{VersionedLocation, WrapVersion}; +use xcm_executor::traits::ConvertLocation; +use xcm_mock::parachain; +use xcm_mock::relay_chain; +use xcm_mock::*; +use xcm_primitives::{UtilityEncodeCall, DEFAULT_PROOF_SIZE}; +use xcm_simulator::TestExt; + +// Send a relay asset (like DOT) to a parachain A +#[test] +fn receive_relay_asset_from_relay() { + MockNet::reset(); + + let source_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let source_id: parachain::AssetId = source_location.clone().into(); + let asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + + // Register relay asset in paraA + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 0u128, + 0 + )); + }); + + // Actually send relay asset to parachain + let dest: Location = AccountKey20 { + network: None, + key: PARAALICE, + } + .into(); + + // First send relay chain asset to Parachain + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest).clone().into()), + Box::new(([] /* Here */, 123).into()), + 0, + )); + }); + + // Verify that parachain received the asset + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 123); + }); +} + +// Send relay asset (like DOT) back from Parachain A to relaychain +#[test] +fn send_relay_asset_to_relay() { + MockNet::reset(); + + let source_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + + // Register relay asset in paraA + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + // Free execution + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 0u128, + 0 + )); + }); + + let dest: Location = Junction::AccountKey20 { + network: None, + key: PARAALICE, + } + .into(); + + // First send relay chain asset to Parachain like in previous test + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest).clone().into()), + Box::new(([] /* Here */, 123).into()), + 0, + )); + }); + + ParaA::execute_with(|| { + // Free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 123); + }); + + // Lets gather the balance before sending back money + let mut balance_before_sending = 0; + Relay::execute_with(|| { + balance_before_sending = RelayBalances::free_balance(&RELAYALICE); + }); + + // We now send back some money to the relay + let dest = Location { + parents: 1, + interior: [AccountId32 { + network: None, + id: RELAYALICE.into(), + }] + .into(), + }; + + ParaA::execute_with(|| { + assert_ok!(XTokens::transfer( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::ForeignAsset(source_id), + 123, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) + )); + }); + + // The balances in paraAlice should have been substracted + ParaA::execute_with(|| { + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 0); + }); + + // Balances in the relay should have been received + Relay::execute_with(|| { + // free execution,x full amount received + assert!(RelayBalances::free_balance(&RELAYALICE) > balance_before_sending); + }); +} + +#[test] +fn send_relay_asset_to_para_b() { + MockNet::reset(); + + let source_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + + // Register asset in paraA. Free execution + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata.clone(), + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location.clone(), + 0u128, + 0 + )); + }); + + // Register asset in paraB. Free execution + ParaB::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 0u128, + 0 + )); + }); + + let dest: Location = Junction::AccountKey20 { + network: None, + key: PARAALICE, + } + .into(); + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest).clone().into()), + Box::new(([] /* Here */, 123).into()), + 0, + )); + }); + + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 123); + }); + + // Now send relay asset from para A to para B + let dest = Location { + parents: 1, + interior: [ + Parachain(2), + AccountKey20 { + network: None, + key: PARAALICE.into(), + }, + ] + .into(), + }; + + ParaA::execute_with(|| { + assert_ok!(XTokens::transfer( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::ForeignAsset(source_id), + 100, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) + )); + }); + + // Para A balances should have been substracted + ParaA::execute_with(|| { + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 23); + }); + + // Para B balances should have been credited + ParaB::execute_with(|| { + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 100); + }); +} + +#[test] +fn send_para_a_asset_to_para_b() { + MockNet::reset(); + + // This represents the asset in paraA + let para_a_balances = Location::new(1, [Parachain(1), PalletInstance(1u8)]); + let source_location = parachain::AssetType::Xcm( + xcm_builder::V4V3LocationConverter::convert(¶_a_balances).expect("convert to v3"), + ); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"ParaAToken".to_vec(), + symbol: b"ParaA".to_vec(), + decimals: 18, + }; + + // Register asset in paraB. Free execution + ParaB::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 0u128, + 0 + )); + }); + + // Send para A asset from para A to para B + let dest = Location { + parents: 1, + interior: [ + Parachain(2), + AccountKey20 { + network: None, + key: PARAALICE.into(), + }, + ] + .into(), + }; + + // Native token is substracted in paraA + ParaA::execute_with(|| { + // Free execution, full amount received + assert_ok!(XTokens::transfer( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::SelfReserve, + 100, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(800000u64, DEFAULT_PROOF_SIZE)) + )); + }); + + ParaA::execute_with(|| { + assert_eq!( + ParaBalances::free_balance(&PARAALICE.into()), + INITIAL_BALANCE - 100 + ); + }); + + // Asset is minted in paraB + ParaB::execute_with(|| { + // Free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 100); + }); +} + +#[test] +fn send_para_a_asset_from_para_b_to_para_c() { + MockNet::reset(); + + // Represents para A asset + let para_a_balances = Location::new(1, [Parachain(1), PalletInstance(1u8)]); + let source_location = parachain::AssetType::Xcm( + xcm_builder::V4V3LocationConverter::convert(¶_a_balances).expect("convert to v3"), + ); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"ParaAToken".to_vec(), + symbol: b"ParaA".to_vec(), + decimals: 18, + }; + + // Register para A asset in parachain B. Free execution + ParaB::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata.clone(), + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location.clone(), + 0u128, + 0 + )); + }); + + // Register para A asset in parachain C. Free execution + ParaC::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 0u128, + 0 + )); + }); + + let dest = Location { + parents: 1, + interior: [ + Parachain(2), + AccountKey20 { + network: None, + key: PARAALICE.into(), + }, + ] + .into(), + }; + ParaA::execute_with(|| { + assert_ok!(XTokens::transfer( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::SelfReserve, + 100, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(80u64, DEFAULT_PROOF_SIZE)) + )); + }); + + // Para A balances have been substracted + ParaA::execute_with(|| { + assert_eq!( + ParaBalances::free_balance(&PARAALICE.into()), + INITIAL_BALANCE - 100 + ); + }); + + // Para B balances have been credited + ParaB::execute_with(|| { + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 100); + }); + + // Send para A asset from para B to para C + let dest = Location { + parents: 1, + interior: [ + Parachain(3), + AccountKey20 { + network: None, + key: PARAALICE.into(), + }, + ] + .into(), + }; + + ParaB::execute_with(|| { + assert_ok!(XTokens::transfer( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::ForeignAsset(source_id), + 100, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(80u64, DEFAULT_PROOF_SIZE)) + )); + }); + + // The message passed through parachainA so we needed to pay since its the native token + ParaC::execute_with(|| { + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 96); + }); +} + +#[test] +fn send_para_a_asset_to_para_b_and_back_to_para_a() { + MockNet::reset(); + + // para A asset + let para_a_balances = Location::new(1, [Parachain(1), PalletInstance(1u8)]); + let source_location = parachain::AssetType::Xcm( + xcm_builder::V4V3LocationConverter::convert(¶_a_balances).expect("convert to v3"), + ); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"ParaAToken".to_vec(), + symbol: b"ParaA".to_vec(), + decimals: 18, + }; + + // Register para A asset in para B + ParaB::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 0u128, + 0 + )); + }); + + // Send para A asset to para B + let dest = Location { + parents: 1, + interior: [ + Parachain(2), + AccountKey20 { + network: None, + key: PARAALICE.into(), + }, + ] + .into(), + }; + + ParaA::execute_with(|| { + assert_ok!(XTokens::transfer( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::SelfReserve, + 100, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(80u64, DEFAULT_PROOF_SIZE)) + )); + }); + + // Balances have been substracted + ParaA::execute_with(|| { + assert_eq!( + ParaBalances::free_balance(&PARAALICE.into()), + INITIAL_BALANCE - 100 + ); + }); + + // Para B balances have been credited + ParaB::execute_with(|| { + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 100); + }); + + // Send back para A asset to para A + let dest = Location { + parents: 1, + interior: [ + Parachain(1), + AccountKey20 { + network: None, + key: PARAALICE.into(), + }, + ] + .into(), + }; + ParaB::execute_with(|| { + assert_ok!(XTokens::transfer( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::ForeignAsset(source_id), + 100, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(80u64, DEFAULT_PROOF_SIZE)) + )); + }); + + ParaA::execute_with(|| { + // Weight used is 4 + assert_eq!( + ParaBalances::free_balance(&PARAALICE.into()), + INITIAL_BALANCE - 4 + ); + }); +} + +#[test] +fn receive_relay_asset_with_trader() { + MockNet::reset(); + + let source_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + + // This time we are gonna put a rather high number of units per second + // we know later we will divide by 1e12 + // Lets put 1e6 as units per second + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 2500000000000u128, + 0 + )); + }); + + let dest: Location = Junction::AccountKey20 { + network: None, + key: PARAALICE, + } + .into(); + // We are sending 100 tokens from relay. + // Amount spent in fees is Units per second * weight / 1_000_000_000_000 (weight per second) + // weight is 4 since we are executing 4 instructions with a unitweightcost of 1. + // Units per second should be 2_500_000_000_000_000 + // Therefore with no refund, we should receive 10 tokens less + // Native trader fails for this, and we use the asset trader + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest).clone().into()), + Box::new(([] /* Here */, 100).into()), + 0, + )); + }); + + ParaA::execute_with(|| { + // non-free execution, not full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 90); + // Fee should have been received by treasury + assert_eq!(Assets::balance(source_id, &Treasury::account_id()), 10); + }); +} + +#[test] +fn send_para_a_asset_to_para_b_with_trader() { + MockNet::reset(); + + let para_a_balances = Location::new(1, [Parachain(1), PalletInstance(1u8)]); + let source_location = parachain::AssetType::Xcm( + xcm_builder::V4V3LocationConverter::convert(¶_a_balances).expect("convert to v3"), + ); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"ParaAToken".to_vec(), + symbol: b"ParaA".to_vec(), + decimals: 18, + }; + + ParaB::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 2500000000000u128, + 0 + )); + }); + + let dest = Location { + parents: 1, + interior: [ + Parachain(2), + AccountKey20 { + network: None, + key: PARAALICE.into(), + }, + ] + .into(), + }; + + // In destination chain, we only need 4 weight + // We put 10 weight, 6 of which should be refunded and 4 of which should go to treasury + ParaA::execute_with(|| { + assert_ok!(XTokens::transfer( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::SelfReserve, + 100, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(10u64, DEFAULT_PROOF_SIZE)) + )); + }); + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!( + ParaBalances::free_balance(&PARAALICE.into()), + INITIAL_BALANCE - 100 + ); + }); + + // We are sending 100 tokens from para A. + // Amount spent in fees is Units per second * weight / 1_000_000_000_000 (weight per second) + // weight is 4 since we are executing 4 instructions with a unitweightcost of 1. + // Units per second should be 2_500_000_000_000_000 + // Since we set 10 weight in destination chain, 25 will be charged upfront + // 15 of those will be refunded, while 10 will go to treasury as the true weight used + // will be 4 + ParaB::execute_with(|| { + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 90); + // Fee should have been received by treasury + assert_eq!(Assets::balance(source_id, &Treasury::account_id()), 10); + }); +} + +#[test] +fn send_para_a_asset_to_para_b_with_trader_and_fee() { + MockNet::reset(); + + let para_a_balances = Location::new(1, [Parachain(1), PalletInstance(1u8)]); + let source_location = parachain::AssetType::Xcm( + xcm_builder::V4V3LocationConverter::convert(¶_a_balances).expect("convert to v3"), + ); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"ParaAToken".to_vec(), + symbol: b"ParaA".to_vec(), + decimals: 18, + }; + + ParaB::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + // With these units per second, 80K weight convrets to 1 asset unit + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 12500000u128, + 0 + )); + }); + + let dest = Location { + parents: 1, + interior: [ + Parachain(2), + AccountKey20 { + network: None, + key: PARAALICE.into(), + }, + ] + .into(), + }; + + // we use transfer_with_fee + ParaA::execute_with(|| { + assert_ok!(XTokens::transfer_with_fee( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::SelfReserve, + 100, + 1, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(800000u64, DEFAULT_PROOF_SIZE)) + )); + }); + ParaA::execute_with(|| { + // 100 tokens transferred plus 1 taken from fees + assert_eq!( + ParaBalances::free_balance(&PARAALICE.into()), + INITIAL_BALANCE - 100 - 1 + ); + }); + + ParaB::execute_with(|| { + // free execution, full amount received because trully the xcm instruction does not cost + // what it is specified + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 101); + }); +} + +#[test] +fn error_when_not_paying_enough() { + MockNet::reset(); + + let source_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + + let dest: Location = Junction::AccountKey20 { + network: None, + key: PARAALICE, + } + .into(); + // This time we are gonna put a rather high number of units per second + // we know later we will divide by 1e12 + // Lets put 1e6 as units per second + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 2500000000000u128, + 0 + )); + }); + + // We are sending 100 tokens from relay. + // If we set the dest weight to be 1e7, we know the buy_execution will spend 1e7*1e6/1e12 = 10 + // Therefore with no refund, we should receive 10 tokens less + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest).clone().into()), + Box::new(([] /* Here */, 5).into()), + 0, + )); + }); + + ParaA::execute_with(|| { + // amount not received as it is not paying enough + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 0); + }); +} + +#[test] +fn transact_through_derivative_multilocation() { + MockNet::reset(); + + let source_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 1u128, + 0 + )); + + // Root can set transact info + assert_ok!(XcmTransactor::set_transact_info( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(Location::parent())), + // Relay charges 1000 for every instruction, and we have 3, so 3000 + 3000.into(), + 20000000000.into(), + None + )); + // Root can set transact info + assert_ok!(XcmTransactor::set_fee_per_second( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(Location::parent())), + WEIGHT_REF_TIME_PER_SECOND as u128, + )); + }); + + // Let's construct the call to know how much weight it is going to require + + let dest: Location = AccountKey20 { + network: None, + key: PARAALICE, + } + .into(); + Relay::execute_with(|| { + // 4000000000 transact + 3000 correspond to 4000003000 tokens. 100 more for the transfer call + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest).clone().into()), + Box::new(([] /* Here */, 4000003100u128).into()), + 0, + )); + }); + + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 4000003100); + }); + + // Register address + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::register( + parachain::RuntimeOrigin::root(), + PARAALICE.into(), + 0, + )); + }); + + // Send to registered address + + let registered_address = derivative_account_id(para_a_account(), 0); + let dest = Location { + parents: 1, + interior: [AccountId32 { + network: None, + id: registered_address.clone().into(), + }] + .into(), + }; + + ParaA::execute_with(|| { + // free execution, full amount received + assert_ok!(XTokens::transfer( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::ForeignAsset(source_id), + 100, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) + )); + }); + + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 4000003000); + }); + + // What we will do now is transfer this relay tokens from the derived account to the sovereign + // again + Relay::execute_with(|| { + // free execution,x full amount received + assert!(RelayBalances::free_balance(¶_a_account()) == 4000003000); + }); + + // Encode the call. Balances transact to para_a_account + // First index + let mut encoded: Vec = Vec::new(); + let index = ::PalletInfo::index::< + relay_chain::Balances, + >() + .unwrap() as u8; + + encoded.push(index); + + // Then call bytes + let mut call_bytes = pallet_balances::Call::::transfer_allow_death { + dest: para_a_account(), + value: 100u32.into(), + } + .encode(); + encoded.append(&mut call_bytes); + + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::transact_through_derivative( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::MockTransactors::Relay, + 0, + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + Location::parent() + ))), + fee_amount: None + }, + encoded, + // 400000000 + 3000 we should have taken out 4000003000 tokens from the caller + TransactWeights { + transact_required_weight_at_most: 4000000000.into(), + overall_weight: None + }, + false + )); + }); + + Relay::execute_with(|| { + // free execution,x full amount received + assert!(RelayBalances::free_balance(¶_a_account()) == 100); + + assert!(RelayBalances::free_balance(®istered_address) == 0); + }); +} + +#[test] +fn transact_through_derivative_with_custom_fee_weight() { + MockNet::reset(); + + let source_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 1u128, + 0 + )); + }); + + // Let's construct the call to know how much weight it is going to require + + let dest: Location = AccountKey20 { + network: None, + key: PARAALICE, + } + .into(); + Relay::execute_with(|| { + // 4000000000 transact + 3000 correspond to 4000003000 tokens. 100 more for the transfer call + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest).clone().into()), + Box::new(([] /* Here */, 4000003100u128).into()), + 0, + )); + }); + + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 4000003100); + }); + + // Register address + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::register( + parachain::RuntimeOrigin::root(), + PARAALICE.into(), + 0, + )); + }); + + // Send to registered address + + let registered_address = derivative_account_id(para_a_account(), 0); + let dest = Location { + parents: 1, + interior: [AccountId32 { + network: None, + id: registered_address.clone().into(), + }] + .into(), + }; + + ParaA::execute_with(|| { + // free execution, full amount received + assert_ok!(XTokens::transfer( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::ForeignAsset(source_id), + 100, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) + )); + }); + + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 4000003000); + }); + + // What we will do now is transfer this relay tokens from the derived account to the sovereign + // again + Relay::execute_with(|| { + // free execution,x full amount received + assert!(RelayBalances::free_balance(¶_a_account()) == 4000003000); + }); + + // Encode the call. Balances transact to para_a_account + // First index + let mut encoded: Vec = Vec::new(); + let index = ::PalletInfo::index::< + relay_chain::Balances, + >() + .unwrap() as u8; + + encoded.push(index); + + // Then call bytes + let mut call_bytes = pallet_balances::Call::::transfer_allow_death { + dest: para_a_account(), + value: 100u32.into(), + } + .encode(); + encoded.append(&mut call_bytes); + + let overall_weight = 4000003000u64; + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::transact_through_derivative( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::MockTransactors::Relay, + 0, + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + Location::parent() + ))), + // 1-1 fee weight mapping + fee_amount: Some(overall_weight as u128) + }, + // 4000000000 + 3000 we should have taken out 4000003000 tokens from the caller + encoded, + TransactWeights { + transact_required_weight_at_most: 4000000000.into(), + overall_weight: Some(Limited(overall_weight.into())) + }, + false + )); + let event_found: Option = parachain::para_events() + .iter() + .find_map(|event| match event.clone() { + parachain::RuntimeEvent::PolkadotXcm(pallet_xcm::Event::AssetsTrapped { + .. + }) => Some(event.clone()), + _ => None, + }); + // Assert that the events do not contain the assets being trapped + assert!(event_found.is_none()); + }); + + Relay::execute_with(|| { + // free execution,x full amount received + assert!(RelayBalances::free_balance(¶_a_account()) == 100); + + assert!(RelayBalances::free_balance(®istered_address) == 0); + }); +} + +#[test] +fn transact_through_derivative_with_custom_fee_weight_refund() { + MockNet::reset(); + + let source_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 1u128, + 0 + )); + }); + + // Let's construct the call to know how much weight it is going to require + + let dest: Location = AccountKey20 { + network: None, + key: PARAALICE, + } + .into(); + Relay::execute_with(|| { + // 4000000000 transact + 9000 correspond to 4000009000 tokens. 100 more for the transfer call + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest).clone().into()), + Box::new(([] /* Here */, 4000009100u128).into()), + 0, + )); + }); + + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 4000009100); + }); + + // Register address + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::register( + parachain::RuntimeOrigin::root(), + PARAALICE.into(), + 0, + )); + }); + + // Send to registered address + + let registered_address = derivative_account_id(para_a_account(), 0); + let dest = Location { + parents: 1, + interior: [AccountId32 { + network: None, + id: registered_address.clone().into(), + }] + .into(), + }; + + ParaA::execute_with(|| { + // free execution, full amount received + assert_ok!(XTokens::transfer( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::ForeignAsset(source_id), + 100, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) + )); + }); + + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 4000009000); + }); + + // What we will do now is transfer this relay tokens from the derived account to the sovereign + // again + Relay::execute_with(|| { + // free execution,x full amount received + assert!(RelayBalances::free_balance(¶_a_account()) == 4000009000); + }); + + // Encode the call. Balances transact to para_a_account + // First index + let mut encoded: Vec = Vec::new(); + let index = ::PalletInfo::index::< + relay_chain::Balances, + >() + .unwrap() as u8; + + encoded.push(index); + + // Then call bytes + let mut call_bytes = pallet_balances::Call::::transfer_allow_death { + dest: para_a_account(), + value: 100u32.into(), + } + .encode(); + encoded.append(&mut call_bytes); + + let overall_weight = 4000009000u64; + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::transact_through_derivative( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::MockTransactors::Relay, + 0, + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + Location::parent() + ))), + // 1-1 fee weight mapping + fee_amount: Some(overall_weight as u128) + }, + encoded, + TransactWeights { + transact_required_weight_at_most: 4000000000.into(), + overall_weight: Some(Limited(overall_weight.into())) + }, + true + )); + let event_found: Option = parachain::para_events() + .iter() + .find_map(|event| match event.clone() { + parachain::RuntimeEvent::PolkadotXcm(pallet_xcm::Event::AssetsTrapped { + .. + }) => Some(event.clone()), + _ => None, + }); + // Assert that the events do not contain the assets being trapped + assert!(event_found.is_none()); + }); + + Relay::execute_with(|| { + // free execution,x full amount received + // 4000005186 refunded + 100 transferred = 4000005286 + assert_eq!(RelayBalances::free_balance(¶_a_account()), 4000005286); + assert_eq!(RelayBalances::free_balance(®istered_address), 0); + }); +} + +#[test] +fn transact_through_sovereign() { + MockNet::reset(); + + let source_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 1u128, + 0 + )); + + // Root can set transact info + assert_ok!(XcmTransactor::set_transact_info( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(Location::parent())), + // Relay charges 1000 for every instruction, and we have 3, so 3000 + 3000.into(), + 20000000000.into(), + None + )); + // Root can set transact info + assert_ok!(XcmTransactor::set_fee_per_second( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(Location::parent())), + WEIGHT_REF_TIME_PER_SECOND as u128, + )); + }); + + let dest: Location = AccountKey20 { + network: None, + key: PARAALICE, + } + .into(); + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest).clone().into()), + Box::new(([] /* Here */, 4000003100u128).into()), + 0, + )); + }); + + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 4000003100); + }); + + // Register address + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::register( + parachain::RuntimeOrigin::root(), + PARAALICE.into(), + 0, + )); + }); + + // Send to registered address + let registered_address = derivative_account_id(para_a_account(), 0); + let dest = Location { + parents: 1, + interior: [AccountId32 { + network: None, + id: registered_address.clone().into(), + }] + .into(), + }; + + ParaA::execute_with(|| { + // free execution, full amount received + assert_ok!(XTokens::transfer( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::ForeignAsset(source_id), + 100, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) + )); + }); + + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 4000003000); + }); + + // What we will do now is transfer this relay tokens from the derived account to the sovereign + // again + Relay::execute_with(|| { + // free execution,x full amount received + assert!(RelayBalances::free_balance(¶_a_account()) == 4000003000); + 0 + }); + + // We send the xcm transact operation to parent + let dest = Location { + parents: 1, + interior: /* Here */ [].into(), + }; + + // Encode the call. Balances transact to para_a_account + // First index + let mut encoded: Vec = Vec::new(); + let index = ::PalletInfo::index::< + relay_chain::Balances, + >() + .unwrap() as u8; + + encoded.push(index); + + // Then call bytes + let mut call_bytes = pallet_balances::Call::::transfer_allow_death { + dest: para_a_account(), + value: 100u32.into(), + } + .encode(); + encoded.append(&mut call_bytes); + + let utility_bytes = parachain::MockTransactors::Relay.encode_call( + xcm_primitives::UtilityAvailableCalls::AsDerivative(0, encoded), + ); + + // Root can directly pass the execution byes to the sovereign + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::transact_through_sovereign( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(dest)), + Some(PARAALICE.into()), + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + Location::parent() + ))), + fee_amount: None + }, + utility_bytes, + OriginKind::SovereignAccount, + TransactWeights { + transact_required_weight_at_most: 4000000000.into(), + overall_weight: None + }, + false + )); + }); + + Relay::execute_with(|| { + // free execution,x full amount received + assert!(RelayBalances::free_balance(¶_a_account()) == 100); + + assert!(RelayBalances::free_balance(®istered_address) == 0); + }); +} + +#[test] +fn transact_through_sovereign_fee_payer_none() { + MockNet::reset(); + + ParaA::execute_with(|| { + // Root can set transact info + assert_ok!(XcmTransactor::set_transact_info( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(Location::parent())), + // Relay charges 1000 for every instruction, and we have 3, so 3000 + 3000.into(), + 20000000000.into(), + None + )); + // Root can set transact info + assert_ok!(XcmTransactor::set_fee_per_second( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(Location::parent())), + WEIGHT_REF_TIME_PER_SECOND as u128, + )); + }); + + let derivative_address = derivative_account_id(para_a_account(), 0); + + Relay::execute_with(|| { + // Transfer 100 tokens to derivative_address on the relay + assert_ok!(RelayBalances::transfer_keep_alive( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + derivative_address.clone(), + 100u128 + )); + + // Transfer the XCM execution fee amount to ParaA's sovereign account + assert_ok!(RelayBalances::transfer_keep_alive( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + para_a_account(), + 4000003000u128 + )); + }); + + // Check balances before the transact call + Relay::execute_with(|| { + assert_eq!(RelayBalances::free_balance(¶_a_account()), 4000003000); + assert_eq!(RelayBalances::free_balance(&derivative_address), 100); + assert_eq!(RelayBalances::free_balance(&RELAYBOB), 0); + }); + + // Encode the call. Balances transfer of 100 relay tokens to RELAYBOB + let mut encoded: Vec = Vec::new(); + let index = ::PalletInfo::index::< + relay_chain::Balances, + >() + .unwrap() as u8; + + encoded.push(index); + + let mut call_bytes = pallet_balances::Call::::transfer_allow_death { + dest: RELAYBOB, + value: 100u32.into(), + } + .encode(); + encoded.append(&mut call_bytes); + + // The final call will be an AsDerivative using index 0 + let utility_bytes = parachain::MockTransactors::Relay.encode_call( + xcm_primitives::UtilityAvailableCalls::AsDerivative(0, encoded), + ); + + // We send the xcm transact operation to parent + let dest = Location { + parents: 1, + interior: /* Here */ [].into(), + }; + + // Root can directly pass the execution byes to the sovereign + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::transact_through_sovereign( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(dest)), + // No fee_payer here. The sovereign account will pay the fees on destination. + None, + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + Location::parent() + ))), + fee_amount: None + }, + utility_bytes, + OriginKind::SovereignAccount, + TransactWeights { + transact_required_weight_at_most: 4000000000.into(), + overall_weight: None + }, + false + )); + }); + + // Check balances after the transact call are correct + Relay::execute_with(|| { + assert_eq!(RelayBalances::free_balance(¶_a_account()), 0); + assert_eq!(RelayBalances::free_balance(&derivative_address), 0); + assert_eq!(RelayBalances::free_balance(&RELAYBOB), 100); + }); +} + +#[test] +fn transact_through_sovereign_with_custom_fee_weight() { + MockNet::reset(); + + let source_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 1u128, + 0 + )); + }); + + let dest: Location = AccountKey20 { + network: None, + key: PARAALICE, + } + .into(); + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest).clone().into()), + Box::new(([] /* Here */, 4000003100u128).into()), + 0, + )); + }); + + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 4000003100); + }); + + // Register address + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::register( + parachain::RuntimeOrigin::root(), + PARAALICE.into(), + 0, + )); + }); + + // Send to registered address + let registered_address = derivative_account_id(para_a_account(), 0); + let dest = Location { + parents: 1, + interior: [AccountId32 { + network: None, + id: registered_address.clone().into(), + }] + .into(), + }; + + ParaA::execute_with(|| { + // free execution, full amount received + assert_ok!(XTokens::transfer( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::ForeignAsset(source_id), + 100, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) + )); + }); + + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 4000003000); + }); + + // What we will do now is transfer this relay tokens from the derived account to the sovereign + // again + Relay::execute_with(|| { + // free execution,x full amount received + assert!(RelayBalances::free_balance(¶_a_account()) == 4000003000); + 0 + }); + + // We send the xcm transact operation to parent + let dest = Location { + parents: 1, + interior: /* Here */ [].into(), + }; + + // Encode the call. Balances transact to para_a_account + // First index + let mut encoded: Vec = Vec::new(); + let index = ::PalletInfo::index::< + relay_chain::Balances, + >() + .unwrap() as u8; + + encoded.push(index); + + // Then call bytes + let mut call_bytes = pallet_balances::Call::::transfer_allow_death { + dest: para_a_account(), + value: 100u32.into(), + } + .encode(); + encoded.append(&mut call_bytes); + + let utility_bytes = parachain::MockTransactors::Relay.encode_call( + xcm_primitives::UtilityAvailableCalls::AsDerivative(0, encoded), + ); + + let total_weight = 4000003000u64; + // Root can directly pass the execution byes to the sovereign + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::transact_through_sovereign( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(dest)), + Some(PARAALICE.into()), + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + Location::parent() + ))), + // 1-1 fee-weight mapping + fee_amount: Some(total_weight as u128) + }, + utility_bytes, + OriginKind::SovereignAccount, + TransactWeights { + transact_required_weight_at_most: 4000000000.into(), + overall_weight: Some(Limited(total_weight.into())) + }, + false + )); + }); + + Relay::execute_with(|| { + // free execution,x full amount received + assert!(RelayBalances::free_balance(¶_a_account()) == 100); + + assert!(RelayBalances::free_balance(®istered_address) == 0); + }); +} + +#[test] +fn transact_through_sovereign_with_custom_fee_weight_refund() { + MockNet::reset(); + + let source_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 1u128, + 0 + )); + }); + + let dest: Location = AccountKey20 { + network: None, + key: PARAALICE, + } + .into(); + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest).clone().into()), + Box::new(([] /* Here */, 4000009100u128).into()), + 0, + )); + }); + + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 4000009100); + }); + + // Register address + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::register( + parachain::RuntimeOrigin::root(), + PARAALICE.into(), + 0, + )); + }); + + // Send to registered address + let registered_address = derivative_account_id(para_a_account(), 0); + let dest = Location { + parents: 1, + interior: [AccountId32 { + network: None, + id: registered_address.clone().into(), + }] + .into(), + }; + + ParaA::execute_with(|| { + // free execution, full amount received + assert_ok!(XTokens::transfer( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::ForeignAsset(source_id), + 100, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) + )); + }); + + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 4000009000); + }); + + // What we will do now is transfer this relay tokens from the derived account to the sovereign + // again + Relay::execute_with(|| { + // free execution,x full amount received + assert!(RelayBalances::free_balance(¶_a_account()) == 4000009000); + 0 + }); + + // We send the xcm transact operation to parent + let dest = Location { + parents: 1, + interior: /* Here */ [].into(), + }; + + // Encode the call. Balances transact to para_a_account + // First index + let mut encoded: Vec = Vec::new(); + let index = ::PalletInfo::index::< + relay_chain::Balances, + >() + .unwrap() as u8; + + encoded.push(index); + + // Then call bytes + let mut call_bytes = pallet_balances::Call::::transfer_allow_death { + dest: para_a_account(), + value: 100u32.into(), + } + .encode(); + encoded.append(&mut call_bytes); + + let utility_bytes = parachain::MockTransactors::Relay.encode_call( + xcm_primitives::UtilityAvailableCalls::AsDerivative(0, encoded), + ); + + let total_weight = 4000009000u64; + // Root can directly pass the execution byes to the sovereign + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::transact_through_sovereign( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(dest)), + Some(PARAALICE.into()), + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + Location::parent() + ))), + // 1-1 fee-weight mapping + fee_amount: Some(total_weight as u128) + }, + utility_bytes, + OriginKind::SovereignAccount, + TransactWeights { + transact_required_weight_at_most: 4000000000.into(), + overall_weight: Some(Limited(total_weight.into())) + }, + true + )); + }); + + Relay::execute_with(|| { + // free execution,x full amount received + // 4000005186 refunded + 100 transferred = 4000005286 + assert_eq!(RelayBalances::free_balance(¶_a_account()), 4000005286); + + assert_eq!(RelayBalances::free_balance(®istered_address), 0); + }); +} + +#[test] +fn test_automatic_versioning_on_runtime_upgrade_with_relay() { + MockNet::reset(); + + let source_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + // register relay asset in parachain A and set XCM version to 1 + ParaA::execute_with(|| { + parachain::XcmVersioner::set_version(1); + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 0u128, + 0 + )); + }); + + let response = Response::Version(2); + let querier: Location = ([]/* Here */).into(); + + // This is irrelevant, nothing will be done with this message, + // but we need to pass a message as an argument to trigger the storage change + let mock_message: Xcm<()> = Xcm(vec![QueryResponse { + query_id: 0, + response, + max_weight: Weight::zero(), + querier: Some(querier), + }]); + // The router is mocked, and we cannot use WrapVersion in ChildParachainRouter. So we will force + // it directly here + // Actually send relay asset to parachain + let dest: Location = AccountKey20 { + network: None, + key: PARAALICE, + } + .into(); + + Relay::execute_with(|| { + // This sets the default version, for not known destinations + assert_ok!(RelayChainPalletXcm::force_default_xcm_version( + relay_chain::RuntimeOrigin::root(), + Some(2) + )); + + // Wrap version, which sets VersionedStorage + // This is necessary because the mock router does not use wrap_version, but + // this is not necessary in prod + assert_ok!(::wrap_version( + &Parachain(1).into(), + mock_message + )); + + // Transfer assets. Since it is an unknown destination, it will query for version + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest).clone().into()), + Box::new(([] /* Here */, 123).into()), + 0, + )); + + // Let's advance the relay. This should trigger the subscription message + relay_chain::relay_roll_to(2); + + // queries should have been updated + assert!(RelayChainPalletXcm::query(0).is_some()); + }); + + let expected_supported_version: relay_chain::RuntimeEvent = + pallet_xcm::Event::SupportedVersionChanged { + location: Location { + parents: 0, + interior: [Parachain(1)].into(), + }, + version: 1, + } + .into(); + + Relay::execute_with(|| { + // Assert that the events vector contains the version change + assert!(relay_chain::relay_events().contains(&expected_supported_version)); + }); + + // ParaA changes version to 2, and calls on_runtime_upgrade. This should notify the targets + // of the new version change + ParaA::execute_with(|| { + // Set version + parachain::XcmVersioner::set_version(2); + // Do runtime upgrade + parachain::on_runtime_upgrade(); + // Initialize block, to call on_initialize and notify targets + parachain::para_roll_to(2); + // Expect the event in the parachain + assert!(parachain::para_events().iter().any(|e| matches!( + e, + parachain::RuntimeEvent::PolkadotXcm(pallet_xcm::Event::VersionChangeNotified { + result: 2, + .. + }) + ))); + }); + + // This event should have been seen in the relay + let expected_supported_version_2: relay_chain::RuntimeEvent = + pallet_xcm::Event::SupportedVersionChanged { + location: Location { + parents: 0, + interior: [Parachain(1)].into(), + }, + version: 2, + } + .into(); + + Relay::execute_with(|| { + // Assert that the events vector contains the new version change + assert!(relay_chain::relay_events().contains(&expected_supported_version_2)); + }); +} + +#[test] +fn receive_asset_with_no_sufficients_not_possible_if_non_existent_account() { + MockNet::reset(); + + let fresh_account = [2u8; 20]; + let source_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let source_id: parachain::AssetId = source_location.clone().into(); + let asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + // register relay asset in parachain A + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + false + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 0u128, + 0 + )); + }); + + // Actually send relay asset to parachain + let dest: Location = AccountKey20 { + network: None, + key: fresh_account, + } + .into(); + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest.clone()).clone().into()), + Box::new(([] /* Here */, 123).into()), + 0, + )); + }); + + // parachain should not have received assets + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &fresh_account.into()), 0); + }); + + // Send native token to fresh_account + ParaA::execute_with(|| { + assert_ok!(ParaBalances::transfer_allow_death( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + fresh_account.into(), + 100 + )); + }); + + // Re-send tokens + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest).clone().into()), + Box::new(([] /* Here */, 123).into()), + 0, + )); + }); + + // parachain should have received assets + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &fresh_account.into()), 123); + }); +} + +#[test] +fn receive_assets_with_sufficients_true_allows_non_funded_account_to_receive_assets() { + MockNet::reset(); + + let fresh_account = [2u8; 20]; + let source_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let source_id: parachain::AssetId = source_location.clone().into(); + let asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + // register relay asset in parachain A + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 0u128, + 0 + )); + }); + + // Actually send relay asset to parachain + let dest: Location = AccountKey20 { + network: None, + key: fresh_account, + } + .into(); + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest.clone()).clone().into()), + Box::new(([] /* Here */, 123).into()), + 0, + )); + }); + + // parachain should have received assets + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &fresh_account.into()), 123); + }); +} + +#[test] +fn evm_account_receiving_assets_should_handle_sufficients_ref_count() { + MockNet::reset(); + + let mut sufficient_account = [0u8; 20]; + sufficient_account[0..20].copy_from_slice(&evm_account()[..]); + + let evm_account_id = parachain::AccountId::from(sufficient_account); + + // Evm account is self sufficient + ParaA::execute_with(|| { + assert_eq!(parachain::System::account(evm_account_id).sufficients, 1); + }); + + let source_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + // register relay asset in parachain A + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 0u128, + 0 + )); + }); + + // Actually send relay asset to parachain + let dest: Location = AccountKey20 { + network: None, + key: sufficient_account, + } + .into(); + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest.clone()).clone().into()), + Box::new(([] /* Here */, 123).into()), + 0, + )); + }); + + // Evm account sufficient ref count increased by 1. + ParaA::execute_with(|| { + // TODO: since the suicided logic was introduced an smart contract account + // is not deleted completely until it's data is deleted. Data deletion + // will be implemented in a future release + // assert_eq!(parachain::System::account(evm_account_id).sufficients, 2); + }); + + ParaA::execute_with(|| { + // Remove the account from the evm context. + parachain::EVM::remove_account(&evm_account()); + // Evm account sufficient ref count decreased by 1. + // TODO: since the suicided logic was introduced an smart contract account + // is not deleted completely until it's data is deleted. Data deletion + // will be implemented in a future release + // assert_eq!(parachain::System::account(evm_account_id).sufficients, 1); + }); +} + +#[test] +fn empty_account_should_not_be_reset() { + MockNet::reset(); + + // Test account has nonce 1 on genesis. + let mut sufficient_account = [0u8; 20]; + sufficient_account[0..20].copy_from_slice(&evm_account()[..]); + + let evm_account_id = parachain::AccountId::from(sufficient_account); + + let source_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let source_id: parachain::AssetId = source_location.clone().into(); + let asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + // register relay asset in parachain A + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + false + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 0u128, + 0 + )); + }); + + // Send native token to evm_account + ParaA::execute_with(|| { + assert_ok!(ParaBalances::transfer_allow_death( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + evm_account_id, + 100 + )); + }); + + // Actually send relay asset to parachain + let dest: Location = AccountKey20 { + network: None, + key: sufficient_account, + } + .into(); + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest.clone()).clone().into()), + Box::new(([] /* Here */, 123).into()), + 0, + )); + }); + + ParaA::execute_with(|| { + // Empty the assets from the account. + // As this makes the account go below the `min_balance`, the account is considered dead + // at eyes of pallet-assets, and the consumer reference is decreased by 1 and is now Zero. + assert_ok!(parachain::Assets::transfer( + parachain::RuntimeOrigin::signed(evm_account_id), + source_id, + PARAALICE.into(), + 123 + )); + // Verify account asset balance is Zero. + assert_eq!( + parachain::Assets::balance(source_id, &evm_account_id.into()), + 0 + ); + // Because we no longer have consumer references, we can set the balance to Zero. + // This would reset the account if our ED were to be > than Zero. + assert_ok!(ParaBalances::force_set_balance( + parachain::RuntimeOrigin::root(), + evm_account_id, + 0, + )); + // Verify account native balance is Zero. + assert_eq!(ParaBalances::free_balance(&evm_account_id), 0); + // Remove the account from the evm context. + // This decreases the sufficients reference by 1 and now is Zero. + parachain::EVM::remove_account(&evm_account()); + // Verify reference count. + let account = parachain::System::account(evm_account_id); + assert_eq!(account.sufficients, 0); + assert_eq!(account.consumers, 0); + assert_eq!(account.providers, 1); + // We expect the account to be alive in a Zero ED context. + assert_eq!(parachain::System::account_nonce(evm_account_id), 1); + }); +} + +#[test] +fn test_statemint_like() { + MockNet::reset(); + + let dest_para = Location::new(1, [Parachain(1)]); + + let sov = xcm_builder::SiblingParachainConvertsVia::< + polkadot_parachain::primitives::Sibling, + statemint_like::AccountId, + >::convert_location(&dest_para) + .unwrap(); + + let statemint_asset_a_balances = Location::new( + 1, + [ + Parachain(4), + PalletInstance(5), + xcm::latest::prelude::GeneralIndex(0u128), + ], + ); + let source_location = parachain::AssetType::Xcm( + xcm_builder::V4V3LocationConverter::convert(&statemint_asset_a_balances) + .expect("convert to v3"), + ); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"StatemintToken".to_vec(), + symbol: b"StatemintToken".to_vec(), + decimals: 12, + }; + + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata.clone(), + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 0u128, + 0 + )); + }); + + Statemint::execute_with(|| { + // Set new prefix + statemint_like::PrefixChanger::set_prefix( + PalletInstance(::index() as u8).into(), + ); + + assert_ok!(StatemintAssets::create( + statemint_like::RuntimeOrigin::signed(RELAYALICE), + 0, + RELAYALICE, + 1 + )); + + assert_ok!(StatemintAssets::mint( + statemint_like::RuntimeOrigin::signed(RELAYALICE), + 0, + RELAYALICE, + 300000000000000 + )); + + // This is needed, since the asset is created as non-sufficient + assert_ok!(StatemintBalances::transfer_allow_death( + statemint_like::RuntimeOrigin::signed(RELAYALICE), + sov, + 100000000000000 + )); + + // Actually send relay asset to parachain + let dest: Location = AccountKey20 { + network: None, + key: PARAALICE, + } + .into(); + + // Send with new prefix + assert_ok!(StatemintChainPalletXcm::reserve_transfer_assets( + statemint_like::RuntimeOrigin::signed(RELAYALICE), + Box::new(Location::new(1, [Parachain(1)]).into()), + Box::new(VersionedLocation::V4(dest).clone().into()), + Box::new( + ( + [ + xcm::latest::prelude::PalletInstance( + ::index() as u8 + ), + xcm::latest::prelude::GeneralIndex(0), + ], + 123 + ) + .into() + ), + 0, + )); + }); + + ParaA::execute_with(|| { + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 123); + }); +} + +#[test] +fn send_statemint_asset_from_para_a_to_statemint_with_relay_fee() { + MockNet::reset(); + + // Relay asset + let relay_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let source_relay_id: parachain::AssetId = relay_location.clone().into(); + + let relay_asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + + // Statemint asset + let statemint_asset = Location::new( + 1, + [Parachain(4u32), PalletInstance(5u8), GeneralIndex(10u128)], + ); + let statemint_location_asset = parachain::AssetType::Xcm( + xcm_builder::V4V3LocationConverter::convert(&statemint_asset).expect("convert to v3"), + ); + let source_statemint_asset_id: parachain::AssetId = statemint_location_asset.clone().into(); + + let asset_metadata_statemint_asset = parachain::AssetMetadata { + name: b"USDC".to_vec(), + symbol: b"USDC".to_vec(), + decimals: 12, + }; + + let dest_para = Location::new(1, [Parachain(1)]); + + let sov = xcm_builder::SiblingParachainConvertsVia::< + polkadot_parachain::primitives::Sibling, + statemint_like::AccountId, + >::convert_location(&dest_para) + .unwrap(); + + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + relay_location.clone(), + relay_asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + relay_location, + 0u128, + 0 + )); + + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + statemint_location_asset.clone(), + asset_metadata_statemint_asset, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + statemint_location_asset, + 0u128, + 1 + )); + }); + + let parachain_beneficiary_from_relay: Location = Junction::AccountKey20 { + network: None, + key: PARAALICE, + } + .into(); + + // Send relay chain asset to Alice in Parachain A + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new( + VersionedLocation::V4(parachain_beneficiary_from_relay) + .clone() + .into() + ), + Box::new(([] /* Here */, 200).into()), + 0, + )); + }); + + Statemint::execute_with(|| { + // Set new prefix + statemint_like::PrefixChanger::set_prefix( + PalletInstance(::index() as u8).into(), + ); + + assert_ok!(StatemintAssets::create( + statemint_like::RuntimeOrigin::signed(RELAYALICE), + 10, + RELAYALICE, + 1 + )); + + assert_ok!(StatemintAssets::mint( + statemint_like::RuntimeOrigin::signed(RELAYALICE), + 10, + RELAYALICE, + 300000000000000 + )); + + // Send some native statemint tokens to sovereign for fees. + // We can't pay fees with USDC as the asset is minted as non-sufficient. + assert_ok!(StatemintBalances::transfer_allow_death( + statemint_like::RuntimeOrigin::signed(RELAYALICE), + sov, + 100000000000000 + )); + + // Send statemint USDC asset to Alice in Parachain A + let parachain_beneficiary_from_statemint: Location = AccountKey20 { + network: None, + key: PARAALICE, + } + .into(); + + // Send with new prefix + assert_ok!(StatemintChainPalletXcm::reserve_transfer_assets( + statemint_like::RuntimeOrigin::signed(RELAYALICE), + Box::new(Location::new(1, [Parachain(1)]).into()), + Box::new( + VersionedLocation::V4(parachain_beneficiary_from_statemint) + .clone() + .into() + ), + Box::new( + ( + [ + xcm::latest::prelude::PalletInstance( + ::index() as u8 + ), + GeneralIndex(10), + ], + 125 + ) + .into() + ), + 0, + )); + }); + + let statemint_beneficiary = Location { + parents: 1, + interior: [ + Parachain(4), + AccountId32 { + network: None, + id: RELAYBOB.into(), + }, + ] + .into(), + }; + + ParaA::execute_with(|| { + // Alice has received 125 USDC + assert_eq!( + Assets::balance(source_statemint_asset_id, &PARAALICE.into()), + 125 + ); + + // Alice has received 200 Relay assets + assert_eq!(Assets::balance(source_relay_id, &PARAALICE.into()), 200); + }); + + Statemint::execute_with(|| { + // Check that BOB's balance is empty before the transfer + assert_eq!(StatemintAssets::account_balances(RELAYBOB), vec![]); + }); + + // Transfer USDC from Parachain A to Statemint using Relay asset as fee + ParaA::execute_with(|| { + assert_ok!(XTokens::transfer_multicurrencies( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + vec![ + ( + parachain::CurrencyId::ForeignAsset(source_statemint_asset_id), + 100 + ), + (parachain::CurrencyId::ForeignAsset(source_relay_id), 100) + ], + 1, + Box::new(VersionedLocation::V4(statemint_beneficiary)), + WeightLimit::Limited(Weight::from_parts(80_000_000u64, 100_000u64)) + )); + }); + + ParaA::execute_with(|| { + // Alice has 100 USDC less + assert_eq!( + Assets::balance(source_statemint_asset_id, &PARAALICE.into()), + 25 + ); + + // Alice has 100 relay asset less + assert_eq!(Assets::balance(source_relay_id, &PARAALICE.into()), 100); + }); + + Statemint::execute_with(|| { + println!("STATEMINT EVENTS: {:?}", parachain::para_events()); + // Check that BOB received 100 USDC on statemint + assert_eq!(StatemintAssets::account_balances(RELAYBOB), vec![(10, 100)]); + }); +} + +#[test] +fn transact_through_signed_multilocation() { + MockNet::reset(); + let mut ancestry = Location::parent(); + + ParaA::execute_with(|| { + // Root can set transact info + assert_ok!(XcmTransactor::set_transact_info( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(Location::parent())), + // Relay charges 1000 for every instruction, and we have 3, so 3000 + 3000.into(), + 20000000000.into(), + // 4 instructions in transact through signed + Some(4000.into()) + )); + // Root can set transact info + assert_ok!(XcmTransactor::set_fee_per_second( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(Location::parent())), + WEIGHT_REF_TIME_PER_SECOND as u128, + )); + ancestry = parachain::UniversalLocation::get().into(); + }); + + // Let's construct the Junction that we will append with DescendOrigin + let signed_origin: Junctions = [AccountKey20 { + network: None, + key: PARAALICE, + }] + .into(); + + let mut descend_origin_multilocation = parachain::SelfLocation::get(); + descend_origin_multilocation + .append_with(signed_origin) + .unwrap(); + + // To convert it to what the relay will see instead of us + descend_origin_multilocation + .reanchor(&Location::parent(), &ancestry.interior) + .unwrap(); + + let derived = xcm_builder::Account32Hash::< + relay_chain::KusamaNetwork, + relay_chain::AccountId, + >::convert_location(&descend_origin_multilocation) + .unwrap(); + + Relay::execute_with(|| { + // free execution, full amount received + assert_ok!(RelayBalances::transfer_allow_death( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + derived.clone(), + 4000004100u128, + )); + // derived account has all funds + assert!(RelayBalances::free_balance(&derived) == 4000004100); + // sovereign account has 0 funds + assert!(RelayBalances::free_balance(¶_a_account()) == 0); + }); + + // Encode the call. Balances transact to para_a_account + // First index + let mut encoded: Vec = Vec::new(); + let index = ::PalletInfo::index::< + relay_chain::Balances, + >() + .unwrap() as u8; + + encoded.push(index); + + // Then call bytes + let mut call_bytes = pallet_balances::Call::::transfer_allow_death { + // 100 to sovereign + dest: para_a_account(), + value: 100u32.into(), + } + .encode(); + encoded.append(&mut call_bytes); + + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::transact_through_signed( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + Box::new(xcm::VersionedLocation::V4(Location::parent())), + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + Location::parent() + ))), + fee_amount: None + }, + encoded, + // 4000000000 for transfer + 4000 for XCM + TransactWeights { + transact_required_weight_at_most: 4000000000.into(), + overall_weight: None + }, + false + )); + }); + + Relay::execute_with(|| { + assert!(RelayBalances::free_balance(¶_a_account()) == 100); + + assert!(RelayBalances::free_balance(&derived) == 0); + }); +} + +#[test] +fn transact_through_signed_multilocation_custom_fee_and_weight() { + MockNet::reset(); + let mut ancestry = Location::parent(); + + ParaA::execute_with(|| { + ancestry = parachain::UniversalLocation::get().into(); + }); + + // Let's construct the Junction that we will append with DescendOrigin + let signed_origin: Junctions = [AccountKey20 { + network: None, + key: PARAALICE, + }] + .into(); + + let mut descend_origin_multilocation = parachain::SelfLocation::get(); + descend_origin_multilocation + .append_with(signed_origin) + .unwrap(); + + // To convert it to what the relay will see instead of us + descend_origin_multilocation + .reanchor(&Location::parent(), &ancestry.interior) + .unwrap(); + + let derived = xcm_builder::Account32Hash::< + relay_chain::KusamaNetwork, + relay_chain::AccountId, + >::convert_location(&descend_origin_multilocation) + .unwrap(); + + Relay::execute_with(|| { + // free execution, full amount received + assert_ok!(RelayBalances::transfer_allow_death( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + derived.clone(), + 4000004100u128, + )); + // derived account has all funds + assert!(RelayBalances::free_balance(&derived) == 4000004100); + // sovereign account has 0 funds + assert!(RelayBalances::free_balance(¶_a_account()) == 0); + }); + + // Encode the call. Balances transact to para_a_account + // First index + let mut encoded: Vec = Vec::new(); + let index = ::PalletInfo::index::< + relay_chain::Balances, + >() + .unwrap() as u8; + + encoded.push(index); + + // Then call bytes + let mut call_bytes = pallet_balances::Call::::transfer_allow_death { + // 100 to sovereign + dest: para_a_account(), + value: 100u32.into(), + } + .encode(); + encoded.append(&mut call_bytes); + + let total_weight = 4000004000u64; + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::transact_through_signed( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + Box::new(xcm::VersionedLocation::V4(Location::parent())), + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + Location::parent() + ))), + fee_amount: Some(total_weight as u128) + }, + encoded, + // 4000000000 for transfer + 4000 for XCM + TransactWeights { + transact_required_weight_at_most: 4000000000.into(), + overall_weight: Some(Limited(total_weight.into())) + }, + false + )); + }); + + Relay::execute_with(|| { + assert!(RelayBalances::free_balance(¶_a_account()) == 100); + + assert!(RelayBalances::free_balance(&derived) == 0); + }); +} + +#[test] +fn transact_through_signed_multilocation_custom_fee_and_weight_refund() { + MockNet::reset(); + let mut ancestry = Location::parent(); + + ParaA::execute_with(|| { + ancestry = parachain::UniversalLocation::get().into(); + }); + + // Let's construct the Junction that we will append with DescendOrigin + let signed_origin: Junctions = [AccountKey20 { + network: None, + key: PARAALICE, + }] + .into(); + + let mut descend_origin_multilocation = parachain::SelfLocation::get(); + descend_origin_multilocation + .append_with(signed_origin) + .unwrap(); + + // To convert it to what the relay will see instead of us + descend_origin_multilocation + .reanchor(&Location::parent(), &ancestry.interior) + .unwrap(); + + let derived = xcm_builder::Account32Hash::< + relay_chain::KusamaNetwork, + relay_chain::AccountId, + >::convert_location(&descend_origin_multilocation) + .unwrap(); + + Relay::execute_with(|| { + // free execution, full amount received + assert_ok!(RelayBalances::transfer_allow_death( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + derived.clone(), + 4000009100u128, + )); + // derived account has all funds + assert!(RelayBalances::free_balance(&derived) == 4000009100); + // sovereign account has 0 funds + assert!(RelayBalances::free_balance(¶_a_account()) == 0); + }); + + // Encode the call. Balances transact to para_a_account + // First index + let mut encoded: Vec = Vec::new(); + let index = ::PalletInfo::index::< + relay_chain::Balances, + >() + .unwrap() as u8; + + encoded.push(index); + + // Then call bytes + let mut call_bytes = pallet_balances::Call::::transfer_allow_death { + // 100 to sovereign + dest: para_a_account(), + value: 100u32.into(), + } + .encode(); + encoded.append(&mut call_bytes); + + let total_weight = 4000009000u64; + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::transact_through_signed( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + Box::new(xcm::VersionedLocation::V4(Location::parent())), + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + Location::parent() + ))), + fee_amount: Some(total_weight as u128) + }, + encoded, + // 4000000000 for transfer + 9000 for XCM + TransactWeights { + transact_required_weight_at_most: 4000000000.into(), + overall_weight: Some(Limited(total_weight.into())) + }, + true + )); + }); + + Relay::execute_with(|| { + // 100 transferred + assert_eq!(RelayBalances::free_balance(¶_a_account()), 100); + + // 4000005186 refunded + assert_eq!(RelayBalances::free_balance(&derived), 4000005186); + }); +} + +#[test] +fn transact_through_signed_multilocation_para_to_para() { + MockNet::reset(); + let mut ancestry = Location::parent(); + + let para_b_location = Location::new(1, [Parachain(2)]); + + let para_b_balances = Location::new(1, [Parachain(2), PalletInstance(1u8)]); + + ParaA::execute_with(|| { + // Root can set transact info + assert_ok!(XcmTransactor::set_transact_info( + parachain::RuntimeOrigin::root(), + // ParaB + Box::new(xcm::VersionedLocation::V4(para_b_location.clone())), + // Para charges 1000 for every instruction, and we have 3, so 3 + 3.into(), + 20000000000.into(), + // 4 instructions in transact through signed + Some(4.into()) + )); + // Root can set transact info + assert_ok!(XcmTransactor::set_fee_per_second( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(para_b_balances.clone())), + parachain::ParaTokensPerSecond::get().1 as u128, + )); + ancestry = parachain::UniversalLocation::get().into(); + }); + + // Let's construct the Junction that we will append with DescendOrigin + let signed_origin: Junctions = [AccountKey20 { + network: None, + key: PARAALICE, + }] + .into(); + + let mut descend_origin_location = parachain::SelfLocation::get(); + descend_origin_location.append_with(signed_origin).unwrap(); + + // To convert it to what the paraB will see instead of us + descend_origin_location + .reanchor(¶_b_location, &ancestry.interior) + .unwrap(); + + let derived = xcm_builder::HashedDescription::< + parachain::AccountId, + xcm_builder::DescribeFamily, + >::convert_location(&descend_origin_location) + .unwrap(); + + ParaB::execute_with(|| { + // free execution, full amount received + assert_ok!(ParaBalances::transfer_allow_death( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + derived.clone(), + 4000000104u128, + )); + // derived account has all funds + assert!(ParaBalances::free_balance(&derived) == 4000000104); + // sovereign account has 0 funds + assert!(ParaBalances::free_balance(¶_a_account_20()) == 0); + }); + + // Encode the call. Balances transact to para_a_account + // First index + let mut encoded: Vec = Vec::new(); + let index = + ::PalletInfo::index::() + .unwrap() as u8; + + encoded.push(index); + + // Then call bytes + let mut call_bytes = pallet_balances::Call::::transfer_allow_death { + // 100 to sovereign + dest: para_a_account_20(), + value: 100u32.into(), + } + .encode(); + encoded.append(&mut call_bytes); + + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::transact_through_signed( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + Box::new(xcm::VersionedLocation::V4(para_b_location)), + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + para_b_balances + ))), + fee_amount: None + }, + encoded, + // 4000000000 for transfer + 4000 for XCM + // 1-1 to fee + TransactWeights { + transact_required_weight_at_most: 4000000000.into(), + overall_weight: None + }, + false + )); + }); + + ParaB::execute_with(|| { + assert!(ParaBalances::free_balance(&derived) == 0); + + assert!(ParaBalances::free_balance(¶_a_account_20()) == 100); + }); +} + +#[test] +fn transact_through_signed_multilocation_para_to_para_refund() { + MockNet::reset(); + let mut ancestry = Location::parent(); + + let para_b_location = Location::new(1, [Parachain(2)]); + + let para_b_balances = Location::new(1, [Parachain(2), PalletInstance(1u8)]); + + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::set_fee_per_second( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(para_b_balances.clone())), + parachain::ParaTokensPerSecond::get().1 as u128, + )); + ancestry = parachain::UniversalLocation::get().into(); + }); + + // Let's construct the Junction that we will append with DescendOrigin + let signed_origin: Junctions = [AccountKey20 { + network: None, + key: PARAALICE, + }] + .into(); + + let mut descend_origin_location = parachain::SelfLocation::get(); + descend_origin_location.append_with(signed_origin).unwrap(); + + // To convert it to what the paraB will see instead of us + descend_origin_location + .reanchor(¶_b_location, &ancestry.interior) + .unwrap(); + + let derived = xcm_builder::HashedDescription::< + parachain::AccountId, + xcm_builder::DescribeFamily, + >::convert_location(&descend_origin_location) + .unwrap(); + + ParaB::execute_with(|| { + // free execution, full amount received + assert_ok!(ParaBalances::transfer_allow_death( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + derived.clone(), + 4000009100u128, + )); + // derived account has all funds + assert!(ParaBalances::free_balance(&derived) == 4000009100); + // sovereign account has 0 funds + assert!(ParaBalances::free_balance(¶_a_account_20()) == 0); + }); + + // Encode the call. Balances transact to para_a_account + // First index + let mut encoded: Vec = Vec::new(); + let index = + ::PalletInfo::index::() + .unwrap() as u8; + + encoded.push(index); + + // Then call bytes + let mut call_bytes = pallet_balances::Call::::transfer_allow_death { + // 100 to sovereign + dest: para_a_account_20(), + value: 100u32.into(), + } + .encode(); + encoded.append(&mut call_bytes); + + let overall_weight = 4000009000u64; + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::transact_through_signed( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + Box::new(xcm::VersionedLocation::V4(para_b_location)), + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + para_b_balances + ))), + fee_amount: Some(overall_weight as u128) + }, + encoded, + // 4000000000 for transfer + 9000 for XCM + TransactWeights { + transact_required_weight_at_most: 4000000000.into(), + overall_weight: Some(Limited(overall_weight.into())) + }, + true + )); + }); + + ParaB::execute_with(|| { + // Check the derived account was refunded + assert_eq!(ParaBalances::free_balance(&derived), 8993); + + // Check the transfer was executed + assert_eq!(ParaBalances::free_balance(¶_a_account_20()), 100); + }); +} + +#[test] +fn transact_through_signed_multilocation_para_to_para_ethereum() { + MockNet::reset(); + let mut ancestry = Location::parent(); + + let para_b_location = Location::new(1, [Parachain(2)]); + + let para_b_balances = Location::new(1, [Parachain(2), PalletInstance(1u8)]); + + ParaA::execute_with(|| { + // Root can set transact info + assert_ok!(XcmTransactor::set_transact_info( + parachain::RuntimeOrigin::root(), + // ParaB + Box::new(xcm::VersionedLocation::V4(para_b_location.clone())), + // Para charges 1000 for every instruction, and we have 3, so 3 + 3.into(), + 20000000000.into(), + // 4 instructions in transact through signed + Some(4.into()) + )); + // Root can set transact info + assert_ok!(XcmTransactor::set_fee_per_second( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(para_b_balances.clone())), + parachain::ParaTokensPerSecond::get().1 as u128, + )); + ancestry = parachain::UniversalLocation::get().into(); + }); + + // Let's construct the Junction that we will append with DescendOrigin + let signed_origin: Junctions = [AccountKey20 { + network: None, + key: PARAALICE, + }] + .into(); + + let mut descend_origin_location = parachain::SelfLocation::get(); + descend_origin_location.append_with(signed_origin).unwrap(); + + // To convert it to what the paraB will see instead of us + descend_origin_location + .reanchor(¶_b_location, &ancestry.interior) + .unwrap(); + + let derived = xcm_builder::HashedDescription::< + parachain::AccountId, + xcm_builder::DescribeFamily, + >::convert_location(&descend_origin_location) + .unwrap(); + + let mut parachain_b_alice_balances_before = 0; + ParaB::execute_with(|| { + assert_ok!(ParaBalances::transfer_allow_death( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + derived.clone(), + 4000000104u128, + )); + // derived account has all funds + assert!(ParaBalances::free_balance(&derived) == 4000000104); + // sovereign account has 0 funds + assert!(ParaBalances::free_balance(¶_a_account_20()) == 0); + + parachain_b_alice_balances_before = ParaBalances::free_balance(&PARAALICE.into()) + }); + + // Encode the call. Balances transact to para_a_account + // First index + let mut encoded: Vec = Vec::new(); + let index = + ::PalletInfo::index::() + .unwrap() as u8; + + encoded.push(index); + + use sp_core::U256; + // Let's do a EVM transfer + let eth_tx = + xcm_primitives::EthereumXcmTransaction::V1(xcm_primitives::EthereumXcmTransactionV1 { + gas_limit: U256::from(21000), + fee_payment: xcm_primitives::EthereumXcmFee::Auto, + action: pallet_ethereum::TransactionAction::Call(PARAALICE.into()), + value: U256::from(100), + input: BoundedVec::< + u8, + ConstU32<{ xcm_primitives::MAX_ETHEREUM_XCM_INPUT_SIZE }> + >::try_from(vec![]).unwrap(), + access_list: None, + }); + + // Then call bytes + let mut call_bytes = pallet_ethereum_xcm::Call::::transact { + xcm_transaction: eth_tx, + } + .encode(); + encoded.append(&mut call_bytes); + + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::transact_through_signed( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + Box::new(xcm::VersionedLocation::V4(para_b_location)), + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + para_b_balances + ))), + fee_amount: None + }, + encoded, + // 4000000000 for transfer + 4000 for XCM + // 1-1 to fee + TransactWeights { + transact_required_weight_at_most: 4000000000.into(), + overall_weight: None + }, + false + )); + }); + + ParaB::execute_with(|| { + // Make sure the EVM transfer went through + assert!( + ParaBalances::free_balance(&PARAALICE.into()) + == parachain_b_alice_balances_before + 100 + ); + }); +} + +#[test] +fn transact_through_signed_multilocation_para_to_para_ethereum_no_proxy_fails() { + MockNet::reset(); + let mut ancestry = Location::parent(); + + let para_b_location = Location::new(1, [Parachain(2)]); + + let para_b_balances = Location::new(1, [Parachain(2), PalletInstance(1u8)]); + + ParaA::execute_with(|| { + // Root can set transact info + assert_ok!(XcmTransactor::set_transact_info( + parachain::RuntimeOrigin::root(), + // ParaB + Box::new(xcm::VersionedLocation::V4(para_b_location.clone())), + // Para charges 1000 for every instruction, and we have 3, so 3 + 3.into(), + 20000000000.into(), + // 4 instructions in transact through signed + Some(4.into()) + )); + // Root can set transact info + assert_ok!(XcmTransactor::set_fee_per_second( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(para_b_balances.clone())), + parachain::ParaTokensPerSecond::get().1 as u128, + )); + ancestry = parachain::UniversalLocation::get().into(); + }); + + // Let's construct the Junction that we will append with DescendOrigin + let signed_origin: Junctions = [AccountKey20 { + network: None, + key: PARAALICE, + }] + .into(); + + let mut descend_origin_location = parachain::SelfLocation::get(); + descend_origin_location.append_with(signed_origin).unwrap(); + + // To convert it to what the paraB will see instead of us + descend_origin_location + .reanchor(¶_b_location, &ancestry.interior) + .unwrap(); + + let derived = xcm_builder::HashedDescription::< + parachain::AccountId, + xcm_builder::DescribeFamily, + >::convert_location(&descend_origin_location) + .unwrap(); + + let mut parachain_b_alice_balances_before = 0; + ParaB::execute_with(|| { + assert_ok!(ParaBalances::transfer_allow_death( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + derived.clone(), + 4000000104u128, + )); + // derived account has all funds + assert!(ParaBalances::free_balance(&derived) == 4000000104); + // sovereign account has 0 funds + assert!(ParaBalances::free_balance(¶_a_account_20()) == 0); + + parachain_b_alice_balances_before = ParaBalances::free_balance(&PARAALICE.into()) + }); + + // Encode the call. Balances transact to para_a_account + // First index + let mut encoded: Vec = Vec::new(); + let index = + ::PalletInfo::index::() + .unwrap() as u8; + + encoded.push(index); + + use sp_core::U256; + // Let's do a EVM transfer + let eth_tx = + xcm_primitives::EthereumXcmTransaction::V1(xcm_primitives::EthereumXcmTransactionV1 { + gas_limit: U256::from(21000), + fee_payment: xcm_primitives::EthereumXcmFee::Auto, + action: pallet_ethereum::TransactionAction::Call(PARAALICE.into()), + value: U256::from(100), + input: BoundedVec::< + u8, + ConstU32<{ xcm_primitives::MAX_ETHEREUM_XCM_INPUT_SIZE }> + >::try_from(vec![]).unwrap(), + access_list: None, + }); + + // Then call bytes + let mut call_bytes = pallet_ethereum_xcm::Call::::transact_through_proxy { + transact_as: PARAALICE.into(), + xcm_transaction: eth_tx, + } + .encode(); + encoded.append(&mut call_bytes); + + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::transact_through_signed( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + Box::new(xcm::VersionedLocation::V4(para_b_location)), + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + para_b_balances + ))), + fee_amount: None + }, + encoded, + TransactWeights { + transact_required_weight_at_most: 4000000000.into(), + overall_weight: None + }, + false + )); + }); + + ParaB::execute_with(|| { + // Make sure the EVM transfer wasn't executed + assert!(ParaBalances::free_balance(&PARAALICE.into()) == parachain_b_alice_balances_before); + }); +} + +#[test] +fn transact_through_signed_multilocation_para_to_para_ethereum_proxy_succeeds() { + MockNet::reset(); + let mut ancestry = Location::parent(); + + let para_b_location = Location::new(1, [Parachain(2)]); + + let para_b_balances = Location::new(1, [Parachain(2), PalletInstance(1u8)]); + + ParaA::execute_with(|| { + // Root can set transact info + assert_ok!(XcmTransactor::set_transact_info( + parachain::RuntimeOrigin::root(), + // ParaB + Box::new(xcm::VersionedLocation::V4(para_b_location.clone())), + // Para charges 1000 for every instruction, and we have 3, so 3 + 3.into(), + 20000000000.into(), + // 4 instructions in transact through signed + Some(4.into()) + )); + // Root can set transact info + assert_ok!(XcmTransactor::set_fee_per_second( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(para_b_balances.clone())), + parachain::ParaTokensPerSecond::get().1 as u128, + )); + ancestry = parachain::UniversalLocation::get().into(); + }); + + // Let's construct the Junction that we will append with DescendOrigin + let signed_origin: Junctions = [AccountKey20 { + network: None, + key: PARAALICE, + }] + .into(); + + let mut descend_origin_location = parachain::SelfLocation::get(); + descend_origin_location.append_with(signed_origin).unwrap(); + + // To convert it to what the paraB will see instead of us + descend_origin_location + .reanchor(¶_b_location, &ancestry.interior) + .unwrap(); + + let derived = xcm_builder::HashedDescription::< + parachain::AccountId, + xcm_builder::DescribeFamily, + >::convert_location(&descend_origin_location) + .unwrap(); + + let transfer_recipient = evm_account(); + let mut transfer_recipient_balance_before = 0; + ParaB::execute_with(|| { + assert_ok!(ParaBalances::transfer_allow_death( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + derived.clone(), + 4000000104u128, + )); + // derived account has all funds + assert!(ParaBalances::free_balance(&derived) == 4000000104); + // sovereign account has 0 funds + assert!(ParaBalances::free_balance(¶_a_account_20()) == 0); + + transfer_recipient_balance_before = ParaBalances::free_balance(&transfer_recipient.into()); + + // Add proxy ALICE -> derived + let _ = parachain::Proxy::add_proxy_delegate( + &PARAALICE.into(), + derived, + parachain::ProxyType::Any, + 0, + ); + }); + + // Encode the call. Balances transact to para_a_account + // First index + let mut encoded: Vec = Vec::new(); + let index = + ::PalletInfo::index::() + .unwrap() as u8; + + encoded.push(index); + + use sp_core::U256; + // Let's do a EVM transfer + let eth_tx = + xcm_primitives::EthereumXcmTransaction::V2(xcm_primitives::EthereumXcmTransactionV2 { + gas_limit: U256::from(21000), + action: pallet_ethereum::TransactionAction::Call(transfer_recipient.into()), + value: U256::from(100), + input: BoundedVec::< + u8, + ConstU32<{ xcm_primitives::MAX_ETHEREUM_XCM_INPUT_SIZE }> + >::try_from(vec![]).unwrap(), + access_list: None, + }); + + // Then call bytes + let mut call_bytes = pallet_ethereum_xcm::Call::::transact_through_proxy { + transact_as: PARAALICE.into(), + xcm_transaction: eth_tx, + } + .encode(); + encoded.append(&mut call_bytes); + + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::transact_through_signed( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + Box::new(xcm::VersionedLocation::V4(para_b_location)), + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + para_b_balances + ))), + fee_amount: None + }, + encoded, + TransactWeights { + transact_required_weight_at_most: 4000000000.into(), + overall_weight: None + }, + false + )); + }); + + ParaB::execute_with(|| { + // Make sure the EVM transfer was executed + assert!( + ParaBalances::free_balance(&transfer_recipient.into()) + == transfer_recipient_balance_before + 100 + ); + }); +} + +#[test] +fn hrmp_init_accept_through_root() { + MockNet::reset(); + + Relay::execute_with(|| { + assert_ok!(RelayBalances::transfer_allow_death( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + para_a_account(), + 1000u128 + )); + assert_ok!(RelayBalances::transfer_allow_death( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + para_b_account(), + 1000u128 + )); + }); + + ParaA::execute_with(|| { + let total_fee = 1_000u128; + let total_weight: u64 = 1_000_000_000; + let tx_weight: u64 = 500_000_000; + // Root can send hrmp init channel + assert_ok!(XcmTransactor::hrmp_manage( + parachain::RuntimeOrigin::root(), + HrmpOperation::InitOpen(HrmpInitParams { + para_id: 2u32.into(), + proposed_max_capacity: 1, + proposed_max_message_size: 1 + }), + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + Location::parent() + ))), + fee_amount: Some(total_fee) + }, + TransactWeights { + transact_required_weight_at_most: tx_weight.into(), + overall_weight: Some(Limited(total_weight.into())) + } + )); + }); + Relay::execute_with(|| { + let expected_event: relay_chain::RuntimeEvent = + polkadot_runtime_parachains::hrmp::Event::OpenChannelRequested { + sender: 1u32.into(), + recipient: 2u32.into(), + proposed_max_capacity: 1u32, + proposed_max_message_size: 1u32, + } + .into(); + assert!(relay_chain::relay_events().contains(&expected_event)); + }); + ParaB::execute_with(|| { + let total_fee = 1_000u128; + let total_weight: u64 = 1_000_000_000; + let tx_weight: u64 = 500_000_000; + // Root can send hrmp accept channel + assert_ok!(XcmTransactor::hrmp_manage( + parachain::RuntimeOrigin::root(), + HrmpOperation::Accept { + para_id: 1u32.into() + }, + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + Location::parent() + ))), + fee_amount: Some(total_fee) + }, + TransactWeights { + transact_required_weight_at_most: tx_weight.into(), + overall_weight: Some(Limited(total_weight.into())) + } + )); + }); + + Relay::execute_with(|| { + let expected_event: relay_chain::RuntimeEvent = + polkadot_runtime_parachains::hrmp::Event::OpenChannelAccepted { + sender: 1u32.into(), + recipient: 2u32.into(), + } + .into(); + assert!(relay_chain::relay_events().contains(&expected_event)); + }); +} + +#[test] +fn hrmp_close_works() { + MockNet::reset(); + + Relay::execute_with(|| { + assert_ok!(RelayBalances::transfer_allow_death( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + para_a_account(), + 1000u128 + )); + assert_ok!(Hrmp::force_open_hrmp_channel( + relay_chain::RuntimeOrigin::root(), + 1u32.into(), + 2u32.into(), + 1u32, + 1u32 + )); + assert_ok!(Hrmp::force_process_hrmp_open( + relay_chain::RuntimeOrigin::root(), + 1u32 + )); + }); + + ParaA::execute_with(|| { + let total_fee = 1_000u128; + let total_weight: u64 = 1_000_000_000; + let tx_weight: u64 = 500_000_000; + // Root can send hrmp close + assert_ok!(XcmTransactor::hrmp_manage( + parachain::RuntimeOrigin::root(), + HrmpOperation::Close(HrmpChannelId { + sender: 1u32.into(), + recipient: 2u32.into() + }), + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + Location::parent() + ))), + fee_amount: Some(total_fee) + }, + TransactWeights { + transact_required_weight_at_most: tx_weight.into(), + overall_weight: Some(Limited(total_weight.into())) + } + )); + }); + Relay::execute_with(|| { + let expected_event: relay_chain::RuntimeEvent = + polkadot_runtime_parachains::hrmp::Event::ChannelClosed { + by_parachain: 1u32.into(), + channel_id: HrmpChannelId { + sender: 1u32.into(), + recipient: 2u32.into(), + }, + } + .into(); + assert!(relay_chain::relay_events().contains(&expected_event)); + }); +} + +use parity_scale_codec::{Decode, Encode}; +use sp_io::hashing::blake2_256; + +// Helper to derive accountIds +pub fn derivative_account_id(who: sp_runtime::AccountId32, index: u16) -> sp_runtime::AccountId32 { + let entropy = (b"modlpy/utilisuba", who, index).using_encoded(blake2_256); + sp_runtime::AccountId32::decode(&mut &entropy[..]).expect("valid account id") +} diff --git a/tracing/3001/runtime/moonriver/Cargo.toml b/tracing/3001/runtime/moonriver/Cargo.toml new file mode 100644 index 00000000..a4e1f1d5 --- /dev/null +++ b/tracing/3001/runtime/moonriver/Cargo.toml @@ -0,0 +1,409 @@ +[package] +authors = { workspace = true } +build = "build.rs" +description = "Moonriver Runtime" +edition = "2021" +homepage = "https://moonbeam.network" +license = "GPL-3.0-only" +name = "moonriver-runtime" +version = "0.8.4" + +[dependencies] +hex-literal = { workspace = true, optional = true } +log = { workspace = true } +num_enum = { workspace = true } +rlp = { workspace = true, optional = true } +serde = { workspace = true, features = ["derive"] } +sha3 = { workspace = true, optional = true } +smallvec = { workspace = true } +strum = { workspace = true } +strum_macros = { workspace = true } + +# Moonbeam +account = { workspace = true } +moonbeam-core-primitives = { workspace = true } +moonbeam-relay-encoder = { workspace = true } +moonbeam-runtime-common = { workspace = true } +precompile-utils = { workspace = true } +session-keys-primitives = { workspace = true } +xcm-primitives = { workspace = true } + +# Moonbeam pallets +moonbeam-xcm-benchmarks = { workspace = true } +pallet-asset-manager = { workspace = true } +pallet-author-mapping = { workspace = true } +pallet-crowdloan-rewards = { workspace = true } +pallet-erc20-xcm-bridge = { workspace = true } +pallet-ethereum-xcm = { workspace = true } +pallet-evm-chain-id = { workspace = true } +pallet-maintenance-mode = { workspace = true, features = ["xcm-support"] } +pallet-migrations = { workspace = true } +pallet-moonbeam-lazy-migrations = { workspace = true } +pallet-moonbeam-orbiters = { workspace = true } +pallet-parachain-staking = { workspace = true } +pallet-precompile-benchmarks = { workspace = true } +pallet-proxy-genesis-companion = { workspace = true } +pallet-randomness = { workspace = true } +pallet-xcm-transactor = { workspace = true } + +# Moonbeam precompiles +pallet-evm-precompile-author-mapping = { workspace = true } +pallet-evm-precompile-balances-erc20 = { workspace = true } +pallet-evm-precompile-batch = { workspace = true } +pallet-evm-precompile-call-permit = { workspace = true } +pallet-evm-precompile-collective = { workspace = true } +pallet-evm-precompile-conviction-voting = { workspace = true } +pallet-evm-precompile-crowdloan-rewards = { workspace = true } +pallet-evm-precompile-gmp = { workspace = true } +pallet-evm-precompile-identity = { workspace = true } +pallet-evm-precompile-parachain-staking = { workspace = true } +pallet-evm-precompile-preimage = { workspace = true } +pallet-evm-precompile-proxy = { workspace = true } +pallet-evm-precompile-randomness = { workspace = true } +pallet-evm-precompile-referenda = { workspace = true } +pallet-evm-precompile-registry = { workspace = true } +pallet-evm-precompile-relay-encoder = { workspace = true } +pallet-evm-precompile-relay-verifier = { workspace = true } +pallet-evm-precompile-xcm-transactor = { workspace = true } +pallet-evm-precompile-xcm-utils = { workspace = true } +pallet-evm-precompile-xtokens = { workspace = true } +pallet-evm-precompileset-assets-erc20 = { workspace = true } + +# Moonbeam tracing +evm-tracing-events = { workspace = true, optional = true } +moonbeam-evm-tracer = { workspace = true, optional = true } +moonbeam-rpc-primitives-debug = { workspace = true } +moonbeam-rpc-primitives-txpool = { workspace = true } + +# Substrate +frame-executive = { workspace = true } +frame-support = { workspace = true } +frame-system = { workspace = true } +frame-system-rpc-runtime-api = { workspace = true } +pallet-assets = { workspace = true } +pallet-balances = { workspace = true, features = ["insecure_zero_ed"] } +pallet-collective = { workspace = true } +pallet-conviction-voting = { workspace = true } +pallet-identity = { workspace = true } +pallet-multisig = { workspace = true } +pallet-preimage = { workspace = true } +pallet-proxy = { workspace = true } +pallet-referenda = { workspace = true } +pallet-root-testing = { workspace = true } +pallet-scheduler = { workspace = true } +pallet-society = { workspace = true } +pallet-timestamp = { workspace = true } +pallet-transaction-payment = { workspace = true } +pallet-transaction-payment-rpc-runtime-api = { workspace = true } +pallet-treasury = { workspace = true } +pallet-utility = { workspace = true } +pallet-whitelist = { workspace = true } +parity-scale-codec = { workspace = true, features = [ + "derive", + "max-encoded-len", + "chain-error", +] } +scale-info = { workspace = true, features = ["derive"] } +sp-api = { workspace = true } +sp-block-builder = { workspace = true } +sp-consensus-slots = { workspace = true } +sp-core = { workspace = true } +sp-debug-derive = { workspace = true } +sp-inherents = { workspace = true } +sp-io = { workspace = true, features = ["improved_panic_error_reporting"] } +sp-offchain = { workspace = true } +sp-runtime = { workspace = true } +sp-session = { workspace = true } +sp-std = { workspace = true } +sp-transaction-pool = { workspace = true } +sp-version = { workspace = true } +sp-weights = { workspace = true } +sp-genesis-builder = { workspace = true } + +# Frontier +fp-evm = { workspace = true } +fp-rpc = { workspace = true } +fp-self-contained = { workspace = true, features = ["serde"] } +pallet-ethereum = { workspace = true, features = ["forbid-evm-reentrancy"] } +pallet-evm = { workspace = true, features = ["forbid-evm-reentrancy"] } +pallet-evm-precompile-blake2 = { workspace = true } +pallet-evm-precompile-bn128 = { workspace = true } +pallet-evm-precompile-dispatch = { workspace = true } +pallet-evm-precompile-modexp = { workspace = true } +pallet-evm-precompile-sha3fips = { workspace = true } +pallet-evm-precompile-simple = { workspace = true } + +# Polkadot / XCM +orml-traits = { workspace = true } +orml-xcm-support = { workspace = true } +orml-xtokens = { workspace = true } +pallet-xcm = { workspace = true } +pallet-xcm-benchmarks = { workspace = true, optional = true } +polkadot-core-primitives = { workspace = true } +polkadot-parachain = { workspace = true } +polkadot-runtime-common = { workspace = true } +xcm = { workspace = true } +xcm-builder = { workspace = true } +xcm-executor = { workspace = true } +pallet-message-queue = { workspace = true } + +# Cumulus +cumulus-pallet-dmp-queue = { workspace = true } +cumulus-pallet-parachain-system = { workspace = true } +cumulus-pallet-xcm = { workspace = true } +cumulus-pallet-xcmp-queue = { workspace = true } +cumulus-primitives-core = { workspace = true } +cumulus-primitives-timestamp = { workspace = true } +cumulus-primitives-utility = { workspace = true } +parachain-info = { workspace = true } +parachains-common = { workspace = true } + +# Moonkit +async-backing-primitives = { workspace = true } +moonkit-xcm-primitives = { workspace = true } +nimbus-primitives = { workspace = true } +pallet-async-backing = { workspace = true } +pallet-author-inherent = { workspace = true } +pallet-author-slot-filter = { workspace = true } +pallet-relay-storage-roots = { workspace = true } + +# Benchmarking +frame-benchmarking = { workspace = true, optional = true } +frame-system-benchmarking = { workspace = true, optional = true } +frame-try-runtime = { workspace = true, optional = true } + +[build-dependencies] +substrate-wasm-builder = { workspace = true } + +[features] +default = ["std", "evm-tracing"] +std = [ + "account/std", + "async-backing-primitives/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", + "evm-tracing-events/std", + "fp-evm/std", + "fp-rpc/std", + "fp-self-contained/std", + "frame-benchmarking/std", + "frame-executive/std", + "frame-support/std", + "frame-system-rpc-runtime-api/std", + "frame-system/std", + "moonbeam-core-primitives/std", + "moonbeam-evm-tracer/std", + "moonbeam-relay-encoder/std", + "moonbeam-rpc-primitives-debug/std", + "moonbeam-rpc-primitives-txpool/std", + "moonbeam-runtime-common/std", + "moonbeam-xcm-benchmarks/std", + "moonkit-xcm-primitives/std", + "nimbus-primitives/std", + "orml-xtokens/std", + "pallet-asset-manager/std", + "pallet-assets/std", + "pallet-async-backing/std", + "pallet-author-inherent/std", + "pallet-author-mapping/std", + "pallet-author-slot-filter/std", + "pallet-balances/std", + "pallet-collective/std", + "pallet-conviction-voting/std", + "pallet-crowdloan-rewards/std", + "pallet-erc20-xcm-bridge/std", + "pallet-evm-chain-id/std", + "pallet-ethereum-xcm/std", + "pallet-ethereum/std", + "pallet-evm-precompile-author-mapping/std", + "pallet-evm-precompile-balances-erc20/std", + "pallet-evm-precompile-batch/std", + "pallet-evm-precompile-call-permit/std", + "pallet-evm-precompile-collective/std", + "pallet-evm-precompile-conviction-voting/std", + "pallet-evm-precompile-parachain-staking/std", + "pallet-evm-precompile-preimage/std", + "pallet-evm-precompile-randomness/std", + "pallet-evm-precompile-referenda/std", + "pallet-evm-precompile-relay-encoder/std", + "pallet-evm-precompile-relay-verifier/std", + "pallet-evm-precompile-xcm-transactor/std", + "pallet-evm-precompile-xcm-utils/std", + "pallet-evm-precompile-xtokens/std", + "pallet-evm/std", + "pallet-identity/std", + "pallet-maintenance-mode/std", + "pallet-migrations/std", + "pallet-moonbeam-lazy-migrations/std", + "pallet-moonbeam-orbiters/std", + "pallet-multisig/std", + "pallet-parachain-staking/std", + "pallet-precompile-benchmarks/std", + "pallet-preimage/std", + "pallet-proxy-genesis-companion/std", + "pallet-proxy/std", + "pallet-randomness/std", + "pallet-referenda/std", + "pallet-relay-storage-roots/std", + "pallet-root-testing/std", + "pallet-scheduler/std", + "pallet-society/std", + "pallet-timestamp/std", + "pallet-transaction-payment-rpc-runtime-api/std", + "pallet-transaction-payment/std", + "pallet-treasury/std", + "pallet-utility/std", + "pallet-whitelist/std", + "pallet-xcm-transactor/std", + "pallet-xcm/std", + "parachain-info/std", + "parachains-common/std", + "parity-scale-codec/std", + "precompile-utils/std", + "scale-info/std", + "session-keys-primitives/std", + "sp-api/std", + "sp-block-builder/std", + "sp-consensus-slots/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", + "sp-genesis-builder/std", + "strum/std", + "xcm-builder/std", + "xcm-executor/std", + "xcm-primitives/std", + "xcm/std", +] + +# Must be enabled for tracing runtimes only +evm-tracing = ["evm-tracing-events", "moonbeam-evm-tracer", "rlp", "sha3"] + +# Allow to print logs details (no wasm:stripped) +force-debug = ["sp-debug-derive/force-debug"] + +# Will be enabled by the `wasm-builder` when building the runtime for WASM. +runtime-wasm = [] + +# A feature that should be enabled when the runtime should be build for on-chain +# deployment. This will disable stuff that shouldn't be part of the on-chain wasm +# to make it smaller like logging for example. +on-chain-release-build = ["sp-api/disable-logging"] + +runtime-benchmarks = [ + "cumulus-pallet-parachain-system/runtime-benchmarks", + "cumulus-primitives-core/runtime-benchmarks", + "frame-benchmarking", + "frame-benchmarking/runtime-benchmarks", + "frame-support/runtime-benchmarks", + "frame-system-benchmarking/runtime-benchmarks", + "frame-system/runtime-benchmarks", + "hex-literal", + "moonbeam-relay-encoder/runtime-benchmarks", + "moonbeam-runtime-common/runtime-benchmarks", + "moonbeam-xcm-benchmarks/runtime-benchmarks", + "parachains-common/runtime-benchmarks", + "pallet-asset-manager/runtime-benchmarks", + "pallet-assets/runtime-benchmarks", + "pallet-author-inherent/runtime-benchmarks", + "pallet-author-mapping/runtime-benchmarks", + "pallet-author-slot-filter/runtime-benchmarks", + "pallet-balances/runtime-benchmarks", + "pallet-collective/runtime-benchmarks", + "pallet-conviction-voting/runtime-benchmarks", + "pallet-crowdloan-rewards/runtime-benchmarks", + "pallet-ethereum-xcm/runtime-benchmarks", + "pallet-ethereum/runtime-benchmarks", + "pallet-evm/runtime-benchmarks", + "pallet-identity/runtime-benchmarks", + "pallet-migrations/runtime-benchmarks", + "pallet-moonbeam-lazy-migrations/runtime-benchmarks", + "pallet-moonbeam-orbiters/runtime-benchmarks", + "pallet-multisig/runtime-benchmarks", + "pallet-parachain-staking/runtime-benchmarks", + "pallet-precompile-benchmarks/runtime-benchmarks", + "pallet-preimage/runtime-benchmarks", + "pallet-proxy/runtime-benchmarks", + "pallet-randomness/runtime-benchmarks", + "pallet-referenda/runtime-benchmarks", + "pallet-relay-storage-roots/runtime-benchmarks", + "pallet-scheduler/runtime-benchmarks", + "pallet-society/runtime-benchmarks", + "pallet-timestamp/runtime-benchmarks", + "pallet-treasury/runtime-benchmarks", + "pallet-utility/runtime-benchmarks", + "pallet-whitelist/runtime-benchmarks", + "pallet-xcm-benchmarks/runtime-benchmarks", + "pallet-xcm-transactor/runtime-benchmarks", + "pallet-xcm/runtime-benchmarks", + "session-keys-primitives/runtime-benchmarks", + "sp-runtime/runtime-benchmarks", + "xcm-builder/runtime-benchmarks", +] +try-runtime = [ + "cumulus-pallet-parachain-system/try-runtime", + "cumulus-pallet-xcmp-queue/try-runtime", + "cumulus-pallet-xcm/try-runtime", + "cumulus-pallet-dmp-queue/try-runtime", + "fp-self-contained/try-runtime", + "frame-executive/try-runtime", + "frame-system/try-runtime", + "frame-try-runtime", + "moonbeam-runtime-common/try-runtime", + "pallet-asset-manager/try-runtime", + "pallet-author-mapping/try-runtime", + "pallet-author-slot-filter/try-runtime", + "pallet-balances/try-runtime", + "pallet-collective/try-runtime", + "pallet-conviction-voting/try-runtime", + "pallet-maintenance-mode/try-runtime", + "pallet-migrations/try-runtime", + "pallet-moonbeam-lazy-migrations/try-runtime", + "pallet-parachain-staking/try-runtime", + "pallet-precompile-benchmarks/try-runtime", + "pallet-preimage/try-runtime", + "pallet-referenda/try-runtime", + "pallet-relay-storage-roots/try-runtime", + "pallet-root-testing/try-runtime", + "pallet-scheduler/try-runtime", + "pallet-society/try-runtime", + "pallet-timestamp/try-runtime", + "pallet-whitelist/try-runtime", + "pallet-message-queue/try-runtime", + "pallet-xcm/try-runtime", + "pallet-message-queue/try-runtime", + "pallet-utility/try-runtime", + "pallet-transaction-payment/try-runtime", + "parachain-info/try-runtime", + "pallet-evm-chain-id/try-runtime", + "parachain-info/try-runtime", + "pallet-evm/try-runtime", + "pallet-ethereum/try-runtime", + "pallet-treasury/try-runtime", + "pallet-author-inherent/try-runtime", + "pallet-crowdloan-rewards/try-runtime", + "pallet-proxy/try-runtime", + "pallet-identity/try-runtime", + "orml-xtokens/try-runtime", + "pallet-assets/try-runtime", + "pallet-async-backing/try-runtime", + "pallet-xcm-transactor/try-runtime", + "pallet-proxy-genesis-companion/try-runtime", + "pallet-moonbeam-orbiters/try-runtime", + "pallet-ethereum-xcm/try-runtime", + "pallet-randomness/try-runtime", + "pallet-whitelist/try-runtime", + "pallet-erc20-xcm-bridge/try-runtime", + "pallet-multisig/try-runtime", +] diff --git a/tracing/3001/runtime/moonriver/build.rs b/tracing/3001/runtime/moonriver/build.rs new file mode 100644 index 00000000..3934b9c5 --- /dev/null +++ b/tracing/3001/runtime/moonriver/build.rs @@ -0,0 +1,25 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +use substrate_wasm_builder::WasmBuilder; + +fn main() { + WasmBuilder::new() + .with_current_project() + .export_heap_base() + .import_memory() + .build() +} diff --git a/tracing/3001/runtime/moonriver/src/asset_config.rs b/tracing/3001/runtime/moonriver/src/asset_config.rs new file mode 100644 index 00000000..7ecc6bd1 --- /dev/null +++ b/tracing/3001/runtime/moonriver/src/asset_config.rs @@ -0,0 +1,217 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Asset configuration for Moonbase. +//! + +use super::{ + currency, governance, xcm_config, AccountId, AssetId, AssetManager, Assets, Balance, Balances, + OpenTechCommitteeInstance, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, + FOREIGN_ASSET_PRECOMPILE_ADDRESS_PREFIX, +}; + +use moonbeam_runtime_common::weights as moonbeam_weights; +use moonkit_xcm_primitives::AccountIdAssetIdConversion; + +use frame_support::{ + dispatch::GetDispatchInfo, + parameter_types, + traits::{AsEnsureOriginWithArg, ConstU128, ConstU32, EitherOfDiverse}, + weights::Weight, +}; +use frame_system::{EnsureNever, EnsureRoot}; +use sp_core::H160; + +use parity_scale_codec::{Compact, Decode, Encode}; +use scale_info::TypeInfo; + +use sp_std::{ + convert::{From, Into}, + prelude::*, +}; + +// Number of items that can be destroyed with our configured max extrinsic proof size. +// x = (a - b) / c where: +// a: maxExtrinsic proof size +// b: base proof size for destroy_accounts in pallet_assets weights +// c: proof size for each item +// 656.87 = (3_407_872 - 8232) / 5180 +const REMOVE_ITEMS_LIMIT: u32 = 656; + +// Not to disrupt the previous asset instance, we assign () to Foreign +pub type ForeignAssetInstance = (); + +// For foreign assets, these parameters dont matter much +// as this will only be called by root with the forced arguments +// No deposit is substracted with those methods +parameter_types! { + pub const AssetDeposit: Balance = 100 * currency::MOVR * currency::SUPPLY_FACTOR; + pub const ApprovalDeposit: Balance = 0; + pub const AssetsStringLimit: u32 = 50; + pub const MetadataDepositBase: Balance = currency::deposit(1,68); + pub const MetadataDepositPerByte: Balance = currency::deposit(0, 1); +} + +/// We allow Root and General Admin to execute privileged asset operations. +pub type AssetsForceOrigin = + EitherOfDiverse, governance::custom_origins::GeneralAdmin>; + +// Required for runtime benchmarks +pallet_assets::runtime_benchmarks_enabled! { + pub struct BenchmarkHelper; + impl pallet_assets::BenchmarkHelper for BenchmarkHelper + where + AssetIdParameter: From, + { + fn create_asset_id_parameter(id: u32) -> AssetIdParameter { + (id as u128).into() + } + } +} + +// Foreign assets +impl pallet_assets::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Balance = Balance; + type AssetId = AssetId; + type Currency = Balances; + type ForceOrigin = AssetsForceOrigin; + type AssetDeposit = AssetDeposit; + type MetadataDepositBase = MetadataDepositBase; + type MetadataDepositPerByte = MetadataDepositPerByte; + type ApprovalDeposit = ApprovalDeposit; + type StringLimit = AssetsStringLimit; + type Freezer = (); + type Extra = (); + type AssetAccountDeposit = ConstU128<{ currency::deposit(1, 18) }>; + type WeightInfo = moonbeam_weights::pallet_assets::WeightInfo; + type RemoveItemsLimit = ConstU32<{ REMOVE_ITEMS_LIMIT }>; + type AssetIdParameter = Compact; + type CreateOrigin = AsEnsureOriginWithArg>; + type CallbackHandle = (); + pallet_assets::runtime_benchmarks_enabled! { + type BenchmarkHelper = BenchmarkHelper; + } +} + +// We instruct how to register the Assets +// In this case, we tell it to Create an Asset in pallet-assets +pub struct AssetRegistrar; +use frame_support::{pallet_prelude::DispatchResult, transactional}; + +impl pallet_asset_manager::AssetRegistrar for AssetRegistrar { + #[transactional] + fn create_foreign_asset( + asset: AssetId, + min_balance: Balance, + metadata: AssetRegistrarMetadata, + is_sufficient: bool, + ) -> DispatchResult { + Assets::force_create( + RuntimeOrigin::root(), + asset.into(), + AssetManager::account_id(), + is_sufficient, + min_balance, + )?; + + // Lastly, the metadata + Assets::force_set_metadata( + RuntimeOrigin::root(), + asset.into(), + metadata.name, + metadata.symbol, + metadata.decimals, + metadata.is_frozen, + ) + } + + #[transactional] + fn destroy_foreign_asset(asset: AssetId) -> DispatchResult { + // Mark the asset as destroying + Assets::start_destroy(RuntimeOrigin::root(), asset.into()) + } + + fn destroy_asset_dispatch_info_weight(asset: AssetId) -> Weight { + // For us both of them (Foreign and Local) have the same annotated weight for a given + // witness + // We need to take the dispatch info from the destroy call, which is already annotated in + // the assets pallet + + // This is the dispatch info of destroy + RuntimeCall::Assets( + pallet_assets::Call::::start_destroy { + id: asset.into(), + }, + ) + .get_dispatch_info() + .weight + } +} + +#[derive(Clone, Default, Eq, Debug, PartialEq, Ord, PartialOrd, Encode, Decode, TypeInfo)] +pub struct AssetRegistrarMetadata { + pub name: Vec, + pub symbol: Vec, + pub decimals: u8, + pub is_frozen: bool, +} + +pub type ForeignAssetModifierOrigin = EitherOfDiverse< + EnsureRoot, + EitherOfDiverse< + pallet_collective::EnsureProportionMoreThan, + governance::custom_origins::GeneralAdmin, + >, +>; + +impl pallet_asset_manager::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Balance = Balance; + type AssetId = AssetId; + type AssetRegistrarMetadata = AssetRegistrarMetadata; + type ForeignAssetType = xcm_config::AssetType; + type AssetRegistrar = AssetRegistrar; + type ForeignAssetModifierOrigin = ForeignAssetModifierOrigin; + type WeightInfo = moonbeam_weights::pallet_asset_manager::WeightInfo; +} + +// Instruct how to go from an H160 to an AssetID +// We just take the lowest 128 bits +impl AccountIdAssetIdConversion for Runtime { + /// The way to convert an account to assetId is by ensuring that the prefix is 0XFFFFFFFF + /// and by taking the lowest 128 bits as the assetId + fn account_to_asset_id(account: AccountId) -> Option<(Vec, AssetId)> { + let h160_account: H160 = account.into(); + let mut data = [0u8; 16]; + let (prefix_part, id_part) = h160_account.as_fixed_bytes().split_at(4); + if prefix_part == FOREIGN_ASSET_PRECOMPILE_ADDRESS_PREFIX { + data.copy_from_slice(id_part); + let asset_id: AssetId = u128::from_be_bytes(data).into(); + Some((prefix_part.to_vec(), asset_id)) + } else { + None + } + } + + // The opposite conversion + fn asset_id_to_account(prefix: &[u8], asset_id: AssetId) -> AccountId { + let mut data = [0u8; 20]; + data[0..4].copy_from_slice(prefix); + data[4..20].copy_from_slice(&asset_id.to_be_bytes()); + AccountId::from(data) + } +} diff --git a/tracing/3001/runtime/moonriver/src/governance/councils.rs b/tracing/3001/runtime/moonriver/src/governance/councils.rs new file mode 100644 index 00000000..1c51423e --- /dev/null +++ b/tracing/3001/runtime/moonriver/src/governance/councils.rs @@ -0,0 +1,61 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Councils for Gov1 and Gov2 + +use super::*; + +pub type TreasuryCouncilInstance = pallet_collective::Instance3; +pub type OpenTechCommitteeInstance = pallet_collective::Instance4; + +parameter_types! { + // TODO: Check value of this parameter + pub MaxProposalWeight: Weight = Perbill::from_percent(50) * RuntimeBlockWeights::get().max_block; +} + +impl pallet_collective::Config for Runtime { + type RuntimeOrigin = RuntimeOrigin; + type RuntimeEvent = RuntimeEvent; + type Proposal = RuntimeCall; + /// The maximum amount of time (in blocks) for treasury council members to vote on motions. + /// Motions may end in fewer blocks if enough votes are cast to determine the result. + type MotionDuration = ConstU32<{ 3 * DAYS }>; + /// The maximum number of proposals that can be open in the treasury council at once. + type MaxProposals = ConstU32<20>; + /// The maximum number of treasury council members. + type MaxMembers = ConstU32<9>; + type DefaultVote = pallet_collective::MoreThanMajorityThenPrimeDefaultVote; + type WeightInfo = moonbeam_weights::pallet_collective::WeightInfo; + type SetMembersOrigin = referenda::GeneralAdminOrRoot; + type MaxProposalWeight = MaxProposalWeight; +} + +impl pallet_collective::Config for Runtime { + type RuntimeOrigin = RuntimeOrigin; + type RuntimeEvent = RuntimeEvent; + type Proposal = RuntimeCall; + /// The maximum amount of time (in blocks) for technical committee members to vote on motions. + /// Motions may end in fewer blocks if enough votes are cast to determine the result. + type MotionDuration = ConstU32<{ 14 * DAYS }>; + /// The maximum number of proposals that can be open in the technical committee at once. + type MaxProposals = ConstU32<100>; + /// The maximum number of technical committee members. + type MaxMembers = ConstU32<100>; + type DefaultVote = pallet_collective::MoreThanMajorityThenPrimeDefaultVote; + type WeightInfo = moonbeam_weights::pallet_collective::WeightInfo; + type SetMembersOrigin = referenda::GeneralAdminOrRoot; + type MaxProposalWeight = MaxProposalWeight; +} diff --git a/tracing/3001/runtime/moonriver/src/governance/mod.rs b/tracing/3001/runtime/moonriver/src/governance/mod.rs new file mode 100644 index 00000000..36a2c6be --- /dev/null +++ b/tracing/3001/runtime/moonriver/src/governance/mod.rs @@ -0,0 +1,29 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Governance configurations + +pub mod councils; +pub mod referenda; + +use super::*; + +mod origins; +pub use origins::{ + custom_origins, GeneralAdmin, ReferendumCanceller, ReferendumKiller, WhitelistedCaller, +}; +mod tracks; +pub use tracks::TracksInfo; diff --git a/tracing/3001/runtime/moonriver/src/governance/origins.rs b/tracing/3001/runtime/moonriver/src/governance/origins.rs new file mode 100644 index 00000000..ef4675d6 --- /dev/null +++ b/tracing/3001/runtime/moonriver/src/governance/origins.rs @@ -0,0 +1,84 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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. + +//! Custom origins for governance interventions. +#![cfg_attr(not(feature = "std"), no_std)] +pub use custom_origins::*; + +#[frame_support::pallet] +pub mod custom_origins { + use frame_support::pallet_prelude::*; + use strum_macros::EnumString; + + #[pallet::config] + pub trait Config: frame_system::Config {} + + #[pallet::pallet] + pub struct Pallet(_); + + #[derive( + PartialEq, Eq, Clone, MaxEncodedLen, Encode, Decode, TypeInfo, RuntimeDebug, EnumString, + )] + #[strum(serialize_all = "snake_case")] + #[pallet::origin] + pub enum Origin { + /// Origin able to dispatch a whitelisted call. + WhitelistedCaller, + /// General admin + GeneralAdmin, + /// Origin able to cancel referenda. + ReferendumCanceller, + /// Origin able to kill referenda. + ReferendumKiller, + /// Fast General Admin + FastGeneralAdmin, + } + + macro_rules! decl_unit_ensures { + ( $name:ident: $success_type:ty = $success:expr ) => { + pub struct $name; + impl> + From> + EnsureOrigin for $name + { + type Success = $success_type; + fn try_origin(o: O) -> Result { + o.into().and_then(|o| match o { + Origin::$name => Ok($success), + r => Err(O::from(r)), + }) + } + #[cfg(feature = "runtime-benchmarks")] + fn try_successful_origin() -> Result { + Ok(O::from(Origin::$name)) + } + } + }; + ( $name:ident ) => { decl_unit_ensures! { $name : () = () } }; + ( $name:ident: $success_type:ty = $success:expr, $( $rest:tt )* ) => { + decl_unit_ensures! { $name: $success_type = $success } + decl_unit_ensures! { $( $rest )* } + }; + ( $name:ident, $( $rest:tt )* ) => { + decl_unit_ensures! { $name } + decl_unit_ensures! { $( $rest )* } + }; + () => {} + } + decl_unit_ensures!( + ReferendumCanceller, + ReferendumKiller, + WhitelistedCaller, + GeneralAdmin, + FastGeneralAdmin, + ); +} diff --git a/tracing/3001/runtime/moonriver/src/governance/referenda.rs b/tracing/3001/runtime/moonriver/src/governance/referenda.rs new file mode 100644 index 00000000..8177e88e --- /dev/null +++ b/tracing/3001/runtime/moonriver/src/governance/referenda.rs @@ -0,0 +1,100 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! # Gov2 config +//! Includes runtime configs for these substrate pallets: +//! 1. pallet-conviction-voting +//! 2. pallet-whitelist +//! 3. pallet-referenda + +use super::*; +use crate::currency::*; +use frame_support::traits::{EitherOf, MapSuccess}; +use frame_system::EnsureRootWithSuccess; +use sp_runtime::traits::Replace; + +parameter_types! { + pub const VoteLockingPeriod: BlockNumber = 1 * DAYS; +} + +impl pallet_conviction_voting::Config for Runtime { + type WeightInfo = moonbeam_weights::pallet_conviction_voting::WeightInfo; + type RuntimeEvent = RuntimeEvent; + type Currency = Balances; + type Polls = Referenda; + type MaxTurnout = frame_support::traits::TotalIssuanceOf; + // Maximum number of concurrent votes an account may have + type MaxVotes = ConstU32<20>; + // Minimum period of vote locking + type VoteLockingPeriod = VoteLockingPeriod; +} + +parameter_types! { + pub const AlarmInterval: BlockNumber = 1; + pub const SubmissionDeposit: Balance = 10 * MOVR * SUPPLY_FACTOR; + pub const UndecidingTimeout: BlockNumber = 21 * DAYS; +} + +// Origin for general admin or root +pub type GeneralAdminOrRoot = EitherOf, origins::GeneralAdmin>; +// The policy allows for Root or FastGeneralAdmin. +pub type FastGeneralAdminOrRoot = EitherOf, origins::FastGeneralAdmin>; + +impl custom_origins::Config for Runtime {} + +// The purpose of this pallet is to queue calls to be dispatched as by root later => the Dispatch +// origin corresponds to the Gov2 Whitelist track. +impl pallet_whitelist::Config for Runtime { + type WeightInfo = moonbeam_weights::pallet_whitelist::WeightInfo; + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + type WhitelistOrigin = EitherOf< + EnsureRootWithSuccess>, + MapSuccess< + pallet_collective::EnsureProportionAtLeast< + Self::AccountId, + OpenTechCommitteeInstance, + 5, + 9, + >, + Replace>, + >, + >; + type DispatchWhitelistedOrigin = EitherOf, WhitelistedCaller>; + type Preimages = Preimage; +} + +pallet_referenda::impl_tracksinfo_get!(TracksInfo, Balance, BlockNumber); + +impl pallet_referenda::Config for Runtime { + type WeightInfo = moonbeam_weights::pallet_referenda::WeightInfo; + type RuntimeCall = RuntimeCall; + type RuntimeEvent = RuntimeEvent; + type Scheduler = Scheduler; + type Currency = Balances; + type SubmitOrigin = frame_system::EnsureSigned; + type CancelOrigin = EitherOf, ReferendumCanceller>; + type KillOrigin = EitherOf, ReferendumKiller>; + type Slash = Treasury; + type Votes = pallet_conviction_voting::VotesOf; + type Tally = pallet_conviction_voting::TallyOf; + type SubmissionDeposit = SubmissionDeposit; + type MaxQueued = ConstU32<100>; + type UndecidingTimeout = UndecidingTimeout; + type AlarmInterval = AlarmInterval; + type Tracks = TracksInfo; + type Preimages = Preimage; +} diff --git a/tracing/3001/runtime/moonriver/src/governance/tracks.rs b/tracing/3001/runtime/moonriver/src/governance/tracks.rs new file mode 100644 index 00000000..8dddbeca --- /dev/null +++ b/tracing/3001/runtime/moonriver/src/governance/tracks.rs @@ -0,0 +1,193 @@ +// Copyright 2022 Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot 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. + +// Polkadot 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 Polkadot. If not, see . + +//! Track configurations for governance. + +use super::*; +use crate::currency::{KILOMOVR, MOVR, SUPPLY_FACTOR}; +use sp_std::str::FromStr; + +const fn percent(x: i32) -> sp_runtime::FixedI64 { + sp_runtime::FixedI64::from_rational(x as u128, 100) +} +const fn permill(x: i32) -> sp_runtime::FixedI64 { + sp_runtime::FixedI64::from_rational(x as u128, 1000) +} + +use pallet_referenda::Curve; +const TRACKS_DATA: [(u16, pallet_referenda::TrackInfo); 6] = [ + ( + 0, + pallet_referenda::TrackInfo { + // Name of this track. + name: "root", + // A limit for the number of referenda on this track that can be being decided at once. + // For Root origin this should generally be just one. + max_deciding: 5, + // Amount that must be placed on deposit before a decision can be made. + decision_deposit: 100 * KILOMOVR * SUPPLY_FACTOR, + // Amount of time this must be submitted for before a decision can be made. + prepare_period: 1 * DAYS, + // Amount of time that a decision may take to be approved prior to cancellation. + decision_period: 14 * DAYS, + // Amount of time that the approval criteria must hold before it can be approved. + confirm_period: 1 * DAYS, + // Minimum amount of time that an approved proposal must be in the dispatch queue. + min_enactment_period: 1 * DAYS, + // Minimum aye votes as percentage of overall conviction-weighted votes needed for + // approval as a function of time into decision period. + min_approval: Curve::make_reciprocal(4, 14, percent(80), percent(50), percent(100)), + // Minimum pre-conviction aye-votes ("support") as percentage of overall population that + // is needed for approval as a function of time into decision period. + min_support: Curve::make_linear(14, 14, permill(5), percent(25)), + }, + ), + ( + 1, + pallet_referenda::TrackInfo { + name: "whitelisted_caller", + max_deciding: 100, + decision_deposit: 10 * KILOMOVR * SUPPLY_FACTOR, + prepare_period: 10 * MINUTES, + decision_period: 14 * DAYS, + confirm_period: 10 * MINUTES, + min_enactment_period: 30 * MINUTES, + min_approval: Curve::make_reciprocal(1, 14, percent(96), percent(50), percent(100)), + min_support: Curve::make_reciprocal(1, 14 * 24, percent(1), percent(0), percent(2)), + }, + ), + ( + 2, + pallet_referenda::TrackInfo { + name: "general_admin", + max_deciding: 10, + decision_deposit: 500 * MOVR * SUPPLY_FACTOR, + prepare_period: 1 * HOURS, + decision_period: 14 * DAYS, + confirm_period: 1 * DAYS, + min_enactment_period: 1 * DAYS, + min_approval: Curve::make_reciprocal(4, 14, percent(80), percent(50), percent(100)), + min_support: Curve::make_reciprocal(7, 14, percent(10), percent(0), percent(50)), + }, + ), + ( + 3, + pallet_referenda::TrackInfo { + name: "referendum_canceller", + max_deciding: 20, + decision_deposit: 10 * KILOMOVR * SUPPLY_FACTOR, + prepare_period: 1 * HOURS, + decision_period: 14 * DAYS, + confirm_period: 3 * HOURS, + min_enactment_period: 10 * MINUTES, + min_approval: Curve::make_reciprocal(1, 14, percent(96), percent(50), percent(100)), + min_support: Curve::make_reciprocal(1, 14, percent(1), percent(0), percent(10)), + }, + ), + ( + 4, + pallet_referenda::TrackInfo { + name: "referendum_killer", + max_deciding: 100, + decision_deposit: 20 * KILOMOVR * SUPPLY_FACTOR, + prepare_period: 1 * HOURS, + decision_period: 14 * DAYS, + confirm_period: 3 * HOURS, + min_enactment_period: 10 * MINUTES, + min_approval: Curve::make_reciprocal(1, 14, percent(96), percent(50), percent(100)), + min_support: Curve::make_reciprocal(1, 14, percent(1), percent(0), percent(10)), + }, + ), + ( + 5, + pallet_referenda::TrackInfo { + name: "fast_general_admin", + max_deciding: 10, + decision_deposit: 500 * MOVR * SUPPLY_FACTOR, + prepare_period: 1 * HOURS, + decision_period: 14 * DAYS, + confirm_period: 3 * HOURS, + min_enactment_period: 10 * MINUTES, + min_approval: Curve::make_reciprocal(4, 14, percent(80), percent(50), percent(100)), + min_support: Curve::make_reciprocal(5, 14, percent(1), percent(0), percent(50)), + }, + ), +]; + +pub struct TracksInfo; +impl pallet_referenda::TracksInfo for TracksInfo { + type Id = u16; + type RuntimeOrigin = ::PalletsOrigin; + fn tracks() -> &'static [(Self::Id, pallet_referenda::TrackInfo)] { + &TRACKS_DATA[..] + } + fn track_for(id: &Self::RuntimeOrigin) -> Result { + if let Ok(system_origin) = frame_system::RawOrigin::try_from(id.clone()) { + match system_origin { + frame_system::RawOrigin::Root => { + if let Some((track_id, _)) = Self::tracks() + .into_iter() + .find(|(_, track)| track.name == "root") + { + Ok(*track_id) + } else { + Err(()) + } + } + _ => Err(()), + } + } else if let Ok(custom_origin) = custom_origins::Origin::try_from(id.clone()) { + if let Some((track_id, _)) = Self::tracks().into_iter().find(|(_, track)| { + if let Ok(track_custom_origin) = custom_origins::Origin::from_str(track.name) { + track_custom_origin == custom_origin + } else { + false + } + }) { + Ok(*track_id) + } else { + Err(()) + } + } else { + Err(()) + } + } +} + +#[test] +/// To ensure voters are always locked into their vote +fn vote_locking_always_longer_than_enactment_period() { + for (_, track) in TRACKS_DATA { + assert!( + ::VoteLockingPeriod::get() + >= track.min_enactment_period, + "Track {} has enactment period {} < vote locking period {}", + track.name, + track.min_enactment_period, + ::VoteLockingPeriod::get(), + ); + } +} + +#[test] +fn all_tracks_have_origins() { + for (_, track) in TRACKS_DATA { + // check name.into() is successful either converts into "root" or custom origin + let track_is_root = track.name == "root"; + let track_has_custom_origin = custom_origins::Origin::from_str(track.name).is_ok(); + assert!(track_is_root || track_has_custom_origin); + } +} diff --git a/tracing/3001/runtime/moonriver/src/lib.rs b/tracing/3001/runtime/moonriver/src/lib.rs new file mode 100644 index 00000000..73ae546a --- /dev/null +++ b/tracing/3001/runtime/moonriver/src/lib.rs @@ -0,0 +1,1816 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! The Moonriver Runtime. +//! +//! Primary features of this runtime include: +//! * Ethereum compatibility +//! * Moonriver tokenomics + +#![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")); + +use account::AccountId20; +use cumulus_pallet_parachain_system::{RelayChainStateProof, RelaychainDataProvider}; +use fp_rpc::TransactionStatus; + +// Re-export required by get! macro. +use cumulus_primitives_core::{relay_chain, AggregateMessageOrigin}; +#[cfg(feature = "std")] +pub use fp_evm::GenesisAccount; +pub use frame_support::traits::Get; +use frame_support::{ + construct_runtime, + dispatch::{DispatchClass, GetDispatchInfo, PostDispatchInfo}, + ensure, + pallet_prelude::DispatchResult, + parameter_types, + traits::{ + fungible::{Balanced, Credit, HoldConsideration, Inspect}, + tokens::imbalance::ResolveTo, + tokens::{PayFromAccount, UnityAssetBalanceConversion}, + ConstBool, ConstU128, ConstU16, ConstU32, ConstU64, ConstU8, Contains, EitherOfDiverse, + EqualPrivilegeOnly, Imbalance, InstanceFilter, LinearStoragePrice, OnFinalize, + OnUnbalanced, + }, + weights::{ + constants::{RocksDbWeight, WEIGHT_REF_TIME_PER_SECOND}, + ConstantMultiplier, Weight, WeightToFeeCoefficient, WeightToFeeCoefficients, + WeightToFeePolynomial, + }, + PalletId, +}; +use frame_system::{EnsureRoot, EnsureSigned}; +pub use moonbeam_core_primitives::{ + AccountId, AccountIndex, Address, AssetId, Balance, BlockNumber, DigestItem, Hash, Header, + Index, Signature, +}; +use moonbeam_rpc_primitives_txpool::TxPoolResponse; +use moonbeam_runtime_common::{ + timestamp::{ConsensusHookWrapperForRelayTimestamp, RelayTimestamp}, + weights as moonbeam_weights, +}; +use pallet_ethereum::Call::transact; +use pallet_ethereum::{PostLogContent, Transaction as EthereumTransaction}; +use pallet_evm::{ + Account as EVMAccount, EVMFungibleAdapter, EnsureAddressNever, EnsureAddressRoot, + FeeCalculator, GasWeightMapping, IdentityAddressMapping, + OnChargeEVMTransaction as OnChargeEVMTransactionT, Runner, +}; +pub use pallet_parachain_staking::{weights::WeightInfo, InflationInfo, Range}; +use pallet_transaction_payment::{FungibleAdapter, Multiplier, TargetedFeeAdjustment}; +use pallet_treasury::TreasuryAccountId; +use parity_scale_codec::{Decode, Encode, MaxEncodedLen}; +use scale_info::TypeInfo; +use sp_api::impl_runtime_apis; +use sp_consensus_slots::Slot; +use sp_core::{OpaqueMetadata, H160, H256, U256}; +use sp_runtime::{ + create_runtime_str, generic, impl_opaque_keys, + serde::{Deserialize, Serialize}, + traits::{ + BlakeTwo256, Block as BlockT, DispatchInfoOf, Dispatchable, IdentityLookup, + PostDispatchInfoOf, UniqueSaturatedInto, Zero, + }, + transaction_validity::{ + InvalidTransaction, TransactionSource, TransactionValidity, TransactionValidityError, + }, + ApplyExtrinsicResult, DispatchErrorWithPostInfo, FixedPointNumber, Perbill, Permill, + Perquintill, SaturatedConversion, +}; +use sp_std::{convert::TryFrom, prelude::*}; + +use smallvec::smallvec; +#[cfg(feature = "std")] +use sp_version::NativeVersion; +use sp_version::RuntimeVersion; + +use nimbus_primitives::CanAuthor; + +pub use precompiles::{ + MoonriverPrecompiles, PrecompileName, FOREIGN_ASSET_PRECOMPILE_ADDRESS_PREFIX, +}; + +#[cfg(any(feature = "std", test))] +pub use sp_runtime::BuildStorage; + +pub type Precompiles = MoonriverPrecompiles; + +pub mod asset_config; +pub mod governance; +pub mod xcm_config; + +mod migrations; +mod precompiles; + +pub use governance::councils::*; + +/// MOVR, the native token, uses 18 decimals of precision. +pub mod currency { + use super::Balance; + + // Provide a common factor between runtimes based on a supply of 10_000_000 tokens. + pub const SUPPLY_FACTOR: Balance = 1; + + pub const WEI: Balance = 1; + pub const KILOWEI: Balance = 1_000; + pub const MEGAWEI: Balance = 1_000_000; + pub const GIGAWEI: Balance = 1_000_000_000; + pub const MICROMOVR: Balance = 1_000_000_000_000; + pub const MILLIMOVR: Balance = 1_000_000_000_000_000; + pub const MOVR: Balance = 1_000_000_000_000_000_000; + pub const KILOMOVR: Balance = 1_000_000_000_000_000_000_000; + + pub const TRANSACTION_BYTE_FEE: Balance = 1 * GIGAWEI * SUPPLY_FACTOR; + pub const STORAGE_BYTE_FEE: Balance = 100 * MICROMOVR * SUPPLY_FACTOR; + pub const WEIGHT_FEE: Balance = 50 * KILOWEI * SUPPLY_FACTOR; + + pub const fn deposit(items: u32, bytes: u32) -> Balance { + items as Balance * 1 * MOVR * SUPPLY_FACTOR + (bytes as Balance) * STORAGE_BYTE_FEE + } +} + +/// Maximum weight per block +pub const MAXIMUM_BLOCK_WEIGHT: Weight = Weight::from_parts(WEIGHT_REF_TIME_PER_SECOND, u64::MAX) + .saturating_mul(1) + .set_proof_size(relay_chain::MAX_POV_SIZE as u64); + +pub const MILLISECS_PER_BLOCK: u64 = 6_000; +pub const MINUTES: BlockNumber = 60_000 / (MILLISECS_PER_BLOCK as BlockNumber); +pub const HOURS: BlockNumber = MINUTES * 60; +pub const DAYS: BlockNumber = HOURS * 24; +pub const WEEKS: BlockNumber = DAYS * 7; +/// Opaque types. These are used by the CLI to instantiate machinery that don't need to know +/// the specifics of the runtime. They can then be made to be agnostic over specific formats +/// of data like extrinsics, allowing for them to continue syncing the network through upgrades +/// to even the core datastructures. +pub mod opaque { + use super::*; + + pub use sp_runtime::OpaqueExtrinsic as UncheckedExtrinsic; + pub type Block = generic::Block; + + impl_opaque_keys! { + pub struct SessionKeys { + pub nimbus: AuthorInherent, + pub vrf: session_keys_primitives::VrfSessionKey, + } + } +} + +/// This runtime version. +/// The spec_version is composed of 2x2 digits. The first 2 digits represent major changes +/// that can't be skipped, such as data migration upgrades. The last 2 digits represent minor +/// changes which can be skipped. +#[sp_version::runtime_version] +pub const VERSION: RuntimeVersion = RuntimeVersion { + spec_name: create_runtime_str!("moonriver"), + impl_name: create_runtime_str!("moonriver"), + authoring_version: 3, + spec_version: 3001, + impl_version: 0, + apis: RUNTIME_API_VERSIONS, + transaction_version: 2, + state_version: 0, +}; + +/// 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(), + } +} + +const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(75); +pub const NORMAL_WEIGHT: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_mul(3).saturating_div(4); +// Here we assume Ethereum's base fee of 21000 gas and convert to weight, but we +// subtract roughly the cost of a balance transfer from it (about 1/3 the cost) +// and some cost to account for per-byte-fee. +// TODO: we should use benchmarking's overhead feature to measure this +pub const EXTRINSIC_BASE_WEIGHT: Weight = Weight::from_parts(10000 * WEIGHT_PER_GAS, 0); + +pub struct RuntimeBlockWeights; +impl Get for RuntimeBlockWeights { + fn get() -> frame_system::limits::BlockWeights { + frame_system::limits::BlockWeights::builder() + .for_class(DispatchClass::Normal, |weights| { + weights.base_extrinsic = EXTRINSIC_BASE_WEIGHT; + weights.max_total = NORMAL_WEIGHT.into(); + }) + .for_class(DispatchClass::Operational, |weights| { + weights.max_total = MAXIMUM_BLOCK_WEIGHT.into(); + weights.reserved = (MAXIMUM_BLOCK_WEIGHT - NORMAL_WEIGHT).into(); + }) + .avg_block_initialization(Perbill::from_percent(10)) + .build() + .expect("Provided BlockWeight definitions are valid, qed") + } +} + +parameter_types! { + pub const Version: RuntimeVersion = VERSION; + /// We allow for 5 MB blocks. + pub BlockLength: frame_system::limits::BlockLength = frame_system::limits::BlockLength + ::max_with_normal_ratio(5 * 1024 * 1024, NORMAL_DISPATCH_RATIO); +} + +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 = IdentityLookup; + /// The index type for storing how many extrinsics an account has signed. + type Nonce = Index; + /// The index type for blocks. + type Block = Block; + /// The hashing algorithm used. + type Hashing = BlakeTwo256; + /// The output of the `Hashing` function. + type Hash = H256; + /// The ubiquitous event type. + type RuntimeEvent = RuntimeEvent; + /// The ubiquitous origin type. + type RuntimeOrigin = RuntimeOrigin; + /// The aggregated RuntimeTask type. + type RuntimeTask = RuntimeTask; + /// Maximum number of block number to block hash mappings to keep (oldest pruned first). + type BlockHashCount = ConstU32<256>; + /// Maximum weight of each block. With a default weight system of 1byte == 1weight, 4mb is ok. + type BlockWeights = RuntimeBlockWeights; + /// Maximum size of all encoded transactions (in bytes) that are allowed in one block. + type BlockLength = BlockLength; + /// Runtime version. + type Version = Version; + type PalletInfo = PalletInfo; + type AccountData = pallet_balances::AccountData; + type OnNewAccount = (); + type OnKilledAccount = (); + type DbWeight = RocksDbWeight; + type BaseCallFilter = MaintenanceMode; + type SystemWeightInfo = (); + /// This is used as an identifier of the chain. 42 is the generic substrate prefix. + type SS58Prefix = ConstU16<1285>; + type OnSetCode = cumulus_pallet_parachain_system::ParachainSetCode; + type MaxConsumers = frame_support::traits::ConstU32<16>; +} + +impl pallet_utility::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + type PalletsOrigin = OriginCaller; + type WeightInfo = moonbeam_weights::pallet_utility::WeightInfo; +} + +impl pallet_timestamp::Config for Runtime { + /// A timestamp: milliseconds since the unix epoch. + type Moment = u64; + type OnTimestampSet = (); + type MinimumPeriod = ConstU64<3000>; + type WeightInfo = moonbeam_weights::pallet_timestamp::WeightInfo; +} + +impl pallet_balances::Config for Runtime { + type MaxReserves = ConstU32<50>; + type ReserveIdentifier = [u8; 4]; + type MaxLocks = ConstU32<50>; + /// The type for recording an account's balance. + type Balance = Balance; + /// The ubiquitous event type. + type RuntimeEvent = RuntimeEvent; + type DustRemoval = (); + type ExistentialDeposit = ConstU128<0>; + type AccountStore = System; + type FreezeIdentifier = (); + type MaxFreezes = ConstU32<0>; + type RuntimeHoldReason = RuntimeHoldReason; + type RuntimeFreezeReason = RuntimeFreezeReason; + type WeightInfo = moonbeam_weights::pallet_balances::WeightInfo; +} + +pub struct DealWithFees(sp_std::marker::PhantomData); +impl OnUnbalanced>> for DealWithFees +where + R: pallet_balances::Config + pallet_treasury::Config, +{ + // this seems to be called for substrate-based transactions + fn on_unbalanceds( + mut fees_then_tips: impl Iterator>>, + ) { + if let Some(fees) = fees_then_tips.next() { + // for fees, 80% are burned, 20% to the treasury + let (_, to_treasury) = fees.ration(80, 20); + // Balances pallet automatically burns dropped Credits by decreasing + // total_supply accordingly + ResolveTo::, pallet_balances::Pallet>::on_unbalanced( + to_treasury, + ); + + // handle tip if there is one + if let Some(tip) = fees_then_tips.next() { + // for now we use the same burn/treasury strategy used for regular fees + let (_, to_treasury) = tip.ration(80, 20); + ResolveTo::, pallet_balances::Pallet>::on_unbalanced( + to_treasury, + ); + } + } + } + + // this is called from pallet_evm for Ethereum-based transactions + // (technically, it calls on_unbalanced, which calls this when non-zero) + fn on_nonzero_unbalanced(amount: Credit>) { + // Balances pallet automatically burns dropped Credits by decreasing + // total_supply accordingly + let (_, to_treasury) = amount.ration(80, 20); + ResolveTo::, pallet_balances::Pallet>::on_unbalanced(to_treasury); + } +} + +pub struct LengthToFee; +impl WeightToFeePolynomial for LengthToFee { + type Balance = Balance; + + fn polynomial() -> WeightToFeeCoefficients { + smallvec![ + WeightToFeeCoefficient { + degree: 1, + coeff_frac: Perbill::zero(), + coeff_integer: currency::TRANSACTION_BYTE_FEE, + negative: false, + }, + WeightToFeeCoefficient { + degree: 3, + coeff_frac: Perbill::zero(), + coeff_integer: 1 * currency::SUPPLY_FACTOR, + negative: false, + }, + ] + } +} + +impl pallet_transaction_payment::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type OnChargeTransaction = FungibleAdapter>; + type OperationalFeeMultiplier = ConstU8<5>; + type WeightToFee = ConstantMultiplier>; + type LengthToFee = LengthToFee; + type FeeMultiplierUpdate = SlowAdjustingFeeUpdate; +} + +impl pallet_evm_chain_id::Config for Runtime {} + +/// Current approximation of the gas/s consumption considering +/// EVM execution over compiled WASM (on 4.4Ghz CPU). +/// Given the 1000ms Weight, from which 75% only are used for transactions, +/// the total EVM execution gas limit is: GAS_PER_SECOND * 1 * 0.75 ~= 30_000_000. +pub const GAS_PER_SECOND: u64 = 40_000_000; + +/// Approximate ratio of the amount of Weight per Gas. +/// u64 works for approximations because Weight is a very small unit compared to gas. +pub const WEIGHT_PER_GAS: u64 = WEIGHT_REF_TIME_PER_SECOND / GAS_PER_SECOND; + +parameter_types! { + pub BlockGasLimit: U256 + = U256::from(NORMAL_DISPATCH_RATIO * MAXIMUM_BLOCK_WEIGHT.ref_time() / WEIGHT_PER_GAS); + /// The portion of the `NORMAL_DISPATCH_RATIO` that we adjust the fees with. Blocks filled less + /// than this will decrease the weight and more will increase. + pub const TargetBlockFullness: Perquintill = Perquintill::from_percent(35); + /// The adjustment variable of the runtime. Higher values will cause `TargetBlockFullness` to + /// change the fees more rapidly. This low value causes changes to occur slowly over time. + pub AdjustmentVariable: Multiplier = Multiplier::saturating_from_rational(4, 1_000); + /// Minimum amount of the multiplier. This value cannot be too low. A test case should ensure + /// that combined with `AdjustmentVariable`, we can recover from the minimum. + /// See `multiplier_can_grow_from_zero` in integration_tests.rs. + /// This value is currently only used by pallet-transaction-payment as an assertion that the + /// next multiplier is always > min value. + pub MinimumMultiplier: Multiplier = Multiplier::from(1u128); + /// Maximum multiplier. We pick a value that is expensive but not impossibly so; it should act + /// as a safety net. + pub MaximumMultiplier: Multiplier = Multiplier::from(100_000u128); + pub PrecompilesValue: MoonriverPrecompiles = MoonriverPrecompiles::<_>::new(); + pub WeightPerGas: Weight = Weight::from_parts(WEIGHT_PER_GAS, 0); + /// The amount of gas per pov. A ratio of 16 if we convert ref_time to gas and we compare + /// it with the pov_size for a block. E.g. + /// ceil( + /// (max_extrinsic.ref_time() / max_extrinsic.proof_size()) / WEIGHT_PER_GAS + /// ) + /// We should re-check `xcm_config::Erc20XcmBridgeTransferGasLimit` when changing this value + pub const GasLimitPovSizeRatio: u64 = 8; + /// The amount of gas per storage (in bytes): BLOCK_GAS_LIMIT / BLOCK_STORAGE_LIMIT + /// The current definition of BLOCK_STORAGE_LIMIT is 80 KB, resulting in a value of 366. + pub GasLimitStorageGrowthRatio: u64 = 366; +} + +pub struct TransactionPaymentAsGasPrice; +impl FeeCalculator for TransactionPaymentAsGasPrice { + fn min_gas_price() -> (U256, Weight) { + // note: transaction-payment differs from EIP-1559 in that its tip and length fees are not + // scaled by the multiplier, which means its multiplier will be overstated when + // applied to an ethereum transaction + // note: transaction-payment uses both a congestion modifier (next_fee_multiplier, which is + // updated once per block in on_finalize) and a 'WeightToFee' implementation. Our + // runtime implements this as a 'ConstantModifier', so we can get away with a simple + // multiplication here. + // It is imperative that `saturating_mul_int` be performed as late as possible in the + // expression since it involves fixed point multiplication with a division by a fixed + // divisor. This leads to truncation and subsequent precision loss if performed too early. + // This can lead to min_gas_price being same across blocks even if the multiplier changes. + // There's still some precision loss when the final `gas_price` (used_gas * min_gas_price) + // is computed in frontier, but that's currently unavoidable. + let min_gas_price = TransactionPayment::next_fee_multiplier() + .saturating_mul_int(currency::WEIGHT_FEE.saturating_mul(WEIGHT_PER_GAS as u128)); + ( + min_gas_price.into(), + ::DbWeight::get().reads(1), + ) + } +} + +/// Parameterized slow adjusting fee updated based on +/// https://w3f-research.readthedocs.io/en/latest/polkadot/overview/2-token-economics.html#-2.-slow-adjusting-mechanism // editorconfig-checker-disable-line +/// +/// The adjustment algorithm boils down to: +/// +/// diff = (previous_block_weight - target) / maximum_block_weight +/// next_multiplier = prev_multiplier * (1 + (v * diff) + ((v * diff)^2 / 2)) +/// assert(next_multiplier > min) +/// where: v is AdjustmentVariable +/// target is TargetBlockFullness +/// min is MinimumMultiplier +pub type SlowAdjustingFeeUpdate = TargetedFeeAdjustment< + R, + TargetBlockFullness, + AdjustmentVariable, + MinimumMultiplier, + MaximumMultiplier, +>; + +use frame_support::traits::FindAuthor; +//TODO It feels like this shold be able to work for any T: H160, but I tried for +// embarassingly long and couldn't figure that out. + +/// The author inherent provides a AccountId20, but pallet evm needs an H160. +/// This simple adapter makes the conversion. +pub struct FindAuthorAdapter(sp_std::marker::PhantomData); + +impl FindAuthor for FindAuthorAdapter +where + Inner: FindAuthor, +{ + fn find_author<'a, I>(digests: I) -> Option + where + I: 'a + IntoIterator, + { + Inner::find_author(digests).map(Into::into) + } +} + +moonbeam_runtime_common::impl_on_charge_evm_transaction!(); + +impl pallet_evm::Config for Runtime { + type FeeCalculator = TransactionPaymentAsGasPrice; + type GasWeightMapping = pallet_evm::FixedGasWeightMapping; + type WeightPerGas = WeightPerGas; + type BlockHashMapping = pallet_ethereum::EthereumBlockHashMapping; + type CallOrigin = EnsureAddressRoot; + type WithdrawOrigin = EnsureAddressNever; + type AddressMapping = IdentityAddressMapping; + type Currency = Balances; + type RuntimeEvent = RuntimeEvent; + type Runner = pallet_evm::runner::stack::Runner; + type PrecompilesType = MoonriverPrecompiles; + type PrecompilesValue = PrecompilesValue; + type ChainId = EthereumChainId; + type OnChargeTransaction = OnChargeEVMTransaction>; + type BlockGasLimit = BlockGasLimit; + type FindAuthor = FindAuthorAdapter; + type OnCreate = (); + type GasLimitPovSizeRatio = GasLimitPovSizeRatio; + type SuicideQuickClearLimit = ConstU32<0>; + type GasLimitStorageGrowthRatio = GasLimitStorageGrowthRatio; + type Timestamp = RelayTimestamp; + type WeightInfo = moonbeam_weights::pallet_evm::WeightInfo; +} + +parameter_types! { + pub MaximumSchedulerWeight: Weight = NORMAL_DISPATCH_RATIO * RuntimeBlockWeights::get().max_block; +} + +impl pallet_scheduler::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type RuntimeOrigin = RuntimeOrigin; + type PalletsOrigin = OriginCaller; + type RuntimeCall = RuntimeCall; + type MaximumWeight = MaximumSchedulerWeight; + type ScheduleOrigin = EnsureRoot; + type MaxScheduledPerBlock = ConstU32<50>; + type WeightInfo = moonbeam_weights::pallet_scheduler::WeightInfo; + type OriginPrivilegeCmp = EqualPrivilegeOnly; + type Preimages = Preimage; +} + +parameter_types! { + pub const PreimageBaseDeposit: Balance = 5 * currency::MOVR * currency::SUPPLY_FACTOR ; + pub const PreimageByteDeposit: Balance = currency::STORAGE_BYTE_FEE; + pub const PreimageHoldReason: RuntimeHoldReason = + RuntimeHoldReason::Preimage(pallet_preimage::HoldReason::Preimage); +} + +impl pallet_preimage::Config for Runtime { + type WeightInfo = moonbeam_weights::pallet_preimage::WeightInfo; + type RuntimeEvent = RuntimeEvent; + type Currency = Balances; + type ManagerOrigin = EnsureRoot; + type Consideration = HoldConsideration< + AccountId, + Balances, + PreimageHoldReason, + LinearStoragePrice, + >; +} + +parameter_types! { + pub const ProposalBond: Permill = Permill::from_percent(5); + pub const TreasuryId: PalletId = PalletId(*b"py/trsry"); + pub TreasuryAccount: AccountId = Treasury::account_id(); +} + +type TreasuryApproveOrigin = EitherOfDiverse< + EnsureRoot, + pallet_collective::EnsureProportionAtLeast, +>; + +type TreasuryRejectOrigin = EitherOfDiverse< + EnsureRoot, + pallet_collective::EnsureProportionMoreThan, +>; + +impl pallet_treasury::Config for Runtime { + type PalletId = TreasuryId; + type Currency = Balances; + // At least three-fifths majority of the council is required (or root) to approve a proposal + type ApproveOrigin = TreasuryApproveOrigin; + // More than half of the council is required (or root) to reject a proposal + type RejectOrigin = TreasuryRejectOrigin; + type RuntimeEvent = RuntimeEvent; + // If spending proposal rejected, transfer proposer bond to treasury + type OnSlash = Treasury; + type ProposalBond = ProposalBond; + type ProposalBondMinimum = ConstU128<{ 1 * currency::MOVR * currency::SUPPLY_FACTOR }>; + type SpendPeriod = ConstU32<{ 6 * DAYS }>; + type Burn = (); + type BurnDestination = (); + type MaxApprovals = ConstU32<100>; + type WeightInfo = moonbeam_weights::pallet_treasury::WeightInfo; + type SpendFunds = (); + type ProposalBondMaximum = (); + #[cfg(not(feature = "runtime-benchmarks"))] + type SpendOrigin = frame_support::traits::NeverEnsureOrigin; // Disabled, no spending + #[cfg(feature = "runtime-benchmarks")] + type SpendOrigin = + frame_system::EnsureWithSuccess, AccountId, benches::MaxBalance>; + type AssetKind = (); + type Beneficiary = AccountId; + type BeneficiaryLookup = IdentityLookup; + type Paymaster = PayFromAccount; + type BalanceConverter = UnityAssetBalanceConversion; + type PayoutPeriod = ConstU32<{ 30 * DAYS }>; + #[cfg(feature = "runtime-benchmarks")] + type BenchmarkHelper = BenchmarkHelper; +} + +parameter_types! { + pub const MaxSubAccounts: u32 = 100; + pub const MaxAdditionalFields: u32 = 100; + pub const MaxRegistrars: u32 = 20; + pub const PendingUsernameExpiration: u32 = 7 * DAYS; + pub const MaxSuffixLength: u32 = 7; + pub const MaxUsernameLength: u32 = 32; +} + +type IdentityForceOrigin = + EitherOfDiverse, governance::custom_origins::GeneralAdmin>; +type IdentityRegistrarOrigin = + EitherOfDiverse, governance::custom_origins::GeneralAdmin>; + +impl pallet_identity::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Currency = Balances; + // Add one item in storage and take 258 bytes + type BasicDeposit = ConstU128<{ currency::deposit(1, 258) }>; + // Does not add any item to the storage but takes 1 bytes + type ByteDeposit = ConstU128<{ currency::deposit(0, 1) }>; + // Add one item in storage and take 53 bytes + type SubAccountDeposit = ConstU128<{ currency::deposit(1, 53) }>; + type MaxSubAccounts = MaxSubAccounts; + type IdentityInformation = pallet_identity::legacy::IdentityInfo; + type MaxRegistrars = MaxRegistrars; + type Slashed = Treasury; + type ForceOrigin = IdentityForceOrigin; + type RegistrarOrigin = IdentityRegistrarOrigin; + type OffchainSignature = Signature; + type SigningPublicKey = ::Signer; + type UsernameAuthorityOrigin = EnsureRoot; + type PendingUsernameExpiration = PendingUsernameExpiration; + type MaxSuffixLength = MaxSuffixLength; + type MaxUsernameLength = MaxUsernameLength; + type WeightInfo = moonbeam_weights::pallet_identity::WeightInfo; +} + +pub struct TransactionConverter; + +impl fp_rpc::ConvertTransaction for TransactionConverter { + fn convert_transaction(&self, transaction: pallet_ethereum::Transaction) -> UncheckedExtrinsic { + UncheckedExtrinsic::new_unsigned( + pallet_ethereum::Call::::transact { transaction }.into(), + ) + } +} + +impl fp_rpc::ConvertTransaction for TransactionConverter { + fn convert_transaction( + &self, + transaction: pallet_ethereum::Transaction, + ) -> opaque::UncheckedExtrinsic { + let extrinsic = UncheckedExtrinsic::new_unsigned( + pallet_ethereum::Call::::transact { transaction }.into(), + ); + let encoded = extrinsic.encode(); + opaque::UncheckedExtrinsic::decode(&mut &encoded[..]) + .expect("Encoded extrinsic is always valid") + } +} + +parameter_types! { + pub const PostBlockAndTxnHashes: PostLogContent = PostLogContent::BlockAndTxnHashes; +} + +impl pallet_ethereum::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type StateRoot = pallet_ethereum::IntermediateStateRoot; + type PostLogContent = PostBlockAndTxnHashes; + type ExtraDataLength = ConstU32<30>; +} + +pub struct EthereumXcmEnsureProxy; +impl xcm_primitives::EnsureProxy for EthereumXcmEnsureProxy { + fn ensure_ok(delegator: AccountId, delegatee: AccountId) -> Result<(), &'static str> { + // The EVM implicitely contains an Any proxy, so we only allow for "Any" proxies + let def: pallet_proxy::ProxyDefinition = + pallet_proxy::Pallet::::find_proxy( + &delegator, + &delegatee, + Some(ProxyType::Any), + ) + .map_err(|_| "proxy error: expected `ProxyType::Any`")?; + // We only allow to use it for delay zero proxies, as the call will immediatly be executed + ensure!(def.delay.is_zero(), "proxy delay is Non-zero`"); + Ok(()) + } +} + +impl pallet_ethereum_xcm::Config for Runtime { + type InvalidEvmTransactionError = pallet_ethereum::InvalidTransactionWrapper; + type ValidatedTransaction = pallet_ethereum::ValidatedTransaction; + type XcmEthereumOrigin = pallet_ethereum_xcm::EnsureXcmEthereumTransaction; + type ReservedXcmpWeight = ReservedXcmpWeight; + type EnsureProxy = EthereumXcmEnsureProxy; + type ControllerOrigin = EnsureRoot; +} + +parameter_types! { + pub const ReservedXcmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); + pub const ReservedDmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); + pub const RelayOrigin: AggregateMessageOrigin = AggregateMessageOrigin::Parent; +} + +/// Maximum number of blocks simultaneously accepted by the Runtime, not yet included +/// into the relay chain. +const UNINCLUDED_SEGMENT_CAPACITY: u32 = 3; +/// How many parachain blocks are processed by the relay chain per parent. Limits the +/// number of blocks authored per slot. +const BLOCK_PROCESSING_VELOCITY: u32 = 1; + +type ConsensusHook = pallet_async_backing::consensus_hook::FixedVelocityConsensusHook< + Runtime, + BLOCK_PROCESSING_VELOCITY, + UNINCLUDED_SEGMENT_CAPACITY, +>; + +impl cumulus_pallet_parachain_system::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type OnSystemEvent = (); + type SelfParaId = ParachainInfo; + type ReservedDmpWeight = ReservedDmpWeight; + type OutboundXcmpMessageSource = XcmpQueue; + type XcmpMessageHandler = XcmpQueue; + type ReservedXcmpWeight = ReservedXcmpWeight; + type CheckAssociatedRelayNumber = + cumulus_pallet_parachain_system::RelayNumberMonotonicallyIncreases; + type ConsensusHook = ConsensusHookWrapperForRelayTimestamp; + type DmpQueue = frame_support::traits::EnqueueWithOrigin; + type WeightInfo = cumulus_pallet_parachain_system::weights::SubstrateWeight; +} + +impl parachain_info::Config for Runtime {} + +pub struct OnNewRound; +impl pallet_parachain_staking::OnNewRound for OnNewRound { + fn on_new_round(round_index: pallet_parachain_staking::RoundIndex) -> Weight { + MoonbeamOrbiters::on_new_round(round_index) + } +} +pub struct PayoutCollatorOrOrbiterReward; +impl pallet_parachain_staking::PayoutCollatorReward for PayoutCollatorOrOrbiterReward { + fn payout_collator_reward( + for_round: pallet_parachain_staking::RoundIndex, + collator_id: AccountId, + amount: Balance, + ) -> Weight { + let extra_weight = + if MoonbeamOrbiters::is_collator_pool_with_active_orbiter(for_round, collator_id) { + MoonbeamOrbiters::distribute_rewards(for_round, collator_id, amount) + } else { + ParachainStaking::mint_collator_reward(for_round, collator_id, amount) + }; + + ::DbWeight::get() + .reads(1) + .saturating_add(extra_weight) + } +} + +pub struct OnInactiveCollator; +impl pallet_parachain_staking::OnInactiveCollator for OnInactiveCollator { + fn on_inactive_collator( + collator_id: AccountId, + round: pallet_parachain_staking::RoundIndex, + ) -> Result> { + let extra_weight = if !MoonbeamOrbiters::is_collator_pool_with_active_orbiter( + round, + collator_id.clone(), + ) { + ParachainStaking::go_offline_inner(collator_id)?; + ::WeightInfo::go_offline( + pallet_parachain_staking::MAX_CANDIDATES, + ) + } else { + Weight::zero() + }; + + Ok(::DbWeight::get() + .reads(1) + .saturating_add(extra_weight)) + } +} + +type MonetaryGovernanceOrigin = + EitherOfDiverse, governance::custom_origins::GeneralAdmin>; + +pub struct RelayChainSlotProvider; +impl Get for RelayChainSlotProvider { + fn get() -> Slot { + let slot_info = pallet_async_backing::pallet::Pallet::::slot_info(); + slot_info.unwrap_or_default().0 + } +} + +impl pallet_parachain_staking::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Currency = Balances; + type MonetaryGovernanceOrigin = MonetaryGovernanceOrigin; + /// Minimum round length is 2 minutes (10 * 12 second block times) + type MinBlocksPerRound = ConstU32<10>; + /// If a collator doesn't produce any block on this number of rounds, it is notified as inactive + type MaxOfflineRounds = ConstU32<2>; + /// Rounds before the collator leaving the candidates request can be executed + type LeaveCandidatesDelay = ConstU32<24>; + /// Rounds before the candidate bond increase/decrease can be executed + type CandidateBondLessDelay = ConstU32<24>; + /// Rounds before the delegator exit can be executed + type LeaveDelegatorsDelay = ConstU32<24>; + /// Rounds before the delegator revocation can be executed + type RevokeDelegationDelay = ConstU32<24>; + /// Rounds before the delegator bond increase/decrease can be executed + type DelegationBondLessDelay = ConstU32<24>; + /// Rounds before the reward is paid + type RewardPaymentDelay = ConstU32<2>; + /// Minimum collators selected per round, default at genesis and minimum forever after + type MinSelectedCandidates = ConstU32<8>; + /// Maximum top delegations per candidate + type MaxTopDelegationsPerCandidate = ConstU32<300>; + /// Maximum bottom delegations per candidate + type MaxBottomDelegationsPerCandidate = ConstU32<50>; + /// Maximum delegations per delegator + type MaxDelegationsPerDelegator = ConstU32<100>; + /// Minimum stake required to be reserved to be a candidate + type MinCandidateStk = ConstU128<{ 500 * currency::MOVR * currency::SUPPLY_FACTOR }>; + /// Minimum stake required to be reserved to be a delegator + type MinDelegation = ConstU128<{ 5 * currency::MOVR * currency::SUPPLY_FACTOR }>; + type BlockAuthor = AuthorInherent; + type OnCollatorPayout = (); + type PayoutCollatorReward = PayoutCollatorOrOrbiterReward; + type OnInactiveCollator = OnInactiveCollator; + type OnNewRound = OnNewRound; + type SlotProvider = RelayChainSlotProvider; + type WeightInfo = moonbeam_weights::pallet_parachain_staking::WeightInfo; + type MaxCandidates = ConstU32<200>; + type SlotDuration = ConstU64<6_000>; + type BlockTime = ConstU64<6_000>; +} + +impl pallet_author_inherent::Config for Runtime { + type SlotBeacon = RelaychainDataProvider; + type AccountLookup = MoonbeamOrbiters; + type CanAuthor = AuthorFilter; + type AuthorId = AccountId; + type WeightInfo = moonbeam_weights::pallet_author_inherent::WeightInfo; +} + +impl pallet_author_slot_filter::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type RandomnessSource = Randomness; + type PotentialAuthors = ParachainStaking; + type WeightInfo = moonbeam_weights::pallet_author_slot_filter::WeightInfo; +} + +impl pallet_async_backing::Config for Runtime { + type AllowMultipleBlocksPerSlot = ConstBool; + type GetAndVerifySlot = pallet_async_backing::RelaySlot; + type ExpectedBlockTime = ConstU64<6000>; +} + +parameter_types! { + pub const InitializationPayment: Perbill = Perbill::from_percent(30); + pub const RelaySignaturesThreshold: Perbill = Perbill::from_percent(100); + pub const SignatureNetworkIdentifier: &'static [u8] = b"moonriver-"; + +} + +impl pallet_crowdloan_rewards::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Initialized = ConstBool; + type InitializationPayment = InitializationPayment; + type MaxInitContributors = ConstU32<500>; + type MinimumReward = ConstU128<0>; + type RewardCurrency = Balances; + type RelayChainAccountId = [u8; 32]; + type RewardAddressAssociateOrigin = EnsureSigned; + type RewardAddressChangeOrigin = EnsureSigned; + type RewardAddressRelayVoteThreshold = RelaySignaturesThreshold; + type SignatureNetworkIdentifier = SignatureNetworkIdentifier; + type VestingBlockNumber = relay_chain::BlockNumber; + type VestingBlockProvider = RelaychainDataProvider; + type WeightInfo = moonbeam_weights::pallet_crowdloan_rewards::WeightInfo; +} + +// This is a simple session key manager. It should probably either work with, or be replaced +// entirely by pallet sessions +impl pallet_author_mapping::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type DepositCurrency = Balances; + type DepositAmount = ConstU128<{ 100 * currency::MOVR * currency::SUPPLY_FACTOR }>; + type Keys = session_keys_primitives::VrfId; + type WeightInfo = moonbeam_weights::pallet_author_mapping::WeightInfo; +} + +/// The type used to represent the kinds of proxying allowed. +#[derive( + Copy, + Clone, + Eq, + PartialEq, + Ord, + PartialOrd, + Encode, + Decode, + Debug, + MaxEncodedLen, + TypeInfo, + Serialize, + Deserialize, +)] +pub enum ProxyType { + /// All calls can be proxied. This is the trivial/most permissive filter. + Any = 0, + /// Only extrinsics that do not transfer funds. + NonTransfer = 1, + /// Only extrinsics related to governance (democracy and collectives). + Governance = 2, + /// Only extrinsics related to staking. + Staking = 3, + /// Allow to veto an announced proxy call. + CancelProxy = 4, + /// Allow extrinsic related to Balances. + Balances = 5, + /// Allow extrinsic related to AuthorMapping. + AuthorMapping = 6, + /// Allow extrinsic related to IdentityJudgement. + IdentityJudgement = 7, +} + +impl Default for ProxyType { + fn default() -> Self { + Self::Any + } +} + +fn is_governance_precompile(precompile_name: &precompiles::PrecompileName) -> bool { + matches!( + precompile_name, + PrecompileName::TreasuryCouncilInstance + | PrecompileName::PreimagePrecompile + | PrecompileName::ReferendaPrecompile + | PrecompileName::ConvictionVotingPrecompile + | PrecompileName::OpenTechCommitteeInstance + ) +} + +// Be careful: Each time this filter is modified, the substrate filter must also be modified +// consistently. +impl pallet_evm_precompile_proxy::EvmProxyCallFilter for ProxyType { + fn is_evm_proxy_call_allowed( + &self, + call: &pallet_evm_precompile_proxy::EvmSubCall, + recipient_has_code: bool, + gas: u64, + ) -> precompile_utils::EvmResult { + Ok(match self { + ProxyType::Any => { + match PrecompileName::from_address(call.to.0) { + // Any precompile that can execute a subcall should be forbidden here, + // to ensure that unauthorized smart contract can't be called + // indirectly. + // To be safe, we only allow the precompiles we need. + Some( + PrecompileName::AuthorMappingPrecompile + | PrecompileName::ParachainStakingPrecompile, + ) => true, + Some(ref precompile) if is_governance_precompile(precompile) => true, + // All non-whitelisted precompiles are forbidden + Some(_) => false, + // Allow evm transfer to "simple" account (no code nor precompile) + // For the moment, no smart contract other than precompiles is allowed. + // In the future, we may create a dynamic whitelist to authorize some audited + // smart contracts through governance. + None => { + // If the address is not recognized, allow only evm transfert to "simple" + // accounts (no code nor precompile). + // Note: Checking the presence of the code is not enough because some + // precompiles have no code. + !recipient_has_code + && !precompile_utils::precompile_set::is_precompile_or_fail::( + call.to.0, gas, + )? + } + } + } + ProxyType::NonTransfer => { + call.value == U256::zero() + && match PrecompileName::from_address(call.to.0) { + Some( + PrecompileName::AuthorMappingPrecompile + | PrecompileName::ParachainStakingPrecompile, + ) => true, + Some(ref precompile) if is_governance_precompile(precompile) => true, + _ => false, + } + } + ProxyType::Governance => { + call.value == U256::zero() + && matches!( + PrecompileName::from_address(call.to.0), + Some(ref precompile) if is_governance_precompile(precompile) + ) + } + ProxyType::Staking => { + call.value == U256::zero() + && matches!( + PrecompileName::from_address(call.to.0), + Some( + PrecompileName::AuthorMappingPrecompile + | PrecompileName::ParachainStakingPrecompile + ) + ) + } + // The proxy precompile does not contain method cancel_proxy + ProxyType::CancelProxy => false, + ProxyType::Balances => { + // Allow only "simple" accounts as recipient (no code nor precompile). + // Note: Checking the presence of the code is not enough because some precompiles + // have no code. + !recipient_has_code + && !precompile_utils::precompile_set::is_precompile_or_fail::( + call.to.0, gas, + )? + } + ProxyType::AuthorMapping => { + call.value == U256::zero() + && matches!( + PrecompileName::from_address(call.to.0), + Some(PrecompileName::AuthorMappingPrecompile) + ) + } + // There is no identity precompile + ProxyType::IdentityJudgement => false, + }) + } +} + +// Be careful: Each time this filter is modified, the EVM filter must also be modified consistently. +impl InstanceFilter for ProxyType { + fn filter(&self, c: &RuntimeCall) -> bool { + match self { + ProxyType::Any => true, + ProxyType::NonTransfer => { + matches!( + c, + RuntimeCall::System(..) + | RuntimeCall::ParachainSystem(..) + | RuntimeCall::Timestamp(..) + | RuntimeCall::ParachainStaking(..) + | RuntimeCall::Referenda(..) + | RuntimeCall::Preimage(..) + | RuntimeCall::ConvictionVoting(..) + | RuntimeCall::TreasuryCouncilCollective(..) + | RuntimeCall::OpenTechCommitteeCollective(..) + | RuntimeCall::Identity(..) + | RuntimeCall::Utility(..) + | RuntimeCall::Proxy(..) | RuntimeCall::AuthorMapping(..) + | RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::claim { .. } + ) + ) + } + ProxyType::Governance => matches!( + c, + RuntimeCall::Referenda(..) + | RuntimeCall::Preimage(..) + | RuntimeCall::ConvictionVoting(..) + | RuntimeCall::TreasuryCouncilCollective(..) + | RuntimeCall::OpenTechCommitteeCollective(..) + | RuntimeCall::Utility(..) + ), + ProxyType::Staking => matches!( + c, + RuntimeCall::ParachainStaking(..) + | RuntimeCall::Utility(..) + | RuntimeCall::AuthorMapping(..) + | RuntimeCall::MoonbeamOrbiters(..) + ), + ProxyType::CancelProxy => matches!( + c, + RuntimeCall::Proxy(pallet_proxy::Call::reject_announcement { .. }) + ), + ProxyType::Balances => { + matches!(c, RuntimeCall::Balances(..) | RuntimeCall::Utility(..)) + } + ProxyType::AuthorMapping => matches!(c, RuntimeCall::AuthorMapping(..)), + ProxyType::IdentityJudgement => matches!( + c, + RuntimeCall::Identity(pallet_identity::Call::provide_judgement { .. }) + | RuntimeCall::Utility(..) + ), + } + } + + fn is_superset(&self, o: &Self) -> bool { + match (self, o) { + (x, y) if x == y => true, + (ProxyType::Any, _) => true, + (_, ProxyType::Any) => false, + _ => false, + } + } +} + +impl pallet_proxy::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + type Currency = Balances; + type ProxyType = ProxyType; + // One storage item; key size 32, value size 8 + type ProxyDepositBase = ConstU128<{ currency::deposit(1, 8) }>; + // Additional storage item size of 21 bytes (20 bytes AccountId + 1 byte sizeof(ProxyType)). + type ProxyDepositFactor = ConstU128<{ currency::deposit(0, 21) }>; + type MaxProxies = ConstU32<32>; + type WeightInfo = moonbeam_weights::pallet_proxy::WeightInfo; + type MaxPending = ConstU32<32>; + type CallHasher = BlakeTwo256; + type AnnouncementDepositBase = ConstU128<{ currency::deposit(1, 8) }>; + // Additional storage item size of 56 bytes: + // - 20 bytes AccountId + // - 32 bytes Hasher (Blake2256) + // - 4 bytes BlockNumber (u32) + type AnnouncementDepositFactor = ConstU128<{ currency::deposit(0, 56) }>; +} + +impl pallet_migrations::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type MigrationsList = ( + moonbeam_runtime_common::migrations::CommonMigrations, + migrations::MoonriverMigrations, + ); + type XcmExecutionManager = XcmExecutionManager; +} + +impl pallet_moonbeam_lazy_migrations::Config for Runtime { + type WeightInfo = moonbeam_weights::pallet_moonbeam_lazy_migrations::WeightInfo; +} + +/// Maintenance mode Call filter +pub struct MaintenanceFilter; +impl Contains for MaintenanceFilter { + fn contains(c: &RuntimeCall) -> bool { + match c { + RuntimeCall::Assets(_) => false, + RuntimeCall::Balances(_) => false, + RuntimeCall::CrowdloanRewards(_) => false, + RuntimeCall::Ethereum(_) => false, + RuntimeCall::EVM(_) => false, + RuntimeCall::Identity(_) => false, + RuntimeCall::XTokens(_) => false, + RuntimeCall::ParachainStaking(_) => false, + RuntimeCall::MoonbeamOrbiters(_) => false, + RuntimeCall::PolkadotXcm(_) => false, + RuntimeCall::Treasury(_) => false, + RuntimeCall::XcmTransactor(_) => false, + RuntimeCall::EthereumXcm(_) => false, + _ => true, + } + } +} + +/// Normal Call Filter +/// We dont allow to create nor mint assets, this for now is disabled +/// We only allow transfers. For now creation of assets will go through +/// asset-manager, while minting/burning only happens through xcm messages +/// This can change in the future +pub struct NormalFilter; +impl Contains for NormalFilter { + fn contains(c: &RuntimeCall) -> bool { + match c { + RuntimeCall::Assets(method) => match method { + pallet_assets::Call::transfer { .. } => true, + pallet_assets::Call::transfer_keep_alive { .. } => true, + pallet_assets::Call::approve_transfer { .. } => true, + pallet_assets::Call::transfer_approved { .. } => true, + pallet_assets::Call::cancel_approval { .. } => true, + pallet_assets::Call::destroy_accounts { .. } => true, + pallet_assets::Call::destroy_approvals { .. } => true, + pallet_assets::Call::finish_destroy { .. } => true, + _ => false, + }, + // We just want to enable this in case of live chains, since the default version + // is populated at genesis + RuntimeCall::PolkadotXcm(method) => match method { + pallet_xcm::Call::force_default_xcm_version { .. } => true, + _ => false, + }, + // We filter anonymous proxy as they make "reserve" inconsistent + // See: https://github.com/paritytech/substrate/blob/37cca710eed3dadd4ed5364c7686608f5175cce1/frame/proxy/src/lib.rs#L270 // editorconfig-checker-disable-line + RuntimeCall::Proxy(method) => match method { + pallet_proxy::Call::create_pure { .. } => false, + pallet_proxy::Call::kill_pure { .. } => false, + pallet_proxy::Call::proxy { real, .. } => { + !pallet_evm::AccountCodes::::contains_key(H160::from(*real)) + } + _ => true, + }, + // Filtering the EVM prevents possible re-entrancy from the precompiles which could + // lead to unexpected scenarios. + // See https://github.com/PureStake/sr-moonbeam/issues/30 + // Note: It is also assumed that EVM calls are only allowed through `Origin::Root` so + // this can be seen as an additional security + RuntimeCall::EVM(_) => false, + RuntimeCall::Treasury( + pallet_treasury::Call::spend { .. } + | pallet_treasury::Call::payout { .. } + | pallet_treasury::Call::check_status { .. } + | pallet_treasury::Call::void_spend { .. }, + ) => false, + _ => true, + } + } +} + +pub struct XcmExecutionManager; +impl moonkit_xcm_primitives::PauseXcmExecution for XcmExecutionManager { + fn suspend_xcm_execution() -> DispatchResult { + XcmpQueue::suspend_xcm_execution(RuntimeOrigin::root()) + } + fn resume_xcm_execution() -> DispatchResult { + XcmpQueue::resume_xcm_execution(RuntimeOrigin::root()) + } +} + +impl pallet_maintenance_mode::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type NormalCallFilter = NormalFilter; + type MaintenanceCallFilter = MaintenanceFilter; + type MaintenanceOrigin = + pallet_collective::EnsureProportionAtLeast; + type XcmExecutionManager = XcmExecutionManager; +} + +impl pallet_proxy_genesis_companion::Config for Runtime { + type ProxyType = ProxyType; +} + +parameter_types! { + pub OrbiterReserveIdentifier: [u8; 4] = [b'o', b'r', b'b', b'i']; +} + +type AddCollatorOrigin = + EitherOfDiverse, governance::custom_origins::GeneralAdmin>; +type DelCollatorOrigin = + EitherOfDiverse, governance::custom_origins::GeneralAdmin>; + +impl pallet_moonbeam_orbiters::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type AccountLookup = AuthorMapping; + type AddCollatorOrigin = AddCollatorOrigin; + type Currency = Balances; + type DelCollatorOrigin = DelCollatorOrigin; + /// Maximum number of orbiters per collator + type MaxPoolSize = ConstU32<8>; + /// Maximum number of round to keep on storage + type MaxRoundArchive = ConstU32<4>; + type OrbiterReserveIdentifier = OrbiterReserveIdentifier; + type RotatePeriod = ConstU32<3>; + /// Round index type. + type RoundIndex = pallet_parachain_staking::RoundIndex; + type WeightInfo = moonbeam_weights::pallet_moonbeam_orbiters::WeightInfo; +} + +/// Only callable after `set_validation_data` is called which forms this proof the same way +fn relay_chain_state_proof() -> RelayChainStateProof { + let relay_storage_root = ParachainSystem::validation_data() + .expect("set in `set_validation_data`") + .relay_parent_storage_root; + let relay_chain_state = + ParachainSystem::relay_state_proof().expect("set in `set_validation_data`"); + RelayChainStateProof::new(ParachainInfo::get(), relay_storage_root, relay_chain_state) + .expect("Invalid relay chain state proof, already constructed in `set_validation_data`") +} + +pub struct BabeDataGetter; +impl pallet_randomness::GetBabeData> for BabeDataGetter { + // Tolerate panic here because only ever called in inherent (so can be omitted) + fn get_epoch_index() -> u64 { + if cfg!(feature = "runtime-benchmarks") { + // storage reads as per actual reads + let _relay_storage_root = ParachainSystem::validation_data(); + let _relay_chain_state = ParachainSystem::relay_state_proof(); + const BENCHMARKING_NEW_EPOCH: u64 = 10u64; + return BENCHMARKING_NEW_EPOCH; + } + relay_chain_state_proof() + .read_optional_entry(relay_chain::well_known_keys::EPOCH_INDEX) + .ok() + .flatten() + .expect("expected to be able to read epoch index from relay chain state proof") + } + fn get_epoch_randomness() -> Option { + if cfg!(feature = "runtime-benchmarks") { + // storage reads as per actual reads + let _relay_storage_root = ParachainSystem::validation_data(); + let _relay_chain_state = ParachainSystem::relay_state_proof(); + let benchmarking_babe_output = Hash::default(); + return Some(benchmarking_babe_output); + } + relay_chain_state_proof() + .read_optional_entry(relay_chain::well_known_keys::ONE_EPOCH_AGO_RANDOMNESS) + .ok() + .flatten() + } +} + +impl pallet_randomness::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type AddressMapping = sp_runtime::traits::ConvertInto; + type Currency = Balances; + type BabeDataGetter = BabeDataGetter; + type VrfKeyLookup = AuthorMapping; + type Deposit = ConstU128<{ 1 * currency::MOVR * currency::SUPPLY_FACTOR }>; + type MaxRandomWords = ConstU8<100>; + type MinBlockDelay = ConstU32<2>; + type MaxBlockDelay = ConstU32<2_000>; + type BlockExpirationDelay = ConstU32<10_000>; + type EpochExpirationDelay = ConstU64<10_000>; + type WeightInfo = moonbeam_weights::pallet_randomness::WeightInfo; +} + +impl pallet_root_testing::Config for Runtime { + type RuntimeEvent = RuntimeEvent; +} + +parameter_types! { + // One storage item; key size is 32 + 20; value is size 4+4+16+20 bytes = 44 bytes. + pub const DepositBase: Balance = currency::deposit(1, 96); + // Additional storage item size of 20 bytes. + pub const DepositFactor: Balance = currency::deposit(0, 20); + pub const MaxSignatories: u32 = 100; +} + +impl pallet_multisig::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + type Currency = Balances; + type DepositBase = DepositBase; + type DepositFactor = DepositFactor; + type MaxSignatories = MaxSignatories; + type WeightInfo = moonbeam_weights::pallet_multisig::WeightInfo; +} + +impl pallet_relay_storage_roots::Config for Runtime { + type MaxStorageRoots = ConstU32<30>; + type RelaychainStateProvider = cumulus_pallet_parachain_system::RelaychainDataProvider; + type WeightInfo = moonbeam_weights::pallet_relay_storage_roots::WeightInfo; +} + +impl pallet_precompile_benchmarks::Config for Runtime { + type WeightInfo = moonbeam_weights::pallet_precompile_benchmarks::WeightInfo; +} + +construct_runtime! { + pub enum Runtime + { + // System support stuff. + System: frame_system::{Pallet, Call, Storage, Config, Event} = 0, + ParachainSystem: cumulus_pallet_parachain_system::{Pallet, Call, Storage, Inherent, Event} = 1, + // Previously 2: pallet_randomness_collective_flip + Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent} = 3, + ParachainInfo: parachain_info::{Pallet, Storage, Config} = 4, + RootTesting: pallet_root_testing::{Pallet, Call, Storage, Event} = 5, + + // Monetary stuff. + Balances: pallet_balances::{Pallet, Call, Storage, Config, Event} = 10, + TransactionPayment: pallet_transaction_payment::{Pallet, Storage, Config, Event} = 11, + + // Consensus support. + ParachainStaking: pallet_parachain_staking::{Pallet, Call, Storage, Event, Config} = 20, + AuthorInherent: pallet_author_inherent::{Pallet, Call, Storage, Inherent} = 21, + AuthorFilter: pallet_author_slot_filter::{Pallet, Call, Storage, Event, Config} = 22, + AuthorMapping: pallet_author_mapping::{Pallet, Call, Config, Storage, Event} = 23, + MoonbeamOrbiters: pallet_moonbeam_orbiters::{Pallet, Call, Storage, Event} = 24, + AsyncBacking: pallet_async_backing::{Pallet, Storage} = 25, + + // Handy utilities. + Utility: pallet_utility::{Pallet, Call, Event} = 30, + Proxy: pallet_proxy::{Pallet, Call, Storage, Event} = 31, + MaintenanceMode: pallet_maintenance_mode::{Pallet, Call, Config, Storage, Event} = 32, + Identity: pallet_identity::{Pallet, Call, Storage, Event} = 33, + Migrations: pallet_migrations::{Pallet, Storage, Config, Event} = 34, + ProxyGenesisCompanion: pallet_proxy_genesis_companion::{Pallet, Config} = 35, + Multisig: pallet_multisig::{Pallet, Call, Storage, Event} = 36, + MoonbeamLazyMigrations: pallet_moonbeam_lazy_migrations::{Pallet, Call, Storage} = 37, + + // Sudo was previously index 40 + + // Ethereum compatibility + EthereumChainId: pallet_evm_chain_id::{Pallet, Storage, Config} = 50, + EVM: pallet_evm::{Pallet, Config, Call, Storage, Event} = 51, + Ethereum: pallet_ethereum::{Pallet, Call, Storage, Event, Origin, Config} = 52, + + // Governance stuff. + Scheduler: pallet_scheduler::{Pallet, Storage, Event, Call} = 60, + // Democracy: 61, + Preimage: pallet_preimage::{Pallet, Call, Storage, Event, HoldReason} = 62, + ConvictionVoting: pallet_conviction_voting::{Pallet, Call, Storage, Event} = 63, + Referenda: pallet_referenda::{Pallet, Call, Storage, Event} = 64, + Origins: governance::custom_origins::{Origin} = 65, + Whitelist: pallet_whitelist::{Pallet, Call, Storage, Event} = 66, + + // Council stuff. + // CouncilCollective: 70 + // TechCommitteeCollective: 71, + TreasuryCouncilCollective: + pallet_collective::::{Pallet, Call, Storage, Event, Origin, Config} = 72, + OpenTechCommitteeCollective: + pallet_collective::::{Pallet, Call, Storage, Event, Origin, Config} = 73, + + // Treasury stuff. + Treasury: pallet_treasury::{Pallet, Storage, Config, Event, Call} = 80, + + // Crowdloan stuff. + CrowdloanRewards: pallet_crowdloan_rewards::{Pallet, Call, Config, Storage, Event} = 90, + + // XCM Stuff + XcmpQueue: cumulus_pallet_xcmp_queue::{Pallet, Storage, Event} = 100, + CumulusXcm: cumulus_pallet_xcm::{Pallet, Event, Origin} = 101, + DmpQueue: cumulus_pallet_dmp_queue::{Pallet, Call, Storage, Event} = 102, + PolkadotXcm: pallet_xcm::{Pallet, Storage, Call, Event, Origin, Config} = 103, + Assets: pallet_assets::{Pallet, Call, Storage, Event} = 104, + AssetManager: pallet_asset_manager::{Pallet, Call, Storage, Event} = 105, + XTokens: orml_xtokens::{Pallet, Call, Storage, Event} = 106, + XcmTransactor: pallet_xcm_transactor::{Pallet, Call, Storage, Event} = 107, + // Previously 108: pallet_assets:: + EthereumXcm: pallet_ethereum_xcm::{Pallet, Call, Storage, Origin} = 109, + Erc20XcmBridge: pallet_erc20_xcm_bridge::{Pallet} = 110, + MessageQueue: pallet_message_queue::{Pallet, Call, Storage, Event} = 111, + RelayStorageRoots: pallet_relay_storage_roots::{Pallet, Storage} = 112, + PrecompileBenchmarks: pallet_precompile_benchmarks::{Pallet} = 113, + + // Randomness + Randomness: pallet_randomness::{Pallet, Call, Storage, Event, Inherent} = 120, + } +} + +#[cfg(feature = "runtime-benchmarks")] +use moonbeam_runtime_common::benchmarking::BenchmarkHelper; +#[cfg(feature = "runtime-benchmarks")] +mod benches { + frame_support::parameter_types! { + pub const MaxBalance: crate::Balance = crate::Balance::max_value(); + } + + frame_benchmarking::define_benchmarks!( + [pallet_utility, Utility] + [pallet_timestamp, Timestamp] + [pallet_balances, Balances] + [pallet_evm, EVM] + [pallet_assets, Assets] + [pallet_parachain_staking, ParachainStaking] + [pallet_scheduler, Scheduler] + [pallet_treasury, Treasury] + [pallet_author_inherent, AuthorInherent] + [pallet_author_slot_filter, AuthorFilter] + [pallet_crowdloan_rewards, CrowdloanRewards] + [pallet_author_mapping, AuthorMapping] + [pallet_proxy, Proxy] + [pallet_identity, Identity] + [cumulus_pallet_xcmp_queue, XcmpQueue] + [pallet_xcm, PalletXcmExtrinsicsBenchmark::] + [pallet_asset_manager, AssetManager] + [pallet_xcm_transactor, XcmTransactor] + [pallet_moonbeam_orbiters, MoonbeamOrbiters] + [pallet_randomness, Randomness] + [pallet_conviction_voting, ConvictionVoting] + [pallet_referenda, Referenda] + [pallet_preimage, Preimage] + [pallet_whitelist, Whitelist] + [pallet_multisig, Multisig] + [pallet_moonbeam_lazy_migrations, MoonbeamLazyMigrations] + [pallet_relay_storage_roots, RelayStorageRoots] + ); +} + +/// 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 = + fp_self_contained::UncheckedExtrinsic; +/// Extrinsic type that has already been checked. +pub type CheckedExtrinsic = + fp_self_contained::CheckedExtrinsic; +/// Executive: handles dispatch to the various pallets. +pub type Executive = frame_executive::Executive< + Runtime, + Block, + frame_system::ChainContext, + Runtime, + AllPalletsWithSystem, +>; + +// All of our runtimes share most of their Runtime API implementations. +// We use a macro to implement this common part and add runtime-specific additional implementations. +// This macro expands to : +// ``` +// impl_runtime_apis! { +// // All impl blocks shared between all runtimes. +// +// // Specific impls provided to the `impl_runtime_apis_plus_common!` macro. +// } +// ``` +moonbeam_runtime_common::impl_runtime_apis_plus_common! { + impl sp_transaction_pool::runtime_api::TaggedTransactionQueue for Runtime { + fn validate_transaction( + source: TransactionSource, + xt: ::Extrinsic, + block_hash: ::Hash, + ) -> TransactionValidity { + // Filtered calls should not enter the tx pool as they'll fail if inserted. + // If this call is not allowed, we return early. + if !::BaseCallFilter::contains(&xt.0.function) { + return InvalidTransaction::Call.into(); + } + + // This runtime uses Substrate's pallet transaction payment. This + // makes the chain feel like a standard Substrate chain when submitting + // frame transactions and using Substrate ecosystem tools. It has the downside that + // transaction are not prioritized by gas_price. The following code reprioritizes + // transactions to overcome this. + // + // A more elegant, ethereum-first solution is + // a pallet that replaces pallet transaction payment, and allows users + // to directly specify a gas price rather than computing an effective one. + // #HopefullySomeday + + // First we pass the transactions to the standard FRAME executive. This calculates all the + // necessary tags, longevity and other properties that we will leave unchanged. + // This also assigns some priority that we don't care about and will overwrite next. + let mut intermediate_valid = Executive::validate_transaction(source, xt.clone(), block_hash)?; + + let dispatch_info = xt.get_dispatch_info(); + + // If this is a pallet ethereum transaction, then its priority is already set + // according to gas price from pallet ethereum. If it is any other kind of transaction, + // we modify its priority. + Ok(match &xt.0.function { + RuntimeCall::Ethereum(transact { .. }) => intermediate_valid, + _ if dispatch_info.class != DispatchClass::Normal => intermediate_valid, + _ => { + let tip = match xt.0.signature { + None => 0, + Some((_, _, ref signed_extra)) => { + // Yuck, this depends on the index of charge transaction in Signed Extra + let charge_transaction = &signed_extra.7; + charge_transaction.tip() + } + }; + + // Calculate the fee that will be taken by pallet transaction payment + let fee: u64 = TransactionPayment::compute_fee( + xt.encode().len() as u32, + &dispatch_info, + tip, + ).saturated_into(); + + // Calculate how much gas this effectively uses according to the existing mapping + let effective_gas = + ::GasWeightMapping::weight_to_gas( + dispatch_info.weight + ); + + // Here we calculate an ethereum-style effective gas price using the + // current fee of the transaction. Because the weight -> gas conversion is + // lossy, we have to handle the case where a very low weight maps to zero gas. + let effective_gas_price = if effective_gas > 0 { + fee / effective_gas + } else { + // If the effective gas was zero, we just act like it was 1. + fee + }; + + // Overwrite the original prioritization with this ethereum one + intermediate_valid.priority = effective_gas_price; + intermediate_valid + } + }) + } + } + + impl async_backing_primitives::UnincludedSegmentApi for Runtime { + fn can_build_upon( + included_hash: ::Hash, + slot: async_backing_primitives::Slot, + ) -> bool { + ConsensusHook::can_build_upon(included_hash, slot) + } + } +} + +struct CheckInherents; + +// Parity has decided to depreciate this trait, but does not offer a satisfactory replacement, +// see issue: https://github.com/paritytech/polkadot-sdk/issues/2841 +#[allow(deprecated)] +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) + } +} + +// Nimbus's Executive wrapper allows relay validators to verify the seal digest +cumulus_pallet_parachain_system::register_validate_block!( + Runtime = Runtime, + BlockExecutor = pallet_author_inherent::BlockExecutor::, + CheckInherents = CheckInherents, +); + +moonbeam_runtime_common::impl_self_contained_call!(); + +// Shorthand for a Get field of a pallet Config. +#[macro_export] +macro_rules! get { + ($pallet:ident, $name:ident, $type:ty) => { + <<$crate::Runtime as $pallet::Config>::$name as $crate::Get<$type>>::get() + }; +} + +#[cfg(test)] +mod tests { + use super::{currency::*, *}; + + #[test] + // Helps us to identify a Pallet Call in case it exceeds the 1kb limit. + // Hint: this should be a rare case. If that happens, one or more of the dispatchable arguments + // need to be Boxed. + fn call_max_size() { + const CALL_ALIGN: u32 = 1024; + assert!(std::mem::size_of::>() <= CALL_ALIGN as usize); + assert!(std::mem::size_of::>() <= CALL_ALIGN as usize); + assert!(std::mem::size_of::>() <= CALL_ALIGN as usize); + assert!( + std::mem::size_of::>() <= CALL_ALIGN as usize + ); + assert!( + std::mem::size_of::>() <= CALL_ALIGN as usize + ); + assert!( + std::mem::size_of::>() <= CALL_ALIGN as usize + ); + assert!( + std::mem::size_of::>() <= CALL_ALIGN as usize + ); + assert!(std::mem::size_of::>() <= CALL_ALIGN as usize); + assert!( + std::mem::size_of::>() <= CALL_ALIGN as usize + ); + assert!(std::mem::size_of::>() <= CALL_ALIGN as usize); + assert!( + std::mem::size_of::>() + <= CALL_ALIGN as usize + ); + assert!( + std::mem::size_of::>() + <= CALL_ALIGN as usize + ); + } + + #[test] + fn currency_constants_are_correct() { + assert_eq!(SUPPLY_FACTOR, 1); + + // txn fees + assert_eq!(TRANSACTION_BYTE_FEE, Balance::from(1 * GIGAWEI)); + assert_eq!( + get!(pallet_transaction_payment, OperationalFeeMultiplier, u8), + 5_u8 + ); + assert_eq!(STORAGE_BYTE_FEE, Balance::from(100 * MICROMOVR)); + + // treasury minimums + assert_eq!( + get!(pallet_treasury, ProposalBondMinimum, u128), + Balance::from(1 * MOVR) + ); + + // pallet_identity deposits + assert_eq!( + get!(pallet_identity, BasicDeposit, u128), + Balance::from(1 * MOVR + 25800 * MICROMOVR) + ); + assert_eq!( + get!(pallet_identity, ByteDeposit, u128), + Balance::from(100 * MICROMOVR) + ); + assert_eq!( + get!(pallet_identity, SubAccountDeposit, u128), + Balance::from(1 * MOVR + 5300 * MICROMOVR) + ); + + // staking minimums + assert_eq!( + get!(pallet_parachain_staking, MinCandidateStk, u128), + Balance::from(500 * MOVR) + ); + assert_eq!( + get!(pallet_parachain_staking, MinDelegation, u128), + Balance::from(5 * MOVR) + ); + + // crowdloan min reward + assert_eq!( + get!(pallet_crowdloan_rewards, MinimumReward, u128), + Balance::from(0u128) + ); + + // deposit for AuthorMapping + assert_eq!( + get!(pallet_author_mapping, DepositAmount, u128), + Balance::from(100 * MOVR) + ); + + // proxy deposits + assert_eq!( + get!(pallet_proxy, ProxyDepositBase, u128), + Balance::from(1 * MOVR + 800 * MICROMOVR) + ); + assert_eq!( + get!(pallet_proxy, ProxyDepositFactor, u128), + Balance::from(2100 * MICROMOVR) + ); + assert_eq!( + get!(pallet_proxy, AnnouncementDepositBase, u128), + Balance::from(1 * MOVR + 800 * MICROMOVR) + ); + assert_eq!( + get!(pallet_proxy, AnnouncementDepositFactor, u128), + Balance::from(5600 * MICROMOVR) + ); + } + + #[test] + fn max_offline_rounds_lower_or_eq_than_reward_payment_delay() { + assert!( + get!(pallet_parachain_staking, MaxOfflineRounds, u32) + <= get!(pallet_parachain_staking, RewardPaymentDelay, u32) + ); + } + + #[test] + // Required migration is + // pallet_parachain_staking::migrations::IncreaseMaxTopDelegationsPerCandidate + // Purpose of this test is to remind of required migration if constant is ever changed + fn updating_maximum_delegators_per_candidate_requires_configuring_required_migration() { + assert_eq!( + get!(pallet_parachain_staking, MaxTopDelegationsPerCandidate, u32), + 300 + ); + assert_eq!( + get!( + pallet_parachain_staking, + MaxBottomDelegationsPerCandidate, + u32 + ), + 50 + ); + } + + #[test] + fn configured_base_extrinsic_weight_is_evm_compatible() { + let min_ethereum_transaction_weight = WeightPerGas::get() * 21_000; + let base_extrinsic = ::BlockWeights::get() + .get(frame_support::dispatch::DispatchClass::Normal) + .base_extrinsic; + assert!(base_extrinsic.ref_time() <= min_ethereum_transaction_weight.ref_time()); + } + + #[test] + fn test_storage_growth_ratio_is_correct() { + // This is the highest amount of new storage that can be created in a block 40 KB + let block_storage_limit = 80 * 1024; + let expected_storage_growth_ratio = BlockGasLimit::get() + .low_u64() + .saturating_div(block_storage_limit); + let actual_storage_growth_ratio = + ::GasLimitStorageGrowthRatio::get(); + assert_eq!( + expected_storage_growth_ratio, actual_storage_growth_ratio, + "Storage growth ratio is not correct" + ); + } +} diff --git a/tracing/3001/runtime/moonriver/src/migrations.rs b/tracing/3001/runtime/moonriver/src/migrations.rs new file mode 100644 index 00000000..f2fb708d --- /dev/null +++ b/tracing/3001/runtime/moonriver/src/migrations.rs @@ -0,0 +1,43 @@ +// Copyright 2024 Moonbeam Foundation Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! # Moonriver specific Migrations + +use crate::Runtime; +use frame_support::{traits::OnRuntimeUpgrade, weights::Weight}; +use pallet_migrations::{GetMigrations, Migration}; +use pallet_parachain_staking::migrations::MultiplyRoundLenBy2; +use sp_std::{prelude::*, vec}; + +pub struct MoonriverMigrations; + +impl GetMigrations for MoonriverMigrations { + fn get_migrations() -> Vec> { + vec![Box::new(PalletStakingMultiplyRoundLenBy2)] + } +} + +// This migration should only be applied to runtimes with async backing enabled +pub struct PalletStakingMultiplyRoundLenBy2; +impl Migration for PalletStakingMultiplyRoundLenBy2 { + fn friendly_name(&self) -> &str { + "MM_MultiplyRoundLenBy2" + } + + fn migrate(&self, _available_weight: Weight) -> Weight { + MultiplyRoundLenBy2::::on_runtime_upgrade() + } +} diff --git a/tracing/3001/runtime/moonriver/src/precompiles.rs b/tracing/3001/runtime/moonriver/src/precompiles.rs new file mode 100644 index 00000000..6af007a2 --- /dev/null +++ b/tracing/3001/runtime/moonriver/src/precompiles.rs @@ -0,0 +1,259 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +use crate::{ + asset_config::ForeignAssetInstance, xcm_config::XcmExecutorConfig, OpenTechCommitteeInstance, + TreasuryCouncilInstance, +}; +use frame_support::parameter_types; +use pallet_evm_precompile_author_mapping::AuthorMappingPrecompile; +use pallet_evm_precompile_balances_erc20::{Erc20BalancesPrecompile, Erc20Metadata}; +use pallet_evm_precompile_batch::BatchPrecompile; +use pallet_evm_precompile_blake2::Blake2F; +use pallet_evm_precompile_bn128::{Bn128Add, Bn128Mul, Bn128Pairing}; +use pallet_evm_precompile_call_permit::CallPermitPrecompile; +use pallet_evm_precompile_collective::CollectivePrecompile; +use pallet_evm_precompile_conviction_voting::ConvictionVotingPrecompile; +use pallet_evm_precompile_crowdloan_rewards::CrowdloanRewardsPrecompile; +use pallet_evm_precompile_gmp::GmpPrecompile; +use pallet_evm_precompile_identity::IdentityPrecompile; +use pallet_evm_precompile_modexp::Modexp; +use pallet_evm_precompile_parachain_staking::ParachainStakingPrecompile; +use pallet_evm_precompile_preimage::PreimagePrecompile; +use pallet_evm_precompile_proxy::{OnlyIsProxyAndProxy, ProxyPrecompile}; +use pallet_evm_precompile_randomness::RandomnessPrecompile; +use pallet_evm_precompile_referenda::ReferendaPrecompile; +use pallet_evm_precompile_registry::PrecompileRegistry; +use pallet_evm_precompile_relay_encoder::RelayEncoderPrecompile; +use pallet_evm_precompile_relay_verifier::RelayDataVerifierPrecompile; +use pallet_evm_precompile_sha3fips::Sha3FIPS256; +use pallet_evm_precompile_simple::{ECRecover, ECRecoverPublicKey, Identity, Ripemd160, Sha256}; +use pallet_evm_precompile_xcm_transactor::{ + v1::XcmTransactorPrecompileV1, v2::XcmTransactorPrecompileV2, v3::XcmTransactorPrecompileV3, +}; +use pallet_evm_precompile_xcm_utils::XcmUtilsPrecompile; +use pallet_evm_precompile_xtokens::XtokensPrecompile; +use pallet_evm_precompileset_assets_erc20::Erc20AssetsPrecompileSet; +use precompile_utils::precompile_set::*; + +pub struct NativeErc20Metadata; + +/// ERC20 metadata for the native token. +impl Erc20Metadata for NativeErc20Metadata { + /// Returns the name of the token. + fn name() -> &'static str { + "MOVR token" + } + + /// Returns the symbol of the token. + fn symbol() -> &'static str { + "MOVR" + } + + /// Returns the decimals places of the token. + fn decimals() -> u8 { + 18 + } + + /// Must return `true` only if it represents the main native currency of + /// the network. It must be the currency used in `pallet_evm`. + fn is_native_currency() -> bool { + true + } +} + +/// The asset precompile address prefix. Addresses that match against this prefix will be routed +/// to Erc20AssetsPrecompileSet being marked as foreign +pub const FOREIGN_ASSET_PRECOMPILE_ADDRESS_PREFIX: &[u8] = &[255u8; 4]; + +parameter_types! { + pub ForeignAssetPrefix: &'static [u8] = FOREIGN_ASSET_PRECOMPILE_ADDRESS_PREFIX; +} + +type EthereumPrecompilesChecks = (AcceptDelegateCall, CallableByContract, CallableByPrecompile); + +#[precompile_utils::precompile_name_from_address] +type MoonriverPrecompilesAt = ( + // Ethereum precompiles: + // We allow DELEGATECALL to stay compliant with Ethereum behavior. + PrecompileAt, ECRecover, EthereumPrecompilesChecks>, + PrecompileAt, Sha256, EthereumPrecompilesChecks>, + PrecompileAt, Ripemd160, EthereumPrecompilesChecks>, + PrecompileAt, Identity, EthereumPrecompilesChecks>, + PrecompileAt, Modexp, EthereumPrecompilesChecks>, + PrecompileAt, Bn128Add, EthereumPrecompilesChecks>, + PrecompileAt, Bn128Mul, EthereumPrecompilesChecks>, + PrecompileAt, Bn128Pairing, EthereumPrecompilesChecks>, + PrecompileAt, Blake2F, EthereumPrecompilesChecks>, + // Non-Moonbeam specific nor Ethereum precompiles : + PrecompileAt, Sha3FIPS256, (CallableByContract, CallableByPrecompile)>, + RemovedPrecompileAt>, // Dispatch + PrecompileAt, ECRecoverPublicKey, (CallableByContract, CallableByPrecompile)>, + // Moonbeam specific precompiles: + PrecompileAt< + AddressU64<2048>, + ParachainStakingPrecompile, + (CallableByContract, CallableByPrecompile), + >, + PrecompileAt< + AddressU64<2049>, + CrowdloanRewardsPrecompile, + (CallableByContract, CallableByPrecompile), + >, + PrecompileAt< + AddressU64<2050>, + Erc20BalancesPrecompile, + (CallableByContract, CallableByPrecompile), + >, + RemovedPrecompileAt>, // DemocracyPrecompile + PrecompileAt< + AddressU64<2052>, + XtokensPrecompile, + ( + SubcallWithMaxNesting<1>, + CallableByContract, + CallableByPrecompile, + ), + >, + PrecompileAt< + AddressU64<2053>, + RelayEncoderPrecompile, + (CallableByContract, CallableByPrecompile), + >, + PrecompileAt< + AddressU64<2054>, + XcmTransactorPrecompileV1, + (CallableByContract, CallableByPrecompile), + >, + PrecompileAt< + AddressU64<2055>, + AuthorMappingPrecompile, + (CallableByContract, CallableByPrecompile), + >, + PrecompileAt< + AddressU64<2056>, + BatchPrecompile, + ( + SubcallWithMaxNesting<2>, + // Batch is the only precompile allowed to call Batch. + CallableByPrecompile>>, + ), + >, + PrecompileAt< + AddressU64<2057>, + RandomnessPrecompile, + (SubcallWithMaxNesting<0>, CallableByContract), + >, + PrecompileAt< + AddressU64<2058>, + CallPermitPrecompile, + (SubcallWithMaxNesting<0>, CallableByContract), + >, + PrecompileAt< + AddressU64<2059>, + ProxyPrecompile, + ( + CallableByContract>, + SubcallWithMaxNesting<0>, + // Batch is the only precompile allowed to call Proxy. + CallableByPrecompile>>, + ), + >, + PrecompileAt< + AddressU64<2060>, + XcmUtilsPrecompile, + CallableByContract< + pallet_evm_precompile_xcm_utils::AllExceptXcmExecute, + >, + >, + PrecompileAt< + AddressU64<2061>, + XcmTransactorPrecompileV2, + (CallableByContract, CallableByPrecompile), + >, + RemovedPrecompileAt>, //CouncilInstance + RemovedPrecompileAt>, // TechCommitteeInstance + PrecompileAt< + AddressU64<2064>, + CollectivePrecompile, + (CallableByContract, CallableByPrecompile), + >, + PrecompileAt< + AddressU64<2065>, + ReferendaPrecompile, + (CallableByContract, CallableByPrecompile), + >, + PrecompileAt< + AddressU64<2066>, + ConvictionVotingPrecompile, + (CallableByContract, CallableByPrecompile), + >, + PrecompileAt< + AddressU64<2067>, + PreimagePrecompile, + (CallableByContract, CallableByPrecompile), + >, + PrecompileAt< + AddressU64<2068>, + CollectivePrecompile, + (CallableByContract, CallableByPrecompile), + >, + PrecompileAt< + AddressU64<2069>, + PrecompileRegistry, + (CallableByContract, CallableByPrecompile), + >, + PrecompileAt, GmpPrecompile, SubcallWithMaxNesting<0>>, + PrecompileAt< + AddressU64<2071>, + XcmTransactorPrecompileV3, + (CallableByContract, CallableByPrecompile), + >, + PrecompileAt< + AddressU64<2072>, + IdentityPrecompile, + (CallableByContract, CallableByPrecompile), + >, + PrecompileAt< + AddressU64<2073>, + RelayDataVerifierPrecompile, + (CallableByContract, CallableByPrecompile), + >, +); + +/// The PrecompileSet installed in the Moonriver runtime. +/// We include the nine Istanbul precompiles +/// (https://github.com/ethereum/go-ethereum/blob/3c46f557/core/vm/contracts.go#L69) +/// The following distribution has been decided for the precompiles +/// 0-1023: Ethereum Mainnet Precompiles +/// 1024-2047 Precompiles that are not in Ethereum Mainnet but are neither Moonbeam specific +/// 2048-4095 Moonbeam specific precompiles +pub type MoonriverPrecompiles = PrecompileSetBuilder< + R, + ( + // Skip precompiles if out of range. + PrecompilesInRangeInclusive<(AddressU64<1>, AddressU64<4095>), MoonriverPrecompilesAt>, + // Prefixed precompile sets (XC20) + PrecompileSetStartingWith< + ForeignAssetPrefix, + Erc20AssetsPrecompileSet, + CallableByContract, + >, + // Moonriver never had any local assets (No blacklist needed + // https://moonriver.subscan.io/event?module=localassets&event_id=created + // https://moonriver.subscan.io/event?module=localassets&event_id=forcecreated + ), +>; diff --git a/tracing/3001/runtime/moonriver/src/xcm_config.rs b/tracing/3001/runtime/moonriver/src/xcm_config.rs new file mode 100644 index 00000000..4dc3e846 --- /dev/null +++ b/tracing/3001/runtime/moonriver/src/xcm_config.rs @@ -0,0 +1,722 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! XCM configuration for Moonbase. +//! + +use super::{ + governance, AccountId, AssetId, AssetManager, Balance, Balances, DealWithFees, Erc20XcmBridge, + MaintenanceMode, MessageQueue, ParachainInfo, ParachainSystem, Perbill, PolkadotXcm, Runtime, + RuntimeBlockWeights, RuntimeCall, RuntimeEvent, RuntimeOrigin, Treasury, XcmpQueue, +}; + +use frame_support::{ + parameter_types, + traits::{EitherOfDiverse, Everything, Nothing, PalletInfoAccess, TransformOrigin}, +}; +use moonbeam_runtime_common::weights as moonbeam_weights; +use moonkit_xcm_primitives::AccountIdAssetIdConversion; +use sp_runtime::{ + traits::{Hash as THash, MaybeEquivalence, PostDispatchInfoOf}, + DispatchErrorWithPostInfo, +}; +use sp_weights::Weight; + +use frame_system::{EnsureRoot, RawOrigin}; +use sp_core::{ConstU32, H160, H256}; + +use xcm_builder::{ + AccountKey20Aliases, AllowKnownQueryResponses, AllowSubscriptionsFrom, + AllowTopLevelPaidExecutionFrom, ConvertedConcreteId, DescribeAllTerminal, DescribeFamily, + EnsureXcmOrigin, FungibleAdapter as XcmCurrencyAdapter, FungiblesAdapter, HashedDescription, + NoChecking, ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, + SiblingParachainConvertsVia, SignedAccountKey20AsNative, SovereignSignedViaLocation, + TakeWeightCredit, UsingComponents, WeightInfoBounds, WithComputedOrigin, +}; + +use parachains_common::message_queue::{NarrowOriginToSibling, ParaIdToSibling}; +use xcm::latest::prelude::{ + Asset, GlobalConsensus, InteriorLocation, Junction, Location, NetworkId, PalletInstance, + Parachain, +}; +use xcm_executor::traits::{CallDispatcher, ConvertLocation, JustTry}; + +use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; +use orml_xcm_support::MultiNativeAsset; +use xcm_primitives::{ + AbsoluteAndRelativeReserve, AccountIdToCurrencyId, AccountIdToLocation, AsAssetType, + FirstAssetTrader, SignedToAccountId20, UtilityAvailableCalls, UtilityEncodeCall, XcmTransact, +}; + +use parity_scale_codec::{Decode, Encode}; +use scale_info::TypeInfo; + +use sp_core::Get; +use sp_std::{ + convert::{From, Into, TryFrom}, + prelude::*, +}; + +use orml_traits::parameter_type_with_key; + +use crate::governance::referenda::{FastGeneralAdminOrRoot, GeneralAdminOrRoot}; + +parameter_types! { + // The network Id of the relay + pub const RelayNetwork: NetworkId = NetworkId::Kusama; + // The relay chain Origin type + pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); + // The universal location within the global consensus system + pub UniversalLocation: InteriorLocation = + [GlobalConsensus(RelayNetwork::get()), Parachain(ParachainInfo::parachain_id().into())].into(); + + // Self Reserve location, defines the multilocation identifiying the self-reserve currency + // This is used to match it also against our Balances pallet when we receive such + // a Location: (Self Balances pallet index) + // We use the RELATIVE multilocation + pub SelfReserve: Location = Location { + parents:0, + interior: [ + PalletInstance(::index() as u8) + ].into() + }; +} + +/// Type for specifying how a `Location` 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 default `AccountId`. + ParentIsPreset, + // Sibling parachain origins convert to AccountId via the `ParaId::into`. + SiblingParachainConvertsVia, + // If we receive a Location of type AccountKey20, just generate a native account + AccountKey20Aliases, + // Generate remote accounts according to polkadot standards + HashedDescription>, +); + +/// Wrapper type around `LocationToAccountId` to convert an `AccountId` to type `H160`. +pub struct LocationToH160; +impl ConvertLocation for LocationToH160 { + fn convert_location(location: &Location) -> Option { + >::convert_location(location) + .map(Into::into) + } +} + +// The non-reserve fungible transactor type +// It will use pallet-assets, and the Id will be matched against AsAssetType +pub type ForeignFungiblesTransactor = FungiblesAdapter< + // Use this fungibles implementation: + super::Assets, + // Use this currency when it is a fungible asset matching the given location or name: + ( + ConvertedConcreteId< + AssetId, + Balance, + AsAssetType, + JustTry, + >, + ), + // Do a simple punn to convert an AccountId20 Location into a native chain account ID: + LocationToAccountId, + // Our chain's account ID type (we can't get away without mentioning it explicitly): + AccountId, + // We dont allow teleports. + NoChecking, + // We dont track any teleports + (), +>; + +/// The transactor for our own chain currency. +pub type LocalAssetTransactor = XcmCurrencyAdapter< + // Use this currency: + Balances, + // Use this currency when it is a fungible asset matching any of the locations in + // SelfReserveRepresentations + xcm_builder::IsConcrete, + // We can convert the MultiLocations with our converter above: + LocationToAccountId, + // Our chain's account ID type (we can't get away without mentioning it explicitly): + AccountId, + // We dont allow teleport + (), +>; + +// We use all transactors +// These correspond to +// SelfReserve asset, both pre and post 0.9.16 +// Foreign assets +// Local assets, both pre and post 0.9.16 +// We can remove the Old reanchor once +// we import https://github.com/open-web3-stack/open-runtime-module-library/pull/708 +pub type AssetTransactors = ( + LocalAssetTransactor, + ForeignFungiblesTransactor, + Erc20XcmBridge, +); + +/// 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 + // recognised. + RelayChainAsNative, + // Native converter for sibling Parachains; will convert to a `SiblingPara` origin when + // recognised. + SiblingParachainAsNative, + // Xcm origins can be represented natively under the Xcm pallet's Xcm origin. + pallet_xcm::XcmPassthrough, + // Xcm Origins defined by a Multilocation of type AccountKey20 can be converted to a 20 byte- + // account local origin + SignedAccountKey20AsNative, +); + +parameter_types! { + /// The amount of weight an XCM operation takes. This is safe overestimate. + pub UnitWeightCost: Weight = Weight::from_parts(200_000_000u64, 0); + /// Maximum number of instructions in a single XCM fragment. A sanity check against + /// weight caculations getting too crazy. + pub MaxInstructions: u32 = 100; +} + +/// Xcm Weigher shared between multiple Xcm-related configs. +pub type XcmWeigher = WeightInfoBounds< + moonbeam_xcm_benchmarks::weights::XcmWeight, + RuntimeCall, + MaxInstructions, +>; + +pub type XcmBarrier = ( + // Weight that is paid for may be consumed. + TakeWeightCredit, + // Expected responses are OK. + AllowKnownQueryResponses, + WithComputedOrigin< + ( + // If the message is one that immediately attemps to pay for execution, then allow it. + AllowTopLevelPaidExecutionFrom, + // Subscriptions for version tracking are OK. + AllowSubscriptionsFrom, + ), + UniversalLocation, + ConstU32<8>, + >, +); + +parameter_types! { + /// Xcm fees will go to the treasury account + pub XcmFeesAccount: AccountId = Treasury::account_id(); +} + +/// This is the struct that will handle the revenue from xcm fees +/// We do not burn anything because we want to mimic exactly what +/// the sovereign account has +pub type XcmFeesToAccount = xcm_primitives::XcmFeesToAccount< + super::Assets, + ( + ConvertedConcreteId< + AssetId, + Balance, + AsAssetType, + JustTry, + >, + ), + AccountId, + XcmFeesAccount, +>; + +pub struct SafeCallFilter; +impl frame_support::traits::Contains for SafeCallFilter { + fn contains(_call: &RuntimeCall) -> bool { + // TODO review + // This needs to be addressed at EVM level + true + } +} + +parameter_types! { + pub const MaxAssetsIntoHolding: u32 = xcm_primitives::MAX_ASSETS; +} + +// Our implementation of the Moonbeam Call +// Attachs the right origin in case the call is made to pallet-ethereum-xcm +#[cfg(not(feature = "evm-tracing"))] +moonbeam_runtime_common::impl_moonbeam_xcm_call!(); +#[cfg(feature = "evm-tracing")] +moonbeam_runtime_common::impl_moonbeam_xcm_call_tracing!(); + +moonbeam_runtime_common::impl_evm_runner_precompile_or_eth_xcm!(); + +pub struct XcmExecutorConfig; +impl xcm_executor::Config for XcmExecutorConfig { + type RuntimeCall = RuntimeCall; + type XcmSender = XcmRouter; + // How to withdraw and deposit an asset. + type AssetTransactor = AssetTransactors; + type OriginConverter = XcmOriginToTransactDispatchOrigin; + // Filter to the reserve withdraw operations + // Whenever the reserve matches the relative or absolute value + // of our chain, we always return the relative reserve + type IsReserve = MultiNativeAsset>; + type IsTeleporter = (); // No teleport + type UniversalLocation = UniversalLocation; + type Barrier = XcmBarrier; + type Weigher = XcmWeigher; + // We use two traders + // When we receive the relative representation of the self-reserve asset, + // we use UsingComponents and the local way of handling fees + // When we receive a non-reserve asset, we use AssetManager to fetch how many + // units per second we should charge + type Trader = ( + UsingComponents< + ::WeightToFee, + SelfReserve, + AccountId, + Balances, + DealWithFees, + >, + FirstAssetTrader, + ); + type ResponseHandler = PolkadotXcm; + type SubscriptionService = PolkadotXcm; + type AssetTrap = pallet_erc20_xcm_bridge::AssetTrapWrapper; + type AssetClaims = PolkadotXcm; + type CallDispatcher = MoonbeamCall; + type PalletInstancesInfo = crate::AllPalletsWithSystem; + type MaxAssetsIntoHolding = MaxAssetsIntoHolding; + type AssetLocker = (); + type AssetExchanger = (); + type FeeManager = (); + type MessageExporter = (); + type UniversalAliases = Nothing; + type SafeCallFilter = SafeCallFilter; + type Aliasers = Nothing; + type TransactionalProcessor = xcm_builder::FrameTransactionalProcessor; +} + +type XcmExecutor = pallet_erc20_xcm_bridge::XcmExecutorWrapper< + XcmExecutorConfig, + xcm_executor::XcmExecutor, +>; + +// Converts a Signed Local Origin into a Location +pub type LocalOriginToLocation = SignedToAccountId20; + +/// 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, +); + +impl pallet_xcm::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type SendXcmOrigin = EnsureXcmOrigin; + type XcmRouter = XcmRouter; + type ExecuteXcmOrigin = EnsureXcmOrigin; + type XcmExecuteFilter = Nothing; + type XcmExecutor = XcmExecutor; + type XcmTeleportFilter = Nothing; + type XcmReserveTransferFilter = Everything; + type Weigher = XcmWeigher; + 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 MaxRemoteLockConsumers = ConstU32<0>; + type RemoteLockConsumerIdentifier = (); + // TODO pallet-xcm weights + type WeightInfo = moonbeam_weights::pallet_xcm::WeightInfo; + type AdminOrigin = EnsureRoot; +} + +impl cumulus_pallet_xcm::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type XcmExecutor = XcmExecutor; +} + +impl cumulus_pallet_xcmp_queue::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type ChannelInfo = ParachainSystem; + type VersionWrapper = PolkadotXcm; + type XcmpQueue = TransformOrigin; + type MaxInboundSuspended = sp_core::ConstU32<1_000>; + type ControllerOrigin = EnsureRoot; + type ControllerOriginConverter = XcmOriginToTransactDispatchOrigin; + type WeightInfo = moonbeam_weights::cumulus_pallet_xcmp_queue::WeightInfo; + type PriceForSiblingDelivery = polkadot_runtime_common::xcm_sender::NoPriceForMessageDelivery< + cumulus_primitives_core::ParaId, + >; +} + +parameter_types! { + pub const RelayOrigin: AggregateMessageOrigin = AggregateMessageOrigin::Parent; +} + +// TODO: This pallet can be removed after the lazy migration is done and +// event `Completed` is emitted. +// https://github.com/paritytech/polkadot-sdk/pull/1246 +impl cumulus_pallet_dmp_queue::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type DmpSink = frame_support::traits::EnqueueWithOrigin; + type WeightInfo = cumulus_pallet_dmp_queue::weights::SubstrateWeight; +} + +parameter_types! { + /// The amount of weight (if any) which should be provided to the message queue for + /// servicing enqueued items. + /// + /// This may be legitimately `None` in the case that you will call + /// `ServiceQueues::service_queues` manually. + pub MessageQueueServiceWeight: Weight = + Perbill::from_percent(25) * RuntimeBlockWeights::get().max_block; + /// The maximum number of stale pages (i.e. of overweight messages) allowed before culling + /// can happen. Once there are more stale pages than this, then historical pages may be + /// dropped, even if they contain unprocessed overweight messages. + pub const MessageQueueMaxStale: u32 = 8; + /// The size of the page; this implies the maximum message size which can be sent. + /// + /// A good value depends on the expected message sizes, their weights, the weight that is + /// available for processing them and the maximal needed message size. The maximal message + /// size is slightly lower than this as defined by [`MaxMessageLenOf`]. + pub const MessageQueueHeapSize: u32 = 128 * 1048; +} + +impl pallet_message_queue::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + #[cfg(feature = "runtime-benchmarks")] + type MessageProcessor = pallet_message_queue::mock_helpers::NoopMessageProcessor< + cumulus_primitives_core::AggregateMessageOrigin, + >; + #[cfg(not(feature = "runtime-benchmarks"))] + type MessageProcessor = + xcm_builder::ProcessXcmMessage; + type Size = u32; + type HeapSize = MessageQueueHeapSize; + type MaxStale = MessageQueueMaxStale; + type ServiceWeight = MessageQueueServiceWeight; + // The XCMP queue pallet is only ever able to handle the `Sibling(ParaId)` origin: + type QueueChangeHandler = NarrowOriginToSibling; + // NarrowOriginToSibling calls XcmpQueue's is_paused if Origin is sibling. Allows all other origins + type QueuePausedQuery = (MaintenanceMode, NarrowOriginToSibling); + type WeightInfo = pallet_message_queue::weights::SubstrateWeight; +} + +// Our AssetType. For now we only handle Xcm Assets +#[derive(Clone, Eq, Debug, PartialEq, Ord, PartialOrd, Encode, Decode, TypeInfo)] +pub enum AssetType { + Xcm(xcm::v3::Location), +} +impl Default for AssetType { + fn default() -> Self { + Self::Xcm(xcm::v3::Location::here()) + } +} + +impl From for AssetType { + fn from(location: xcm::v3::Location) -> Self { + Self::Xcm(location) + } +} + +// This can be removed once we fully adopt xcm::v4 everywhere +impl TryFrom for AssetType { + type Error = (); + fn try_from(location: Location) -> Result { + Ok(Self::Xcm(location.try_into()?)) + } +} + +impl Into> for AssetType { + fn into(self) -> Option { + match self { + Self::Xcm(location) => Some(location), + } + } +} + +impl Into> for AssetType { + fn into(self) -> Option { + match self { + Self::Xcm(location) => xcm_builder::V4V3LocationConverter::convert_back(&location), + } + } +} + +// Implementation on how to retrieve the AssetId from an AssetType +// We simply hash the AssetType and take the lowest 128 bits +impl From for AssetId { + fn from(asset: AssetType) -> AssetId { + match asset { + AssetType::Xcm(id) => { + let mut result: [u8; 16] = [0u8; 16]; + let hash: H256 = id.using_encoded(::Hashing::hash); + result.copy_from_slice(&hash.as_fixed_bytes()[0..16]); + u128::from_le_bytes(result) + } + } + } +} + +// Our currencyId. We distinguish for now between SelfReserve, and Others, defined by their Id. +#[derive(Clone, Eq, Debug, PartialEq, Ord, PartialOrd, Encode, Decode, TypeInfo)] +pub enum CurrencyId { + // Our native token + SelfReserve, + // Assets representing other chains native tokens + ForeignAsset(AssetId), + // Erc20 token + Erc20 { contract_address: H160 }, +} + +impl AccountIdToCurrencyId for Runtime { + fn account_to_currency_id(account: AccountId) -> Option { + Some(match account { + // the self-reserve currency is identified by the pallet-balances address + a if a == H160::from_low_u64_be(2050).into() => CurrencyId::SelfReserve, + // the rest of the currencies, by their corresponding erc20 address + _ => match Runtime::account_to_asset_id(account) { + // A foreign asset + Some((_prefix, asset_id)) => CurrencyId::ForeignAsset(asset_id), + // If no known prefix is identified, we consider that it's a "real" erc20 token + // (i.e. managed by a real smart contract) + None => CurrencyId::Erc20 { + contract_address: account.into(), + }, + }, + }) + } +} + +// How to convert from CurrencyId to Location +pub struct CurrencyIdToLocation(sp_std::marker::PhantomData); +impl sp_runtime::traits::Convert> + for CurrencyIdToLocation +where + AssetXConverter: MaybeEquivalence, +{ + fn convert(currency: CurrencyId) -> Option { + match currency { + // For now and until Xtokens is adapted to handle 0.9.16 version we use + // the old anchoring here + // This is not a problem in either cases, since the view of the destination + // chain does not change + // TODO! change this to NewAnchoringSelfReserve once xtokens is adapted for it + CurrencyId::SelfReserve => { + let multi: Location = SelfReserve::get(); + Some(multi) + } + CurrencyId::ForeignAsset(asset) => AssetXConverter::convert_back(&asset), + CurrencyId::Erc20 { contract_address } => { + let mut location = Erc20XcmBridgePalletLocation::get(); + location + .push_interior(Junction::AccountKey20 { + key: contract_address.0, + network: None, + }) + .ok(); + Some(location) + } + } + } +} + +parameter_types! { + pub const BaseXcmWeight: Weight = Weight::from_parts(200_000_000u64, 0); + pub const MaxAssetsForTransfer: usize = 2; + + // This is how we are going to detect whether the asset is a Reserve asset + // This however is the chain part only + pub SelfLocation: Location = Location::here(); + // We need this to be able to catch when someone is trying to execute a non- + // cross-chain transfer in xtokens through the absolute path way + pub SelfLocationAbsolute: Location = Location { + parents:1, + interior: [ + Parachain(ParachainInfo::parachain_id().into()) + ].into() + }; +} + +parameter_type_with_key! { + pub ParachainMinFee: |location: Location| -> Option { + match (location.parents, location.first_interior()) { + // Kusama AssetHub fee + (1, Some(Parachain(1000u32))) => Some(50_000_000u128), + _ => None, + } + }; +} + +impl orml_xtokens::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Balance = Balance; + type CurrencyId = CurrencyId; + type AccountIdToLocation = AccountIdToLocation; + type CurrencyIdConvert = CurrencyIdToLocation>; + type XcmExecutor = XcmExecutor; + type SelfLocation = SelfLocation; + type Weigher = XcmWeigher; + type BaseXcmWeight = BaseXcmWeight; + type UniversalLocation = UniversalLocation; + type MaxAssetsForTransfer = MaxAssetsForTransfer; + type MinXcmFee = ParachainMinFee; + type LocationsFilter = Everything; + type ReserveProvider = AbsoluteAndRelativeReserve; +} + +// 1 KSM should be enough +parameter_types! { + pub MaxHrmpRelayFee: Asset = (Location::parent(), 1_000_000_000_000u128).into(); +} + +// For now we only allow to transact in the relay, although this might change in the future +// Transactors just defines the chains in which we allow transactions to be issued through +// xcm +#[derive(Clone, Eq, Debug, PartialEq, Ord, PartialOrd, Encode, Decode, TypeInfo)] +pub enum Transactors { + Relay, +} + +// Default for benchmarking +#[cfg(feature = "runtime-benchmarks")] +impl Default for Transactors { + fn default() -> Self { + Transactors::Relay + } +} + +impl TryFrom for Transactors { + type Error = (); + fn try_from(value: u8) -> Result { + match value { + 0u8 => Ok(Transactors::Relay), + _ => Err(()), + } + } +} + +impl UtilityEncodeCall for Transactors { + fn encode_call(self, call: UtilityAvailableCalls) -> Vec { + match self { + Transactors::Relay => pallet_xcm_transactor::Pallet::::encode_call( + pallet_xcm_transactor::Pallet(sp_std::marker::PhantomData::), + call, + ), + } + } +} + +impl XcmTransact for Transactors { + fn destination(self) -> Location { + match self { + Transactors::Relay => Location::parent(), + } + } +} + +pub type DerivativeAddressRegistrationOrigin = + EitherOfDiverse, governance::custom_origins::GeneralAdmin>; + +impl pallet_xcm_transactor::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Balance = Balance; + type Transactor = Transactors; + type DerivativeAddressRegistrationOrigin = DerivativeAddressRegistrationOrigin; + type SovereignAccountDispatcherOrigin = EnsureRoot; + type CurrencyId = CurrencyId; + type AccountIdToLocation = AccountIdToLocation; + type CurrencyIdToLocation = CurrencyIdToLocation>; + type XcmSender = XcmRouter; + type SelfLocation = SelfLocation; + type Weigher = XcmWeigher; + type UniversalLocation = UniversalLocation; + type BaseXcmWeight = BaseXcmWeight; + type AssetTransactor = AssetTransactors; + type ReserveProvider = AbsoluteAndRelativeReserve; + type WeightInfo = moonbeam_weights::pallet_xcm_transactor::WeightInfo; + type HrmpManipulatorOrigin = GeneralAdminOrRoot; + type HrmpOpenOrigin = FastGeneralAdminOrRoot; + type MaxHrmpFee = xcm_builder::Case; +} + +parameter_types! { + // This is the relative view of erc20 assets. + // Identified by this prefix + AccountKey20(contractAddress) + // We use the RELATIVE multilocation + pub Erc20XcmBridgePalletLocation: Location = Location { + parents:0, + interior: [ + PalletInstance(::index() as u8) + ].into() + }; + + // To be able to support almost all erc20 implementations, + // we provide a sufficiently hight gas limit. + pub Erc20XcmBridgeTransferGasLimit: u64 = 400_000; +} + +impl pallet_erc20_xcm_bridge::Config for Runtime { + type AccountIdConverter = LocationToH160; + type Erc20MultilocationPrefix = Erc20XcmBridgePalletLocation; + type Erc20TransferGasLimit = Erc20XcmBridgeTransferGasLimit; + type EvmRunner = EvmRunnerPrecompileOrEthXcm; +} + +#[cfg(feature = "runtime-benchmarks")] +mod testing { + use super::*; + use xcm_builder::V4V3LocationConverter; + + /// This From exists for benchmarking purposes. It has the potential side-effect of calling + /// AssetManager::set_asset_type_asset_id() and should NOT be used in any production code. + impl From for CurrencyId { + fn from(location: Location) -> CurrencyId { + use xcm_primitives::AssetTypeGetter; + + // If it does not exist, for benchmarking purposes, we create the association + let asset_id = if let Some(asset_id) = + AsAssetType::::convert_location(&location) + { + asset_id + } else { + let asset_type = AssetType::Xcm( + V4V3LocationConverter::convert(&location).expect("convert to v3"), + ); + let asset_id: AssetId = asset_type.clone().into(); + AssetManager::set_asset_type_asset_id(asset_type, asset_id); + asset_id + }; + + CurrencyId::ForeignAsset(asset_id) + } + } +} diff --git a/tracing/3001/runtime/moonriver/tests/common/mod.rs b/tracing/3001/runtime/moonriver/tests/common/mod.rs new file mode 100644 index 00000000..99000bb5 --- /dev/null +++ b/tracing/3001/runtime/moonriver/tests/common/mod.rs @@ -0,0 +1,401 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +#![allow(dead_code)] + +use cumulus_primitives_parachain_inherent::ParachainInherentData; +use fp_evm::GenesisAccount; +use frame_support::{ + assert_ok, + traits::{OnFinalize, OnInitialize}, +}; +pub use moonriver_runtime::{ + asset_config::AssetRegistrarMetadata, currency::MOVR, xcm_config::AssetType, AccountId, + AssetId, AssetManager, AsyncBacking, AuthorInherent, Balance, Ethereum, InflationInfo, + ParachainStaking, Range, Runtime, RuntimeCall, RuntimeEvent, System, TransactionConverter, + UncheckedExtrinsic, HOURS, +}; +use nimbus_primitives::{NimbusId, NIMBUS_ENGINE_ID}; +use polkadot_parachain::primitives::HeadData; +use sp_consensus_slots::Slot; +use sp_core::{Encode, H160}; +use sp_runtime::{traits::Dispatchable, BuildStorage, Digest, DigestItem, Perbill, Percent}; + +use std::collections::BTreeMap; + +use fp_rpc::ConvertTransaction; +use pallet_transaction_payment::Multiplier; + +// A valid signed Alice transfer. +pub const VALID_ETH_TX: &str = + "02f86d8205018085174876e80085e8d4a5100082520894f24ff3a9cf04c71dbc94d0b566f7a27b9456\ + 6cac8080c001a0e1094e1a52520a75c0255db96132076dd0f1263089f838bea548cbdbfc64a4d19f031c\ + 92a8cb04e2d68d20a6158d542a07ac440cc8d07b6e36af02db046d92df"; + +// An invalid signed Alice transfer with a gas limit artifically set to 0. +pub const INVALID_ETH_TX: &str = + "f86180843b9aca00809412cb274aad8251c875c0bf6872b67d9983e53fdd01801ca00e28ba2dd3c5a\ + 3fd467d4afd7aefb4a34b373314fff470bb9db743a84d674a0aa06e5994f2d07eafe1c37b4ce5471ca\ + ecec29011f6f5bf0b1a552c55ea348df35f"; + +pub fn rpc_run_to_block(n: u32) { + while System::block_number() < n { + Ethereum::on_finalize(System::block_number()); + System::set_block_number(System::block_number() + 1); + Ethereum::on_initialize(System::block_number()); + } +} + +/// Utility function that advances the chain to the desired block number. +/// If an author is provided, that author information is injected to all the blocks in the meantime. +pub fn run_to_block(n: u32, author: Option) { + // Finalize the first block + Ethereum::on_finalize(System::block_number()); + while System::block_number() < n { + // Set the new block number and author + match author { + Some(ref author) => { + let pre_digest = Digest { + logs: vec![DigestItem::PreRuntime(NIMBUS_ENGINE_ID, author.encode())], + }; + System::reset_events(); + System::initialize( + &(System::block_number() + 1), + &System::parent_hash(), + &pre_digest, + ); + } + None => { + System::set_block_number(System::block_number() + 1); + } + } + + increase_last_relay_slot_number(1); + + // Initialize the new block + AuthorInherent::on_initialize(System::block_number()); + ParachainStaking::on_initialize(System::block_number()); + Ethereum::on_initialize(System::block_number()); + + // Finalize the block + Ethereum::on_finalize(System::block_number()); + ParachainStaking::on_finalize(System::block_number()); + } +} + +pub fn last_event() -> RuntimeEvent { + System::events().pop().expect("Event expected").event +} + +// Helper function to give a simple evm context suitable for tests. +// We can remove this once https://github.com/rust-blockchain/evm/pull/35 +// is in our dependency graph. +pub fn evm_test_context() -> fp_evm::Context { + fp_evm::Context { + address: Default::default(), + caller: Default::default(), + apparent_value: From::from(0), + } +} + +// Test struct with the purpose of initializing xcm assets +#[derive(Clone)] +pub struct XcmAssetInitialization { + pub asset_type: AssetType, + pub metadata: AssetRegistrarMetadata, + pub balances: Vec<(AccountId, Balance)>, + pub is_sufficient: bool, +} + +pub struct ExtBuilder { + // endowed accounts with balances + balances: Vec<(AccountId, Balance)>, + // [collator, amount] + collators: Vec<(AccountId, Balance)>, + // [delegator, collator, nomination_amount] + delegations: Vec<(AccountId, AccountId, Balance, Percent)>, + // per-round inflation config + inflation: InflationInfo, + // AuthorId -> AccoutId mappings + mappings: Vec<(NimbusId, AccountId)>, + // Crowdloan fund + crowdloan_fund: Balance, + // Chain id + chain_id: u64, + // EVM genesis accounts + evm_accounts: BTreeMap, + // [assettype, metadata, Vec, is_sufficient] + xcm_assets: Vec, + safe_xcm_version: Option, +} + +impl Default for ExtBuilder { + fn default() -> ExtBuilder { + ExtBuilder { + balances: vec![], + delegations: vec![], + collators: vec![], + inflation: InflationInfo { + expect: Range { + min: 100_000 * MOVR, + ideal: 200_000 * MOVR, + max: 500_000 * MOVR, + }, + // not used + annual: Range { + min: Perbill::from_percent(50), + ideal: Perbill::from_percent(50), + max: Perbill::from_percent(50), + }, + // unrealistically high parameterization, only for testing + round: Range { + min: Perbill::from_percent(5), + ideal: Perbill::from_percent(5), + max: Perbill::from_percent(5), + }, + }, + mappings: vec![], + crowdloan_fund: 0, + chain_id: CHAIN_ID, + evm_accounts: BTreeMap::new(), + xcm_assets: vec![], + safe_xcm_version: None, + } + } +} + +impl ExtBuilder { + pub fn with_evm_accounts(mut self, accounts: BTreeMap) -> Self { + self.evm_accounts = accounts; + self + } + + pub fn with_balances(mut self, balances: Vec<(AccountId, Balance)>) -> Self { + self.balances = balances; + self + } + + pub fn with_collators(mut self, collators: Vec<(AccountId, Balance)>) -> Self { + self.collators = collators; + self + } + + pub fn with_delegations(mut self, delegations: Vec<(AccountId, AccountId, Balance)>) -> Self { + self.delegations = delegations + .into_iter() + .map(|d| (d.0, d.1, d.2, Percent::zero())) + .collect(); + self + } + + pub fn with_crowdloan_fund(mut self, crowdloan_fund: Balance) -> Self { + self.crowdloan_fund = crowdloan_fund; + self + } + + pub fn with_mappings(mut self, mappings: Vec<(NimbusId, AccountId)>) -> Self { + self.mappings = mappings; + self + } + + #[allow(dead_code)] + pub fn with_inflation(mut self, inflation: InflationInfo) -> Self { + self.inflation = inflation; + self + } + + pub fn with_xcm_assets(mut self, xcm_assets: Vec) -> Self { + self.xcm_assets = xcm_assets; + self + } + + pub fn with_safe_xcm_version(mut self, safe_xcm_version: u32) -> Self { + self.safe_xcm_version = Some(safe_xcm_version); + self + } + + pub fn build(self) -> sp_io::TestExternalities { + let mut t = frame_system::GenesisConfig::::default() + .build_storage() + .unwrap(); + + pallet_balances::GenesisConfig:: { + balances: self.balances, + } + .assimilate_storage(&mut t) + .unwrap(); + + pallet_parachain_staking::GenesisConfig:: { + candidates: self.collators, + delegations: self.delegations, + inflation_config: self.inflation, + collator_commission: Perbill::from_percent(20), + parachain_bond_reserve_percent: Percent::from_percent(30), + blocks_per_round: 2 * HOURS, + num_selected_candidates: 8, + } + .assimilate_storage(&mut t) + .unwrap(); + + pallet_crowdloan_rewards::GenesisConfig:: { + funded_amount: self.crowdloan_fund, + } + .assimilate_storage(&mut t) + .unwrap(); + + pallet_author_mapping::GenesisConfig:: { + mappings: self.mappings, + } + .assimilate_storage(&mut t) + .unwrap(); + + let genesis_config = pallet_evm_chain_id::GenesisConfig:: { + chain_id: self.chain_id, + ..Default::default() + }; + genesis_config.assimilate_storage(&mut t).unwrap(); + + let genesis_config = pallet_evm::GenesisConfig:: { + accounts: self.evm_accounts, + ..Default::default() + }; + genesis_config.assimilate_storage(&mut t).unwrap(); + + let genesis_config = pallet_ethereum::GenesisConfig:: { + ..Default::default() + }; + genesis_config.assimilate_storage(&mut t).unwrap(); + + let genesis_config = pallet_xcm::GenesisConfig:: { + safe_xcm_version: self.safe_xcm_version, + ..Default::default() + }; + genesis_config.assimilate_storage(&mut t).unwrap(); + + let genesis_config = pallet_transaction_payment::GenesisConfig:: { + multiplier: Multiplier::from(10u128), + ..Default::default() + }; + genesis_config.assimilate_storage(&mut t).unwrap(); + + let mut ext = sp_io::TestExternalities::new(t); + let xcm_assets = self.xcm_assets.clone(); + ext.execute_with(|| { + // If any xcm assets specified, we register them here + for xcm_asset_initialization in xcm_assets { + let asset_id: AssetId = xcm_asset_initialization.asset_type.clone().into(); + AssetManager::register_foreign_asset( + root_origin(), + xcm_asset_initialization.asset_type, + xcm_asset_initialization.metadata, + 1, + xcm_asset_initialization.is_sufficient, + ) + .unwrap(); + for (account, balance) in xcm_asset_initialization.balances { + moonriver_runtime::Assets::mint( + origin_of(AssetManager::account_id()), + asset_id.into(), + account, + balance, + ) + .unwrap(); + } + } + System::set_block_number(1); + }); + ext + } +} + +pub const CHAIN_ID: u64 = 1281; +pub const ALICE: [u8; 20] = [4u8; 20]; +pub const ALICE_NIMBUS: [u8; 32] = [4u8; 32]; +pub const BOB: [u8; 20] = [5u8; 20]; +pub const CHARLIE: [u8; 20] = [6u8; 20]; +pub const DAVE: [u8; 20] = [7u8; 20]; +pub const EVM_CONTRACT: [u8; 20] = [8u8; 20]; + +pub fn origin_of(account_id: AccountId) -> ::RuntimeOrigin { + ::RuntimeOrigin::signed(account_id) +} + +pub fn inherent_origin() -> ::RuntimeOrigin { + ::RuntimeOrigin::none() +} + +pub fn root_origin() -> ::RuntimeOrigin { + ::RuntimeOrigin::root() +} + +/// Mock the inherent that sets validation data in ParachainSystem, which +/// contains the `relay_chain_block_number`, which is used in `author-filter` as a +/// source of randomness to filter valid authors at each block. +pub fn set_parachain_inherent_data() { + use cumulus_primitives_core::PersistedValidationData; + use cumulus_test_relay_sproof_builder::RelayStateSproofBuilder; + + let mut relay_sproof = RelayStateSproofBuilder::default(); + relay_sproof.para_id = 100u32.into(); + relay_sproof.included_para_head = Some(HeadData(vec![1, 2, 3])); + + let additional_key_values = vec![( + moonbeam_core_primitives::well_known_relay_keys::TIMESTAMP_NOW.to_vec(), + sp_timestamp::Timestamp::default().encode(), + )]; + + relay_sproof.additional_key_values = additional_key_values; + + let (relay_parent_storage_root, relay_chain_state) = relay_sproof.into_state_root_and_proof(); + + let vfp = PersistedValidationData { + relay_parent_number: 1u32, + relay_parent_storage_root, + ..Default::default() + }; + let parachain_inherent_data = ParachainInherentData { + validation_data: vfp, + relay_chain_state: relay_chain_state, + downward_messages: Default::default(), + horizontal_messages: Default::default(), + }; + assert_ok!(RuntimeCall::ParachainSystem( + cumulus_pallet_parachain_system::Call::::set_validation_data { + data: parachain_inherent_data + } + ) + .dispatch(inherent_origin())); +} + +pub fn unchecked_eth_tx(raw_hex_tx: &str) -> UncheckedExtrinsic { + let converter = TransactionConverter; + converter.convert_transaction(ethereum_transaction(raw_hex_tx)) +} + +pub fn ethereum_transaction(raw_hex_tx: &str) -> pallet_ethereum::Transaction { + let bytes = hex::decode(raw_hex_tx).expect("Transaction bytes."); + let transaction = ethereum::EnvelopedDecodable::decode(&bytes[..]); + assert!(transaction.is_ok()); + transaction.unwrap() +} + +pub(crate) fn increase_last_relay_slot_number(amount: u64) { + let last_relay_slot = u64::from(AsyncBacking::slot_info().unwrap_or_default().0); + frame_support::storage::unhashed::put( + &frame_support::storage::storage_prefix(b"AsyncBacking", b"SlotInfo"), + &((Slot::from(last_relay_slot + amount), 0)), + ); +} diff --git a/tracing/3001/runtime/moonriver/tests/evm_tracing.rs b/tracing/3001/runtime/moonriver/tests/evm_tracing.rs new file mode 100644 index 00000000..79fb9265 --- /dev/null +++ b/tracing/3001/runtime/moonriver/tests/evm_tracing.rs @@ -0,0 +1,144 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Moonriver EVM tracing Integration Tests + +mod common; + +#[cfg(test)] +#[cfg(feature = "evm-tracing")] +mod tests { + use super::common::*; + + use pallet_evm::AddressMapping; + use sp_core::{H160, U256}; + + use moonbeam_core_primitives::Header; + use moonbeam_rpc_primitives_debug::runtime_decl_for_debug_runtime_api::DebugRuntimeApi; + use std::str::FromStr; + + #[test] + fn debug_runtime_api_trace_transaction() { + let alith = ::AddressMapping::into_account_id( + H160::from_str("6be02d1d3665660d22ff9624b7be0551ee1ac91b") + .expect("internal H160 is valid; qed"), + ); + ExtBuilder::default() + .with_balances(vec![ + (alith, 2_000 * MOVR), + (AccountId::from(ALICE), 2_000 * MOVR), + (AccountId::from(BOB), 1_000 * MOVR), + ]) + .build() + .execute_with(|| { + let non_eth_uxt = UncheckedExtrinsic::new_unsigned( + pallet_balances::Call::::transfer_allow_death { + dest: AccountId::from(BOB), + value: 1 * MOVR, + } + .into(), + ); + let transaction = ethereum_transaction(VALID_ETH_TX); + let eth_uxt = unchecked_eth_tx(VALID_ETH_TX); + let block = Header { + digest: Default::default(), + extrinsics_root: Default::default(), + number: 1, + parent_hash: Default::default(), + state_root: Default::default(), + }; + assert!(Runtime::trace_transaction( + vec![non_eth_uxt.clone(), eth_uxt, non_eth_uxt.clone()], + &transaction, + &block + ) + .is_ok()); + }); + } + + #[test] + fn debug_runtime_api_trace_block() { + let alith = ::AddressMapping::into_account_id( + H160::from_str("6be02d1d3665660d22ff9624b7be0551ee1ac91b") + .expect("internal H160 is valid; qed"), + ); + ExtBuilder::default() + .with_balances(vec![ + (alith, 2_000 * MOVR), + (AccountId::from(ALICE), 2_000 * MOVR), + (AccountId::from(BOB), 1_000 * MOVR), + ]) + .build() + .execute_with(|| { + let non_eth_uxt = UncheckedExtrinsic::new_unsigned( + pallet_balances::Call::::transfer_allow_death { + dest: AccountId::from(BOB), + value: 1 * MOVR, + } + .into(), + ); + let eth_uxt = unchecked_eth_tx(VALID_ETH_TX); + let eth_tx = ethereum_transaction(VALID_ETH_TX); + let eth_extrinsic_hash = eth_tx.hash(); + let block = Header { + digest: Default::default(), + extrinsics_root: Default::default(), + number: 1, + parent_hash: Default::default(), + state_root: Default::default(), + }; + assert!(Runtime::trace_block( + vec![non_eth_uxt.clone(), eth_uxt.clone(), non_eth_uxt, eth_uxt], + vec![eth_extrinsic_hash, eth_extrinsic_hash], + &block + ) + .is_ok()); + }); + } + + #[test] + fn debug_runtime_api_trace_call() { + let block = Header { + digest: Default::default(), + extrinsics_root: Default::default(), + number: 1, + parent_hash: Default::default(), + state_root: Default::default(), + }; + let alith = H160::from_str("6be02d1d3665660d22ff9624b7be0551ee1ac91b") + .expect("internal H160 is valid; qed"); + let alith_account_id = + ::AddressMapping::into_account_id(alith); + ExtBuilder::default() + .with_balances(vec![(alith_account_id, 100 * MOVR)]) + .build() + .execute_with(|| { + assert!(Runtime::trace_call( + &block, + alith, + H160::random(), + Vec::new(), + U256::from(99), + U256::max_value(), + Some(U256::one()), + Some(U256::one()), + None, + None, + ) + .is_ok()); + }); + } +} diff --git a/tracing/3001/runtime/moonriver/tests/integration_test.rs b/tracing/3001/runtime/moonriver/tests/integration_test.rs new file mode 100644 index 00000000..1cbfb588 --- /dev/null +++ b/tracing/3001/runtime/moonriver/tests/integration_test.rs @@ -0,0 +1,2798 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Moonriver Runtime Integration Tests + +#![cfg(test)] + +mod common; +use common::*; + +use fp_evm::{Context, IsPrecompileResult}; +use frame_support::traits::fungible::Inspect; +use frame_support::{ + assert_noop, assert_ok, + dispatch::DispatchClass, + traits::{Currency as CurrencyT, EnsureOrigin, PalletInfo, StorageInfo, StorageInfoTrait}, + weights::{constants::WEIGHT_REF_TIME_PER_SECOND, Weight}, + StorageHasher, Twox128, +}; +use moonbeam_xcm_benchmarks::weights::XcmWeight; +use moonkit_xcm_primitives::AccountIdAssetIdConversion; +use moonriver_runtime::currency::{GIGAWEI, WEI}; +use moonriver_runtime::{ + asset_config::ForeignAssetInstance, + xcm_config::{CurrencyId, SelfReserve}, + AssetId, Balances, CrowdloanRewards, Executive, OpenTechCommitteeCollective, PolkadotXcm, + Precompiles, RuntimeBlockWeights, TransactionPayment, TransactionPaymentAsGasPrice, + TreasuryCouncilCollective, XTokens, XcmTransactor, FOREIGN_ASSET_PRECOMPILE_ADDRESS_PREFIX, + WEEKS, +}; +use nimbus_primitives::NimbusId; +use pallet_evm::PrecompileSet; +use pallet_evm_precompileset_assets_erc20::{SELECTOR_LOG_APPROVAL, SELECTOR_LOG_TRANSFER}; +use pallet_transaction_payment::Multiplier; +use pallet_xcm_transactor::{Currency, CurrencyPayment, TransactWeights}; +use parity_scale_codec::Encode; +use polkadot_parachain::primitives::Sibling; +use precompile_utils::{ + precompile_set::{is_precompile_or_fail, IsActivePrecompile}, + prelude::*, + testing::*, +}; +use sha3::{Digest, Keccak256}; +use sp_core::{ByteArray, Pair, H160, U256}; +use sp_runtime::{ + traits::{Convert, Dispatchable}, + BuildStorage, DispatchError, ModuleError, +}; +use std::str::from_utf8; +use xcm::latest::prelude::*; +use xcm::{VersionedAssets, VersionedLocation}; +use xcm_builder::{ParentIsPreset, SiblingParachainConvertsVia}; +use xcm_executor::traits::ConvertLocation; + +type BatchPCall = pallet_evm_precompile_batch::BatchPrecompileCall; +type CrowdloanRewardsPCall = + pallet_evm_precompile_crowdloan_rewards::CrowdloanRewardsPrecompileCall; +type XcmUtilsPCall = pallet_evm_precompile_xcm_utils::XcmUtilsPrecompileCall< + Runtime, + moonriver_runtime::xcm_config::XcmExecutorConfig, +>; +type XtokensPCall = pallet_evm_precompile_xtokens::XtokensPrecompileCall; +type ForeignAssetsPCall = pallet_evm_precompileset_assets_erc20::Erc20AssetsPrecompileSetCall< + Runtime, + ForeignAssetInstance, +>; +type XcmTransactorV2PCall = + pallet_evm_precompile_xcm_transactor::v2::XcmTransactorPrecompileV2Call; + +const BASE_FEE_GENESIS: u128 = 100 * GIGAWEI; + +#[test] +fn xcmp_queue_controller_origin_is_root() { + // important for the XcmExecutionManager impl of PauseExecution which uses root origin + // to suspend/resume XCM execution in xcmp_queue::on_idle + assert_ok!( + ::ControllerOrigin::ensure_origin(root_origin()) + ); +} + +#[test] +fn verify_pallet_prefixes() { + fn is_pallet_prefix(name: &str) { + // Compares the unhashed pallet prefix in the `StorageInstance` implementation by every + // storage item in the pallet P. This pallet prefix is used in conjunction with the + // item name to get the unique storage key: hash(PalletPrefix) + hash(StorageName) + // https://github.com/paritytech/substrate/blob/master/frame/support/procedural/src/pallet/ + // expand/storage.rs#L389-L401 + assert_eq!( + ::PalletInfo::name::

(), + Some(name) + ); + } + // TODO: use StorageInfoTrait from https://github.com/paritytech/substrate/pull/9246 + // This is now available with polkadot-v0.9.9 dependencies + is_pallet_prefix::("System"); + is_pallet_prefix::("Utility"); + is_pallet_prefix::("ParachainSystem"); + is_pallet_prefix::("TransactionPayment"); + is_pallet_prefix::("ParachainInfo"); + is_pallet_prefix::("EthereumChainId"); + is_pallet_prefix::("EVM"); + is_pallet_prefix::("Ethereum"); + is_pallet_prefix::("ParachainStaking"); + is_pallet_prefix::("MaintenanceMode"); + is_pallet_prefix::("Scheduler"); + is_pallet_prefix::( + "OpenTechCommitteeCollective", + ); + is_pallet_prefix::("Treasury"); + is_pallet_prefix::("AuthorInherent"); + is_pallet_prefix::("AuthorFilter"); + is_pallet_prefix::("CrowdloanRewards"); + is_pallet_prefix::("AuthorMapping"); + is_pallet_prefix::("Identity"); + is_pallet_prefix::("XcmpQueue"); + is_pallet_prefix::("CumulusXcm"); + is_pallet_prefix::("DmpQueue"); + is_pallet_prefix::("PolkadotXcm"); + is_pallet_prefix::("Assets"); + is_pallet_prefix::("XTokens"); + is_pallet_prefix::("AssetManager"); + is_pallet_prefix::("Migrations"); + is_pallet_prefix::("XcmTransactor"); + is_pallet_prefix::("ProxyGenesisCompanion"); + is_pallet_prefix::("MoonbeamOrbiters"); + is_pallet_prefix::("TreasuryCouncilCollective"); + is_pallet_prefix::("MoonbeamLazyMigrations"); + is_pallet_prefix::("RelayStorageRoots"); + + let prefix = |pallet_name, storage_name| { + let mut res = [0u8; 32]; + res[0..16].copy_from_slice(&Twox128::hash(pallet_name)); + res[16..32].copy_from_slice(&Twox128::hash(storage_name)); + res.to_vec() + }; + assert_eq!( + ::storage_info(), + vec![ + StorageInfo { + pallet_name: b"Timestamp".to_vec(), + storage_name: b"Now".to_vec(), + prefix: prefix(b"Timestamp", b"Now"), + max_values: Some(1), + max_size: Some(8), + }, + StorageInfo { + pallet_name: b"Timestamp".to_vec(), + storage_name: b"DidUpdate".to_vec(), + prefix: prefix(b"Timestamp", b"DidUpdate"), + max_values: Some(1), + max_size: Some(1), + } + ] + ); + assert_eq!( + ::storage_info(), + vec![ + StorageInfo { + pallet_name: b"Balances".to_vec(), + storage_name: b"TotalIssuance".to_vec(), + prefix: prefix(b"Balances", b"TotalIssuance"), + max_values: Some(1), + max_size: Some(16), + }, + StorageInfo { + pallet_name: b"Balances".to_vec(), + storage_name: b"InactiveIssuance".to_vec(), + prefix: prefix(b"Balances", b"InactiveIssuance"), + max_values: Some(1), + max_size: Some(16), + }, + StorageInfo { + pallet_name: b"Balances".to_vec(), + storage_name: b"Account".to_vec(), + prefix: prefix(b"Balances", b"Account"), + max_values: None, + max_size: Some(100), + }, + StorageInfo { + pallet_name: b"Balances".to_vec(), + storage_name: b"Locks".to_vec(), + prefix: prefix(b"Balances", b"Locks"), + max_values: None, + max_size: Some(1287), + }, + StorageInfo { + pallet_name: b"Balances".to_vec(), + storage_name: b"Reserves".to_vec(), + prefix: prefix(b"Balances", b"Reserves"), + max_values: None, + max_size: Some(1037), + }, + StorageInfo { + pallet_name: b"Balances".to_vec(), + storage_name: b"Holds".to_vec(), + prefix: prefix(b"Balances", b"Holds"), + max_values: None, + max_size: Some(55), + }, + StorageInfo { + pallet_name: b"Balances".to_vec(), + storage_name: b"Freezes".to_vec(), + prefix: prefix(b"Balances", b"Freezes"), + max_values: None, + max_size: Some(37), + }, + ] + ); + assert_eq!( + ::storage_info(), + vec![ + StorageInfo { + pallet_name: b"Proxy".to_vec(), + storage_name: b"Proxies".to_vec(), + prefix: prefix(b"Proxy", b"Proxies"), + max_values: None, + max_size: Some(845), + }, + StorageInfo { + pallet_name: b"Proxy".to_vec(), + storage_name: b"Announcements".to_vec(), + prefix: prefix(b"Proxy", b"Announcements"), + max_values: None, + max_size: Some(1837), + } + ] + ); + assert_eq!( + ::storage_info(), + vec![StorageInfo { + pallet_name: b"MaintenanceMode".to_vec(), + storage_name: b"MaintenanceMode".to_vec(), + prefix: prefix(b"MaintenanceMode", b"MaintenanceMode"), + max_values: Some(1), + max_size: None, + },] + ); + assert_eq!( + ::storage_info(), + vec![ + StorageInfo { + pallet_name: b"RelayStorageRoots".to_vec(), + storage_name: b"RelayStorageRoot".to_vec(), + prefix: prefix(b"RelayStorageRoots", b"RelayStorageRoot"), + max_values: None, + max_size: Some(44), + }, + StorageInfo { + pallet_name: b"RelayStorageRoots".to_vec(), + storage_name: b"RelayStorageRootKeys".to_vec(), + prefix: prefix(b"RelayStorageRoots", b"RelayStorageRootKeys"), + max_values: Some(1), + max_size: Some(121), + }, + ] + ); +} + +#[test] +fn test_collectives_storage_item_prefixes() { + for StorageInfo { pallet_name, .. } in + ::storage_info() + { + assert_eq!(pallet_name, b"TreasuryCouncilCollective".to_vec()); + } + + for StorageInfo { pallet_name, .. } in + ::storage_info() + { + assert_eq!(pallet_name, b"OpenTechCommitteeCollective".to_vec()); + } +} + +#[test] +fn collective_set_members_root_origin_works() { + ExtBuilder::default().build().execute_with(|| { + // TreasuryCouncilCollective + assert_ok!(TreasuryCouncilCollective::set_members( + ::RuntimeOrigin::root(), + vec![AccountId::from(ALICE), AccountId::from(BOB)], + Some(AccountId::from(ALICE)), + 2 + )); + // OpenTechCommitteeCollective + assert_ok!(OpenTechCommitteeCollective::set_members( + ::RuntimeOrigin::root(), + vec![AccountId::from(ALICE), AccountId::from(BOB)], + Some(AccountId::from(ALICE)), + 2 + )); + }); +} + +#[test] +fn collective_set_members_general_admin_origin_works() { + use moonriver_runtime::{ + governance::custom_origins::Origin as CustomOrigin, OriginCaller, Utility, + }; + + ExtBuilder::default().build().execute_with(|| { + let root_caller = ::RuntimeOrigin::root(); + let alice = AccountId::from(ALICE); + + // TreasuryCouncilCollective + let _ = Utility::dispatch_as( + root_caller.clone(), + Box::new(OriginCaller::Origins(CustomOrigin::GeneralAdmin)), + Box::new( + pallet_collective::Call::::set_members { + new_members: vec![alice, AccountId::from(BOB)], + prime: Some(alice), + old_count: 2, + } + .into(), + ), + ); + // OpenTechCommitteeCollective + let _ = Utility::dispatch_as( + root_caller, + Box::new(OriginCaller::Origins(CustomOrigin::GeneralAdmin)), + Box::new( + pallet_collective::Call::::set_members { + new_members: vec![alice, AccountId::from(BOB)], + prime: Some(alice), + old_count: 2, + } + .into(), + ), + ); + + assert_eq!( + System::events() + .into_iter() + .filter_map(|r| { + match r.event { + RuntimeEvent::Utility(pallet_utility::Event::DispatchedAs { result }) + if result.is_ok() => + { + Some(true) + } + _ => None, + } + }) + .collect::>() + .len(), + 2 + ) + }); +} + +#[test] +fn collective_set_members_signed_origin_does_not_work() { + let alice = AccountId::from(ALICE); + ExtBuilder::default().build().execute_with(|| { + // TreasuryCouncilCollective + assert!(TreasuryCouncilCollective::set_members( + ::RuntimeOrigin::signed(alice), + vec![AccountId::from(ALICE), AccountId::from(BOB)], + Some(AccountId::from(ALICE)), + 2 + ) + .is_err()); + // OpenTechCommitteeCollective + assert!(OpenTechCommitteeCollective::set_members( + ::RuntimeOrigin::signed(alice), + vec![AccountId::from(ALICE), AccountId::from(BOB)], + Some(AccountId::from(ALICE)), + 2 + ) + .is_err()); + }); +} + +#[test] +fn verify_pallet_indices() { + fn is_pallet_index(index: usize) { + assert_eq!( + ::PalletInfo::index::

(), + Some(index) + ); + } + // System support + is_pallet_index::(0); + is_pallet_index::(1); + is_pallet_index::(3); + is_pallet_index::(4); + // Monetary + is_pallet_index::(10); + is_pallet_index::(11); + // Consensus support + is_pallet_index::(20); + is_pallet_index::(21); + is_pallet_index::(22); + is_pallet_index::(23); + is_pallet_index::(24); + // Handy utilities + is_pallet_index::(30); + is_pallet_index::(31); + is_pallet_index::(32); + is_pallet_index::(33); + is_pallet_index::(34); + is_pallet_index::(35); + is_pallet_index::(37); + // Ethereum compatibility + is_pallet_index::(50); + is_pallet_index::(51); + is_pallet_index::(52); + // Governance + is_pallet_index::(60); + // is_pallet_index::(61); Removed + // Council + // is_pallet_index::(70); Removed + // is_pallet_index::(71); Removed + is_pallet_index::(72); + is_pallet_index::(73); + // Treasury + is_pallet_index::(80); + // Crowdloan + is_pallet_index::(90); + // XCM Stuff + is_pallet_index::(100); + is_pallet_index::(101); + is_pallet_index::(102); + is_pallet_index::(103); + is_pallet_index::(104); + is_pallet_index::(105); + is_pallet_index::(106); + is_pallet_index::(107); +} + +#[test] +fn verify_reserved_indices() { + use frame_metadata::*; + let metadata = moonriver_runtime::Runtime::metadata(); + let metadata = match metadata.1 { + RuntimeMetadata::V14(metadata) => metadata, + _ => panic!("metadata has been bumped, test needs to be updated"), + }; + // 40: Sudo + // 53: BaseFee + // 108: pallet_assets:: + let reserved = vec![40, 53, 108]; + let existing = metadata + .pallets + .iter() + .map(|p| p.index) + .collect::>(); + assert!(reserved.iter().all(|index| !existing.contains(index))); +} + +#[test] +fn verify_proxy_type_indices() { + assert_eq!(moonriver_runtime::ProxyType::Any as u8, 0); + assert_eq!(moonriver_runtime::ProxyType::NonTransfer as u8, 1); + assert_eq!(moonriver_runtime::ProxyType::Governance as u8, 2); + assert_eq!(moonriver_runtime::ProxyType::Staking as u8, 3); + assert_eq!(moonriver_runtime::ProxyType::CancelProxy as u8, 4); + assert_eq!(moonriver_runtime::ProxyType::Balances as u8, 5); + assert_eq!(moonriver_runtime::ProxyType::AuthorMapping as u8, 6); + assert_eq!(moonriver_runtime::ProxyType::IdentityJudgement as u8, 7); +} + +#[test] +fn join_collator_candidates() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), 20_000 * MOVR), + (AccountId::from(BOB), 20_000 * MOVR), + (AccountId::from(CHARLIE), 10_100 * MOVR), + (AccountId::from(DAVE), 10_000 * MOVR), + ]) + .with_collators(vec![ + (AccountId::from(ALICE), 10_000 * MOVR), + (AccountId::from(BOB), 10_000 * MOVR), + ]) + .with_delegations(vec![ + (AccountId::from(CHARLIE), AccountId::from(ALICE), 50 * MOVR), + (AccountId::from(CHARLIE), AccountId::from(BOB), 50 * MOVR), + ]) + .build() + .execute_with(|| { + assert_noop!( + ParachainStaking::join_candidates( + origin_of(AccountId::from(ALICE)), + 10_000 * MOVR, + 2u32 + ), + pallet_parachain_staking::Error::::CandidateExists + ); + assert_noop!( + ParachainStaking::join_candidates( + origin_of(AccountId::from(CHARLIE)), + 10_000 * MOVR, + 2u32 + ), + pallet_parachain_staking::Error::::DelegatorExists + ); + assert!(System::events().is_empty()); + assert_ok!(ParachainStaking::join_candidates( + origin_of(AccountId::from(DAVE)), + 10_000 * MOVR, + 2u32 + )); + assert_eq!( + last_event(), + RuntimeEvent::ParachainStaking( + pallet_parachain_staking::Event::JoinedCollatorCandidates { + account: AccountId::from(DAVE), + amount_locked: 10_000 * MOVR, + new_total_amt_locked: 30_100 * MOVR + } + ) + ); + let candidates = ParachainStaking::candidate_pool(); + assert_eq!(candidates.0[0].owner, AccountId::from(ALICE)); + assert_eq!(candidates.0[0].amount, 10_050 * MOVR); + assert_eq!(candidates.0[1].owner, AccountId::from(BOB)); + assert_eq!(candidates.0[1].amount, 10_050 * MOVR); + assert_eq!(candidates.0[2].owner, AccountId::from(DAVE)); + assert_eq!(candidates.0[2].amount, 10_000 * MOVR); + }); +} + +#[test] +fn transfer_through_evm_to_stake() { + ExtBuilder::default() + .with_balances(vec![(AccountId::from(ALICE), 20_000 * MOVR)]) + .build() + .execute_with(|| { + // Charlie has no balance => fails to stake + assert_noop!( + ParachainStaking::join_candidates( + origin_of(AccountId::from(CHARLIE)), + 10_000 * MOVR, + 2u32 + ), + DispatchError::Module(ModuleError { + index: 20, + error: [8, 0, 0, 0], + message: Some("InsufficientBalance") + }) + ); + // Alice transfer from free balance 20000 MOVR to Bob + assert_ok!(Balances::transfer_allow_death( + origin_of(AccountId::from(ALICE)), + AccountId::from(BOB), + 20_000 * MOVR, + )); + assert_eq!(Balances::free_balance(AccountId::from(BOB)), 20_000 * MOVR); + + let gas_limit = 100000u64; + let gas_price: U256 = BASE_FEE_GENESIS.into(); + // Bob transfers 10000 MOVR to Charlie via EVM + assert_ok!(RuntimeCall::EVM(pallet_evm::Call::::call { + source: H160::from(BOB), + target: H160::from(CHARLIE), + input: vec![], + value: (10_000 * MOVR).into(), + gas_limit, + max_fee_per_gas: gas_price, + max_priority_fee_per_gas: None, + nonce: None, + access_list: Vec::new(), + }) + .dispatch(::RuntimeOrigin::root())); + assert_eq!( + Balances::free_balance(AccountId::from(CHARLIE)), + 10_000 * MOVR, + ); + + // Charlie can stake now + assert_ok!(ParachainStaking::join_candidates( + origin_of(AccountId::from(CHARLIE)), + 10_000 * MOVR, + 2u32, + ),); + let candidates = ParachainStaking::candidate_pool(); + assert_eq!(candidates.0[0].owner, AccountId::from(CHARLIE)); + assert_eq!(candidates.0[0].amount, 10_000 * MOVR); + }); +} + +#[test] +fn reward_block_authors() { + ExtBuilder::default() + .with_balances(vec![ + // Alice gets 100 extra tokens for her mapping deposit + (AccountId::from(ALICE), 20_100 * MOVR), + (AccountId::from(BOB), 10_000 * MOVR), + ]) + .with_collators(vec![(AccountId::from(ALICE), 10_000 * MOVR)]) + .with_delegations(vec![( + AccountId::from(BOB), + AccountId::from(ALICE), + 500 * MOVR, + )]) + .with_mappings(vec![( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + AccountId::from(ALICE), + )]) + .build() + .execute_with(|| { + increase_last_relay_slot_number(1); + + // Just before round 3 + run_to_block(2399, Some(NimbusId::from_slice(&ALICE_NIMBUS).unwrap())); + + // no rewards doled out yet + assert_eq!( + Balances::usable_balance(AccountId::from(ALICE)), + 10_100 * MOVR, + ); + assert_eq!(Balances::usable_balance(AccountId::from(BOB)), 9500 * MOVR,); + run_to_block(2401, Some(NimbusId::from_slice(&ALICE_NIMBUS).unwrap())); + + // rewards minted and distributed + assert_eq!( + Balances::usable_balance(AccountId::from(ALICE)), + 11547666666208000000000, + ); + assert_eq!( + Balances::usable_balance(AccountId::from(BOB)), + 9557333332588000000000, + ); + }); +} + +#[test] +fn reward_block_authors_with_parachain_bond_reserved() { + ExtBuilder::default() + .with_balances(vec![ + // Alice gets 100 extra tokens for her mapping deposit + (AccountId::from(ALICE), 20_100 * MOVR), + (AccountId::from(BOB), 10_000 * MOVR), + (AccountId::from(CHARLIE), MOVR), + ]) + .with_collators(vec![(AccountId::from(ALICE), 10_000 * MOVR)]) + .with_delegations(vec![( + AccountId::from(BOB), + AccountId::from(ALICE), + 500 * MOVR, + )]) + .with_mappings(vec![( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + AccountId::from(ALICE), + )]) + .build() + .execute_with(|| { + increase_last_relay_slot_number(1); + assert_ok!(ParachainStaking::set_parachain_bond_account( + root_origin(), + AccountId::from(CHARLIE), + ),); + + // Stop just before round 2 + run_to_block(1199, Some(NimbusId::from_slice(&ALICE_NIMBUS).unwrap())); + + // no collator rewards doled out yet + assert_eq!( + Balances::usable_balance(AccountId::from(ALICE)), + 10_100 * MOVR, + ); + assert_eq!(Balances::usable_balance(AccountId::from(BOB)), 9500 * MOVR,); + + // Go to round 2 + run_to_block(1201, Some(NimbusId::from_slice(&ALICE_NIMBUS).unwrap())); + + // 30% reserved for parachain bond + assert_eq!( + Balances::usable_balance(AccountId::from(CHARLIE)), + 452515000000000000000, + ); + + // Go to round 3 + run_to_block(2401, Some(NimbusId::from_slice(&ALICE_NIMBUS).unwrap())); + + // rewards minted and distributed + assert_eq!( + Balances::usable_balance(AccountId::from(ALICE)), + 11117700475903800000000, + ); + assert_eq!( + Balances::usable_balance(AccountId::from(BOB)), + 9535834523343675000000, + ); + // 30% reserved for parachain bond again + assert_eq!( + Balances::usable_balance(AccountId::from(CHARLIE)), + 910802725000000000000, + ); + }); +} + +#[test] +fn initialize_crowdloan_addresses_with_batch_and_pay() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * MOVR), + (AccountId::from(BOB), 1_000 * MOVR), + ]) + .with_collators(vec![(AccountId::from(ALICE), 1_000 * MOVR)]) + .with_mappings(vec![( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + AccountId::from(ALICE), + )]) + .with_crowdloan_fund(3_000_000 * MOVR) + .build() + .execute_with(|| { + // set parachain inherent data + set_parachain_inherent_data(); + let init_block = CrowdloanRewards::init_vesting_block(); + // This matches the previous vesting + let end_block = init_block + 48 * WEEKS; + // Batch calls always succeed. We just need to check the inner event + assert_ok!( + RuntimeCall::Utility(pallet_utility::Call::::batch_all { + calls: vec![ + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::initialize_reward_vec { + rewards: vec![( + [4u8; 32].into(), + Some(AccountId::from(CHARLIE)), + 1_500_000 * MOVR + )] + } + ), + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::initialize_reward_vec { + rewards: vec![( + [5u8; 32].into(), + Some(AccountId::from(DAVE)), + 1_500_000 * MOVR + )] + } + ), + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::complete_initialization { + lease_ending_block: end_block + } + ) + ] + }) + .dispatch(root_origin()) + ); + // 30 percent initial payout + assert_eq!(Balances::balance(&AccountId::from(CHARLIE)), 450_000 * MOVR); + // 30 percent initial payout + assert_eq!(Balances::balance(&AccountId::from(DAVE)), 450_000 * MOVR); + let expected = RuntimeEvent::Utility(pallet_utility::Event::BatchCompleted); + assert_eq!(last_event(), expected); + // This one should fail, as we already filled our data + assert_ok!( + RuntimeCall::Utility(pallet_utility::Call::::batch { + calls: vec![RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::initialize_reward_vec { + rewards: vec![([4u8; 32].into(), Some(AccountId::from(ALICE)), 432000)] + } + )] + }) + .dispatch(root_origin()) + ); + let expected_fail = RuntimeEvent::Utility(pallet_utility::Event::BatchInterrupted { + index: 0, + error: DispatchError::Module(ModuleError { + index: 90, + error: [8, 0, 0, 0], + message: None, + }), + }); + assert_eq!(last_event(), expected_fail); + // Claim 1 block. + assert_ok!(CrowdloanRewards::claim(origin_of(AccountId::from(CHARLIE)))); + assert_ok!(CrowdloanRewards::claim(origin_of(AccountId::from(DAVE)))); + + let vesting_period = 48 * WEEKS as u128; + let per_block = (1_050_000 * MOVR) / vesting_period; + + assert_eq!( + CrowdloanRewards::accounts_payable(&AccountId::from(CHARLIE)) + .unwrap() + .claimed_reward, + (450_000 * MOVR) + per_block + ); + assert_eq!( + CrowdloanRewards::accounts_payable(&AccountId::from(DAVE)) + .unwrap() + .claimed_reward, + (450_000 * MOVR) + per_block + ); + // The total claimed reward should be equal to the account balance at this point. + assert_eq!( + Balances::balance(&AccountId::from(CHARLIE)), + (450_000 * MOVR) + per_block + ); + assert_eq!( + Balances::balance(&AccountId::from(DAVE)), + (450_000 * MOVR) + per_block + ); + assert_noop!( + CrowdloanRewards::claim(origin_of(AccountId::from(ALICE))), + pallet_crowdloan_rewards::Error::::NoAssociatedClaim + ); + }); +} + +#[test] +fn initialize_crowdloan_address_and_change_with_relay_key_sig() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * MOVR), + (AccountId::from(BOB), 1_000 * MOVR), + ]) + .with_collators(vec![(AccountId::from(ALICE), 1_000 * MOVR)]) + .with_mappings(vec![( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + AccountId::from(ALICE), + )]) + .with_crowdloan_fund(3_000_000 * MOVR) + .build() + .execute_with(|| { + // set parachain inherent data + set_parachain_inherent_data(); + let init_block = CrowdloanRewards::init_vesting_block(); + // This matches the previous vesting + let end_block = init_block + 4 * WEEKS; + + let (pair1, _) = sp_core::sr25519::Pair::generate(); + let (pair2, _) = sp_core::sr25519::Pair::generate(); + + let public1 = pair1.public(); + let public2 = pair2.public(); + + // signature: + // WRAP_BYTES|| NetworkIdentifier|| new_account || previous_account || WRAP_BYTES + let mut message = pallet_crowdloan_rewards::WRAPPED_BYTES_PREFIX.to_vec(); + message.append(&mut b"moonriver-".to_vec()); + message.append(&mut AccountId::from(DAVE).encode()); + message.append(&mut AccountId::from(CHARLIE).encode()); + message.append(&mut pallet_crowdloan_rewards::WRAPPED_BYTES_POSTFIX.to_vec()); + let signature1 = pair1.sign(&message); + let signature2 = pair2.sign(&message); + + // Batch calls always succeed. We just need to check the inner event + assert_ok!( + // two relay accounts pointing at the same reward account + RuntimeCall::Utility(pallet_utility::Call::::batch_all { + calls: vec![ + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::initialize_reward_vec { + rewards: vec![( + public1.into(), + Some(AccountId::from(CHARLIE)), + 1_500_000 * MOVR + )] + } + ), + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::initialize_reward_vec { + rewards: vec![( + public2.into(), + Some(AccountId::from(CHARLIE)), + 1_500_000 * MOVR + )] + } + ), + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::complete_initialization { + lease_ending_block: end_block + } + ) + ] + }) + .dispatch(root_origin()) + ); + // 30 percent initial payout + assert_eq!(Balances::balance(&AccountId::from(CHARLIE)), 900_000 * MOVR); + + // this should fail, as we are only providing one signature + assert_noop!( + CrowdloanRewards::change_association_with_relay_keys( + origin_of(AccountId::from(CHARLIE)), + AccountId::from(DAVE), + AccountId::from(CHARLIE), + vec![(public1.into(), signature1.clone().into())] + ), + pallet_crowdloan_rewards::Error::::InsufficientNumberOfValidProofs + ); + + // this should be valid + assert_ok!(CrowdloanRewards::change_association_with_relay_keys( + origin_of(AccountId::from(CHARLIE)), + AccountId::from(DAVE), + AccountId::from(CHARLIE), + vec![ + (public1.into(), signature1.into()), + (public2.into(), signature2.into()) + ] + )); + + assert_eq!( + CrowdloanRewards::accounts_payable(&AccountId::from(DAVE)) + .unwrap() + .claimed_reward, + (900_000 * MOVR) + ); + }); +} + +#[test] +fn claim_via_precompile() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * MOVR), + (AccountId::from(BOB), 1_000 * MOVR), + ]) + .with_collators(vec![(AccountId::from(ALICE), 1_000 * MOVR)]) + .with_mappings(vec![( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + AccountId::from(ALICE), + )]) + .with_crowdloan_fund(3_000_000 * MOVR) + .build() + .execute_with(|| { + // set parachain inherent data + set_parachain_inherent_data(); + let init_block = CrowdloanRewards::init_vesting_block(); + // This matches the previous vesting + let end_block = init_block + 4 * WEEKS; + // Batch calls always succeed. We just need to check the inner event + assert_ok!( + RuntimeCall::Utility(pallet_utility::Call::::batch_all { + calls: vec![ + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::initialize_reward_vec { + rewards: vec![( + [4u8; 32].into(), + Some(AccountId::from(CHARLIE)), + 1_500_000 * MOVR + )] + } + ), + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::initialize_reward_vec { + rewards: vec![( + [5u8; 32].into(), + Some(AccountId::from(DAVE)), + 1_500_000 * MOVR + )] + } + ), + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::complete_initialization { + lease_ending_block: end_block + } + ) + ] + }) + .dispatch(root_origin()) + ); + + assert!(CrowdloanRewards::initialized()); + + // 30 percent initial payout + assert_eq!(Balances::balance(&AccountId::from(CHARLIE)), 450_000 * MOVR); + // 30 percent initial payout + assert_eq!(Balances::balance(&AccountId::from(DAVE)), 450_000 * MOVR); + + let crowdloan_precompile_address = H160::from_low_u64_be(2049); + + // Alice uses the crowdloan precompile to claim through the EVM + let gas_limit = 100000u64; + let gas_price: U256 = BASE_FEE_GENESIS.into(); + + // Construct the call data (selector, amount) + let mut call_data = Vec::::from([0u8; 4]); + call_data[0..4].copy_from_slice(&Keccak256::digest(b"claim()")[0..4]); + + assert_ok!(RuntimeCall::EVM(pallet_evm::Call::::call { + source: H160::from(CHARLIE), + target: crowdloan_precompile_address, + input: call_data, + value: U256::zero(), // No value sent in EVM + gas_limit, + max_fee_per_gas: gas_price, + max_priority_fee_per_gas: None, + nonce: None, // Use the next nonce + access_list: Vec::new(), + }) + .dispatch(::RuntimeOrigin::root())); + + let vesting_period = 4 * WEEKS as u128; + let per_block = (1_050_000 * MOVR) / vesting_period; + + assert_eq!( + CrowdloanRewards::accounts_payable(&AccountId::from(CHARLIE)) + .unwrap() + .claimed_reward, + (450_000 * MOVR) + per_block + ); + }) +} + +#[test] +fn is_contributor_via_precompile() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * MOVR), + (AccountId::from(BOB), 1_000 * MOVR), + ]) + .with_collators(vec![(AccountId::from(ALICE), 1_000 * MOVR)]) + .with_mappings(vec![( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + AccountId::from(ALICE), + )]) + .with_crowdloan_fund(3_000_000 * MOVR) + .build() + .execute_with(|| { + // set parachain inherent data + set_parachain_inherent_data(); + let init_block = CrowdloanRewards::init_vesting_block(); + // This matches the previous vesting + let end_block = init_block + 4 * WEEKS; + // Batch calls always succeed. We just need to check the inner event + assert_ok!( + RuntimeCall::Utility(pallet_utility::Call::::batch_all { + calls: vec![ + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::initialize_reward_vec { + rewards: vec![( + [4u8; 32].into(), + Some(AccountId::from(CHARLIE)), + 1_500_000 * MOVR + )] + } + ), + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::initialize_reward_vec { + rewards: vec![( + [5u8; 32].into(), + Some(AccountId::from(DAVE)), + 1_500_000 * MOVR + )] + } + ), + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::complete_initialization { + lease_ending_block: end_block + } + ) + ] + }) + .dispatch(root_origin()) + ); + + let crowdloan_precompile_address = H160::from_low_u64_be(2049); + + // Assert precompile reports Bob is not a contributor + Precompiles::new() + .prepare_test( + ALICE, + crowdloan_precompile_address, + CrowdloanRewardsPCall::is_contributor { + contributor: Address(AccountId::from(BOB).into()), + }, + ) + .expect_cost(1000) + .expect_no_logs() + .execute_returns(false); + + // Assert precompile reports Charlie is a nominator + Precompiles::new() + .prepare_test( + ALICE, + crowdloan_precompile_address, + CrowdloanRewardsPCall::is_contributor { + contributor: Address(AccountId::from(CHARLIE).into()), + }, + ) + .expect_cost(1000) + .expect_no_logs() + .execute_returns(true); + }) +} + +#[test] +fn reward_info_via_precompile() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * MOVR), + (AccountId::from(BOB), 1_000 * MOVR), + ]) + .with_collators(vec![(AccountId::from(ALICE), 1_000 * MOVR)]) + .with_mappings(vec![( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + AccountId::from(ALICE), + )]) + .with_crowdloan_fund(3_000_000 * MOVR) + .build() + .execute_with(|| { + // set parachain inherent data + set_parachain_inherent_data(); + let init_block = CrowdloanRewards::init_vesting_block(); + // This matches the previous vesting + let end_block = init_block + 4 * WEEKS; + // Batch calls always succeed. We just need to check the inner event + assert_ok!( + RuntimeCall::Utility(pallet_utility::Call::::batch_all { + calls: vec![ + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::initialize_reward_vec { + rewards: vec![( + [4u8; 32].into(), + Some(AccountId::from(CHARLIE)), + 1_500_000 * MOVR + )] + } + ), + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::initialize_reward_vec { + rewards: vec![( + [5u8; 32].into(), + Some(AccountId::from(DAVE)), + 1_500_000 * MOVR + )] + } + ), + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::complete_initialization { + lease_ending_block: end_block + } + ) + ] + }) + .dispatch(root_origin()) + ); + + let crowdloan_precompile_address = H160::from_low_u64_be(2049); + + let expected_total: U256 = (1_500_000 * MOVR).into(); + let expected_claimed: U256 = (450_000 * MOVR).into(); + + // Assert precompile reports correct Charlie reward info. + Precompiles::new() + .prepare_test( + ALICE, + crowdloan_precompile_address, + CrowdloanRewardsPCall::reward_info { + contributor: Address(AccountId::from(CHARLIE).into()), + }, + ) + .expect_cost(1000) + .expect_no_logs() + .execute_returns((expected_total, expected_claimed)); + }) +} + +#[test] +fn update_reward_address_via_precompile() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * MOVR), + (AccountId::from(BOB), 1_000 * MOVR), + ]) + .with_collators(vec![(AccountId::from(ALICE), 1_000 * MOVR)]) + .with_mappings(vec![( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + AccountId::from(ALICE), + )]) + .with_crowdloan_fund(3_000_000 * MOVR) + .build() + .execute_with(|| { + // set parachain inherent data + set_parachain_inherent_data(); + let init_block = CrowdloanRewards::init_vesting_block(); + // This matches the previous vesting + let end_block = init_block + 4 * WEEKS; + // Batch calls always succeed. We just need to check the inner event + assert_ok!( + RuntimeCall::Utility(pallet_utility::Call::::batch_all { + calls: vec![ + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::initialize_reward_vec { + rewards: vec![( + [4u8; 32].into(), + Some(AccountId::from(CHARLIE)), + 1_500_000 * MOVR + )] + } + ), + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::initialize_reward_vec { + rewards: vec![( + [5u8; 32].into(), + Some(AccountId::from(DAVE)), + 1_500_000 * MOVR + )] + } + ), + RuntimeCall::CrowdloanRewards( + pallet_crowdloan_rewards::Call::::complete_initialization { + lease_ending_block: end_block + } + ) + ] + }) + .dispatch(root_origin()) + ); + + let crowdloan_precompile_address = H160::from_low_u64_be(2049); + + // Charlie uses the crowdloan precompile to update address through the EVM + let gas_limit = 100000u64; + let gas_price: U256 = BASE_FEE_GENESIS.into(); + + // Construct the input data to check if Bob is a contributor + let mut call_data = Vec::::from([0u8; 36]); + call_data[0..4] + .copy_from_slice(&Keccak256::digest(b"update_reward_address(address)")[0..4]); + call_data[16..36].copy_from_slice(&ALICE); + + assert_ok!(RuntimeCall::EVM(pallet_evm::Call::::call { + source: H160::from(CHARLIE), + target: crowdloan_precompile_address, + input: call_data, + value: U256::zero(), // No value sent in EVM + gas_limit, + max_fee_per_gas: gas_price, + max_priority_fee_per_gas: None, + nonce: None, // Use the next nonce + access_list: Vec::new(), + }) + .dispatch(::RuntimeOrigin::root())); + + assert!(CrowdloanRewards::accounts_payable(&AccountId::from(CHARLIE)).is_none()); + assert_eq!( + CrowdloanRewards::accounts_payable(&AccountId::from(ALICE)) + .unwrap() + .claimed_reward, + (450_000 * MOVR) + ); + }) +} + +fn run_with_system_weight(w: Weight, mut assertions: F) +where + F: FnMut() -> (), +{ + let mut t: sp_io::TestExternalities = frame_system::GenesisConfig::::default() + .build_storage() + .unwrap() + .into(); + t.execute_with(|| { + System::set_block_consumed_resources(w, 0); + assertions() + }); +} + +#[test] +#[rustfmt::skip] +fn length_fee_is_sensible() { + use sp_runtime::testing::TestXt; + + // tests that length fee is sensible for a few hypothetical transactions + ExtBuilder::default().build().execute_with(|| { + let call = frame_system::Call::remark:: { remark: vec![] }; + let uxt: TestXt<_, ()> = TestXt::new(call, Some((1u64, ()))); + + let calc_fee = |len: u32| -> Balance { + moonriver_runtime::TransactionPayment::query_fee_details(uxt.clone(), len) + .inclusion_fee + .expect("fee should be calculated") + .len_fee + }; + + // editorconfig-checker-disable + // left: cost of length fee, right: size in bytes + // /------------- proportional component: O(N * 1B) + // | /- exponential component: O(N ** 3) + // | | + assert_eq!( 1_000_000_001, calc_fee(1)); + assert_eq!( 10_000_001_000, calc_fee(10)); + assert_eq!( 100_001_000_000, calc_fee(100)); + assert_eq!( 1_001_000_000_000, calc_fee(1_000)); + assert_eq!( 11_000_000_000_000, calc_fee(10_000)); // inflection point + assert_eq!( 1_100_000_000_000_000, calc_fee(100_000)); + assert_eq!( 1_001_000_000_000_000_000, calc_fee(1_000_000)); // one MOVR, ~ 1MB + assert_eq!( 1_000_010_000_000_000_000_000, calc_fee(10_000_000)); + assert_eq!(1_000_000_100_000_000_000_000_000, calc_fee(100_000_000)); + // editorconfig-checker-enable + }); +} + +#[test] +fn multiplier_can_grow_from_zero() { + use frame_support::traits::Get; + + let minimum_multiplier = moonriver_runtime::MinimumMultiplier::get(); + let target = moonriver_runtime::TargetBlockFullness::get() + * RuntimeBlockWeights::get() + .get(DispatchClass::Normal) + .max_total + .unwrap(); + // if the min is too small, then this will not change, and we are doomed forever. + // the weight is 1/100th bigger than target. + run_with_system_weight(target * 101 / 100, || { + let next = + moonriver_runtime::SlowAdjustingFeeUpdate::::convert(minimum_multiplier); + assert!( + next > minimum_multiplier, + "{:?} !>= {:?}", + next, + minimum_multiplier + ); + }) +} + +#[test] +fn ethereum_invalid_transaction() { + ExtBuilder::default().build().execute_with(|| { + // Ensure an extrinsic not containing enough gas limit to store the transaction + // on chain is rejected. + assert_eq!( + Executive::apply_extrinsic(unchecked_eth_tx(INVALID_ETH_TX)), + Err( + sp_runtime::transaction_validity::TransactionValidityError::Invalid( + sp_runtime::transaction_validity::InvalidTransaction::Custom(0u8) + ) + ) + ); + }); +} + +#[test] +fn initial_gas_fee_is_correct() { + use fp_evm::FeeCalculator; + + ExtBuilder::default().build().execute_with(|| { + let multiplier = TransactionPayment::next_fee_multiplier(); + assert_eq!(multiplier, Multiplier::from(10u128)); + + assert_eq!( + TransactionPaymentAsGasPrice::min_gas_price(), + ( + 12_500_000_000u128.into(), + Weight::from_parts(25_000_000u64, 0) + ) + ); + }); +} + +#[test] +fn min_gas_fee_is_correct() { + use fp_evm::FeeCalculator; + use frame_support::traits::Hooks; + + ExtBuilder::default().build().execute_with(|| { + pallet_transaction_payment::NextFeeMultiplier::::put(Multiplier::from(0)); + TransactionPayment::on_finalize(System::block_number()); // should trigger min to kick in + + let multiplier = TransactionPayment::next_fee_multiplier(); + assert_eq!(multiplier, Multiplier::from(1u128)); + + assert_eq!( + TransactionPaymentAsGasPrice::min_gas_price(), + ( + 1_250_000_000u128.into(), + Weight::from_parts(25_000_000u64, 0) + ) + ); + }); +} + +#[test] +fn transfer_ed_0_substrate() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), (1 * MOVR) + (1 * WEI)), + (AccountId::from(BOB), 0), + ]) + .build() + .execute_with(|| { + // Substrate transfer + assert_ok!(Balances::transfer_allow_death( + origin_of(AccountId::from(ALICE)), + AccountId::from(BOB), + 1 * MOVR, + )); + // 1 WEI is left in the account + assert_eq!(Balances::free_balance(AccountId::from(ALICE)), 1 * WEI); + }); +} + +#[test] +fn transfer_ed_0_evm() { + ExtBuilder::default() + .with_balances(vec![ + ( + AccountId::from(ALICE), + ((1 * MOVR) + (21_000 * BASE_FEE_GENESIS)) + (1 * WEI), + ), + (AccountId::from(BOB), 0), + ]) + .build() + .execute_with(|| { + // EVM transfer + assert_ok!(RuntimeCall::EVM(pallet_evm::Call::::call { + source: H160::from(ALICE), + target: H160::from(BOB), + input: Vec::new(), + value: (1 * MOVR).into(), + gas_limit: 21_000u64, + max_fee_per_gas: U256::from(BASE_FEE_GENESIS), + max_priority_fee_per_gas: Some(U256::from(BASE_FEE_GENESIS)), + nonce: Some(U256::from(0)), + access_list: Vec::new(), + }) + .dispatch(::RuntimeOrigin::root())); + // 1 WEI is left in the account + assert_eq!(Balances::free_balance(AccountId::from(ALICE)), 1 * WEI,); + }); +} + +#[test] +fn refund_ed_0_evm() { + ExtBuilder::default() + .with_balances(vec![ + ( + AccountId::from(ALICE), + ((1 * MOVR) + (21_777 * BASE_FEE_GENESIS)), + ), + (AccountId::from(BOB), 0), + ]) + .build() + .execute_with(|| { + // EVM transfer that zeroes ALICE + assert_ok!(RuntimeCall::EVM(pallet_evm::Call::::call { + source: H160::from(ALICE), + target: H160::from(BOB), + input: Vec::new(), + value: (1 * MOVR).into(), + gas_limit: 21_777u64, + max_fee_per_gas: U256::from(BASE_FEE_GENESIS), + max_priority_fee_per_gas: Some(U256::from(BASE_FEE_GENESIS)), + nonce: Some(U256::from(0)), + access_list: Vec::new(), + }) + .dispatch(::RuntimeOrigin::root())); + // ALICE is refunded + assert_eq!( + Balances::free_balance(AccountId::from(ALICE)), + 777 * BASE_FEE_GENESIS, + ); + }); +} + +#[test] +fn author_does_not_receive_priority_fee() { + ExtBuilder::default() + .with_balances(vec![( + AccountId::from(BOB), + (1 * MOVR) + (21_000 * (500 * GIGAWEI)), + )]) + .build() + .execute_with(|| { + // Some block author as seen by pallet-evm. + let author = AccountId::from(>::find_author()); + // Currently the default impl of the evm uses `deposit_into_existing`. + // If we were to use this implementation, and for an author to receive eventual tips, + // the account needs to be somehow initialized, otherwise the deposit would fail. + Balances::make_free_balance_be(&author, 100 * MOVR); + + // EVM transfer. + assert_ok!(RuntimeCall::EVM(pallet_evm::Call::::call { + source: H160::from(BOB), + target: H160::from(ALICE), + input: Vec::new(), + value: (1 * MOVR).into(), + gas_limit: 21_000u64, + max_fee_per_gas: U256::from(300 * GIGAWEI), + max_priority_fee_per_gas: Some(U256::from(200 * GIGAWEI)), + nonce: Some(U256::from(0)), + access_list: Vec::new(), + }) + .dispatch(::RuntimeOrigin::root())); + // Author free balance didn't change. + assert_eq!(Balances::free_balance(author), 100 * MOVR,); + }); +} + +#[test] +fn total_issuance_after_evm_transaction_with_priority_fee() { + ExtBuilder::default() + .with_balances(vec![( + AccountId::from(BOB), + (1 * MOVR) + (21_000 * (2 * BASE_FEE_GENESIS)), + )]) + .build() + .execute_with(|| { + let issuance_before = ::Currency::total_issuance(); + // EVM transfer. + assert_ok!(RuntimeCall::EVM(pallet_evm::Call::::call { + source: H160::from(BOB), + target: H160::from(ALICE), + input: Vec::new(), + value: (1 * MOVR).into(), + gas_limit: 21_000u64, + max_fee_per_gas: U256::from(2u128 * BASE_FEE_GENESIS), + max_priority_fee_per_gas: Some(U256::from(2u128 * BASE_FEE_GENESIS)), + nonce: Some(U256::from(0)), + access_list: Vec::new(), + }) + .dispatch(::RuntimeOrigin::root())); + + let issuance_after = ::Currency::total_issuance(); + let fee = ((2 * BASE_FEE_GENESIS) * 21_000) as f64; + // 80% was burned. + let expected_burn = (fee * 0.8) as u128; + assert_eq!(issuance_after, issuance_before - expected_burn,); + // 20% was sent to treasury. + let expected_treasury = (fee * 0.2) as u128; + assert_eq!(moonriver_runtime::Treasury::pot(), expected_treasury); + }); +} + +#[test] +fn total_issuance_after_evm_transaction_without_priority_fee() { + ExtBuilder::default() + .with_balances(vec![( + AccountId::from(BOB), + (1 * MOVR) + (21_000 * (2 * BASE_FEE_GENESIS)), + )]) + .build() + .execute_with(|| { + let issuance_before = ::Currency::total_issuance(); + // EVM transfer. + assert_ok!(RuntimeCall::EVM(pallet_evm::Call::::call { + source: H160::from(BOB), + target: H160::from(ALICE), + input: Vec::new(), + value: (1 * MOVR).into(), + gas_limit: 21_000u64, + max_fee_per_gas: U256::from(BASE_FEE_GENESIS), + max_priority_fee_per_gas: Some(U256::from(BASE_FEE_GENESIS)), + nonce: Some(U256::from(0)), + access_list: Vec::new(), + }) + .dispatch(::RuntimeOrigin::root())); + + let issuance_after = ::Currency::total_issuance(); + let fee = ((1 * BASE_FEE_GENESIS) * 21_000) as f64; + // 80% was burned. + let expected_burn = (fee * 0.8) as u128; + assert_eq!(issuance_after, issuance_before - expected_burn,); + // 20% was sent to treasury. + let expected_treasury = (fee * 0.2) as u128; + assert_eq!(moonriver_runtime::Treasury::pot(), expected_treasury); + }); +} + +#[test] +fn root_can_change_default_xcm_vers() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * MOVR), + (AccountId::from(BOB), 1_000 * MOVR), + ]) + .with_xcm_assets(vec![XcmAssetInitialization { + asset_type: AssetType::Xcm(xcm::v3::Location::parent()), + metadata: AssetRegistrarMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + is_frozen: false, + }, + balances: vec![(AccountId::from(ALICE), 1_000_000_000_000_000)], + is_sufficient: true, + }]) + .build() + .execute_with(|| { + let source_location = AssetType::Xcm(xcm::v3::Location::parent()); + let dest = Location { + parents: 1, + interior: [AccountId32 { + network: None, + id: [1u8; 32], + }] + .into(), + }; + let source_id: moonriver_runtime::AssetId = source_location.clone().into(); + // Default XCM version is not set yet, so xtokens should fail because it does not + // know with which version to send + assert_noop!( + XTokens::transfer( + origin_of(AccountId::from(ALICE)), + CurrencyId::ForeignAsset(source_id), + 100_000_000_000_000, + Box::new(xcm::VersionedLocation::V4(dest.clone())), + WeightLimit::Limited(4000000000.into()) + ), + orml_xtokens::Error::::XcmExecutionFailed + ); + + // Root sets the defaultXcm + assert_ok!(PolkadotXcm::force_default_xcm_version( + root_origin(), + Some(2) + )); + + // Now transferring does not fail + assert_ok!(XTokens::transfer( + origin_of(AccountId::from(ALICE)), + CurrencyId::ForeignAsset(source_id), + 100_000_000_000_000, + Box::new(xcm::VersionedLocation::V4(dest)), + WeightLimit::Limited(4000000000.into()) + )); + }) +} + +#[test] +fn asset_can_be_registered() { + ExtBuilder::default().build().execute_with(|| { + let source_location = AssetType::Xcm(xcm::v3::Location::parent()); + let source_id: moonriver_runtime::AssetId = source_location.clone().into(); + let asset_metadata = AssetRegistrarMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + is_frozen: false, + }; + assert_ok!(AssetManager::register_foreign_asset( + moonriver_runtime::RuntimeOrigin::root(), + source_location, + asset_metadata, + 1u128, + true + )); + assert!(AssetManager::asset_id_type(source_id).is_some()); + }); +} + +#[test] +fn xcm_asset_erc20_precompiles_supply_and_balance() { + ExtBuilder::default() + .with_xcm_assets(vec![XcmAssetInitialization { + asset_type: AssetType::Xcm(xcm::v3::Location::parent()), + metadata: AssetRegistrarMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + is_frozen: false, + }, + balances: vec![(AccountId::from(ALICE), 1_000 * MOVR)], + is_sufficient: true, + }]) + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * MOVR), + (AccountId::from(BOB), 1_000 * MOVR), + ]) + .build() + .execute_with(|| { + // We have the assetId that corresponds to the relay chain registered + let relay_asset_id: AssetId = AssetType::Xcm(xcm::v3::Location::parent()).into(); + + // Its address is + let asset_precompile_address = Runtime::asset_id_to_account( + FOREIGN_ASSET_PRECOMPILE_ADDRESS_PREFIX, + relay_asset_id, + ); + + // Assert the asset has been created with the correct supply + assert_eq!( + moonriver_runtime::Assets::total_supply(relay_asset_id), + 1_000 * MOVR + ); + + // Access totalSupply through precompile. Important that the context is correct + Precompiles::new() + .prepare_test( + ALICE, + asset_precompile_address, + ForeignAssetsPCall::total_supply {}, + ) + .expect_cost(2000) + .expect_no_logs() + .execute_returns(U256::from(1000 * MOVR)); + + // Access balanceOf through precompile + Precompiles::new() + .prepare_test( + ALICE, + asset_precompile_address, + ForeignAssetsPCall::balance_of { + who: Address(ALICE.into()), + }, + ) + .expect_cost(2000) + .expect_no_logs() + .execute_returns(U256::from(1000 * MOVR)); + }); +} + +#[test] +fn xcm_asset_erc20_precompiles_transfer() { + ExtBuilder::default() + .with_xcm_assets(vec![XcmAssetInitialization { + asset_type: AssetType::Xcm(xcm::v3::Location::parent()), + metadata: AssetRegistrarMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + is_frozen: false, + }, + balances: vec![(AccountId::from(ALICE), 1_000 * MOVR)], + is_sufficient: true, + }]) + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * MOVR), + (AccountId::from(BOB), 1_000 * MOVR), + ]) + .build() + .execute_with(|| { + // We have the assetId that corresponds to the relay chain registered + let relay_asset_id: AssetId = AssetType::Xcm(xcm::v3::Location::parent()).into(); + + // Its address is + let asset_precompile_address = Runtime::asset_id_to_account( + FOREIGN_ASSET_PRECOMPILE_ADDRESS_PREFIX, + relay_asset_id, + ); + + // Transfer tokens from Aice to Bob, 400 MOVR. + Precompiles::new() + .prepare_test( + ALICE, + asset_precompile_address, + ForeignAssetsPCall::transfer { + to: Address(BOB.into()), + value: { 400 * MOVR }.into(), + }, + ) + .expect_cost(24342) + .expect_log(log3( + asset_precompile_address, + SELECTOR_LOG_TRANSFER, + H160::from(ALICE), + H160::from(BOB), + solidity::encode_event_data(U256::from(400 * MOVR)), + )) + .execute_returns(true); + + // Make sure BOB has 400 MOVR + Precompiles::new() + .prepare_test( + BOB, + asset_precompile_address, + ForeignAssetsPCall::balance_of { + who: Address(BOB.into()), + }, + ) + .expect_cost(2000) + .expect_no_logs() + .execute_returns(U256::from(400 * MOVR)); + }); +} + +#[test] +fn xcm_asset_erc20_precompiles_approve() { + ExtBuilder::default() + .with_xcm_assets(vec![XcmAssetInitialization { + asset_type: AssetType::Xcm(xcm::v3::Location::parent()), + metadata: AssetRegistrarMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + is_frozen: false, + }, + balances: vec![(AccountId::from(ALICE), 1_000 * MOVR)], + is_sufficient: true, + }]) + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * MOVR), + (AccountId::from(BOB), 1_000 * MOVR), + ]) + .build() + .execute_with(|| { + // We have the assetId that corresponds to the relay chain registered + let relay_asset_id: AssetId = AssetType::Xcm(xcm::v3::Location::parent()).into(); + + // Its address is + let asset_precompile_address = Runtime::asset_id_to_account( + FOREIGN_ASSET_PRECOMPILE_ADDRESS_PREFIX, + relay_asset_id, + ); + + // Aprove Bob for spending 400 MOVR from Alice + Precompiles::new() + .prepare_test( + ALICE, + asset_precompile_address, + ForeignAssetsPCall::approve { + spender: Address(BOB.into()), + value: { 400 * MOVR }.into(), + }, + ) + .expect_cost(14424) + .expect_log(log3( + asset_precompile_address, + SELECTOR_LOG_APPROVAL, + H160::from(ALICE), + H160::from(BOB), + solidity::encode_event_data(U256::from(400 * MOVR)), + )) + .execute_returns(true); + + // Transfer tokens from Alice to Charlie by using BOB as origin + Precompiles::new() + .prepare_test( + BOB, + asset_precompile_address, + ForeignAssetsPCall::transfer_from { + from: Address(ALICE.into()), + to: Address(CHARLIE.into()), + value: { 400 * MOVR }.into(), + }, + ) + .expect_cost(29686) + .expect_log(log3( + asset_precompile_address, + SELECTOR_LOG_TRANSFER, + H160::from(ALICE), + H160::from(CHARLIE), + solidity::encode_event_data(U256::from(400 * MOVR)), + )) + .execute_returns(true); + + // Make sure CHARLIE has 400 MOVR + Precompiles::new() + .prepare_test( + CHARLIE, + asset_precompile_address, + ForeignAssetsPCall::balance_of { + who: Address(CHARLIE.into()), + }, + ) + .expect_cost(2000) + .expect_no_logs() + .execute_returns(U256::from(400 * MOVR)); + }); +} + +#[test] +fn xtokens_precompiles_transfer() { + ExtBuilder::default() + .with_xcm_assets(vec![XcmAssetInitialization { + asset_type: AssetType::Xcm(xcm::v3::Location::parent()), + metadata: AssetRegistrarMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + is_frozen: false, + }, + balances: vec![(AccountId::from(ALICE), 1_000_000_000_000_000)], + is_sufficient: true, + }]) + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * MOVR), + (AccountId::from(BOB), 1_000 * MOVR), + ]) + .with_safe_xcm_version(2) + .build() + .execute_with(|| { + let xtokens_precompile_address = H160::from_low_u64_be(2052); + + // We have the assetId that corresponds to the relay chain registered + let relay_asset_id: moonriver_runtime::AssetId = + AssetType::Xcm(xcm::v3::Location::parent()).into(); + + // Its address is + let asset_precompile_address = Runtime::asset_id_to_account( + FOREIGN_ASSET_PRECOMPILE_ADDRESS_PREFIX, + relay_asset_id, + ); + + // Alice has 1000 tokens. She should be able to send through precompile + let destination = Location::new( + 1, + [Junction::AccountId32 { + network: None, + id: [1u8; 32], + }], + ); + + // We use the address of the asset as an identifier of the asset we want to transferS + Precompiles::new() + .prepare_test( + ALICE, + xtokens_precompile_address, + XtokensPCall::transfer { + currency_address: Address(asset_precompile_address.into()), + amount: 500_000_000_000_000u128.into(), + destination: destination.clone(), + weight: 4_000_000, + }, + ) + .expect_cost(57639) + .expect_no_logs() + .execute_returns(()) + }) +} + +#[test] +fn xtokens_precompiles_transfer_multiasset() { + ExtBuilder::default() + .with_xcm_assets(vec![XcmAssetInitialization { + asset_type: AssetType::Xcm(xcm::v3::Location::parent()), + metadata: AssetRegistrarMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + is_frozen: false, + }, + balances: vec![(AccountId::from(ALICE), 1_000_000_000_000_000)], + is_sufficient: true, + }]) + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * MOVR), + (AccountId::from(BOB), 1_000 * MOVR), + ]) + .with_safe_xcm_version(2) + .build() + .execute_with(|| { + let xtokens_precompile_address = H160::from_low_u64_be(2052); + + // Alice has 1000 tokens. She should be able to send through precompile + let destination = Location::new( + 1, + [Junction::AccountId32 { + network: None, + id: [1u8; 32], + }], + ); + + // This time we transfer it through TransferMultiAsset + // Instead of the address, we encode directly the multilocation referencing the asset + Precompiles::new() + .prepare_test( + ALICE, + xtokens_precompile_address, + XtokensPCall::transfer_multiasset { + // We want to transfer the relay token + asset: Location::parent(), + amount: 500_000_000_000_000u128.into(), + destination, + weight: 4_000_000, + }, + ) + .expect_cost(57639) + .expect_no_logs() + .execute_returns(()); + }) +} + +#[test] +fn make_sure_polkadot_xcm_cannot_be_called() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * MOVR), + (AccountId::from(BOB), 1_000 * MOVR), + ]) + .with_collators(vec![(AccountId::from(ALICE), 1_000 * MOVR)]) + .with_mappings(vec![( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + AccountId::from(ALICE), + )]) + .build() + .execute_with(|| { + let dest = Location { + parents: 1, + interior: [AccountId32 { + network: None, + id: [1u8; 32], + }] + .into(), + }; + let assets: Assets = [Asset { + id: AssetId(moonriver_runtime::xcm_config::SelfLocation::get()), + fun: Fungible(1000), + }] + .to_vec() + .into(); + assert_noop!( + RuntimeCall::PolkadotXcm(pallet_xcm::Call::::reserve_transfer_assets { + dest: Box::new(VersionedLocation::V4(dest.clone())), + beneficiary: Box::new(VersionedLocation::V4(dest)), + assets: Box::new(VersionedAssets::V4(assets)), + fee_asset_item: 0, + }) + .dispatch(::RuntimeOrigin::signed( + AccountId::from(ALICE) + )), + frame_system::Error::::CallFiltered + ); + }); +} + +#[test] +fn transactor_cannot_use_more_than_max_weight() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * MOVR), + (AccountId::from(BOB), 1_000 * MOVR), + ]) + .with_xcm_assets(vec![XcmAssetInitialization { + asset_type: AssetType::Xcm(xcm::v3::Location::parent()), + metadata: AssetRegistrarMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + is_frozen: false, + }, + balances: vec![(AccountId::from(ALICE), 1_000_000_000_000_000)], + is_sufficient: true, + }]) + .build() + .execute_with(|| { + let source_location = AssetType::Xcm(xcm::v3::Location::parent()); + let source_id: moonriver_runtime::AssetId = source_location.clone().into(); + assert_ok!(XcmTransactor::register( + root_origin(), + AccountId::from(ALICE), + 0, + )); + + // Root can set transact info + assert_ok!(XcmTransactor::set_transact_info( + root_origin(), + Box::new(xcm::VersionedLocation::V4(Location::parent())), + // Relay charges 1000 for every instruction, and we have 3, so 3000 + 3000.into(), + 20000.into(), + None + )); + + // Root can set transact info + assert_ok!(XcmTransactor::set_fee_per_second( + root_origin(), + Box::new(xcm::VersionedLocation::V4(Location::parent())), + 1 + )); + + assert_noop!( + XcmTransactor::transact_through_derivative( + origin_of(AccountId::from(ALICE)), + moonriver_runtime::xcm_config::Transactors::Relay, + 0, + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + Location::parent() + ))), + fee_amount: None + }, + vec![], + // 2000 is the max + TransactWeights { + transact_required_weight_at_most: 17001.into(), + overall_weight: None + }, + false + ), + pallet_xcm_transactor::Error::::MaxWeightTransactReached + ); + assert_noop!( + XcmTransactor::transact_through_derivative( + origin_of(AccountId::from(ALICE)), + moonriver_runtime::xcm_config::Transactors::Relay, + 0, + CurrencyPayment { + currency: Currency::AsCurrencyId(CurrencyId::ForeignAsset(source_id)), + fee_amount: None + }, + vec![], + // 20000 is the max + TransactWeights { + transact_required_weight_at_most: 17001.into(), + overall_weight: None + }, + false + ), + pallet_xcm_transactor::Error::::MaxWeightTransactReached + ); + }) +} + +#[test] +fn transact_through_signed_precompile_works_v2() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * MOVR), + (AccountId::from(BOB), 1_000 * MOVR), + ]) + .with_safe_xcm_version(2) + .build() + .execute_with(|| { + // Destination + let dest = Location::parent(); + + let fee_payer_asset = Location::parent(); + + let bytes = vec![1u8, 2u8, 3u8]; + + let total_weight = 1_000_000_000u64; + + let xcm_transactor_v2_precompile_address = H160::from_low_u64_be(2061); + + Precompiles::new() + .prepare_test( + ALICE, + xcm_transactor_v2_precompile_address, + XcmTransactorV2PCall::transact_through_signed_multilocation { + dest, + fee_asset: fee_payer_asset, + weight: 4_000_000, + call: bytes.into(), + fee_amount: u128::from(total_weight).into(), + overall_weight: total_weight, + }, + ) + .expect_cost(17555) + .expect_no_logs() + .execute_returns(()); + }); +} + +#[test] +fn transact_through_signed_cannot_send_to_local_chain() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * MOVR), + (AccountId::from(BOB), 1_000 * MOVR), + ]) + .with_safe_xcm_version(2) + .build() + .execute_with(|| { + // Destination + let dest = Location::here(); + + let fee_payer_asset = Location::parent(); + + let bytes = vec![1u8, 2u8, 3u8]; + + let total_weight = 1_000_000_000u64; + + let xcm_transactor_v2_precompile_address = H160::from_low_u64_be(2061); + + Precompiles::new() + .prepare_test( + ALICE, + xcm_transactor_v2_precompile_address, + XcmTransactorV2PCall::transact_through_signed_multilocation { + dest, + fee_asset: fee_payer_asset, + weight: 4_000_000, + call: bytes.into(), + fee_amount: u128::from(total_weight).into(), + overall_weight: total_weight, + }, + ) + .execute_reverts(|output| { + from_utf8(&output) + .unwrap() + .contains("Dispatched call failed with error:") + && from_utf8(&output).unwrap().contains("ErrorValidating") + }); + }); +} + +#[test] +fn call_xtokens_with_fee() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * MOVR), + (AccountId::from(BOB), 1_000 * MOVR), + ]) + .with_safe_xcm_version(2) + .with_xcm_assets(vec![XcmAssetInitialization { + asset_type: AssetType::Xcm(xcm::v3::Location::parent()), + metadata: AssetRegistrarMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + is_frozen: false, + }, + balances: vec![(AccountId::from(ALICE), 1_000_000_000_000_000)], + is_sufficient: true, + }]) + .build() + .execute_with(|| { + let source_location = AssetType::Xcm(xcm::v3::Location::parent()); + let dest = Location { + parents: 1, + interior: [AccountId32 { + network: None, + id: [1u8; 32], + }] + .into(), + }; + let source_id: moonriver_runtime::AssetId = source_location.clone().into(); + + let before_balance = + moonriver_runtime::Assets::balance(source_id, &AccountId::from(ALICE)); + + // We are able to transfer with fee + assert_ok!(XTokens::transfer_with_fee( + origin_of(AccountId::from(ALICE)), + CurrencyId::ForeignAsset(source_id), + 100_000_000_000_000, + 100, + Box::new(xcm::VersionedLocation::V4(dest.clone())), + WeightLimit::Limited(4000000000.into()) + ),); + + let after_balance = + moonriver_runtime::Assets::balance(source_id, &AccountId::from(ALICE)); + // At least these much (plus fees) should have been charged + assert_eq!(before_balance - 100_000_000_000_000 - 100, after_balance); + }); +} + +#[test] +fn test_xcm_utils_ml_tp_account() { + ExtBuilder::default().build().execute_with(|| { + let xcm_utils_precompile_address = H160::from_low_u64_be(2060); + let expected_address_parent: H160 = + ParentIsPreset::::convert_location(&Location::parent()) + .unwrap() + .into(); + + Precompiles::new() + .prepare_test( + ALICE, + xcm_utils_precompile_address, + XcmUtilsPCall::multilocation_to_address { + location: Location::parent(), + }, + ) + .expect_cost(1000) + .expect_no_logs() + .execute_returns(Address(expected_address_parent)); + + let parachain_2000_multilocation = Location::new(1, [Parachain(2000)]); + let expected_address_parachain: H160 = + SiblingParachainConvertsVia::::convert_location( + ¶chain_2000_multilocation, + ) + .unwrap() + .into(); + + Precompiles::new() + .prepare_test( + ALICE, + xcm_utils_precompile_address, + XcmUtilsPCall::multilocation_to_address { + location: parachain_2000_multilocation, + }, + ) + .expect_cost(1000) + .expect_no_logs() + .execute_returns(Address(expected_address_parachain)); + + let alice_in_parachain_2000_location = Location::new( + 1, + [ + Parachain(2000), + AccountKey20 { + network: None, + key: ALICE, + }, + ], + ); + let expected_address_alice_in_parachain_2000 = + xcm_builder::HashedDescription::< + AccountId, + xcm_builder::DescribeFamily, + >::convert_location(&alice_in_parachain_2000_location) + .unwrap() + .into(); + + Precompiles::new() + .prepare_test( + ALICE, + xcm_utils_precompile_address, + XcmUtilsPCall::multilocation_to_address { + location: alice_in_parachain_2000_location, + }, + ) + .expect_cost(1000) + .expect_no_logs() + .execute_returns(Address(expected_address_alice_in_parachain_2000)); + }); +} + +#[test] +fn test_xcm_utils_weight_message() { + ExtBuilder::default().build().execute_with(|| { + let xcm_utils_precompile_address = H160::from_low_u64_be(2060); + let expected_weight = + XcmWeight::::clear_origin().ref_time(); + + let message: Vec = xcm::VersionedXcm::<()>::V4(Xcm(vec![ClearOrigin])).encode(); + + let input = XcmUtilsPCall::weight_message { + message: message.into(), + }; + + Precompiles::new() + .prepare_test(ALICE, xcm_utils_precompile_address, input) + .expect_cost(0) + .expect_no_logs() + .execute_returns(expected_weight); + }); +} + +#[test] +fn test_xcm_utils_get_units_per_second() { + ExtBuilder::default().build().execute_with(|| { + let xcm_utils_precompile_address = H160::from_low_u64_be(2060); + let location = SelfReserve::get(); + + let input = XcmUtilsPCall::get_units_per_second { location }; + + let expected_units = + WEIGHT_REF_TIME_PER_SECOND as u128 * moonriver_runtime::currency::WEIGHT_FEE; + + Precompiles::new() + .prepare_test(ALICE, xcm_utils_precompile_address, input) + .expect_cost(1000) + .expect_no_logs() + .execute_returns(expected_units); + }); +} + +#[test] +fn precompile_existence() { + ExtBuilder::default().build().execute_with(|| { + let precompiles = Precompiles::new(); + let precompile_addresses: std::collections::BTreeSet<_> = vec![ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 1024, 1025, 1026, 2048, 2049, 2050, 2051, 2052, 2053, 2054, + 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, + 2069, 2070, 2071, 2072, 2073, + ] + .into_iter() + .map(H160::from_low_u64_be) + .collect(); + + for i in 0..3000 { + let address = H160::from_low_u64_be(i); + + if precompile_addresses.contains(&address) { + assert!( + is_precompile_or_fail::(address, 100_000u64).expect("to be ok"), + "is_precompile({}) should return true", + i + ); + + assert!( + precompiles + .execute(&mut MockHandle::new( + address, + Context { + address, + caller: H160::zero(), + apparent_value: U256::zero() + } + ),) + .is_some(), + "execute({},..) should return Some(_)", + i + ); + } else { + assert!( + !is_precompile_or_fail::(address, 100_000u64).expect("to be ok"), + "is_precompile({}) should return false", + i + ); + + assert!( + precompiles + .execute(&mut MockHandle::new( + address, + Context { + address, + caller: H160::zero(), + apparent_value: U256::zero() + } + ),) + .is_none(), + "execute({},..) should return None", + i + ); + } + } + }); +} + +#[test] +fn removed_precompiles() { + ExtBuilder::default().build().execute_with(|| { + let precompiles = Precompiles::new(); + let removed_precompiles = [1025, 2051, 2062, 2063]; + + for i in 1..3000 { + let address = H160::from_low_u64_be(i); + + if !is_precompile_or_fail::(address, 100_000u64).expect("to be ok") { + continue; + } + + if !removed_precompiles.contains(&i) { + assert!( + match precompiles.is_active_precompile(address, 100_000u64) { + IsPrecompileResult::Answer { is_precompile, .. } => is_precompile, + _ => false, + }, + "{i} should be an active precompile" + ); + continue; + } + + assert!( + !match precompiles.is_active_precompile(address, 100_000u64) { + IsPrecompileResult::Answer { is_precompile, .. } => is_precompile, + _ => false, + }, + "{i} shouldn't be an active precompile" + ); + + precompiles + .prepare_test(Alice, address, []) + .execute_reverts(|out| out == b"Removed precompile"); + } + }) +} + +#[test] +fn deal_with_fees_handles_tip() { + use frame_support::traits::OnUnbalanced; + use moonriver_runtime::{DealWithFees, Treasury}; + + ExtBuilder::default().build().execute_with(|| { + // This test checks the functionality of the `DealWithFees` trait implementation in the runtime. + // It simulates a scenario where a fee and a tip are issued to an account and ensures that the + // treasury receives the correct amount (20% of the total), and the rest is burned (80%). + // + // The test follows these steps: + // 1. It issues a fee of 100 and a tip of 1000. + // 2. It checks the total supply before the fee and tip are dealt with, which should be 1_100. + // 3. It checks that the treasury's balance is initially 0. + // 4. It calls `DealWithFees::on_unbalanceds` with the fee and tip. + // 5. It checks that the treasury's balance is now 220 (20% of the fee and tip). + // 6. It checks that the total supply has decreased by 880 (80% of the fee and tip), indicating + // that this amount was burned. + let fee = as frame_support::traits::fungible::Balanced< + AccountId, + >>::issue(100); + let tip = as frame_support::traits::fungible::Balanced< + AccountId, + >>::issue(1000); + + let total_supply_before = Balances::total_issuance(); + assert_eq!(total_supply_before, 1_100); + assert_eq!(Balances::free_balance(&Treasury::account_id()), 0); + + DealWithFees::on_unbalanceds(vec![fee, tip].into_iter()); + + // treasury should have received 20% + assert_eq!(Balances::free_balance(&Treasury::account_id()), 220); + + // verify 80% burned + let total_supply_after = Balances::total_issuance(); + assert_eq!(total_supply_before - total_supply_after, 880); + }); +} + +#[test] +fn evm_revert_substrate_events() { + ExtBuilder::default() + .with_balances(vec![(AccountId::from(ALICE), 1_000 * MOVR)]) + .build() + .execute_with(|| { + let batch_precompile_address = H160::from_low_u64_be(2056); + + // Batch a transfer followed by an invalid call to batch. + // Thus BatchAll will revert the transfer. + assert_ok!(RuntimeCall::EVM(pallet_evm::Call::call { + source: ALICE.into(), + target: batch_precompile_address, + input: BatchPCall::batch_all { + to: vec![Address(BOB.into()), Address(batch_precompile_address)].into(), + value: vec![U256::from(1 * MOVR), U256::zero()].into(), + call_data: vec![].into(), + gas_limit: vec![].into() + } + .into(), + value: U256::zero(), // No value sent in EVM + gas_limit: 500_000, + max_fee_per_gas: U256::from(BASE_FEE_GENESIS), + max_priority_fee_per_gas: None, + nonce: Some(U256::from(0)), + access_list: Vec::new(), + }) + .dispatch(::RuntimeOrigin::root())); + + let transfer_count = System::events() + .iter() + .filter(|r| match r.event { + RuntimeEvent::Balances(pallet_balances::Event::Transfer { .. }) => true, + _ => false, + }) + .count(); + + assert_eq!(transfer_count, 0, "there should be no transfer event"); + }); +} + +#[test] +fn evm_success_keeps_substrate_events() { + ExtBuilder::default() + .with_balances(vec![(AccountId::from(ALICE), 1_000 * MOVR)]) + .build() + .execute_with(|| { + let batch_precompile_address = H160::from_low_u64_be(2056); + + assert_ok!(RuntimeCall::EVM(pallet_evm::Call::call { + source: ALICE.into(), + target: batch_precompile_address, + input: BatchPCall::batch_all { + to: vec![Address(BOB.into())].into(), + value: vec![U256::from(1 * MOVR)].into(), + call_data: vec![].into(), + gas_limit: vec![].into() + } + .into(), + value: U256::zero(), // No value sent in EVM + gas_limit: 500_000, + max_fee_per_gas: U256::from(BASE_FEE_GENESIS), + max_priority_fee_per_gas: None, + nonce: Some(U256::from(0)), + access_list: Vec::new(), + }) + .dispatch(::RuntimeOrigin::root())); + + let transfer_count = System::events() + .iter() + .filter(|r| match r.event { + RuntimeEvent::Balances(pallet_balances::Event::Transfer { .. }) => true, + _ => false, + }) + .count(); + + assert_eq!(transfer_count, 1, "there should be 1 transfer event"); + }); +} + +#[cfg(test)] +mod fee_tests { + use super::*; + use fp_evm::FeeCalculator; + use frame_support::{ + traits::{ConstU128, OnFinalize}, + weights::{ConstantMultiplier, WeightToFee}, + }; + use moonriver_runtime::{ + currency, LengthToFee, MinimumMultiplier, RuntimeBlockWeights, SlowAdjustingFeeUpdate, + TargetBlockFullness, TransactionPaymentAsGasPrice, NORMAL_WEIGHT, WEIGHT_PER_GAS, + }; + use sp_core::Get; + use sp_runtime::{BuildStorage, FixedPointNumber, Perbill}; + + fn run_with_system_weight(w: Weight, mut assertions: F) + where + F: FnMut() -> (), + { + let mut t: sp_io::TestExternalities = frame_system::GenesisConfig::::default() + .build_storage() + .unwrap() + .into(); + t.execute_with(|| { + System::set_block_consumed_resources(w, 0); + assertions() + }); + } + + #[test] + fn test_multiplier_can_grow_from_zero() { + let minimum_multiplier = MinimumMultiplier::get(); + let target = TargetBlockFullness::get() + * RuntimeBlockWeights::get() + .get(DispatchClass::Normal) + .max_total + .unwrap(); + // if the min is too small, then this will not change, and we are doomed forever. + // the weight is 1/100th bigger than target. + run_with_system_weight(target * 101 / 100, || { + let next = SlowAdjustingFeeUpdate::::convert(minimum_multiplier); + assert!( + next > minimum_multiplier, + "{:?} !>= {:?}", + next, + minimum_multiplier + ); + }) + } + + #[test] + fn test_fee_calculation() { + let base_extrinsic = RuntimeBlockWeights::get() + .get(DispatchClass::Normal) + .base_extrinsic; + let multiplier = sp_runtime::FixedU128::from_float(0.999000000000000000); + let extrinsic_len = 100u32; + let extrinsic_weight = Weight::from_parts(5_000u64, 1); + let tip = 42u128; + type WeightToFeeImpl = ConstantMultiplier>; + type LengthToFeeImpl = LengthToFee; + + // base_fee + (multiplier * extrinsic_weight_fee) + extrinsic_length_fee + tip + let expected_fee = WeightToFeeImpl::weight_to_fee(&base_extrinsic) + + multiplier.saturating_mul_int(WeightToFeeImpl::weight_to_fee(&extrinsic_weight)) + + LengthToFeeImpl::weight_to_fee(&(Weight::from_parts(extrinsic_len as u64, 1))) + + tip; + + let mut t: sp_io::TestExternalities = frame_system::GenesisConfig::::default() + .build_storage() + .unwrap() + .into(); + t.execute_with(|| { + pallet_transaction_payment::NextFeeMultiplier::::set(multiplier); + let actual_fee = TransactionPayment::compute_fee( + extrinsic_len, + &frame_support::dispatch::DispatchInfo { + class: DispatchClass::Normal, + pays_fee: frame_support::dispatch::Pays::Yes, + weight: extrinsic_weight, + }, + tip, + ); + + assert_eq!( + expected_fee, + actual_fee, + "The actual fee did not match the expected fee, diff {}", + actual_fee - expected_fee + ); + }); + } + + #[test] + fn test_min_gas_price_is_deterministic() { + let mut t: sp_io::TestExternalities = frame_system::GenesisConfig::::default() + .build_storage() + .unwrap() + .into(); + t.execute_with(|| { + let multiplier = sp_runtime::FixedU128::from_u32(1); + pallet_transaction_payment::NextFeeMultiplier::::set(multiplier); + let actual = TransactionPaymentAsGasPrice::min_gas_price().0; + let expected: U256 = multiplier + .saturating_mul_int(currency::WEIGHT_FEE.saturating_mul(WEIGHT_PER_GAS as u128)) + .into(); + + assert_eq!(expected, actual); + }); + } + + #[test] + fn test_min_gas_price_has_no_precision_loss_from_saturating_mul_int() { + let mut t: sp_io::TestExternalities = frame_system::GenesisConfig::::default() + .build_storage() + .unwrap() + .into(); + t.execute_with(|| { + let multiplier_1 = sp_runtime::FixedU128::from_float(0.999593900000000000); + let multiplier_2 = sp_runtime::FixedU128::from_float(0.999593200000000000); + + pallet_transaction_payment::NextFeeMultiplier::::set(multiplier_1); + let a = TransactionPaymentAsGasPrice::min_gas_price(); + pallet_transaction_payment::NextFeeMultiplier::::set(multiplier_2); + let b = TransactionPaymentAsGasPrice::min_gas_price(); + + assert_ne!( + a, b, + "both gas prices were equal, unexpected precision loss incurred" + ); + }); + } + + #[test] + fn test_fee_scenarios() { + use sp_runtime::FixedU128; + let mut t: sp_io::TestExternalities = frame_system::GenesisConfig::::default() + .build_storage() + .unwrap() + .into(); + t.execute_with(|| { + let weight_fee_per_gas = currency::WEIGHT_FEE.saturating_mul(WEIGHT_PER_GAS as u128); + let sim = |start_gas_price: u128, fullness: Perbill, num_blocks: u64| -> U256 { + let start_multiplier = + FixedU128::from_rational(start_gas_price, weight_fee_per_gas); + pallet_transaction_payment::NextFeeMultiplier::::set(start_multiplier); + + let block_weight = NORMAL_WEIGHT * fullness; + + for i in 0..num_blocks { + System::set_block_number(i as u32); + System::set_block_consumed_resources(block_weight, 0); + TransactionPayment::on_finalize(i as u32); + } + + TransactionPaymentAsGasPrice::min_gas_price().0 + }; + + // The expected values are the ones observed during test execution, + // they are expected to change when parameters that influence + // the fee calculation are changed, and should be updated accordingly. + // If a test fails when nothing specific to fees has changed, + // it may indicate an unexpected collateral effect and should be investigated + + assert_eq!( + sim(1_000_000_000, Perbill::from_percent(0), 1), + U256::from(1_250_000_000u128), + ); + assert_eq!( + sim(1_000_000_000, Perbill::from_percent(25), 1), + U256::from(1_250_000_000u128), + ); + assert_eq!( + sim(1_000_000_000, Perbill::from_percent(50), 1), + U256::from(1_250_750_225u128), + ); + assert_eq!( + sim(1_000_000_000, Perbill::from_percent(100), 1), + U256::from(1_253_254_225u128), + ); + + // 1 "real" hour (at 6-second blocks) + assert_eq!( + sim(1_000_000_000, Perbill::from_percent(0), 600), + U256::from(1_250_000_000u128), + ); + assert_eq!( + sim(1_000_000_000, Perbill::from_percent(25), 600), + U256::from(1_250_000_000u128), + ); + assert_eq!( + sim(1_000_000_000, Perbill::from_percent(50), 600), + U256::from(1_791_661_729u128), + ); + assert_eq!( + sim(1_000_000_000, Perbill::from_percent(100), 600), + U256::from(5_948_516_121u128), + ); + + // 1 "real" day (at 6-second blocks) + assert_eq!( + sim(1_000_000_000, Perbill::from_percent(0), 14400), + U256::from(1_250_000_000u128), // lower bound enforced + ); + assert_eq!( + sim(1_000_000_000, Perbill::from_percent(25), 14400), + U256::from(1_250_000_000u128), + ); + assert_eq!( + sim(1_000_000_000, Perbill::from_percent(50), 14400), + U256::from(7_066_658_618_836u128), + ); + assert_eq!( + sim(1_000_000_000, Perbill::from_percent(100), 14400), + U256::from(125_000_000_000_000u128), // upper bound enforced + ); + }); + } +} diff --git a/tracing/3001/runtime/moonriver/tests/runtime_apis.rs b/tracing/3001/runtime/moonriver/tests/runtime_apis.rs new file mode 100644 index 00000000..06a77942 --- /dev/null +++ b/tracing/3001/runtime/moonriver/tests/runtime_apis.rs @@ -0,0 +1,398 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Moonriver Runtime Api Integration Tests + +mod common; +use common::*; + +use fp_evm::{FeeCalculator, GenesisAccount}; +use frame_support::assert_ok; +use nimbus_primitives::NimbusId; +use pallet_evm::{Account as EVMAccount, AddressMapping}; +use sp_core::{ByteArray, H160, H256, U256}; + +use fp_rpc::runtime_decl_for_ethereum_runtime_rpc_api::EthereumRuntimeRPCApi; +use moonbeam_core_primitives::Header; +use moonbeam_rpc_primitives_txpool::runtime_decl_for_tx_pool_runtime_api::TxPoolRuntimeApi; +use moonriver_runtime::{Executive, TransactionPaymentAsGasPrice}; +use nimbus_primitives::runtime_decl_for_nimbus_api::NimbusApi; +use std::{collections::BTreeMap, str::FromStr}; + +#[test] +fn ethereum_runtime_rpc_api_chain_id() { + ExtBuilder::default().build().execute_with(|| { + assert_eq!(Runtime::chain_id(), CHAIN_ID); + }); +} + +#[test] +fn ethereum_runtime_rpc_api_account_basic() { + ExtBuilder::default() + .with_balances(vec![(AccountId::from(ALICE), 2_000 * MOVR)]) + .build() + .execute_with(|| { + assert_eq!( + Runtime::account_basic(H160::from(ALICE)), + EVMAccount { + balance: U256::from(2_000 * MOVR), + nonce: U256::zero() + } + ); + }); +} + +#[test] +fn ethereum_runtime_rpc_api_gas_price() { + ExtBuilder::default().build().execute_with(|| { + assert_eq!( + Runtime::gas_price(), + TransactionPaymentAsGasPrice::min_gas_price().0 + ); + }); +} + +#[test] +fn ethereum_runtime_rpc_api_account_code_at() { + let address = H160::from(EVM_CONTRACT); + let code: Vec = vec![1, 2, 3, 4, 5]; + ExtBuilder::default() + .with_evm_accounts({ + let mut map = BTreeMap::new(); + map.insert( + address, + GenesisAccount { + balance: U256::zero(), + code: code.clone(), + nonce: Default::default(), + storage: Default::default(), + }, + ); + map + }) + .build() + .execute_with(|| { + assert_eq!(Runtime::account_code_at(address), code); + }); +} + +#[test] +fn ethereum_runtime_rpc_api_author() { + ExtBuilder::default() + .with_collators(vec![(AccountId::from(ALICE), 1_000 * MOVR)]) + .with_mappings(vec![( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + AccountId::from(ALICE), + )]) + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * MOVR), + (AccountId::from(BOB), 1_000 * MOVR), + ]) + .with_delegations(vec![( + AccountId::from(BOB), + AccountId::from(ALICE), + 500 * MOVR, + )]) + .build() + .execute_with(|| { + set_parachain_inherent_data(); + run_to_block(2, Some(NimbusId::from_slice(&ALICE_NIMBUS).unwrap())); + assert_eq!(Runtime::author(), H160::from(ALICE)); + }); +} + +#[test] +fn ethereum_runtime_rpc_api_storage_at() { + let address = H160::from(EVM_CONTRACT); + let mut key = [0u8; 32]; + key[31..32].copy_from_slice(&[6u8][..]); + let mut value = [0u8; 32]; + value[31..32].copy_from_slice(&[7u8][..]); + let item = H256::from_slice(&key[..]); + let mut storage: BTreeMap = BTreeMap::new(); + storage.insert(H256::from_slice(&key[..]), item); + ExtBuilder::default() + .with_evm_accounts({ + let mut map = BTreeMap::new(); + map.insert( + address, + GenesisAccount { + balance: U256::zero(), + code: Vec::new(), + nonce: Default::default(), + storage: storage.clone(), + }, + ); + map + }) + .build() + .execute_with(|| { + assert_eq!(Runtime::storage_at(address, U256::from(6)), item); + }); +} + +#[test] +fn ethereum_runtime_rpc_api_call() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * MOVR), + (AccountId::from(BOB), 2_000 * MOVR), + ]) + .build() + .execute_with(|| { + let execution_result = Runtime::call( + H160::from(ALICE), // from + H160::from(BOB), // to + Vec::new(), // data + U256::from(1000u64), // value + U256::from(100000u64), // gas_limit + None, // max_fee_per_gas + None, // max_priority_fee_per_gas + None, // nonce + false, // estimate + None, // access_list + ); + assert!(execution_result.is_ok()); + }); +} + +#[test] +fn ethereum_runtime_rpc_api_create() { + ExtBuilder::default() + .with_balances(vec![(AccountId::from(ALICE), 2_000 * MOVR)]) + .build() + .execute_with(|| { + let execution_result = Runtime::create( + H160::from(ALICE), // from + vec![0, 1, 1, 0], // data + U256::zero(), // value + U256::from(100000u64), // gas_limit + None, // max_fee_per_gas + None, // max_priority_fee_per_gas + None, // nonce + false, // estimate + None, // access_list + ); + assert!(execution_result.is_ok()); + }); +} + +#[test] +fn ethereum_runtime_rpc_api_current_transaction_statuses() { + let alith = ::AddressMapping::into_account_id( + H160::from_str("f24ff3a9cf04c71dbc94d0b566f7a27b94566cac") + .expect("internal H160 is valid; qed"), + ); + ExtBuilder::default() + .with_collators(vec![(AccountId::from(ALICE), 1_000 * MOVR)]) + .with_mappings(vec![( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + AccountId::from(ALICE), + )]) + .with_balances(vec![ + (alith, 2_000 * MOVR), + (AccountId::from(ALICE), 2_000 * MOVR), + (AccountId::from(BOB), 1_000 * MOVR), + ]) + .with_delegations(vec![( + AccountId::from(BOB), + AccountId::from(ALICE), + 500 * MOVR, + )]) + .build() + .execute_with(|| { + set_parachain_inherent_data(); + // set_author(NimbusId::from_slice(&ALICE_NIMBUS)); + let result = + Executive::apply_extrinsic(unchecked_eth_tx(VALID_ETH_TX)).expect("Apply result."); + assert_eq!(result, Ok(())); + rpc_run_to_block(2); + let statuses = + Runtime::current_transaction_statuses().expect("Transaction statuses result."); + assert_eq!(statuses.len(), 1); + }); +} + +#[test] +fn ethereum_runtime_rpc_api_current_block() { + ExtBuilder::default() + .with_collators(vec![(AccountId::from(ALICE), 1_000 * MOVR)]) + .with_mappings(vec![( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + AccountId::from(ALICE), + )]) + .with_balances(vec![ + (AccountId::from(ALICE), 2_000 * MOVR), + (AccountId::from(BOB), 1_000 * MOVR), + ]) + .with_delegations(vec![( + AccountId::from(BOB), + AccountId::from(ALICE), + 500 * MOVR, + )]) + .build() + .execute_with(|| { + set_parachain_inherent_data(); + // set_author(NimbusId::from_slice(&ALICE_NIMBUS)); + rpc_run_to_block(2); + let block = Runtime::current_block().expect("Block result."); + assert_eq!(block.header.number, U256::from(1u8)); + }); +} + +#[test] +fn ethereum_runtime_rpc_api_current_receipts() { + let alith = ::AddressMapping::into_account_id( + H160::from_str("f24ff3a9cf04c71dbc94d0b566f7a27b94566cac") + .expect("internal H160 is valid; qed"), + ); + ExtBuilder::default() + .with_collators(vec![(AccountId::from(ALICE), 1_000 * MOVR)]) + .with_mappings(vec![( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + AccountId::from(ALICE), + )]) + .with_balances(vec![ + (alith, 2_000 * MOVR), + (AccountId::from(ALICE), 2_000 * MOVR), + (AccountId::from(BOB), 1_000 * MOVR), + ]) + .with_delegations(vec![( + AccountId::from(BOB), + AccountId::from(ALICE), + 500 * MOVR, + )]) + .build() + .execute_with(|| { + set_parachain_inherent_data(); + // set_author(NimbusId::from_slice(&ALICE_NIMBUS)); + let result = + Executive::apply_extrinsic(unchecked_eth_tx(VALID_ETH_TX)).expect("Apply result."); + assert_eq!(result, Ok(())); + rpc_run_to_block(2); + let receipts = Runtime::current_receipts().expect("Receipts result."); + assert_eq!(receipts.len(), 1); + }); +} + +#[test] +fn txpool_runtime_api_extrinsic_filter() { + ExtBuilder::default().build().execute_with(|| { + let non_eth_uxt = UncheckedExtrinsic::new_unsigned( + pallet_balances::Call::::transfer_allow_death { + dest: AccountId::from(BOB), + value: 1 * MOVR, + } + .into(), + ); + let eth_uxt = unchecked_eth_tx(VALID_ETH_TX); + let txpool = >::extrinsic_filter( + vec![eth_uxt.clone(), non_eth_uxt.clone()], + vec![unchecked_eth_tx(VALID_ETH_TX), non_eth_uxt], + ); + assert_eq!(txpool.ready.len(), 1); + assert_eq!(txpool.future.len(), 1); + }); +} + +#[test] +fn can_author_when_selected_is_empty() { + ExtBuilder::default() + .with_balances(vec![ + (AccountId::from(ALICE), 20_000_000 * MOVR), + (AccountId::from(BOB), 10_000_000 * MOVR), + ]) + .with_collators(vec![(AccountId::from(ALICE), 2_000_000 * MOVR)]) + .with_mappings(vec![( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + AccountId::from(ALICE), + )]) + .build() + .execute_with(|| { + set_parachain_inherent_data(); + run_to_block(2, Some(NimbusId::from_slice(&ALICE_NIMBUS).unwrap())); + + assert_eq!(ParachainStaking::candidate_pool().0.len(), 1); + + let slot_number = 0; + let parent = Header { + digest: Default::default(), + extrinsics_root: Default::default(), + number: Default::default(), + parent_hash: Default::default(), + state_root: Default::default(), + }; + + // Base case: ALICE can author blocks when she is the only candidate + let can_author_block = Runtime::can_author( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + slot_number, + &parent, + ); + + assert!(can_author_block); + + // Remove ALICE from candidate pool, leaving the candidate_pool empty + assert_ok!(ParachainStaking::go_offline(origin_of(AccountId::from( + ALICE + )))); + + // Need to fast forward to right before the next session, which is when selected candidates + // will be updated. We want to test the creation of the first block of the next session. + run_to_block(1799, Some(NimbusId::from_slice(&ALICE_NIMBUS).unwrap())); + + assert_eq!(ParachainStaking::candidate_pool().0.len(), 0); + + let slot_number = 0; + let parent = Header { + digest: Default::default(), + extrinsics_root: Default::default(), + number: 1799, + parent_hash: Default::default(), + state_root: Default::default(), + }; + + let can_author_block = Runtime::can_author( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + slot_number, + &parent, + ); + + assert!(can_author_block); + + // Check that it works as expected after session update + run_to_block(1800, Some(NimbusId::from_slice(&ALICE_NIMBUS).unwrap())); + + assert_eq!(ParachainStaking::candidate_pool().0.len(), 0); + + let slot_number = 0; + let parent = Header { + digest: Default::default(), + extrinsics_root: Default::default(), + number: 1800, + parent_hash: Default::default(), + state_root: Default::default(), + }; + + let can_author_block = Runtime::can_author( + NimbusId::from_slice(&ALICE_NIMBUS).unwrap(), + slot_number, + &parent, + ); + + assert!(can_author_block); + }); +} diff --git a/tracing/3001/runtime/moonriver/tests/xcm_mock/mod.rs b/tracing/3001/runtime/moonriver/tests/xcm_mock/mod.rs new file mode 100644 index 00000000..8d5d6e8c --- /dev/null +++ b/tracing/3001/runtime/moonriver/tests/xcm_mock/mod.rs @@ -0,0 +1,273 @@ +// Copyright 2021 Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot 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. + +// Polkadot 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 Polkadot. If not, see . + +pub mod parachain; +pub mod relay_chain; +pub mod statemine_like; + +use cumulus_primitives_core::ParaId; +use pallet_xcm_transactor::relay_indices::*; +use sp_runtime::traits::AccountIdConversion; +use sp_runtime::{AccountId32, BuildStorage}; +use xcm_simulator::{decl_test_network, decl_test_parachain, decl_test_relay_chain, TestExt}; + +use polkadot_runtime_parachains::configuration::{ + GenesisConfig as ConfigurationGenesisConfig, HostConfiguration, +}; +use polkadot_runtime_parachains::paras::{ + GenesisConfig as ParasGenesisConfig, ParaGenesisArgs, ParaKind, +}; +use sp_core::{H160, U256}; +use std::{collections::BTreeMap, str::FromStr}; + +pub const PARAALICE: [u8; 20] = [1u8; 20]; +pub const RELAYALICE: AccountId32 = AccountId32::new([0u8; 32]); +pub const RELAYBOB: AccountId32 = AccountId32::new([2u8; 32]); + +pub fn para_a_account() -> AccountId32 { + ParaId::from(1).into_account_truncating() +} + +pub fn para_b_account() -> AccountId32 { + ParaId::from(2).into_account_truncating() +} + +pub fn para_a_account_20() -> parachain::AccountId { + ParaId::from(1).into_account_truncating() +} + +pub fn evm_account() -> H160 { + H160::from_str("1000000000000000000000000000000000000001").unwrap() +} + +pub fn mock_para_genesis_info() -> ParaGenesisArgs { + ParaGenesisArgs { + genesis_head: vec![1u8].into(), + validation_code: vec![1u8].into(), + para_kind: ParaKind::Parachain, + } +} + +pub fn mock_relay_config() -> HostConfiguration { + HostConfiguration:: { + hrmp_channel_max_capacity: u32::MAX, + hrmp_channel_max_total_size: u32::MAX, + hrmp_max_parachain_inbound_channels: 10, + hrmp_max_parachain_outbound_channels: 10, + hrmp_channel_max_message_size: u32::MAX, + // Changed to avoid aritmetic errors within hrmp_close + max_downward_message_size: 100_000u32, + ..Default::default() + } +} + +decl_test_parachain! { + pub struct ParaA { + Runtime = parachain::Runtime, + XcmpMessageHandler = parachain::MsgQueue, + DmpMessageHandler = parachain::MsgQueue, + new_ext = para_ext(1), + } +} + +decl_test_parachain! { + pub struct ParaB { + Runtime = parachain::Runtime, + XcmpMessageHandler = parachain::MsgQueue, + DmpMessageHandler = parachain::MsgQueue, + new_ext = para_ext(2), + } +} + +decl_test_parachain! { + pub struct ParaC { + Runtime = parachain::Runtime, + XcmpMessageHandler = parachain::MsgQueue, + DmpMessageHandler = parachain::MsgQueue, + new_ext = para_ext(3), + } +} + +decl_test_parachain! { + pub struct Statemine { + Runtime = statemine_like::Runtime, + XcmpMessageHandler = statemine_like::MsgQueue, + DmpMessageHandler = statemine_like::MsgQueue, + new_ext = statemine_ext(4), + } +} + +decl_test_relay_chain! { + pub struct Relay { + Runtime = relay_chain::Runtime, + RuntimeCall = relay_chain::RuntimeCall, + RuntimeEvent = relay_chain::RuntimeEvent, + XcmConfig = relay_chain::XcmConfig, + MessageQueue = relay_chain::MessageQueue, + System = relay_chain::System, + new_ext = relay_ext(vec![1, 2, 3, 4]), + } +} + +decl_test_network! { + pub struct MockNet { + relay_chain = Relay, + parachains = vec![ + (1, ParaA), + (2, ParaB), + (3, ParaC), + (4, Statemine), + ], + } +} + +pub const INITIAL_BALANCE: u128 = 10_000_000_000_000_000; + +pub const INITIAL_EVM_BALANCE: u128 = 0; +pub const INITIAL_EVM_NONCE: u32 = 1; + +pub fn para_ext(para_id: u32) -> sp_io::TestExternalities { + use parachain::{MsgQueue, Runtime, System}; + + let mut t = frame_system::GenesisConfig::::default() + .build_storage() + .unwrap(); + + pallet_balances::GenesisConfig:: { + balances: vec![(PARAALICE.into(), INITIAL_BALANCE)], + } + .assimilate_storage(&mut t) + .unwrap(); + + pallet_xcm_transactor::GenesisConfig:: { + // match relay runtime construct_runtime order in xcm_mock::relay_chain + relay_indices: RelayChainIndices { + hrmp: 6u8, + init_open_channel: 0u8, + accept_open_channel: 1u8, + close_channel: 2u8, + cancel_open_request: 6u8, + ..Default::default() + }, + ..Default::default() + } + .assimilate_storage(&mut t) + .unwrap(); + + // EVM accounts are self-sufficient. + let mut evm_accounts = BTreeMap::new(); + evm_accounts.insert( + evm_account(), + fp_evm::GenesisAccount { + nonce: U256::from(INITIAL_EVM_NONCE), + balance: U256::from(INITIAL_EVM_BALANCE), + storage: Default::default(), + code: vec![ + 0x00, // STOP + ], + }, + ); + + let genesis_config = pallet_evm::GenesisConfig:: { + accounts: evm_accounts, + ..Default::default() + }; + genesis_config.assimilate_storage(&mut t).unwrap(); + + let mut ext = sp_io::TestExternalities::new(t); + ext.execute_with(|| { + System::set_block_number(1); + MsgQueue::set_para_id(para_id.into()); + }); + ext +} + +pub fn statemine_ext(para_id: u32) -> sp_io::TestExternalities { + use statemine_like::{MsgQueue, Runtime, System}; + + let mut t = frame_system::GenesisConfig::::default() + .build_storage() + .unwrap(); + + pallet_balances::GenesisConfig:: { + balances: vec![ + (RELAYALICE.into(), INITIAL_BALANCE), + (RELAYBOB.into(), INITIAL_BALANCE), + ], + } + .assimilate_storage(&mut t) + .unwrap(); + + let mut ext = sp_io::TestExternalities::new(t); + ext.execute_with(|| { + System::set_block_number(1); + MsgQueue::set_para_id(para_id.into()); + }); + ext +} + +pub fn relay_ext(paras: Vec) -> sp_io::TestExternalities { + use relay_chain::{Runtime, System}; + + let mut t = frame_system::GenesisConfig::::default() + .build_storage() + .unwrap(); + + pallet_balances::GenesisConfig:: { + balances: vec![(RELAYALICE, INITIAL_BALANCE)], + } + .assimilate_storage(&mut t) + .unwrap(); + + let para_genesis: Vec<(ParaId, ParaGenesisArgs)> = paras + .iter() + .map(|¶_id| (para_id.into(), mock_para_genesis_info())) + .collect(); + + let genesis_config = ConfigurationGenesisConfig:: { + config: mock_relay_config(), + }; + genesis_config.assimilate_storage(&mut t).unwrap(); + + let genesis_config = ParasGenesisConfig:: { + paras: para_genesis, + ..Default::default() + }; + genesis_config.assimilate_storage(&mut t).unwrap(); + + let mut ext = sp_io::TestExternalities::new(t); + ext.execute_with(|| { + System::set_block_number(1); + }); + ext +} + +pub type RelayChainPalletXcm = pallet_xcm::Pallet; +pub type Hrmp = polkadot_runtime_parachains::hrmp::Pallet; + +pub type StatemineBalances = pallet_balances::Pallet; +pub type StatemineChainPalletXcm = pallet_xcm::Pallet; +pub type StatemineAssets = pallet_assets::Pallet; + +pub type ParachainPalletXcm = pallet_xcm::Pallet; +pub type Assets = pallet_assets::Pallet; + +pub type Treasury = pallet_treasury::Pallet; +pub type AssetManager = pallet_asset_manager::Pallet; +pub type XTokens = orml_xtokens::Pallet; +pub type RelayBalances = pallet_balances::Pallet; +pub type ParaBalances = pallet_balances::Pallet; +pub type XcmTransactor = pallet_xcm_transactor::Pallet; diff --git a/tracing/3001/runtime/moonriver/tests/xcm_mock/parachain.rs b/tracing/3001/runtime/moonriver/tests/xcm_mock/parachain.rs new file mode 100644 index 00000000..97b30511 --- /dev/null +++ b/tracing/3001/runtime/moonriver/tests/xcm_mock/parachain.rs @@ -0,0 +1,1094 @@ +// Copyright 2021 Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot 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. + +// Polkadot 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 Polkadot. If not, see . + +//! Parachain runtime mock. + +use frame_support::{ + construct_runtime, + dispatch::GetDispatchInfo, + ensure, parameter_types, + traits::{ + AsEnsureOriginWithArg, ConstU32, Everything, Get, InstanceFilter, Nothing, PalletInfoAccess, + }, + weights::Weight, + PalletId, +}; +use frame_system::{pallet_prelude::BlockNumberFor, EnsureNever, EnsureRoot}; +use pallet_xcm::migration::v1::VersionUncheckedMigrateToV1; +use parity_scale_codec::{Decode, Encode, MaxEncodedLen}; +use sp_core::H256; +use sp_runtime::{ + traits::{BlakeTwo256, Hash, IdentityLookup, MaybeEquivalence, Zero}, + Permill, +}; +use sp_std::{convert::TryFrom, prelude::*}; +use xcm::{latest::prelude::*, Version as XcmVersion, VersionedXcm}; + +use cumulus_primitives_core::relay_chain::HrmpChannelId; +use orml_traits::parameter_type_with_key; +use pallet_ethereum::PostLogContent; +use polkadot_core_primitives::BlockNumber as RelayBlockNumber; +use polkadot_parachain::primitives::{Id as ParaId, Sibling}; +use xcm::latest::{ + AssetId as XcmAssetId, Error as XcmError, ExecuteXcm, + Junction::{PalletInstance, Parachain}, + Location, NetworkId, Outcome, Xcm, +}; +use xcm_builder::{ + AccountKey20Aliases, AllowKnownQueryResponses, AllowSubscriptionsFrom, + AllowTopLevelPaidExecutionFrom, ConvertedConcreteId, EnsureXcmOrigin, FixedRateOfFungible, + FixedWeightBounds, FungibleAdapter as XcmCurrencyAdapter, FungiblesAdapter, IsConcrete, + NoChecking, ParentAsSuperuser, ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, + SiblingParachainConvertsVia, SignedAccountKey20AsNative, SovereignSignedViaLocation, + TakeWeightCredit, WithComputedOrigin, +}; +use xcm_executor::{traits::JustTry, Config, XcmExecutor}; + +#[cfg(feature = "runtime-benchmarks")] +use moonbeam_runtime_common::benchmarking::BenchmarkHelper as ArgumentsBenchmarkHelper; +pub use moonriver_runtime::xcm_config::AssetType; +use scale_info::TypeInfo; +use xcm_simulator::{ + DmpMessageHandlerT as DmpMessageHandler, XcmpMessageFormat, + XcmpMessageHandlerT as XcmpMessageHandler, +}; + +pub type AccountId = moonbeam_core_primitives::AccountId; +pub type Balance = u128; +pub type AssetId = u128; +pub type BlockNumber = BlockNumberFor; + +parameter_types! { + pub const BlockHashCount: u32 = 250; +} + +impl frame_system::Config for Runtime { + type RuntimeOrigin = RuntimeOrigin; + type RuntimeCall = RuntimeCall; + type RuntimeTask = RuntimeTask; + type Nonce = u64; + type Block = Block; + type Hash = H256; + type Hashing = ::sp_runtime::traits::BlakeTwo256; + type AccountId = AccountId; + type Lookup = IdentityLookup; + type RuntimeEvent = RuntimeEvent; + type BlockHashCount = BlockHashCount; + type BlockWeights = (); + type BlockLength = (); + type Version = (); + type PalletInfo = PalletInfo; + type AccountData = pallet_balances::AccountData; + type OnNewAccount = (); + type OnKilledAccount = (); + type DbWeight = (); + type BaseCallFilter = Everything; + type SystemWeightInfo = (); + type SS58Prefix = (); + type OnSetCode = (); + type MaxConsumers = frame_support::traits::ConstU32<16>; +} + +parameter_types! { + pub ExistentialDeposit: Balance = 0; + pub const MaxLocks: u32 = 50; + pub const MaxReserves: u32 = 50; +} + +impl pallet_balances::Config for Runtime { + type MaxLocks = MaxLocks; + type Balance = Balance; + type RuntimeEvent = RuntimeEvent; + type DustRemoval = (); + type ExistentialDeposit = ExistentialDeposit; + type AccountStore = System; + type WeightInfo = (); + type MaxReserves = MaxReserves; + type ReserveIdentifier = [u8; 8]; + type RuntimeHoldReason = (); + type FreezeIdentifier = (); + type MaxFreezes = (); + type RuntimeFreezeReason = (); +} + +pub type ForeignAssetInstance = (); + +// Required for runtime benchmarks +pallet_assets::runtime_benchmarks_enabled! { + pub struct BenchmarkHelper; + impl pallet_assets::BenchmarkHelper for BenchmarkHelper + where + AssetIdParameter: From, + { + fn create_asset_id_parameter(id: u32) -> AssetIdParameter { + (id as u128).into() + } + } +} + +parameter_types! { + pub const AssetDeposit: Balance = 1; // Does not really matter as this will be only called by root + pub const ApprovalDeposit: Balance = 0; + pub const AssetsStringLimit: u32 = 50; + pub const MetadataDepositBase: Balance = 0; + pub const MetadataDepositPerByte: Balance = 0; + pub const AssetAccountDeposit: Balance = 0; +} + +impl pallet_assets::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Balance = Balance; + type AssetId = AssetId; + type Currency = Balances; + type ForceOrigin = EnsureRoot; + type AssetDeposit = AssetDeposit; + type MetadataDepositBase = MetadataDepositBase; + type MetadataDepositPerByte = MetadataDepositPerByte; + type ApprovalDeposit = ApprovalDeposit; + type StringLimit = AssetsStringLimit; + type Freezer = (); + type Extra = (); + type AssetAccountDeposit = AssetAccountDeposit; + type WeightInfo = pallet_assets::weights::SubstrateWeight; + type RemoveItemsLimit = ConstU32<656>; + type AssetIdParameter = AssetId; + type CreateOrigin = AsEnsureOriginWithArg>; + type CallbackHandle = (); + pallet_assets::runtime_benchmarks_enabled! { + type BenchmarkHelper = BenchmarkHelper; + } +} + +/// Type for specifying how a `Location` 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 default `AccountId`. + ParentIsPreset, + // Sibling parachain origins convert to AccountId via the `ParaId::into`. + SiblingParachainConvertsVia, + AccountKey20Aliases, + // Generate remote accounts according to polkadot standards + xcm_builder::HashedDescription< + AccountId, + xcm_builder::DescribeFamily, + >, +); + +/// 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 + // recognised. + RelayChainAsNative, + // Native converter for sibling Parachains; will convert to a `SiblingPara` origin when + // recognised. + SiblingParachainAsNative, + // Superuser converter for the Relay-chain (Parent) location. This will allow it to issue a + // transaction from the Root origin. + ParentAsSuperuser, + // Xcm origins can be represented natively under the Xcm pallet's Xcm origin. + pallet_xcm::XcmPassthrough, + SignedAccountKey20AsNative, +); + +parameter_types! { + pub const UnitWeightCost: Weight = Weight::from_parts(1u64, 1u64); + pub MaxInstructions: u32 = 100; +} + +// Instructing how incoming xcm assets will be handled +pub type ForeignFungiblesTransactor = FungiblesAdapter< + // Use this fungibles implementation: + Assets, + // Use this currency when it is a fungible asset matching the given location or name: + ( + ConvertedConcreteId< + AssetId, + Balance, + xcm_primitives::AsAssetType, + JustTry, + >, + ), + // Do a simple punn to convert an AccountId32 Location into a native chain account ID: + LocationToAccountId, + // Our chain's account ID type (we can't get away without mentioning it explicitly): + AccountId, + // We dont allow teleports. + NoChecking, + // We dont track any teleports + (), +>; + +pub type LocalAssetTransactor = XcmCurrencyAdapter< + // Use this currency: + Balances, + // Use this currency when it is a fungible asset matching any of the locations in + // SelfReserveRepresentations + IsConcrete, + // We can convert the Locations with our converter above: + LocationToAccountId, + // Our chain's account ID type (we can't get away without mentioning it explicitly): + AccountId, + // We dont allow teleport + (), +>; + +// We use both transactors +pub type AssetTransactors = (LocalAssetTransactor, ForeignFungiblesTransactor); + +pub type XcmRouter = super::ParachainXcmRouter; + +pub type XcmBarrier = ( + // Weight that is paid for may be consumed. + TakeWeightCredit, + // Expected responses are OK. + AllowKnownQueryResponses, + WithComputedOrigin< + ( + // If the message is one that immediately attemps to pay for execution, then allow it. + AllowTopLevelPaidExecutionFrom, + // Subscriptions for version tracking are OK. + AllowSubscriptionsFrom, + ), + UniversalLocation, + ConstU32<8>, + >, +); + +parameter_types! { + /// Xcm fees will go to the treasury account + pub XcmFeesAccount: AccountId = Treasury::account_id(); +} + +/// This is the struct that will handle the revenue from xcm fees +pub type XcmFeesToAccount_ = xcm_primitives::XcmFeesToAccount< + Assets, + ( + ConvertedConcreteId< + AssetId, + Balance, + xcm_primitives::AsAssetType, + JustTry, + >, + ), + AccountId, + XcmFeesAccount, +>; + +parameter_types! { + // We cannot skip the native trader for some specific tests, so we will have to work with + // a native trader that charges same number of units as weight + pub ParaTokensPerSecond: (XcmAssetId, u128, u128) = ( + AssetId(SelfReserve::get()), + 1000000000000, + 0, + ); +} + +parameter_types! { + pub const RelayNetwork: NetworkId = NetworkId::Polkadot; + pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); + pub UniversalLocation: InteriorLocation = + [GlobalConsensus(RelayNetwork::get()), Parachain(MsgQueue::parachain_id().into())].into(); + pub SelfReserve: Location = Location { + parents:0, + interior: [ + PalletInstance(::index() as u8) + ].into() + }; + pub const MaxAssetsIntoHolding: u32 = 64; +} + +use frame_system::RawOrigin; +use sp_runtime::traits::PostDispatchInfoOf; +use sp_runtime::DispatchErrorWithPostInfo; +use xcm_executor::traits::CallDispatcher; +moonbeam_runtime_common::impl_moonbeam_xcm_call!(); + +pub struct XcmConfig; +impl Config for XcmConfig { + type RuntimeCall = RuntimeCall; + type XcmSender = XcmRouter; + type AssetTransactor = AssetTransactors; + type OriginConverter = XcmOriginToTransactDispatchOrigin; + type IsReserve = orml_xcm_support::MultiNativeAsset< + xcm_primitives::AbsoluteAndRelativeReserve, + >; + type IsTeleporter = (); + type UniversalLocation = UniversalLocation; + type Barrier = XcmBarrier; + type Weigher = FixedWeightBounds; + // We use three traders + // When we receive either representation of the self-reserve asset, + // When we receive a non-reserve asset, we use AssetManager to fetch how many + // units per second we should charge + type Trader = ( + FixedRateOfFungible, + xcm_primitives::FirstAssetTrader, + ); + type ResponseHandler = PolkadotXcm; + type SubscriptionService = PolkadotXcm; + type AssetTrap = PolkadotXcm; + type AssetClaims = PolkadotXcm; + type CallDispatcher = MoonbeamCall; + type AssetLocker = (); + type AssetExchanger = (); + type PalletInstancesInfo = (); + type MaxAssetsIntoHolding = MaxAssetsIntoHolding; + type FeeManager = (); + type MessageExporter = (); + type UniversalAliases = Nothing; + type SafeCallFilter = Everything; + type Aliasers = Nothing; + + type TransactionalProcessor = (); +} + +impl cumulus_pallet_xcm::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type XcmExecutor = XcmExecutor; +} + +// Our currencyId. We distinguish for now between SelfReserve, and Others, defined by their Id. +#[derive(Clone, Eq, Debug, PartialEq, Ord, PartialOrd, Encode, Decode, TypeInfo)] +pub enum CurrencyId { + SelfReserve, + ForeignAsset(AssetId), +} + +// How to convert from CurrencyId to Location +pub struct CurrencyIdToLocation(sp_std::marker::PhantomData); +impl sp_runtime::traits::Convert> + for CurrencyIdToLocation +where + AssetXConverter: MaybeEquivalence, +{ + fn convert(currency: CurrencyId) -> Option { + match currency { + CurrencyId::SelfReserve => { + // For now and until Xtokens is adapted to handle 0.9.16 version we use + // the old anchoring here + // This is not a problem in either cases, since the view of the destination + // chain does not change + // TODO! change this to NewAnchoringSelfReserve once xtokens is adapted for it + let multi: Location = SelfReserve::get(); + Some(multi) + } + CurrencyId::ForeignAsset(asset) => AssetXConverter::convert_back(&asset), + } + } +} + +parameter_types! { + pub const BaseXcmWeight: Weight = Weight::from_parts(100u64, 100u64); + pub const MaxAssetsForTransfer: usize = 2; + pub SelfLocation: Location = Location::here(); + pub SelfLocationAbsolute: Location = Location { + parents:1, + interior: [ + Parachain(MsgQueue::parachain_id().into()) + ].into() + }; +} + +parameter_type_with_key! { + pub ParachainMinFee: |location: Location| -> Option { + match (location.parents, location.first_interior()) { + (1, Some(Parachain(4u32))) => Some(50u128), + _ => None, + } + }; +} + +// The XCM message wrapper wrapper +impl orml_xtokens::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Balance = Balance; + type CurrencyId = CurrencyId; + type AccountIdToLocation = xcm_primitives::AccountIdToLocation; + type CurrencyIdConvert = + CurrencyIdToLocation>; + type XcmExecutor = XcmExecutor; + type SelfLocation = SelfLocation; + type Weigher = xcm_builder::FixedWeightBounds; + type BaseXcmWeight = BaseXcmWeight; + type UniversalLocation = UniversalLocation; + type MaxAssetsForTransfer = MaxAssetsForTransfer; + type MinXcmFee = ParachainMinFee; + type LocationsFilter = Everything; + type ReserveProvider = xcm_primitives::AbsoluteAndRelativeReserve; +} + +parameter_types! { + pub const ProposalBond: Permill = Permill::from_percent(5); + pub const ProposalBondMinimum: Balance = 0; + pub const SpendPeriod: u32 = 0; + pub const TreasuryId: PalletId = PalletId(*b"pc/trsry"); + pub const MaxApprovals: u32 = 100; + pub TreasuryAccount: AccountId = Treasury::account_id(); +} + +impl pallet_treasury::Config for Runtime { + type PalletId = TreasuryId; + type Currency = Balances; + type ApproveOrigin = EnsureRoot; + type RejectOrigin = EnsureRoot; + type RuntimeEvent = RuntimeEvent; + type OnSlash = Treasury; + type ProposalBond = ProposalBond; + type ProposalBondMinimum = ProposalBondMinimum; + type SpendPeriod = SpendPeriod; + type Burn = (); + type BurnDestination = (); + type MaxApprovals = MaxApprovals; + type WeightInfo = (); + type SpendFunds = (); + type ProposalBondMaximum = (); + type SpendOrigin = frame_support::traits::NeverEnsureOrigin; // Same as Polkadot + type AssetKind = (); + type Beneficiary = AccountId; + type BeneficiaryLookup = IdentityLookup; + type Paymaster = PayFromAccount; + type BalanceConverter = UnityAssetBalanceConversion; + type PayoutPeriod = ConstU32<0>; + #[cfg(feature = "runtime-benchmarks")] + type BenchmarkHelper = ArgumentsBenchmarkHelper; +} + +#[frame_support::pallet] +pub mod mock_msg_queue { + use super::*; + use frame_support::pallet_prelude::*; + + #[pallet::config] + pub trait Config: frame_system::Config { + type RuntimeEvent: From> + IsType<::RuntimeEvent>; + type XcmExecutor: ExecuteXcm; + } + + #[pallet::call] + impl Pallet {} + + #[pallet::pallet] + pub struct Pallet(_); + + #[pallet::storage] + #[pallet::getter(fn parachain_id)] + pub(super) type ParachainId = StorageValue<_, ParaId, ValueQuery>; + + impl Get for Pallet { + fn get() -> ParaId { + Self::parachain_id() + } + } + + pub type MessageId = [u8; 32]; + + #[pallet::event] + #[pallet::generate_deposit(pub(super) fn deposit_event)] + pub enum Event { + // XCMP + /// Some XCM was executed OK. + Success(Option), + /// Some XCM failed. + Fail(Option, XcmError), + /// Bad XCM version used. + BadVersion(Option), + /// Bad XCM format used. + BadFormat(Option), + + // DMP + /// Downward message is invalid XCM. + InvalidFormat(MessageId), + /// Downward message is unsupported version of XCM. + UnsupportedVersion(MessageId), + /// Downward message executed with the given outcome. + ExecutedDownward(MessageId, Outcome), + } + + impl Pallet { + pub fn set_para_id(para_id: ParaId) { + ParachainId::::put(para_id); + } + + fn handle_xcmp_message( + sender: ParaId, + _sent_at: RelayBlockNumber, + xcm: VersionedXcm, + max_weight: Weight, + ) -> Result { + let hash = Encode::using_encoded(&xcm, T::Hashing::hash); + let (result, event) = match Xcm::::try_from(xcm) { + Ok(xcm) => { + let location = Location::new(1, [Parachain(sender.into())]); + let mut id = [0u8; 32]; + id.copy_from_slice(hash.as_ref()); + match T::XcmExecutor::prepare_and_execute( + location, + xcm, + &mut id, + max_weight, + Weight::zero(), + ) { + Outcome::Error { error } => { + (Err(error.clone()), Event::Fail(Some(hash), error)) + } + Outcome::Complete { used } => (Ok(used), Event::Success(Some(hash))), + // As far as the caller is concerned, this was dispatched without error, so + // we just report the weight used. + Outcome::Incomplete { used, error } => { + (Ok(used), Event::Fail(Some(hash), error)) + } + } + } + Err(()) => ( + Err(XcmError::UnhandledXcmVersion), + Event::BadVersion(Some(hash)), + ), + }; + Self::deposit_event(event); + result + } + } + + impl XcmpMessageHandler for Pallet { + fn handle_xcmp_messages<'a, I: Iterator>( + iter: I, + max_weight: Weight, + ) -> Weight { + for (sender, sent_at, data) in iter { + let mut data_ref = data; + let _ = XcmpMessageFormat::decode(&mut data_ref) + .expect("Simulator encodes with versioned xcm format; qed"); + + let mut remaining_fragments = &data_ref[..]; + while !remaining_fragments.is_empty() { + if let Ok(xcm) = + VersionedXcm::::decode(&mut remaining_fragments) + { + let _ = Self::handle_xcmp_message(sender, sent_at, xcm, max_weight); + } else { + debug_assert!(false, "Invalid incoming XCMP message data"); + } + } + } + max_weight + } + } + + impl DmpMessageHandler for Pallet { + fn handle_dmp_messages( + iter: impl Iterator)>, + limit: Weight, + ) -> Weight { + for (_i, (_sent_at, data)) in iter.enumerate() { + let mut id = sp_io::hashing::blake2_256(&data[..]); + let maybe_msg = VersionedXcm::::decode(&mut &data[..]) + .map(Xcm::::try_from); + match maybe_msg { + Err(_) => { + Self::deposit_event(Event::InvalidFormat(id)); + } + Ok(Err(())) => { + Self::deposit_event(Event::UnsupportedVersion(id)); + } + Ok(Ok(x)) => { + let outcome = T::XcmExecutor::prepare_and_execute( + Parent, + x, + &mut id, + limit, + Weight::zero(), + ); + + Self::deposit_event(Event::ExecutedDownward(id, outcome)); + } + } + } + limit + } + } +} + +// Pallet to provide the version, used to test runtime upgrade version changes +#[frame_support::pallet] +pub mod mock_version_changer { + use super::*; + use frame_support::pallet_prelude::*; + + #[pallet::config] + pub trait Config: frame_system::Config { + type RuntimeEvent: From> + IsType<::RuntimeEvent>; + } + + #[pallet::call] + impl Pallet {} + + #[pallet::pallet] + pub struct Pallet(_); + + #[pallet::storage] + #[pallet::getter(fn current_version)] + pub(super) type CurrentVersion = StorageValue<_, XcmVersion, ValueQuery>; + + impl Get for Pallet { + fn get() -> XcmVersion { + Self::current_version() + } + } + + #[pallet::event] + #[pallet::generate_deposit(pub(super) fn deposit_event)] + pub enum Event { + // XCMP + /// Some XCM was executed OK. + VersionChanged(XcmVersion), + } + + impl Pallet { + pub fn set_version(version: XcmVersion) { + CurrentVersion::::put(version); + Self::deposit_event(Event::VersionChanged(version)); + } + } +} + +impl mock_msg_queue::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type XcmExecutor = XcmExecutor; +} + +impl mock_version_changer::Config for Runtime { + type RuntimeEvent = RuntimeEvent; +} + +pub type LocalOriginToLocation = + xcm_primitives::SignedToAccountId20; + +parameter_types! { + pub MatcherLocation: Location = Location::here(); +} + +impl pallet_xcm::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type SendXcmOrigin = EnsureXcmOrigin; + type XcmRouter = XcmRouter; + type ExecuteXcmOrigin = EnsureXcmOrigin; + type XcmExecuteFilter = frame_support::traits::Nothing; + type XcmExecutor = XcmExecutor; + // Do not allow teleports + type XcmTeleportFilter = Nothing; + type XcmReserveTransferFilter = Everything; + type Weigher = FixedWeightBounds; + type UniversalLocation = UniversalLocation; + type RuntimeOrigin = RuntimeOrigin; + type RuntimeCall = RuntimeCall; + const VERSION_DISCOVERY_QUEUE_SIZE: u32 = 100; + // We use a custom one to test runtime ugprades + type AdvertisedXcmVersion = XcmVersioner; + type Currency = Balances; + type CurrencyMatcher = IsConcrete; + type TrustedLockers = (); + type SovereignAccountOf = (); + type MaxLockers = ConstU32<8>; + type WeightInfo = pallet_xcm::TestWeightInfo; + type MaxRemoteLockConsumers = ConstU32<0>; + type RemoteLockConsumerIdentifier = (); + type AdminOrigin = frame_system::EnsureRoot; +} + +// We instruct how to register the Assets +// In this case, we tell it to Create an Asset in pallet-assets +pub struct AssetRegistrar; +use frame_support::pallet_prelude::DispatchResult; +impl pallet_asset_manager::AssetRegistrar for AssetRegistrar { + fn create_foreign_asset( + asset: AssetId, + min_balance: Balance, + metadata: AssetMetadata, + is_sufficient: bool, + ) -> DispatchResult { + Assets::force_create( + RuntimeOrigin::root(), + asset, + AssetManager::account_id(), + is_sufficient, + min_balance, + )?; + + Assets::force_set_metadata( + RuntimeOrigin::root(), + asset, + metadata.name, + metadata.symbol, + metadata.decimals, + false, + ) + } + + fn destroy_foreign_asset(asset: AssetId) -> DispatchResult { + // Mark the asset as destroying + Assets::start_destroy(RuntimeOrigin::root(), asset.into())?; + + Ok(()) + } + + fn destroy_asset_dispatch_info_weight(asset: AssetId) -> Weight { + RuntimeCall::Assets( + pallet_assets::Call::::start_destroy { + id: asset.into(), + }, + ) + .get_dispatch_info() + .weight + } +} + +#[derive(Clone, Default, Eq, Debug, PartialEq, Ord, PartialOrd, Encode, Decode, TypeInfo)] +pub struct AssetMetadata { + pub name: Vec, + pub symbol: Vec, + pub decimals: u8, +} + +impl pallet_asset_manager::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Balance = Balance; + type AssetId = AssetId; + type AssetRegistrarMetadata = AssetMetadata; + type ForeignAssetType = AssetType; + type AssetRegistrar = AssetRegistrar; + type ForeignAssetModifierOrigin = EnsureRoot; + type WeightInfo = (); +} + +// 1 KSM should be enough +parameter_types! { + pub MaxHrmpRelayFee: Asset = (Location::parent(), 1_000_000_000_000u128).into(); +} + +impl pallet_xcm_transactor::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Balance = Balance; + type Transactor = MockTransactors; + type DerivativeAddressRegistrationOrigin = EnsureRoot; + type SovereignAccountDispatcherOrigin = frame_system::EnsureRoot; + type CurrencyId = CurrencyId; + type AccountIdToLocation = xcm_primitives::AccountIdToLocation; + type CurrencyIdToLocation = + CurrencyIdToLocation>; + type SelfLocation = SelfLocation; + type Weigher = xcm_builder::FixedWeightBounds; + type UniversalLocation = UniversalLocation; + type XcmSender = XcmRouter; + type BaseXcmWeight = BaseXcmWeight; + type AssetTransactor = AssetTransactors; + type ReserveProvider = xcm_primitives::AbsoluteAndRelativeReserve; + type WeightInfo = (); + type HrmpManipulatorOrigin = EnsureRoot; + type HrmpOpenOrigin = EnsureRoot; + type MaxHrmpFee = xcm_builder::Case; +} + +parameter_types! { + pub const MinimumPeriod: u64 = 1000; +} +impl pallet_timestamp::Config for Runtime { + type Moment = u64; + type OnTimestampSet = (); + type MinimumPeriod = MinimumPeriod; + type WeightInfo = (); +} + +use sp_core::U256; + +const MAX_POV_SIZE: u64 = 5 * 1024 * 1024; +/// Block storage limit in bytes. Set to 80 KB. +const BLOCK_STORAGE_LIMIT: u64 = 80 * 1024; + +parameter_types! { + pub BlockGasLimit: U256 = U256::from(u64::MAX); + pub WeightPerGas: Weight = Weight::from_parts(1, 0); + pub GasLimitPovSizeRatio: u64 = { + let block_gas_limit = BlockGasLimit::get().min(u64::MAX.into()).low_u64(); + block_gas_limit.saturating_div(MAX_POV_SIZE) + }; + pub GasLimitStorageGrowthRatio: u64 = + BlockGasLimit::get().min(u64::MAX.into()).low_u64().saturating_div(BLOCK_STORAGE_LIMIT); +} + +impl pallet_evm::Config for Runtime { + type FeeCalculator = (); + type GasWeightMapping = pallet_evm::FixedGasWeightMapping; + type WeightPerGas = WeightPerGas; + + type CallOrigin = pallet_evm::EnsureAddressRoot; + type WithdrawOrigin = pallet_evm::EnsureAddressNever; + + type AddressMapping = pallet_evm::IdentityAddressMapping; + type Currency = Balances; + type Runner = pallet_evm::runner::stack::Runner; + + type RuntimeEvent = RuntimeEvent; + type PrecompilesType = (); + type PrecompilesValue = (); + type ChainId = (); + type BlockGasLimit = BlockGasLimit; + type OnChargeTransaction = (); + type BlockHashMapping = pallet_evm::SubstrateBlockHashMapping; + type FindAuthor = (); + type OnCreate = (); + type GasLimitPovSizeRatio = GasLimitPovSizeRatio; + type SuicideQuickClearLimit = ConstU32<0>; + type GasLimitStorageGrowthRatio = GasLimitStorageGrowthRatio; + type Timestamp = Timestamp; + type WeightInfo = pallet_evm::weights::SubstrateWeight; +} + +pub struct NormalFilter; +impl frame_support::traits::Contains for NormalFilter { + fn contains(c: &RuntimeCall) -> bool { + match c { + _ => true, + } + } +} + +// We need to use the encoding from the relay mock runtime +#[derive(Encode, Decode)] +pub enum RelayCall { + #[codec(index = 5u8)] + // the index should match the position of the module in `construct_runtime!` + Utility(UtilityCall), + #[codec(index = 6u8)] + // the index should match the position of the module in `construct_runtime!` + Hrmp(HrmpCall), +} + +#[derive(Encode, Decode)] +pub enum UtilityCall { + #[codec(index = 1u8)] + AsDerivative(u16), +} + +// HRMP call encoding, needed for xcm transactor pallet +#[derive(Encode, Decode)] +pub enum HrmpCall { + #[codec(index = 0u8)] + InitOpenChannel(ParaId, u32, u32), + #[codec(index = 1u8)] + AcceptOpenChannel(ParaId), + #[codec(index = 2u8)] + CloseChannel(HrmpChannelId), + #[codec(index = 6u8)] + CancelOpenRequest(HrmpChannelId, u32), +} + +#[derive(Clone, Eq, Debug, PartialEq, Ord, PartialOrd, Encode, Decode, TypeInfo)] +pub enum MockTransactors { + Relay, +} + +impl xcm_primitives::XcmTransact for MockTransactors { + fn destination(self) -> Location { + match self { + MockTransactors::Relay => Location::parent(), + } + } +} + +impl xcm_primitives::UtilityEncodeCall for MockTransactors { + fn encode_call(self, call: xcm_primitives::UtilityAvailableCalls) -> Vec { + match self { + MockTransactors::Relay => match call { + xcm_primitives::UtilityAvailableCalls::AsDerivative(a, b) => { + let mut call = + RelayCall::Utility(UtilityCall::AsDerivative(a.clone())).encode(); + call.append(&mut b.clone()); + call + } + }, + } + } +} + +pub struct MockHrmpEncoder; +impl xcm_primitives::HrmpEncodeCall for MockHrmpEncoder { + fn hrmp_encode_call( + call: xcm_primitives::HrmpAvailableCalls, + ) -> Result, xcm::latest::Error> { + match call { + xcm_primitives::HrmpAvailableCalls::InitOpenChannel(a, b, c) => Ok(RelayCall::Hrmp( + HrmpCall::InitOpenChannel(a.clone(), b.clone(), c.clone()), + ) + .encode()), + xcm_primitives::HrmpAvailableCalls::AcceptOpenChannel(a) => { + Ok(RelayCall::Hrmp(HrmpCall::AcceptOpenChannel(a.clone())).encode()) + } + xcm_primitives::HrmpAvailableCalls::CloseChannel(a) => { + Ok(RelayCall::Hrmp(HrmpCall::CloseChannel(a.clone())).encode()) + } + xcm_primitives::HrmpAvailableCalls::CancelOpenRequest(a, b) => { + Ok(RelayCall::Hrmp(HrmpCall::CancelOpenRequest(a.clone(), b.clone())).encode()) + } + } + } +} + +parameter_types! { + pub const PostBlockAndTxnHashes: PostLogContent = PostLogContent::BlockAndTxnHashes; +} + +impl pallet_ethereum::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type StateRoot = pallet_ethereum::IntermediateStateRoot; + type PostLogContent = PostBlockAndTxnHashes; + type ExtraDataLength = ConstU32<30>; +} + +parameter_types! { + pub ReservedXcmpWeight: Weight = Weight::from_parts(u64::max_value(), 0); +} + +#[derive( + Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Encode, Decode, Debug, MaxEncodedLen, TypeInfo, +)] +pub enum ProxyType { + NotAllowed = 0, + Any = 1, +} + +impl pallet_evm_precompile_proxy::EvmProxyCallFilter for ProxyType {} + +impl InstanceFilter for ProxyType { + fn filter(&self, _c: &RuntimeCall) -> bool { + match self { + ProxyType::NotAllowed => false, + ProxyType::Any => true, + } + } + fn is_superset(&self, _o: &Self) -> bool { + false + } +} + +impl Default for ProxyType { + fn default() -> Self { + Self::NotAllowed + } +} + +parameter_types! { + pub const ProxyCost: u64 = 1; +} + +impl pallet_proxy::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + type Currency = Balances; + type ProxyType = ProxyType; + type ProxyDepositBase = ProxyCost; + type ProxyDepositFactor = ProxyCost; + type MaxProxies = ConstU32<32>; + type WeightInfo = pallet_proxy::weights::SubstrateWeight; + type MaxPending = ConstU32<32>; + type CallHasher = BlakeTwo256; + type AnnouncementDepositBase = ProxyCost; + type AnnouncementDepositFactor = ProxyCost; +} + +pub struct EthereumXcmEnsureProxy; +impl xcm_primitives::EnsureProxy for EthereumXcmEnsureProxy { + fn ensure_ok(delegator: AccountId, delegatee: AccountId) -> Result<(), &'static str> { + // The EVM implicitely contains an Any proxy, so we only allow for "Any" proxies + let def: pallet_proxy::ProxyDefinition = + pallet_proxy::Pallet::::find_proxy( + &delegator, + &delegatee, + Some(ProxyType::Any), + ) + .map_err(|_| "proxy error: expected `ProxyType::Any`")?; + // We only allow to use it for delay zero proxies, as the call will iMmediatly be executed + ensure!(def.delay.is_zero(), "proxy delay is Non-zero`"); + Ok(()) + } +} + +impl pallet_ethereum_xcm::Config for Runtime { + type InvalidEvmTransactionError = pallet_ethereum::InvalidTransactionWrapper; + type ValidatedTransaction = pallet_ethereum::ValidatedTransaction; + type XcmEthereumOrigin = pallet_ethereum_xcm::EnsureXcmEthereumTransaction; + type ReservedXcmpWeight = ReservedXcmpWeight; + type EnsureProxy = EthereumXcmEnsureProxy; + type ControllerOrigin = EnsureRoot; +} + +type Block = frame_system::mocking::MockBlockU32; + +construct_runtime!( + pub enum Runtime { + System: frame_system, + Balances: pallet_balances, + MsgQueue: mock_msg_queue, + XcmVersioner: mock_version_changer, + + PolkadotXcm: pallet_xcm, + Assets: pallet_assets, + CumulusXcm: cumulus_pallet_xcm, + XTokens: orml_xtokens, + AssetManager: pallet_asset_manager, + XcmTransactor: pallet_xcm_transactor, + Treasury: pallet_treasury, + Proxy: pallet_proxy, + + Timestamp: pallet_timestamp, + EVM: pallet_evm, + Ethereum: pallet_ethereum, + EthereumXcm: pallet_ethereum_xcm, + } +); + +pub(crate) fn para_events() -> Vec { + System::events() + .into_iter() + .map(|r| r.event) + .filter_map(|e| Some(e)) + .collect::>() +} + +use frame_support::traits::tokens::{PayFromAccount, UnityAssetBalanceConversion}; +use frame_support::traits::{OnFinalize, OnInitialize, OnRuntimeUpgrade}; +pub(crate) fn on_runtime_upgrade() { + VersionUncheckedMigrateToV1::::on_runtime_upgrade(); +} + +pub(crate) fn para_roll_to(n: BlockNumber) { + while System::block_number() < n { + PolkadotXcm::on_finalize(System::block_number()); + Balances::on_finalize(System::block_number()); + System::on_finalize(System::block_number()); + System::set_block_number(System::block_number() + 1); + System::on_initialize(System::block_number()); + Balances::on_initialize(System::block_number()); + PolkadotXcm::on_initialize(System::block_number()); + } +} diff --git a/tracing/3001/runtime/moonriver/tests/xcm_mock/relay_chain.rs b/tracing/3001/runtime/moonriver/tests/xcm_mock/relay_chain.rs new file mode 100644 index 00000000..40bff5e1 --- /dev/null +++ b/tracing/3001/runtime/moonriver/tests/xcm_mock/relay_chain.rs @@ -0,0 +1,412 @@ +// Copyright 2021 Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot 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. + +// Polkadot 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 Polkadot. If not, see . + +//! Relay chain runtime mock. + +use frame_support::{ + construct_runtime, parameter_types, + traits::{Everything, Nothing, ProcessMessage, ProcessMessageError}, +}; +use frame_system::pallet_prelude::BlockNumberFor; +use sp_core::H256; +use sp_runtime::{ + traits::{ConstU32, IdentityLookup}, + AccountId32, +}; + +use frame_support::weights::{Weight, WeightMeter}; +use polkadot_parachain::primitives::Id as ParaId; +use polkadot_runtime_parachains::{ + configuration, dmp, hrmp, + inclusion::{AggregateMessageOrigin, UmpQueueId}, + origin, paras, shared, +}; +use sp_runtime::transaction_validity::TransactionPriority; +use sp_runtime::Permill; +use xcm::latest::prelude::*; +use xcm_builder::{ + Account32Hash, AccountId32Aliases, AllowKnownQueryResponses, AllowSubscriptionsFrom, + AllowTopLevelPaidExecutionFrom, ChildParachainAsNative, ChildParachainConvertsVia, + ChildSystemParachainAsSuperuser, FixedRateOfFungible, FixedWeightBounds, + FungibleAdapter as XcmCurrencyAdapter, IsConcrete, ProcessXcmMessage, + SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, + WithComputedOrigin, +}; +use xcm_executor::{Config, XcmExecutor}; +pub type AccountId = AccountId32; +pub type Balance = u128; +pub type BlockNumber = BlockNumberFor; + +parameter_types! { + pub const BlockHashCount: u32 = 250; +} + +impl frame_system::Config for Runtime { + type RuntimeOrigin = RuntimeOrigin; + type RuntimeCall = RuntimeCall; + type RuntimeTask = RuntimeTask; + type Nonce = u64; + type Block = Block; + type Hash = H256; + type Hashing = ::sp_runtime::traits::BlakeTwo256; + type AccountId = AccountId; + type Lookup = IdentityLookup; + type RuntimeEvent = RuntimeEvent; + type BlockHashCount = BlockHashCount; + type BlockWeights = (); + type BlockLength = (); + type Version = (); + type PalletInfo = PalletInfo; + type AccountData = pallet_balances::AccountData; + type OnNewAccount = (); + type OnKilledAccount = (); + type DbWeight = (); + type BaseCallFilter = Everything; + type SystemWeightInfo = (); + type SS58Prefix = (); + type OnSetCode = (); + type MaxConsumers = ConstU32<16>; +} + +parameter_types! { + pub ExistentialDeposit: Balance = 1; + pub const MaxLocks: u32 = 50; + pub const MaxReserves: u32 = 50; +} + +impl pallet_balances::Config for Runtime { + type MaxLocks = MaxLocks; + type Balance = Balance; + type RuntimeEvent = RuntimeEvent; + type DustRemoval = (); + type ExistentialDeposit = ExistentialDeposit; + type AccountStore = System; + type WeightInfo = (); + type MaxReserves = MaxReserves; + type ReserveIdentifier = [u8; 8]; + type RuntimeHoldReason = (); + type FreezeIdentifier = (); + type MaxFreezes = (); + type RuntimeFreezeReason = (); +} + +impl pallet_utility::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + type WeightInfo = (); + type PalletsOrigin = OriginCaller; +} + +impl shared::Config for Runtime { + type DisabledValidators = (); +} + +impl configuration::Config for Runtime { + type WeightInfo = configuration::TestWeightInfo; +} + +parameter_types! { + pub KsmLocation: Location = Here.into(); + pub const KusamaNetwork: NetworkId = NetworkId::Kusama; + pub const AnyNetwork: Option = None; + pub UniversalLocation: InteriorLocation = Here; +} + +pub type SovereignAccountOf = ( + ChildParachainConvertsVia, + AccountId32Aliases, + // Not enabled in the relay per se, but we enable it to test + // the transact_through_signed extrinsic + Account32Hash, +); + +pub type LocalAssetTransactor = + XcmCurrencyAdapter, SovereignAccountOf, AccountId, ()>; + +type LocalOriginConverter = ( + SovereignSignedViaLocation, + ChildParachainAsNative, + SignedAccountId32AsNative, + ChildSystemParachainAsSuperuser, +); + +parameter_types! { + pub const BaseXcmWeight: Weight = Weight::from_parts(1000u64, 1000u64); + pub KsmPerSecond: (AssetId, u128, u128) = (AssetId(KsmLocation::get()), 1, 1); + pub const MaxInstructions: u32 = 100; + pub const MaxAssetsIntoHolding: u32 = 64; + pub MatcherLocation: Location = Location::here(); +} + +pub type XcmRouter = super::RelayChainXcmRouter; + +pub type XcmBarrier = ( + // Weight that is paid for may be consumed. + TakeWeightCredit, + // Expected responses are OK. + AllowKnownQueryResponses, + WithComputedOrigin< + ( + // If the message is one that immediately attemps to pay for execution, then allow it. + AllowTopLevelPaidExecutionFrom, + // Subscriptions for version tracking are OK. + AllowSubscriptionsFrom, + ), + UniversalLocation, + ConstU32<8>, + >, +); + +parameter_types! { + pub Kusama: AssetFilter = Wild(AllOf { fun: WildFungible, id: AssetId(KsmLocation::get()) }); + pub Statemine: Location = Parachain(4).into(); + pub KusamaForStatemine: (AssetFilter, Location) = (Kusama::get(), Statemine::get()); +} + +pub type TrustedTeleporters = xcm_builder::Case; + +pub struct XcmConfig; +impl Config for XcmConfig { + type RuntimeCall = RuntimeCall; + type XcmSender = XcmRouter; + type AssetTransactor = LocalAssetTransactor; + type OriginConverter = LocalOriginConverter; + type IsReserve = (); + type IsTeleporter = TrustedTeleporters; + type UniversalLocation = UniversalLocation; + type Barrier = XcmBarrier; + type Weigher = FixedWeightBounds; + type Trader = FixedRateOfFungible; + type ResponseHandler = XcmPallet; + type AssetTrap = XcmPallet; + type AssetClaims = XcmPallet; + type SubscriptionService = XcmPallet; + type CallDispatcher = RuntimeCall; + type AssetLocker = (); + type AssetExchanger = (); + type PalletInstancesInfo = (); + type MaxAssetsIntoHolding = MaxAssetsIntoHolding; + type FeeManager = (); + type MessageExporter = (); + type UniversalAliases = Nothing; + type SafeCallFilter = Everything; + type Aliasers = Nothing; + type TransactionalProcessor = (); +} + +pub type LocalOriginToLocation = SignedToAccountId32; + +impl pallet_xcm::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type SendXcmOrigin = xcm_builder::EnsureXcmOrigin; + type XcmRouter = XcmRouter; + // Anyone can execute XCM messages locally... + type ExecuteXcmOrigin = xcm_builder::EnsureXcmOrigin; + type XcmExecuteFilter = Nothing; + type XcmExecutor = XcmExecutor; + type XcmTeleportFilter = Everything; + type XcmReserveTransferFilter = Everything; + type Weigher = FixedWeightBounds; + 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 = (); + type MaxLockers = ConstU32<8>; + type WeightInfo = pallet_xcm::TestWeightInfo; + type MaxRemoteLockConsumers = ConstU32<0>; + type RemoteLockConsumerIdentifier = (); + type AdminOrigin = frame_system::EnsureRoot; +} + +parameter_types! { + pub const FirstMessageFactorPercent: u64 = 100; +} + +parameter_types! { + pub const ParasUnsignedPriority: TransactionPriority = TransactionPriority::max_value(); +} + +/// A very dumb implementation of `EstimateNextSessionRotation`. At the moment of writing, this +/// is more to satisfy type requirements rather than to test anything. +pub struct TestNextSessionRotation; + +impl frame_support::traits::EstimateNextSessionRotation for TestNextSessionRotation { + fn average_session_length() -> u32 { + 10 + } + + fn estimate_current_session_progress(_now: u32) -> (Option, Weight) { + (None, Weight::zero()) + } + + fn estimate_next_session_rotation(_now: u32) -> (Option, Weight) { + (None, Weight::zero()) + } +} + +impl paras::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type WeightInfo = paras::TestWeightInfo; + type UnsignedPriority = ParasUnsignedPriority; + type NextSessionRotation = TestNextSessionRotation; + type QueueFootprinter = (); + type OnNewHead = (); + type AssignCoretime = (); +} + +impl dmp::Config for Runtime {} + +impl hrmp::Config for Runtime { + type RuntimeOrigin = RuntimeOrigin; + type RuntimeEvent = RuntimeEvent; + type Currency = Balances; + type WeightInfo = TestHrmpWeightInfo; + type ChannelManager = frame_system::EnsureRoot; +} + +impl frame_system::offchain::SendTransactionTypes for Runtime +where + RuntimeCall: From, +{ + type Extrinsic = UncheckedExtrinsic; + type OverarchingCall = RuntimeCall; +} + +impl origin::Config for Runtime {} + +type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic; +type Block = frame_system::mocking::MockBlockU32; + +parameter_types! { + pub MessageQueueServiceWeight: Weight = Weight::from_parts(1_000_000_000, 1_000_000); + pub const MessageQueueHeapSize: u32 = 65_536; + pub const MessageQueueMaxStale: u32 = 16; +} + +pub struct MessageProcessor; +impl ProcessMessage for MessageProcessor { + type Origin = AggregateMessageOrigin; + + fn process_message( + message: &[u8], + origin: Self::Origin, + meter: &mut WeightMeter, + id: &mut [u8; 32], + ) -> Result { + let para = match origin { + AggregateMessageOrigin::Ump(UmpQueueId::Para(para)) => para, + }; + ProcessXcmMessage::, RuntimeCall>::process_message( + message, + Junction::Parachain(para.into()), + meter, + id, + ) + } +} + +impl pallet_message_queue::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Size = u32; + type HeapSize = MessageQueueHeapSize; + type MaxStale = MessageQueueMaxStale; + type ServiceWeight = MessageQueueServiceWeight; + type MessageProcessor = MessageProcessor; + type QueueChangeHandler = (); + type WeightInfo = (); + type QueuePausedQuery = (); +} + +construct_runtime!( + pub enum Runtime { + System: frame_system, + Balances: pallet_balances, + ParasOrigin: origin, + MessageQueue: pallet_message_queue, + XcmPallet: pallet_xcm, + Utility: pallet_utility, + Hrmp: hrmp, + Dmp: dmp, + Paras: paras, + Configuration: configuration, + } +); + +pub(crate) fn relay_events() -> Vec { + System::events() + .into_iter() + .map(|r| r.event) + .filter_map(|e| Some(e)) + .collect::>() +} + +use frame_support::traits::{OnFinalize, OnInitialize}; +pub(crate) fn relay_roll_to(n: BlockNumber) { + while System::block_number() < n { + XcmPallet::on_finalize(System::block_number()); + Balances::on_finalize(System::block_number()); + System::on_finalize(System::block_number()); + System::set_block_number(System::block_number() + 1); + System::on_initialize(System::block_number()); + Balances::on_initialize(System::block_number()); + XcmPallet::on_initialize(System::block_number()); + } +} + +/// A weight info that is only suitable for testing. +pub struct TestHrmpWeightInfo; + +impl hrmp::WeightInfo for TestHrmpWeightInfo { + fn hrmp_accept_open_channel() -> Weight { + Weight::from_parts(1, 0) + } + fn force_clean_hrmp(_: u32, _: u32) -> Weight { + Weight::from_parts(1, 0) + } + fn force_process_hrmp_close(_: u32) -> Weight { + Weight::from_parts(1, 0) + } + fn force_process_hrmp_open(_: u32) -> Weight { + Weight::from_parts(1, 0) + } + fn hrmp_cancel_open_request(_: u32) -> Weight { + Weight::from_parts(1, 0) + } + fn hrmp_close_channel() -> Weight { + Weight::from_parts(1, 0) + } + fn hrmp_init_open_channel() -> Weight { + Weight::from_parts(1, 0) + } + fn clean_open_channel_requests(_: u32) -> Weight { + Weight::from_parts(1, 0) + } + fn force_open_hrmp_channel(_: u32) -> Weight { + Weight::from_parts(1, 0) + } + fn establish_system_channel() -> Weight { + Weight::from_parts(1, 0) + } + + fn poke_channel_deposits() -> Weight { + Weight::from_parts(1, 0) + } +} diff --git a/tracing/3001/runtime/moonriver/tests/xcm_mock/statemine_like.rs b/tracing/3001/runtime/moonriver/tests/xcm_mock/statemine_like.rs new file mode 100644 index 00000000..b3d5e778 --- /dev/null +++ b/tracing/3001/runtime/moonriver/tests/xcm_mock/statemine_like.rs @@ -0,0 +1,575 @@ +// Copyright 2021 Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot 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. + +// Polkadot 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 Polkadot. If not, see . + +//! Relay chain runtime mock. + +use frame_support::{ + construct_runtime, parameter_types, + traits::{AsEnsureOriginWithArg, Contains, Everything, Nothing}, + weights::Weight, +}; +use frame_system::{EnsureRoot, EnsureSigned}; + +use sp_core::H256; +use sp_runtime::{ + traits::{ConstU32, Hash, IdentityLookup}, + AccountId32, +}; + +use polkadot_core_primitives::BlockNumber as RelayBlockNumber; + +use polkadot_parachain::primitives::Id as ParaId; +use polkadot_parachain::primitives::Sibling; +use sp_std::convert::TryFrom; +use xcm::latest::prelude::*; +use xcm::VersionedXcm; +use xcm_builder::{ + AccountId32Aliases, AllowKnownQueryResponses, AllowSubscriptionsFrom, + AllowTopLevelPaidExecutionFrom, AllowUnpaidExecutionFrom, AsPrefixedGeneralIndex, + ConvertedConcreteId, EnsureXcmOrigin, FixedRateOfFungible, FixedWeightBounds, FungibleAdapter, + FungiblesAdapter, IsConcrete, NoChecking, ParentAsSuperuser, ParentIsPreset, + RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, + SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, +}; +use xcm_executor::{traits::JustTry, Config, XcmExecutor}; +use xcm_simulator::{ + DmpMessageHandlerT as DmpMessageHandler, XcmpMessageFormat, + XcmpMessageHandlerT as XcmpMessageHandler, +}; +pub type AccountId = AccountId32; +pub type Balance = u128; +pub type AssetId = u128; + +parameter_types! { + pub const BlockHashCount: u32 = 250; +} + +impl frame_system::Config for Runtime { + type RuntimeOrigin = RuntimeOrigin; + type RuntimeCall = RuntimeCall; + type RuntimeTask = RuntimeTask; + type Nonce = u64; + type Block = Block; + type Hash = H256; + type Hashing = ::sp_runtime::traits::BlakeTwo256; + type AccountId = AccountId; + type Lookup = IdentityLookup; + type RuntimeEvent = RuntimeEvent; + type BlockHashCount = BlockHashCount; + type BlockWeights = (); + type BlockLength = (); + type Version = (); + type PalletInfo = PalletInfo; + type AccountData = pallet_balances::AccountData; + type OnNewAccount = (); + type OnKilledAccount = (); + type DbWeight = (); + type BaseCallFilter = Everything; + type SystemWeightInfo = (); + type SS58Prefix = (); + type OnSetCode = (); + type MaxConsumers = frame_support::traits::ConstU32<16>; +} + +parameter_types! { + pub ExistentialDeposit: Balance = 1; + pub const MaxLocks: u32 = 50; + pub const MaxReserves: u32 = 50; +} + +impl pallet_balances::Config for Runtime { + type MaxLocks = MaxLocks; + type Balance = Balance; + type RuntimeEvent = RuntimeEvent; + type DustRemoval = (); + type ExistentialDeposit = ExistentialDeposit; + type AccountStore = System; + type WeightInfo = (); + type MaxReserves = MaxReserves; + type ReserveIdentifier = [u8; 8]; + type RuntimeHoldReason = (); + type FreezeIdentifier = (); + type MaxFreezes = (); + type RuntimeFreezeReason = (); +} + +// Required for runtime benchmarks +pallet_assets::runtime_benchmarks_enabled! { + pub struct BenchmarkHelper; + impl pallet_assets::BenchmarkHelper for BenchmarkHelper + where + AssetIdParameter: From, + { + fn create_asset_id_parameter(id: u32) -> AssetIdParameter { + (id as u128).into() + } + } +} + +parameter_types! { + pub const AssetDeposit: Balance = 0; // 1 UNIT deposit to create asset + pub const ApprovalDeposit: Balance = 0; + pub const AssetsStringLimit: u32 = 50; + /// Key = 32 bytes, Value = 36 bytes (32+1+1+1+1) + // https://github.com/paritytech/substrate/blob/069917b/frame/assets/src/lib.rs#L257L271 + pub const MetadataDepositBase: Balance = 0; + pub const MetadataDepositPerByte: Balance = 0; + pub const ExecutiveBody: BodyId = BodyId::Executive; + pub const AssetAccountDeposit: Balance = 0; +} + +impl pallet_assets::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Balance = Balance; + type AssetId = AssetId; + type Currency = Balances; + type ForceOrigin = EnsureRoot; + type AssetDeposit = AssetDeposit; + type MetadataDepositBase = MetadataDepositBase; + type MetadataDepositPerByte = MetadataDepositPerByte; + type ApprovalDeposit = ApprovalDeposit; + type StringLimit = AssetsStringLimit; + type Freezer = (); + type Extra = (); + type AssetAccountDeposit = AssetAccountDeposit; + type WeightInfo = (); + type RemoveItemsLimit = ConstU32<656>; + type AssetIdParameter = AssetId; + type CreateOrigin = AsEnsureOriginWithArg>; + type CallbackHandle = (); + pallet_assets::runtime_benchmarks_enabled! { + type BenchmarkHelper = BenchmarkHelper; + } +} + +parameter_types! { + pub const KsmLocation: Location = Location::parent(); + pub const RelayNetwork: NetworkId = NetworkId::Kusama; + pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); + pub UniversalLocation: InteriorLocation = + [GlobalConsensus(RelayNetwork::get()), Parachain(MsgQueue::parachain_id().into())].into(); + pub Local: Location = Here.into(); + pub CheckingAccount: AccountId = PolkadotXcm::check_account(); + pub KsmPerSecond: (xcm::latest::prelude::AssetId, u128, u128) = + (AssetId(KsmLocation::get()), 1, 1); +} + +/// Type for specifying how a `Location` 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 default `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 = FungibleAdapter< + // Use this currency: + Balances, + // Use this currency when it is a fungible asset matching the given location or name: + IsConcrete, + // Convert an XCM Location into a local 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 of `Balances`. + (), +>; + +/// 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: + ConvertedConcreteId< + AssetId, + Balance, + AsPrefixedGeneralIndex, + JustTry, + >, + // Convert an XCM Location 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. + NoChecking, + // The account to use for tracking teleports. + CheckingAccount, +>; +/// Means for transacting assets on this chain. +pub type AssetTransactors = (CurrencyTransactor, FungiblesTransactor); + +/// 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 convert to a `Relay` origin when + // recognised. + RelayChainAsNative, + // Native converter for sibling Parachains; will convert to a `SiblingPara` origin when + // recognised. + 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 + // `RuntimeOrigin::signed` origin of the same 32-byte value. + SignedAccountId32AsNative, + // Xcm origins can be represented natively under the Xcm pallet's Xcm origin. + pallet_xcm::XcmPassthrough, +); + +parameter_types! { + // One XCM operation is 1_000_000_000 weight - almost certainly a conservative estimate. + pub UnitWeightCost: Weight = Weight::from_parts(100u64, 100u64); + pub const MaxInstructions: u32 = 100; +} + +pub struct ParentOrParentsExecutivePlurality; +impl Contains for ParentOrParentsExecutivePlurality { + fn contains(location: &Location) -> bool { + matches!( + location.unpack(), + (1, []) + | ( + 1, + [Plurality { + id: BodyId::Executive, + .. + }] + ) + ) + } +} + +pub struct ParentOrSiblings; +impl Contains for ParentOrSiblings { + fn contains(location: &Location) -> bool { + matches!(location.unpack(), (1, []) | (1, [_])) + } +} + +pub type Barrier = ( + TakeWeightCredit, + AllowTopLevelPaidExecutionFrom, + // Parent and its exec plurality get free execution + AllowUnpaidExecutionFrom, + // Expected responses are OK. + AllowKnownQueryResponses, + // Subscriptions for version tracking are OK. + AllowSubscriptionsFrom, +); + +parameter_types! { + pub MatcherLocation: Location = Location::here(); + pub const MaxAssetsIntoHolding: u32 = 64; +} + +pub struct XcmConfig; +impl Config for XcmConfig { + type RuntimeCall = RuntimeCall; + type XcmSender = XcmRouter; + type AssetTransactor = AssetTransactors; + type OriginConverter = XcmOriginToTransactDispatchOrigin; + type IsReserve = + orml_xcm_support::MultiNativeAsset; + type IsTeleporter = (); + type UniversalLocation = UniversalLocation; + type Barrier = Barrier; + type Weigher = FixedWeightBounds; + type Trader = FixedRateOfFungible; + type ResponseHandler = PolkadotXcm; + type AssetTrap = PolkadotXcm; + type AssetClaims = PolkadotXcm; + type SubscriptionService = PolkadotXcm; + type CallDispatcher = RuntimeCall; + type AssetLocker = (); + type AssetExchanger = (); + type PalletInstancesInfo = (); + type MaxAssetsIntoHolding = MaxAssetsIntoHolding; + type FeeManager = (); + type MessageExporter = (); + type UniversalAliases = Nothing; + type SafeCallFilter = Everything; + type Aliasers = Nothing; + + type TransactionalProcessor = (); +} + +/// No local origins on this chain are allowed to dispatch XCM sends/executions. +pub type LocalOriginToLocation = SignedToAccountId32; + +pub type XcmRouter = super::ParachainXcmRouter; + +impl pallet_xcm::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type SendXcmOrigin = EnsureXcmOrigin; + type XcmRouter = XcmRouter; + type ExecuteXcmOrigin = EnsureXcmOrigin; + type XcmExecuteFilter = Nothing; + type XcmExecutor = XcmExecutor; + type XcmTeleportFilter = Everything; + type XcmReserveTransferFilter = Everything; + type Weigher = FixedWeightBounds; + 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 = IsConcrete; + type TrustedLockers = (); + type SovereignAccountOf = (); + type MaxLockers = ConstU32<8>; + type WeightInfo = pallet_xcm::TestWeightInfo; + type MaxRemoteLockConsumers = ConstU32<0>; + type RemoteLockConsumerIdentifier = (); + type AdminOrigin = frame_system::EnsureRoot; +} + +impl cumulus_pallet_xcm::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type XcmExecutor = XcmExecutor; +} + +#[frame_support::pallet] +pub mod mock_msg_queue { + use super::*; + use frame_support::pallet_prelude::*; + + #[pallet::config] + pub trait Config: frame_system::Config { + type RuntimeEvent: From> + IsType<::RuntimeEvent>; + type XcmExecutor: ExecuteXcm; + } + + #[pallet::call] + impl Pallet {} + + #[pallet::pallet] + pub struct Pallet(_); + + #[pallet::storage] + #[pallet::getter(fn parachain_id)] + pub(super) type ParachainId = StorageValue<_, ParaId, ValueQuery>; + + impl Get for Pallet { + fn get() -> ParaId { + Self::parachain_id() + } + } + + pub type MessageId = [u8; 32]; + + #[pallet::event] + #[pallet::generate_deposit(pub(super) fn deposit_event)] + pub enum Event { + // XCMP + /// Some XCM was executed OK. + Success(Option), + /// Some XCM failed. + Fail(Option, XcmError), + /// Bad XCM version used. + BadVersion(Option), + /// Bad XCM format used. + BadFormat(Option), + + // DMP + /// Downward message is invalid XCM. + InvalidFormat(MessageId), + /// Downward message is unsupported version of XCM. + UnsupportedVersion(MessageId), + /// Downward message executed with the given outcome. + ExecutedDownward(MessageId, Outcome), + } + + impl Pallet { + pub fn set_para_id(para_id: ParaId) { + ParachainId::::put(para_id); + } + + fn handle_xcmp_message( + sender: ParaId, + _sent_at: RelayBlockNumber, + xcm: VersionedXcm, + max_weight: Weight, + ) -> Result { + let hash = Encode::using_encoded(&xcm, T::Hashing::hash); + let (result, event) = match Xcm::::try_from(xcm) { + Ok(xcm) => { + let location = Location::new(1, [Parachain(sender.into())]); + let mut id = [0u8; 32]; + id.copy_from_slice(hash.as_ref()); + match T::XcmExecutor::prepare_and_execute( + location, + xcm, + &mut id, + max_weight, + Weight::zero(), + ) { + Outcome::Error { error } => { + (Err(error.clone()), Event::Fail(Some(hash), error)) + } + Outcome::Complete { used } => (Ok(used), Event::Success(Some(hash))), + // As far as the caller is concerned, this was dispatched without error, so + // we just report the weight used. + Outcome::Incomplete { used, error } => { + (Ok(used), Event::Fail(Some(hash), error)) + } + } + } + Err(()) => ( + Err(XcmError::UnhandledXcmVersion), + Event::BadVersion(Some(hash)), + ), + }; + Self::deposit_event(event); + result + } + } + + impl XcmpMessageHandler for Pallet { + fn handle_xcmp_messages<'a, I: Iterator>( + iter: I, + max_weight: Weight, + ) -> Weight { + for (sender, sent_at, data) in iter { + let mut data_ref = data; + let _ = XcmpMessageFormat::decode(&mut data_ref) + .expect("Simulator encodes with versioned xcm format; qed"); + + let mut remaining_fragments = &data_ref[..]; + while !remaining_fragments.is_empty() { + if let Ok(xcm) = + VersionedXcm::::decode(&mut remaining_fragments) + { + let _ = Self::handle_xcmp_message(sender, sent_at, xcm, max_weight); + } else { + debug_assert!(false, "Invalid incoming XCMP message data"); + } + } + } + max_weight + } + } + + impl DmpMessageHandler for Pallet { + fn handle_dmp_messages( + iter: impl Iterator)>, + limit: Weight, + ) -> Weight { + for (_i, (_sent_at, data)) in iter.enumerate() { + let mut id = sp_io::hashing::blake2_256(&data[..]); + let maybe_msg = VersionedXcm::::decode(&mut &data[..]) + .map(Xcm::::try_from); + match maybe_msg { + Err(_) => { + Self::deposit_event(Event::InvalidFormat(id)); + } + Ok(Err(())) => { + Self::deposit_event(Event::UnsupportedVersion(id)); + } + Ok(Ok(x)) => { + let outcome = T::XcmExecutor::prepare_and_execute( + Parent, + x, + &mut id, + limit, + Weight::zero(), + ); + + Self::deposit_event(Event::ExecutedDownward(id, outcome)); + } + } + } + limit + } + } +} +impl mock_msg_queue::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type XcmExecutor = XcmExecutor; +} + +// Pallet to cover test cases for change https://github.com/paritytech/cumulus/pull/831 +#[frame_support::pallet] +pub mod mock_statemine_prefix { + use super::*; + use frame_support::pallet_prelude::*; + + #[pallet::config] + pub trait Config: frame_system::Config { + type RuntimeEvent: From> + IsType<::RuntimeEvent>; + } + + #[pallet::call] + impl Pallet {} + + #[pallet::pallet] + #[pallet::without_storage_info] + pub struct Pallet(_); + + #[pallet::storage] + #[pallet::getter(fn current_prefix)] + pub(super) type CurrentPrefix = StorageValue<_, Location, ValueQuery>; + + impl Get for Pallet { + fn get() -> Location { + Self::current_prefix() + } + } + + #[pallet::event] + #[pallet::generate_deposit(pub(super) fn deposit_event)] + pub enum Event { + // Changed Prefix + PrefixChanged(Location), + } + + impl Pallet { + pub fn set_prefix(prefix: Location) { + CurrentPrefix::::put(&prefix); + Self::deposit_event(Event::PrefixChanged(prefix)); + } + } +} + +impl mock_statemine_prefix::Config for Runtime { + type RuntimeEvent = RuntimeEvent; +} + +type Block = frame_system::mocking::MockBlockU32; +construct_runtime!( + pub enum Runtime { + System: frame_system, + Balances: pallet_balances, + PolkadotXcm: pallet_xcm, + CumulusXcm: cumulus_pallet_xcm, + MsgQueue: mock_msg_queue, + Assets: pallet_assets, + PrefixChanger: mock_statemine_prefix, + + } +); diff --git a/tracing/3001/runtime/moonriver/tests/xcm_tests.rs b/tracing/3001/runtime/moonriver/tests/xcm_tests.rs new file mode 100644 index 00000000..9788c994 --- /dev/null +++ b/tracing/3001/runtime/moonriver/tests/xcm_tests.rs @@ -0,0 +1,3990 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Moonriver Runtime Xcm Tests + +mod xcm_mock; +use frame_support::{ + assert_ok, + traits::{PalletInfo, PalletInfoAccess}, + weights::{constants::WEIGHT_REF_TIME_PER_SECOND, Weight}, + BoundedVec, +}; +use sp_core::ConstU32; +use sp_runtime::traits::MaybeEquivalence; +use xcm::latest::prelude::{ + AccountId32, AccountKey20, All, BuyExecution, ClearOrigin, DepositAsset, GeneralIndex, + Junction, Junctions, Limited, Location, OriginKind, PalletInstance, Parachain, QueryResponse, + Reanchorable, Response, WeightLimit, WithdrawAsset, Xcm, +}; +use xcm::{VersionedLocation, WrapVersion}; +use xcm_executor::traits::ConvertLocation; +use xcm_mock::parachain; +use xcm_mock::relay_chain; +use xcm_mock::*; +use xcm_simulator::TestExt; +mod common; +use cumulus_primitives_core::relay_chain::HrmpChannelId; +use pallet_xcm_transactor::{ + Currency, CurrencyPayment, HrmpInitParams, HrmpOperation, TransactWeights, +}; +use xcm_primitives::{UtilityEncodeCall, DEFAULT_PROOF_SIZE}; + +// Send a relay asset (like DOT) to a parachain A +#[test] +fn receive_relay_asset_from_relay() { + MockNet::reset(); + + let source_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let source_id: parachain::AssetId = source_location.clone().into(); + let asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + // Register relay asset in parachain A + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 0u128, + 0 + )); + }); + + // Actually send relay asset to parachain + let dest: Location = AccountKey20 { + network: None, + key: PARAALICE, + } + .into(); + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest).clone().into()), + Box::new(([] /* Here */, 123).into()), + 0, + )); + }); + + // Verify that parachain received the asset + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 123); + }); +} + +// Send relay asset (like DOT) back from Parachain A to relaychain +#[test] +fn send_relay_asset_to_relay() { + MockNet::reset(); + + let source_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + + // Register relay asset in paraA + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + // free execution + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 0u128, + 0 + )); + }); + + let dest: Location = Junction::AccountKey20 { + network: None, + key: PARAALICE, + } + .into(); + + // First send relay chain asset to Parachain like in previous test + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest).clone().into()), + Box::new(([] /* Here */, 123).into()), + 0, + )); + }); + + ParaA::execute_with(|| { + // Free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 123); + }); + + // Lets gather the balance before sending back money + let mut balance_before_sending = 0; + Relay::execute_with(|| { + balance_before_sending = RelayBalances::free_balance(&RELAYALICE); + }); + + // We now send back some money to the relay + let dest = Location { + parents: 1, + interior: [AccountId32 { + network: None, + id: RELAYALICE.into(), + }] + .into(), + }; + + ParaA::execute_with(|| { + assert_ok!(XTokens::transfer( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::ForeignAsset(source_id), + 123, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) + )); + }); + + // The balances in paraAlice should have been substracted + ParaA::execute_with(|| { + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 0); + }); + + // Balances in the relay should have been received + Relay::execute_with(|| { + assert!(RelayBalances::free_balance(&RELAYALICE) > balance_before_sending); + }); +} + +#[test] +fn send_relay_asset_to_para_b() { + MockNet::reset(); + + let source_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + + // Register asset in paraA. Free execution + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata.clone(), + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location.clone(), + 0u128, + 0 + )); + }); + + // Register asset in paraB. Free execution + ParaB::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 0u128, + 0 + )); + }); + + // First send relay chain asset to Parachain A like in previous test + let dest: Location = Junction::AccountKey20 { + network: None, + key: PARAALICE, + } + .into(); + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest).clone().into()), + Box::new(([] /* Here */, 123).into()), + 0, + )); + }); + + ParaA::execute_with(|| { + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 123); + }); + + // Now send relay asset from para A to para B + let dest = Location { + parents: 1, + interior: [ + Parachain(2), + AccountKey20 { + network: None, + key: PARAALICE.into(), + }, + ] + .into(), + }; + + ParaA::execute_with(|| { + assert_ok!(XTokens::transfer( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::ForeignAsset(source_id), + 100, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) + )); + }); + + // Para A balances should have been substracted + ParaA::execute_with(|| { + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 23); + }); + + // Para B balances should have been credited + ParaB::execute_with(|| { + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 100); + }); +} + +#[test] +fn send_para_a_asset_to_para_b() { + MockNet::reset(); + + // This represents the asset in paraA + let para_a_balances = Location::new(1, [Parachain(1), PalletInstance(1u8)]); + let source_location = parachain::AssetType::Xcm( + xcm_builder::V4V3LocationConverter::convert(¶_a_balances).expect("convert to v3"), + ); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"ParaAToken".to_vec(), + symbol: b"ParaA".to_vec(), + decimals: 18, + }; + + // Register asset in paraB. Free execution + ParaB::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 0u128, + 0 + )); + }); + + // Send para A asset from para A to para B + let dest = Location { + parents: 1, + interior: [ + Parachain(2), + AccountKey20 { + network: None, + key: PARAALICE.into(), + }, + ] + .into(), + }; + + ParaA::execute_with(|| { + assert_ok!(XTokens::transfer( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::SelfReserve, + 100, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(800000u64, DEFAULT_PROOF_SIZE)) + )); + }); + + // Native token is substracted in paraA + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!( + ParaBalances::free_balance(&PARAALICE.into()), + INITIAL_BALANCE - 100 + ); + }); + + // Asset is minted in paraB + ParaB::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 100); + }); +} + +#[test] +fn send_para_a_asset_from_para_b_to_para_c() { + MockNet::reset(); + + // Represents para A asset + let para_a_balances = Location::new(1, [Parachain(1), PalletInstance(1u8)]); + let source_location = parachain::AssetType::Xcm( + xcm_builder::V4V3LocationConverter::convert(¶_a_balances).expect("convert to v3"), + ); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"ParaAToken".to_vec(), + symbol: b"ParaA".to_vec(), + decimals: 18, + }; + + // Register para A asset in parachain B. Free execution + ParaB::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata.clone(), + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location.clone(), + 0u128, + 0 + )); + }); + + // Register para A asset in parachain C. Free execution + ParaC::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 0u128, + 0 + )); + }); + + // Send para A asset to para B + let dest = Location { + parents: 1, + interior: [ + Parachain(2), + AccountKey20 { + network: None, + key: PARAALICE.into(), + }, + ] + .into(), + }; + ParaA::execute_with(|| { + assert_ok!(XTokens::transfer( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::SelfReserve, + 100, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(80u64, DEFAULT_PROOF_SIZE)) + )); + }); + + // Para A balances have been substracted + ParaA::execute_with(|| { + assert_eq!( + ParaBalances::free_balance(&PARAALICE.into()), + INITIAL_BALANCE - 100 + ); + }); + + // Para B balances have been credited + ParaB::execute_with(|| { + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 100); + }); + + // Send para A asset from para B to para C + let dest = Location { + parents: 1, + interior: [ + Parachain(3), + AccountKey20 { + network: None, + key: PARAALICE.into(), + }, + ] + .into(), + }; + + ParaB::execute_with(|| { + assert_ok!(XTokens::transfer( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::ForeignAsset(source_id), + 100, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(80u64, DEFAULT_PROOF_SIZE)) + )); + }); + + // The message passed through parachainA so we needed to pay since its the native token + ParaC::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 96); + }); +} + +#[test] +fn send_para_a_asset_to_para_b_and_back_to_para_a() { + MockNet::reset(); + + // Para A asset + let para_a_balances = Location::new(1, [Parachain(1), PalletInstance(1u8)]); + let source_location = parachain::AssetType::Xcm( + xcm_builder::V4V3LocationConverter::convert(¶_a_balances).expect("convert to v3"), + ); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"ParaAToken".to_vec(), + symbol: b"ParaA".to_vec(), + decimals: 18, + }; + + // Register para A asset in para B + ParaB::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 0u128, + 0 + )); + }); + + // Send para A asset to para B + let dest = Location { + parents: 1, + interior: [ + Parachain(2), + AccountKey20 { + network: None, + key: PARAALICE.into(), + }, + ] + .into(), + }; + ParaA::execute_with(|| { + assert_ok!(XTokens::transfer( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::SelfReserve, + 100, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(80u64, DEFAULT_PROOF_SIZE)) + )); + }); + + // Balances have been substracted + ParaA::execute_with(|| { + assert_eq!( + ParaBalances::free_balance(&PARAALICE.into()), + INITIAL_BALANCE - 100 + ); + }); + + // Para B balances have been credited + ParaB::execute_with(|| { + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 100); + }); + + // Send back para A asset to para A + let dest = Location { + parents: 1, + interior: [ + Parachain(1), + AccountKey20 { + network: None, + key: PARAALICE.into(), + }, + ] + .into(), + }; + ParaB::execute_with(|| { + assert_ok!(XTokens::transfer( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::ForeignAsset(source_id), + 100, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(80u64, DEFAULT_PROOF_SIZE)) + )); + }); + + // Para A asset has been credited + ParaA::execute_with(|| { + // Weight used is 4 + assert_eq!( + ParaBalances::free_balance(&PARAALICE.into()), + INITIAL_BALANCE - 4 + ); + }); +} + +#[test] +fn send_para_a_asset_to_para_b_and_back_to_para_a_with_new_reanchoring() { + MockNet::reset(); + + let para_a_balances = Location::new(1, [Parachain(1), PalletInstance(1u8)]); + let source_location = parachain::AssetType::Xcm( + xcm_builder::V4V3LocationConverter::convert(¶_a_balances).expect("convert to v3"), + ); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"ParaAToken".to_vec(), + symbol: b"ParaA".to_vec(), + decimals: 18, + }; + + ParaB::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 0u128, + 0 + )); + }); + + let dest = Location { + parents: 1, + interior: [ + Parachain(2), + AccountKey20 { + network: None, + key: PARAALICE.into(), + }, + ] + .into(), + }; + ParaA::execute_with(|| { + assert_ok!(XTokens::transfer( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::SelfReserve, + 100, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(80u64, DEFAULT_PROOF_SIZE)) + )); + }); + + ParaA::execute_with(|| { + // Free execution, full amount received + assert_eq!( + ParaBalances::free_balance(&PARAALICE.into()), + INITIAL_BALANCE - 100 + ); + }); + + ParaB::execute_with(|| { + // Free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 100); + }); + + // This time we will force the new reanchoring by manually sending the + // Message through polkadotXCM pallet + + let dest = Location { + parents: 1, + interior: [Parachain(1)].into(), + }; + + let reanchored_para_a_balances = Location::new(0, [PalletInstance(1u8)]); + + let message = xcm::VersionedXcm::<()>::V4(Xcm(vec![ + WithdrawAsset((reanchored_para_a_balances.clone(), 100).into()), + ClearOrigin, + BuyExecution { + fees: (reanchored_para_a_balances, 100).into(), + weight_limit: Limited(80.into()), + }, + DepositAsset { + assets: All.into(), + beneficiary: Location::new( + 0, + [AccountKey20 { + network: None, + key: PARAALICE, + }], + ), + }, + ])); + ParaB::execute_with(|| { + // Send a message to the sovereign account in ParaA to withdraw + // and deposit asset + assert_ok!(ParachainPalletXcm::send( + parachain::RuntimeOrigin::root(), + Box::new(dest.into()), + Box::new(message), + )); + }); + + ParaB::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 100); + }); + + // This time we will force the new reanchoring by manually sending the + // Message through polkadotXCM pallet + + let dest = Location { + parents: 1, + interior: [Parachain(1)].into(), + }; + + let reanchored_para_a_balances = Location::new(0, [PalletInstance(1u8)]); + + let message = xcm::VersionedXcm::<()>::V4(Xcm(vec![ + WithdrawAsset((reanchored_para_a_balances.clone(), 100).into()), + ClearOrigin, + BuyExecution { + fees: (reanchored_para_a_balances, 100).into(), + weight_limit: Limited(80.into()), + }, + DepositAsset { + assets: All.into(), + beneficiary: Location::new( + 0, + [AccountKey20 { + network: None, + key: PARAALICE, + }], + ), + }, + ])); + ParaB::execute_with(|| { + // Send a message to the sovereign account in ParaA to withdraw + // and deposit asset + assert_ok!(ParachainPalletXcm::send( + parachain::RuntimeOrigin::root(), + Box::new(dest.into()), + Box::new(message), + )); + }); + + ParaA::execute_with(|| { + // Weight used is 4 + assert_eq!( + ParaBalances::free_balance(&PARAALICE.into()), + INITIAL_BALANCE - 4 + ); + }); +} + +#[test] +fn receive_relay_asset_with_trader() { + MockNet::reset(); + + let source_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + + // This time we are gonna put a rather high number of units per second + // we know later we will divide by 1e12 + // Lets put 1e6 as units per second + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 2500000000000u128, + 0 + )); + }); + + let dest: Location = Junction::AccountKey20 { + network: None, + key: PARAALICE, + } + .into(); + // We are sending 100 tokens from relay. + // Amount spent in fees is Units per second * weight / 1_000_000_000_000 (weight per second) + // weight is 4 since we are executing 4 instructions with a unitweightcost of 1. + // Units per second should be 2_500_000_000_000_000 + // Therefore with no refund, we should receive 10 tokens less + // Native trader fails for this, and we use the asset trader + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest).clone().into()), + Box::new(([] /* Here */, 100).into()), + 0, + )); + }); + + ParaA::execute_with(|| { + // non-free execution, not full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 90); + // Fee should have been received by treasury + assert_eq!(Assets::balance(source_id, &Treasury::account_id()), 10); + }); +} + +#[test] +fn send_para_a_asset_to_para_b_with_trader() { + MockNet::reset(); + + let para_a_balances = Location::new(1, [Parachain(1), PalletInstance(1u8)]); + let source_location = parachain::AssetType::Xcm( + xcm_builder::V4V3LocationConverter::convert(¶_a_balances).expect("convert to v3"), + ); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"ParaAToken".to_vec(), + symbol: b"ParaA".to_vec(), + decimals: 18, + }; + + ParaB::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 2500000000000u128, + 0 + )); + }); + + let dest = Location { + parents: 1, + interior: [ + Parachain(2), + AccountKey20 { + network: None, + key: PARAALICE.into(), + }, + ] + .into(), + }; + + // In destination chain, we only need 4 weight + // We put 10 weight, 6 of which should be refunded and 4 of which should go to treasury + ParaA::execute_with(|| { + assert_ok!(XTokens::transfer( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::SelfReserve, + 100, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(10u64, DEFAULT_PROOF_SIZE)) + )); + }); + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!( + ParaBalances::free_balance(&PARAALICE.into()), + INITIAL_BALANCE - 100 + ); + }); + + // We are sending 100 tokens from para A. + // Amount spent in fees is Units per second * weight / 1_000_000_000_000 (weight per second) + // weight is 4 since we are executing 4 instructions with a unitweightcost of 1. + // Units per second should be 2_500_000_000_000_000 + // Since we set 10 weight in destination chain, 25 will be charged upfront + // 15 of those will be refunded, while 10 will go to treasury as the true weight used + // will be 4 + ParaB::execute_with(|| { + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 90); + // Fee should have been received by treasury + assert_eq!(Assets::balance(source_id, &Treasury::account_id()), 10); + }); +} + +#[test] +fn send_para_a_asset_to_para_b_with_trader_and_fee() { + MockNet::reset(); + + let para_a_balances = Location::new(1, [Parachain(1), PalletInstance(1u8)]); + let source_location = parachain::AssetType::Xcm( + xcm_builder::V4V3LocationConverter::convert(¶_a_balances).expect("convert to v3"), + ); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"ParaAToken".to_vec(), + symbol: b"ParaA".to_vec(), + decimals: 18, + }; + + ParaB::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + // With these units per second, 80K weight convrets to 1 asset unit + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 12500000u128, + 0 + )); + }); + + let dest = Location { + parents: 1, + interior: [ + Parachain(2), + AccountKey20 { + network: None, + key: PARAALICE.into(), + }, + ] + .into(), + }; + + // we use transfer_with_fee + ParaA::execute_with(|| { + assert_ok!(XTokens::transfer_with_fee( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::SelfReserve, + 100, + 1, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(800000u64, DEFAULT_PROOF_SIZE)) + )); + }); + ParaA::execute_with(|| { + // 100 tokens transferred plus 1 taken from fees + assert_eq!( + ParaBalances::free_balance(&PARAALICE.into()), + INITIAL_BALANCE - 100 - 1 + ); + }); + + ParaB::execute_with(|| { + // free execution, full amount received because trully the xcm instruction does not cost + // what it is specified + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 101); + }); +} + +#[test] +fn error_when_not_paying_enough() { + MockNet::reset(); + + let source_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + + let dest: Location = Junction::AccountKey20 { + network: None, + key: PARAALICE, + } + .into(); + // This time we are gonna put a rather high number of units per second + // we know later we will divide by 1e12 + // Lets put 1e6 as units per second + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 2500000000000u128, + 0 + )); + }); + + // We are sending 100 tokens from relay. + // If we set the dest weight to be 1e7, we know the buy_execution will spend 1e7*1e6/1e12 = 10 + // Therefore with no refund, we should receive 10 tokens less + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest).clone().into()), + Box::new(([] /* Here */, 5).into()), + 0, + )); + }); + + ParaA::execute_with(|| { + // amount not received as it is not paying enough + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 0); + }); +} + +#[test] +fn transact_through_derivative_multilocation() { + MockNet::reset(); + + let source_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 1u128, + 0 + )); + + // Root can set transact info + assert_ok!(XcmTransactor::set_transact_info( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(Location::parent())), + // Relay charges 1000 for every instruction, and we have 3, so 3000 + 3000.into(), + 20000000000.into(), + None + )); + // Root can set transact info + assert_ok!(XcmTransactor::set_fee_per_second( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(Location::parent())), + WEIGHT_REF_TIME_PER_SECOND as u128, + )); + }); + + // Let's construct the call to know how much weight it is going to require + + let dest: Location = AccountKey20 { + network: None, + key: PARAALICE, + } + .into(); + Relay::execute_with(|| { + // 4000000000 transact + 3000 correspond to 4000003000 tokens. 100 more for the transfer call + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest).clone().into()), + Box::new(([] /* Here */, 4000003100u128).into()), + 0, + )); + }); + + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 4000003100); + }); + + // Register address + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::register( + parachain::RuntimeOrigin::root(), + PARAALICE.into(), + 0, + )); + }); + + // Send to registered address + + let registered_address = derivative_account_id(para_a_account(), 0); + let dest = Location { + parents: 1, + interior: [AccountId32 { + network: None, + id: registered_address.clone().into(), + }] + .into(), + }; + + ParaA::execute_with(|| { + // free execution, full amount received + assert_ok!(XTokens::transfer( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::ForeignAsset(source_id), + 100, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) + )); + }); + + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 4000003000); + }); + + // What we will do now is transfer this relay tokens from the derived account to the sovereign + // again + Relay::execute_with(|| { + // free execution,x full amount received + assert!(RelayBalances::free_balance(¶_a_account()) == 4000003000); + }); + + // Encode the call. Balances transact to para_a_account + // First index + let mut encoded: Vec = Vec::new(); + let index = ::PalletInfo::index::< + relay_chain::Balances, + >() + .unwrap() as u8; + + encoded.push(index); + + // Then call bytes + let mut call_bytes = pallet_balances::Call::::transfer_allow_death { + dest: para_a_account(), + value: 100u32.into(), + } + .encode(); + encoded.append(&mut call_bytes); + + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::transact_through_derivative( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::MockTransactors::Relay, + 0, + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + Location::parent() + ))), + fee_amount: None + }, + encoded, + // 4000000000 + 3000 we should have taken out 4000003000 tokens from the caller + TransactWeights { + transact_required_weight_at_most: 4000000000.into(), + overall_weight: None + }, + false + )); + }); + + Relay::execute_with(|| { + // free execution,x full amount received + assert!(RelayBalances::free_balance(¶_a_account()) == 100); + + assert!(RelayBalances::free_balance(®istered_address) == 0); + }); +} + +#[test] +fn transact_through_derivative_with_custom_fee_weight() { + MockNet::reset(); + + let source_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 1u128, + 0 + )); + }); + + // Let's construct the call to know how much weight it is going to require + + let dest: Location = AccountKey20 { + network: None, + key: PARAALICE, + } + .into(); + Relay::execute_with(|| { + // 4000000000 transact + 3000 correspond to 4000003000 tokens. 100 more for the transfer call + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest).clone().into()), + Box::new(([] /* Here */, 4000003100u128).into()), + 0, + )); + }); + + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 4000003100); + }); + + // Register address + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::register( + parachain::RuntimeOrigin::root(), + PARAALICE.into(), + 0, + )); + }); + + // Send to registered address + + let registered_address = derivative_account_id(para_a_account(), 0); + let dest = Location { + parents: 1, + interior: [AccountId32 { + network: None, + id: registered_address.clone().into(), + }] + .into(), + }; + + ParaA::execute_with(|| { + // free execution, full amount received + assert_ok!(XTokens::transfer( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::ForeignAsset(source_id), + 100, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) + )); + }); + + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 4000003000); + }); + + // What we will do now is transfer this relay tokens from the derived account to the sovereign + // again + Relay::execute_with(|| { + // free execution,x full amount received + assert!(RelayBalances::free_balance(¶_a_account()) == 4000003000); + }); + + // Encode the call. Balances transact to para_a_account + // First index + let mut encoded: Vec = Vec::new(); + let index = ::PalletInfo::index::< + relay_chain::Balances, + >() + .unwrap() as u8; + + encoded.push(index); + + // Then call bytes + let mut call_bytes = pallet_balances::Call::::transfer_allow_death { + dest: para_a_account(), + value: 100u32.into(), + } + .encode(); + encoded.append(&mut call_bytes); + + let overall_weight = 4000003000u64; + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::transact_through_derivative( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::MockTransactors::Relay, + 0, + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + Location::parent() + ))), + // 1-1 fee weight mapping + fee_amount: Some(overall_weight as u128) + }, + // 4000000000 + 3000 we should have taken out 4000003000 tokens from the caller + encoded, + TransactWeights { + transact_required_weight_at_most: 4000000000.into(), + overall_weight: Some(Limited(overall_weight.into())) + }, + false + )); + let event_found: Option = parachain::para_events() + .iter() + .find_map(|event| match event.clone() { + parachain::RuntimeEvent::PolkadotXcm(pallet_xcm::Event::AssetsTrapped { + .. + }) => Some(event.clone()), + _ => None, + }); + // Assert that the events do not contain the assets being trapped + assert!(event_found.is_none()); + }); + + Relay::execute_with(|| { + // free execution,x full amount received + assert!(RelayBalances::free_balance(¶_a_account()) == 100); + + assert!(RelayBalances::free_balance(®istered_address) == 0); + }); +} + +#[test] +fn transact_through_derivative_with_custom_fee_weight_refund() { + MockNet::reset(); + + let source_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 1u128, + 0 + )); + }); + + // Let's construct the call to know how much weight it is going to require + + let dest: Location = AccountKey20 { + network: None, + key: PARAALICE, + } + .into(); + Relay::execute_with(|| { + // 4000000000 transact + 9000 correspond to 4000009000 tokens. 100 more for the transfer call + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest).clone().into()), + Box::new(([] /* Here */, 4000009100u128).into()), + 0, + )); + }); + + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 4000009100); + }); + + // Register address + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::register( + parachain::RuntimeOrigin::root(), + PARAALICE.into(), + 0, + )); + }); + + // Send to registered address + + let registered_address = derivative_account_id(para_a_account(), 0); + let dest = Location { + parents: 1, + interior: [AccountId32 { + network: None, + id: registered_address.clone().into(), + }] + .into(), + }; + + ParaA::execute_with(|| { + // free execution, full amount received + assert_ok!(XTokens::transfer( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::ForeignAsset(source_id), + 100, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) + )); + }); + + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 4000009000); + }); + + // What we will do now is transfer this relay tokens from the derived account to the sovereign + // again + Relay::execute_with(|| { + // free execution,x full amount received + assert!(RelayBalances::free_balance(¶_a_account()) == 4000009000); + }); + + // Encode the call. Balances transact to para_a_account + // First index + let mut encoded: Vec = Vec::new(); + let index = ::PalletInfo::index::< + relay_chain::Balances, + >() + .unwrap() as u8; + + encoded.push(index); + + // Then call bytes + let mut call_bytes = pallet_balances::Call::::transfer_allow_death { + dest: para_a_account(), + value: 100u32.into(), + } + .encode(); + encoded.append(&mut call_bytes); + + let overall_weight = 4000009000u64; + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::transact_through_derivative( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::MockTransactors::Relay, + 0, + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + Location::parent() + ))), + // 1-1 fee weight mapping + fee_amount: Some(overall_weight as u128) + }, + encoded, + TransactWeights { + transact_required_weight_at_most: 4000000000.into(), + overall_weight: Some(Limited(overall_weight.into())) + }, + true + )); + let event_found: Option = parachain::para_events() + .iter() + .find_map(|event| match event.clone() { + parachain::RuntimeEvent::PolkadotXcm(pallet_xcm::Event::AssetsTrapped { + .. + }) => Some(event.clone()), + _ => None, + }); + // Assert that the events do not contain the assets being trapped + assert!(event_found.is_none()); + }); + + Relay::execute_with(|| { + // free execution,x full amount received + // 4000005186 refunded + 100 transferred = 4000005286 + assert_eq!(RelayBalances::free_balance(¶_a_account()), 4000005286); + assert_eq!(RelayBalances::free_balance(®istered_address), 0); + }); +} + +#[test] +fn transact_through_sovereign() { + MockNet::reset(); + + let source_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 1u128, + 0 + )); + + // Root can set transact info + assert_ok!(XcmTransactor::set_transact_info( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(Location::parent())), + // Relay charges 1000 for every instruction, and we have 3, so 3000 + 3000.into(), + 20000000000.into(), + None + )); + // Root can set transact info + assert_ok!(XcmTransactor::set_fee_per_second( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(Location::parent())), + WEIGHT_REF_TIME_PER_SECOND as u128, + )); + }); + + let dest: Location = AccountKey20 { + network: None, + key: PARAALICE, + } + .into(); + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest).clone().into()), + Box::new(([] /* Here */, 4000003100u128).into()), + 0, + )); + }); + + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 4000003100); + }); + + // Register address + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::register( + parachain::RuntimeOrigin::root(), + PARAALICE.into(), + 0, + )); + }); + + // Send to registered address + let registered_address = derivative_account_id(para_a_account(), 0); + let dest = Location { + parents: 1, + interior: [AccountId32 { + network: None, + id: registered_address.clone().into(), + }] + .into(), + }; + + ParaA::execute_with(|| { + // free execution, full amount received + assert_ok!(XTokens::transfer( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::ForeignAsset(source_id), + 100, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) + )); + }); + + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 4000003000); + }); + + // What we will do now is transfer this relay tokens from the derived account to the sovereign + // again + Relay::execute_with(|| { + // free execution,x full amount received + assert!(RelayBalances::free_balance(¶_a_account()) == 4000003000); + 0 + }); + + // We send the xcm transact operation to parent + let dest = Location { + parents: 1, + interior: /* Here */ [].into(), + }; + + // Encode the call. Balances transact to para_a_account + // First index + let mut encoded: Vec = Vec::new(); + let index = ::PalletInfo::index::< + relay_chain::Balances, + >() + .unwrap() as u8; + + encoded.push(index); + + // Then call bytes + let mut call_bytes = pallet_balances::Call::::transfer_allow_death { + dest: para_a_account(), + value: 100u32.into(), + } + .encode(); + encoded.append(&mut call_bytes); + + let utility_bytes = parachain::MockTransactors::Relay.encode_call( + xcm_primitives::UtilityAvailableCalls::AsDerivative(0, encoded), + ); + + // Root can directly pass the execution byes to the sovereign + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::transact_through_sovereign( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(dest)), + Some(PARAALICE.into()), + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + Location::parent() + ))), + fee_amount: None + }, + utility_bytes, + OriginKind::SovereignAccount, + TransactWeights { + transact_required_weight_at_most: 4000000000.into(), + overall_weight: None + }, + false + )); + }); + + Relay::execute_with(|| { + // free execution,x full amount received + assert!(RelayBalances::free_balance(¶_a_account()) == 100); + + assert!(RelayBalances::free_balance(®istered_address) == 0); + }); +} + +#[test] +fn transact_through_sovereign_fee_payer_none() { + MockNet::reset(); + + ParaA::execute_with(|| { + // Root can set transact info + assert_ok!(XcmTransactor::set_transact_info( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(Location::parent())), + // Relay charges 1000 for every instruction, and we have 3, so 3000 + 3000.into(), + 20000000000.into(), + None + )); + // Root can set transact info + assert_ok!(XcmTransactor::set_fee_per_second( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(Location::parent())), + WEIGHT_REF_TIME_PER_SECOND as u128, + )); + }); + + let derivative_address = derivative_account_id(para_a_account(), 0); + + Relay::execute_with(|| { + // Transfer 100 tokens to derivative_address on the relay + assert_ok!(RelayBalances::transfer_keep_alive( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + derivative_address.clone(), + 100u128 + )); + + // Transfer the XCM execution fee amount to ParaA's sovereign account + assert_ok!(RelayBalances::transfer_keep_alive( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + para_a_account(), + 4000003000u128 + )); + }); + + // Check balances before the transact call + Relay::execute_with(|| { + assert_eq!(RelayBalances::free_balance(¶_a_account()), 4000003000); + assert_eq!(RelayBalances::free_balance(&derivative_address), 100); + assert_eq!(RelayBalances::free_balance(&RELAYBOB), 0); + }); + + // Encode the call. Balances transfer of 100 relay tokens to RELAYBOB + let mut encoded: Vec = Vec::new(); + let index = ::PalletInfo::index::< + relay_chain::Balances, + >() + .unwrap() as u8; + + encoded.push(index); + + let mut call_bytes = pallet_balances::Call::::transfer_allow_death { + dest: RELAYBOB, + value: 100u32.into(), + } + .encode(); + encoded.append(&mut call_bytes); + + // The final call will be an AsDerivative using index 0 + let utility_bytes = parachain::MockTransactors::Relay.encode_call( + xcm_primitives::UtilityAvailableCalls::AsDerivative(0, encoded), + ); + + // We send the xcm transact operation to parent + let dest = Location { + parents: 1, + interior: /* Here */ [].into(), + }; + + // Root can directly pass the execution byes to the sovereign + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::transact_through_sovereign( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(dest)), + // No fee_payer here. The sovereign account will pay the fees on destination. + None, + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + Location::parent() + ))), + fee_amount: None + }, + utility_bytes, + OriginKind::SovereignAccount, + TransactWeights { + transact_required_weight_at_most: 4000000000.into(), + overall_weight: None + }, + false + )); + }); + + // Check balances after the transact call are correct + Relay::execute_with(|| { + assert_eq!(RelayBalances::free_balance(¶_a_account()), 0); + assert_eq!(RelayBalances::free_balance(&derivative_address), 0); + assert_eq!(RelayBalances::free_balance(&RELAYBOB), 100); + }); +} + +#[test] +fn transact_through_sovereign_with_custom_fee_weight() { + MockNet::reset(); + + let source_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 1u128, + 0 + )); + }); + + let dest: Location = AccountKey20 { + network: None, + key: PARAALICE, + } + .into(); + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest).clone().into()), + Box::new(([] /* Here */, 4000003100u128).into()), + 0, + )); + }); + + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 4000003100); + }); + + // Register address + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::register( + parachain::RuntimeOrigin::root(), + PARAALICE.into(), + 0, + )); + }); + + // Send to registered address + let registered_address = derivative_account_id(para_a_account(), 0); + let dest = Location { + parents: 1, + interior: [AccountId32 { + network: None, + id: registered_address.clone().into(), + }] + .into(), + }; + + ParaA::execute_with(|| { + // free execution, full amount received + assert_ok!(XTokens::transfer( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::ForeignAsset(source_id), + 100, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) + )); + }); + + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 4000003000); + }); + + // What we will do now is transfer this relay tokens from the derived account to the sovereign + // again + Relay::execute_with(|| { + // free execution,x full amount received + assert!(RelayBalances::free_balance(¶_a_account()) == 4000003000); + 0 + }); + + // We send the xcm transact operation to parent + let dest = Location { + parents: 1, + interior: /* Here */ [].into(), + }; + + // Encode the call. Balances transact to para_a_account + // First index + let mut encoded: Vec = Vec::new(); + let index = ::PalletInfo::index::< + relay_chain::Balances, + >() + .unwrap() as u8; + + encoded.push(index); + + // Then call bytes + let mut call_bytes = pallet_balances::Call::::transfer_allow_death { + dest: para_a_account(), + value: 100u32.into(), + } + .encode(); + encoded.append(&mut call_bytes); + + let utility_bytes = parachain::MockTransactors::Relay.encode_call( + xcm_primitives::UtilityAvailableCalls::AsDerivative(0, encoded), + ); + + let total_weight = 4000003000u64; + // Root can directly pass the execution byes to the sovereign + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::transact_through_sovereign( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(dest)), + Some(PARAALICE.into()), + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + Location::parent() + ))), + // 1-1 fee-weight mapping + fee_amount: Some(total_weight as u128) + }, + utility_bytes, + OriginKind::SovereignAccount, + TransactWeights { + transact_required_weight_at_most: 4000000000.into(), + overall_weight: Some(Limited(total_weight.into())) + }, + false + )); + }); + + Relay::execute_with(|| { + // free execution,x full amount received + assert!(RelayBalances::free_balance(¶_a_account()) == 100); + + assert!(RelayBalances::free_balance(®istered_address) == 0); + }); +} + +#[test] +fn transact_through_sovereign_with_custom_fee_weight_refund() { + MockNet::reset(); + + let source_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 1u128, + 0 + )); + }); + + let dest: Location = AccountKey20 { + network: None, + key: PARAALICE, + } + .into(); + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest).clone().into()), + Box::new(([] /* Here */, 4000009100u128).into()), + 0, + )); + }); + + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 4000009100); + }); + + // Register address + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::register( + parachain::RuntimeOrigin::root(), + PARAALICE.into(), + 0, + )); + }); + + // Send to registered address + let registered_address = derivative_account_id(para_a_account(), 0); + let dest = Location { + parents: 1, + interior: [AccountId32 { + network: None, + id: registered_address.clone().into(), + }] + .into(), + }; + + ParaA::execute_with(|| { + // free execution, full amount received + assert_ok!(XTokens::transfer( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::ForeignAsset(source_id), + 100, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(40000u64, DEFAULT_PROOF_SIZE)) + )); + }); + + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 4000009000); + }); + + // What we will do now is transfer this relay tokens from the derived account to the sovereign + // again + Relay::execute_with(|| { + // free execution,x full amount received + assert!(RelayBalances::free_balance(¶_a_account()) == 4000009000); + 0 + }); + + // We send the xcm transact operation to parent + let dest = Location { + parents: 1, + interior: /* Here */ [].into(), + }; + + // Encode the call. Balances transact to para_a_account + // First index + let mut encoded: Vec = Vec::new(); + let index = ::PalletInfo::index::< + relay_chain::Balances, + >() + .unwrap() as u8; + + encoded.push(index); + + // Then call bytes + let mut call_bytes = pallet_balances::Call::::transfer_allow_death { + dest: para_a_account(), + value: 100u32.into(), + } + .encode(); + encoded.append(&mut call_bytes); + + let utility_bytes = parachain::MockTransactors::Relay.encode_call( + xcm_primitives::UtilityAvailableCalls::AsDerivative(0, encoded), + ); + + let total_weight = 4000009000u64; + // Root can directly pass the execution byes to the sovereign + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::transact_through_sovereign( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(dest)), + Some(PARAALICE.into()), + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + Location::parent() + ))), + // 1-1 fee-weight mapping + fee_amount: Some(total_weight as u128) + }, + utility_bytes, + OriginKind::SovereignAccount, + TransactWeights { + transact_required_weight_at_most: 4000000000.into(), + overall_weight: Some(Limited(total_weight.into())) + }, + true + )); + }); + + Relay::execute_with(|| { + // free execution,x full amount received + // 4000005186 refunded + 100 transferred = 4000005286 + assert_eq!(RelayBalances::free_balance(¶_a_account()), 4000005286); + + assert_eq!(RelayBalances::free_balance(®istered_address), 0); + }); +} + +#[test] +fn test_automatic_versioning_on_runtime_upgrade_with_relay() { + MockNet::reset(); + + let source_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + // register relay asset in parachain A and set XCM version to 1 + ParaA::execute_with(|| { + parachain::XcmVersioner::set_version(1); + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 0u128, + 0 + )); + }); + + let response = Response::Version(2); + let querier: Location = ([]/* Here */).into(); + + // This is irrelevant, nothing will be done with this message, + // but we need to pass a message as an argument to trigger the storage change + let mock_message: Xcm<()> = Xcm(vec![QueryResponse { + query_id: 0, + response, + max_weight: Weight::zero(), + querier: Some(querier), + }]); + // The router is mocked, and we cannot use WrapVersion in ChildParachainRouter. So we will force + // it directly here + // Actually send relay asset to parachain + let dest: Location = AccountKey20 { + network: None, + key: PARAALICE, + } + .into(); + + Relay::execute_with(|| { + // This sets the default version, for not known destinations + assert_ok!(RelayChainPalletXcm::force_default_xcm_version( + relay_chain::RuntimeOrigin::root(), + Some(2) + )); + + // Wrap version, which sets VersionedStorage + // This is necessary because the mock router does not use wrap_version, but + // this is not necessary in prod + assert_ok!(::wrap_version( + &Parachain(1).into(), + mock_message + )); + + // Transfer assets. Since it is an unknown destination, it will query for version + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest).clone().into()), + Box::new(([] /* Here */, 123).into()), + 0, + )); + + // Let's advance the relay. This should trigger the subscription message + relay_chain::relay_roll_to(2); + + // queries should have been updated + assert!(RelayChainPalletXcm::query(0).is_some()); + }); + + let expected_supported_version: relay_chain::RuntimeEvent = + pallet_xcm::Event::SupportedVersionChanged { + location: Location { + parents: 0, + interior: [Parachain(1)].into(), + }, + version: 1, + } + .into(); + + Relay::execute_with(|| { + // Assert that the events vector contains the version change + assert!(relay_chain::relay_events().contains(&expected_supported_version)); + }); + + // ParaA changes version to 2, and calls on_runtime_upgrade. This should notify the targets + // of the new version change + ParaA::execute_with(|| { + // Set version + parachain::XcmVersioner::set_version(2); + // Do runtime upgrade + parachain::on_runtime_upgrade(); + // Initialize block, to call on_initialize and notify targets + parachain::para_roll_to(2); + // Expect the event in the parachain + assert!(parachain::para_events().iter().any(|e| matches!( + e, + parachain::RuntimeEvent::PolkadotXcm(pallet_xcm::Event::VersionChangeNotified { + result: 2, + .. + }) + ))); + }); + + // This event should have been seen in the relay + let expected_supported_version_2: relay_chain::RuntimeEvent = + pallet_xcm::Event::SupportedVersionChanged { + location: Location { + parents: 0, + interior: [Parachain(1)].into(), + }, + version: 2, + } + .into(); + + Relay::execute_with(|| { + // Assert that the events vector contains the new version change + assert!(relay_chain::relay_events().contains(&expected_supported_version_2)); + }); +} + +#[test] +fn test_automatic_versioning_on_runtime_upgrade_with_para_b() { + MockNet::reset(); + + let para_a_balances = Location::new(1, [Parachain(1), PalletInstance(1u8)]); + let source_location = parachain::AssetType::Xcm( + xcm_builder::V4V3LocationConverter::convert(¶_a_balances).expect("convert to v3"), + ); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"ParaAToken".to_vec(), + symbol: b"ParaA".to_vec(), + decimals: 18, + }; + let response = Response::Version(2); + let querier: Location = [] /* Here */ + .into(); + + // This is irrelevant, nothing will be done with this message, + // but we need to pass a message as an argument to trigger the storage change + let mock_message: Xcm<()> = Xcm(vec![QueryResponse { + query_id: 0, + response, + max_weight: Weight::zero(), + querier: Some(querier), + }]); + + ParaA::execute_with(|| { + // advertised version + parachain::XcmVersioner::set_version(2); + }); + + ParaB::execute_with(|| { + // Let's try with v0 + parachain::XcmVersioner::set_version(0); + + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 0u128, + 0 + )); + }); + + ParaA::execute_with(|| { + // This sets the default version, for not known destinations + assert_ok!(ParachainPalletXcm::force_default_xcm_version( + parachain::RuntimeOrigin::root(), + Some(2) + )); + // Wrap version, which sets VersionedStorage + assert_ok!(::wrap_version( + &Location::new(1, [Parachain(2)]).into(), + mock_message + )); + + parachain::para_roll_to(2); + + // queries should have been updated + assert!(ParachainPalletXcm::query(0).is_some()); + }); + + let expected_supported_version: parachain::RuntimeEvent = + pallet_xcm::Event::SupportedVersionChanged { + location: Location { + parents: 1, + interior: [Parachain(2)].into(), + }, + version: 0, + } + .into(); + + ParaA::execute_with(|| { + // Assert that the events vector contains the version change + assert!(parachain::para_events().contains(&expected_supported_version)); + }); + + // Let's ensure talking in v0 works + let dest = Location { + parents: 1, + interior: [ + Parachain(2), + AccountKey20 { + network: None, + key: PARAALICE.into(), + }, + ] + .into(), + }; + ParaA::execute_with(|| { + // free execution, full amount received + assert_ok!(XTokens::transfer( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + parachain::CurrencyId::SelfReserve, + 100, + Box::new(VersionedLocation::V4(dest)), + WeightLimit::Limited(Weight::from_parts(80u64, DEFAULT_PROOF_SIZE)) + )); + // free execution, full amount received + assert_eq!( + ParaBalances::free_balance(&PARAALICE.into()), + INITIAL_BALANCE - 100 + ); + }); + + ParaB::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 100); + }); + + // ParaB changes version to 2, and calls on_runtime_upgrade. This should notify the targets + // of the new version change + ParaB::execute_with(|| { + // Set version + parachain::XcmVersioner::set_version(2); + // Do runtime upgrade + parachain::on_runtime_upgrade(); + // Initialize block, to call on_initialize and notify targets + parachain::para_roll_to(2); + // Expect the event in the parachain + assert!(parachain::para_events().iter().any(|e| matches!( + e, + parachain::RuntimeEvent::PolkadotXcm(pallet_xcm::Event::VersionChangeNotified { + result: 2, + .. + }) + ))); + }); + + // This event should have been seen in para A + let expected_supported_version_2: parachain::RuntimeEvent = + pallet_xcm::Event::SupportedVersionChanged { + location: Location { + parents: 1, + interior: [Parachain(2)].into(), + }, + version: 2, + } + .into(); + + // Para A should have received the version change + ParaA::execute_with(|| { + // Assert that the events vector contains the new version change + assert!(parachain::para_events().contains(&expected_supported_version_2)); + }); +} + +#[test] +fn receive_asset_with_no_sufficients_not_possible_if_non_existent_account() { + MockNet::reset(); + + let fresh_account = [2u8; 20]; + let source_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let source_id: parachain::AssetId = source_location.clone().into(); + let asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + // register relay asset in parachain A + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + false + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 0u128, + 0 + )); + }); + + // Actually send relay asset to parachain + let dest: Location = AccountKey20 { + network: None, + key: fresh_account, + } + .into(); + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest.clone()).clone().into()), + Box::new(([] /* Here */, 123).into()), + 0, + )); + }); + + // parachain should not have received assets + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &fresh_account.into()), 0); + }); + + // Send native token to fresh_account + ParaA::execute_with(|| { + assert_ok!(ParaBalances::transfer_allow_death( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + fresh_account.into(), + 100 + )); + }); + + // Re-send tokens + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest).clone().into()), + Box::new(([] /* Here */, 123).into()), + 0, + )); + }); + + // parachain should have received assets + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &fresh_account.into()), 123); + }); +} + +#[test] +fn receive_assets_with_sufficients_true_allows_non_funded_account_to_receive_assets() { + MockNet::reset(); + + let fresh_account = [2u8; 20]; + let source_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let source_id: parachain::AssetId = source_location.clone().into(); + let asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + // register relay asset in parachain A + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 0u128, + 0 + )); + }); + + // Actually send relay asset to parachain + let dest: Location = AccountKey20 { + network: None, + key: fresh_account, + } + .into(); + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest.clone()).clone().into()), + Box::new(([] /* Here */, 123).into()), + 0, + )); + }); + + // parachain should have received assets + ParaA::execute_with(|| { + // free execution, full amount received + assert_eq!(Assets::balance(source_id, &fresh_account.into()), 123); + }); +} + +#[test] +fn evm_account_receiving_assets_should_handle_sufficients_ref_count() { + MockNet::reset(); + + let mut sufficient_account = [0u8; 20]; + sufficient_account[0..20].copy_from_slice(&evm_account()[..]); + + let evm_account_id = parachain::AccountId::from(sufficient_account); + + // Evm account is self sufficient + ParaA::execute_with(|| { + assert_eq!(parachain::System::account(evm_account_id).sufficients, 1); + }); + + let source_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + // register relay asset in parachain A + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 0u128, + 0 + )); + }); + + // Actually send relay asset to parachain + let dest: Location = AccountKey20 { + network: None, + key: sufficient_account, + } + .into(); + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest.clone()).clone().into()), + Box::new(([] /* Here */, 123).into()), + 0, + )); + }); + + // Evm account sufficient ref count increased by 1. + ParaA::execute_with(|| { + // TODO: since the suicided logic was introduced an smart contract account + // is not deleted completely until it's data is deleted. Data deletion + // will be implemented in a future release + // assert_eq!(parachain::System::account(evm_account_id).sufficients, 2); + }); + + ParaA::execute_with(|| { + // Remove the account from the evm context. + parachain::EVM::remove_account(&evm_account()); + // Evm account sufficient ref count decreased by 1. + // TODO: since the suicided logic was introduced an smart contract account + // is not deleted completely until it's data is deleted. Data deletion + // will be implemented in a future release + // assert_eq!(parachain::System::account(evm_account_id).sufficients, 1); + }); +} + +#[test] +fn empty_account_should_not_be_reset() { + MockNet::reset(); + + // Test account has nonce 1 on genesis. + let mut sufficient_account = [0u8; 20]; + sufficient_account[0..20].copy_from_slice(&evm_account()[..]); + + let evm_account_id = parachain::AccountId::from(sufficient_account); + + let source_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let source_id: parachain::AssetId = source_location.clone().into(); + let asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + // register relay asset in parachain A + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata, + 1u128, + false + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 0u128, + 0 + )); + }); + + // Send native token to evm_account + ParaA::execute_with(|| { + assert_ok!(ParaBalances::transfer_allow_death( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + evm_account_id, + 100 + )); + }); + + // Actually send relay asset to parachain + let dest: Location = AccountKey20 { + network: None, + key: sufficient_account, + } + .into(); + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new(VersionedLocation::V4(dest.clone()).clone().into()), + Box::new(([] /* Here */, 123).into()), + 0, + )); + }); + + ParaA::execute_with(|| { + // Empty the assets from the account. + // As this makes the account go below the `min_balance`, the account is considered dead + // at eyes of pallet-assets, and the consumer reference is decreased by 1 and is now Zero. + assert_ok!(parachain::Assets::transfer( + parachain::RuntimeOrigin::signed(evm_account_id), + source_id, + PARAALICE.into(), + 123 + )); + // Verify account asset balance is Zero. + assert_eq!( + parachain::Assets::balance(source_id, &evm_account_id.into()), + 0 + ); + // Because we no longer have consumer references, we can set the balance to Zero. + // This would reset the account if our ED were to be > than Zero. + assert_ok!(ParaBalances::force_set_balance( + parachain::RuntimeOrigin::root(), + evm_account_id, + 0, + )); + // Verify account native balance is Zero. + assert_eq!(ParaBalances::free_balance(&evm_account_id), 0); + // Remove the account from the evm context. + // This decreases the sufficients reference by 1 and now is Zero. + parachain::EVM::remove_account(&evm_account()); + // Verify reference count. + let account = parachain::System::account(evm_account_id); + assert_eq!(account.sufficients, 0); + assert_eq!(account.consumers, 0); + assert_eq!(account.providers, 1); + // We expect the account to be alive in a Zero ED context. + assert_eq!(parachain::System::account_nonce(evm_account_id), 1); + }); +} + +#[test] +fn test_statemine_like() { + MockNet::reset(); + + let dest_para = Location::new(1, [Parachain(1)]); + + let sov = xcm_builder::SiblingParachainConvertsVia::< + polkadot_parachain::primitives::Sibling, + statemine_like::AccountId, + >::convert_location(&dest_para) + .unwrap(); + + let statemine_asset_a_balances = Location::new( + 1, + [ + Parachain(4), + PalletInstance(5), + xcm::latest::prelude::GeneralIndex(0u128), + ], + ); + let source_location = parachain::AssetType::Xcm( + xcm_builder::V4V3LocationConverter::convert(&statemine_asset_a_balances) + .expect("convert to v3"), + ); + let source_id: parachain::AssetId = source_location.clone().into(); + + let asset_metadata = parachain::AssetMetadata { + name: b"StatemineToken".to_vec(), + symbol: b"StatemineToken".to_vec(), + decimals: 12, + }; + + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + source_location.clone(), + asset_metadata.clone(), + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + source_location, + 0u128, + 0 + )); + }); + + Statemine::execute_with(|| { + // Set new prefix + statemine_like::PrefixChanger::set_prefix( + PalletInstance(::index() as u8).into(), + ); + assert_ok!(StatemineAssets::create( + statemine_like::RuntimeOrigin::signed(RELAYALICE), + 0, + RELAYALICE, + 1 + )); + + assert_ok!(StatemineAssets::mint( + statemine_like::RuntimeOrigin::signed(RELAYALICE), + 0, + RELAYALICE, + 300000000000000 + )); + + // This is needed, since the asset is created as non-sufficient + assert_ok!(StatemineBalances::transfer_allow_death( + statemine_like::RuntimeOrigin::signed(RELAYALICE), + sov, + 100000000000000 + )); + + // Actually send relay asset to parachain + let dest: Location = AccountKey20 { + network: None, + key: PARAALICE, + } + .into(); + + // Send with new prefix + assert_ok!(StatemineChainPalletXcm::reserve_transfer_assets( + statemine_like::RuntimeOrigin::signed(RELAYALICE), + Box::new(Location::new(1, [Parachain(1)]).into()), + Box::new(VersionedLocation::V4(dest).clone().into()), + Box::new( + ( + [ + xcm::latest::prelude::PalletInstance( + ::index() as u8 + ), + xcm::latest::prelude::GeneralIndex(0), + ], + 123 + ) + .into() + ), + 0, + )); + }); + + ParaA::execute_with(|| { + assert_eq!(Assets::balance(source_id, &PARAALICE.into()), 123); + }); +} + +#[test] +fn send_statemint_asset_from_para_a_to_statemine_with_relay_fee() { + MockNet::reset(); + + // Relay asset + let relay_location = parachain::AssetType::Xcm(xcm::v3::Location::parent()); + let source_relay_id: parachain::AssetId = relay_location.clone().into(); + + let relay_asset_metadata = parachain::AssetMetadata { + name: b"RelayToken".to_vec(), + symbol: b"Relay".to_vec(), + decimals: 12, + }; + + // Statemine asset + let statemine_asset = Location::new( + 1, + [Parachain(4u32), PalletInstance(5u8), GeneralIndex(10u128)], + ); + let statemine_location_asset = parachain::AssetType::Xcm( + xcm_builder::V4V3LocationConverter::convert(&statemine_asset).expect("convert to v3"), + ); + let source_statemine_asset_id: parachain::AssetId = statemine_location_asset.clone().into(); + + let asset_metadata_statemine_asset = parachain::AssetMetadata { + name: b"USDC".to_vec(), + symbol: b"USDC".to_vec(), + decimals: 12, + }; + + let dest_para = Location::new(1, [Parachain(1)]); + + let sov = xcm_builder::SiblingParachainConvertsVia::< + polkadot_parachain::primitives::Sibling, + statemine_like::AccountId, + >::convert_location(&dest_para) + .unwrap(); + + ParaA::execute_with(|| { + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + relay_location.clone(), + relay_asset_metadata, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + relay_location, + 0u128, + 0 + )); + + assert_ok!(AssetManager::register_foreign_asset( + parachain::RuntimeOrigin::root(), + statemine_location_asset.clone(), + asset_metadata_statemine_asset, + 1u128, + true + )); + assert_ok!(AssetManager::set_asset_units_per_second( + parachain::RuntimeOrigin::root(), + statemine_location_asset, + 0u128, + 1 + )); + }); + + let parachain_beneficiary_from_relay: Location = Junction::AccountKey20 { + network: None, + key: PARAALICE, + } + .into(); + + // Send relay chain asset to Alice in Parachain A + Relay::execute_with(|| { + assert_ok!(RelayChainPalletXcm::reserve_transfer_assets( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + Box::new(Parachain(1).into()), + Box::new( + VersionedLocation::V4(parachain_beneficiary_from_relay) + .clone() + .into() + ), + Box::new(([] /* Here */, 200).into()), + 0, + )); + }); + + Statemine::execute_with(|| { + // Set new prefix + statemine_like::PrefixChanger::set_prefix( + PalletInstance(::index() as u8).into(), + ); + + assert_ok!(StatemineAssets::create( + statemine_like::RuntimeOrigin::signed(RELAYALICE), + 10, + RELAYALICE, + 1 + )); + + assert_ok!(StatemineAssets::mint( + statemine_like::RuntimeOrigin::signed(RELAYALICE), + 10, + RELAYALICE, + 300000000000000 + )); + + // Send some native statemine tokens to sovereign for fees. + // We can't pay fees with USDC as the asset is minted as non-sufficient. + assert_ok!(StatemineBalances::transfer_allow_death( + statemine_like::RuntimeOrigin::signed(RELAYALICE), + sov, + 100000000000000 + )); + + // Send statemine USDC asset to Alice in Parachain A + let parachain_beneficiary_from_statemint: Location = AccountKey20 { + network: None, + key: PARAALICE, + } + .into(); + + // Send with new prefix + assert_ok!(StatemineChainPalletXcm::reserve_transfer_assets( + statemine_like::RuntimeOrigin::signed(RELAYALICE), + Box::new(Location::new(1, [Parachain(1)]).into()), + Box::new( + VersionedLocation::V4(parachain_beneficiary_from_statemint) + .clone() + .into() + ), + Box::new( + ( + [ + xcm::latest::prelude::PalletInstance( + ::index() as u8 + ), + GeneralIndex(10), + ], + 125 + ) + .into() + ), + 0, + )); + }); + + let statemine_beneficiary = Location { + parents: 1, + interior: [ + Parachain(4), + AccountId32 { + network: None, + id: RELAYBOB.into(), + }, + ] + .into(), + }; + + ParaA::execute_with(|| { + // Alice has received 125 USDC + assert_eq!( + Assets::balance(source_statemine_asset_id, &PARAALICE.into()), + 125 + ); + + // Alice has received 200 Relay assets + assert_eq!(Assets::balance(source_relay_id, &PARAALICE.into()), 200); + }); + + Statemine::execute_with(|| { + // Check that BOB's balance is empty before the transfer + assert_eq!(StatemineAssets::account_balances(RELAYBOB), vec![]); + }); + + // Transfer USDC from Parachain A to Statemine using Relay asset as fee + ParaA::execute_with(|| { + assert_ok!(XTokens::transfer_multicurrencies( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + vec![ + ( + parachain::CurrencyId::ForeignAsset(source_statemine_asset_id), + 100 + ), + (parachain::CurrencyId::ForeignAsset(source_relay_id), 100) + ], + 1, + Box::new(VersionedLocation::V4(statemine_beneficiary)), + WeightLimit::Limited(Weight::from_parts(80_000_000u64, 100_000u64)) + )); + }); + + ParaA::execute_with(|| { + // Alice has 100 USDC less + assert_eq!( + Assets::balance(source_statemine_asset_id, &PARAALICE.into()), + 25 + ); + + // Alice has 100 relay asset less + assert_eq!(Assets::balance(source_relay_id, &PARAALICE.into()), 100); + }); + + Statemine::execute_with(|| { + // Check that BOB received 100 USDC on statemine + assert_eq!(StatemineAssets::account_balances(RELAYBOB), vec![(10, 100)]); + }); +} + +#[test] +fn transact_through_signed_multilocation() { + MockNet::reset(); + let mut ancestry = Location::parent(); + + ParaA::execute_with(|| { + // Root can set transact info + assert_ok!(XcmTransactor::set_transact_info( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(Location::parent())), + // Relay charges 1000 for every instruction, and we have 3, so 3000 + 3000.into(), + 20000000000.into(), + // 4 instructions in transact through signed + Some(4000.into()) + )); + // Root can set transact info + assert_ok!(XcmTransactor::set_fee_per_second( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(Location::parent())), + WEIGHT_REF_TIME_PER_SECOND as u128, + )); + ancestry = parachain::UniversalLocation::get().into(); + }); + + // Let's construct the Junction that we will append with DescendOrigin + let signed_origin: Junctions = [AccountKey20 { + network: None, + key: PARAALICE, + }] + .into(); + + let mut descend_origin_multilocation = parachain::SelfLocation::get(); + descend_origin_multilocation + .append_with(signed_origin) + .unwrap(); + + // To convert it to what the relay will see instead of us + descend_origin_multilocation + .reanchor(&Location::parent(), &ancestry.interior) + .unwrap(); + + let derived = xcm_builder::Account32Hash::< + relay_chain::KusamaNetwork, + relay_chain::AccountId, + >::convert_location(&descend_origin_multilocation) + .unwrap(); + + Relay::execute_with(|| { + // free execution, full amount received + assert_ok!(RelayBalances::transfer_allow_death( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + derived.clone(), + 4000004100u128, + )); + // derived account has all funds + assert!(RelayBalances::free_balance(&derived) == 4000004100); + // sovereign account has 0 funds + assert!(RelayBalances::free_balance(¶_a_account()) == 0); + }); + + // Encode the call. Balances transact to para_a_account + // First index + let mut encoded: Vec = Vec::new(); + let index = ::PalletInfo::index::< + relay_chain::Balances, + >() + .unwrap() as u8; + + encoded.push(index); + + // Then call bytes + let mut call_bytes = pallet_balances::Call::::transfer_allow_death { + // 100 to sovereign + dest: para_a_account(), + value: 100u32.into(), + } + .encode(); + encoded.append(&mut call_bytes); + + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::transact_through_signed( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + Box::new(xcm::VersionedLocation::V4(Location::parent())), + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + Location::parent() + ))), + fee_amount: None + }, + encoded, + // 4000000000 for transfer + 4000 for XCM + // 1-1 to fee + TransactWeights { + transact_required_weight_at_most: 4000000000.into(), + overall_weight: None + }, + false + )); + }); + + Relay::execute_with(|| { + assert!(RelayBalances::free_balance(¶_a_account()) == 100); + + assert!(RelayBalances::free_balance(&derived) == 0); + }); +} + +#[test] +fn transact_through_signed_multilocation_custom_fee_and_weight() { + MockNet::reset(); + let mut ancestry = Location::parent(); + + ParaA::execute_with(|| { + ancestry = parachain::UniversalLocation::get().into(); + }); + + // Let's construct the Junction that we will append with DescendOrigin + let signed_origin: Junctions = [AccountKey20 { + network: None, + key: PARAALICE, + }] + .into(); + + let mut descend_origin_multilocation = parachain::SelfLocation::get(); + descend_origin_multilocation + .append_with(signed_origin) + .unwrap(); + + // To convert it to what the relay will see instead of us + descend_origin_multilocation + .reanchor(&Location::parent(), &ancestry.interior) + .unwrap(); + + let derived = xcm_builder::Account32Hash::< + relay_chain::KusamaNetwork, + relay_chain::AccountId, + >::convert_location(&descend_origin_multilocation) + .unwrap(); + + Relay::execute_with(|| { + // free execution, full amount received + assert_ok!(RelayBalances::transfer_allow_death( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + derived.clone(), + 4000004100u128, + )); + // derived account has all funds + assert!(RelayBalances::free_balance(&derived) == 4000004100); + // sovereign account has 0 funds + assert!(RelayBalances::free_balance(¶_a_account()) == 0); + }); + + // Encode the call. Balances transact to para_a_account + // First index + let mut encoded: Vec = Vec::new(); + let index = ::PalletInfo::index::< + relay_chain::Balances, + >() + .unwrap() as u8; + + encoded.push(index); + + // Then call bytes + let mut call_bytes = pallet_balances::Call::::transfer_allow_death { + // 100 to sovereign + dest: para_a_account(), + value: 100u32.into(), + } + .encode(); + encoded.append(&mut call_bytes); + + let total_weight = 4000004000u64; + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::transact_through_signed( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + Box::new(xcm::VersionedLocation::V4(Location::parent())), + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + Location::parent() + ))), + fee_amount: Some(total_weight as u128) + }, + encoded, + // 4000000000 for transfer + 4000 for XCM + TransactWeights { + transact_required_weight_at_most: 4000000000.into(), + overall_weight: Some(Limited(total_weight.into())) + }, + false + )); + }); + + Relay::execute_with(|| { + assert!(RelayBalances::free_balance(¶_a_account()) == 100); + + assert!(RelayBalances::free_balance(&derived) == 0); + }); +} + +#[test] +fn transact_through_signed_multilocation_custom_fee_and_weight_refund() { + MockNet::reset(); + let mut ancestry = Location::parent(); + + ParaA::execute_with(|| { + ancestry = parachain::UniversalLocation::get().into(); + }); + + // Let's construct the Junction that we will append with DescendOrigin + let signed_origin: Junctions = [AccountKey20 { + network: None, + key: PARAALICE, + }] + .into(); + + let mut descend_origin_multilocation = parachain::SelfLocation::get(); + descend_origin_multilocation + .append_with(signed_origin) + .unwrap(); + + // To convert it to what the relay will see instead of us + descend_origin_multilocation + .reanchor(&Location::parent(), &ancestry.interior) + .unwrap(); + + let derived = xcm_builder::Account32Hash::< + relay_chain::KusamaNetwork, + relay_chain::AccountId, + >::convert_location(&descend_origin_multilocation) + .unwrap(); + + Relay::execute_with(|| { + // free execution, full amount received + assert_ok!(RelayBalances::transfer_allow_death( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + derived.clone(), + 4000009100u128, + )); + // derived account has all funds + assert!(RelayBalances::free_balance(&derived) == 4000009100); + // sovereign account has 0 funds + assert!(RelayBalances::free_balance(¶_a_account()) == 0); + }); + + // Encode the call. Balances transact to para_a_account + // First index + let mut encoded: Vec = Vec::new(); + let index = ::PalletInfo::index::< + relay_chain::Balances, + >() + .unwrap() as u8; + + encoded.push(index); + + // Then call bytes + let mut call_bytes = pallet_balances::Call::::transfer_allow_death { + // 100 to sovereign + dest: para_a_account(), + value: 100u32.into(), + } + .encode(); + encoded.append(&mut call_bytes); + + let total_weight = 4000009000u64; + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::transact_through_signed( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + Box::new(xcm::VersionedLocation::V4(Location::parent())), + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + Location::parent() + ))), + fee_amount: Some(total_weight as u128) + }, + encoded, + // 4000000000 for transfer + 9000 for XCM + TransactWeights { + transact_required_weight_at_most: 4000000000.into(), + overall_weight: Some(Limited(total_weight.into())) + }, + true + )); + }); + + Relay::execute_with(|| { + // 100 transferred + assert_eq!(RelayBalances::free_balance(¶_a_account()), 100); + + // 4000005186 refunded + assert_eq!(RelayBalances::free_balance(&derived), 4000005186); + }); +} + +#[test] +fn transact_through_signed_multilocation_para_to_para() { + MockNet::reset(); + let mut ancestry = Location::parent(); + + let para_b_location = Location::new(1, [Parachain(2)]); + + let para_b_balances = Location::new(1, [Parachain(2), PalletInstance(1u8)]); + + ParaA::execute_with(|| { + // Root can set transact info + assert_ok!(XcmTransactor::set_transact_info( + parachain::RuntimeOrigin::root(), + // ParaB + Box::new(xcm::VersionedLocation::V4(para_b_location.clone())), + // Para charges 1000 for every instruction, and we have 3, so 3 + 3.into(), + 20000000000.into(), + // 4 instructions in transact through signed + Some(4.into()) + )); + // Root can set transact info + assert_ok!(XcmTransactor::set_fee_per_second( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(para_b_balances.clone())), + parachain::ParaTokensPerSecond::get().1 as u128, + )); + ancestry = parachain::UniversalLocation::get().into(); + }); + + // Let's construct the Junction that we will append with DescendOrigin + let signed_origin: Junctions = [AccountKey20 { + network: None, + key: PARAALICE, + }] + .into(); + + let mut descend_origin_location = parachain::SelfLocation::get(); + descend_origin_location.append_with(signed_origin).unwrap(); + + // To convert it to what the paraB will see instead of us + descend_origin_location + .reanchor(¶_b_location, &ancestry.interior) + .unwrap(); + + let derived = xcm_builder::HashedDescription::< + parachain::AccountId, + xcm_builder::DescribeFamily, + >::convert_location(&descend_origin_location) + .unwrap(); + + ParaB::execute_with(|| { + // free execution, full amount received + assert_ok!(ParaBalances::transfer_allow_death( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + derived.clone(), + 4000000104u128, + )); + // derived account has all funds + assert!(ParaBalances::free_balance(&derived) == 4000000104); + // sovereign account has 0 funds + assert!(ParaBalances::free_balance(¶_a_account_20()) == 0); + }); + + // Encode the call. Balances transact to para_a_account + // First index + let mut encoded: Vec = Vec::new(); + let index = + ::PalletInfo::index::() + .unwrap() as u8; + + encoded.push(index); + + // Then call bytes + let mut call_bytes = pallet_balances::Call::::transfer_allow_death { + // 100 to sovereign + dest: para_a_account_20(), + value: 100u32.into(), + } + .encode(); + encoded.append(&mut call_bytes); + + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::transact_through_signed( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + Box::new(xcm::VersionedLocation::V4(para_b_location)), + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + para_b_balances + ))), + fee_amount: None + }, + encoded, + // 4000000000 for transfer + 4000 for XCM + // 1-1 to fee + TransactWeights { + transact_required_weight_at_most: 4000000000.into(), + overall_weight: None + }, + false + )); + }); + + ParaB::execute_with(|| { + assert!(ParaBalances::free_balance(&derived) == 0); + + assert!(ParaBalances::free_balance(¶_a_account_20()) == 100); + }); +} + +#[test] +fn transact_through_signed_multilocation_para_to_para_refund() { + MockNet::reset(); + let mut ancestry = Location::parent(); + + let para_b_location = Location::new(1, [Parachain(2)]); + + let para_b_balances = Location::new(1, [Parachain(2), PalletInstance(1u8)]); + + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::set_fee_per_second( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(para_b_balances.clone())), + parachain::ParaTokensPerSecond::get().1 as u128, + )); + ancestry = parachain::UniversalLocation::get().into(); + }); + + // Let's construct the Junction that we will append with DescendOrigin + let signed_origin: Junctions = [AccountKey20 { + network: None, + key: PARAALICE, + }] + .into(); + + let mut descend_origin_location = parachain::SelfLocation::get(); + descend_origin_location.append_with(signed_origin).unwrap(); + + // To convert it to what the paraB will see instead of us + descend_origin_location + .reanchor(¶_b_location, &ancestry.interior) + .unwrap(); + + let derived = xcm_builder::HashedDescription::< + parachain::AccountId, + xcm_builder::DescribeFamily, + >::convert_location(&descend_origin_location) + .unwrap(); + + ParaB::execute_with(|| { + // free execution, full amount received + assert_ok!(ParaBalances::transfer_allow_death( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + derived.clone(), + 4000009100u128, + )); + // derived account has all funds + assert!(ParaBalances::free_balance(&derived) == 4000009100); + // sovereign account has 0 funds + assert!(ParaBalances::free_balance(¶_a_account_20()) == 0); + }); + + // Encode the call. Balances transact to para_a_account + // First index + let mut encoded: Vec = Vec::new(); + let index = + ::PalletInfo::index::() + .unwrap() as u8; + + encoded.push(index); + + // Then call bytes + let mut call_bytes = pallet_balances::Call::::transfer_allow_death { + // 100 to sovereign + dest: para_a_account_20(), + value: 100u32.into(), + } + .encode(); + encoded.append(&mut call_bytes); + + let overall_weight = 4000009000u64; + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::transact_through_signed( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + Box::new(xcm::VersionedLocation::V4(para_b_location)), + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + para_b_balances + ))), + fee_amount: Some(overall_weight as u128) + }, + encoded, + // 4000000000 for transfer + 9000 for XCM + TransactWeights { + transact_required_weight_at_most: 4000000000.into(), + overall_weight: Some(Limited(overall_weight.into())) + }, + true + )); + }); + + ParaB::execute_with(|| { + // Check the derived account was refunded + assert_eq!(ParaBalances::free_balance(&derived), 8993); + + // Check the transfer was executed + assert_eq!(ParaBalances::free_balance(¶_a_account_20()), 100); + }); +} + +#[test] +fn transact_through_signed_multilocation_para_to_para_ethereum() { + MockNet::reset(); + let mut ancestry = Location::parent(); + + let para_b_location = Location::new(1, [Parachain(2)]); + + let para_b_balances = Location::new(1, [Parachain(2), PalletInstance(1u8)]); + + ParaA::execute_with(|| { + // Root can set transact info + assert_ok!(XcmTransactor::set_transact_info( + parachain::RuntimeOrigin::root(), + // ParaB + Box::new(xcm::VersionedLocation::V4(para_b_location.clone())), + // Para charges 1000 for every instruction, and we have 3, so 3 + 3.into(), + 20000000000.into(), + // 4 instructions in transact through signed + Some(4.into()) + )); + // Root can set transact info + assert_ok!(XcmTransactor::set_fee_per_second( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(para_b_balances.clone())), + parachain::ParaTokensPerSecond::get().1 as u128, + )); + ancestry = parachain::UniversalLocation::get().into(); + }); + + // Let's construct the Junction that we will append with DescendOrigin + let signed_origin: Junctions = [AccountKey20 { + network: None, + key: PARAALICE, + }] + .into(); + + let mut descend_origin_location = parachain::SelfLocation::get(); + descend_origin_location.append_with(signed_origin).unwrap(); + + // To convert it to what the paraB will see instead of us + descend_origin_location + .reanchor(¶_b_location, &ancestry.interior) + .unwrap(); + + let derived = xcm_builder::HashedDescription::< + parachain::AccountId, + xcm_builder::DescribeFamily, + >::convert_location(&descend_origin_location) + .unwrap(); + + let mut parachain_b_alice_balances_before = 0; + ParaB::execute_with(|| { + assert_ok!(ParaBalances::transfer_allow_death( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + derived.clone(), + 4000000104u128, + )); + // derived account has all funds + assert!(ParaBalances::free_balance(&derived) == 4000000104); + // sovereign account has 0 funds + assert!(ParaBalances::free_balance(¶_a_account_20()) == 0); + + parachain_b_alice_balances_before = ParaBalances::free_balance(&PARAALICE.into()) + }); + + // Encode the call. Balances transact to para_a_account + // First index + let mut encoded: Vec = Vec::new(); + let index = + ::PalletInfo::index::() + .unwrap() as u8; + + encoded.push(index); + + use sp_core::U256; + // Let's do a EVM transfer + let eth_tx = + xcm_primitives::EthereumXcmTransaction::V1(xcm_primitives::EthereumXcmTransactionV1 { + gas_limit: U256::from(21000), + fee_payment: xcm_primitives::EthereumXcmFee::Auto, + action: pallet_ethereum::TransactionAction::Call(PARAALICE.into()), + value: U256::from(100), + input: BoundedVec::< + u8, + ConstU32<{ xcm_primitives::MAX_ETHEREUM_XCM_INPUT_SIZE }> + >::try_from(vec![]).unwrap(), + access_list: None, + }); + + // Then call bytes + let mut call_bytes = pallet_ethereum_xcm::Call::::transact { + xcm_transaction: eth_tx, + } + .encode(); + encoded.append(&mut call_bytes); + + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::transact_through_signed( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + Box::new(xcm::VersionedLocation::V4(para_b_location)), + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + para_b_balances + ))), + fee_amount: None + }, + encoded, + // 4000000000 for transfer + 4000 for XCM + // 1-1 to fee + TransactWeights { + transact_required_weight_at_most: 4000000000.into(), + overall_weight: None + }, + false + )); + }); + + ParaB::execute_with(|| { + // Make sure the EVM transfer went through + assert!( + ParaBalances::free_balance(&PARAALICE.into()) + == parachain_b_alice_balances_before + 100 + ); + }); +} + +#[test] +fn transact_through_signed_multilocation_para_to_para_ethereum_no_proxy_fails() { + MockNet::reset(); + let mut ancestry = Location::parent(); + + let para_b_location = Location::new(1, [Parachain(2)]); + + let para_b_balances = Location::new(1, [Parachain(2), PalletInstance(1u8)]); + + ParaA::execute_with(|| { + // Root can set transact info + assert_ok!(XcmTransactor::set_transact_info( + parachain::RuntimeOrigin::root(), + // ParaB + Box::new(xcm::VersionedLocation::V4(para_b_location.clone())), + // Para charges 1000 for every instruction, and we have 3, so 3 + 3.into(), + 20000000000.into(), + // 4 instructions in transact through signed + Some(4.into()) + )); + // Root can set transact info + assert_ok!(XcmTransactor::set_fee_per_second( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(para_b_balances.clone())), + parachain::ParaTokensPerSecond::get().1 as u128, + )); + ancestry = parachain::UniversalLocation::get().into(); + }); + + // Let's construct the Junction that we will append with DescendOrigin + let signed_origin: Junctions = [AccountKey20 { + network: None, + key: PARAALICE, + }] + .into(); + + let mut descend_origin_location = parachain::SelfLocation::get(); + descend_origin_location.append_with(signed_origin).unwrap(); + + // To convert it to what the paraB will see instead of us + descend_origin_location + .reanchor(¶_b_location, &ancestry.interior) + .unwrap(); + + let derived = xcm_builder::HashedDescription::< + parachain::AccountId, + xcm_builder::DescribeFamily, + >::convert_location(&descend_origin_location) + .unwrap(); + + let mut parachain_b_alice_balances_before = 0; + ParaB::execute_with(|| { + assert_ok!(ParaBalances::transfer_allow_death( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + derived.clone(), + 4000000104u128, + )); + // derived account has all funds + assert!(ParaBalances::free_balance(&derived) == 4000000104); + // sovereign account has 0 funds + assert!(ParaBalances::free_balance(¶_a_account_20()) == 0); + + parachain_b_alice_balances_before = ParaBalances::free_balance(&PARAALICE.into()) + }); + + // Encode the call. Balances transact to para_a_account + // First index + let mut encoded: Vec = Vec::new(); + let index = + ::PalletInfo::index::() + .unwrap() as u8; + + encoded.push(index); + + use sp_core::U256; + // Let's do a EVM transfer + let eth_tx = + xcm_primitives::EthereumXcmTransaction::V1(xcm_primitives::EthereumXcmTransactionV1 { + gas_limit: U256::from(21000), + fee_payment: xcm_primitives::EthereumXcmFee::Auto, + action: pallet_ethereum::TransactionAction::Call(PARAALICE.into()), + value: U256::from(100), + input: BoundedVec::< + u8, + ConstU32<{ xcm_primitives::MAX_ETHEREUM_XCM_INPUT_SIZE }> + >::try_from(vec![]).unwrap(), + access_list: None, + }); + + // Then call bytes + let mut call_bytes = pallet_ethereum_xcm::Call::::transact_through_proxy { + transact_as: PARAALICE.into(), + xcm_transaction: eth_tx, + } + .encode(); + encoded.append(&mut call_bytes); + + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::transact_through_signed( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + Box::new(xcm::VersionedLocation::V4(para_b_location)), + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + para_b_balances + ))), + fee_amount: None + }, + encoded, + TransactWeights { + transact_required_weight_at_most: 4000000000.into(), + overall_weight: None + }, + false + )); + }); + + ParaB::execute_with(|| { + // Make sure the EVM transfer wasn't executed + assert!(ParaBalances::free_balance(&PARAALICE.into()) == parachain_b_alice_balances_before); + }); +} + +#[test] +fn transact_through_signed_multilocation_para_to_para_ethereum_proxy_succeeds() { + MockNet::reset(); + let mut ancestry = Location::parent(); + + let para_b_location = Location::new(1, [Parachain(2)]); + + let para_b_balances = Location::new(1, [Parachain(2), PalletInstance(1u8)]); + + ParaA::execute_with(|| { + // Root can set transact info + assert_ok!(XcmTransactor::set_transact_info( + parachain::RuntimeOrigin::root(), + // ParaB + Box::new(xcm::VersionedLocation::V4(para_b_location.clone())), + // Para charges 1000 for every instruction, and we have 3, so 3 + 3.into(), + 20000000000.into(), + // 4 instructions in transact through signed + Some(4.into()) + )); + // Root can set transact info + assert_ok!(XcmTransactor::set_fee_per_second( + parachain::RuntimeOrigin::root(), + Box::new(xcm::VersionedLocation::V4(para_b_balances.clone())), + parachain::ParaTokensPerSecond::get().1 as u128, + )); + ancestry = parachain::UniversalLocation::get().into(); + }); + + // Let's construct the Junction that we will append with DescendOrigin + let signed_origin: Junctions = [AccountKey20 { + network: None, + key: PARAALICE, + }] + .into(); + + let mut descend_origin_location = parachain::SelfLocation::get(); + descend_origin_location.append_with(signed_origin).unwrap(); + + // To convert it to what the paraB will see instead of us + descend_origin_location + .reanchor(¶_b_location, &ancestry.interior) + .unwrap(); + + let derived = xcm_builder::HashedDescription::< + parachain::AccountId, + xcm_builder::DescribeFamily, + >::convert_location(&descend_origin_location) + .unwrap(); + + let transfer_recipient = evm_account(); + let mut transfer_recipient_balance_before = 0; + ParaB::execute_with(|| { + assert_ok!(ParaBalances::transfer_allow_death( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + derived.clone(), + 4000000104u128, + )); + // derived account has all funds + assert!(ParaBalances::free_balance(&derived) == 4000000104); + // sovereign account has 0 funds + assert!(ParaBalances::free_balance(¶_a_account_20()) == 0); + + transfer_recipient_balance_before = ParaBalances::free_balance(&transfer_recipient.into()); + + // Add proxy ALICE -> derived + let _ = parachain::Proxy::add_proxy_delegate( + &PARAALICE.into(), + derived, + parachain::ProxyType::Any, + 0, + ); + }); + + // Encode the call. Balances transact to para_a_account + // First index + let mut encoded: Vec = Vec::new(); + let index = + ::PalletInfo::index::() + .unwrap() as u8; + + encoded.push(index); + + use sp_core::U256; + // Let's do a EVM transfer + let eth_tx = + xcm_primitives::EthereumXcmTransaction::V2(xcm_primitives::EthereumXcmTransactionV2 { + gas_limit: U256::from(21000), + action: pallet_ethereum::TransactionAction::Call(transfer_recipient.into()), + value: U256::from(100), + input: BoundedVec::< + u8, + ConstU32<{ xcm_primitives::MAX_ETHEREUM_XCM_INPUT_SIZE }> + >::try_from(vec![]).unwrap(), + access_list: None, + }); + + // Then call bytes + let mut call_bytes = pallet_ethereum_xcm::Call::::transact_through_proxy { + transact_as: PARAALICE.into(), + xcm_transaction: eth_tx, + } + .encode(); + encoded.append(&mut call_bytes); + + ParaA::execute_with(|| { + assert_ok!(XcmTransactor::transact_through_signed( + parachain::RuntimeOrigin::signed(PARAALICE.into()), + Box::new(xcm::VersionedLocation::V4(para_b_location)), + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + para_b_balances + ))), + fee_amount: None + }, + encoded, + TransactWeights { + transact_required_weight_at_most: 4000000000.into(), + overall_weight: None + }, + false + )); + }); + + ParaB::execute_with(|| { + // Make sure the EVM transfer was executed + assert!( + ParaBalances::free_balance(&transfer_recipient.into()) + == transfer_recipient_balance_before + 100 + ); + }); +} + +#[test] +fn hrmp_init_accept_through_root() { + MockNet::reset(); + + Relay::execute_with(|| { + assert_ok!(RelayBalances::transfer_allow_death( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + para_a_account(), + 1000u128 + )); + assert_ok!(RelayBalances::transfer_allow_death( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + para_b_account(), + 1000u128 + )); + }); + + ParaA::execute_with(|| { + let total_fee = 1_000u128; + let total_weight: u64 = 1_000_000_000; + let tx_weight: u64 = 500_000_000; + // Root can send hrmp init channel + assert_ok!(XcmTransactor::hrmp_manage( + parachain::RuntimeOrigin::root(), + HrmpOperation::InitOpen(HrmpInitParams { + para_id: 2u32.into(), + proposed_max_capacity: 1, + proposed_max_message_size: 1 + }), + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + Location::parent() + ))), + fee_amount: Some(total_fee) + }, + TransactWeights { + transact_required_weight_at_most: tx_weight.into(), + overall_weight: Some(Limited(total_weight.into())) + } + )); + }); + Relay::execute_with(|| { + let expected_event: relay_chain::RuntimeEvent = + polkadot_runtime_parachains::hrmp::Event::OpenChannelRequested { + sender: 1u32.into(), + recipient: 2u32.into(), + proposed_max_capacity: 1u32, + proposed_max_message_size: 1u32, + } + .into(); + assert!(relay_chain::relay_events().contains(&expected_event)); + }); + ParaB::execute_with(|| { + let total_fee = 1_000u128; + let total_weight: u64 = 1_000_000_000; + let tx_weight: u64 = 500_000_000; + // Root can send hrmp accept channel + assert_ok!(XcmTransactor::hrmp_manage( + parachain::RuntimeOrigin::root(), + HrmpOperation::Accept { + para_id: 1u32.into() + }, + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + Location::parent() + ))), + fee_amount: Some(total_fee) + }, + TransactWeights { + transact_required_weight_at_most: tx_weight.into(), + overall_weight: Some(Limited(total_weight.into())) + } + )); + }); + + Relay::execute_with(|| { + let expected_event: relay_chain::RuntimeEvent = + polkadot_runtime_parachains::hrmp::Event::OpenChannelAccepted { + sender: 1u32.into(), + recipient: 2u32.into(), + } + .into(); + assert!(relay_chain::relay_events().contains(&expected_event)); + }); +} + +#[test] +fn hrmp_close_works() { + MockNet::reset(); + + Relay::execute_with(|| { + assert_ok!(RelayBalances::transfer_allow_death( + relay_chain::RuntimeOrigin::signed(RELAYALICE), + para_a_account(), + 1000u128 + )); + assert_ok!(Hrmp::force_open_hrmp_channel( + relay_chain::RuntimeOrigin::root(), + 1u32.into(), + 2u32.into(), + 1u32, + 1u32 + )); + assert_ok!(Hrmp::force_process_hrmp_open( + relay_chain::RuntimeOrigin::root(), + 1u32 + )); + }); + + ParaA::execute_with(|| { + let total_fee = 1_000u128; + let total_weight: u64 = 1_000_000_000; + let tx_weight: u64 = 500_000_000; + // Root can send hrmp close + assert_ok!(XcmTransactor::hrmp_manage( + parachain::RuntimeOrigin::root(), + HrmpOperation::Close(HrmpChannelId { + sender: 1u32.into(), + recipient: 2u32.into() + }), + CurrencyPayment { + currency: Currency::AsMultiLocation(Box::new(xcm::VersionedLocation::V4( + Location::parent() + ))), + fee_amount: Some(total_fee) + }, + TransactWeights { + transact_required_weight_at_most: tx_weight.into(), + overall_weight: Some(Limited(total_weight.into())) + } + )); + }); + Relay::execute_with(|| { + let expected_event: relay_chain::RuntimeEvent = + polkadot_runtime_parachains::hrmp::Event::ChannelClosed { + by_parachain: 1u32.into(), + channel_id: HrmpChannelId { + sender: 1u32.into(), + recipient: 2u32.into(), + }, + } + .into(); + assert!(relay_chain::relay_events().contains(&expected_event)); + }); +} + +use parity_scale_codec::{Decode, Encode}; +use sp_io::hashing::blake2_256; + +// Helper to derive accountIds +pub fn derivative_account_id(who: sp_runtime::AccountId32, index: u16) -> sp_runtime::AccountId32 { + let entropy = (b"modlpy/utilisuba", who, index).using_encoded(blake2_256); + sp_runtime::AccountId32::decode(&mut &entropy[..]).expect("valid account id") +} diff --git a/tracing/3001/rust-toolchain b/tracing/3001/rust-toolchain new file mode 100644 index 00000000..47a114dc --- /dev/null +++ b/tracing/3001/rust-toolchain @@ -0,0 +1,5 @@ +[toolchain] +channel = "1.77.0" +components = [ "rustfmt", "clippy", "rust-src" ] +targets = [ "wasm32-unknown-unknown" ] +profile = "minimal" diff --git a/tracing/3001/shared/primitives/ext/Cargo.toml b/tracing/3001/shared/primitives/ext/Cargo.toml new file mode 100644 index 00000000..fc6bbf5e --- /dev/null +++ b/tracing/3001/shared/primitives/ext/Cargo.toml @@ -0,0 +1,33 @@ +[package] +name = "moonbeam-primitives-ext" +version = '0.1.0' +authors = ['PureStake'] +edition = '2018' +homepage = 'https://moonbeam.network' +license = 'GPL-3.0-only' +repository = 'https://github.com/PureStake/moonbeam/' + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +ethereum-types = { workspace = true } + +# Moonbeam +evm-tracing-events = { workspace = true } + +# Substrate +parity-scale-codec = { workspace = true } +sp-runtime-interface = { workspace = true } +sp-externalities = { workspace = true } +sp-std = { workspace = true } + +[features] +default = ["std"] +std = [ + "parity-scale-codec/std", + "ethereum-types/std", + "evm-tracing-events/std", + "sp-runtime-interface/std", + "sp-externalities/std", + "sp-std/std", +] \ No newline at end of file diff --git a/tracing/3001/shared/primitives/ext/src/lib.rs b/tracing/3001/shared/primitives/ext/src/lib.rs new file mode 100644 index 00000000..2e0fe897 --- /dev/null +++ b/tracing/3001/shared/primitives/ext/src/lib.rs @@ -0,0 +1,82 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Environmental-aware externalities for EVM tracing in Wasm runtime. This enables +//! capturing the - potentially large - trace output data in the host and keep +//! a low memory footprint in `--execution=wasm`. +//! +//! - The original trace Runtime Api call is wrapped `using` environmental (thread local). +//! - Arguments are scale-encoded known types in the host. +//! - Host functions will decode the input and emit an event `with` environmental. + +#![cfg_attr(not(feature = "std"), no_std)] +use sp_runtime_interface::runtime_interface; + +use parity_scale_codec::Decode; +use sp_std::vec::Vec; + +use evm_tracing_events::{Event, EvmEvent, GasometerEvent, RuntimeEvent, StepEventFilter}; + +#[runtime_interface] +pub trait MoonbeamExt { + fn raw_step(&mut self, _data: Vec) {} + + fn raw_gas(&mut self, _data: Vec) {} + + fn raw_return_value(&mut self, _data: Vec) {} + + fn call_list_entry(&mut self, _index: u32, _value: Vec) {} + + fn call_list_new(&mut self) {} + + // New design, proxy events. + /// An `Evm` event proxied by the Moonbeam runtime to this host function. + /// evm -> moonbeam_runtime -> host. + fn evm_event(&mut self, event: Vec) { + if let Ok(event) = EvmEvent::decode(&mut &event[..]) { + Event::Evm(event).emit(); + } + } + + /// A `Gasometer` event proxied by the Moonbeam runtime to this host function. + /// evm_gasometer -> moonbeam_runtime -> host. + fn gasometer_event(&mut self, event: Vec) { + if let Ok(event) = GasometerEvent::decode(&mut &event[..]) { + Event::Gasometer(event).emit(); + } + } + + /// A `Runtime` event proxied by the Moonbeam runtime to this host function. + /// evm_runtime -> moonbeam_runtime -> host. + fn runtime_event(&mut self, event: Vec) { + if let Ok(event) = RuntimeEvent::decode(&mut &event[..]) { + Event::Runtime(event).emit(); + } + } + + /// Allow the tracing module in the runtime to know how to filter Step event + /// content, as cloning the entire data is expensive and most of the time + /// not necessary. + fn step_event_filter(&self) -> StepEventFilter { + evm_tracing_events::step_event_filter().unwrap_or_default() + } + + /// An event to create a new CallList (currently a new transaction when tracing a block). + #[version(2)] + fn call_list_new(&mut self) { + Event::CallListNew().emit(); + } +} diff --git a/tracing/3001/shared/primitives/rpc/debug/Cargo.toml b/tracing/3001/shared/primitives/rpc/debug/Cargo.toml new file mode 100644 index 00000000..1dd84780 --- /dev/null +++ b/tracing/3001/shared/primitives/rpc/debug/Cargo.toml @@ -0,0 +1,45 @@ +[package] +name = "moonbeam-rpc-primitives-debug" +authors = [ "PureStake" ] +edition = "2018" +homepage = "https://moonbeam.network" +license = "GPL-3.0-only" +repository = "https://github.com/PureStake/moonbeam/" +version = "0.1.0" + +[dependencies] +environmental = { workspace = true } +ethereum = { workspace = true, features = [ "with-codec" ] } +ethereum-types = { workspace = true } +hex = { workspace = true, optional = true, features = [ "serde" ] } +serde = { workspace = true, optional = true, features = [ "derive" ] } + +# Substrate +parity-scale-codec = { workspace = true } +sp-api = { workspace = true } +sp-core = { workspace = true } +sp-io = { workspace = true } +sp-runtime = { workspace = true } +sp-std = { workspace = true } + +[features] +default = [ "std" ] + +before_700 = [] +_700_to_1200 = [] +runtime-2900 = [] +runtime-3000 = [] + +std = [ + "parity-scale-codec/std", + "environmental/std", + "ethereum-types/std", + "ethereum/std", + "hex", + "serde", + "sp-api/std", + "sp-core/std", + "sp-io/std", + "sp-runtime/std", + "sp-std/std", +] diff --git a/tracing/3001/shared/primitives/rpc/debug/src/lib.rs b/tracing/3001/shared/primitives/rpc/debug/src/lib.rs new file mode 100644 index 00000000..b66a4f9b --- /dev/null +++ b/tracing/3001/shared/primitives/rpc/debug/src/lib.rs @@ -0,0 +1,129 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +#![cfg_attr(not(feature = "std"), no_std)] + +use parity_scale_codec::{Decode, Encode}; + +#[cfg(feature = "before_700")] +use ethereum::Transaction; +#[cfg(feature = "_700_to_1200")] +use ethereum::TransactionV0 as Transaction; +#[cfg(all(not(feature = "before_700"), not(feature = "_700_to_1200")))] +use ethereum::TransactionV2 as Transaction; + +use ethereum_types::{H160, H256, U256}; +use sp_std::vec::Vec; + +#[cfg(feature = "runtime-3000")] +sp_api::decl_runtime_apis! { + #[api_version(6)] + pub trait DebugRuntimeApi { + fn trace_transaction( + extrinsics: Vec, + transaction: &Transaction, + header: &Block::Header, + ) -> Result<(), sp_runtime::DispatchError>; + + fn trace_block( + extrinsics: Vec, + known_transactions: Vec, + header: &Block::Header, + ) -> Result<(), sp_runtime::DispatchError>; + + fn trace_call( + header: &Block::Header, + from: H160, + to: H160, + data: Vec, + value: U256, + gas_limit: U256, + max_fee_per_gas: Option, + max_priority_fee_per_gas: Option, + nonce: Option, + access_list: Option)>>, + ) -> Result<(), sp_runtime::DispatchError>; + } +} + +#[cfg(feature = "runtime-2900")] +sp_api::decl_runtime_apis! { + #[api_version(5)] + pub trait DebugRuntimeApi { + fn trace_transaction( + extrinsics: Vec, + transaction: &Transaction, + header: &Block::Header, + ) -> Result<(), sp_runtime::DispatchError>; + + fn trace_block( + extrinsics: Vec, + known_transactions: Vec, + header: &Block::Header, + ) -> Result<(), sp_runtime::DispatchError>; + } +} + +#[cfg(all( + not(feature = "before_700"), + not(feature = "_700_to_1200"), + not(feature = "runtime-2900"), + not(feature = "runtime-3000") +))] +sp_api::decl_runtime_apis! { + #[api_version(4)] + pub trait DebugRuntimeApi { + fn trace_transaction( + extrinsics: Vec, + transaction: &Transaction, + ) -> Result<(), sp_runtime::DispatchError>; + + fn trace_block( + extrinsics: Vec, + known_transactions: Vec, + ) -> Result<(), sp_runtime::DispatchError>; + } +} + +#[cfg(any(feature = "before_700", feature = "_700_to_1200"))] +sp_api::decl_runtime_apis! { + pub trait DebugRuntimeApi { + fn trace_transaction( + extrinsics: Vec, + transaction: &Transaction, + ) -> Result<(), sp_runtime::DispatchError>; + + fn trace_block( + extrinsics: Vec, + known_transactions: Vec, + ) -> Result<(), sp_runtime::DispatchError>; + } +} + +#[derive(Clone, Copy, Eq, PartialEq, Debug, Encode, Decode)] +pub enum TracerInput { + None, + Blockscout, + CallTracer, +} + +/// DebugRuntimeApi V2 result. Trace response is stored in client and runtime api call response is +/// empty. +#[derive(Debug)] +pub enum Response { + Single, + Block, +} diff --git a/tracing/3001/shared/primitives/rpc/evm-tracing-events/Cargo.toml b/tracing/3001/shared/primitives/rpc/evm-tracing-events/Cargo.toml new file mode 100644 index 00000000..d94d74a4 --- /dev/null +++ b/tracing/3001/shared/primitives/rpc/evm-tracing-events/Cargo.toml @@ -0,0 +1,37 @@ +[package] +name = "evm-tracing-events" +version = '0.1.0' +authors = ['PureStake'] +edition = '2018' +homepage = 'https://moonbeam.network' +license = 'GPL-3.0-only' +repository = 'https://github.com/PureStake/moonbeam/' + +[dependencies] +parity-scale-codec = { workspace = true } +sp-runtime-interface = { workspace = true } + +ethereum = { workspace = true, features = ["with-codec"] } +ethereum-types = { workspace = true } + +environmental = { workspace = true } + +evm = { workspace = true, features = ["with-codec"] } +evm-runtime = { workspace = true } +evm-gasometer = { workspace = true } + +[features] +default = ["std"] + +evm-tracing = ["evm/tracing", "evm-runtime/tracing", "evm-gasometer/tracing"] +std = [ + "parity-scale-codec/std", + "ethereum/std", + "ethereum-types/std", + "environmental/std", + "evm/std", + "evm-runtime/std", + "evm-gasometer/std", +] + +runtime-1600 = [] \ No newline at end of file diff --git a/tracing/3001/shared/primitives/rpc/evm-tracing-events/src/evm.rs b/tracing/3001/shared/primitives/rpc/evm-tracing-events/src/evm.rs new file mode 100644 index 00000000..a5ac04ee --- /dev/null +++ b/tracing/3001/shared/primitives/rpc/evm-tracing-events/src/evm.rs @@ -0,0 +1,258 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +extern crate alloc; + +use alloc::vec::Vec; +use ethereum_types::{H160, H256, U256}; +use evm::ExitReason; +use parity_scale_codec::{Decode, Encode}; + +#[derive(Clone, Debug, Encode, Decode, PartialEq, Eq)] +pub struct Transfer { + /// Source address. + pub source: H160, + /// Target address. + pub target: H160, + /// Transfer value. + pub value: U256, +} + +impl From for Transfer { + fn from(i: evm_runtime::Transfer) -> Self { + Self { + source: i.source, + target: i.target, + value: i.value, + } + } +} + +#[derive(Clone, Copy, Eq, PartialEq, Debug, Encode, Decode)] +pub enum CreateScheme { + /// Legacy create scheme of `CREATE`. + Legacy { + /// Caller of the create. + caller: H160, + }, + /// Create scheme of `CREATE2`. + Create2 { + /// Caller of the create. + caller: H160, + /// Code hash. + code_hash: H256, + /// Salt. + salt: H256, + }, + /// Create at a fixed location. + Fixed(H160), +} + +impl From for CreateScheme { + fn from(i: evm_runtime::CreateScheme) -> Self { + match i { + evm_runtime::CreateScheme::Legacy { caller } => Self::Legacy { caller }, + evm_runtime::CreateScheme::Create2 { + caller, + code_hash, + salt, + } => Self::Create2 { + caller, + code_hash, + salt, + }, + evm_runtime::CreateScheme::Fixed(address) => Self::Fixed(address), + } + } +} + +#[derive(Debug, Clone, Encode, Decode, PartialEq, Eq)] +pub enum EvmEvent { + Call { + code_address: H160, + transfer: Option, + input: Vec, + target_gas: Option, + is_static: bool, + context: super::Context, + }, + Create { + caller: H160, + address: H160, + scheme: CreateScheme, + value: U256, + init_code: Vec, + target_gas: Option, + }, + Suicide { + address: H160, + target: H160, + balance: U256, + }, + Exit { + reason: ExitReason, + return_value: Vec, + }, + TransactCall { + caller: H160, + address: H160, + value: U256, + data: Vec, + gas_limit: u64, + }, + TransactCreate { + caller: H160, + value: U256, + init_code: Vec, + gas_limit: u64, + address: H160, + }, + TransactCreate2 { + caller: H160, + value: U256, + init_code: Vec, + salt: H256, + gas_limit: u64, + address: H160, + }, + PrecompileSubcall { + code_address: H160, + transfer: Option, + input: Vec, + target_gas: Option, + is_static: bool, + context: super::Context, + }, +} + +#[cfg(feature = "evm-tracing")] +impl<'a> From> for EvmEvent { + fn from(i: evm::tracing::Event<'a>) -> Self { + match i { + evm::tracing::Event::Call { + code_address, + transfer, + input, + target_gas, + is_static, + context, + } => Self::Call { + code_address, + transfer: if let Some(transfer) = transfer { + Some(transfer.clone().into()) + } else { + None + }, + input: input.to_vec(), + target_gas, + is_static, + context: context.clone().into(), + }, + evm::tracing::Event::Create { + caller, + address, + scheme, + value, + init_code, + target_gas, + } => Self::Create { + caller, + address, + scheme: scheme.into(), + value, + init_code: init_code.to_vec(), + target_gas, + }, + evm::tracing::Event::Suicide { + address, + target, + balance, + } => Self::Suicide { + address, + target, + balance, + }, + evm::tracing::Event::Exit { + reason, + return_value, + } => Self::Exit { + reason: reason.clone(), + return_value: return_value.to_vec(), + }, + evm::tracing::Event::TransactCall { + caller, + address, + value, + data, + gas_limit, + } => Self::TransactCall { + caller, + address, + value, + data: data.to_vec(), + gas_limit, + }, + evm::tracing::Event::TransactCreate { + caller, + value, + init_code, + gas_limit, + address, + } => Self::TransactCreate { + caller, + value, + init_code: init_code.to_vec(), + gas_limit, + address, + }, + evm::tracing::Event::TransactCreate2 { + caller, + value, + init_code, + salt, + gas_limit, + address, + } => Self::TransactCreate2 { + caller, + value, + init_code: init_code.to_vec(), + salt, + gas_limit, + address, + }, + #[cfg(feature = "runtime-1600")] + evm::tracing::Event::PrecompileSubcall { + code_address, + transfer, + input, + target_gas, + is_static, + context, + } => Self::PrecompileSubcall { + code_address, + transfer: if let Some(transfer) = transfer { + Some(transfer.clone().into()) + } else { + None + }, + input: input.to_vec(), + target_gas, + is_static, + context: context.clone().into(), + }, + } + } +} diff --git a/tracing/3001/shared/primitives/rpc/evm-tracing-events/src/gasometer.rs b/tracing/3001/shared/primitives/rpc/evm-tracing-events/src/gasometer.rs new file mode 100644 index 00000000..33a6f724 --- /dev/null +++ b/tracing/3001/shared/primitives/rpc/evm-tracing-events/src/gasometer.rs @@ -0,0 +1,119 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +use parity_scale_codec::{Decode, Encode}; + +#[derive(Debug, Default, Copy, Clone, Encode, Decode, PartialEq, Eq)] +pub struct Snapshot { + pub gas_limit: u64, + pub memory_gas: u64, + pub used_gas: u64, + pub refunded_gas: i64, +} + +impl Snapshot { + pub fn gas(&self) -> u64 { + self.gas_limit - self.used_gas - self.memory_gas + } +} + +impl From for Snapshot { + fn from(snapshot: evm_gasometer::Snapshot) -> Self { + Self { + gas_limit: snapshot.gas_limit, + memory_gas: snapshot.memory_gas, + used_gas: snapshot.used_gas, + refunded_gas: snapshot.refunded_gas, + } + } +} + +impl From> for Snapshot { + fn from(snapshot_opt: Option) -> Self { + if let Some(snapshot) = snapshot_opt { + snapshot.into() + } else { + Snapshot::default() + } + } +} + +#[derive(Debug, Copy, Clone, Encode, Decode, PartialEq, Eq)] +pub enum GasometerEvent { + RecordCost { + cost: u64, + snapshot: Snapshot, + }, + RecordRefund { + refund: i64, + snapshot: Snapshot, + }, + RecordStipend { + stipend: u64, + snapshot: Snapshot, + }, + RecordDynamicCost { + gas_cost: u64, + memory_gas: u64, + gas_refund: i64, + snapshot: Snapshot, + }, + RecordTransaction { + cost: u64, + snapshot: Snapshot, + }, +} + +#[cfg(feature = "evm-tracing")] +impl From for GasometerEvent { + fn from(i: evm_gasometer::tracing::Event) -> Self { + match i { + evm_gasometer::tracing::Event::RecordCost { cost, snapshot } => Self::RecordCost { + cost, + snapshot: snapshot.into(), + }, + evm_gasometer::tracing::Event::RecordRefund { refund, snapshot } => { + Self::RecordRefund { + refund, + snapshot: snapshot.into(), + } + } + evm_gasometer::tracing::Event::RecordStipend { stipend, snapshot } => { + Self::RecordStipend { + stipend, + snapshot: snapshot.into(), + } + } + evm_gasometer::tracing::Event::RecordDynamicCost { + gas_cost, + memory_gas, + gas_refund, + snapshot, + } => Self::RecordDynamicCost { + gas_cost, + memory_gas, + gas_refund, + snapshot: snapshot.into(), + }, + evm_gasometer::tracing::Event::RecordTransaction { cost, snapshot } => { + Self::RecordTransaction { + cost, + snapshot: snapshot.into(), + } + } + } + } +} diff --git a/tracing/3001/shared/primitives/rpc/evm-tracing-events/src/lib.rs b/tracing/3001/shared/primitives/rpc/evm-tracing-events/src/lib.rs new file mode 100644 index 00000000..68714acd --- /dev/null +++ b/tracing/3001/shared/primitives/rpc/evm-tracing-events/src/lib.rs @@ -0,0 +1,287 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! A Proxy in this context is an environmental trait implementor meant to be used for capturing +//! EVM trace events sent to a Host function from the Runtime. Works like: +//! - Runtime Api call `using` environmental. +//! - Runtime calls a Host function with some scale-encoded Evm event. +//! - Host function emits an additional event to this Listener. +//! - Proxy listens for the event and format the actual trace response. +//! +//! There are two proxy types: `Raw` and `CallList`. +//! - `Raw` - used for opcode-level traces. +//! - `CallList` - used for block tracing (stack of call stacks) and custom tracing outputs. +//! +//! The EVM event types may contain references and not implement Encode/Decode. +//! This module provide mirror types and conversion into them from the original events. + +#![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + +pub mod evm; +pub mod gasometer; +pub mod runtime; + +pub use self::evm::EvmEvent; +pub use gasometer::GasometerEvent; +pub use runtime::RuntimeEvent; + +use ::evm::Opcode; +use alloc::vec::Vec; +use ethereum_types::{H160, U256}; +use parity_scale_codec::{Decode, Encode}; +use sp_runtime_interface::pass_by::PassByCodec; + +environmental::environmental!(listener: dyn Listener + 'static); + +pub fn using R>(l: &mut (dyn Listener + 'static), f: F) -> R { + listener::using(l, f) +} + +/// Allow to configure which data of the Step event +/// we want to keep or discard. Not discarding the data requires cloning the data +/// in the runtime which have a significant cost for each step. +#[derive(Clone, Copy, Eq, PartialEq, Debug, Encode, Decode, Default, PassByCodec)] +pub struct StepEventFilter { + pub enable_stack: bool, + pub enable_memory: bool, +} + +#[derive(Clone, Eq, PartialEq, Debug, Encode, Decode)] +pub enum Event { + Evm(evm::EvmEvent), + Gasometer(gasometer::GasometerEvent), + Runtime(runtime::RuntimeEvent), + CallListNew(), +} + +impl Event { + /// Access the global reference and call it's `event` method, passing the `Event` itself as + /// argument. + /// + /// This only works if we are `using` a global reference to a `Listener` implementor. + pub fn emit(self) { + listener::with(|listener| listener.event(self)); + } +} + +/// Main trait to proxy emitted messages. +/// Used 2 times : +/// - Inside the runtime to proxy the events throught the host functions +/// - Inside the client to forward those events to the client listener. +pub trait Listener { + fn event(&mut self, event: Event); + + /// Allow the runtime to know which data should be discarded and not cloned. + /// WARNING: It is only called once when the runtime tracing is instanciated to avoid + /// performing many ext calls. + fn step_event_filter(&self) -> StepEventFilter; +} + +pub fn step_event_filter() -> Option { + let mut filter = None; + listener::with(|listener| filter = Some(listener.step_event_filter())); + filter +} + +#[derive(Clone, Debug, Encode, Decode, PartialEq, Eq)] +pub struct Context { + /// Execution address. + pub address: H160, + /// Caller of the EVM. + pub caller: H160, + /// Apparent value of the EVM. + pub apparent_value: U256, +} + +impl From for Context { + fn from(i: evm_runtime::Context) -> Self { + Self { + address: i.address, + caller: i.caller, + apparent_value: i.apparent_value, + } + } +} + +/// Converts an Opcode into its name, stored in a `Vec`. +pub fn opcodes_string(opcode: Opcode) -> Vec { + let tmp; + let out = match opcode { + Opcode(0) => "Stop", + Opcode(1) => "Add", + Opcode(2) => "Mul", + Opcode(3) => "Sub", + Opcode(4) => "Div", + Opcode(5) => "SDiv", + Opcode(6) => "Mod", + Opcode(7) => "SMod", + Opcode(8) => "AddMod", + Opcode(9) => "MulMod", + Opcode(10) => "Exp", + Opcode(11) => "SignExtend", + Opcode(16) => "Lt", + Opcode(17) => "Gt", + Opcode(18) => "Slt", + Opcode(19) => "Sgt", + Opcode(20) => "Eq", + Opcode(21) => "IsZero", + Opcode(22) => "And", + Opcode(23) => "Or", + Opcode(24) => "Xor", + Opcode(25) => "Not", + Opcode(26) => "Byte", + Opcode(27) => "Shl", + Opcode(28) => "Shr", + Opcode(29) => "Sar", + Opcode(32) => "Keccak256", + Opcode(48) => "Address", + Opcode(49) => "Balance", + Opcode(50) => "Origin", + Opcode(51) => "Caller", + Opcode(52) => "CallValue", + Opcode(53) => "CallDataLoad", + Opcode(54) => "CallDataSize", + Opcode(55) => "CallDataCopy", + Opcode(56) => "CodeSize", + Opcode(57) => "CodeCopy", + Opcode(58) => "GasPrice", + Opcode(59) => "ExtCodeSize", + Opcode(60) => "ExtCodeCopy", + Opcode(61) => "ReturnDataSize", + Opcode(62) => "ReturnDataCopy", + Opcode(63) => "ExtCodeHash", + Opcode(64) => "BlockHash", + Opcode(65) => "Coinbase", + Opcode(66) => "Timestamp", + Opcode(67) => "Number", + Opcode(68) => "Difficulty", + Opcode(69) => "GasLimit", + Opcode(70) => "ChainId", + Opcode(80) => "Pop", + Opcode(81) => "MLoad", + Opcode(82) => "MStore", + Opcode(83) => "MStore8", + Opcode(84) => "SLoad", + Opcode(85) => "SStore", + Opcode(86) => "Jump", + Opcode(87) => "JumpI", + Opcode(88) => "GetPc", + Opcode(89) => "MSize", + Opcode(90) => "Gas", + Opcode(91) => "JumpDest", + Opcode(92) => "TLoad", + Opcode(93) => "TStore", + Opcode(94) => "MCopy", + Opcode(96) => "Push1", + Opcode(97) => "Push2", + Opcode(98) => "Push3", + Opcode(99) => "Push4", + Opcode(100) => "Push5", + Opcode(101) => "Push6", + Opcode(102) => "Push7", + Opcode(103) => "Push8", + Opcode(104) => "Push9", + Opcode(105) => "Push10", + Opcode(106) => "Push11", + Opcode(107) => "Push12", + Opcode(108) => "Push13", + Opcode(109) => "Push14", + Opcode(110) => "Push15", + Opcode(111) => "Push16", + Opcode(112) => "Push17", + Opcode(113) => "Push18", + Opcode(114) => "Push19", + Opcode(115) => "Push20", + Opcode(116) => "Push21", + Opcode(117) => "Push22", + Opcode(118) => "Push23", + Opcode(119) => "Push24", + Opcode(120) => "Push25", + Opcode(121) => "Push26", + Opcode(122) => "Push27", + Opcode(123) => "Push28", + Opcode(124) => "Push29", + Opcode(125) => "Push30", + Opcode(126) => "Push31", + Opcode(127) => "Push32", + Opcode(128) => "Dup1", + Opcode(129) => "Dup2", + Opcode(130) => "Dup3", + Opcode(131) => "Dup4", + Opcode(132) => "Dup5", + Opcode(133) => "Dup6", + Opcode(134) => "Dup7", + Opcode(135) => "Dup8", + Opcode(136) => "Dup9", + Opcode(137) => "Dup10", + Opcode(138) => "Dup11", + Opcode(139) => "Dup12", + Opcode(140) => "Dup13", + Opcode(141) => "Dup14", + Opcode(142) => "Dup15", + Opcode(143) => "Dup16", + Opcode(144) => "Swap1", + Opcode(145) => "Swap2", + Opcode(146) => "Swap3", + Opcode(147) => "Swap4", + Opcode(148) => "Swap5", + Opcode(149) => "Swap6", + Opcode(150) => "Swap7", + Opcode(151) => "Swap8", + Opcode(152) => "Swap9", + Opcode(153) => "Swap10", + Opcode(154) => "Swap11", + Opcode(155) => "Swap12", + Opcode(156) => "Swap13", + Opcode(157) => "Swap14", + Opcode(158) => "Swap15", + Opcode(159) => "Swap16", + Opcode(160) => "Log0", + Opcode(161) => "Log1", + Opcode(162) => "Log2", + Opcode(163) => "Log3", + Opcode(164) => "Log4", + Opcode(176) => "JumpTo", + Opcode(177) => "JumpIf", + Opcode(178) => "JumpSub", + Opcode(180) => "JumpSubv", + Opcode(181) => "BeginSub", + Opcode(182) => "BeginData", + Opcode(184) => "ReturnSub", + Opcode(185) => "PutLocal", + Opcode(186) => "GetLocal", + Opcode(225) => "SLoadBytes", + Opcode(226) => "SStoreBytes", + Opcode(227) => "SSize", + Opcode(240) => "Create", + Opcode(241) => "Call", + Opcode(242) => "CallCode", + Opcode(243) => "Return", + Opcode(244) => "DelegateCall", + Opcode(245) => "Create2", + Opcode(250) => "StaticCall", + Opcode(252) => "TxExecGas", + Opcode(253) => "Revert", + Opcode(254) => "Invalid", + Opcode(255) => "SelfDestruct", + Opcode(n) => { + tmp = alloc::format!("Unknown({})", n); + &tmp + } + }; + out.as_bytes().to_vec() +} diff --git a/tracing/3001/shared/primitives/rpc/evm-tracing-events/src/runtime.rs b/tracing/3001/shared/primitives/rpc/evm-tracing-events/src/runtime.rs new file mode 100644 index 00000000..d9ba718d --- /dev/null +++ b/tracing/3001/shared/primitives/rpc/evm-tracing-events/src/runtime.rs @@ -0,0 +1,156 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +extern crate alloc; + +use super::{opcodes_string, Context, StepEventFilter}; +use alloc::vec::Vec; +use ethereum_types::{H160, H256, U256}; +pub use evm::{ExitError, ExitReason, ExitSucceed, Opcode}; +use parity_scale_codec::{Decode, Encode}; + +#[derive(Clone, Debug, Encode, Decode, PartialEq, Eq)] +pub struct Stack { + pub data: Vec, + pub limit: u64, +} + +impl From<&evm::Stack> for Stack { + fn from(i: &evm::Stack) -> Self { + Self { + data: i.data().clone(), + limit: i.limit() as u64, + } + } +} + +#[derive(Clone, Debug, Encode, Decode, PartialEq, Eq)] +pub struct Memory { + pub data: Vec, + pub effective_len: U256, + pub limit: u64, +} + +impl From<&evm::Memory> for Memory { + fn from(i: &evm::Memory) -> Self { + Self { + data: i.data().clone(), + effective_len: i.effective_len(), + limit: i.limit() as u64, + } + } +} + +#[derive(Clone, Copy, Debug, Eq, PartialEq, Encode, Decode)] +pub enum Capture { + /// The machine has exited. It cannot be executed again. + Exit(E), + /// The machine has trapped. It is waiting for external information, and can + /// be executed again. + Trap(T), +} + +pub type Trap = Vec; // Should hold the marshalled Opcode. + +#[derive(Debug, Clone, Encode, Decode, PartialEq, Eq)] +pub enum RuntimeEvent { + Step { + context: Context, + // This needs to be marshalled in the runtime no matter what. + opcode: Vec, + // We can use ExitReason with `with-codec` feature, + position: Result, + stack: Option, + memory: Option, + }, + StepResult { + result: Result<(), Capture>, + return_value: Vec, + }, + SLoad { + address: H160, + index: H256, + value: H256, + }, + SStore { + address: H160, + index: H256, + value: H256, + }, +} + +#[cfg(feature = "evm-tracing")] +impl RuntimeEvent { + pub fn from_evm_event<'a>(i: evm_runtime::tracing::Event<'a>, filter: StepEventFilter) -> Self { + match i { + evm_runtime::tracing::Event::Step { + context, + opcode, + position, + stack, + memory, + } => Self::Step { + context: context.clone().into(), + opcode: opcodes_string(opcode), + position: match position { + Ok(position) => Ok(*position as u64), + Err(e) => Err(e.clone()), + }, + stack: if filter.enable_stack { + Some(stack.into()) + } else { + None + }, + memory: if filter.enable_memory { + Some(memory.into()) + } else { + None + }, + }, + evm_runtime::tracing::Event::StepResult { + result, + return_value, + } => Self::StepResult { + result: match result { + Ok(_) => Ok(()), + Err(capture) => match capture { + evm::Capture::Exit(e) => Err(Capture::Exit(e.clone())), + evm::Capture::Trap(t) => Err(Capture::Trap(opcodes_string(*t))), + }, + }, + return_value: return_value.to_vec(), + }, + evm_runtime::tracing::Event::SLoad { + address, + index, + value, + } => Self::SLoad { + address, + index, + value, + }, + evm_runtime::tracing::Event::SStore { + address, + index, + value, + } => Self::SStore { + address, + index, + value, + }, + } + } +} diff --git a/tracing/3001/shared/runtime/evm_tracer/Cargo.toml b/tracing/3001/shared/runtime/evm_tracer/Cargo.toml new file mode 100644 index 00000000..1b724f04 --- /dev/null +++ b/tracing/3001/shared/runtime/evm_tracer/Cargo.toml @@ -0,0 +1,51 @@ +[package] +name = "moonbeam-evm-tracer" +authors = [ "PureStake" ] +edition = "2018" +homepage = "https://moonbeam.network" +license = "GPL-3.0-only" +repository = "https://github.com/PureStake/moonbeam/" +version = "0.1.0" + +[dependencies] +# In those shared code the branch is irrelevant as long as revers to a rust2018 workspace. +# Each version of the runtime will patch the Subtrate and Frontier dependencies to the correct +# git repo and branch. Since cargo don't want to patch with the same repo url, we use a dummy fork +# not used in the runtimes. + +# Moonbeam +evm-tracing-events = { workspace = true, features = [ "evm-tracing" ] } +moonbeam-primitives-ext = { workspace = true } + +# Substrate +parity-scale-codec = { workspace = true } +sp-core = { workspace = true } +sp-io = { workspace = true } +sp-runtime = { workspace = true } +sp-std = { workspace = true } + +# Frontier +ethereum-types = { workspace = true } +evm = { workspace = true, features = [ "with-codec" ] } +evm-gasometer = { workspace = true } +evm-runtime = { workspace = true } +fp-evm = { workspace = true } +pallet-evm = { workspace = true } + +[features] +default = [ "std" ] +std = [ + "parity-scale-codec/std", + "ethereum-types/std", + "evm-gasometer/std", + "evm-runtime/std", + "evm-tracing-events/std", + "evm/std", + "evm/with-serde", + "fp-evm/std", + "moonbeam-primitives-ext/std", + "pallet-evm/std", + "sp-core/std", + "sp-runtime/std", + "sp-std/std", +] diff --git a/tracing/3001/shared/runtime/evm_tracer/src/lib.rs b/tracing/3001/shared/runtime/evm_tracer/src/lib.rs new file mode 100644 index 00000000..5d998775 --- /dev/null +++ b/tracing/3001/shared/runtime/evm_tracer/src/lib.rs @@ -0,0 +1,117 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam 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. + +// Moonbeam 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 Moonbeam. If not, see . + +//! Substrate EVM tracing. +//! +//! The purpose of this crate is enable tracing the EVM opcode execution and will be used by +//! both Dapp developers - to get a granular view on their transactions - and indexers to access +//! the EVM callstack (internal transactions). +//! +//! Proxies EVM messages to the host functions. + +#![cfg_attr(not(feature = "std"), no_std)] + +pub mod tracer { + use evm_tracing_events::{EvmEvent, GasometerEvent, RuntimeEvent, StepEventFilter}; + use parity_scale_codec::Encode; + + use evm::tracing::{using as evm_using, EventListener as EvmListener}; + use evm_gasometer::tracing::{using as gasometer_using, EventListener as GasometerListener}; + use evm_runtime::tracing::{using as runtime_using, EventListener as RuntimeListener}; + use sp_std::{cell::RefCell, rc::Rc}; + + struct ListenerProxy(pub Rc>); + impl GasometerListener for ListenerProxy { + fn event(&mut self, event: evm_gasometer::tracing::Event) { + self.0.borrow_mut().event(event); + } + } + + impl RuntimeListener for ListenerProxy { + fn event(&mut self, event: evm_runtime::tracing::Event) { + self.0.borrow_mut().event(event); + } + } + + impl EvmListener for ListenerProxy { + fn event(&mut self, event: evm::tracing::Event) { + self.0.borrow_mut().event(event); + } + } + + pub struct EvmTracer { + step_event_filter: StepEventFilter, + } + + impl EvmTracer { + pub fn new() -> Self { + Self { + step_event_filter: moonbeam_primitives_ext::moonbeam_ext::step_event_filter(), + } + } + + /// Setup event listeners and execute provided closure. + /// + /// Consume the tracer and return it alongside the return value of + /// the closure. + pub fn trace R>(self, f: F) { + let wrapped = Rc::new(RefCell::new(self)); + + let mut gasometer = ListenerProxy(Rc::clone(&wrapped)); + let mut runtime = ListenerProxy(Rc::clone(&wrapped)); + let mut evm = ListenerProxy(Rc::clone(&wrapped)); + + // Each line wraps the previous `f` into a `using` call. + // Listening to new events results in adding one new line. + // Order is irrelevant when registering listeners. + let f = || runtime_using(&mut runtime, f); + let f = || gasometer_using(&mut gasometer, f); + let f = || evm_using(&mut evm, f); + f(); + } + + pub fn emit_new() { + moonbeam_primitives_ext::moonbeam_ext::call_list_new(); + } + } + + impl EvmListener for EvmTracer { + /// Proxies `evm::tracing::Event` to the host. + fn event(&mut self, event: evm::tracing::Event) { + let event: EvmEvent = event.into(); + let message = event.encode(); + moonbeam_primitives_ext::moonbeam_ext::evm_event(message); + } + } + + impl GasometerListener for EvmTracer { + /// Proxies `evm_gasometer::tracing::Event` to the host. + fn event(&mut self, event: evm_gasometer::tracing::Event) { + let event: GasometerEvent = event.into(); + let message = event.encode(); + moonbeam_primitives_ext::moonbeam_ext::gasometer_event(message); + } + } + + impl RuntimeListener for EvmTracer { + /// Proxies `evm_runtime::tracing::Event` to the host. + fn event(&mut self, event: evm_runtime::tracing::Event) { + let event = RuntimeEvent::from_evm_event(event, self.step_event_filter); + let message = event.encode(); + moonbeam_primitives_ext::moonbeam_ext::runtime_event(message); + } + } +} From 816379b177525bf219e6207370f95134af6439ac Mon Sep 17 00:00:00 2001 From: Andrea Giacobino Date: Tue, 25 Jun 2024 15:26:40 -0700 Subject: [PATCH 2/2] Add tracing WASM for runtime-3001 --- ...nbase-runtime-3001-substitute-tracing.json | 1 + ...nbeam-runtime-3001-substitute-tracing.json | 1 + ...river-runtime-3001-substitute-tracing.json | 1 + ...nbase-runtime-3001-substitute-tracing.wasm | Bin 0 -> 2156562 bytes ...nbeam-runtime-3001-substitute-tracing.wasm | Bin 0 -> 2128924 bytes ...river-runtime-3001-substitute-tracing.wasm | Bin 0 -> 2123089 bytes 6 files changed, 3 insertions(+) create mode 100644 srtool-digest/moonbase-runtime-3001-substitute-tracing.json create mode 100644 srtool-digest/moonbeam-runtime-3001-substitute-tracing.json create mode 100644 srtool-digest/moonriver-runtime-3001-substitute-tracing.json create mode 100644 wasm/moonbase-runtime-3001-substitute-tracing.wasm create mode 100644 wasm/moonbeam-runtime-3001-substitute-tracing.wasm create mode 100644 wasm/moonriver-runtime-3001-substitute-tracing.wasm diff --git a/srtool-digest/moonbase-runtime-3001-substitute-tracing.json b/srtool-digest/moonbase-runtime-3001-substitute-tracing.json new file mode 100644 index 00000000..8162ab1d --- /dev/null +++ b/srtool-digest/moonbase-runtime-3001-substitute-tracing.json @@ -0,0 +1 @@ +{"gen":"srtool v0.15.0","src":"zip","version":"0.8.4","commit":"","tag":"","branch":"","rustc":"rustc 1.77.0 (aedd173a2 2024-03-17)","pkg":"moonbase-runtime","tmsp":"2024-06-25T22:12:27Z","size":"2156562","prop":"0x3c0c2d784dc92646118422fa7ccc1e36ba082fc74f49789e1552d7060fc000bb","authorize_upgrade_prop":"0x8ec42da84fd11209297de91a22ccd0ed23ce298b93042a3859564cffbf0b8dec","ipfs":"QmU67ckcv6cDnhb5uzQNXJwVee5m1LpCqRqYVT4sMYueS8","sha256":"0x4042939d730f7cc32ccd3de951c7e44916fb33b7c23ccc73411fd8336c74b2d0","wasm":"runtime/moonbase/target/srtool/release/wbuild/moonbase-runtime/moonbase_runtime.compact.compressed.wasm","info":{"generator":{"name":"srtool","version":"0.15.0"},"src":"zip","version":"0.8.4","git":{"commit":"","tag":"","branch":""},"rustc":"rustc 1.77.0 (aedd173a2 2024-03-17)","pkg":"moonbase-runtime","profile":"release"},"context":{"package":"moonbase-runtime","runtime_dir":"runtime/moonbase","docker":{"image":"paritytech/srtool","tag":"1.77.0"},"profile":"release"},"runtimes":{"compact":{"tmsp":"2024-06-25T22:11:59Z","size":"10598506","prop":"0x2b97f0c8d6143a9c646d6734175511c32f1fd91d616671cbd803bdc7f7deecd4","authorize_upgrade_prop":"0xea28422ed2da0aa319a1e7e0758ca236f55c00ed8a863af02d0b18349de9a098","blake2_256":"0xe480fa5c6369c16f3520b59087a74b89cd9c8f18c4c0457b08800f501729a364","ipfs":"Qmf19tnxZdhLGVW43shL9Q6VoKxJkVpeJUThr9hEg3Jobm","sha256":"0x047cfcf894ccad66b6fcd4c713572eccfd11e09a48b416b89031e869fa546926","wasm":"runtime/moonbase/target/srtool/release/wbuild/moonbase-runtime/moonbase_runtime.compact.wasm","subwasm":{"size":10598506,"compression":{"size_compressed":10598506,"size_decompressed":10598506,"compressed":false},"reserved_meta":[109,101,116,97],"reserved_meta_valid":true,"metadata_version":14,"core_version":{"specName":"moonbase","implName":"moonbase","authoringVersion":4,"specVersion":3001,"implVersion":0,"apis":[["0xd2bc9897eed08f15",3],["0xd0399cd053adda2b",1],["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0xf78b278be53f454c",2],["0xab3c0572291feb8b",1],["0xfbc577b9d747efd6",1],["0xbc9d89904f5b923f",1],["0xbd78255d4feeea1f",6],["0xa33d43f58731ad84",2],["0x582211f65bb14b89",5],["0xe65b00e46cedd0aa",2],["0x37c8bb1350a9a2a8",4],["0x2aa62120049dd2d2",1],["0xea93e3f16f3d6962",2],["0xba8173bf23b2e6f8",1]],"transactionVersion":2,"stateVersion":0},"proposal_hash":"0x2b97f0c8d6143a9c646d6734175511c32f1fd91d616671cbd803bdc7f7deecd4","parachain_authorize_upgrade_hash":"0xea28422ed2da0aa319a1e7e0758ca236f55c00ed8a863af02d0b18349de9a098","ipfs_hash":"Qmf19tnxZdhLGVW43shL9Q6VoKxJkVpeJUThr9hEg3Jobm","blake2_256":"0xe480fa5c6369c16f3520b59087a74b89cd9c8f18c4c0457b08800f501729a364"}},"compressed":{"tmsp":"2024-06-25T22:08:21Z","size":"2156562","prop":"0x3c0c2d784dc92646118422fa7ccc1e36ba082fc74f49789e1552d7060fc000bb","authorize_upgrade_prop":"0x8ec42da84fd11209297de91a22ccd0ed23ce298b93042a3859564cffbf0b8dec","blake2_256":"0xf9a24221502d20be6591149c009da96438d8b5b4409051a32a9d4aeebd86f5a3","ipfs":"QmU67ckcv6cDnhb5uzQNXJwVee5m1LpCqRqYVT4sMYueS8","sha256":"0x4042939d730f7cc32ccd3de951c7e44916fb33b7c23ccc73411fd8336c74b2d0","wasm":"runtime/moonbase/target/srtool/release/wbuild/moonbase-runtime/moonbase_runtime.compact.compressed.wasm","subwasm":{"size":2156562,"compression":{"size_compressed":2156562,"size_decompressed":10598506,"compressed":true},"reserved_meta":[109,101,116,97],"reserved_meta_valid":true,"metadata_version":14,"core_version":{"specName":"moonbase","implName":"moonbase","authoringVersion":4,"specVersion":3001,"implVersion":0,"apis":[["0xd2bc9897eed08f15",3],["0xd0399cd053adda2b",1],["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0xf78b278be53f454c",2],["0xab3c0572291feb8b",1],["0xfbc577b9d747efd6",1],["0xbc9d89904f5b923f",1],["0xbd78255d4feeea1f",6],["0xa33d43f58731ad84",2],["0x582211f65bb14b89",5],["0xe65b00e46cedd0aa",2],["0x37c8bb1350a9a2a8",4],["0x2aa62120049dd2d2",1],["0xea93e3f16f3d6962",2],["0xba8173bf23b2e6f8",1]],"transactionVersion":2,"stateVersion":0},"proposal_hash":"0x3c0c2d784dc92646118422fa7ccc1e36ba082fc74f49789e1552d7060fc000bb","parachain_authorize_upgrade_hash":"0x8ec42da84fd11209297de91a22ccd0ed23ce298b93042a3859564cffbf0b8dec","ipfs_hash":"QmU67ckcv6cDnhb5uzQNXJwVee5m1LpCqRqYVT4sMYueS8","blake2_256":"0xf9a24221502d20be6591149c009da96438d8b5b4409051a32a9d4aeebd86f5a3"}}}} diff --git a/srtool-digest/moonbeam-runtime-3001-substitute-tracing.json b/srtool-digest/moonbeam-runtime-3001-substitute-tracing.json new file mode 100644 index 00000000..e9e38048 --- /dev/null +++ b/srtool-digest/moonbeam-runtime-3001-substitute-tracing.json @@ -0,0 +1 @@ +{"gen":"srtool v0.15.0","src":"zip","version":"0.8.4","commit":"","tag":"","branch":"","rustc":"rustc 1.77.0 (aedd173a2 2024-03-17)","pkg":"moonbeam-runtime","tmsp":"2024-06-25T22:26:20Z","size":"2128924","prop":"0xcc1fe566c5b027cfb8f813f0215f264bbf424be68818193345bfeda66b0a245c","authorize_upgrade_prop":"0xfffc71934a75e626bb1c41d1f202beb073136bf10d32ad4b4e60542cd92efecd","ipfs":"QmTXyNdHy6MDJV77S257vmuWQP9b9xPqsgCvH8LoDKKyab","sha256":"0x9eb8a54ba097b873fa2a363eab30f64063094614d6878a810062ee07f7ddefd0","wasm":"runtime/moonbeam/target/srtool/release/wbuild/moonbeam-runtime/moonbeam_runtime.compact.compressed.wasm","info":{"generator":{"name":"srtool","version":"0.15.0"},"src":"zip","version":"0.8.4","git":{"commit":"","tag":"","branch":""},"rustc":"rustc 1.77.0 (aedd173a2 2024-03-17)","pkg":"moonbeam-runtime","profile":"release"},"context":{"package":"moonbeam-runtime","runtime_dir":"runtime/moonbeam","docker":{"image":"paritytech/srtool","tag":"1.77.0"},"profile":"release"},"runtimes":{"compact":{"tmsp":"2024-06-25T22:25:53Z","size":"10362511","prop":"0x9db0b1c1bfc8a9ac625319bb77d395721cd806fb7e35378ea2c06738a09e9495","authorize_upgrade_prop":"0x12ed2f755d7b3702349dcf1d3d87a5ff67310b96a8d63da83c8eea2ed3796663","blake2_256":"0xf32d783062849be6a54cbd89c4bcde493a0093060d1a4eabc14cddeb28342d23","ipfs":"QmSoxuzmfDZBfDhJkqSUzSYYZGzFogVCEoncc9A4CZQBDb","sha256":"0xb01fa759ea789c8e49ab64214f9c17530a05d705021948c0f12bda590676dab9","wasm":"runtime/moonbeam/target/srtool/release/wbuild/moonbeam-runtime/moonbeam_runtime.compact.wasm","subwasm":{"size":10362511,"compression":{"size_compressed":10362511,"size_decompressed":10362511,"compressed":false},"reserved_meta":[109,101,116,97],"reserved_meta_valid":true,"metadata_version":14,"core_version":{"specName":"moonbeam","implName":"moonbeam","authoringVersion":3,"specVersion":3001,"implVersion":0,"apis":[["0xd2bc9897eed08f15",3],["0xd0399cd053adda2b",1],["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0xf78b278be53f454c",2],["0xab3c0572291feb8b",1],["0xfbc577b9d747efd6",1],["0xbc9d89904f5b923f",1],["0xbd78255d4feeea1f",6],["0xa33d43f58731ad84",2],["0x582211f65bb14b89",5],["0xe65b00e46cedd0aa",2],["0x37c8bb1350a9a2a8",4],["0x2aa62120049dd2d2",1],["0xea93e3f16f3d6962",2],["0xba8173bf23b2e6f8",1]],"transactionVersion":2,"stateVersion":0},"proposal_hash":"0x9db0b1c1bfc8a9ac625319bb77d395721cd806fb7e35378ea2c06738a09e9495","parachain_authorize_upgrade_hash":"0x12ed2f755d7b3702349dcf1d3d87a5ff67310b96a8d63da83c8eea2ed3796663","ipfs_hash":"QmSoxuzmfDZBfDhJkqSUzSYYZGzFogVCEoncc9A4CZQBDb","blake2_256":"0xf32d783062849be6a54cbd89c4bcde493a0093060d1a4eabc14cddeb28342d23"}},"compressed":{"tmsp":"2024-06-25T22:22:17Z","size":"2128924","prop":"0xcc1fe566c5b027cfb8f813f0215f264bbf424be68818193345bfeda66b0a245c","authorize_upgrade_prop":"0xfffc71934a75e626bb1c41d1f202beb073136bf10d32ad4b4e60542cd92efecd","blake2_256":"0x066738ff5bb60d6632672739a0bc5139d49fd7f2e760efc2e7216883ee08f1fc","ipfs":"QmTXyNdHy6MDJV77S257vmuWQP9b9xPqsgCvH8LoDKKyab","sha256":"0x9eb8a54ba097b873fa2a363eab30f64063094614d6878a810062ee07f7ddefd0","wasm":"runtime/moonbeam/target/srtool/release/wbuild/moonbeam-runtime/moonbeam_runtime.compact.compressed.wasm","subwasm":{"size":2128924,"compression":{"size_compressed":2128924,"size_decompressed":10362511,"compressed":true},"reserved_meta":[109,101,116,97],"reserved_meta_valid":true,"metadata_version":14,"core_version":{"specName":"moonbeam","implName":"moonbeam","authoringVersion":3,"specVersion":3001,"implVersion":0,"apis":[["0xd2bc9897eed08f15",3],["0xd0399cd053adda2b",1],["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0xf78b278be53f454c",2],["0xab3c0572291feb8b",1],["0xfbc577b9d747efd6",1],["0xbc9d89904f5b923f",1],["0xbd78255d4feeea1f",6],["0xa33d43f58731ad84",2],["0x582211f65bb14b89",5],["0xe65b00e46cedd0aa",2],["0x37c8bb1350a9a2a8",4],["0x2aa62120049dd2d2",1],["0xea93e3f16f3d6962",2],["0xba8173bf23b2e6f8",1]],"transactionVersion":2,"stateVersion":0},"proposal_hash":"0xcc1fe566c5b027cfb8f813f0215f264bbf424be68818193345bfeda66b0a245c","parachain_authorize_upgrade_hash":"0xfffc71934a75e626bb1c41d1f202beb073136bf10d32ad4b4e60542cd92efecd","ipfs_hash":"QmTXyNdHy6MDJV77S257vmuWQP9b9xPqsgCvH8LoDKKyab","blake2_256":"0x066738ff5bb60d6632672739a0bc5139d49fd7f2e760efc2e7216883ee08f1fc"}}}} diff --git a/srtool-digest/moonriver-runtime-3001-substitute-tracing.json b/srtool-digest/moonriver-runtime-3001-substitute-tracing.json new file mode 100644 index 00000000..f5ae016e --- /dev/null +++ b/srtool-digest/moonriver-runtime-3001-substitute-tracing.json @@ -0,0 +1 @@ +{"gen":"srtool v0.15.0","src":"zip","version":"0.8.4","commit":"","tag":"","branch":"","rustc":"rustc 1.77.0 (aedd173a2 2024-03-17)","pkg":"moonriver-runtime","tmsp":"2024-06-25T22:19:23Z","size":"2123089","prop":"0xaab5efdc71ed70ae7de6bdfdceb98084842a9fc634ea63f4e50d7d90b76bd691","authorize_upgrade_prop":"0x6c9aa1531b6c4142515213e1b138e729c2e1622e33fdc16242be369127fd738c","ipfs":"QmYRtfsDwG6bw7eziVDqqTVY5ZBfi5GCrZ3FksePDn5RAK","sha256":"0x78639bfde8cdec51b9f17e276a245d49ebb4df7e53dc97432b0af634c4e7d5f8","wasm":"runtime/moonriver/target/srtool/release/wbuild/moonriver-runtime/moonriver_runtime.compact.compressed.wasm","info":{"generator":{"name":"srtool","version":"0.15.0"},"src":"zip","version":"0.8.4","git":{"commit":"","tag":"","branch":""},"rustc":"rustc 1.77.0 (aedd173a2 2024-03-17)","pkg":"moonriver-runtime","profile":"release"},"context":{"package":"moonriver-runtime","runtime_dir":"runtime/moonriver","docker":{"image":"paritytech/srtool","tag":"1.77.0"},"profile":"release"},"runtimes":{"compact":{"tmsp":"2024-06-25T22:18:56Z","size":"10379521","prop":"0x80061b39b66224ee068f4a28da3f0e1aee7168e3200ec78c0169c39a5839e723","authorize_upgrade_prop":"0xb19ba7a4d1d52fa8240dee64c3e978a27141f60993f53fce138a40b7f8696792","blake2_256":"0xae70d6ad8701fdec079b722c965323f154cf02f74d23bd0994ed96cb204dfa25","ipfs":"QmdvZr98e9H88WRxu5D9Eqc7XtMBMmmxqrniiUKSAaTimn","sha256":"0x2520edba6b1e4e12cb9f14f578f8eb3c64f2e59705959671a2f46f4cd8c86b9d","wasm":"runtime/moonriver/target/srtool/release/wbuild/moonriver-runtime/moonriver_runtime.compact.wasm","subwasm":{"size":10379521,"compression":{"size_compressed":10379521,"size_decompressed":10379521,"compressed":false},"reserved_meta":[109,101,116,97],"reserved_meta_valid":true,"metadata_version":14,"core_version":{"specName":"moonriver","implName":"moonriver","authoringVersion":3,"specVersion":3001,"implVersion":0,"apis":[["0xd2bc9897eed08f15",3],["0xd0399cd053adda2b",1],["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0xf78b278be53f454c",2],["0xab3c0572291feb8b",1],["0xfbc577b9d747efd6",1],["0xbc9d89904f5b923f",1],["0xbd78255d4feeea1f",6],["0xa33d43f58731ad84",2],["0x582211f65bb14b89",5],["0xe65b00e46cedd0aa",2],["0x37c8bb1350a9a2a8",4],["0x2aa62120049dd2d2",1],["0xea93e3f16f3d6962",2],["0xba8173bf23b2e6f8",1]],"transactionVersion":2,"stateVersion":0},"proposal_hash":"0x80061b39b66224ee068f4a28da3f0e1aee7168e3200ec78c0169c39a5839e723","parachain_authorize_upgrade_hash":"0xb19ba7a4d1d52fa8240dee64c3e978a27141f60993f53fce138a40b7f8696792","ipfs_hash":"QmdvZr98e9H88WRxu5D9Eqc7XtMBMmmxqrniiUKSAaTimn","blake2_256":"0xae70d6ad8701fdec079b722c965323f154cf02f74d23bd0994ed96cb204dfa25"}},"compressed":{"tmsp":"2024-06-25T22:15:19Z","size":"2123089","prop":"0xaab5efdc71ed70ae7de6bdfdceb98084842a9fc634ea63f4e50d7d90b76bd691","authorize_upgrade_prop":"0x6c9aa1531b6c4142515213e1b138e729c2e1622e33fdc16242be369127fd738c","blake2_256":"0x01fab78d1bb79ee3900ae62b40627190f76da4d686f829956b14ed8a3eef1f7a","ipfs":"QmYRtfsDwG6bw7eziVDqqTVY5ZBfi5GCrZ3FksePDn5RAK","sha256":"0x78639bfde8cdec51b9f17e276a245d49ebb4df7e53dc97432b0af634c4e7d5f8","wasm":"runtime/moonriver/target/srtool/release/wbuild/moonriver-runtime/moonriver_runtime.compact.compressed.wasm","subwasm":{"size":2123089,"compression":{"size_compressed":2123089,"size_decompressed":10379521,"compressed":true},"reserved_meta":[109,101,116,97],"reserved_meta_valid":true,"metadata_version":14,"core_version":{"specName":"moonriver","implName":"moonriver","authoringVersion":3,"specVersion":3001,"implVersion":0,"apis":[["0xd2bc9897eed08f15",3],["0xd0399cd053adda2b",1],["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0xf78b278be53f454c",2],["0xab3c0572291feb8b",1],["0xfbc577b9d747efd6",1],["0xbc9d89904f5b923f",1],["0xbd78255d4feeea1f",6],["0xa33d43f58731ad84",2],["0x582211f65bb14b89",5],["0xe65b00e46cedd0aa",2],["0x37c8bb1350a9a2a8",4],["0x2aa62120049dd2d2",1],["0xea93e3f16f3d6962",2],["0xba8173bf23b2e6f8",1]],"transactionVersion":2,"stateVersion":0},"proposal_hash":"0xaab5efdc71ed70ae7de6bdfdceb98084842a9fc634ea63f4e50d7d90b76bd691","parachain_authorize_upgrade_hash":"0x6c9aa1531b6c4142515213e1b138e729c2e1622e33fdc16242be369127fd738c","ipfs_hash":"QmYRtfsDwG6bw7eziVDqqTVY5ZBfi5GCrZ3FksePDn5RAK","blake2_256":"0x01fab78d1bb79ee3900ae62b40627190f76da4d686f829956b14ed8a3eef1f7a"}}}} diff --git a/wasm/moonbase-runtime-3001-substitute-tracing.wasm b/wasm/moonbase-runtime-3001-substitute-tracing.wasm new file mode 100644 index 0000000000000000000000000000000000000000..2bb2ebe83dd05f146b268a4aaa7b09933ebacd45 GIT binary patch literal 2156562 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%0D`?qck(iIth+Q@>@%C)@XrR^BPCzcyM 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 o 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 WwfNs*+^4iSvK1 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

  • p4aKwW=hxkZpDn)Dlm%^)F! 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 z∈F7B8b~va{xN9Fxe_YDDalPG^x{aY8b!SNN6=nD;*=wo#{$QF=hwZ&>P`2h~`7A_DRF2_On;ZSWSZPZxhx&b6|}f zwBfYSjcm^ef(s{O~Ykk zF@~ZwQr&RT%H5hS*hlk`#PY$r|NMCy%(ba9ARhh#uPoDxFp6{#mMCv<#9PDigAuo# z^vH-yOGpE6D-LNyMh>+PXO%7kuS}0}Y0-u_bTl6z^<`=7tbbDS>uSRb6qe+Mx{LnF z(^6-z{kT7lv48nWum5m+yjS{W_+FV z+2PyaIH%iEi@JHG{!v=a8tZE0vvPFrWa@r*OzPJuU)$6+U^zX_jjvq>*#bBoMD=nh zL#@4S0!wL>F=V-Ml35ACl1KcVu}$_UdHbqP@%S8l!BfsC$!$b`V7>6|2)Ef+t zf#F-v`^Vt{TPPY8(!i-Vku?QPg%UI#-;OQtdAMkMPHd5y0qy37uJ?wTGC_)FBzF|t zTy+~$=#LCEc}M16kMLvt8LcV+FT7=sRL74QcjSRYtfprk&p(TzKdA*v~2(;jGAj96df=l#Zj{kKYV9mz_#BwVP3xN44%F-YoF(I zh(iubxYSKcY^B^tNCQva#c*|mZ$oNHcbZbp-p|?>q#+ZB_ZTjNZs%+qV~vyEcj=UG zx;;V!$n5?Q456HRJRFz7Tb$&u#HDU*zO^DF5DuQW0bS#HAxIfr75lxAtDZ@HI)JYi z?n&l;{K&u)?q>H{PaU*QjC%ac013G1@VgNNL=<9pILi<;o(T?RnW9(D>Q)@xjqfo#FptEd4T?8%BZ)+XzE+cS%j((VZAg;bh%Wwp*a%j|x= z^w0n&HIBo_R6rH&U>D%T`RsFgBZe6R_MK>uFcx8TmR{p;R*@HfLc{T-9Th4zGRdp# z=;D{3M^=1!J;uTEN+g;s>+`~CY_m(^M0CVr=ZR}-H5URwB#z^}dMC-dHM^q}7UM|a znx`!IpJ=%&lpUhq_^JXENgf?wPb&Z57P0Yz*#M@5mRBsnY}qd_;=hPw%$R`n#DaSy zakt%67n0QBaEOpHP1s4ND~OfY3Qbtv1`4qgb_}E)aKVGA(=xA+I1GwLtiJj%=pn`s zpec5c@~TExV#dFo;R74JZA~aLoewwnPB|to#N}w0bkrTm70&p~trOyH}3s(3chnB799;CPVvZjT95DMCa=*vlYDE;_`bagB$vm3d^-2sm9Y4!n$rPN z;i)af3dnmPmHVsxWLF_N4`d_IpDXVc22bCcv4;*7Pr<{SmXcnbX5SMDHj=ZcWWS;A zGX>cy)pqPzS!qGYo-q9#*yQc97Jj5!J%o4E`PT3hUaO?!=^3c+TYc5ZPk-JSyD_{G zEzgqJLCyxNa@vY4z`wvyjh)F=hnSrTZXz+F=b=Rafo1do;ed2%AYw&{p!LI*YkIN^OBM=~n-q8HGfpS{GunWGkli2BffdvAcDN1R z;Mh2HqWllVMm@Mgf7b)42adF=mzaA@V0jw`V3`FtR_cl%nHyt~q&KRFY#U9a`7qwzef;71PM7%?yVAi4qc_q03}(I`9XFr)76xFi3T zKY~w;yBOWuY*8Lp?1Xz@7|ad=Rm0c^FV5e$uBD=R0`2kJNxm6gF;>KEf9ue%J|%*z zDDuBGwy;OBP|8DS&uG$M3gBg}bP0qPi*Mkwl8pHWaHIlMujNc=33%PJToxT7PTB$M zL>0Pz58{AcDrUu9#KNMWn-ST!d*u`n+?-2pGcYstZXZ0j9>$!Y%=9$ocTb}ZZE>3A zV?XaU>kVrRqo

    H(#>ceCYz!H4x;eAfgiNBCwBS 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
    O9YOC2e{jet7*2LnBF*4{7isb`;q)4HS z6?OQ9I3g1&s)V5#dzi9&CC{=ubG)Jx7kDVK}uz-a!CI| z$948-o4|l0bOnb-rdh5ae(#-3M?{#+0+~5>46PruLmEQ;VfA)?>l{kUfX4nHObHGM zxBkiHRB@z!cc}c10&jLqUmR>2yjX0`zW}k6Hn%tZr)vi?oKHCq`(MWcOQyGDx6JZv zP$7WQ6G@fDX8cMSlx7eeH+=>haFwq`ycYo6%bt{X;V-J|9F4(7f`a?C0*MIF5D>-S zuteLBef#0``gqXU6fiFXIPO5<;%%juarz zG>@M?@kB%M$Ud}t8SH&B+nVz<-v5u}V-u@&)O4NrFU6oP4ZDl6IzLmacr(*+wao>S zl8+)$(N?7?{oISu54RZxpWa?54~oJWf((( zty=Hg@`b{vdRZwDY0qawg0onVa*e*~Whyj6^pO-}N-1oymtj9JF#)PFrVj$|I4m}D zA~P+^Y`_+%Vi(g6lHz~}_5pjYTXU&h0_%V9+r_h%Sf1XeS-i3fBq$VDQ~*0?h#aj= z?|4BeoqC{5)M1dMptw}CJFo0Bk!h>i za^!v0!@@$qK*k}w>bHX$z6cjmVU+E{nZObzHMo)*sjgA6Wc`&jnGJWt=M@zWYbzbd_tbYh3 zwy3?|Bd$8svH(}8L1f3Z_EVGABTD@na|wJZY_{qNraP*U;f!+@9#ti3^hgt^6}GYd z&>#=VPelA!KLmNJk$|VRd)8PNiu*BdnzyTybX7mKVCm1CLsh039GaHNyF8C#)e!ig z{-&&Z zxpI=}7etG54y~9>j?|nJi;m$Eo1%6sB_=IVFLp}>xxk@CU*6|9>7V=H&q6I#>v>gR z0`P^nkU3J#e~jTjl=UT)aQX^gbkVB=r(ekh2a5bvcYI^N$P&F7FE#AbbqKge+V3+bDWVjhf1my)N%$cvKitPxN#?jZt1x-_nOeqkYY^j zOGt|z|5T%xg!v2t^p*{Uh>QX%_7(gh& zGN2ZyxKRk3;S-R~+RGZyBD^5UzC+y0F!W0BLf&br=Pr&ak1*|gdh-Z{XY}J^L>;zm zGSV^>=|gE?A3-R@)14qan7a20T1Z52p$+_fxk9{SoK&p^&6)c~q-y}Q_tW+#wb|Y9 z^rf6WB+zTBAvfV$Z|#7a z@i;$}Z|)fpyyTy6^(rGP0Y)Eaep8}6m%M&M$=5qLEMhf2^7sNBhPVK*Rd{bd$!MUh&Z|55fN~zUM+H87nnhN_vP&UP6?Q|8zWm zeYDO3!3~gLG2v@8MRq7ps`wa^Myn6eI5Y4$#QHJg60xKKL~!`nUk(9`hu8Z?Kwx%;$6Z03K*=Q%#X(3zjJ$r)*B^ zO^BKM-eE>4Nnp5|&0GM&=YF03{mx$IF?l;Cx#KA1x|@WP-_DLy-WPt-lo0mea?+U{ zfAbaxPbTZz84l9|rtU;+?v1vU<`h%g+?PAMXQ)gU)nqz~Y{|)w*}GW6TW>IUdhv+} z_^-2Jce~ipL%2b#Aq93Zz#Xb61GGj5o+k&MH(1UE*Jp0(BzF+qsEr|<6a zDFk<@=~U-1ywc%!==8IeD$LxQb`12Y5U^3n21B+97T9x1$n$U!(|@J`j`7+>m-Sse;TF6Rdxzf1yGXa$m9rF|$eCu{RXb{lR@ z_!EyTkd4`cuOr6zX}ud#ztpA5xsq>mruUpMcd_N>+Ou-M1&^iPsL{T`Lp~61`1)Eb zXc`v9+kW-ew*fe<7h0?zbZWn6Z*Il5Di76Re3I#DhON9&0(?R&;^IL5<=^@jroeIV z1{Wr1W2$xklvPeA)4Fo!COd) zO(PJ>D#z;0it>ETAXkagp|AuT-X@DE`of67IQIl0+9Q%ZUGlvYPWd}LaJ3!jP zaIj5tUWyB$E<9RPR>^*CI6TZF!J~V=*m^Rp;>Wwxw|(tAu{L99r84Jt@!8J71lOqnEHIO7l4qmqr#no)g9&X>4$TnV1;dlJvXRIK5H3tk>H1ym zdBKq`SY6q6ANDssAr^Uf&so(Hk8xFB1JEI5D@5WC5fptiv-3|v$KQp}J7-oxQcLc) zGqWLNNq4==B>+YeP+S-XhMS9ofmEV(vKF)&L6Kd9hVsu}HdV+1zfl5pF0RCZ3AF~BlIZ!o6^0?SB4;32)3VgNEk z-DL*NG=Um8!@R)BxC#S*Hnnyh<699qXkMigeFVUMNCcrBV2IiPlYu{nv<}UH$!y93 z*{p4~fLJ(6MT-7n5q1=Wg$!pGW<<5**(~>6X1Z1iP9y|X|UMdhA13;HKYMWnc~*>50f=gaF2mTc`?sxmJt4Zj%M33lT6@Q@7ouG%0JAv z(?DXX#3P}JX6IyU9izEko`XFFL=ke(|iHQWW$h00t+WT?xYcJkTh zbT+)%*04~n+J)tr`Dde?$niN%ykEMichv&&GIeUYq??*1QxIBW% zQip(|^uB&aV)ezehW{V6l?NwxKIM13L#za%ei(FvB;qc{% zKdhL^NtiwU2N5Vg#Cb~2Db2p9+(SKvdsCh~w;XH^PCiomp(ps;x`|4mvv-L^#L+~b zfiZH@D5ZJ#%URLpqKRE?l-HRvuAwM)jO$M{`c(Dt-r-}t<{is^zKni^Sq?8dNdq*N zmpIm$vkoY_@#|h35an5`hhS271uo^Q$1u?A@Q}y3HQO_p~AkDi+8!Q z*&k}h7}dbP9O+0&l#`%k~C(vJwsL4dK9K$7MNEo!7$zy9wa1PI_X*lp} z6H^G^aLxVtqecOD%akE}_3i5n<1XCWS`)V-(n90<%XXtU;UdE_8jHB%f8gr1*4dE! zz*_o3!Va<43o5) za0XxAmv+=!1}vaHRRe|HOmeg85?m%GFgM~qF-7Nc!!NUw>EM-VtpAIY56#uyDulFb zm*J2RYL8er^w`I8R$V0kP(17MhQS$P$i zQz!4EpR%_x&9JB2UyRrRaUT*zV376}-ENcIC%=RoW3A)&?g64tX9|V$IOe zZ&OS38jK+ImJdJY6`dJXSK7&Ncy^`4DR+2Nt>Zse)u0|-`97Z;>XhL`+hN{K0PFYO zI~aQqINBMV`)z&?+M%KaMVPYTh309CQZ@Pk23Ty?B|qm@21L1Rj5s z!{bxuq+UqujGo`$f%`FzQu2^w({)vRPINh_fa&L^N=HavwfYjcM%F}q(eM-4Q2A3nA87p$P7Cn=jIU#I+15*JQ6oE^d-&ER?bW4Q@&sDJN(@9=bBc zTEBGghXKnYn_$oGIWN{iR}Mb-kLrP!)^_jHj=dQBg?0?4#Aa-V)0)>POvdJX>|7uAv$dUld=e7V!6S8sYowEogVy)pql@n7X$t~;Ts5YE3>Sl0AYxfUE z(gn7lN-Sxv!^roEyzyEr%aCKBGrK3^M!*hP8};c^?b29jt&qYYGAyN9saps+-%45c z1i1CE<&POq2uVaCzp@ix2F3;mg^Rb zO5^G{IE#z2naMK9#i2?Nte;5&qi#uPk~>}EEB%NC|GnsNvi2N^h{hw5!h*P}I5I$w zmjTA%>@QgTFnA40KzLLKqAZfej3DWQJS}q#Hes#4Xn&-LfgFvPe^OR;P&A2Ud?W`W z>>QG9k}V`;bGyvP#67S=*q{$)72FwKqOEkzX|jCz8zF&w+BTqb&Mq5y2L(f)fUY*= z`b1!YO693-qaqfuyS%MV0g6ggItk#yBtbqAJ-#cl6xdTkLOb99qX8vIrQSj>KMb8k zVW)uGP(FWDTpq)U=5-1IuaCTq^Ds`FjT2bVG#YMGn>Y^hXHsH z%>wkI5U>qj0)S*RdhknsAoaZh-pC68w~lD*+F2utjfeK#V-WE&FCL7n5ud}B@MqvD zB!63xY5!imq+OQoQc995ud?6Km2#|cueHDz4GBphrgyV+B#h|*#d>tfex8DDHABI?T}h0W`lplf{9AD5jr>JLRlSGAoqaEef^KAO{eLo``Jz3&P5)vvE!RQ+M>Ub3*SM2!2H z#9;+xk4+4~eD%^-)t6M%c~RB!mz%kvJ_Dyx0cjQ5*BFI+!t>o2R%!?BZ)dX)G=~qj zb|*FR3Ih#g4#MY$o1n)EiEwl^#E4e!)P|Ydk|_u!dx;YFKk;Ivm1!td=*biSq$o0m zst5@w>7!t-qM~zD*6Rc03Aj`1CM{{LLL4jqc$!53^kk!pVKCIRa)XZ?cA3JaE`X{* zoMC~=4gxQFb=3Ggcm$dyJffqijHREmQe3zmu*uCN++|0>R@*btsoqcKB&5SN6hOh- z%FSm9Y5gD8SKF(+=0N*66%s)8T3h>hvR~@kRq8a#m`Wx}NfkZoXg_X5Y&C^WIPlBA z=qjQa9HX<7ZpFPt;}VFSG_syIS~jWUBEg`3SV64dg&@6L73;XLrUxot%!wFK(v|HM z(1h|#10Mca15vc;_W=kiSI|WjQ&$hbvePj8nYRKb2zs$B#2h$Ob)f%h84^l`vE#xx zsnCa~51v*(RU$ZcNA3RUrnpqY(_3V4J1%^6VcECtyAVcw z_8#@ad(a|ev^Cp!+f6)@jK-%CKLbGUcQ8x(braFZY12zdNbqzVf3ZENg!s342#I%H zC24Vyv#ZhlRw#gc>;evI-VwL`ZwDC-?`AAw2FsAQ!2S{)JLjMiu#4~*Ngk!0cStSn z4=tcs6UIbw6*Rqs@uGScTj`|bwu4;{m&^3eq-{nlcU#DgcJv0*f2ptHq`x|=324<7 zVgik3hh>lKJ@jw1t%bvNX@(|mqNssOD|i<0TH*;y{>wo}n;JS^{PPE}{SL9lk)4^L zrfP?n{fTbS_gE^l2BhTOo(_p-y$7UCeF*@51F}PAS+;`q_dx!SI76+`6!=;K%;OE? zvLtileX9}JMp~Wk9rtaA7}RjCy(5RzOX$5^Nt9rs=FcJ%L6XiGh)A8Tik2pX{U;V> zdo{&2pmh;ug)%l~@@9Ch*L5Md9^vo26P4$LbTAB7o@pBjpKWmiEbv4xbT+1^gB6T= zfvr5*M^jW7efr|&uhH5K6WM+Xy+X4)0@H(@Txmz8gO2Nn*bjMH*i;p$6^Jj=37Qq( z5963rFYXZm#C6HxO4z?)wAYSgR}xRNUBoLu#kPtoZbha5G4v~H+mIZ};#h)uRy>JT zp7GVw$Fdph!U}>XX$phCrOuTWpb4S4Z*LyH^^WbkNNUvrM9S*SqhVuzX>WuON`VL3oIJZ6qVZU#9z)ZRTSSHjkEJ-q1GW96h z>w*67wHp6jbP;1$`#|yldOSZ4wYA^`J{GiyxFTf+0_;I2eCMkZkw5RVCIWa!Xt-g` zJ3*V;aoWVF6=n)3nM%{!DkW>WXnE?H7@{%V&32Tj5=Q~ri*Ot-$Sr84YTKV&wh&qT zDL)aIG)UYkDwk(trUOIo^rfQZ!L?*9`9w1R5!>r(+vj9G9;dJj9!xZP%iQ2g-(H|wZvpm-7~G)Y94MvH}(>p03&$MNa}diohb24fkfX@0wu5C z|D8g=zbYkZFEqIu)HnI*1}>tw&Al}*=EE=ss!Yk`BkTjl_pz)*CkT69Ltb$ud#$i= z(f8q}OB(E}CNzL}8HqjH$tQ}nx{bmco5}SvHmy^6J-2Qv^pbhHtP%{PX1Sn>k!=`5 zkyS|*f8Aw~$XVCTKu!SO4|atg5H#6`V?T799%P($$1i?gxOI9LPKim(r#)Lx=N`f| z;~5+Aa?)onf5it8bNA)lJ+XyJI*&CsnPU2E7x@dF-SejxqcIfWc(%zi{AL*B zyW0qY1^{PYGXN!-rk_0F$R2sPCQXE^E#AHOj>Z-F3^0*dDjDn3kSngc;VehX#7B>l zj4z2Cs4ZFs60%B+oy1@zJ@OpxO*r zOs$OtzE(FZPd2pr_!gbD9gUOOF_?FCCNxN8o)?H^`Am+T zyH1feTK7%UDcD=3wIvYA9=XI?cl0W&!GLg zpaV48tow%(fZjAN40D96)mHR8(~U)mJUrU|CDhHU=zwy%4=EBk|6>&_%RkkL?A^cvPKa7W8h?8F1D(`2T>eL9vpqzc0RE zQpHbI8G3;vTW1=VObM2uh z$swZ?Vfmyx^^%{o`oMv%z#$A?cJG5u;=06`{>6d`s3$*x!L@$IQ55Z#Gu=Srg&es3 zq%&_^_!szxNce@M?6A8y1DYATF+TJI^f5$3d%5VjYoIz!Ge8ZLmJ|)?GARPS9`!?ox`AB}h z#v#)+GjDZ5hih*~pC_Pnzs8X9tpoXGo}cEDnwfp_4~f3Hm0xBZbn`%<)eYRO(JliH zpD9AFb7h*NBs?*a}9 z{>G0T>vO7%h3=)u@>WAK3n3WW6p?s(XSr~0` z@LzY_=_My~ShA=k<7%M7gOGsk8fyGb{FbC`$xUd^>XB2CDAQ}ctRVC(46eW-B!z6* zv>kHl7-*6<0WNEhEw7lFWdjCAGV<9{fxi|aSE$#0n#x%7N=7Qx8j3)#0$o%!nd(pP zR-CO2ZDf5O{bceI6=1zX?g;0(Nv8nY!Lr?`P$%4Ng(IiwMz6>L-fg7SJ-YEe)e9uF ztf&I#0FV_uyaT6#N4T>au?u@8q1;w20)+`EiM7t6xD7&G7eK?$ep&`n%mQ4Xi8LFQ zA66_g-gQFVm-N>4qm_QQH3y9pA7t4Wh|&SN8mUZtSR}VDKp~BPX@HL2)L8Yq2ObN5 zP$lY6SrwDwMm5}^h&+EtFS<1_w4?102`@Hpp#ogXaxvownI&VjmTqTKaBZeF6CadI zuHNz~ofRgZ1M7awDpP?8fGzR{(tE~6l`sP}X)jWLASe*rsom8t( zHxA$twpL|6;sRsd>6sGAJ@!C`iiT{nSyb9TJ7*hzf>m^@=XdE272&T{9po(Pbtovl zY>*r_7Gvx(b|f$?d9d0v3~R-RYcsF+uq96oxTo^npGuH_)*VrzP7nK_>$@VaU*v?q z%s{Se)F?EI8J&x$;LP#!=I(tQk^$W)VJX;{vf-n7|9T-&o0|Z*?qdX@E~kY<`K?Sk zdSdwA%?uTdJog(KH>Hq%RZn(a9upcf6!t(6^l_XDrI$qsE|R%BX6%3}>j4mN!*E^M znE!P`UgJ&_8{*NCFhm2a5KMI$Kq>CdeRE2KmL~%q4o#h0>vT2P)j<2NK9&0PNKLWC z$4hMNxBl2S7ev`in_bC3iwP!X==5`P(dE=m_pS1Q^L}usccMw0&fnGMnDay}-E-x- zY@fle7B+K@GmjfZ#4~Tz+FzdwrIcTLG3vmmGwv&Oe{X?^3VZZIH@z*Jc-jjN)nF4` zlDerZ^-^VzMj68Y`^W0V=5c9Vv|Mdw4E&4$V|T2w2IjJ=Rb4!10JjDzE#tAOWNUZA z@Hnht_)8>9F+{>8x%5P`GP+*^pji2QNHdEsT8A!hz*Y{_9* zO@i47IZhE%sxO70vOt^Tf_`on>^9QVtdhvIF!5L~LL}5onxHcX(V0Y2n-Yp$Ml@Un zVoI>^Gc&;uzqG`ROPEs-Y6$sX)cfg3bb8f0B$hBw=f))8VzjXBoZCa`20-u(ua%!kq7NK)Ae zMFxT%OTuNy4< z$k3H8M-^>@u2U1eye1?(daK0rKp`4>O>vptiC>qk$i!z8EqlVh>n-|PtiLU^^U;_s zPJQ)lc%>Mi%{C6VS=OGI-Izq#&USO1fbNNUsc7jOmQnnBEsm!ijGwt0Te&2O`MJ5Q z2YQ@hy6yBlAb+m$zDbIRQTvC}zf2NH|AHsb{i{Kn8;zmhR7&6Qwc|>f){y?fe~zQy zV}y;VtqYKQy1@L{6d4hoR@D=37?D82#irMdg_H42&&8w@yj6m~dIjm5D`&>IMqN(^ zbghY~n?%!O2b^eHzIHh(FURf*F&Qv0>fgSw+~lw4Lmm^(04i>OBCbGC=*97@T>>Dq z5o>VKa0rqpFO1$kf`c4M63@`4^|7cda73pM6U67r8JP#%QA3k;#pHr?f4QLCVB#f4 z5Hsa)rFrnbRGbD`ngi75{v!P}(I=r%vb)nAkn5}G$Xvthx6guz(pOFz`O6THzbBb; zLlqbUS&~cGk~c#THcl{U1&0ZNlFuaY@=l|IyyEf&42(LO(gx4`{u^(Lp)k*k|1e^w zQqO=1cosSN_oQE%o93ffFRSEf(iAXF16N2SK#i7hW>x(+Ga1UeU+DNOLHZT8D6 zLJI48BsT{GcY^-U#PcdmL)G4=E^2>guaK(L`^Ig5vX-JifWLka-_JG{T^YLIZIN5S zteh|rna>JSM&`)_1K}f&qCJhmEjpHkaBvk{e@-v%1x&;Ndv7(}9Knelf$0EIw#F~7 zG8>T?uHTO9C)@BPRC@tzJuXRFEeAMjq|d&xY_H7~(0NfrJ5JI&BFSCu&z1KyzffmG zSUj~}k;y_&9O(Z$Jx23Jfp49{3>S5oB4(Rd`iQSx^NNj?LCaVJ70b-hl6AhRzk?ye4Xx@NESv>JOa&i>ymeY}61J@OfM!r&))y_CXw zEc@6pS@Q~%%dJrJX_{^B$Q{9`&UR8dcXlj1=jmXCFF|2=MdSujjkm&CT@CY#b%y=;SE(JypIVIb$@ z89)2zsRScRrLrVL8&2LZFdTrt0)F?=&YTTP3Andw*2U1tdmX9(!OwM2;P{y+RJ3PC zx6}J26wnyBycUDwfZU@@hycYTgUwHpWyLi$?s$n~1>4fo_l9EqEw%*#ik4VLWQZ@% zPC?KproHhqunPLg`YiaXVy=Buo*qTbjt{GLX8_pyPJyewqW=LsZy8e8FPc0*hLTeepYJ>RN{aM!+V@jw{#e zG)iDR$Oio#tj?nLC;w{BE1ZA7k@34qcsUaF zh*NM45`q8h51f4Ho&DK~KJu6Rk?9IdL1Gq*8bQsYYWM`)YfM~-`?-gBM4mBlLZp&{ z(YC=UJdzxHX@@8+ctiuVB04%5tu>XAYdxGAGf`iwP17y}RdhDhdz(r_*czfZZcm}q ze5WFuvmlHrz-C?p^uPfx0Oa-4#i7`ibSoc-{PW#e55x{|q(XFF(GFWY-(#Y4eSE5r zmA4o-Zw6Vc{}6nLjL`#9h<(n~s|Ik3cU+GI%XFquZKBDx^=4AP<_RIh(UB^z5}d}F z9G9Q^c$Ik>?0lF26z+!%k*568c<>f1?x4L@fV(<0qM`@q>HgLaEy;Vj%Dr-nf{CV~ zj|AZh+Bj_JfPs0d!%hOc*CAIP6nFYgg_v=AGqxPLAtnh-s|ZZc#$(~Ou$Q(Hk{Q~XNlyx@ zz{OGMdJD4bnywuQ0_j1sLx#B-ABd5F(SK!4wZLeh%!~V-eWy0uX@X}^=fQ*cJdXFK zE_$bz#{(vTsClk(Tufdys6zjLyNjf;!{=l^ADQP#~Xau~6O%Q+Q1d&?;+s9FZq+k&hA>F#?s~ z&)i&Sx24k`n{GVfwFi!(%4|NN@&xF>m%@73RRaH7p9+3us&swH_h}5i9~qUkcf`)L zQmuz0*PA%qiK%P?yhM|nCHevtH#jgUfvajlYSHxJt?x^4~oG54ycTsR1cMTiC z#X=K{exPUuD~cw1Y5`^9K@ULm(C==g#CjVpYw#3D+?wX~aE;=O8k(?RP^HeqYs$+v zt=$d$LwC0+6mscgp+5#}LLZ|wm+%GKI{k!MS9mzrNoL4BWb6th?p7-zH@aAFr@^4J z!{ry^YZoi~OhXJyk+J!)a6sp_M$U|$6AptLl2sf`sSa@I4n5kBHT`JTse7Du8?-1| zi(x75+`moHFYGo&l|YosFqFiwx3T6h$0H^}_1^KhR9AX8(Qp#IdOTf>FoC{btX&Pw zmneVFlErV@zV$-Oj##IR45{Iv?BH@W@X+Q#s_wXfd@liU7_})0Uxe`~r;Q4tSU(DIc-aW}=vi*wnW#rV`Q`o}co7 zrt* z%JQhN8T=lRC|jM1fT#<@Ni>*I5y2u{K`<^Tt&_wzgOn@jpvyJ+>nLC)Zc+PrgE{7!yx%QJ%UPZi zHd-qcW6lUZfmXo$feVb=kKqK~SsqHMM?$7pgn1f_o-#BEUE~*JECdil^AwEpqI7Uv z!RrNhnFXHC3e(DYS({{~SRFCfg%D7sBr@<=g@u(1q6psK^7ckF|(o~I7WG>7PMPs~l(SMGUCqlqQ*GIzq>1&J%%Yqf!j_Q8;^2`N?5T514J{B>0y)23N-(^rvEw|yD&L=m~R(qBDEmHeS= zX!`sUb#9epIrgXwTuqDZa#}FZ_Blm>bA`AAfuJIVs4xI>HZ7S2GC0VAJnAb{k^^Na zr+RYl+~$U;dPYF;CsxsNgIcjY0OP43VmVrG@GU_zPhop5aU4>EFnwQll?FtRK}uq# z?xext=ybeAPM+vQ^K@jjS)vL)1A9Ffk?L#!zesh60`fqOz1C1255L>ncry&%(13SN zOJe&6!?TM=*iT~&vSyO%W}}lXY4~4Ll{_K0x$U{h&YhQc=RJXfe-BHN7`#AljBD@-sIYfZom>eC-&`C zv*&>422~a#yRHkM0P(<_Kr^vdLKg*J_{2)qv)JE%le|}^Abz}S_n$S58NoT}H$7i0 zLDdd~0T9$5go7)tSljFoiB-!-a^Vm>q!dzx>=T4R#J%62z6T!8E(xBOaad^m0W;_+ zDxyAi8P(CB0Q>G#C(|xt1p|&1N}y~(p5c)zR;z~{Wvf;#ZM3qt(%aYBt)0wpB=A%$ zeAfymLT&k-!)q-705zj9%&_DXQ6cek|4@KJM!>FE*cIGHI~TaRMFK+Y{pGF(L-4cm z43JJ91$0swmIFV_vlYzJA36^{B{fhL?f34KqS2*JDbAK*r}TxXh}NAcc%YYNF+!cf ziLRvm{`(XrO8Sd5`2o;lq|jjlxIX8mY?G1J^yX2OB1Vh=q#o*4WjaUN^VdPROxLT_ z9#ZC3kZi6J16dQsh!`Lao}R~TWH2i=tyPBE6?xfB`9d1vHq5qgB9N4V&&1e z#!Vo_jhiN?bcGl&b7MLB&_0bIJfJ$8M}OG21J!k6#4>M|aFQ^kW#HTKIgM4_VO zmeD|Pv+^4OWLH4mnf&W!Eo4)3U6>cmg_!5z%Q3B=S5PwoK0zVo2HKY|!Jts~%}}~= zkC`p%FiIsg0+~ccm@lsUzEC1tNxw%~>cq4JF{|j~JcJG+?3|ZiW)tdPs%hNSFpJXv z|ERV3Lh-B19Rv5$4fv2V^G`S^!J4?igBYm@L2`kCx$<$3p{pk0$8-`!q(Vj?g{JdT z+nQjl@~5p#^y$DFT-mp_0ZF%L9U;ei%RX!w4L>J@7>E2QwX4y*lXxDz6W1IZ>~V5MT6in+S@+kSh2~{(;xbcIL412DwNd$I0Qt8{Y9UO{8fmtujhk1K=J&2Ag$-!_ z4zviZJu??Px+p1y0mGLp?*^Y>F^y^SNSI1Q;}ky*jG2o@$pP-sqC$s0eW}>|iPH3B zd>W1azE_K_{&qD`N>-nQ;n}2T+Jrcbv0Rf<2YYPpvWwO*^%L^SH4T#ob*4kG1Syu z@7y|p_PwF`YpjPZUb~pBK@NBWkhPcyjy3*jI*ftWQvqRAn#MaTv7pqeH2B03yd*c_ zT za*X++4I%RA^J~3Iy}G3zuMWGwwd_(KqD*mZ>>*N~+cojrdM1*}p;!(7hInE2SuI{? z@2{sx+oy%FYllV76d()a2E%bs{cB$mhCmxusm7P}-F=#UD&1B5%gfO=PNC^{n)Qt% z>S9KIzt5VCGKbw$y@@#>*g>!WZ)_Ica>Np3os>ZjP)SS?;4r>S0=Ra9~F? z0jR$~Hc}ffQM#Lw;3|1HtS+c71)G=^TrHz@rHpT^m#78^qOs>G!|ZaQExyXm9nki{ zFs-J4B0fmzE;~}KYz4zc=nWPDxbj+Yim{XN6&0z&=E*T*b1+8n8{eEKy!j02! zcm0Uqn7IX*L_E-mb#IYmn=#O8N(vrZN^TxIQnoRZpQP{GV~^*& zC0v>f8U2LP2dy`G{1+5t-MlWJ){wp-^gBe%1qnUot6<*9*GHrtkRlJnk=-oW_}Ve& zU2crw=4FX3*J`7fuw^0*V5?l!ilpg6dnCv7!dOYm0?oK*>BQkmpJg~!gy=yV6wLTx zd&CwfTVH>8Amkl}Y8%Q66NDmvZiyX_A@`QPF5zeJ!V|CkNR62C75XW4no1VjBWkYxjYrZc++g#4Dd) z!sFeaRhdISOk_UC$zZ(ItQ%($fA*E5qM zmoE^OTz>N}-RVJl6OsUjKzP3z(_4c4FqzAU+(pZNJ_$is6)--0>vP$0y2k(^D@B+5 zCk*eU7MjyPmoav`%uo2JcsxaG5&PgQS{IZxm$FRWXAJ?-0|;^^c#z|yf)8+NN*;-d zqZOA|W?+buy;sTci944;QaB^bG`2`vJ?@0HEoUwn^{6W_N`O%5!&sC|&};-&+Q3%X zX~Dv^bv4@Ti{l16*G1~uaQZYnP+c4425Kl`IFlBVYEA3hpk4}e1S&CKq zk?x98(H}6U*TjIM9IKDu@YU*EX1D|=%td+dpsb3l{-(!>#A9AJy#7MSz{x1S<8j2{ zJnD^h%#;GVDO_Wsd@hH<MUQm;H*y;Og93`u)tt6K$jeV z@iWk&HHu+r#Q|^xv7yfWk(G_92rv#FF$)C?<|tt+)Cp_w?g5mUX@LG7zfW2TJNBE4 zC=~EeNbWjl2+I!oXxV|wWd{J~MZmWk{>IjqzMTV5>mPQKn~4QIX?7BMDnsW;*_Fnh ztI`+#QzJtyUmhC!-r(SZt%$Ao4Ar4Juwu39K6fRDlMsl+P#sM3)C=ZHhcAvX5Fn*#;2 zDN97z@p7Yd>~iIjEb5K2GOMzlwX&L3jnnDqvQay7d6aVUhQ{7!RaR$J*0Y*%dL3Lc z>JBbdu96?#SXQ$xYqP|7Ivp-IN{7;_7Zsh;HqB}5I+G5UjaDbz9Ij}Z)6R8d63$Cwi>mnE zm}(?JqIQ20*Y}vbE~EaZ8;zT;Ay3Ka+FCFu#7HJbI60EO2h6;w8=mzK~NE|AG8mw*DWpzDtgloAJz0x4)EtR8IB2|C5< z-qkAgi#a1rq>ur_I9_>Bm}Qa>sN~}(0>%Zp$7q^`*#lmJ(G6dR|Lvk77L)v9%1R7F0q0V zaB(aGXKAGGd>e&OzvvKml17d*6`xMM|F*L?@MxuG3!T!B|F*NVTwl!g4WF2+U~mV# zRCsv5!FLp;ulIHQ*VwUpKE45E)cUjhHFY{VXTTcn3 z&!9aF%2x8_4EZ$`?e8$Q!Vq@L!`!=39Uv4`-Jqx(Z8==X*F1ot+V#+0iWa730^2zD z!NvYQvU5FtRc6biCvpFn9^+X`<#Iu>W%C)+JthS0oD#`tn;MZa3c!?remw@h@d}0U z8K(l7!Kl>a6vdesU?NxIGzNgqE4RPFdu6k8-M#e(1N+%{h0dBeHAAMah z*jiX%^t~c0V*UqaXs^~g9mIFI^lPDKGbyUmq`>Xn8^p>EvdWO=#y>S1vF1=s$QF!t zNoC#{{rs=F3ZYr~e$hS`0EGuO2|hsIQ~by4L&eapm#S>I<7OA80x3gA& zA!^u-z|IF0JR6Xn_x7LJ=SqgS zCQNkOm%_o0Cb4uJ=)YGkf>`<1MX!JuZ$V8PyLKy4*a0hA1$ga7D|LN;n97;+)De%t zSgj@OK_d{^s)Ab0yUmrfKoZnZ0uy2N0OHyuPwox?ic`%c%!i<(?mzw;jXQPl%GCJ7WVLF5ON7y z1zGzs1*}J>2o;tPs+L$6|48$P+bf|}(_pY&_93P{a*DOX181dGoTOM8Wg}yZ{*6pI zVd5}MrIDE}y#gRLE!M}w1(L%;deNtutRLQo9FU({OA{>}1BU@V;4zfJSa52;73)5c zqoOx#!PyJe)9pn4d8guXT4?$SJ^Qgi25^OM5{e$>MDEF-Mivs(kHuYoesCL=vcvmx znf4u}8P8iPN6-DW{Wpufigh~Xg+6*IYafNTeA4N7z8a?QxuySwE_Ij$YM{0-r#d9J z4<#UKQC2-iDkLE4+C54NTAFXEh4XH0Mwf2o0RSW+#&RV)*kuHg!_^S7=tceZZ0&h$ ze*w(#smXF;h5W~EOv?z@G9=5G^jA}-iibL06Of%)Z3sGP#NU`Wws#RL0&6M)0-%`D zw<2x()tQ}y1u=J9r?8S4|2z%#bEm-_`Tg4|agnwiN9UFnGwsd84o^W3BIBI?OHaGF zpvSz{X(i4X=Ct+PH{H7zOY|j7>`BYBjSTZ);z~``tuNLg3rWZlf!}}VSC?Ky$$yiw z1&nj`?>zDOtuiE*T$0`fy~c686gGBj%L6ZY zgI>Ja-&|;DgBE^9^Hki9W*>5`g4QE%F&N!fa@@-@Mn(bm@eG{R4Z1+s3X^?i$akZX zPro`7XDwa*Tevw>*?$Wc-oVX~I^|3@6QOVd4jF5aIkHbuRqInrFwO0IA_CgwvFlQ7 zFo+U0oQu5F7|+YKaw!X-W}Y@g8WR0&CNwjJ2hdd}|9zQRG7lbv2jzu4rMJj^e1;FU z9RHLG6>nu57nBeYl#ZZ0jZ&Kft&rN2k+P-*C8X7Wq}0+8l&4W@a}k2j0eq4I`nh>p zTre0?O$W;84km+40{BX?RV&ZQ=`wqje8mP_%5TcdWndtEnRY8&xp1m@_vZb=|NQ{~ z!}9M1hvvzb7v6+%gyR|xkUkN}K%=u4^;49M5o3!@$lhB@xn)XH29^b!1&;-!dSOrn zAjeuD)xUA0#G`&Jmcn^aw_7({x9c$$JXTrooEtI9S$ww|t3hXU7E==YNug0Ag_7h} zOSmJwcY|c(D>@73%Y!O3hcz+1j2M;tU`m+ebsUE|jD659&FG!0k=p!%w>N`|CLqSV({$x6yxHj~Zn zjpxYftG;|?dRc$LO~RP0zFx2!vh}IFy!LW|bJemJLIYv0yjJU?=Cu-x&P>(TTsbbC zR!tRmcVB(9$XuCBAsABfzo+5R79c#QW!B^->$Ii5c3R~xnCHY$;{9g6Y%RMY37juH z(7gSth%7yV`0C_ke06;j)&9fuoZNi`7h*{fDCCi%+@6V&N#ev4$(5-`30FnOVhH-G ztD1b0Ug_x-Sc@esHow7v<$Se&VtkvECr;AY4nAwQ?rE`oTE5~W7N4tKF)Ws1+sL0U zI168yDjD;YuI(@{O(C6GC;cYoI5Sf>X=>8Ro+J%}^}u{K80@B1*1C>K3{lmt(^2Rk z2_lquB0*04AnPb}kc0?sWWb9jZj?|1=L18qf=G}PKWw4WtA_PTx2$`}mXR&T@tk@$ zKx*1D@}|mtne>J=9dcVG4e8a4*K8!##Wy_3I48H;XDNOOgjw+!^DD`>4M|oa4 z^@)ajro=~KJS#m=kC7CoRk7Kso(<;2M_)Rxm6{&nq|0xvlS_P*$5*;*G}>jCNW@M& zbgiB4>qz+6oaGGA&)q*p98CJ>Mk7#A0o zJf2ui<0-|%lWXQ}UcR`}I_%b2#kED2ElVRs1G}yFmbPk5xBBLjqT&6fy7;^0916)d zcNna0Gkp6=eVWHVZ-t=w;?@QUyA9V?-Kmd{_1yaAGh53_U$^V}adj=_)(zL~)>x>y zUe#4!EYw(y;d|@dZqz7e@!e`AyH=xXMKz-o8Z}Z{h#}~^*{e&ejI|Dpx&tTK>UMKm zTW3b=^bA}2Y_`od7hGkHbk*8R9j{|vE6I|aIq9v|X(O%E!iftH`n$Wk&%j!@8bi=m z>sINkrfd#QlYZ+C+*Y@n+v+-T`ANz1x%IsAg|ciO zm*<7<6RS~pJk*EAT(KON4jAJF(g)4yGtvtk<~8Q3d78+rME4Wa{e~r&SB5YzRZ5xA zkc<)!r!nXJCNNjt*O)8qUr#0;_Pf>D56xytg@!1_v6{6QVkq&bPkO)Zvso@_fs)5A z#S)MD-Z!a9q#@_3$Yb*~Pf3U9j8=1h4HjDF!b)ipSe8ma5$d2x7V&~asvDKHtkflv zZ}hT#WOPA|o2P|%q{yR_PL?a>sSMJBu9}C(r}R>b9%`Phw%Q=t!bFU+#h{7m&SI!z zz(p77!pB!0Ez7d>vYdHPt9+X$TDCQb;i9aY=3z7;1u&oj1V&d(5d|DDk?ngcBr%DP zhz=8k=mDqo1)U-aI9S4Sq0~izgoe{|LEzL=DLKFWNFp+m;cpHu)RKjI97Lh3=tm%S&U zoX7xU+6MoR=D+~XrZ>sVm(ZU8Q}w+UA^VRlf#OeT}bWHRNLFII+( zA78S+OY4yF{+^5nA|-S3OT?Uj1(-AV%K&%K8cc8EVftu53QUy036wEu4JI36gg++A zAIA~AiQ3)-nw(73*0Q~4%G-BbO$O_1+5Unk7W9cik#RzqFBY3L=lW9az4qRFZ%9{M zXhUV7_?_zta8HD)nW&TrVCE6B$809%qnuf5ZOqCfN+CjVvIPh;@Ma8*wf4tS)d(}P z=;z33PWf!vNaQ&xS&%sweMDWq5{NOOEsEGH*Y>tTBxQy`3U^Iumc98UB|4S33 z1Tveo9xqICjsTde(|e&0bH%^=0dqo-pu;&)L?$YVF9#GI@YdT8IF%_QLeWD9+02j| z7@S#~M`X*wjA9H75dIr7{v3Ei27@y{sLU1~!JpD1mf?Zd4bsRJoD+*7fI%bsv(Wx* zc;tR{B$Tro^4hqU;^e%L_{S@&gbW zqMEEz($|eE$H-2P*-XqwIkVPUm0fY~MBCi95rp9Q< zjt~+f>N4`;p*@L!&3x4 z9f0O7JYv78gR(ye-Zxis3ME_I*Z>D3D53}(;Q1j1KUhLV5K#ci-Zxh>OrZ)#)PzVu z4+>=FpXO>3AxRKSz+wel>?kpR#%wAzC8fpr^CNBFwr$(CZQB-(+qPM2Q<&?Xg>TV* z0_;;@3y+xoh_6!Jg{Qe%Vmswh=!IQ~Kh>)F-LO9yE``DI)}Qrb8iS(^NgTf$hfklAMMXtLCO=6l zlTgJJo^+Inj}|F^Vm_1{DU!P5_0@up7Lk=dvFh@H^$zK%Xsf|uKEBd5+VZUgQWA5) zM>#N2{X900^oGJzUPltOo`%6*ubd)Rj;qNc6XnYErb)8MBtZlieG@2;D0zHvuJk{R zhjnh6&74Ncl3m@LtC5bYyRg$pl}NRky?Zr%C{Uc;V}QsPm+ zg|iiQUZlA3#cbsO8M*h~`!yU+f=L$<xlM6oW-1?IxzS<;qZ0D7FBe~6lr;a&z}Z}=dtFC=b5d-TY-h_!ISQj zC%REddWlEE-Kjqgch7;|Uyy|BopFPY!(a;cFQ)2Bm(odeq9LgbP9c;ny(9smBh zmkKdooHU|shynskGZ8zf{M>s<9Gx8@BrYQ_9@q~eAU`xhL^=ErF%rKnq$D?uMEngI z!H(DlQ^~ZXgL}n{DoCyBLCAN9cZwCSJR5U$GFSeBv4T5gaQ^zFB8sH{PM<$f6jMa_ z*uWTpyMO5fSH9q?Y=RK7ogp_4B8T@=2+rJ}U>&A6`O%xE9Qdb+37lyg{7GQX%oo!8 zGhnK`_gp&3parjKqD(l@HxH~Bv&6t)j4_K1Fs2_}R&xgbANVVNZ*Cz)68VCvxkZc# z`GPOmOFZxmf1>K!QUU&m$#m)~bZMouY1dk7y)fhoPAraIkZH*PE~JEN4;N7M@`$jQ$N>f~yRE%;;X%%UT7fd}1}N8t0J^nGMlAnvqc)+8RHL zsZvN?q*m)hTTfdeZ3%$r^Y7uqZeVL$#FsMfy{()eBP5PX=M^+06q5xF#bPzIpC4L~ z7H!lf4W(9(irjncz4u-lBAA>aE$UI)EZQC`28QK%o@crD-rwUu8amLDEjY1Q0TkKG zp65NDFWr0Ib2G=x-ftxyo(xEIV3;}3mU!5S=ZhEP>%rtrCq0y&gfcy48USbfEMLvI z08T&|;5X@PssDjKQT0vgY^h(WPns?DO`wodCV@gu8G~a49x!JN08ZK_?_=6~6X<=( z>p&ct124*>;Q7)qnma+0UrITRif-**n@opxXe&pDz9>)jze7btC2gqa-g`?SUi)bS zQ^ZGqC=hP4QsG9f;G~t(rd?~T)pxj1X@Lmi9^}CFwymWuso1NCEH&~4{YJhx;FzA_ z5$xho)5)q+$xPOQQiY^Fswi z?7+D9-h1!8Hm;2?6$0fQYqGs9zR;iQ0ga0HlwwYR*fAr zHmrYINeB5qi_Y?RV%;z$fGK=q^E3}iBa!LZ5i$T!Als??1oBDU-Er8TR%O1}YJ{RA z_vRVYD2)!$AlgAgLNXdehiFWU@o&=dcsj-S4OyuYd?WRtN$#zYB#ut`x;|1qgnIa@ zhNzrzgU^Ol)1p5N$IZSJai(wpaq&XF;H;tw4rJM-aSEixnMYCKtPx?*U@ghBV`J9F zwTrq(1=WiVJtl8nSmR$HZ0kn9XQ2+Kx^Zh?aQR z7sBwbrg~$YdUf}m!37jgEJ5}O~^!@WF z=9Q_sQ>^drQ`JLH6b*ffm6B$T4!tSXpVozYU(^OlxL2%jWDdQsnATcrt+n=I?qbeb z`_|5Dt=M(1BzQgWaH~*-D&+11WEQ3PKGWdDSKq{RORi%G;Z^(H?_lqDG$c(s?eEaN z4SiU`2aN6CaNh4a?(h51g`=43?{L5SF7$y5zwmvf{-nO*E4XP6>@vkyQz=pW_s??@ z3`2bVB+!Nd`s>$lT(Sb6yn+0^_?<3@!FmB4X719Qs2a{$dfOlK246dk;E9gCq5+xh zV|okck006XHNf8-QyrTq8uX1G`1HFh2TdB;3RGEx=`NNLw{Tp|xX`YL}U%R4Rvo1Fjffd~2<>?r3pGi~bW6 z|t^S#mok&+?3_djS2{v;3ro&{l0 zC{wH-0B?Yup*gApbj%kRnuGKMux%~1w1HO7Qp04WXb${Ng9E1MKhrAw7yRruvPD7h zyj!|jH?^!~mDQnIt4CZ>u4SdwqK({ITv4mW?uI*R)yT~_Bd(~s;bz<{`+qIpKCHeV z*V2X@slvoJacy45$GQ}Y)^`wy5oXc1wZwx?)Hc0M9!?TR z?!XJmkY|a9^**LOYJXncZmqS}T5ItQa$5x~9OwB6DJm>1H;!B|<-AS=_^!P!Ceu88(8l^Oc?ojewQvWVWQmIrb^*d56rgXk>8Vw=xS=v$B zv^y`muIo}0=m$^8Fl7I(`>yl6ZiNugAJ4NoSa_~(=3dLY>596dR*l|G_OY9FMqQD2 z)6KeBcT*#bZ|r29tP{fSxdNHYsPs(Q>tU&8CV&7ELlyu45DW+eLjuugL=?0a)OAWbT{vz@7z&65_=3Y^yFnSMNcl&uvoB6fTr9)!5{*VSNBR{Ik@XI zlMI$t+s5)pmgMfj>=y>%1uoGq*9#NikrxhAIecWFAQB}na%P>Vo9zpW+V^eD9SKi$ z09BcN02@6+WzLnj4vx|G6rA)fvX-(MW1}Z$S!s}-y#t};J8Xh8k!+G2&50Wg@H1l} zMz*fJSM3tcvG(v0!-KgcfiMUTmG9wjA)dw5GFlbGS@QlLhRBbY|KsKW(y0V-My7eq zIEc;Fy|bllXsHv)Nl^$-Pyf8LR-|AYIKpo&^&sxZhdl~Qav4X8~ z2dYw-${VgC({gE$?9{2YEj<1X2jg<9X*T0fab7Rn z)B8K=6(B&>pSO{QtWw$Ah&GY(g%+|5y^@&TS|iOyXy|4-+esr$Ia^^?`cN{%ahR3< zhY$5MLY4k?bJ=pHIlQz_WT2c9^@|=BLo?kfs6Xj2!rz!CWi}$`AK6r>brj2*n_7}X z#!FnysTgH{p;?n;o}VU=!NVSQm$8``jFJw9)BxTq@FTQOmt9Yphk#pnMxkU-?|9Ba zAOjzGD@lPPH!)n*zm&lQBTU-Ddn*~)*k(Sx^t4zET|I98fD$6c^V{F~C{0Af_Vx#- z#Lu7KPU(5(rnoC<6=(%4r{KIA{zI2i?0agnW1+c`@{~dAiLk-VYTh0bl~mUz`jIR@ zgDzxol+LxHMpM;{h@PfjLQ&^7CRa%-PKKyB5du#nYfX#Ri*%2N^uAq)p0U+&htG;y z4^v!0QI{tl>iIw}9Ld(m`tXIRkzJ~gsg;5bP5Ctp1C%oJ^ys6@gMhq$Pm`3c)vPqA$S8$j-40 zJf-=sAx=w{@sD<}83tp&!aroyY3x6}c5hfzh|P#&ugQQ1!6FgJpPfpU8vj7MlG-}> z%D*s90Jy7!!Mku^E2?yVVkI$xJX{HswN0S?%JC9L0PU0WDaV`|MddI>vqUEogSIH1 zfH{ybPS+F}Lzlr`;wa4;CS8V%Zb`yc+-O4%1xOzOIqp+1(=5*7WDso3ktqs>%H5e^ zM$H*4e6rXByizN#H&;I15DQ&@B0ThDbN!_@OW-X!?SDY^iHL2Q1y`Z?>aRyBqS3qr zTo%QLmCgzsHu<6xLA3TcMTq;5zYPNn$xcjpDM71}Q!+5~%;fb;Yf-r3ttE6C4#I-G zZNbvF`oJrF-ARfF@+S-$4dQadq1@yNT?7&Zpu56XHpU9Erui~wWP zh&)mGa|3=juG1b7DQYQQdTf++NW2wVhe>!1&o2_SP$ppj=+p-!Rc_d>Pb>WpvV%Vk z0A9bYL^rc1-z1KB`4PI*82FBgANlk~J9))l-B&2qJS5^I0kRJJ{#Rkh$SN zFe880|NQCH&nYyp?le2#h~AM&@b1cP8;Z&B-Nd!Mu|FRv5ma`&nLR(-!QjdF*;`dn zn~ZAez{%FKn=NIMosP;xDwq{Nc1%pg43j20wsxS&;k8yi(VNj#4}hwu6`;kSx6MR^ zB#CqG^~fdEx3X^Oq5PT`;S$tOIwDnG1=7aHN+H)dQ?;b z{6I~QE$7LVj5;LKaD(CK=POVW20$%ru*m=t>YYyiPfp>RcKvG0NZysaG8C~bR_JVM zJ`}Elz`6q_>)wTsscV$1#nKdsmW|ycIeafXea#rL(z<#GmKxi#RNK*VdK{j4u^?!X zIeUyIZWbxrbXS(X4BpL1Kw^;R2G>%&gIesa%L2>+S_e0> zXGGf7QhP^D&J`9+S={nc-NcawpKA8shA;g)J(|X~QLuyS#g%7P%h0+XN`A`+N6YQ} z0dbo}iL4_7-h;-C+qX4dJyzARLE-blsB5wM&SQPiIb%}rKlI+IReTKph(}gIhUPSA z&&gr`R5=-F_ZXWzaLI>hq5MC84iC{uDH6Vjp*)$(j~abX%(W+1mJ#T6Np37Agc(Es zr(}}w#cKxmBQ+_m((VLIN{JvDX=4D_1MW8HQD@%5>=;V^`42%Zv-X$dEn9MEO_EVT z6BeWHINugx8iGK_wV0aqC3^7e02x@x&-H2S)(n_f-_sj3ot9HbVCqwLdAd!SO!#qS z?Ogp2^bA*~96U=SrY0@^huk9w_DZ(2vukFg0c?aL39c!n=l65KAc==6wdFl|>!cVM z_z{c=Jgi6J7;<38IPmsDo0Buwuh-&zxxd$jsOd)vp&?Bj%xh99Qvl~r$*cz+-xz`~ zmvBLvMM(vqa@+vyk%?nz86p;1S=ozdTGc2kff!hD7am2b);;i#ThS*u_#fH0CGBw( ze9|60LF69s{JJoN#z)xm#+r$3w_V{tkNpCSJ+3nLc_S9%-&#G*{Nv}IjO6_WDRR0HRNQf$dLSYv!aOX0eay~zONP(j`d-kc-k$Fnnsnjl?< z()7}|*vluP5trS5BD)h{`XEzq1!{^20Or7{Hx01l1o8z4?@j%n4+MP6vMSbo8RAlI$hlfZQXbW-H7xTFBWfWO>09P7mM^xun> zyNhH;M-=#!aCmn&rhrvQ#Y2w_1RfBVmxO4HFw*_68lhg${uxrHh4l!L0Yr%vz$yRy zO>DvzwjdCB1kwvWC+P`&8444dAWK{{W~bO%0p~Q102(QsGhpYc4%SLx0}X3!m}j|} z{gN&&6L^VTxSwfl9`h?gTVj}!_D5miZE=>aigR9K6ttI(_EDuB4*!1=Q%t0kI%7%W zK~ccMj@BeDA`sJ^WfJ!M!fx0=iZGVvd>rvfOLXxnP$JWA`WRv}?sb)EA!N{>27PFE z^pI`*;14Md$P#dA!1r@+i6q;rXzp7Tah-ZV1ez06ja`srI$${7Au32IQ~Ba!FIhV) z0h)gDDP+&1Ay{eewnUsJi3bAW_$n1Mpu3Q&2=$UA%-`ZgjaQy~7 zO;P#gAH0DV0Q-A$ii1<77fHg@#TM8+k1LKPRhT2FmOgwAE8z{}xTLqb7>I9(Qi~fG zw?)<6TWMus7#0gG`>8-^35F++MyP*K_NI%{O)>k2qS}L~d@l0sUX7+QQVcYjn)DNHI)x#lh3xUU<=&3!OO6Z$OQDI`8~)md~LAre6BF z+oa{TZP|>~NJhDr=!6jhkg>-vR{9kDI#mJ*bQ^&N!7!-T2XZCQRCOT+(^8YZg;mF<*JInlZNJ<9Dn`A(s}u}3UP~?*q-n5FpzYi!AVY}j_+ykVLZ^iJU3vSDE2a{ z;b6@DAn48>B*8pQGe}t3gN1^Nx!HgUcxVUQwd8N$WA55LUVR&If{Q?TZ?A+^*;Sux z)0SXviV$udaW|4Qpiweg3PX*wt}WJJ3EA0wlPyAor1+$UsslM`@X zhq}WNyd0MRmFFZn84}c&Rv}?0w6FF;k2Nm)vC6Go+5m5nM{RMNck?i#Qegt;+%;?M z$KYqEysv&-e4fHMQ5HJfwK>faU1Z7{4u@@z8vkjdPr@}ssa9n&|IY&5D;?`knWtp| zaxeWrM*P5R>q^C436M@Dy*pEUFrvR))>N5F)*G74%9%GA?Yh6_b;T_#V2=X}(fvyi zZ{SL?C|PU(7djfbxxGhVV(qOjfthJN)mcI-V3M($+<=}V1)@}3QSJ?>UHA#HZ}S-% zQe4n?k&Z4!wP9(P(FW%47=zE_0Yhzgda5c4;l1zyVp;&;z4u0yI2UnU1;7?WPYdEk z0pWwp@H&OV7KhRWjPYPV$oq+~;Df@3&UuFz@JGRmd-`n52Bfz}R8JVBuLy;SG+!KJ z&tP-=C^+oy&KlbdLLq=&gyM8fLebo8ZvFUo>i+|}HvlPjPeE95S^F#_X2oijq@7{0yR;pf1Ks`)yS*JYog7_$m#5Xa zKA42vusiLRm{G;9nM)CS`7)T-jUUxp@>Rr8xLveEQTIZc|9W*0Lk~Ur;mQt9ZJQ3t z{B`LGVBo2Z;oCu(nj)_|MW$@^{JHY-G>wHq1H5t6Kqm#sl&19a`g0{R0)P?)FgTf!gwR(39TYrGm1MP9U% zLq1}$BBTla*kiAkJQBgbrYk;(_hpu*UKxS?{AXwoC;prt)zOM1V5St*Kb3|=23VDx z_9q1?=8)IWZ5Q>_LDxdDlsmQiBkgx9JgX&*Q~svtKr#mSJ;C^0NOBm6-h$}HU*2F| zCgjd5-+4HPse0#`;cM0KUqtZu89Kq*50Y2g`;-$0FY{I!HwBmK&iFjGUu0aSk+(F6%Vvj*)9wb$uLB?2*mDA*D_%t zwy)e-Xh8{rM7x>jmb;3E2Tb4?zHya+Y#8OD3#KFxB_Jo?pm0X%s)R=Tix~{Y#&=xv zYUlswBs#A%BDoU9$i;kLDj5S9yV~mNpxzoKz+A#cyq!(}V{B?b)bTk@8mUnQKT6UX z`6xxb1oC9^xe>_Hb$3t2u17oCHa_igLpP##be&mRJ8A)iOaR(GLSa%a?}~F^%98B5U&t-zIJ>d3f=J)w*zzGVm~FIYCiB%x;u z^GQ0IdY84LRQY_ZwsVa z6!LOo0t%O@AIZj0Km{9Qj<92&eINYZr$zkCVGB@kKof4y1z9%2VTZIpsr-mZVT7ZV z?lt5H-73UxMTxhr*;kK;_2df0iek8+W-CBGRq)?=KmNd3f`M&YKPb0KRkDTcM_pNK@L{t zCa;d%VnhldI1!p|tJcAxiAGSNdzQo_OOxlwA@&4Fy!^oaR*13N8A8cI=3MacZM%5& z4xo)8pcfydKjb_%JU7@TQsr$sAOYQ>Vn56h)d3S}pm!&oBAA zmMxj-!8oHtb#_^S4m}J5k&vbGgl4i4V=e?0DE@X3MX!=y;HqV4Tn{$mAoS~jQcC~$<_}8ZYZ-bT$UD+eU)9d|GRsbH_!IN)4F=PR%Sikka#b~5qpkm z>(cF@pJW#d4%8ij2CQ)syz-?beJvkA8b=_g+p;jkes=opPDw9ucn=amUbpp4 z1h~uNcdp)wjN19{EQ$H$WIc zS8$EX@<`>PlV-49Ikso!3 zFw)aS{g2@FWx$eS!G}oROKvl|o@y4JtG@=j>X^+95qwqEgTye37?H5 z61=-Hlqq4r&C?jqG04si(-81zY;+=c1T4=Jv7XEo6V-%5VR4#Z#ZJ8Bk z#7kD(W(b3_KICq84u50HB%)t}=<5YiE1&jn%YB`IO+-k-rWN!9SE(sVx`W6A7@fu1Of1`71xt1>v(=%#A%#B zKy3Do-+3z0?&CG;gn;Z0TzCZZ&7%OV<0*{*-e7Q_Y|cV+qGYqld!R7V^SxwHQ|(3( zALIT`m1b|o*`?}`NrWwCfUKv4GdaBBckRb~%_(af8-a(sZjor2ybQQ^PAKLe{JdV( z2`>>r#I@fP#^?rlvuQ&FSB+KcR&|1h8Fl{=t#)Fx;*e?0 zY41xCStRaC7ZM!|2GFsKg^t%gd%<=U+5q z6QpcX4IahenNcgdcZD2LG#ap;ri0Ec?v-{-<9=*!9}*1|EfXl>xkwE3z%SCD8gwW% z?nWYP?8oO&GFpHZVms5s9l%Wgh+t{5uVrFR+!n#0arQy+tjy|Ay5xQ(|=Y;N}C-ARQ;{O9%r$S{Tp?UF(EFt+1>!UhGWL z^~j}-fy5^d2G~ALSKoP0Y7rtbg32ZTo?f97AUYM8MZQKc`6DIZE*Y#Yj-h0CgRwAC zAL&B(s{c;cg?SPC^hXj6vc`SobBQcS@(Bmkl7O+80YS$^(3SieI=YifIr^;rrELUz zkH?USrJY~;Qq&-u7R?FSr^rqGUs1aM|3D?Z;Vw?19@IkKDKadE_&Xr-=^G?Fi<%wu zUbpJ{<&jUhfz7T!T-U6RIX$Ke%5Y)3Z}o0{=q94hn?luQEP|rzI+f%VTY;z1at@Kd zlCe`ID5PxD;m<(oA#|zv05Hsogo%IdMKu+Q6HJiG>i8fidMFJ+64go4nc7VxHd7&= z^ooAv#_P{g3%la5lq(=Tq=v2Atm{^@XB$;0gTkygM%qp~c5%=fchiq{bMYD1oW4C( z%b9Y_r%;|)!08nAWzoePYOq%TC4FIuoOuEYa7+{t3kC0_pOJVB-21Q%$_JA%*=dor zI=i+OasL?xkZx{L3`QTVQBTZ4-wha2x>qQlS2R~B@moUJdPaq(3!3xi$J>5!kfAu#W&1*P&QpwCI)2maR zn>XuWb;t#F1Jx`3aTT6bI-AE#>&1l32&&`EcM`^!BuafwrQs1))v468aJncUS2~Tn z#dDF2F79soHQFFwNS|SV1sQWWX{RAGm#eXSWN&OUFE|ZE_q-QG0&SXW`;|N`OYI9+ zQs-{F5L}ZbEs&F=(L?`1Tys+}_-IX4XKVJ&oCvTg^AdSaC@jw*u0_10MOvR^8ZxI{ zxVJ`nmH0RxmO8?HE9_}Kl~dXZJ!dq54K9r=s=^z6n#zT-mp#-vWScLHJFY+Yu)to{ zIX|wW3FVHSxK$=%Qg^xR}f z=u`QeygUKvHUJbF^}v(JHSd7|X4haWtK^H#?+Il>?FSUZ!?AHfCot$)cXRsb67>2H zIBhQ(Yvi4q%vUJG}pkMR?%5eo|E$!mo;XVS71wQZpw2X=u6_x=Ww5hm;`F$gkzqzR5gGqp== zU@}``rn2zewOA!GNbc0lYG$caoGx)>mY`r_+1>vBX}kCUgbwf!{*YV|gwK^1rFlVp z22->eA~}tP1xVX}`XAv7OR#4**fBWRUP?%ey??pQIPX+iT*36~iA@NEwS*-M2exLT zOU};QUAWXe;BHu*@QJ}R(TMMFp@9q4{{$O}dwOkUG@qjHR;g?^GwcjX%<}h7a5cYF zP84mdBbYb9M8qcnvgH=j$mz89r!+8kOKFcw-OOF-f)YG(oR&s?Lv0{H*T1HL#S@!6 zHC2c1v#M7O7CTytrTy?C%pXpvWyyao@w3qxoOzHG;;Ol&=Aj$>*=0Urwr`+k6g`Ye zP(gcChyS<~x1n98&fIH6&-Glk!&3F)+jR~|T>|8Xs3#p5B5}EKz2Sbq&za0dd613= zp~cEG_At#3b0It@xb;J#(6OEs6}u%N4=G0PK%k^fw_vh$5+mxO6>oLqj*UXufdvQ= z0Zkj2D!&}g=EwuX1E+kfL!TF{3>X8VdF9H>biMpFafq0JXHi36i92XM>qD}x*xK>O z#V%;Lvtgo}e0CAEM4#kT@Mt;Erny58O|m;=fLULyD#eG0=jJi7OJo-B1>9=h#l#Zh zb)g2rG+%jjN3M4$0@V{8+@$*oVh<4I@zpM)-~?U>CBzZCy-{L^^uj6_q;eLtQz)Xr zPw&_7jh+|+PU>qq>X6mlCHpcfU(W{% z)Y09{=BOTG4#o}Dsp#d>)R2iPu4e|+GJ<7{Kb=HI8)JklQAbm6p{W2JipVmOpI*|I zqAHo4QUV9VB?x7tt$JuMS8!`#yl>`OQKEl8fY1a}Ea-D2?BUJh2{s5Ux&Mh11h|5g z-EQ2Mkq95Z9mQQlxRddjM3RF~Mow+n3j)mDqJniH7)VJjq}AODqFrUa#Jq2^l2@r_ zW3XJwE?Ok20p2rZ=;v*T87%9o+%#q?ouG+Xe~HyhA3vK zu3IOz82i0Bu)sf|s08Y&g4MvD?R1}`$hly6u==GJnQ_`_6xG)(EHZ3PjIJ2;z};7} z2Sg~8D8TimJTZsw>TUjG-MAUwnmIUGrRcxsi^P1+;4E5)*c2fa(A9Xt#)jdZPr#CV z2%D8B>!2Y(^=+eBA=t`T1NuumGkkIPIUo(HTg)a=PTh(nQkw9=o%yBAxDS zPMh&2jGl+3^S7dQnh3Lsk~|S60{Q!e!0lIV3GFD68bFb=IO+$Ya@dK5PjGl*l~f{f z=N5ca;-+s^T#z5Y>hKtc#Q2#E&`)}~bWzTdGF zsIAQ3$Lz_=;8A#E6rVUKOa~DO=ERUy#c6?gF;9~O!=H$)ZJ1c(O*8m2Rw^xpeR)}y zoM`b|64UY%H;n%AY`0fKUcX{$fk#qIoO2=!qdW4G4UphB8uA`A0RD~2g(J_bTp+n*QuQheXL6H>hIR_nopKh zh(&ZNFOEl%kas7`k$RPMt;UAV1ADFIQ-`3NqafO5!}8tJ*WxM4$nfB20zO%bZn?Wu zTRXXQqnHaE3gJ%^^b!%G6B?3PR)Jp|f{rZkjpl_K_|S+(MwSOPF=vXV8d0AZrE)uR z&LRZA8SR8~R%w7=Xj@iJtEHHC0S~6c%Zr-}UFgok)B0VeG{zE9Dn&Yw9CwfX|FEO4 zK?QTcf1ykEpdS9vG_99K~8|b-G?YkF`te=~V zW`(Io{-8_g`g382E&p)wToepsWwbQFIo0H;5P-$UW_=Xfdr4%_Xy&d)!R=kF34_B$ zHCRIh@7r2nWcC7&Y?SETTKF7JPL(`>b;5KBS*DQoqBO@K4EdV5EC}j;hH{nKwPHCt zal{B#t8OWoTDC%4DRcnFyp5Dovhp{MUfl7u2Bhjv9?kFQUyrJ@{hdQsU$*6*_U6N% zl-(n_>(XbKfKvV}PWP&2CyM8ds#90M9D2Ne2{pfy3d+RdE?(LUe%nnR`p6f;$0uyZ z!$eq0tIafYC=-eiD2ay2q6U~g-O{2eXV%Fb{((kya@gGk*Ch6?@YncpjLseDGSJu@_XP)2YP5=i%I z(d3S3#v*Y?uTTo`yLnPb(V8tfsxS%6BiO}V7&?o zxGgnu-|~7R(tlNnnDQ)AA0h$FHtxE`ikzV4bcR1i{!7Cqc05hSq8yI0#;v z`L?Z?=Oqv_Vlm7$ZL2z5a%jk0se(sFMz=po&8Tgj6SzQiD5rt!7DJ zpe0{{z=xO`rN&Lhn6f~Xtga!|f?O?)pL#EN1N*S$>4OTBza~+;MbJ4)o15!YyKdHAK+*7( z3(org?7LGJUvEZa`-3YkG-JX4ayL6*ipSWvzqd~7Xacy2WZ>rMH&dm#o+h4TX^sF5 z`>Pd9h-NZ$l<{ta7$G|R=I|{u4UuW}C!MLkT=!Q%y`BZ*s|u=TI81?h8w_7~yeN{?rNVT6Kb{<%$bimZG)H{d#G0vT>lg8o#%3_rp#*qg*uiZl5|p$>{Z(nN@xQFP6edh@R9q+=7}WLQnpUbW!FH1 z=?7L-m3N&Fu9%kel>V)^VU}fGJVchw3ggaeDks`eTN9y<&r9+LSX{SV6n0+2ajp=H z1*eM+b-W&dCRv41_shEW>7l^Ti8z1h6RE=E+7 z+~nK^2qp|>T`-M!F?r`6%u(h1#FA#CZb#rSPGM6WF^Psdj9IPF6R5)lU5fgxc7f$9 zGbedJ9jE#PYkqWTm+D99N?X8~dlV1-nQsoT;J&H#O)@fx?W6(G>3TY5$GN`)2#!^t zAowazN6G3tNDMd&w>2Y8J-;v<&#VO8OER7gf7TZ=v;&;0V}fAwB#2{AQUWQVDIcRi zf4fpYd~WJKrMYJ&0P^_UmYOalg0mkX0i%TXEmE3xS&PTRY~@lju1s?>J$`s0bId9m0s(H&cMjt57j=i$`sw8tXaWx1~4;zm5rAtG@U;6^;( zMh4BVOrg-xea~PeQ?Pa9tY`S!5Wl6+E1*}lx#nAz35QONp^~UBMK&!&Bcd$ey z1Djgd70YAG9GKKbs;Um@d3usX97{}{xPxsMtZ*f;90U|+qpDZ>uBOt-F-NS3T(`4> z?gmga0m4()_A;k~t&Pnysm(?fu$X9uM7Pq})^0xbVO?f3H$3G!%4g|^g{z;Pd+T64 z%6aU8R+)|QO*km0)dqb%D69)-focY?x(;a8-CmF_P<%#dy9wNr)=DU5v|A+0)Z6HR zdNjBM4Hui$?oFv8^WFBaF&d(0->G8-i5hCASz|E&;AxDuI1vTh0)xwt;Py=45`3`> zQ;&mR4>)L-#_%Dw{o{;i^aA~&n6mU?>gG^vVCY=`%9dr|9^5xi93G}j{S+=?^i_(d zw%TbXt4yj8eT325^C4H$A-gsZOq8DFX%=|UKSEXk2wdI*)l1NX(d!azrUG`(2VL85 zSI@rQpzr0}HP|F-ntGc^cyn=rl|Q!%;+`4=nI`30AKBB)35(CdMo9agJ7%5kMq*Nj z9rD2m8W|6Ael~NYw5d8P$bf8Tmol&uT+;qs8@CtrauZ7}w{%kNLXl=Ky;_ac@sD{c`z&@JfpSwq&eB zgO%PM48be`I$*NnS$D-#0tOm7ikO^mXB#VSLo4C=b`=tANnEOB)*TD-@_u8q6lS!% zOoSem82t*Hw^H%gEODWoer^;pQ`gr}-3aY1iYoxzftkiZvO42CXBKdrVTYm#25I5y zXv&01tB)H?){grKqeqL*X!1h7*IcDsXn!U9kVAHZw0_v26J8_$9%dR)d*z$<2fywyUIXKj&@?e$9+I}LvY=Wv(7Jps1Ou#Qe3U@qofxiZklXp^`p4SU@LFM4j6{pdyb;`6aUjsoJqRi zOgTdd8m{B)ZO*&9*q$)E#!1|;9g+KPp=~YSKwFGsbR>!+F%DcxkyYE_(v@g?nI`oj zBGW-9(q(7*92=ZE2*x2s<|&?pPg5zJHsMMkCBRZgG_hOR;dU^XI8kxMbe+(~typzh z+PT1KEZWW6FLY^u^hf8}TPL4mb<{rG(!SOoe20hNKGjWPdvU=+#@kLKNJ2D5 zWP(>Q!?p)*4S%8RV$~z-I0=yiQx2;mY|O>2B~N#se5bUoQ-#r|LrF6RSj3k5tg1sp zN;4oO2oL?kYgdK!5Z;k`I`+o5CRRc*3=JLw3Ky8ZjWX|l)m-740-Dnlf*Q;8Bzs`z z4kp2%!%w;fMi_N+oST9^DRal$>Y-V-@_K_?oex|wEIF%zj?8N}Yo$otonvhp6VC_& z?3%CnM+KTdv*Ogw@8l#(a6yacYbJ)BL-ob^6M7l7tGh==!R5KrOU`0bj|S1_GxKHl zNz*VbS__}A6}g8qThU+F@{Nu;Nxhen%E2FGAim=@`}}jtNMh7E)2Y3#$~+}UL#+lp zq3dCZ|2mN)^1nZ;sE_d(cMdqkp7*wbs&gK;3gC9uDgfU8Ht?&<&+jSL_E<6sio~-p z=Xp^mSOLZA`T)J+%f3a}?gux407eVoCQv&pH3GvW`F>mha84H%xBT5f+mfNmpVEeU zOLVW`hm0T?E z+t5wfzQ?;gRVDTwEU=Ln<%)r{Q#oA9?6VbcezNh{7rEI#@#5NRbIFSp$@s&?rA3k; zZ8muDhc$J)Ta;-Lni0p+LJV~0ba+%<*8U0Lf}*{kgLIi(nc1MJdS~sLe4#h2r`@YH z9I|kF)qTHR?Zkvaix?;FWAhFIOusAEN(^E2=CXd{)zbnKr=<0iSZ9Kun*l)7W!-k- zzNf*4-?dT2^F)~I%R&s>GH_4cZXb`e!6JzghgrgD3fzr(xJFoHTQE|NeUX9;^iZL@ zY>6*zsWR0^&cMYgRLz1tT$3~BWLMWtn=1p~F)1xYF{jm1fFE_hYCf<3V^zB)C|C(e z6e~94ltW`06)uOQA%46du6rYf%~Jy2|H?wH7jh72=V53p!9W%jfmD~&n0M%82Hh-W zuTTO!*DN$~?)~kdQ;1L5;-k}^b!m~B6r^~K@pX9kDeY_^{);WB>3`6XC6NI*ZvdtT*|pVOoJ8O;avY+x0Zj%vNl45=k9ca_-^ z%kIO>Z2=V|6fKca<=;61vTlwi)=4)|Z;C7BB_aWf`8PR5BkkN_?+gV9qsfB=r`w>W z1rOea$=0X^;VUy;9&lrL!jbUjH@O7G6ICg^1_FT-);b-9Q!do1MslVk!el}i!4?Qx zrNx2Y5Dq7oI`iC45y9`=^qiRrrVwM?w@jja7?o8wVLI_5SJ^ zhzGUzUX5~8pnzz?(1~$LSNEqVh&+=~keR^y!BGI;E|Y(+L7GAeS@WrVZ?9b?Oc_6? zF;jPpocBtp1zSnVlxD8TChVD8AyrgmFWZ@L5r?NMx0UZO&CpgRyH2kUP|tW{c{fi5 z&|2$5qy$s-C7n@Ww+YM%QH_FVt#f=VpCl#!@GWt275`$zks-1@&8Mm-v<>*?|Ugy{pz&ial4S zNcGs=C+*k)r&vnsm+MuTZcoSP(b*z#ny1iQL)F+kP<=#nD zp{{h2u#%{=Bs6{1Iv14#Y5gW3YPUJeL+fTP)x9(}8v?8p@)IU=*&L8f5wWlx&pU-# z`-hX6+x<@0v(1#I%efj`z2)kmorE695Q^3&&sTyeR+*jD$vI{=0BzV(6#9!FpQw+V z&lF*76Cp*6I4YH5P|$8c${0cVlXcU{w=e|C?`>OEA*F4Pd$ zZgp~_)09bUIld_?^{@C}5m@eaFtj7DytPj)`tm3k9J z#Fx|258P{3N{TWH47dZDw7!d4Fw8Gfs!3KEVy^c{os>$B|DIQ0MOo(;abXV0EJnHl6Cn%q3pEu=N{ zX*nL<%s*SDvt!-e-Q6+i z*#E|Y<0y^_08qjABLf^d5CGo~?y+F|Yzl;FAUo_FGHf}Xg6=*k;2a0%9M}M@jU6zo zLE{s$f!QIDjs=^J%L1Mpo|=Qhb3rQyZQUF}tP3V)G+5PH zWEI2=cc?C=J{vWJd}A{B?QA-40~UMA=;77uRstqr4I9DyI9S;gi{%gX$pX6D{~9Z%N+0D|X&Z)YBQs5fJou$MF> zp!`U^h@fK`A!dV{!B?WD+@5cP@N-m2%<50E{!0@vr^g-PCtr4tDcmrYpQ8a!&(%;mdoDE115jkTNREj z?${j~gkvXt+CwZirh4f}Z~>xRdw_I^)7$5n?s!aSODyPEV&TVb&Pk`&HKwSvjrL4^ zyg1&1%d)h51bQ7Ek8>J6?&yfG)3YRt%WwE7^g5$l($Ue;(a~|)F&nO<Tqhh` zI3UuC3F+lHnx6f}%SF2ZN?FdAXUAcB_Li8t#J+NR_Akw|d+e$i(X-oldiEMn&)(JW z3L;%Ws!^+=^z1ZhgmS`|OL~^F&C0V^EYGy(05_!58|~Y<*Qk#CW=R)y6E198bIUCn zA~i}UBu{+HHk{q!6QU`g*=)8%HECXW_%`~HqhwTXK&8r;FE5PYgBG%p-IT#b%MqF_ zO5o&97>`~NVSMMbV?y8gWugKox$K?iA9#B@);X)bAFJ>L+Br`sw#W_(;*S1oMy2YK z#j8|AaCw#ABA~p=?e{~q!_<50)OMlr_RC)!E=wE?p~7#QO;elTV&$#0)98VQ0J3tt zyu)bYCqgQ|^<$5c5+jt3cQz=jmgw%zn6guU~wf~634$VBa`jhX>s8kKYA6W87WYo})EaoQ<3zv;pPXRIe?YHlymqWW#^%j)={Q$eS zAaBgnrMwk5Wffe#joO{Fnd7Niwo;?RMw7bxR$l<#HST>7zc9KGbt+x1r>Y zFI8yhEzcm91+JuRfqKtV-l;sw1tM6mApk)7^>G?(8KBC~kURi6-(UPJHuz398g7TjvxTE223*I8(-oQ2Es+=8B05K^GZyAs}d1;?GQ734ex$~S>6 zcx2~2{?F^6EH39G3tWNS^{n^X$4nxyzk<}!Lz;b^p9mX{UvIHysu^oVSCmC@T0SJZ zD{ncGmA8nnbG#LegU2qG+}ZZ{+UUt&hdriXfGk*i+$)h94)}F zVrCiW68<`tmpWUOecKV94FGUR>yU$1bXP}+o;{KjdI8xH!zRStGAWTt2df<^1OOq zX{8yYc8X># zAGzq(8sSUjI6fq!5x!L6>i{jsaUw0p$?=w}LLyhkuMf#M@7zbL*l14J3vsQdyyHNm zmdo$QYseF6RS(MCmS5L#muDe@<2jxaCdu+TK#uD;ksQ|vlVnkOlAKT#63KB_m?S5} zSu#pmRT2Wa`q6>y#9@*A?G6~0t{!yo@>cy+c;2ckjHgB?>!d|e@R>7gl9H&-QBH9bz3PpDYx$Kp0Mt2D&>?? zN^ZL))GtveC>-sYh+o3U0U~b?w|5 zqL`VPRu?u<^b_j&NJIUE`ay@1C%L?ifY^JM2v9_i9y)IAwVvzzXdee{o!9wxZ#wII z1$8!;^kJ`2DkY`iSZnp_bmZT*txoT_(n;ex*^=j~hEn?UUn#9H?&#fm=j3Wsjpmad zG1gGg;s;E4L|REVh~jp&-L$t*Rk^q50rdC+YLQ<xC22f7fEv2+y$P$_)eWnl8qc&FMj`Vx1f5dyT zpa>M|5>OS7+Ei?w=s1}d2->^_BL>HN6M7PBeI8WdiAcgR-W#;#u>VJf>0@~)^c{jWVd-whi_N-OTuy3-$Fq8u z(Mg^Z?HKhjVbfKhb&dl`f#ku%IzIy7+hSlJ9B+{OMr`;A!D^R% z6yjtD`iML{5O7+?WpZu2q?M`h)NpfN(#jOkM428`VceaUv@#v&mRuY!X=KP4(^uH& zoXAmeaiz%E@UmowI#DF^x-ndQ z=c?~V=R}bz%v!c{yr>R9;I`AF`VU)$@X)rEw(MNdIC`U&F79h}z_>W`MINT0gt(9Qji z5VsqKKcW5!^`}Um_K=H$#1wS~g1m05FS(cQSujVM%a7wyNC+Hn63Cdh*rMDq-2y3c zn~t$}?in4iu2Qv83x8f|D;;CcahL0~Qaj-wZkjMMm}%+O&>c{Ln+e!*7kE7fWcg}# z-378d2V6O;yt!#9$Gf)SzJ|DDE+3Nh<}@fwFDQ9dGQqRb4B{6gtR2b{m2VJyyPAn4 z6cQ9tm_ePlcOkcdy5aV}HrMeX*=q}54N$quiKI49`4$pUxyxN)5|t0hc*ZWs7(=z# z%qz$kSAFa@j%U5K`7H}5Re14R8X=5&$RP|Os_;U#Z9{UxBrL-T#V?@bnu@;bGJCYWQNbb`7g@=$n?H54Ou_l4EKzE@uVSQyD zO_*(Te<5+;lbkw_oTeYDW*j`lguIXZ)^{NZwWxX{RUgoc}$zxv2-yE*h) z1YvIONLe+ht6t9TDEBh+^JUf*DoTB#@Q4 z&oWG0FfqiSVlZZYdTI)nC5ohF4r=)6oR=$1*m_Gu`RUb?P^O6o7M_@RQX;KzDxVMB5MzUNY-AYTl8d>j1o%T&TvP{ z!%Q_G>al8Kiys)KBYp(BPnd+*fvJY?1WZOODVUxx!Q{e9$+c&AH(Wc$%7>f!g4M)b zIeAs?>Is&XFi3b^+|^537$CeXVQOH7xjHXtVP072KnpV)l0=lWH;LMhJ3X+hYdpfk zo)Op6GFvI7IuR6oKBQDypu8kP;H9=4bxBaMB4|=25ryNlBu$vKKuNgJZQix^`f$bC z83Y7m$@r=cAs`^3rwNl#sw-X4q*)pZ!VgDNs6gleiUx)TLK2OM0w#NRB_j54Vp{6P{nXJE>uXj#!H$K+Ox-SX}qK<;c|(TY#9Q^ zsM%@Xz4MZ`f*aZwF?9?35uLrw9p`bWO;tN_2LyS!%>x4a@AqS)9>UPm&2HE0+pr}Z zAW)0U4Z))IN-BNzdEHdal%12?0|JQHE(@h!B2<+Q2{ueDBG~+}0&{m>(%5+5 z%yqq_v2h^^ssuolPT5kjl#*T%n({>H6z&3tZ`qW@7$;1bwg!ryu1X?h1~5fP zID}E<3zsO^c)-jGH`p4$An`Vv&1Oe3>Q=@)Fl&n5$|$BLu)u)|C1X@zW*3;Oel+c8 zHBUc(Oe@oTV2T!4Xu^sND%7Cj18ibIVQB3Y&EHz}sTe9l58o30`mZxB)7+jn*UH zPgm2oGe|B;7m$#PoZP`aq3D+Qilo^%Bs1ganB4Kjm0c_M^gEJ=4_AU7PzT8}GY^K4 z!1V31U5-6+Xd6wvW1}~j2=c1#zxnlgh`1xrjU8rWz{356Sidc@k6h=4FCo%B2SK{$ zLr*)O;F#p6dn%tG3jL~30Q6PeK1KTc&Y*9)7{yQzDj;zKQ5Y|z5K#awL{gxrd6|LD z2J(2%H&8o}b|4{7)r53`E-GeKe4&C?=ag0VzAgnOART)N`Mj%M#gZytz575Umz8wF zs^1?%I}pj`6INXWF|L$N2bx2=uIoAvTC5o?xvbB9bO|$vi;&D9HcFvme5FMo9RkzO z6}NLBA%L!r<$WyHw*<@kuxRsr-`DzB-p68nO>$tu1{POXR-NU2O-DL5nfOF_eGc?2 ze_bE?8yj;+`BXy3`l}ydfk+xQyZ$|Be&8a7%ne_RkyRjF-fRJaE4IwgL{^<=)tRU| z4w&OI$EEy;;CN1$Cq{ZqKRJmITEmlX$S(4Ma>_ViL=YT{mYlS>hb33p8bzSW`N1?^)B~;($ zcOfrnv3iji^o1!;1mfCmU2%bgP<^_~sIG4kGFW?2mKx=b*zKr8K^3QI%cI~IA5KyRA;5?-q)2- z{YZ5rR#^G!DAca&Ix`lE!v}R7=T8AM$8o|W zo*A+n=Z}cXTVaw8ipW7p=JJ;3fH+=(kjX;HS0B~7$#v`e^Ppp2=z$V!slZW= zxxmg#GFfza3yw1o+G~*3Neo5T!AmnZX!(xisS{E>ORf=i>OqWb&TVAtzAqe) zpzxdXM#t2roPtK!Ip>%`-X#Bw8~7PDaDwz1hn~mOryQsXcKW`BqsKfXjfyYdb$>rv z-rve4WgeYxzA+EE!}HBka);2FOI^tI={Q>4vEj1Qc>#WQR_FIqlVpR6F5lnmpAJI* zWbg`6AB9*xU493?ST4Ku-R`^hBSF&bzNqi}KCxpXciy?}7>;-Db?oyl98sX(IZuln z#O-`^7k{im5mx^B2i?=6P?}3yJSoq%m=RG%v&3gSa|=f(&805C5m^4Yj&6OgR_DB= zW3ASZ4w70F6(ONr0w~~ody?5fQ`X+$dVM%f|sdNJ=bY|i&X!I=l{?aT)JYz;9R$Qmma2zAndvS%lkVvHoet{Z z@P^SHb#QGOBGsU}f~i)D=oHHKOxpf&X4dGAw2XPvdd@C z$mS{zwz$q+mXungG`3uBD$`=E0r<*@$x>kruo8 zhdX%Uj*Rr(%|Gll-1vu`!SRSEGB36Gyu@8tNohpkJ8<+y_Ikv-06%wWvHi=&U+A;a z{F3JSfB6g8zy%a!%%HNy3fTxznvgPu5+YdQM%K=>c79H3v8B(LJDq9GYKXWW+!5NN z(7%O9ozrj%lHAeJHZ&=U`b-YbPiLn5$Zc?bys3rHY56_M{4=_K zw6H39%rGT?+QUxzP_X8*&t_&iX_M(`nRT>>kLG-=|7||M0h#D? zAbE5kdB`0GkUs6wO#q(!_Gsa=rL38deW!aqjFtIvkCh;=bUqL+}4F@opaJU=bUqjA@gpf-9ejg zAZ?gzGHacojE+&clyz3sgC#d;A6d`Lqk?DeWC1!!fW8&Tnq^+cXo|DWDUT(k6xrtw zdnaR*C3kevhdC5Notb$ArL1zX9-VVm@T?s?q!HDL9%!|fL#iZwx&;OphA-WE(+X>y za7w~j6>v=u*s1}Rd2eVmL35s~!`;1uD5pD2S!ZQvw>x27L!0B|wrtuf3ASv9F>=Q& zhvx*>3bgKZ%{Tz##L57`#K6W{myWTAhjS^^p$^}AWW#7EI=QYnov0G5key1O)Du+h zusJ;Limpm=w(|}JrI;-|`~-QPzaI@+&{YH9&Q|9A(6aEFY2qi?gG|#4-M!PXmK3MQ zJ}FL?;`9nuDb7h-KP%9BRu0)`ud5Obg;dDosM2-Kieqz6{2AI;m&@KA6aTte(xufw zCf&8uu{r0YbIwWYR4Pin+ke9Nn3Ut%sJpwZcl*y0lv0-`YxVB#?oOprsZ`2_bqZHS zNr}ztR=EY2xtaj%G_*)M>!U!wTT1R0YVD&VAcyHJj5i?tC(Lc~w?&uBb9u6QtmPi}ZJgOevLJbTA&nNj=nDJN;3{fUz=-7oQU>;%p^gXd_i zHF;9K1}zvqN3T1N=Xj2CUphT%Mwdi7235?Y=dt$pgL|HF#u;ZwA@Ynfq;x=D=*ex` z-A%iX2u&-xl$6UFgdogv*#zk$U4t9CyQLah{ab;u!J(I*cim*o-)6Ji`Pr$|j$ivU z$y?vRk&oC&&VCDJlhYGa)SFE%3H`Q(JK>dO80a?_f9v_ptql6YEylSD9IXjS-p&+g z!h9Q!L*4X7vA-WQh3A$;nv6PPVyNmIXhI6lxio=$E*yuRd(sx!K3AtTJR%CQA!dso zDCkqwR*KF}Smgl#j~)JzK3`7&l(;)OT+Te?3^fo#gOz7@ees){KxZ>4j{@iX{0XV? zTsUIjw~*b87iLaQG}_V<24z|Vf}=1~1+8{Q)|S_zivlu42{D$7=A}P*^iDoO$4a6k zQ7loaNTE(PiDw7WF&{lTddM$gXcBW@p4|sekB%PG>4;~~)xLv+rw2=Iic!&2TIwY# zL=jLmh%OrtwJBI$UU~LA#i%w#hT0S;98+zI5_a<}WsMJ6{23_5)TA&SQIo=@CMD@* zP0CSCijW@Lgi%*N|)bW(tdCPMGLJ#$-zP~ z+Mp2q=s{7zbHj~x^(17IXtGw+^sLzlr8r{@ldsZ?X)0~4f; zNtI{PK5FniHd!H5t16%bF7wehHrQW$j5A%BG1^1C|zGBtsWMvj@Q71Vhuadmao-Ff6qZ z3`sCtd3I0wd>M{Owpj;=IwlIxIBY;C-N_awSe}JCDQBQX!7{^=eOZel<=Ji1T9hG@ zPD&;;+8HNcFuE^mFtqUOwsBt8n6#NSCQr{ErA-H}P>z8n15rnDP;-it8R`UTO07l& zReLhSGKGojEB3oul%Aswbn;Ca^a5a?pPl)s5O1eASt^Z zxc)ddm6mD{$h-Z-kVRc4B&ND5PW+i0yJkT0(x?Hwjz*)}wF3~_-b ztfQU>ApntI=8XEbbvA0uLj}&#ByCFJwxvbt4l8p<*|a4U>Dczv%N-@u*PtTO>5Um& z#!Fh807XE$zb;Ro$d=TxQI<(z+tM)$f~SrI%~MB#a>r6m?^EkHo_Y#h3cT-ugk2kQ zEfT^g@n380=JdsGThfHtaDw8Pc)BIENS%flvn|Q$%$}HqIu%G8qe(|A$kQVAj-z1a zCdsC}`h%HgP>14#QEx{KG4c(MY(;k7R~-cUbxZ0Phdi6NNL|+DIE|t7rQ3rLXcZk~ z)Pc}V$(N@*z1Ox?7p0UwZL{PlWui7!=vHH+7lDqAPMw5~*(XQT1|Uj-Cd>>OB)fp} z0GlM#1aVYG27z3h2=Rmo8MHVdqqIn&5U8{*R#iC+6`~mk0002v6aXL?5DEr_BEeuN zoadn`eH4HUbeKGHP#X%Qu_Q-f6a+z#LB<$D03gN~LyRe^u@V4*#>3ftqPRe1Ip=_I z@}airJWDy_5cTU36v(|C1%}S4H?;DH0!iG2jSA>eAw92DoI1h@6eSo|_Lr2nBR2zZ zputdy*xXOEzkrt4dwe*cW-q!7gV7<|{9@ehM#j8-q79(@@{(Tk3I~2&?TV#K6XQx!2C8Kvoa)IAleLhc*0`qDEoEN`ViR8R*(h%u^t1*nHdBr zb;M6OdW+_F4+2QFL4$Gv+xJBuekooapX-L_TcBa#Xc@5?(Bz2dJRyl`S=>!RXGzr= znisJXV;JKw1XknhPyD=x><^sWK;to!F_K7;S5@2pcCbLOAS<0~I7_|rKT%UwWVfd<>vm#b3?DZq`5MV5SEP7XkZWeFX!fOdN zicJSRX-295B-CNlthP9w3c$0*kfd6zIq{R{3FNIwK+c>f6B+2q^f7`t2#!R?#>5v9 zzOjtRnZ`p|qH!1TrHjNtHm7tTA{ag=LI#<0HEDna$*1@tQ+ zt{aw=48Av?tPqLvJ6j`*Ymq6X@CES`cmY!xr&1xwP#tDXDmch;#=ZpWKyd<&ket+< zzOk)mEjugm`HgL-4#&qb zKoWHzq*^*9@e+vBz|X@v@8ClW3rk&=IF)~a$t@JI)4=RlvgsMnXIj4}ukYH#5>HP0 zcsC3)Q4yxmj%5X1kTWgoY1O;eX}-NoTERw9j&@Go?+PX_w-5ZQ3`&Vs*x76jFyvM; ze0Llxqa_+83ylNO9;YwLp*U8bz~kX^a#Ek`No)feyu;zD{15ggf;6rK%gmj9JIj(Pt zj96m_TtmdT#jJfzzZ1X`gvil_a^H)w$6*UWO1F=?iX{KA8*P3QD6!peY#z{03OfLF&^^QtjfoXaV5H z@zDQp|5COdK#veZ>OTJNJlFVP67o9w#ZybqD7ujEZ>D;m%|xN=FMCP_#7fQY+r&Q^ zbqhlh1pn|&AzQ_wS#9Oa$C|sO+wN@!_=v&U9iIE+lgB3OVMf6QLKWj^&z^2+d>4wx zqul9q8=6xBJfCEIGGVkd8fGvQ_}k%rdxGk;&^=SQV?Y$gc#auZL)@s zNBEBzK%4<3R&K_ue4^lwLV=QPzTv)8LPZ#CC6ModkPRg(lglN*wJmDNcm4$$2z7P> zI9$nV0FqOHYx6WVoc}zY1mw`LNIcdbAi4*(s6W-2{NniM)%z7s%Pe1v;<0BAdWAD8 zRMR8Wnn2@?3jkL9b0|7A_*5B`lJthDCEOI4r51uK-$xms5%{63pirP;5pSQ>vv^;T z?2MD(vS21?wGPXF9jQ~F!5n$}UX%Te_MXN!BnVWWM5hpBailv{l+n#?+Ov~L!#hj{vc(_b0sBlbzz?K(CqZ|O;A`bGOPW~C|0bw@S6zc9{)J-5op1dEF? zDee3<9ebbngJ=xW9)@0%r2~A^bcI!coyu>d>Tr>Qu%HcUGQ-TRZ^~OU59Z;P`Ef@T zGsA?Ii0Hu;rs)jT1unLOx>tC_NXTm9&1N}vwMk)eEu>2zD;#La{Z;ZuulB6$ij}O_ ztWZL~S8AkIHViz&NHZA4)MS7GWC%1sEm8JixHo8LZ(gK8`tv|A&0a3D=EZQ8s7@^x z7ttJyFj>JDBFWFt9Nn(KuOPUz`Wsu`YT52sAl?lU1QcRa0 zGZkk(bIF?qu@x$S<63H8d-##ay5aSwsk%TI(qr{H)1^+2)S?Hb@$kqqL) zvXDj-Pkm6clcmv5-A{&P4$V`x2)Z$HC31Rr1G}R>M?H2Spzm+tdiiCA=J~>|t5Us}2I0@y^3w%vn{VVD6bRwG1 z@>rGS?)0^jUdAF1>f{|B%}&P5OY>q&-`*;8#1eqqKj4T4_2yEK6yedO30djvhc|Sn zr8`!xl+Xyg4T%k=(dbJB`^-X#O=Bt~o6*mc5UQHoP{tabRv4%z7jOy)uNeUvjaJ;v z4Gz2jTBEa@z|~fJfRto-V(o{l9coa>`oUj|g_~c-ZdVkMIarxTYeW~9WBj~+vP)}7 zYEb)efY<}c7ti^xCcg%fXrE$AG{f=dEi$!N%;4s*805$U0Os6&RP4eUtG@!?7j4c} zJhrZyZWQcpatp_vR&jI?GuCC7RLujCHNT0~*OEaqQ8%pg?oIdj?1vA|`8)w|jjvui zL{n97Ep2CT{Xl&h5Bi7`GkGuJCQUnrA`u61qDYN-27Jw#4)I^GKxFeER+sJE~^VSOZaW!@Wvg%JFGPecR zxRKRk$^QwBu@s{m7I+OIJFrI&c#Hboq@-;BY^QB^6NJy#)!ochc^|pUyQB}B$@RYC zb`c7nPr^?P451duW^ttBvBP({OhGL!j711H(LXB#Gf*;KM(T^PLCVaV!{^Te!!+Gq zF$JOt7?5&E2F(C5CHWM;dyFOmU!u?Y>3!Hq^F|Bcy|Jxrs z(asJiKly;1LmGh*fn{-qA^ssctN~?7oK|};w6N0}v;-?~@4?~u<<$py!$(H);UUu40^ru*Sxvg@9@ z68%>QlygpG0=#TI>V5 zcXG@y`!E)UR$6m>$Cm`1&eJSGGiq2@WK*L+zbIN-EGs^ZqQ};cR_sbo72q0bB-x;U zP89!)FF_@Eg;3VAVB3P1q?*MBHa#`DdJLPuf@9198$7#;rvQTE3T01Ijs-+Mvk&>w zm`kCeobVkO|8zBa*|3RhVSjD@0+MJWZFrYrzm7UZ`zHEq8y0zH3k}%AM9($qfdiId zfiH1~1nZN7IIeVgD}s(l4aTsRzu4NQ^RjA-d|0O$dV6%ZIACqhh8QKH@CS*ig5dKZ z@7B+1_I+2HY4`TpdoHK`?8HEtKWXLawm`hO?sN844O(q~yfaJd1tML@3PAdr1v1cnx(K`IBFa`plJQ!6w#Y+BSe; z?tatXl088{hMGtUT7^VSWKazPj#gqconjQeTNiO`(e?vB)|pjT2*XY%++sSC2Lw?z z+-T)lLx2@V|F&ymj#KQBLKCZ0EL4guZA^a6-z`xq z1v`7i>NlMNgG;KdxPeDz;?{uaUS+@Gg%+j;qHOkZdnh^q>4RJ|Z6j@0B- z8&dCae_r3?ESuf71wKf!yKjulOjHFQJL{^>60Ylo7@%d~xo|heM2ngv8fi|FwlGl{ z{2XVnritkhbAtFwQjtVYQWni|?`jeK7AYrcrZH_qHLT7^&v#irIa$Nf37+H-2&mIgDt;{G81(ScB9R{y9{^D{H%-{_y?ICzDJDuY~H=P1BB=}unl z=;2Hk>F5#swCaJ|B@{VW1Q1~$i~YiomJsw|NID47A*sxug;Mr%H*R!}>pX@-uI?38 zG)Fr7#(t!pGb@j=PSSSZ`!R0TRijfCQ6^XVB+sel!qw=Tks#f+9|%8{u$(-34(2_vY4A*ZDB9*1c2Ke7}ckDVui zPH|aD8%Cz6jIKdUCwI2R&|Ka4O~&r{qU{l^Ca1D`bsvNURIf87aTGV9dq@qENrU$i zUNj1_{6UD{29thryKzqT00G_nvd9_C(~cQ4JqxNj*n=9elBR2=2u1-@ss6KNpzAG+R44)PR%bHxyFIp*oV$w7)GMIrhLUVTgCTdF6I>x+R3~ zH_rxkU|4<^7={ioTd@kqhpV)v0PwZ~qK5y&N)ePcDzTCYMT#UlCP@gG10|}iPJHT3 z;fN*1STv|#c;uWb4o}_MXXKmJ{{L`OUGk&f#28^(h zovobC<4dufBHm@X<@722h#TWBN^!l#OjJb3L5%beIAe*GRnOkE#@Z5N;c6V$!wIzvh+M2DqKne(xPk+An9WmnoWP<*P%gdjRb46gYIwTK5oEP|@ zHo0hR$m8pxfkSgW48Z(VA6vH=rX8aPPJ*9Tz^H4X5H;A=H&XhF#6=iy1}z6U-46p5 zn+PhAU;uK{VQFVkqTH-60Ylj8#;ndo6=Gf9_cuh7X^s|AGEl18f`+0T{t*f12v(Gd zK?K0od;mb%6T6iunfy>FXVoV}2wG2hAFT7*(98ECIkTsXGT(x8i^88&tiC9Gfxb_0 z@bs$%Ru~n9VB!2?U`M4?3trh5M0U~>YQVC=IZ*u+(kXvqKWS~igkFce2r*a#iX`~L z76wdLXoj}#MfKY$L?Y#(%e2Guf`1brb*#er7JKTX3E?WCVHEuqRe%Ced|MW&;CPt; zKf*}46i={cB3;#~Cq4_l|L`$lG>#khxYRY+Il1cYYM3eu}Xy#3(fRzDkf=j`c&y@$2S-3fTgxxyKK%1+cetSJPaXZ>@{EVUa;V{ zhakfE+Kww(JO`zT_$oa$QDtCFxwJGZ8^U{b5e>?W z_?dK_V&k1L{^aE##c4zV{-|ZDtl2NkT(uPtP6#1HwYsWTT}pJFFEG2mw4lc#t!uvgmzISrk%* z*7j5uo--_D&Vf)bEG&G%{L1E${mG!#H^4{v^K%7+Qy>T{f*kj325TM@A`XdID9pwl zUdcqs+$~yr^wJr*v(s3JfmU$5@!D8CX`F|Ngb7P9IX&vv-4_tYW=~4nF;j$QjR@Z&k^ ztnFFN4igNV*r`CGE)bJN<@dFdwIV*#a|f9Zs>iZb_jFf3-D*3~>~5YF`w~il!J6XA zCpDn}1{%D@Rgat-=KmwP?k8=#^`v2w1Aa)}*ALE^bT^$uYDC@>k~2xr`Ptp_zKh9f zSSrtw#(d4long{A+i(oM25{BAQJX9jsK_y4SV72_aOs6$zFA-O>?;3Y=mis!mXs1D zj#tKrBJd|*CY)xjU=Q`p*a1O&w~8)^R7Bs%8KtjCa!E~GPrX3~AeE7`g$wj7bRaAC zup0nVDO&?>4DgCwcO~O=)YcZRO zi;OP*667ZHjG)iQw>%JSOPpn{MwCxDtYpcoR((fjz7e-uM@}Se5)v!4 zf@?p_cEQlxtOX}Y_2O!~q7^HjMkr2*@0EF_?wz5juV}O-QOp!j2uO#hWv-Vvw;;dS zf~_RMyjh+Hk3mHYoD0Y`QI{-qC~$~hQ=X;+Z4tJ_ng^aTxBRRvvS0Dn&96V{V zZXn+;AcuMjp-p@$u!IPCs0==VTHR@_^Ns^w>?PjkbJu$91P{H}aG9idjO3Wum6G91 z0B_yd*t@}7Y{3b&)WOWS1kft?y`nH58k14I#BUo6>$E?tgYnl8I&MJ^nB4`1C(3gpWcM6lKYtplO&MFq%sjV#YPOPXSlj_oGXjc%pp7x}q6U zP|s@5dVhe&!5D<{82Mf=1dU}nb&;g9T#ay43L{fPP!ln?DH5iD$o zm;}}?V<-|UD(7KcKuO3iVR;M(sC>4!`i}(EE0GH~9vdnp^`1e9mOH8VhG%s+Q*HWcHSeGldf`Oxwa67fd1`X@K!0Jv!>ZL zzYHZ?C&yNR#)x%2*qqQ6NYzMHLGi-tf$S0DuMB;2`cd#-I^PkFZWVvSLf+|whx0u0 z)}{h15cVrLw>A?MJevz2Oh<`PW?H4+QG0M}Gn}_!PJhBv7@!aR+EGl?3$( z#9;r}3HM@%5a&)?^@2eu^~Q$jE}WI_s)BSysAmG7!4lB}oCJKxnu)+O!eU1fG?84f zhZ%8GQ344nVtznRO`rWSCGC41utDsh{TV|E>dyY`8$ZX|dMW^8Q{yAiC+hJOYu|-i znMgBDWI^E%&k@y)m0>_)_fbBD&(Hn&S0qe96OV3*rWSDE#4NnwwmeY6h}wgmvsBUD zE)0yq(G58Vqxd-LG=I1;30>%KJ!Q6%Uw`4!8!7M^zbOs$aUGv_uXbyDzwyG$aw_j{ z1G)?f8Zqif4=r@b=D4Ok_ZF^d@G|V>n(<}8Fzp={ofHc{%xQ@`KGO(FN#sm0%mk8A zO=F#a48CoXtXIIQ{}@*v(R@iYkWK8IyEs?{w9`(p1#%Dm7nv)KixT$4TYu;p1^Q`(7a2*=~Yd?fIuRwhlSm4N= z><&YCZe%Ln%)h|SmSc_y5iLmt3R>u%<9{uy3I_xRNP;BQ^0j8uDKHF-T}Cg+J!)4~ zNz39(&>R;_#+ZI~nR7>yetAqL^3ww@R{=Xaad@7J z8Rn(Yvw$w}i>*cydn>|Al`qmd)Ue$Yb1fE69Jn^h&Jxlv%@=3LTnf&>7O+tViiWU{ zK|+8skhdv7X-N#Dd!Mxc*x)OjM>WlJJ3N+G(R%MGPDzv&wI!;FV%BPG?a4PVaZ&?c zN@)(BEz`w%B;VGq%L~tOF!n<;Yd~0Izqzjwwu*CO)BC_seJ6tPL#&a{c#qg1&kdQUQt_**uE$c+spYKlq4*bQPXZ^f6KghL$nnm9N^ z>p161G5nW9$li}BnUK2foW~J5 zI+bzC)s9Rn1Q<%jwuKfmPV5|8$EZ2*KZ(?iu+qPo4T-5XOMpa*44&c@U@Z_~Y%2a6 zjA{0w&eWsKC?;gUvg`9dWn|vKcWH=(>~3y`)b2&MMq75`$TgrOZC>O-(B4C?aBoB( za3NopR`6YwH8~yOM@DT%DlBw2;qDKa#4)^kU!M$6pvHlF&~eggM!6y6cTw8H zH1H;HYP+J+;*;BS^cY_CXD}Y~?#zHRVZqkqR>;bFWT(7*_R-<2X`fUU2+CKk78AZ# za!vSPt@m8XJ7kB4dhi?pu$L}=Ac(R2KH`hBh^9z2xioA4R?I8KnFbB~jQbA_aQwuS zdB3taFFgkkbyG*t2Z+^VyeT{+owL@jY0HFDqAeR4*AU3td!o_06!jZ=OlRYFg9q@K z>r& zKxZrnA>}E75Bbgo!V*iL{M8vqHEae`Y3_9aqZeiQ-%F!J;L1Aq3z<`@EN#32j7az{ zxDO&l@!QqXk~Ig~*MMZ?R%@}f;r8&nnq{bsIuBjb9An7icm9^r9G7IHjetnr4_xZT z%#v0328!e!f-~_EhC3zUX9XXF#V?*aYf*HnR4@Eg7*PxxE)wyy|*>}@H%8eue zYt3uk0R8z?Q+Bq*lt!+A1vOj1r)Gv=ZWFMFg}lbxanT*&)*i`J05w)ZFwpPUVa+~W zNdlJb@D^+r*WN=Ljs~0Zi%oZ!^TuEndwuAW>6e7O=&c1Asv(j%B8FtMH7Bt|6gaL0 zO~X)lPJ$F&kyzm+;vdg6%1XOQPH!4HlGnl(z*{8xnU{$kz&3vVbhPL0nZr1~%i65wv zzu6STI4bs5T+wTnWscaCW3p0vG#Jqhm{`d5*=8y2Eim4Ek6KhO*$8fGlFiJh3?r_!|*$`HbmdHWOQ7Fj{{0Tva@ z@@{tkv}hsz6LEn_&c1#e;TG2n9Q9VVNtpYVUYli?9E7AE7HsOVBAxCL4x_CQFXYxV>y1KCu{3vAlk}m^(1L zQz%KY+Bp~9pGa|mxYs#cN1#_3LqKu%{N`PP0~It6hli8Hp>-7vlEH~2?2(lCGxmw$ z$dW!PLM+stDk|FY2fa9`d~b=Ja{P{Iv*RALv+G}q-WevZ&}Eo)>7$t`Irz+2pD#B| z*=Ew&XjLGx@*qY9%_t90x=wQ|y1Oa?9=$}bf%Sb{7F|>{h`jL>pvRQ3BaS60KdT)p zY%*1>gNKm!Wizo0Ot-0%CvHv^)M74{@X|_R5^-3Fdss3G*io4HnjD4_Ae`@U3Z0I{ zR`3aM{bG$8Q7MKu>kK2IiF^iX_FJbvVk81v^vbeP_)7c*C{3r^#t&ce; zW)~88fNkeOd5!rWv;E_!jktVVx#ES_N$C#A`$djMg;U8w(tyM|FP7Q<_)Zhy0B!*G z^+j^rw2LW}l_6+0CLog$in}bu_j8tEX=%P!l2fEE(IA^SyxvUw@SaWqw8*r6sLadKlMN`Qzg{k_Do2>t1J;{;yS2r}nX zyQI151wVwwIr&xY01Fo8vb|em_E2U^AqWxHVgrl^+O5qpFeAh#Y)l|7%SZ2hJAMyE z;AT$jtf2_8+AYcSMGsb6z|9ARx0K82{0yCzz7%rI&YWpf^RwlYJgN-(r0bxUH&=cl z`>0Xkp%sjGqhiis zc8p~CL5d$fO&|d;(ZEjPUx@gIlF`vWNWX@5>#a*Zot7g!2%If;$0D!fmmiQVhY|Mz z0fP1zc5k$vCrKJV8fcg=5us)1=QnU#Yuxd_0OauPI& zyQ;bswGjAlZS5%=Ye+l8Np1$OL&nAkj%uO8Tif3yP^c~@-H0x1XJ=rj&!5W`4N`%S zK0U#b?j8@f-;KCGO$pS!!g!5x&*R$}@j`!FlUzCkw>oBZ^>6WGEvm*Rj`p0Tc-?5( zjBKj5esc7|04DT-r`;1KS7R;*?f0c~bQw8Eq8{`KP+3cU%&!j;3t6xD%i2u}Cx4fS zLD+f@8iH#WR#hezscv8j`ub@^2}?({0Ht}_-kQ)(INqONdfl1nBwcwwXy!>fEKVdSo%lA!0Or*yjJk?Rwp#4}Ho(WZlaZO>%(5ul{Fr zZ&L*wNn6NcDSyHV5+X$HQxaBHN{`rsJAK=b9DNiB4jkdhLEvx)lz-Sdm zC=Z@vQbJj*LpNp&<8=l@$OYpCq|{{K$gOP6P&E++JRV8{d$IB<5sn)P_%TE25}mmL z_zMcUEHt!P%}~K!kUafA@AvHds4GdhCDU~gj%qDMtO!F_^$YHm8hk{PhQG3C_h1Px zJ5c@FJT&hKDG2sp^R>|7U0%Fh*ci}69>>O}Omr7<9YUpRo(dzymxCAc~5kMi>=mu+8@7~gQ z_>`Ktu)}|99m)usao$9cr4>5XF;D1P$7H(Hn1VFSK7l(W9qM?&dVK&HVQ%O=5)iiT zD2Oe2*2*;ys#pxhsa8|HSNObxndHENv$Z}UGs-IF>QBB?%%iOU^kvI*UU%~oC>@@T z1@4z1C^3;AGKVtAgi4MqldApWK$<4FGXS`Rh`&G=6hKO$DVwG>HiReGfbqG_CbHmb zBWD{_h%EkH$-7pbw|i7UL1|UV(UERqiickqC^5mRVk(OwCXSULBzrFFH4HvOQKG@| z*h8EA+Q-vSd1N_%)+cBWp)Df3u#D|vh%8~F`XAiyB&sm=h#a6uEPbx@`iUvALIa*O zHJGK*qjGoKT|LPhj8PS9!-x*yGWsmH(4s<~^F>AeO&~AVcDyr#(|yn@aReRK2H{Ds zY4ROFt=0is13VL|^)n!Jh3AZL67l*}{sEO>?iB&#T% z5qg~r?jf#dpm#$V`vwJHD`z{%!a@5bRsJC$Xc7AR$XFWden){xwZm=Lm23__08ETh zIMsXl+a$orNy!{ z27=;U1>N_RClek#X$?06gk~@>0-(Gt`$0FOy15mEzf`Iq7_OSvt8lMBOSc$-`seX|Fdg&LZg($Sg~KQ##vF6 zNjA6w0-nOXKX;biqBTuuQ^+BZ_5PT61JzxI4+$6U!ZBKh>ShZBjYCYB1FagsB--0o zOq^CknER028y?ey>sj<{g~Nhgml%o#PvAES5vC6*i@3g2q(KsrhG&65T^eBjG=v<9 zlm)7nhdKxtDy+{Fr5G?08iW@FjQ0@0j9Qfvt5AE<43g#+&eCGYLjvO{r#LW#k%y`4 zZG7I!?4uAcK+Qj~_3xSO4FW{CA^k20t}JiT(^{7y*{|~-;OIN1J^n7yKqc!gH1NZA zi;J`-t_hHU7tkSNu~ID%=I1|=B|6{bISt(sQb5+lV6B-{}BldKI;L&#u<4q5t zJ^imTA;n(k8SE-m%E;KIi3shnP{vOtnRK831_is$f3S;3o{q_f`S7gKnSn|Gv8ABo z>AbtUtQFtFEuM_Bb@n8i%R$6qV}J zCDeIS&5J?EQQv%9Bk@71F375$#ZZp`1Xx>D$Z*DriSR{syR%;9BnjOMr~V6wuK{0^ zPA_@}dn{G~2nwE{GTXRmV|aqZ3lGlG9zXl}H#j_FnTFd<*a^~uv*Br@OH&(7Dmz!~ z5ujW>w=pM_eQ$lm4Mm|j1CT%^yC>NkhNkXuu=+rG@%!a_H4T+)oG8n@`WJ^7ip5qF zTNeXVWdK0&Gq%c6!Mag!$71qwZu$~*z$&j^`VJEua6uK6m@1flUdL#GRXWn6DCL5! z`iF@4^>i#yh*c${bxE%w-iPac;0RUF2xTfR0*6PKM)G{qpfhBpuZ6Pufl^U?$EgN7 zs|x^hp~Ac`rXLr0)W?gBQ?~*xDi|MfLb^FRm znGmV~g;F4C#+(_V8xODYoMG-rX!vIRNn)kx3CCI)ZZ7COokA-2fS-uJw9J$PWyos45AHL*tqR3Mp>QGP?-Ar=8T4k!dHD3!i8=l!%V-vMaw znQwA(D^JqWkc?)oIJH==1P{y;jS2N-HM2sHn(sY^g@L7%3HZT}hJQJbmuNqd9A%xM zgyE9=Pr)IPkm*a<8l`BFFFa=xqcHSwYq1(WoD)=X_D}dII2~9}xjh!ff8tsut%7JQ z8U;`az^(X{_5g-zYBNez4N6lu0619g3nUi>+ja18XAWBhwrpL!y1Oi7`^B&YeWs#6 zz5leLafAcCxWKaF_Io+7L*{k0P$5;lbo$7y>FOeT>C}gI40>!-VS=YF7KqbU_K5~8 zhZPp70Yz)cV2$+iKCDft1?U169faRyJvei-pZsD8PH&QM8jxdcpuGa+z)dYwcj}DH z0Mewga&ps7KEBps0v!`geV!-$0k%9pngQU6XTt#w9nCcqdF3NUbgU2>(E0;)SE4rw z7Z8?!%s_V2UxB}4rseB8_m;IMEw_|FD;(rXc1XWTIikw~s`02IR?&m5Zeos}X6c7> z-6_E=Dsh@dTu{}O@p{2_WnW*~)#I0LF>$g{VcF9uFx5|xtx;#V=EYDqP+e+kRHte) z7#!mT{$%PgRV|y^>B`%mYdL~+BEqOh#DN09l{A^?lJ^iO4N$`LZ*VhQH_t}1WlUz~ z=EC2>(t@m@lY_O%eA_?YK~0g3e;4ERr6zEy3D3qGiypN=o!e<8rgZqDK;5xtHJ>wyE=Azyb^CR&Ty^X~GpMeX*0%&IaaEHJ=YhhT9y zb{#W63q6m5R#7)IQOGOSvdjP5Cl z5@PE(E=y>|G^aT0AnYF{M`S~ibC2Cq!&guN67VNJ^J&V3mQAI}4i2ZZrt!6JhKDb; z;FvJ*4FxwMCyO+tV&KoeEFSb|ou5$Px1~YPT#Fm16Xf7j>l(zy7%|6t<&wwUmBrwD z!K>6&b+XK6S1;aJKO2No7|$7*aSs{a0kM3N(T{^~LceuoOGHo#ZZ4`tfxD$+tNznD zjs9gH%{h!~b-80Y3rqtw9@cY7V;SMSQsn9IbqKz6oK$kI^x)O^{rojMijE zv?Gar2hgIR#7ZrbBFoCdW|GE#YdHCHQ2;W-lUtF+vlJ7hM~$Nl z8tq?Yul2I!(FgMS7KECRu_^2WgZPc|0a`6{mX%m}pf_!Cj0YTAx8;_kir4D$vVRju zdsEG;Z?lcixqV7^=&}lenicH^qk(EEF5B0ai?4uCk9eu<>a^*Zu-0TRUr}(AA0B=8 z{#4)^ofcOOi|R*YqWcxnLX}wD?>={`o!b%25|4igLijc8rY_;qc`GKTE%TomN}vV4 zLnAIIL&({=s2;Xbd4vB15#L-^RDVRBZ$%A!@`X@J z0rmKZl7e)l`g@tq8Ke|aS_{cEnTe4B3>T8xj$;~r$J=gGy_1d$))yCW1HKYRqcK># zxpF(H?Np|1#5oyYK^gR)WcgnhFg~@QAJ)nzRMIbp&Xfm-PhUdDPP8h$R%xywV}g$P z8%aG$rx)iVDjhs7tF;NPXa3wJKs}0@`2#X)j^!k{QYJjtij(KmjLL<#^)a}!)lRJ` z&!d!rCVgV30qzY;dBeB*nG9^dskJu!t@&@CisH0E$!Z*SW`yOn?bFUYRow+4=V%bG}1+izsg1~__h`L zr6oM+t%h>k)du&Va)bZfA00asRYPbTF~#UUW{}e}5&4o)52((xDfUAb6#(yOvcJo) z0hZ!(@~hNE>WQMl;P`pl4HQKN=R&9|6tANxpN_ZvYTa~GVXxe#Yme{Ic*cbMFWBc*q(|a=i&FWgyXU~a6=rbm8isac7p^AX%Gyx zTj5|w83S>jK|Wp4rCUQ)9l!YrX8g#!WHyM;rRP(lIlvN=4ivylQRYw$?xM$+F^Ic@ zAx-fB({tA)WDngLgr8?VDHIT5mg3S6^s=EI7_YHRwr{qtI(#nNdqF>mN-$V5LUz|D zyxoDFAp&JEjflR{EDVlZhF^QSF$(sVUA+!+w|D>2}Z<34H(u0;qpnAmyWQ?QRS9&aJTU1o|9 zS(84|qY$cea$90?UNEuoC3p_Mt^1o|zqDH5H$g!|MA&EOx{B+}zdAJvXIALV51wzQ zORtYmKF}YoNn97Bf;cSp1L=^1w?K*3|FppQ+~;R^d|a6fB-cjg=Mpg{2gB>}lpR75 zCZ55B;5&Iw$5z3S*v=hgt1Ts$0o>u6nYAJNH37M?0@Gfw~8CQ$V6Y0E`BtgmDa-y7F0xL}Doq zxj~JyB*VV33kI!&z6)GFc$xbvc5|YTzX>o~)I`sA7lcuIrSq6*KvwH7Y`ZKO3`UoW%5k zsZu9$b6l?qDKZ@j=#ewdLC;9*=|hV3Up5`bfhF#u;j^e7_5F4lnvRH_?}X{uG0c)n zGf!JRZa_<$8>BXi19d6_>xO8n6|4^v8FBG^VmGHTO%7vD{iTV>dCJq<0|lr6+0p>4 z^*wslok$Cy=)j;B%-<>(DK(ci3y zh5BmX5l6&jIy8BY{Mk(1E}B5%3<(v<%~WG%1Z!}s3VYS}pf|#o!LIt!=g2KTlY@1GFySsRyo5!l@EDQGwp?$|z|dhR_eRlHlMoHTTvK^oCzqj zcot=?HVZCC5%z=8S>{9NRU*{MQS>gc2~t9R}Fzzu+uuD>IpAHk?yE-6Fdm5WIHFb|l8tzNNij{?>W zI@Mlp7s-JO?f}NWcZr04 z%n7y%8K94}*vV@t;plu`SG26H^?;WVj0Kiq6{IGO_olW%4>f$}KinC;HPAY45{7Sw z0dEKPEf6bVA{#3PZU8<>zuv8Wy=rK$9UfHry88)-(q5xNExm%g%^gBhv2M@1!8Z1p zuphm>mP=%-viT%KREAE<-)+|8x>E7hx<=V}FZD;ExcG{gO({{p!>?77N)M%~RTM&X zRywdg7Rm$TPJl0b0bJgq<fXqLzo-sIFgYf(vF*iGm}JLDV5jt`y@v)C_7hxJ0*=R-4Kpo)KMyQ5DqkG$y3L5b{C zG@1&UrI?SJ5s?h*u0j@{T*J}B{V;3i_5X1vmx53+9AoKDF^}p*4o|E&5;q4WLvmPP zqzC~U0FFN7G}dF1XGws^G^B{(MMB4(HfH4#(qY67aqRk6mE+4iD34z?`<^Cj@k-^WVB6d@DG?J^12a=PW%jcUGw z8?75olm63plPum`VzIMYSBVAO140+*x!vd4mdJ!KmwTjDGD*p?z_L^qNn4n`0N+(& z{$a8m-0lBqvx<5bRimG%O+qH-MdT=_w82mv-w7S)tuS1VMQi*Y@vlTRIok}` zK(2I0jA2+K@qH}}(K`+$XpM9!K|diec@IJX;2$=9kRv6LV_96Unl^47rGU8iu21gt zvxiF_6`U&Bs%XL^y2H13-i7SSb~V@8E-z)e9=Sil@Tx7DAK|rb5Ei5~ogN5i5Tl8x z*~#PcBGMDDoRda+5he^-E~pbfxb_o<*tL4j6wLU(8eW^AS%Rm&C9za#D%Fg$p>SvM zCjs2aF-;ts)F&k=(w_o&$73`(W+BP-_-@32$zULwz9PU3Lj)3f#e*wu(>UWMIg|Mh z{>Herm-PI|l4ndp0cCc?AY;IM6UV4|UKs%{88pJzq6BNw6O)N(GSnr60bN9&7UO`} z_O@@)#!R=99jszF1`a@Y^*&cA>HwbCWUw;9`|Sh+Sq+)AV40y=91-$*-h^9N2+#>0 z$Aq;j+5_h=R9lBi0(I^EN#y!7Jja~F7SKste{2>jgwhM!=WDHWOr<^J;6PsY&gr?& zemZVJjy*rHnPhCj!B)ivsF!uzMy!z?G0C`0q2%A?j=rW|X2F8MfBDW-Z+wr{CkC*K z<(x*>cD=vqk& zBN50`LN#PcBjq*Grf@gX6fb&!IScz7EZ&faAI?cd#kJ(9sh9(X2es}pq2|f9B$T

    -pF8+dAm&}K1EfWuorX$ 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

    !1;1JP#{L;mCtp#j86BR@M$+ z4{4qW6c}KCQ44kTs^es=PI$ee$-la4(7)v1HsSVU*jp#SR6?iZ2u6=isIbPVVOfjV zuBW2FA|*yAlxWrm8yu)yX(~T}koP*F0MQ6E`|SzbBKBD0fA>DtLiFwmP@u65Bv%bL z#(D_-Y!L-HgsTR_v}*XtL~RR3Qi~U@la(u5ZlvTBZ+F@@#cA50NJvjncBo#f7|>vg zW?K?gbqc(m ze*@8pL&bznu;UhJNz&Q!n0Cl*2L;t;$hoyQ*?lf7JrY;nb)O zgF8M>lDl}VyWNBMD3CiqfFgI+?j$<8yrb@J7Gp-cXb+02=6;9+`Ok;ewx41DwNxUM zo-qkH0q8|PUk}fC2k{$K!^&}IK8q&cJ|y$UBSe1kuOUeRdDD5!n^7_q|M!L@9|@NH zHNaLonbu3>Q{nMtt4D^GVt;Dyvy;lwZCQTq4SyYu$lttcOxho_%M=x?2fq|j0&1SA zPg_vd*`y5w@Av|W>AR>vkyE@3A~71mcr2(6nS?2GrSuA<`1u9AlBPX(Gb5e~xq3*t zF@U>J!Hj52Hd=I9*w8Q=Z_K}4{}58fzQ6Ui-E22WBy!2-%I@x+0@4J;1O)}5o1BI4 zO?Iq$@j(c)NL@xqQI(=-d+$N`-h=N+5+(V2bIu22R2c?jgg2C{c3__af!}OMf-1k- zcGJ$U-KwiXe_k`C#@-1ba%aEl-*E9`scNfFRXu1ah4)0MyeIm7Yp|&JhI==MU!VKA z_iEL8y*l&4@0a!XqlIA`D{#A9oFH3&!&NGZ_JUHyknB)~AcZ`?ORgkyxcoC;Khjpt z^0}W2dio$1(7lz#Zv9%>vfTY@@0_!`*3-A7wBE9;Z||0!b{fgqj4Z#^`qo-&scJ1u z6GkBvggDSSkRL~***z!jo)^hd%H^DW=OyW=u>$w|oO7P$e81+)e*AGUS|RkTzs1zg zMxtc3C<_1ldXez8R932b|LXm{QWWJsDG=b!4FwY@dE`niV^@kVLlL;2e#qgp&dUu4 z?~a%1tFJ!faH>;v9jmE=`z2++AJR#&kq?r@?<}R1{*~miXSI})?e6~W-_++l8ne6qotVLC8udSj*?w3H@Xh6@nVFnlr^!*EPI3Mf;=*OXRNITO0yxM#B zWPd`NWLB}B#j(5x9*0azA|nj8gmgJ4vH(knWBb6JPxWX+d!>Nx7B4q*4}V_ zPxfNTIt%-KtzR;b`C45uL1HeJ`fLl!bhq|aR;Be>&?PBQ5tZbGt&DI*S1N2l-*U0M z$cll?MMO!=i*N%hfUr5iTxYU$7-zt_f{wlWf^037C6FJQ35Tmj?8ypSRVh}`m@YyQj4VFTP=s*DsVKjaoB+B6bL z8W1qD^Ljk4^mbq{0y{27?uy&OU4i+`84loXzs69~tt^G3@4E$jWBtXl8i%CcWyw64r%`_{h2-cHC?Q-sK!YZJArGIzz5 z9zI%6id*BsqIiyeK1gvjTjBtw0HGa5y*6K-O5% zwQGfubj<7XnbWVeHTyc9gWRY7hKsdYt<`I(T77N(a`hw~)YGTnJ=xDi1pnu2z5Kqt zPLp0bwFV2^9$!i*NlL>#hr9_D$+wc&DC)aDz>sM7#cK*GnkSobq ztM$viZT4QB=RJjpz>~U;)m(umW?f0Xyg6E~cVadoz_w#Q*J34Vll+k@g=~I!RJHZ; zr&s4|e!JAy%YR-qRqT8UUrOqKE)P5oCGM(}C`{;(D@h!FO>E>!^6}L;?$z1m2%Lqo ze2YW0jyk7enGV)gA~}PRDeCL2wR-C7w~JI=JD)_&M!UMJ-?FO|evp%pwIKn9|4-y* zdoQ}qysoaGie6ulVayF>iV!kKwcQ$cED;68 z-nu&O>bN{=)>8Ji4A5<9d5N)-vjSKLV~P`_m?geZaWB_nc*@WOrS9$)i1l~s zqW|H6UNBrrDYY!8lu{hJ*gB<@{>*(ZB4tSRlwvGXz%^jFxv|wLrF0Z?N7mX}D{HL{ zT{Rw!e3pw|Fu0PGH?${zaz7b@$|qZ_1`Ibhenr>CR_dD6T>JPz!j zPk_S#!fqZ-jTjt_e7uw8+oS+zr7XWBgXENzob?ovaxG7&!2{v^DW#O!D)d(8>JNYV z^U4|ze=6ra(Mx|`^zAhrZFXLt-0tZ#XZ=tp6!Pk;?_9f1+gE44ol|n9HVt2Bq|;a-h1v9aZ6E3Y5hu@vgrYS z$^C;aj=c8QOb%LA)ui{{`}wNn`_`-X>;AlIu=uow(uN0TKlgs_=hDs}Z})WVy>}F2 z?`2a2-`rBBFv;~=SL@Ajx)=*c@QmxcWcxK_tE=Vv_ddL*`?==b@se$ww5di>t+{FM z1waw^>U^b$!4=tm-t1V3wyR~()p@bC-X8Spi$<1GN?%@JVAg#=g?bb&1H41$=rsNQ zd38QjxmuML-QDB$pO?S$KrbPlfwWw`ocT7%>bj~#u>s}v$q-Po|7^+qWC$FzP`A|D zYDKr!ol>W@zV-DhwkSr@LBCe|l~PN8)~D3+X}$Sp{;Y0|wz`~OYpZIB9qKPgV4FkR z!I~-paDv;Mb581VQn1R8FTdq{bGA0yY;a1d%_F=35AnnkD?MP+ zf;M`vW|5LJ)>=tA3SiZE57v%Tr%&&z=x7|#C`Lz@90hzl>c0Eda*fluoiXB&dxX<@ zjL>6@6V5q*P6#h8@`MhMLcVZ#QY^`x-TlD}AB63;_7g$~<9qMHpO;Q&ACJaSpiA!I zyjl$wO}ghZ*4HD-`!E|S_}PE}yWCQupdx#bb{l^8@o3CIfyU_pFXo|d1bT*h>iU5L zjsv>n9*qS!z(<>YfbaW=;tdS%sjD-y+Z1v41myCN0)8MLuH@uT78wwJOLR+P{P@xR zLU(Vm*x!|$!z+HAb7sAQPt zF=o{KO3C@$m#{Mb&36q#8KKo?n7}VYR1e9vO)Rj@M&~3C?Q;Ndg5%S-4kMJI2;6=~ zB_eIG!7GDV=02OwDWx$wN2iQ0>L3M3@@M$9;qXV~=2=(uU@H;h>$oz6HY&jHZyrbE z7`^dBh>{}FKv#ar&Eayrth<9S{yhB;=wmX?*n71+sTt$yT$5?8 z&ZVn!=gu-$cj#1a=Nm-GDAx}%Ux;Ua(gy~=Sfk42wpdXOQ7jbXpIIf14(G!c)+UFw zsbzaLB)RjIe=#UB;I_$)UYp!gA>f!%C}bsPq1h-ZXKM`xVagFi@=We2JjfzS z?%de|Nm>jr{rIv)vC)F|&xQ-|59e~X>BK{cjTvBfIP}Tu2Yewd%OCXR&vcIe`xu=A z#L6_r2(Q>qt~nW7$BGCX;=X6z^gvr6$&s9s`-&S}kt?(?cEgSl#t3;7fj@Q*5bM3$ zLpC4azJdrNS^n$0Lq3$3j3DnbQp8|xjO5NePbne0_t$#b4EOJ`lXLDySL<>ATF-m$JtdmP{qsT7fR4sOk=;kE zS&(2ScX+Z4je1?Mgn-7u?A30^Ijx!vyTE z~3=7d|Jj09X%Q|yc-_R4Q)*t6WVUjCigSk zaOCB_NHkgE?%!}1Yc?r3(zv)m+rbWP2_G5}ZE{PTz*%#VfgGC1B4=%iD5DUxN@R%3 z&q~-KgfK$*Qg+29457#A!+M;zSdNa_F3XZaTMAd`jtTQr=SzZF1FG+}TLN7p=Qv894H2*wAQR z6+z@S!jT4qjKvTm&4vwBOpxPc(?i$LCPzc(wA|cdeD8UTud?36m7FyjWY;S7@`1D~ z_|$0-(nhJ%C8Q-GC0@zdBDKZ}{JuSekE-r*HVL1i&@|eUM$t0JTk>(>YH(;X~)RM%(0) z!0%tBsDNR+m;+Qs5M?I`4?v%Je)rbD_g;#sg4@dmx~M6us`6XEQrF2+8%uD#_5LX4 z9SxAh9V6tIK-F+Ph!7K?k98cYg10ye6{tU7dan z!q#2}U7732?mt)Nu2@($bJncD?6QCpJ4q#lALrsk70nZ5^8T~FkM~4hUhk*7^yLNN z<4^%dLj*BLZ4iN{$2ccN<$N;cY=PYi4acVKcT@dg+0i)kugl-3E|`yoWuq2Mgk_%j zUoo!qs8F$zMUTVFN1Nd$&?Z+ugt1`R2!v%gS09{;-qoT&ae`ZqD>*7wx~D@vaIJ2A zUhQzAyE}w)%1Y7rbI$1#PD&|7O-ftkvmu>dEej!plj3@1GiQ5cGiN0@atK?4RE3aI zIb-u#h4&(~S6G}26DH)A+*6RC(l}%5TRtL*BuN;_qTExE=pt86N+8pa*vX;XQ;yil z_45QQ6uKw*LMqV14o8eQw*wokNzZVVqSVEM3)mEEP#kqNnI!l=gmDCS{&62a{-zXk zPZT>SIm7MlxQ`#V9an0$zOD14t#2!A^T&kJctn6bXU)h?y-p2@3$PH)2$FV$D~ayu zI?)m#T$9XcxO`?^uEx`n#FQ&%7`o@G_wDLXtnGZ(S9Wgf0Egas(YyTUYv?-B(WT_R z%cTVW)sARN;3g1*ru}K-SM#TZpoo7&>;f(0&+tS1H(cmy89&Rv4`Dw(dmni`ENgk| zArB{D%)$U3AMjg3SeEsfWmzx!_biqWOf2gk_M_$DTc5Rj z_wB#;=u=m>iS`XWy|N8tI=`ClK^28%?=9&50AUxnZ!Zrn@cqxf_xB%`=@7)H2%pFI z^s(;!8_sLH_$$8kQ*ULpzVJo2C#0&rwjJ)h_uhN&z4zXx;nBF*S|ieibaC&!_uhN& zz4zYS+}wQKL7#dZicy#j`CVBK`Tgf0#AU0)&I||%0rvdaqQ3fcPW8E<&bc7V(m9r; zhB~K)C{gE7qRyfJzU8&F>D71XocHu{nf;!=l`owmUm{HBL>Nfw97uXGo%3Sci_UQ` z+VozgbL_uwog>qx3r5G_0;5gup9_Xx<7qym@eG06ecOTJa3K7L(eP+A4l1(v3?F{H zxw*N);TT>b_d*br1_Ugi^N#mi)8M{@M_D`e}UdGhqXh!bm%)mvcg4QXg_S z6c)d`sf#or)%2;0R3(iRMRmXYhK|a?JNNA&BYczyY^iE3wlk;t%;C>x4*HC;d`5*n ztD?_r?kcwh^VuhpJ_A{_)>^H7TAx;o;iV6x+BxT>zFwEMYcY2A%_hyh+e1!og2E>h zB}J7~*bf$0i^`>7VM^pv6#+>gSZ)hKpCLpnPFn61mm-$B`UMpvND!MB;xk?dzIh>| z41i~;BI8b}VR7=pX9$|xf|3Nng{nvkG`Ex~h{T9jn2`btt_AkN;*wN6B?XKpGO&pk zPGauWq-c^UQi}|dyg*u(;ZhUhHD6)u%jks{)C*rpcJx9cV`;v|SQnTQjOqeuxkPf| zah0*6m=-P&3>$h80}I9Y`j$mzhJ}`USr7~sW=0nXWhumGduvaTHzfDv|zJZwy$NTY%%hhYo^ zK?WIP2mu5TV}JoNBr{Vi0Dv1}IEbix`vnA@wnBBlQ=%E}zzx6dGBQe8P()13O?i7E zgHL;qYMeIYG9to%05gjN56DXjX;GsiJzO+w1DM0hmt|-~c-dUR#zJ>_hSkj*VTy?? z<(Z|dO@xU&VCsi^8ypNY`9 zTdLYEuw*O(kb~|GgvZg~BvKjWcT$2XBI@m@#%D1t25N(bhV? zF*~C4FIZrBgsK@Q_VK(APdOSB7Qy_vNw4)}qAL#9nqBXQxwbE`Gvw%*M=V9YYU@C2 z_9C=mnd+M($`g_eu#}{H$usy6M{3u-)^n8F+pTQm)vbWkZc$NcAGnQV5!A05Y6wPK z6fsb^L$~^V78&ZCEW6k@DH>{McnFA+8IbAIbb4uE_ve37A@UgDrl1h{2FZ6KN8dv&>?vd5n zw4!*iHkag!_yR}0jyhNYYKn%&@K2@%-nk@ve?V0G7bpj@_ScIf2C4^V0COx%;G$VM zAazMgM>v{0_qH^6rNkMq{J-3KEhK5g72R9W(0#ykM+N*8-J89-JPky+j^d6_%b6ox ziTLX6g@waesXHO0a(V3>w zgwUFqY&3=Gc{8hajK8~Dv#Bo$dp!od7%;k=4Y=H@Ir*d&@!8R#a)aJm9kAd$P*Mxk z0eQi0rZep}5Z8q9x0JIrg)`%sqeU(wcjnfsNZlV)kAp1JpI{ouUew}CV zdai6h77@o28cZi*6iK=i`Vv|HED#g!YwGBNkckUj4qqtp>QT4OBO1Fe`k}d~y|VFk z%%6~9i8|GEua?08R5m@_rp&OKBwRm)HL0GA;QlqNSFh&4#H@LUTjtSrhA&-mB?=G^ zDhp}#$EOIH9`InONoa|)m>!^}h(3V|Ef6V_FYcxX8c2Gbc}R$R#$`C4j+lkUkZ+U$JZY_gln$4a<}|0cNutHPG1Aob#?yOHSXM5erGo9c(f#-C2(fWp#!! znyYH}-4`C2KN0eNWPQ(s|KHb8qD!PRi`6mCi|}XhCE*kpl{n40b&EoqIGK}4Cl|kv zT$W~Tt37C;y}{=O^5slRk+iu`CgXUaVEOz}ii2)Y!p3eVX(Je@0gC>J!@vHNfdA3g zyhnXcba2;rH84J~HA^^&{~NmaBGp8+Wcix=xMESs`Wnt~@{4}Hx0 zRQFU+!(LF@oJfdGjNp)Hd0V{ohDK^MjgZdO$q`2)P8bDeasJc%bBdI|Q)R4I5K~XS zu#-DZnS6oDuZiU^h6$UI$#Pbo^JT-Qmey!;Vp$uf1OUXS{ece;CCSfi$P@v47Zq~4 zi^q5G`uu-F{6{<>O}4ah8ZB7|sP~4_wAOlI7eFvEW(OwhuU18PU`GVC&wwooXF*t> zC4*(iqti+i44Uu zE5y1K&9J;4w;O%nw>5n*#<;4P%F0kT(%-$bi!o3uIMB(luwCHEfs1~?1H4x73>n!M zK^xA$tLl_tfZOmikcrueZ=jh1OZT&ckfCa5_g1dT2z*|xNCh$!2I6ZU>z#$3P244rQV(NI@ zX;M5H+|~zqj&T@!8x!6ohb52Y@KIl3&JCE61N)mTg z5a9rpT4)1Eq#v)<6uK5=Y{4N)BeQ3#?L~?$Q3hveZ$C3!cN53}Mos5z<=^0P%C;=u z4c%_ER(R-a21|7MTHUs&AM{Q5h~Zpbt7d+=Ae?Rfa4k5wZ4-9 zpKft@nk~~kJIAx?6`C30Z?+)cG@)q?VMVr}QjUi2-pHi!Nk-pcwrmTE#dupdVXL+? z3r|Ey-TWKCWh;ZE49V(%hCv+VrEZkoWb%Lgura{Z^+X2Hbw+7x#%wp|S2Z!aLMPIH z<;t;vGvlonyaLy8zK-(RqyX7pRU)k7Sa1 zY@~zAV@!EE7&U(ms)t@xDqE$dg2|0!Di(mzoZp`gl$wJzjG7Zy-Qzo0{Y0AzIQ6Ph z?;s}_(=}tIcFV_C#ZMM3fDL8gEb>!dt6#naP#Q8{hX^)?R_`J*|AS4NMco|GJeQmh z&zhBG@G9-toqhE}Dgi8Bp-vC*OHM6Z9sBg^n(egCfa;sSsRL*gBkRQ0dA*dDKS%&# zK%Kurfok}d;);TsEC#u@kb2sX(Gyt?1p26^Xs&wB{Thlb3js`~)XCB8K8`Qr12T;; z&86yv{1TUhm(|i1=k5r4`FL z@dya;0tGW@1$uS^K+Cw#4L23R(Cw(-A%XuOkk2%CM$C0e6RC~bLJN#jU*>C8w>#ep zA;WTrTDPuQG)bG9c~f+X#Pc{x-k((4*NO;0{x(S6F#R{eDd6SfKpb(Kkg~>Y1h8MP z2fecLq1MJIxUCs!jx#8(0TF1wUI%-p@&S#_*!$)q2*D#npwrM8O*LgRh+6_~xO+#- z_GxlPVQk&A{4I@p(tF=(RShC9lbmHr=*vsv0kuh7Md{bD{DiEG6=~)Va|qWOvQq2A z?0;%wwObjaq;p2&n;gryaWbx&Fv-KDCA)6b)BtL~kn;LG1yr(6WQ>i~MLm<`X>j`lzb`|~M$R$A~R(Zd>!a!aM( zBE%`8^Xyi0YCxNFEMZeYgXmwyM~Ywn^{tR{6d?KjLr>UP{C@G%01s>x2L?Eqh%}!t zyET^oeOlh#8iNzwT49810=2L4{bu`)0gnOOC)|=KxJaL&EYZ5@$&unD zEa1^(vIc^cQ0hvYi{F`R=p))ATB#%d7AonC;b7ei<=}x(7eRm^zYI5gg931=h#Rqv zNP!302NGlpaIvGt+!z0(Uw070HD}1psuNn@K%nZJio@++tT-&2){lk8*O&=zEDioo zv>@8+&wYcWMafN%H0$MxoFmYF+`)34SNe`wOroy=Ce0{GFSsHKer7y3rW8uUKl|bLXD6*(h<-Zq{^d670^AH4&F;J z@B#Xc%YuTa`73%umxJK#Q=I#VJ15vw}pMnGy>pu z4rZvyQsWEuA@0c3F}8eXwV9vQvsx)%*^K9SRBD|T>bWsDBXKVGXY3~yx}y;j=brgt zsE}Qo$^=Qe_&ucMAL1n-1VuepE63Xl54h49TH$(wuJNKP{ZXxe1{=cnlbNeQq-qfb zVj}*{M#~E1-ZcFjMeMI`*(KFO%1^&0^J4G_#;4pvboC$laYvoQXSXQN3B6khMtK0J z(7t7KalJo0x_kl-YQ(WR0L{hB#SrS#0Pq=v^2?=|@si3@9qj9Jlv?*dP zcuX$=bzz9^xd`>b4bc>+v z#fw8{4Qk?s#nPG?(e>tDKL4UEpoxpcZUDoLAkMvT2AaV~TjSt^x+?X``(z5r2%aH9XTO5C_W`fGIB8=}9{UoE= zpN`5opszWiEDfaoJ?W|~Wmrwm ziZMpSyqaeJnmmk+`3mpX8->nx-i%Qfn#}d6g0s&X*mO0f+teGOTbQ$;AE7xH?6i^_ z#>H2xTzLF6_w3^VMb>M&y!_~cc~|k+V69NAlER9fK)RvxV}PMEPNqu2?9qq-&X2bW zGvGuTlyroWYUb>jk4o4k1E?6z01C+f2YQgW?@MZ2y6#mZZ!&9>Xdyn3)y{KO3J4Ej zamX2Rn+FwOW53QqmkJ9=h7|Fb*oSpkBpT<$LL%N<(cn#<6t05W&$VI&eZWp|`` zWEy$w!dSqxv6K4xjT4;b!0#i9O_J6qWVs|1VDrrFmznvgFcf{JL-u_zngRYgzD8U9 zbEUxVxXl_wf8p{YktDYj#7cC~hy*0(ooYd#Q~+(7Yjto~eYwSbZ{gg1A914Qn7ZGh zBOP@Alm+Klp2y~bXtWpD%-@I99*zqF3x=eOMl*9*>E+(IY@U_q04u}iM<{O=5YZ!~ zkIWNicJKF!X<|s;xD{xj4Z|Y{HW=35-FrOOY|1z(C9l6yh>51NhE{vYEw%=lB7Pv- zzRMQQ#W@7?UbrXVS~KA=d%uH7F4*Dy!{Oh+T1D!c?5I}Ab=~Cc#-RwppA_(>Q$0-lwt2PV(LxcZKzC7H6FmLUCbo{S8B<7wOuJbXQ zofSarG1Q0imbIXmhbgJD7njgWY^sWHWK9^b5)zj0Fo=8l zpt_IWMn@$nYbb;na6u+go&blVfS)MV=N@{u@*cR(fKO%R698lkDi6p)PH@e}Pe@ zXjuSaYpfJ~xa)=RiEYY3csl;G9>f)}WG6rk7Y8u`G~hJKA%8HK6Npqrq}=IRgP(1} zilIzNp37%vPaeC=7Gg`f)KOwf4P?SiOHyDMZ!4BVMqw^cpq8Xh`((-LTg0(q_9Y&# z;e~7AAtDgAYv;$>O;Z7gQh@7Mfv7f<(xq213z!FHYG1)Bk(h(J`$f*S`vTN*YmHVb z_{KPpqfelC$uXKDBlwF$ojgm5J?&J9XJ(3)ed2M22RUO+*Z@NRsCEvBPm(yZkebX6 zy`x>2zmOZ#L7l!?r+R^TGC06Z!O}PRT9b8;-Ov8s%pXh{H(&G5tGHjS!TJYl%o_Ps zjj9GN8h(US3SMDuYf4rC*~O;>Ap;tNI#}^AvM2}VOS z-~Au>o9RYi;OE8Es19;uSr{vD63h&s%@%#^Qe%LR{Dc!?sNrPM3r$|4_2lWV(hp4R z@knzdmtLzD1{d%kZhB%Db>33t$M>NYdn6HwEGm0kv52PXlD(cJ2i|=(@GHL8+b(uU zdmd$_Mvge-_M$9S@Wv}p0Sh`JeNm@WJZ1d9*CB^o&>9lfO#V5Ny&&1JTtyy5m6^$n zausKvz||%UBqoV94U=2S-+>8J2}~CvsNxN8wVQp0Gsu*Ez6{jG+LZn07H)Q{@V9V? zLG9*bYQh9Y0=xpaX7^3;7>ek9_A1-VK^M|;H?C{jj>R4!aD;N67_^TlETy=i&51zQ zjAKD>*x-3gX2sH7(m)@y|HA)@q=t-GXAmQ9NB;$VoW7p=g5JOT!^eK&!2Sywlws+e znl_@QkX-N49<7Y#mc<|@-pD4Nb9ms1I^Y($2k(ok^1yt+M3fvBPBHkhG2l)s%d=D) zoP^S25&-|U|QUsiS12efGPey zTT>R4@_ZU|F;mkZHX?vwPs^swk@|2G*?7?aUBJz_7tLhcE$=8dVi=soMFGz8K+nkqqZ?1_@}Q+ZFWA6_ zbz%NtK(N?oujL}eJZ56b8-t`MW!gg~7Cid2LRgIrmySLt4W4XCK+MJx?QBLjI!Xz&j1is;AXgqF8(dNyxZ{lPKq>y9`%Y7jZ;j9xMJ`31@25FiFUIJm6S07yrDO4^%QTZM2RbHlNYqO8P=SU`nWkrA5e-2}`pE&tD!jX)g>UVgXn~ zB?0ZQ;>Bpk5>y!G@=*)iwY`oMcrs}9vPC_z&B`18 ztgS+F4DojRP1Mv}#BDhfLFq|`jnVBVhD9jq0_Zk@-11=}leqkpAi zN#N(l?SS{cAvqBYM>>`UB7sw2SSoJ18fI)g+bPI4%&PO%*2YRzwt^) zseeh-$^#~{B06P-Tx#0qRM8)i74JnF{Tn+W2TS#<9hmnXyGdscv2VLkPOK84pLhit z*r{qlpYU;w98VMjLd*kuH4ByAN~Dtxd%2TM;n|-Difc}tz||r<=U)|%szxXP`4F+3 zcT0Qu;oqcUp3LNKji8z^lNa(GOjP;UF&}qz0bjw#(5B@~^T9VtnnbHdHsWTRShA0?Vc9veQC zI$SVC^Ze;DDA6Is8iyBx%#ZMuNPXyJSU`ZRrIhJaRA_R?!1Jtw$_mtr^E0k-XUJ08hwuZy*YI__1de z0&HYMe{rqzKw_omY z%K;a!1F)qva^U*rKfjBS2n_sNnH(0tZE4%T1pk+aA)n2Wtj%@?-7is9P3nmAUn1EB zX4qd-_Xy8hv0XF|Rl1d%wI<>g2t1Jw3Nix2Fp&@Mfv47qYzx$lE!9T9>uJ58`qKu8 z`z<$&ufix_rKND3V6^qDScg$W37+lZD^Yy!V3??Xqf{`o>g6DY=ri>AHZht55{wl^ z)it2Zb)d*3R@VjBAloVf5fHzh@ZId88_PLSDW$Y7Ga8LFN^|zKpY)NSKCs)t>D3wU zmpFY~X*<(?tXl_fXKSA^nSLk!Dhntb9+run`I7ude$fmDJi4L$u#~uE%P&;HC!Hio zXl4Nn>N4C-7exNuE=*xj{B5M6;ESbJPm9uOtx`R``pollwMJ*K4J#4QJ08mAuSG6! zx!#9JNg#DNLH*TwkD0ir#FX1{TH%vYoYqJd7hJ+0T;}2z}*uUIh&V|OBm`afP131SYi6NC2B025JLQGjj>ox}!4b~;=1JpWWez~_|q%Y0m zE-vM5a@Y%2s@&35rm=d$4f~%{p4=a)*GKeDxTr{6ptBmtUQmfqA@r(n6%G(VwMh<% z*JK#zOiI8xqrX6#7tg(A15;Bhh5dXVn+hzC$5<;b4;LYcfx-0!qdv<Ng(Buq2jWAPJ#6 z4eru-%n0E;`(hRZBrUDJS@4{F7{8kzrTtjiaDV{*jbM5poe$l!-(}&q z>_0cFvx~VJvg@G6DLv;UEa4<^u{-K67pr?=;-t1bBXN#oZNu0vvC#%k2QuBjxrFs0 zuJ!l)afEex@A~TXF^a<^$5Y`1s8m6S$|_G7UN-#+L<+#%89@#`$~`+Jn{OZ{jN#wb zEspG3I@tO_Ihyj8ihSp9ss5*wZ*oqIz$YhFs~pz@)T3Wd!rL_01SZjqMr<*?v1Ty) z2eIT9-0|+^u{1rvCjDsjy%q#LD%mCM0(S|(>!4%k2LtudwCCa6X&;_v2zf5FT z6y@-q+mayo5etqI94;julL;}7fL2cjqEoa%NZkWrQ$UM_K7G6KSi~R$N{)IJOU@Vo z#l;N{G9m2AkLM~((%0~EZ$AjzBx?HTFgEtATR_xG<_I6m13~8IT2cOq)HP#urgq5y@80?+{83<|{np1V}!G6uTI0*#c}0DDMXqA|sE zx|jFJ3)3YxpOmk{sgl^vmw7X?TpRx@x9Tqo^wU59>9@lcxA%#Fm-uANp&6 z8m|W0j*#Z~Tj!`tfr^D*A^j6_BB-qCk_yw4`1tz#>zw4D@} z3wD*UhiykMA4DKKCF4$6Y1tJIZU}?|8I-d2FXE+`hiW~_(?QqqBu#P!lql)?C?lv! z0=~k9K1^(45C03{@o$BD^v5SU&Rq)IfXYi}N08!UxC65$iQ$P+ilcbUg}axn(T3M{ z<)6UJ3@w+0mfM^EHV_E4oP$*rLvH{HPxEC(Y3|TwjBuL?0-{LW)(ftK4%3Y}O?6i` z!*~Qh6L!$yCs#bF|AV~$6z1c%ptuZSt3PVH*JcXIQirVS2CHu#VO4w-|Gi~C4@Owg z&;BDuM=8u}&BXu_VIb{NQhtj+aLS6>O>a5@ZUjiDI^v}FHcXpcuD+0=r1Wf!ae&yb zIz3(VBg1>$C`DQ7>k6cI*^W8m;oGuwZ2XFy6Ewf@TVXA`mL>Gvg!N*3!oOWQz3(E@ zt&?#%oG^S!?%5V3iT2XZHSo%d0ndJ0^y`}Qkt&4Tc6=anYhPiD(EI9w^aT&~si>$~ z$XZRA{T^6{W_hw2Ww$06z)SE9F|C0kTcxd&+P1SnphQ#v_aE|Ce7kK4E;;(O1Bm^x z%6NCp*lcOJD`)w{Yj8}UL$%R z^t{CFSeEc6=jw1GXaU#^T-qDTOn(XIRUi*{U*08<&ZPzmLV>8gT(&iMt0+Ink@~!L z9;>!Qa{@i$ENoTT5jzok{oqkcL)jVOs^?_tbK~PsH=#R@5`^kmpJI!i``6gY(3{8! zre)zZq!x?Sok&L~W?Vo5o)~*2+7TSr!XiDWAcRDRm(@+`5U+1x~hY-Kc8A>O1=m2U$(Wf4hNQwsT&5y_Hb zMP+f68ZvcY1ZLp7-weB!a9bjuV^DZ_`Siax68;tFQ5Q)i_~~l}ELIb-Ap=rgAu1K2 ztYZ&y_PyMv`h^G|m zE^+i6+sZjuF-`;;vgis@L&gWyc}*l_wM^9hV9O$GVM0yZn0DxGw)pYM!2v0P(Q@tpk){Lmv()tYf6p-3Z-zNl@Z11 zg+A121&@Fvhp!WZ4e_W_-$k3v8!chCL{R|Vmr9FCKWd!hrsvSjNhNI7)>i=`4%9rW z0K&k*e*@)QE`%O*#t5Tz^9Fb_Kl~c7^~A-5!=nHea{hA1uaARZ6;)&U6D}F>NCM*{ zw`CtNhLOr5Y12Iv5TqyQIBQ{4jgL>R+;*izRIc>*vT{>KDw?L990bq)N788T*Z3RN zsY8AOP+Luz@6+k5MUZ2Km8`QY>BC^%JE%yW3k;$I`%KOBczqeboUJSc#iNZqyc(QH$g8D zX-M&jAcSWZ1AJi9lX_2XF1%VZ9a2Ro=e2Nq6Z}eEOqQXK2qbY3KK%evx_RlBWY=SH*$nw^xP z?YM|jmVXbyj8;g5QDCD`Y3xPilsu)FqFTR7$SbF}){JA+Nq98uJC_3L^O z2>9gk2GUB}orP5sjHpGv5EnU0LYVQXAmrp0E_WS6Irdzn56}*4a2PgVdFyH+=?^vc z-maQ@!J`6d_bKtpwSItk;OmzhAVLhXe{RFO)dO?fKbQHUkfvq}lQ`0wa8yKHa) zv%clLjYT(_#*64Kdnor)P{uUeO=Cy5JCkN08E;h(r|%>mr_7B06X2Uw=x^e>0BH{Y z=ll0Zimu{IRulB0qVq1b;HwA1FjLq9qFum}pHd3%s|8p_AmdEZ51l9#^YTqTe_^Lp%UZ;;&wQfEt@bjIB@d|bSU>4syP#5?Dun$XWzb<33 zs31yP4R;_#My*G9lnoF9EY3*M^w3vOg7_$T=Q=N@(InD1V(Dikj-DAy<`ZI;AwPD7 z(wJICrot6kk370mlKkN9`Wf%#xQ6V&)pXRXD(YsT&^t5taVD`*tsHFN@~W!|GMcVS za?kZxdTY8|z3qDGYbb1i{-TvGoY?1QS}TEnT{>>-cM%WLjIs>c7_fJ4VX!}9<6&g` z8;-Jo=F+%!8)GUqW*!5_c0R#%(8e$&5*-vD;~4=_rIfJkX-tD@?0e;K#7JJB;;-fyC|D?)&9)pYnFH*7)S`Z?+XMP!+OY7=SSk; z^Ok?2^L*2R9{koamrror?IPEPn{)^K7AuSM>!txO6cT2YYjF)zsY9QJ>ShORu%jM= zhq9()hP1I^M9Fc^=uji?td^Jvt62DFbwQ8V0kqYHgp->fe79z1JOJx9xRlxzXOl|b zJ1E3u$N27m5H4lf*51r&QR7Lu&U0Y>y~^a+&oFmC&jo~KvTU{Ol(n7U3I-MiVi?!p zISv4p3<7o4LPf?zFptdk^WP#{!_^LOJ#Yj6@#Do&Uv;bi0j^Z5Ln(pDl$CEBEbb|b zCdzF$QNn@@JJ|L147?8UEdVn`n4YSGg_H{FVA8A@z*bVkze%Ou98b_G1!I!9>c7%} zLjWayD`F+R2o|E=Y(?B7UXYG5p?Jg5<;Vk%b>{E_WNGIGb43f^j1tkaf_vn#c}d6t z=8Qb;z9E!BC5!N13W^|GR*4r4**CD_L3M)ShKsY?ep+!Tzym3Cv2u7w2qky~*j*P$ z%O7`;qd2op!Nd(F;S6M1Frg_3V7b8X#*PdzlMF-pvvfAiup@0U(x6ewJcXF72;U_k+>(aOfYNn`B*M9ErG8CHFzv#46ZEaA3$lS zG<8TrOBGHtgi)L~5kj73&D<>Pdi`7ahm%ul zSl}QLKGwkm)7b|LxE0rs8JXebV;zp}E{Uk(KUyx;`xdW8p;kco?p7{EO?EGXvFbXC zb%9*0U4Uto@;6d0c6vX9L3zcEM+w6?7cPr6Z9jJEs&_~xNIrKanJNxb*sWIvS)cX5ln$X&NS^-me}TVn4ir?fv0{TbfCzJa zcxnhEYFVeATwA;ebg52EKCI3e@i)K)igvQo7@p9W;4R9tW?Dnzn|66pg43)nih&HW z)wgYlwn0e=spKsR@5<}F>qdBDXFC&oS9zRjRT;8Jm-5eV;h-F^ErxjSyp*GYm1y;C z!x&{CrjNi?m=akPBk+;Xl-ZD|ggKgVkfuv31&ft1}YL23}7&I!_hG-a$L3V7{ukp*5ISnkZo z&Vrl^U*#S&szOsmZ0sBL!5}v83Y;OblR2Ii3s!?nS6PyTZ|5?;K=;iBvy43e-owB$ zC!-RD&_U>AxXE~$4YqIogCgOjDHAh+q8W9bmvp%l8~2C9fp#?W$6(d6@FUOqH#OXf zFG0gce!qV1MT-rDr8QUnH`5f#q5Llc6>)*;uowzP43oP7A{@U>KzT&X^B6xPH_%I0 zOy@b3um9bR0=L5||3SknLiTU>$bUo`V)8Fg*Z^-!l*)bvW4M4EHErrD40Aonw?Iqp+zAyslMT^e~g+`+Rq`` zIX_qN4z;}7wSV!jYV6nm%DwZiM4vpcGZHmg6D5$FEIEc5xt|H5BMZ&ThP+fI2GZYbA zNO{!yjG=IV0YyxkeJFvXm+Rl62cnw&-hj&;IFJFzK{J4@=Vu5n^-Zc?P0N2y&F%to z?acB%N#pW>-xEWpi|vnU+32J*UtqZNGWO6zu~>59?+UI7Claeu;{dMB#mf}$k~xA} zJYaz8_r+dQ9eCRQm9*gM_Yo6#;HAR@oNep_X%s%xNc+r9E{h`U0mWd#vYBb#%dnt| zvI@zgL?yP~BTr*wta>R)gL$MR7p`W4AH7JE^X>OnxI9GV`*FiQaLbsF3I+an=#F)E zXFP6gjK91n@Rz>8`!s7%6!=a7K=JqD1r)PY2z)V{?@~W#XEP4)gBDOZP|nwW$_sGT zczPe5FoCW3Tr$H3a8+-qkO01mf0(vEg4Vna8E!;(sdEy+2K*0LK9W<44~O?WZ+?Bo zSJV!)TdFGBdJD~T-MD*nP*De2b2na4N)?FeK}b5pf%?AaAZl;5~ZEY9q$q4y``Yp zkk#E{cMd#frU5Dur!v=$jo^UhxLgXCh3#ilLRH+W-h>1`$Jf5i9M2|a`~oUu$7i3BC>)NAP4 zGcXumHhAt$b;zcRUS$?hRr&+3Ic$Pbt0|qV;B_pGWQ10K`8oKOyk10gxV97iqG&}Q z`L6MeAK@q}i^pXjv&NkI$W(%bQry8ySaiz4D+_3`{l{F9wwD_7|4(vk1G#|;$A7&1 zK`(7jlE4C&0f4SJ4B0V+N2ZL|-P?Hr^7)e7DekfSGY*&Oyr01J>Mr(Nd+53N3zNh{ zBBTfX_t^%@8Mv?c@~6<;39fVoKwHbqb#tu$eZ?=Bfz4CgjIX8Cx^7ls8qgnf@oyYn zO*6IraIpC2qr67ICx{n-H6pjBA!!usH&>948bNIK{8pSkQuzlY@iQ;LeiVF|O8(R= z|0Is+?@B)I7#scP3vZ(|L0=teW@$UtSa3Zy-Xy-lG5M4hY!$74mF|B99-QHt+0VDDXSDbaUZ1lg0GOI?%|BBj8HVcuWWyR2Ddz_y zdm$qDF;eA(ZCRQPCHBxH?cl1^TZgL=3+aDaFC?x3Y}x|K24-trFb=}n9J)J)osG|C ztOvrd=t{gQG1fl$LrREou7tsq=Nw#XxV6g9vH63+|0m5dDOpOY)n z>q4>X=Q(V7=mw^oQ2EnF4HFOad^*r{u5MhHnh{s2k*35EM5QCYiK2NEMHEF*BwH&o z3_)){`hBTxRTTJ(bQA^zN0sP>sqgzfCrkdc(Ss8YtbzF%v++~sU7+WIpyxRlra%x> zd7kHaoAPS>Xpt-LxgR``kUUmMWSlH%&yCIYQIht+URN(l?d<`})1T|g6}LH@*8tLB3iMRz*#K4oDfv7G?`ipsjK5kQgZHr9rUVM| zo*8$QKuWqABs89bX<#!r&wXEu)j8QR&IS9-6UPg^RLY5vKW(I#XQ_j%w~ z(umb!U+9hFxN+k5eV>;KLmJ^~6^33IGI@amsY4?c^Fq(_JkRrFN}ZO`h}B|6p$?5$ zEEK=*`)q7ls6a7)7Qki*ko#6EZ^3k)J8AfNFgrlRQqodIa!xFlW z`lyfkh=%#WZMrj*o2XL_Bn=~k$%hgHi7}$fv(HTt_1mrJiqcJ7j)l&NKHc|yAK0Ep zlCF*NLaz(K@B6-$YV1-!z>Y?HaAbjV&m&2f%VXaZNWUVFSAEaO%j4MIP21{U%wsZ)y<#oS#kl9b_;AjPj+4z5B_^!d696#qHMnn{tZR`^XZ z#8;7oF#maTzerWOEc1AR;OSGVi8?ibE>ZOPL|6EE9cUAR<>!&DlZJWDI~+xk`l@Tf zj|O7?WF9_`hhY4GYXGu(SG#M|TkdE`#fIDJ2Bcb?@B6;b>GyqKC+6w5bzRqOUlbzH z5hetk7VhIH$8pQW)8X7_-kiXBo`Xa1OI72k1Bb8PeVlhU+($XC+v-hf^J;$|{W_ED zJoD_lefzpqRTLpjfM`%+{#++ut`>}UZhWn^1KfA+f<0-qV6Ilok;pUj7Az#8QY3J4 zwMdsM_I;M$Hs7mWLFe0B9CKYE+fR~g)72usGhsE3$kWTwr;M-uxlY(KjVFZz=O7hD z6ne(O*K=^Lau?pBH2sCI-(Uv6uBwtEQ6{FbO00y$I~+wiVj{zidZ9Oxl&Z!QNGTOZFX*WllFp)JA}!|HO@JARHaq+UrwPgITJClhwy zDE=6K{9x3%%c+r!b26OG3dawmjCW-X9xTFmthib^2>T%h@4-BoQ%-8Gndc9t+^7VSXUa!|H6hjtE z1#^%U-juXQRU!%U9#@Iv=H}+cY~e0SpwC|?GpW!yJpx@Hiaw!fLdi&6LkAM+IcFw{ z#53>VoSC-8^499cL9+58~p!6M=j&Lh7pc)CgLP84-deZVfW<8 zpPYmKyq^|_a0BpTeauenUkzF0{PUW{6>*;!eoy|aGkA86^?hOjwjvxqkfN_R0#6m> z6At~PQA;dO$~kFe?4&QnL9x_TIWtilR_IQ3rO{bs7bWeCk60NypWM_XH<8duIA$f> zN^YVyw$K=Rs^l)4Q-7?Cm3mfxfX-fnKrvN^s*!3`k5nViKGveTq!RJY$xZc0O~N~^ zCK+GeQGqg|iu+WpvAI?cS)!~ELG;;Ri4Z3RF?RWp^5qbr1dg3hg%vo2N%EzpB}x@8 z5TZ#f21r%DEGXELR*=f!8sa)4UbiIa1VmiA?yGT`f{PMNUBJze^rt|YIa*e$>$I%8 z2vo@KTuBPl*HfUrW(!I-Z-JUAQ17Z!(_2=ZGif_@2QUgi?d)s=NSTn-an2Sh`X8dF z&Op=${o$@aEo=^T8iEfbLq$C;`)6}Nnp4o11T+6E&zk$KBye;@o4T8SsMDsV(n;yJ z=0y9mX?W^3errn5e#H^|molZ4Frvc2(9Oi_bhku(2*0&0OdbSH-pzrBl_q{SwnFRK z*Q}mX)Sp!7DRnC31ohOZ5NhN-r7cUEggz|n6>a(HAKo7^PknzlMuSZD;E7xz>O6=5 z87e|Vf+8P`et7CMh^PKTfGWsNNsAKij=A!*De7hX)|#f!PK!|pcE&#~Tb^}Fe!nNv z(B`>9>o@3qw)v- zorL_9`3+6kECToHu{ zOB5AOqS)P8_qc3vY@IV*o3rN0UZL2q#n14yly$4u#sa_H?sy%?v!#6d3dGm4#(x>Y z2#&P>R&Fhemaip^$|08@e7D)!oSsqP^Ez(hk8U-1Z4fxNZqjWxSGRY(yv}Uu;AjV- zEglr|T*`pKbJ@X@G`{_W{c>jvaVPXs^~;j+JLA{J2fwq8^~$<#C(ex$#Ij~%VCmw; z0a7c}lHl@O!g$JN)e+Lo2&Qd`BvM{JC~t`*dZ@-QZPUl@u@IaPLI8p6o&b!#Cbdf- zr4FIPl&||7=JH(IBmnS+jvH!Sh<=DDfe&3)35(OS*AifLukeFfoQNlqCQ>L!NJ7)_I z3Yj>ze^kSiPpN4&=n>WcNexp_aDhk=CuDF%4<0&tD3U`|5|tZBk)>|UaU8e#Q?E!R zO_8Imx2;ustE;>FgO{W7ojs{bZCXpm;TXp{ST~~)D&gljtV&3Z6fF_mz)M6z z+;LZFt3~Ab*-1*bl4CXrTylEj81pAZpC zV}h2dh@wxBLbWPUT&u}ItRX?wYD7Yw@M>0qzADtcZs@Cn^@m1jNJv`$Y!3~pM80|} z^=$L%P4vXFhN@>beQhSse87&Nqt1N5j-RG+<^zDDZfxcQfS_2mf9m|%KSE#or+=F4 zjINBfJhk2BT77Ngr-3%7I@PkX-m$XkLcaQ`(?7m^-Aq8zqi6Hno@+C0^JLG_JoG0$ zLY|bioq+sykW1@+YfDjlkPwltC-*~CWb{?(10sKypon~TLzKIqt@3Bgd*aX7`_m_> zFLjT)i#jbr$B-r@AaZy?3c@&jOc6){6)PzCfr2J6J?p!I5WkKBO@*ibjyR&y!f8g$I|)fZW;< zOzrGo$DOLFRBB75xKt`dz1Mi^IP#!xxwRv5@Tqb~KR@Tuw*-tTjO*v;;@O$dK9-PU zgwGQ&nx~Ez&2#;8D_@#E-1W9?178S;I=9U~SK&K=jv4$ejq`K%Dk9+X{>*bd#r}0A z2XyFocJExT9ILhJ04bLQ(oj(~Z)o-Q+9{9%^|9ZY6e1o;=(mRSlk;1Xg2U_d%+;S4dpGZAM8a~JGRS*myj7Y(-or9uEi)IVsX^~crNZy~K9R@wecv~JQ9phY zKl6nSVEBFCCxYMzb~T!iGk&ey!01`!jGkD_IF~7%CXq2e{cHN5!V@^9LNTPFp}~_s z3$Qmd;6gvyXE8=_RE?$2r?d0fAho~qm0~JDuXv8@0HrkL^QrtReL5fAdzK>xosB?c zoO9|^jpI1ZGSDN?nFpwhbIt=a13g1wzm*0yhx4%90JY%&I;#Lhp=T4Q0G%zBkY=0mwWGxvlyx0+? zae|%%xsaZexUFzZV8>kPo(;kMc z7z{ESWc)4#(L$GNh6xGlz=ow6#;g=5B(t0zc8~^#E*m(I?R04Ag%;Ro|0Y3NQ@QGN zWt2v^ZNrieq$M9nH8e9V7EMzc2x2_aYg+ZFpdsAyQ~;z<7*eQdBT1Wx&OvN$R3KJD zddgJziN$b~%Fq4@;+i=MVoGoewaAtGj?E%daBJk7zCU-^@+ z5`9R2RSuH8%16;h<^AZQ=rdN)w+N35Li_MRuizCWs98}2+4_`!qED*Q;6Gn0{&P?C z`8=PJ1T;dd4nzZal`uXYMHY#%X-kG8b_mH$-QB@5(F)#Ln z7s3rV4hs@DI5ckXE57kgD84l#YVPcN9*b5aQj6jfg*6Fq|ip zYCO9~K5@mfyPRVoJi!cggb8ZQhY&@c_2~^*6I-k}!Q|OVC&YZJ3b?y7f*|QS7`1c@ zp-5UQ5O8sNcbBHV&Fer?6^`PHCF9_c8LxpE!#YuFjNe)qDjo~S4Z-k)z)3OjB}UUo z!=GMAePkUL$F>^}&85K33rAn4MwUm$*Xa;F!aFVB8DFPQY>~yo_Ri=)<3W~C=j&)Gy(RW8n8Ghuue$C1i&*77KaEfadF@*&SRnL zV#Yjm;+c($##A%2L<>5IYOzY%6m*24=n0;^%8cR#DA1Glid2x!E=mKYN=Idz!H1`$ zE4*}hfe$?|sz5?zN0cF>AfM9?DkWqLwxkMkmn%mb(KUz5?3%X9mB$cDIH~(Y5uh4m zF+mKj{OAxu0Tn>BtboZ8N+`i4rGyhWP^4TQtNE>gxdLX&I0aOa0_UA?3*!zqNO45S zmZiz^0}Nk&etNb?NxKuRof?T+Dh=b9e-W}IjbJ!Ip5*f$-IzctKhwTe8^FZ@xo#Lh z$eCX!KoC__KtzYV9u%zH{H=N#v?`_8MB1%Nr)*gj{1o!9*d+;d)iJdW$v zQ}tAa3uHTGuT2C9lspBn-6(=IZ`!#awC~K53qoTj&1R30u1(2@P0^lv*qOI7PQrTj z-8P~mMZ5!KXCCj=Jo_fJJfXLdU@KBR=FG}5uv^@>`QS}xXA1K4f+%-G2l5QseDIDZ z#5+QkXT!q%ERSk=NN4AcxG+M?!*XspcQel3J?V(}>yW+!vNL94D&mESoiUUYR_yq* zgR(QOhn+R8W$Z>&(egx|Xq*zJxv;Z-N@8bKsGqo@e&UKeaX|Ws;~~UFhzTJngtj1d zR*iZa!sIf7gksdh(}C>aS;=#4;uxv)S|uAXVOq&GCA&&yAnYf5d3ILGLYu?H%Gjmw zs1@W67yDqSFq^}^D(MkDvN=ql>=O|!M5+)mg2+Fi#emiVniASrN?>!Cx*$Y{ToiEu zA$dIe7$GTym=NM3^hf0lFf3a}JquxHm|Pg)GBSF0k>i3va#O2^wZBrmf91MY)^G1? z%I)EPW=^DNGf}o6vBJQUDPm~igo+rLzC5kAm|zA_z)T4OiZMpMB;oPS#;(n&U%=g2 za{w|x&A+a5qgJMzca`J3l0DnJo}c~e%mb=M(Zi(})r049 zYfChFDw@zwP1oks>TN9S7ClqE`AuCHc=j??vR8H-x0}Nr3*Jb#EnbGe0ONy;N?#Cz zy)?zhr=YLlsI#)_=Z)EomF0ML3UeH$L1Sap*T>Rvx{S5XR}`MfjkR1~3FGR88_NJG zQm%^ELRtt^2f_`V&kQ?H3m?JZcS{OD#SK@6451{<6P+$Wo>|MYyAB(Ulx*+;3Kc3K zqKD@F*1Gg)qG@TLj-e8WQ9+dy2qCKCM3E(uV42}5iXUGS5nWOdLJSe5>#-z7%F`Gc zfWB_6*8k5M*2bGs1asX{0SHHC)W{@Fij1lSm z){?}aAnB<|(iI&BjNm8Bv)A>=`n&YQ3Kxa<)tmfT{*Vd^*}@>4SS#&lrR|$TeJexL z!{Hqq8oEJH^w~PqTg!kfA1r3X-F|<2+O-Z1c|%X>3^*_RByq|YROqSmBJfNEmQm7^ z!3KPRH=)Zx7>gD)vNDgIp+Il^L1t{J#vBan4!)>19nEAHi_l(G==5aoVo`)V;aKKZSpkr>^Y0WTN~^r z3>HsCK57|zJZ5RSS%+H2?zu48S=68os{Pb`)I_gt&!ah-X`*H)YId#6pbqMwXIBM1 zn?(G?L{CI~RBpBTy>=#g#zf3|B68Yl^VcCLL`CiNs|jifp3rJgJGU444%(ddZ>!xs zaVv@Hz(hfZs1dK+YB%-K6yNTG5>t~WWoZlxo72A4F5+Uu1g(jZDB@zo1Z_(J5X+Rp z=Cp6Mhk`r^L8!fldUOyFbT+5GmRmPJbORl=bZ*Ri*PY_PEv((Owu@sul9W}X%C(V{l5|(2 zV*&j}0kp?!*@D#OT{LXwpyG#5Q%^secRkZQKiKps-Ku|J+v@u%P+IbD=GN^iH`kr@ zGucyMNXr`&U|~qh7A-eWe}x-g?t^4V%hrRdRjsv>s!{B4#oWv>nV~Ia^;Vhg87%N{ z)xD88z17WAjk})sePODu*R8!|pD_>&ch_BrFnW-5ySBcaaqjJUWQ*0QICAr#3Q3*4 z_AX5l(zzx2)aq1s>sFmzuYGsDt<~8R!bO8kllS_0`0Y-DM98>9U7r9VLE6E z6DCZUFkPUezSPu%MAsI}E5|)f^Zw8KO_E70h|n zfVFDa0IL{!aASxVmfJELa0VApt$|`g2LwxR8O;o!=y*_pY7G<*08l}&R%@UD-~(69 z2Ov}stW_E)AOv9N1yFYCtnNV8IC*>FEd3X)xLqTNTOY+d{2wYGOk{eX1q{i#zyoRKno^RyNZt6nn(1Z-R(YN zwY`L7!=RzveS=o#N^9k6udLP}7?RAI1VhqN(o&KOlGtZ6LTZGDQX4h2a<#*iRS(O$ zvPvnXG#daCYz=$%!eoc}NyFT5XXE^GrU2KJJVSL@92BVK>?&v0`GIzJ;paZJKSAQz z8?ZR&6Bd?7#>thl(-~vo=M5*S<6>TrD{HN_R&E2U_=PKSWT|9mW?Bxud_^Cd8t=*& zm@zSq=tPMThKjC)F(gC`CcboKjD}|VZY7qrQzt`q88N^A!IAJ>#g-jCum1I9f3V%*nwh8;5*5`# zzP+|sDkd?_)G{m5h>FU{sGUbDN<@}W9G$c_ddlXspWIGs*+{8oVp)IY*-ziyP2b(# zN?XY^CdSR-+)UFitv8>*x?SE$FTxp5IX`3=xNU7-v|{`5o{ zs{C2UpdP9Yq#$ejF1;YbYKIAA!X+O!41Im_i3>xnAvHl>Y=pRYewSWwdIhoJu|wq= zIy7O-J?$z&w)?k}0DFa=!?1&m=;L}Kbpu1~253i(8Jn9PNCwb?3Bh2ZkLOD~l-k9< z2%5F1)U285V$0Bw1OPw);}rlPAP^7-1Oj0=7NwD@%pDW}3~h`!Zdx`INF!N}<0y!t z7zSYwV+Wm>wSlBKD0pMaJBWH8E77mg;X z=3(?&SotQw+K_Y+pd$0mV)Q#94Lt-Q%;}Wz8PZRn4}EVy;D2u52R5%Cuhp$HNT(#} zx$obMJT2*>LnWW57j`#K`GxjQ&1BQwb3_MDf}hL}`zPlj7RpoYz>V<=%|DMFqJDwV zF6KdWJF}g+pWY3>v zu9AOw~)bY?|@pnFlph$k)cZBh8A97fVK}`O7~FHQr6RCOZymjX^La&PdhaQMoLYNP&O;D z^i*{@Xqt$+cI>^xt-}ALYGMY$3ca7UdfgVYK*S?x$W}|glF5&2RYaeU$PP2If2HxT zdPRZPRq}i>U}KyD?KQY+c((6q<4_L6G3DY`NuJUqnx{b#t=t?$n!7md8!ZT^)l(uj zy_>39o{VTV9OSI)z0hl!R@t1u+ZUFUnlVT0ht67xoHH%0G!o{})kCo`bd_JrsYgb| zG?L)?%++oZ2HD8O@h|;&{RGx5;n#sB9UJnaS#cLc7XVIWWjF^~0PO%YhB}Fk z33vm)#UynJJY0oBx8~psSf(*(G2&Ideqh69t62BIlaZMf`GG7zh8FJ`v{?t8h=`5` zn1l$Z?94W#u9L)(mmhDgmYQ`b7Z&nz!$e+G+rqzTo)6B`n6@H;4y0ZGU)Nf@?sGu; z$u{eFnjN^nvKW?I?i%YR8lO&80h3%Y<_2wR65{dAfw|bEnI#rKP_SlE&K%CrQH$mt z)!|-Kz0(a--3+T0c0m~=B(FvveH(PGGJvKeKKA!ER23vj-i=GN`)7F6ppgc`=~3>3lE{7`iELYd`S=i;DX^s&WI~#}0n3TC{g5oW zCvyS){|1N=(95GKG=EOMazjfl$%G5Q;#f|+qZ5mNRy0VDlWb6MJh7B46;rKddH}to z>(y{^cq7HJcyt{yt{}SR(UJs>$n#!Kj=#)yNYYk~ED+<;#Dd;oQoiw}1Up%<82l%T zJUv}MuhOCdnwSM2x5ol$saU#PRKV!r9Z|Nh-R|2!e4{PDBjYe*1ZrtMf!h|I+>gTV z*T(}0VkDvmY0hTNR?KW*@96f)`{5ZdIsGhz{gW^)J&U@&RZ&i0#os)T%qBe7J@Vbus948UJWUNj8?NR+5jtF+;AU+ z;71OZ1aI-=7}NBFN7B#yHJ*@f_U&y{(YwAOMN6wenvQ!4l;4*CC$7%?M9iFo`yj}c*@9_k!=hR~&Hp3=(S zYmkwZj~nqQDAKG7_M4{S!vzA0tFdpk(5qt;rbve@OH+Y zbN#ixr3T5ehvDl6jDzr05UbQd;`s_+pn?wrxV0g8<)xgdY^MfhvlUKABa^@)Dt(t5 zWT2wMtSk+G=%g^=sV0CzHLyWwZ)_t?_$)&G0I)u@4$?YWeGb3%T{J1Vg-bQ};2usR zu{TXmmnfK&PVJV|x#aFdQj79LKkX{GF!pP2q6z_cde2%$VZIMxp?m=0NH=6$U>nzZ ze>`j``Xc@a4oN~v{Gnc9Ls9{)gG!YpE0Vi;ESj)b6s*X$@6rb45!wA1yFURvFUmbh=nlF7 z70;wn4aayL#1JCuxVxQfEXv2;(t~}p;VL!?R?KOv9n|HAodXzwd$%h1QnE<&fKg|M zqn3X#$4DY|Ntzc$FY*mLd^&A)pk4q!!;Tt?6z?ue6N_H`uub7Iv#pv2&V;I8fq2Jv zG7Q|MoW9&^r&tIx;tfU2Vuj~PNav}y{+F-D~kRAq2p?HgI zxbT>qcJG{;Im3eqk%u1u?s-%B*-NFE$(VMoJ(UI}flj3)hsx~3^{cEW^E*RuecZFE z36;^!GU`7oOnn60iF~hlC4-noQ)669zAcA{XLF(@QkyUfC6vL^Wt3SN=Ri2_Uqn<1 z(o97f4CRg1xDnQhPnLgv0Guq_B>&_l^r zSt#Q0=Tx3ZXeQDWyS%F6P!p+P)VhJu6;3HnM5hky#A1E(WMNQ2b#Z~$%JFHcRu`Fi3NV>T@L z6BXD^K4HV!qg;WXQYed=z7v+efHK?Oac&CnNyw{y{K`~d9EpBR9mz~yo@{CZEUdX3 zD{j9Y;mNQPYy7?Be3Afm95gC^bu0pssjnj_Kb9J8z!4dD{!1gt5e#4-lgY1@%Sl#Y znGrxIqh8B1K58ZyOs75bXy)VNWm+KQe-G}1YFFZAsb*0BQuJ(Q#RgkR_4-*krWm$Lhd*-n8K7x<7$JU))pA+mG1GOgakJgGGrYNrsJo^jc~I`()`el~6!I zA}5t4;Jpz{00c@;N(~Mr4^Sb|Nkn`|L$*S|E}&SQPX{vP(?fXP2wBa(zX*YP$MFc5 zK?MqFT6YIb3-Cf}NylRUjax@6gUwOfi#quBRajJ3)@uRs-d_X=b<7;4B^4^uqlua? z)wBX;U*A*cq_iv(x<YJBO}ryK1J7R zjVQEsRcgw>t?7T$0Wd~f_kXyPJQunDPi+)J!#m6*wrRkHUw%-v6Ju1qIpl0b(LM(r z!t1{}eqfDmU-IE{Hy&^?h=t1x;{dEiIVR&~1>R{V$Y|b~2a&B;sJNLuL$3$rnL@>@ z?Dg31&zxDPJf!qcjs3to_Dq@NkNfG9NmC2IGaxS9@m}@D4ymdyUr}+o6vBnVTbEsZ)Psx$hBn zmJfr05bLG3^#$6-5-_FP_TvvaK{Lh9$G|@k8V_<1ot;AAM5XWOAl)wlt(uO1S;2qP zH#fJw@;c~+JDe3*ItfVz;x{29U1%%jDYT2D(@r*TMY)9X^!waPgy7z#;9$Xf8M3+e zQiPRG(`H2Y9K;Di<)2=W6M)&*HHCwqFI|F}rXHV^=lU%3ihgnW^WX@4Ek_FbcVxTrSHS=G<<9-r|^1Mc9t+M?kd zE^2^n`=)fBwD^SWD=^}y-t6Mb3t+c~pY@N5*w6jy^6q#?z));5dj56{a*iL0vC{gJVYfSbIz z9|0gutRn*hJPk@97ftC-$p`{fRMiS{;^!*nkIVZ<_FEKc1iF~>62i6dFP;uAAC}d? z7Egq3<%SxH3pELj`Km{R@lA?}(plAq9z2avbC#+BrWid|5D}`KCaevx(gb1tDE|#1#4XX1^oMA?n56oV__v@OFU(r$Bk7T_OZ#=%Js}BcTF3o3 znV^nXAd~zk=U($HzR}T|E0!FB)y`oNO8Wr&j8$SawL`8wTr7V=78)!klBY_;oEx{Z zl*MUl=QPEG*o4G#pU%Fulce^u?$BgbL9mFOIRv7m@J{XlJeXNTtHXotTL$(MjF`E@Cga34MaU(cw2eg`9nH z{b+(kQU|5$%AB%xk*kf3)(#rBX<5`XL_h-G5ph%}INFBr~~K zj%CeX)=#NHYxcfb$o1<80-Qv89e4i_m+%;o3HWbfFW-oE)#o=Ng$;6*NR(E?{#XjL zhCDMpe;bDIIgOUsT1>imFGn%{xUZVI?qzG^(3w|<;NA-~iPn_j65RV@WBIa~rVR>_ z=%V;o0e00V2=28GI7RnjraSPXC%ci2>0YbN!Gy_iior|u9>d-n-7FfE!qd_WB+Bt? z&x9VLV3QGm`|<5U=XIM+^@mi}INfa4qa!=gcY62n9==MIMG3--7Gbs!2Q&;~VfE>` zbO`spK$99u_dhtmt=y;>awmE{)trgSj(pavLLim%(Hc^&jiNMS{&JIU4dx5a;qL{ts@Q zbIU)c+DhwRMexYS%}7zY;5gie{eBG+?Dr-k)su#o0hqq7!t{wqZ9)aA}=!l|1fT*`S8qKNq(|RZSNoZb7{cg0L5I)YIicDeG0}^9r z8DK>WjC(BZ1|4dBg9d3tM~B){(x9i>pEmC`oFOlID_{Y?Is4Xw>%Fc)thkQDccv>P z5adf?p`TOAfka0x5au4#+pr^kAm{FN*A}ul)@~}=55pdxOJ!Y2db`RWXJ>P z4p|KX=h(hnBr;y+14CS?n!`RO3Y5|_cgJc%ba$IJeKl)nXvc+eK(__VA(PoXZMe(N z8r8X9pWS2Gh$3oY&%Bb{N(At50Vw4Eb|oB0>Xi@=@PCkkr9#b1^m6@3-3qPhYw1bO zogO-m^ze=yHhaPE)ySGNCXwX=-a}vz)}pPIu4v;)r7Q5b+h+4ap+gmxJs0Vy7#6FA z3K`{<`WmzYt%~n?`N})wi6FjGz`qN4b?}XRhI%SNYnGPh=uaqV;I6xmYSc|3&SJ4U z<#oYNNj&g&U2%QlFj&;*P@<@5oy?7#xK2Sk+}1ZbJSUYi?Ip!S$`u91ilK{_jmb~I zH~cS;!=?7SYNucLp*300s86c!Or5(~`OLxjj2o;XfWh+P=FI0oIpzFCIIbC(LaTxF zuEyh)gg;fN6OefU4aOnXVLP`yn+Fr(I8Z_l^#7Y}j{%sLT z95s-Kcs=Ie{U@BhvYo)$69-MDke_A_I0KfKFCe48VEH?~|GI~u364tRXf zgzDVQ#YJ!ns*jwXt!O4xyrO`G=CPu8EI5!25wTpoTfVG*aye*pjrZgihNzeE&nE!2 zV^oYxsH_n^thLkh)vZG2nQgQ>kh{C%1K6--> z_sT9SwC)cAWq%w@7~!e;&-@go>O1N7E^?c>I?A(#1$!ol4q~ASKc!ZrmQxG%V;Zb` z9TM<~;rACfMOCVyTBvI1tbxf#UY@&?%W>XMrd!8PiQ=`zws{y<$;OmtY&51lZ)ISw zHu1Z0uYiMzN}p=nDJOk6l<+i1W}v#CMe3*?)W2`XSi}AEu1@@R2CLKn(%9u6vK8L; zvfa-jId5cd>QER>R>;`A@b>&V+#n&SngH7z(!n`q>U_fG8@!{1oyaEzNN~|I!gSvK zJk=sx{gR4`QU;254+3^hseuF?0h~BF#FOspZ*08W^KLs@Hh4w?HcijvTLx2(dM(W3 zA0ve1Fm0|oDc@C*1$8joU^nmY9KY=fDu{p4jh7g)k~5)4?HYDD`h7IQ9M&HJOMIiM z&F#a5-jbpD%JfRPazUS;C}q4ZW)s*q|+Qun;PQs-C)8S z@A@iUy-af%rRVEk@%nm$cCL-a?i5#NOO1cjcGaY_T2;%>4n;tDuncnvi)IP~YZp~c z5}bQ&u|pV>Z825Ex1pv0_VtSWjUXrWZX2o0yje%$YEm$uBr0RQEB>5={3T)P_6L> zA;ADhPj=YIGHAAQ4p6;=&g%bHbRr!>Gh=cK5z|g~Et2$v@Trg-bV^$XJjyvb>bz~4 zT~vRY`#=P@25f<&2y@LH`=rgJ8O@0>x(sS)w?lUBe>_lH60mtV2b?EAf?)~1WOm2Y zwh52`&!v$G6DPS9kOF<>1Q&$IIL)wapgx7u2COs$IHb6encDea(2OO_T{jarj0y!6 zcG=camWY787X+hbk`V9bY^hKko#TGHCzdA{RuZl1Zef=p*Js&ZKnWWF6dX#Dw#}PcqDa(|BjM?w=LD3L zqTr)A2sgM|CX7@H|3(0@qN4xMVw7*t1!TtF#nFbI0x1OgbYdT0bdxo6KbBs^zT zg@FQ>Zd%2T3%q~}<-YrI^md{4B|NAgdre27&?>?A&1=TsWR=ubqy>Ij3J-DT&itKw zX(X%~*^WkzGkn0U`joVI^m(}fW~;+8*Y)?XI(CR_o0;!Z!nHZAOH1RnPx1`B|m z)db09W-44Zhy}Hr{?C1oe1THqybIm@YN|&PlZtmZ10SWL+YxMf6mm9OsHigPS>Zi& z_0RL2HL11p16LcJ!eVjrC;|*^aDYBGN{dId)0h7b!7I*#7?Rk{TYLp~EnnajN*pYv_L68Q+#Qt(L8JwG{9%fDj^xQ8Xaw@XAu zyWzv3M+D;8_*%P1FHjm~H!q|F;5RP}ijzek*~O{o0JrI+5m!T?l2#2&oD)XWs*_@k zjfw3)LHj`lUYG%^Hlw9W>2c-u`x!@>nkDZrN!2$++FWY9Nfs9pyVSYI)mTvmKcOlG z>B`&PJ&)jk=MK-->pn$wn)X7KUEROLRj5kD z(J*qJ&D!gw4<9Oy2}U@D?lemdHPeDS5X4w0VsP6ay;MDG);qqMerHv&t~xf=6lK%) z-*S{{Y_SxQyn0o~O*pm=p0GYTV9-!o z-QHJ7!CHO2O$3_ryh|d3gyDZD)hu;Dp6Aq2pb05V)I&i*?V&%`m+$n6s)k@17RMyz z70;D4YEiBER9Km3Ujvf<}<+!VQ zZ~)Kh1?5q(Izi#+;F6N zY07PW-*K(aV;TC_sEF>lTRD`0Fs@O|t>n&~pEH`yY?c;J?ZWWG^I`W9S#nMS>Dj># zRE{>sflt`!lP+9k>|bF~f0R39k{H-a+&(VzLX-v;G)2|)QF3UgiPjFfDPlUydBPc^{&8l&DAC=jn)(JtqtyKcRpH&R2fQpVov5RwEB_%Ac#P zzx0GEF;n5P_=**43l?9YjHS)=6~8QsI)1@Spp4q^-SpDV}P8Px>)p zz2c=Bf-6^npME}tg2^x?2!|KqZBy}^0%xifIuonZ1}0~NQfb0Vk@vI>Z}cmRlgfJ; z6SODbly3YM>gf!V`j{(Xc!za#_;tS1urMQ6k5vj0IeQUA>LO5Eyc$t*r3g+gFJ zNZ9he1n3mkK)r`rX8qaa3I6Qpm;kA@Cqx`@>adt867|S55Ym$y^4y99mA-2meB*CM z=0^iRqIZ2V9uAd4mL(p@2>k^|b3E&V)r}x;g3OE%KOxUpY`GxZE?~I$lT9~^_o(9} zo@phWg=8Ou1Et`WN|PWqKMp?CVWSP5+z#F$j5J2ajH(8Pd#!50XA1GBKwmo;KhIo? zo^D=vr{|RVPE|>}niJ=pLi#~7hRdPEmMa^6eOzaHPRC#Jcl5yAt0uT=()j4?6uJGSG{qi%#fe&k@8hrNFv^ z0>7^zc&jKFlDrRsr_#y*GR;t+V-ChnVB+Gi8zFT-Y@$Y{4wnL){jwIRK-m(PA5Uy( zW>Q01`WBFP;BkeXesSG@P|`*1{LK{sve!%20z2jL5twNs7+BW0he-C(200y#M`<-Z z3=uQO;oNC96!gbw#`%!hlv|E)2TnH~DcWn*0le}BKpViL;mZ+5ybM?mpNJT)8(WP+ z;tLaw0VkAdw62iu^%N1_k4wTA@gNbZu_n1VDLWn4MO8#@glq`2Xql_4KCq{6ytkFh zyTKORK5kD8}GH zU2kG6QIU0Tj~Tb_!`eYh*ZUNa@5Xh)QxZR1VV$gO%~j?FI$}zd=L()P<8j{xRHwh1 zh=v!+I%zW!-r|gUUZ=nI{A66A-#1zUC(&_LNa>sz^1nh<=7JC%l zjg+6T0UstPX(ACMjy`%55;24o)Q*W1Lcobck8M|SxNv}|E@l*10WBjIe_wkd{2k-7 zh}!9myA!@?e>NbFhNgBz!G_mP_Dxf2mVXDP%UPqoKw0xaIGA)gz`$;0bcx>RnBvt7PIdHR24!-;0j0l3d#o|T8I$X#sNuerSy^_QHqR0;BQE6A&bo# zj0kmTxZ+0<{HgF+Cl)nF+n0&Pbe{VfUJr8+|^Y?9cS)n z259Yp?^AImAh<_M_?nQ#P&0&#aT{kV|L5L z>@CF{bQB>iRsPaxhk%cN`ISO)wf01i}8w4*Fe z-ZN>(q%zc1_69URB@%22(^#xp?E&Kxm&J8rU{i{%cT!Ua-_ROWer~lztK?srI`j|%m>WEIccv=2j$p!^4 zXFjDD?7HKnwY16jL|KRx>*lUjjiy|~010v^_kREe3~lw)61;`v1q~Zdc#Jy)S5*-q zz)_2)dAKSbBOYt;LGgaPE%s5UaZoJs88ukgjY46pWl2Mk$}&FLupJUd?W&LUU~5;J z#(mZ>Os}NHaVK2P?WgnT{9m%DgNaKG-D^Z*B~2|JJan;Gc));XQ<-x&(#B!(MW{C` zZ(|Gu73lL|%g+cvDd?JHadz^lCNmsnM`UH-f+!3>E zIGSQ&r#dXE-{9m#8CoG`stE{X>fS$#x?EV(!~Th)J|qoHyldWf+#>K8JQkIsP0Y}N zIw%k!ViW}l5mOypJqH?qtFe7J+}XH$D%mUa*;hBrrYxs0>V!dlu-0EBYYrH|z>JE; zED<6K&lHE?j|_>MWi%_k{|*YKvjLhfF-2`C8(6__B|@Wl z`0~i=4sozvZbCT{=Bw4a$XaY$%f9I6+5yGWQeXctH>7!5C5koAaByqek~F*_Wh3m0KJ{pbCv zUc&S&D9>zPqGC0OY1^bwt;;S7xNbCG&r8ET#)P}*eP7QJDx#Aka}9k7K*vpf9LUIS zj-!ZzX@_fniKEoko1<(TE1q$GA`cR)e|baKIvIRw_{P}SrK;-e2YRZSp@B2^oFVtSH7OtH4!RBmH33I zeszXCJHGkj6mFmwPnLt)lmqEC-^DW6bv$=_J%NWND1xlW&2b7LNXN^=CjyOUsQ*4( zW0V4R&MsaPd&m;DZNx`(m}`^3{&&O{Kq*2;od>$QN==}n#cQ$Bgf_kXiD1rT(F3n8 zF`n&l(>eILMbXV2xdns71~KW!c)xi4R|UKJ1K8E&b4G|csOx&o{@YGmIGc zNDj^pN8M%&6dQ(;9{2W@x6T)VqsPrJ|?BGXIW z4Jp?qY{<9^*6UV5pN?9xH+pBo<}O)zdJRNoI_t4?<<{RzBFQs!%g-_!J@GhK@5{4= z1+kP&9V1nDl8Lq#JNn{6HjLfOoQl=6^_i(-T?Gr}_#5PDAu6)7h`kYE7 zy{76m+$I2H5!hN7KuBsqt?3o!nIYiClV9B{!YyTw=Sft8W^2G3pzLUM(A{|m7f3`D zzqp>bO%@rfcJA9~bkIT@`Azazxs)+`d;ug0rmk>J9sAipp{HY4$;8g;1tx-6`sO>w zm7*+t(SXYn$F+LFGm>Tl1)OYHPS*OlEpEk1s^wa*E@12(Mc zep#txEi4h6Tn!wv!@H%zY!#V%!*1@+lK3oU!(R1fBttj)%>!SwF_38zM{Kl821Hln zS4b-NZY#k&@g3188l}ru1<3p<+AmqZ4K3*6D3gFi_n&iWF!4ZT&LeY~{&08Ol9jPw zcHMWg$+prgOp4c_6fvlMe8w!5zJo^K)GAZ!tx)^t?R?}x+D0j>A+PTNrNx6C)Qwl5`~xM34Zl? z8*ay0l-)D#q9+BY?;P}AKl083O>Q9z^C3qBXa zMc_hF3mc{#be9bd|AJgs1%!vtR{xN>wrj~b%~|duoTZv$9`?Ps0z+I?apMCIR$=8? z=StIn{`Am&V-IY3Hde|@sQXT?PrlY)@e|&IjlF_<+&E;bnk->vnl{8AF>e_XDOZxx z)SZJUIa(AyNURj9WbThSkI&w7AANfS|GoqYN&eos|MTE{!hHhsHc*eOJJ<^~O8g~H=dzdR0u3`2ln>(mh?*2hodV$1_WTN0%(54(h&I>Iw7+{GX{5ugM7w5q!_-inBur$J1 zSlxyeSg%9Gs|<+o1#|FsVirLsfqEk82c;7NRJN-sW@~fhIGt(WFf*du?|fN9%mxR#u`12?YgnP5(mRCc4#w)7`x5e9qhDOy zB>lU_X|^2HT$0ZT62t(z5kX-!Uo{_4qtyso2f!WzCQ78d-%8T(HJf1@$ar-(ickGn!HgE!ekc&o#dCwP(x`6w9WyDS) z5b!Qu@WHAm6KyQk(Ff9&rnN~OW$^hWN+E;5(03^TgXcU&Kv5&zeDoHrnK*A4kAxiV zN$_$`gUxal{}V%wfVN@+0wc|lcrGtZF6=BS4~5aKW!z7^{4_Z*`Eans>7(LcxTcUn zjZ77lWiVPi2g7T&7F-!YeBM`sxhf>SBq&bOq_OStDV)JGD4&Bt0$-$bJ9J=o+o3IoU{uuG#MQ8xFJV8OoQ2ZIQU1l6fb-zq^3?neCRz&uns` z?xHaivO*kI4?D?q3Y#L(h9$|QfJF;l@~`(>nB+R!GhJ$YRQYJK@cSsa}RXM2osX(u(C=tz~ zl79$I4>Hj!6Qy}?wTcOp#f^toI0UTW8Ar98<&c0cpt{2W=<^Ik>ZJJMa8ZIbl9HP! zDnG)Y4d|}w5FQCJPHVgNF-qQ}E8OD2JMg9!Qbn|r34x~aG#Ihxgi=^hbGT?NYDqbmN=vUEUTH+;P4DCK_a01XWx=dAvUnLxBz^SL&Ge?fjsFgkRlmQC9o#CgNFt* zf=S3(rIp|)ZKnRs@Q2Q-`uqTUz?FEyB~F8aQ$_pYdwt#^^?f&K>eSI6Q=!3kaP`KD zAf;q?eN8>4`Q+Xq88j8WB1KCux_&ZB=tEDs)~=ILAuzQJ%b0D5A%HG9%4C-FxlfyJ zH~Mdnlt({MM=|MuxPfhE__?bTwLx^#LFelpXc*7*15pPMdFU3`3By3$_$yxoWLFEe zXc!>o&~`nfHB`UW3EH_XKy0iSG3Gv4!GV~k%mk*I_+Ed;@UEfg3_@~ZLDY`)YM}b% zfiT2wjTC>bC_M#Qk}#;OgGAp$c}kfut+p?tA)y+^E#f_0n6#Q@i+D-j3$vdu)c-Es zkpJS(?E@1Dlt3LLg@sX&mQ1+~4VAIw(`iS@~!fGg0)0Cw+7P7R5oFSaeH^IhM7 z?{xEqhkSPEuJUt0uKNkNgJTLqm*`ps^tN+sza@};I|Ni=sKl>P?Ej7gQ6sxyI@)nL z!x+LGW^tsL)|Wu#i#C|&0f53LdOyeqIr6e<5Md(P`*=-Y+$*SU%JNT3P(MU0`VEO?kX(QxaZ^5$t`(u-I)o&y)711O}_86AZGw&@dI#N%K*_& zJS$sB4H$n`z)DGATIM#sM%sb8dR|R!l!yU?CpamqMaeBqzFCsvn?h9P2-QG3;TB{kx;w zq#m;0{&^04DpAhit^VUc_f2JSFAEEj&u(nnRJ;yy9DFP$yCUBN#ulYu@(A2r_-kMC z(eG=x9g8+=*!B|CV2Aq&*urdH)3FqjO66ahKIeKuAn6@K-px_iXwm2+Cffedt|w{c zO-$sQyn*8$#E65R@FAINm_d`_r5$e?^Sbib7@QQMOMWnD7|h#LHg<-)5fxdl4lxr; zBY^NL8m0MZ9sclOmqii-oLUm2drQn3bFxEOfbpbaM{qd*|S zA6tk?k05!TB(XoMHT1Bak}1nFY-K?J-v;Jx}a#}1O}p!~oW3qCuk*9{AX zu#LPsfhKn^cgYst#@cH`C)=^QX1ZZd^AAeb`#7j$6KFrJU`7YoQlTt@#yGWi!2+hu zeM8MFRxTJ)M7h$F%L-rngRmQ*;H|P1@==^0yYvB;4KwHn<9i(wgb3G8tx%S6eD8uB zfQw0AFs4ep247-~J#p#uo)dt7=Gob9Zy1b3OQJ!VMjp`991L5J`?UxLIMQwx+#l6~ z3IIvpUCK_5nyN{k4BGrjC#9Iw>)3w#8KJdkUbjEKs~n_XGE;a=Q2}}w=v}mwwqe+4 zX852ral^K%28v$)Xn+Im8OIoz{L;f_o4UAgqtY4iUsv>^@=mi|YK>o%rppQ17lfG! z+J!uOx)m^jhB}>az6ZSx9`51u{HA6011&6syh-e5v4nX66cx3WgeiT>Ff;8h8uA0R z_)oj%Lj#@SPRa}25A55@CNl}IX7`H*hylfSmp2{kg%1cOP(GT8^5EqfxhHRE?~=%trZp6QBHS}`zgN69w{(7R1Ii{TvG6&{8g!C zL4{|4HYwlR5^3$1m0u*}g`!tnVC99V`)8|`IzXcLmy=Rwr)2EwL|8&5(HTKTPd>Kg zPE!kxgddLF0&7yg(e=s|YQZ9SWf<6BlVha=t|AQ!K?7`*uY0~vS;82O1VVvEz6fyIL|1*scLrhR*Wd%$&Jp_& z8JLd9P{WTU@w52z0~0dei78%vbV0q3EY=t? z|GR9>yUPMdrs2)ji}AZJUIyEFg0P^NOHb(cV!#v?Iq^t08e075s3ZiUxG_W+Qivf-Os(bK;jhQ_n2D|0EsOeSOkr}pNltkqc{uw5d9v$Iqd%=OfINv!Zva%s+e_f~mCih5aP&b*D6sPL z_nC5?2P@Xqg`VozejU^7o|kNL1j?23w^$(3GDag4eBA5u{P>_13CtJCF!s#C*G!DXqW&I{88j%(M8)|L0 zMhGEf6SDW-TLzH}(hG|VVT#OE`_LdkO0NkNk~K(qy|Hx%X*y?4>vWZp(v-{(7*_GU zzEpqQ^^m);WdelD4TsR2dtKLsVNSqIG5CY6SvSiuS8A=ruAX^DFX*NBy6qn97Y_Rr zTTW6=f^&AI*a?`gOu=P)E{lhGyMn|_sGS78q)VKd@F6P1^OmE03BQ$995H= zl3-sC>#qdoM!C%Jotv|>A{3x=%ZiS|P=4>^?Q<kAUn9_QKsP)EBD`}2ak{MoFNnU7aC1GhLQE4R| zQJO9=#qO@Bb54s{48yRA%~~t=`t?FAioM33lKA?c*ayNt+jb$Aopy3ZF-RVnuNRR$ zUs95MwU*G5ufAi5+Or~m8n`fSXC1h3C4e)~-F1WLU; z6ngEdYrB5^Myz?V+lO1u`bGNJ>D3P}i^JZMukLvae?j!x;}>MbKB!*SOYC75|IlmL z!?34BVh57P@K3yUjdh3E`YrT570!+e@}6aZZN&S;%kOq^4jN;uF-97xq>`#)t<{US z7h+-9i}XMk#Xs2XEe2A}l@P1SD!JGxh`?rgibOF3Bq&6JGloC%v>3y&0L>%hJ`qUs zT=n5L8~l$c>FcCag@HAumR-Q^H4ALx&NJzZ(0exphKZ0O+7Pzbk3`b+@K^gOB~v<* zq zoexzghviuzJNguSpCHtROUd+Vh0~?$k6Bk6Ic(NC?O|xx#m>Z@!?W9T<+Eq zIN)%t=(4!uJz6HElrj!wF$&F#;`~ zT1WnBDUacnU@?(BfOY!z5v)^gdL`C$Qikhfli^5beG&8K?mVd-{TMn znx}ie1Kp%G&^-733s9gX&^#FgnrC}m00DA;N9O$kbWf+yJTx=!F~Ysy;Jlv#ec$~B|Rfq@g zv%t-lfd*|>V+DEI#FnKBv`)PNviEtQhM}9UWrPv=2R1kqDnj)!puzf@uSkRSG#?8M z*3W!N8m!-{61moQkgo(B(9cH_ZT#55ggn1)DPaSy8&WT&FT;rZ3Ato&*ja?G_~+9r z`WAxvz|;4`$G6j~`q>$=K1K3Z(_p>n^BSx#eLfnj?>-V5tmnP}v`&qiOzWgFeW#qH zddL$Jwq6*;Iw@|=-BMx*91w1nyQM@MKU6(23qp#-tNNC^r34T%5)nr7Hamj{T1O42 z3Rb{?T49CC+afY8hQI?^1rpiZA_yoZ#>17J#6=H=prDzNJR^rbS%%TVfg4z?QG*mj zQPYKuEI@#XqXl&o zSc41KJjnvc-Ex7KtQmEXs3i{|cgqDtIdvuXHyw4)9ZbGMd8^I&N-*w=FK<3|oPBg|;7u%p%yecZ*`5|LeQVo9WXgte-xkqbyhO>NW^}@Y=#oySq)Qw& z5}3OzJSBBfZYV~s{iFnm@qPwAxi2bAy#n1d#_{Dw@Z@H>yR_=aTJA6CSR#j-QBCR~ z*)=d&mToUH%}4-m+?l&I1PZE{4uWAiC5;Y3F=atjqk~LLThKb)NNs8(v*FU*NM6*a zNn1@ynmx^`V{#AW?lLV)PYs8W`%QG8ktX(KVn!1?ibuI0edwOkjaNEIc9rUM3bU+% z(X`BPN9exu@j*2V%)B*&xm zYP)^u+j_MD*{*qcJN1#bniRs2J*Z>PSa!smo zP#k8LSS$B2%}9Qj76~?Xgc*TZ+~-g;%H7wH`r4PiX4Kb?IGG??hG^a^F@?^T2Dv{( zg&*7oqXn4UxJl|tCvg#GJ6o0NUaK0@Niej1x3w0tn9VF^F$}YD2%9q4I;W@W%~rO*nh|#A>Gp~>@9Jq>Tsya7Y=X68V*&+SIXim3>N0f;v{419-F#U7x?aJ zoLZyMd~j#(E?sWOVZo6qcbC=|9j1)Y@frZqFnJ!7Jl&cC#ZFHR7M2Y{v{#8t`^ywiWO@dqfJM)O5tTZSJZ%J# z1(pNczzrLsP|H!yfBRPNRfDAM{kq<`KWo6sz!w@-C8ATUZYi-2w;RnqIjxe4NQ8X3NjU8Q08%H*4 zm}tVN#5m2&@uemQHLlqNIq5=uU5lks*pgbK^Kd389CnjiM6} zZ0QZ7JI2+`5yix%#3dz_tT=6SVCj08L8rkHh3jDnE^9-~)2jmUwxQKAm>G11Ig+j&+XHQ);Ip&i+T5shU@nu_r#$+`$DjOA(LFO z*Ut%kLSlNL^g@{s*thfQA z(t<1tK<-u+Z)8;NRu(>p0T??BZL#fO)XJg;SBlXHTQ)rI2)SEXOc^0}7anY}u|yOn z30TZwX%;WI!3GO3l%r&rp14}>78XyYWPziMENNuP5{6aX+AYf#GL{G%McR(tnK#%l z6nu7eeA=iYR}BS`HmJx{lV(Xmb#d3)D}*DtY9#yR3L%VKb+*sq1F8~XS#-GQmCMME zJBcJ!BRDd7M2*(CA`v&n%*?2atpuXmT8ON%MXoxB_GWu!i-#zu9dv1J5vGbAoZMY_ zkb{vCTWE9kLxTNP*2$ZEDDN4OGH)?PDJ3{pVKyfv!4Dl8s=2#KW!{mWcO>Q<33mKq zo;q~T26H6%BezO*A98*NB;kk~>xEIOp>8BS?Yxe z*h0h@V~jDzIp>@+#u#IaFFMPF~%5UoY9Ca1_zi=rp>Y-07kzO^6WVV zFz1{pl&*@=%w`jllv;{Wpcn|?P6EvNgezj3Pf(bbZd+WD!vT77TbBg^NExfAe6}R zVJwP6tYLHHeXz(<1zF`Kr)*h4M3z#F9L6Yk2rO{a@k1*Oq$*+9&;z6=@`!?qH#y`o zhT&wayU5rncH4rCVO2npu`1%oD>H7W%CT}ol>%~@n&L~oPOlrtAYWA2aH(jR$`mKl zoJ=#NSkTDS232G_1rV9Ou}sO7f;@K05T%06z}iRQtW7`Uj6AVKU1Na9ZH7>1n)dz^wj4q=Z`uwxdBMcvQ_fE=!j z2S5%t7LhzB-VxfwJ7TlF z%@%W@bL@;{*<$aAefA7D@s4Co=rjDo;+-D}&a)sv1I!{SFhGb30LbA+d5S?EE;rIE zrq>)Fn}lg;=E{Jf15$nQqXw%*~;iY|3 z${Fo7?BHBwkIx>XNFFJ&M+I4dR^kqkGZld7`Rp|MjV40QvaGw7nCP+%7};Z#j(hiJ zW!@6(+czAvWoIIJPRQ9|=pZp?uRsU6-p_7GTsmedd#-c{5=Mb&^lWA(ZLiJ-nJ-~@{G)!`phZpftW`QYsjbk?%T6(KS^X{ z?saSLRjK|ABnT4&H~rpc%MEY7WMpJO3TsZC?$O9RdO6YH6=bG4JtD;-*>eD-3(NIr z6t!Had_8Wt9=}|tkvYjg!*!tRbUK|-s0)!;cO*1HJ{?7L&HVZ{^JN^6FgFrisGnqx zI!T#Ji8_5I$RTp(`#{Vds6jTBCE7Zv3z0IYuNzF^5cMAkUO!#tgqxtSX9RUR3Nw-5 z^&?Jj3=+JtvB7q(u8%HuU}0HKf-fYQJu+CU%Gq^M!BGhbUPnL@*FLmGHaAODv0HLu z_v8Hr15p>)faT%X{oLFJ10{eA9gbKxjdx;a!VNd%@@2coV7WrL&q8Fpay??X9*eF= zD%W|qcuTx@x8%;%{Edf!x(g(h4Yu8n&2KPJq@ySgBbJTi$+>c>FyYA!Z>I99W{;4$ zqDgqT^cP+rW!%~CR){~%do@!cA{4AB!a|iypG5MYGX0O_=`OM`Bh$kmdnAj#%6TPE zccEpCOrPpP3nel=4xMvOA@0aeN?m9%M(!`Xxm$Kp7)*2*A|;R`846`vBuP(W7|%Tyi$izQL7FyB3A3b5^JSjXT(l9L8d-)HKPg=oGthWp;!e83aPoi zNyR=AoU(S^C&OILZX=!%DU`h)LLr_ zV?V68{jG9T(ryE3-T@|0pC@_BmJ>B_LWzl*v}MbR8F^lX*^)v^p6~6Fvm=58YPsZK2BngpiiDf+tpOrZ7hmaI9!xtkcYydsROckuKa4?26|M z5|lxLPGXq3;+2&99A-X>nU6^G@ymR7M?mkVdr7{-_mXt)Fi>Qv=6Sf>erStsi~tg* z=6OuZ5E;9Yr#nclN4g^=$g$=Y6jJg$kT6&NK;-^T$SoOMk-KX_<_pu)*sVb0l!Hjh zC!QdI1S4*gBp7kyr6hym+^rcnfpo$(13LsTVL$@i@?A7wgM|5nyOJl{UaM`3BUh>@ z6a&IWDQz4&=e(3oIjiWAyCs7(a(Jig0p*n&da!Ovm14HUEq6-> zIpi=$i8N9$)7YVFV!9y&Fmm`}2QN;*h2?-G(0~Jr9Z|603?Y2EV#It>%BWcvRc6*j z<&tqAh#w%0@x{>@E+|6xgG_-RsK`Qy9(WK&4%Ra{RG@<|Q{W**mm=7~l5r40#~4#Y zu>}-X8e(h^gF^t4s6b=PMx7`LQAsYuWXZTdLk^m?5d&BdQp8>-#5l1=mZ{t=Cu-n? z89Cg^SFEYZ7N<+B2{ZDXw^gpV0!aEHsyGmUL4!EzC}WACC}OU};0qiKQN)5w4I?a~ z?97e{$RU@*R4WEwnpgo0hH^*&23iD()LI%kN=#Egp(m>sMiqcvoO@F$3FbhKDa6QO zMHn4Uz(t1~;J|?m8eGZJ*y0AHOLgN=hC+@HZxos$Oqek{2!n_n>=3Usn7~1nLL8l- z3N5r00SH%BLhcq5N^CL8Ay~xLIZQlxK^aT{QGnd77dXKao_@5>e9DIGhCj5(^WlG> z0Oihaf2VR>K|VfAed@vhgooSpx@u&D))?cbN`*9E-YkkG3n4_w#grtyi_39&` zjI>c1yF129@PsCAdeaA=Bp;D)Nj}v^XWtZzyzexp()lb3U`D>&|fx(%vocxv%mI z+b9DwpPVVVq>@TX>tz@pAir>iYQHA(7!9MfS-rFp`zF6IZt)8*<#(NaGe~g0#|O7` z)5EVJ#g{dvcJ55JcV2zTguU8xMe&mE+&K((PBMEuc@qu$n9+q>;u_aN;Y_h!k@ z$_r-soB;6Qmf$5xGFS7U97%C#K1P|BVV;J0UBM)WW$T>qO3L&;SggH49mG2_fE@3| z(*3&A>Yac&{(e2_@7FBT*Q`>+I})U<9VG62lwt#hjJ@`FA0b?yEBCSiBd+lUi{vq7 zI>VxmM>M0FMM7e$v5NNkHHp|OQfG3-VXV*MwqRf) zdrG?BFDdzV5ruy;<666Pdm}CD^ww z$xeL} z$n)dLa>mSJSLMEiF-M*skSu3T>&Qn{6~-US-&Y%m@s4O%Nd_Dj1{bM|2^;Q(KPIO4k)u&L@nAu5lU$B0EsInt+rRRXWt3N zM&&f3wSzCx7^3CmZh1i?hra^C0A%@`4$`eHJY*?#0A(3ES^fw1Rt~6Sc~JHofF*0* z_omXj&!l8f?~;~rDYOE50ZjyjPJxR+YQ6?%2@=TLBh5=S_^mVl(cq8*dDFoYB%lC0 z3^U(ta6a{=8l2!f>ceSpp6)5qwhc~BZmI0st{tqr__%kjFdgJ^njX&4#BB`DkFX%> zE-drXBD(h?JrP?-KFFb!29Pqr$dbcTEpoTOh(m6XyVV6t{*P7{JaWikMg_2~ICwNK zFvy=hHdj?a@^svWI{io*Bv25O*+cV=VfLurskZsDDA;yNB+G;{Ce}Lg*Kv?5`kJr1 zO8!vj75&UdUt5b16)3Rq!}RUUoEJ(R_x;|KlbF%$wv61kP%d=j`T59l+KJPv>9vn0 zp#yM2&UvAQ6hxli2w8SR)WCVgLcj%y)(xt#B8V^?5MGeDRPm(cC4&P9Iuzq_#tvU} z0pk~SBtCfrSw8h@%WOAixC>LqV{@hADz@V+$A@T}zaBpoIu{wp3Ol-DsDxo%?$#DB zy11c>JAONQm4rKSG6M3 z&Ipe@0vBmy`k{aU;X)%zXA30q5mV+~`kJ-T*s>HP&u(cUCb#4XZRnI=w~mO&^b^3e z-H<86Nel&>rQMiLJ6AVIw@y+h`dJLW*QaXdwj~LKa#`;h_#Gg77Z7 z*r5hVKp;Uxw#Ly7OI$nHSn&c=6q-%$mKIka-OY<@bGNjRg3G;fx3rjny{fB|yQRew zEpp@#M9PAUH8Kggzs1@UsXzkBFeB6VQ5Z#F3~>|&ZChgju((a^v0oVuYshV6L2brb zo6JzNefNMS@fdbZ)0)_aGt?&W*a}zDvwq!If;~RCU4SgEkG!2*g9c$pp(73}V&Y)6 zeUc~JxucNdyCL1VFu!3J37Z?J0u}@(@Qis49cn3*A9uysb`$04z~nTczgYJAu{_m+$9{&FmqNqk}-FNnKSL1A?9obnzIwpcEY&ck(f=7*>nzf zmz|OA7JEkGxob_f+sC)i(2{@TZlN(HZ?QwNeIVYRF(vm_xzZPcnMvl}ljc2BC>s?` z3ZqmsGdR4Z%ivIjI+cF&37Ms@JNJc7z)u7*n@o@0k$C&=jF@h5xZU)x6uSlpbvEJB zxoovY=Pl{hcC*1hXUwW^bMBV5B^nB6&tqL#2T1eDE7AbjXTDEj znXBxnujk4r1Ht3QhjNNk5k(#BITFmW^CaDPn``nmIhw;ihevWfijiP;8D`IYb{d9| z!z{C(ENY$X;`oB>iAfWDk{uzvh8a1_G9X2`*<-fW{&tU?GVNtI#L6kA%wlrNTp1n7 zqS@ow%Up<+T^>mud-~7)>GmfKWX0kip!pLJy$x@+_THoR0ZnizU9LngkXPG2wq0PwKwT~ua-4Xlk$VWcP*|Tp+=pWE5 z`XxQ&kq2vL^!F~zpDsjdkzi)zX-B_3uCkvVL?vgxZ&pu{VA3i3Ey~$@ zh;U_2mI+}J6-H*i&e2i~!{{;l>lhX<%)WlBSHH8h_%+kW4v8EiU$>MtvD)pi*MP<_ z9NLTEy1gnD*t>bHkZW;g(habwCWjz+IFq?^UDkb8f*g@l>r{O1h#Vtt z2c-m$)Fu^sMOwpN0|Lv* zX7fa{pYsc)rUThG>t2XuO;-}hDRM|g@rmMwa>(@iP6i296DERkaf|{+>qMm1iAb|Y z4#`#h5Yo_O!m&_H0BQrCn_CkLmXp1I?ST5R3bE?b9@S%?X%& zs!tu#gfwXyqqAPo+gh*dy6SaZ*Hvr9>~&i!X1~P?`&GeG?p}ImZ|Au)k>4JPl;{EA z!=>HpV~4$~^G^wTSGPTAo~!a3wwM)L=Y$moQ?9I9Tg<~YYR+f&c=o3|M>C6mfaW{w zqdnZI->KV$SeOPhuL(WByAZ1$oIT#P{YU!-WaYv@^V@bHdJTKmo26ZdWhHpQEJEsw z)bG^$)YEHsVS1PLY45&dJBNd~Z|`uBl^+f>nL#~Qni9#{nX9_<)tri()T9dqSUhaQ z`LsJBqo`D>8W$+2yM&I25Xc;!5`#>ZHm1>V{|~Q!Q1SHO-<>s1{yneNTWJ9#%J z6bj|xT!?jZ@27j-aWK$z4+CMp!9pk$3UxwVllHFkg__3QYchE^IHqgI@lH3H=_RgY zDsh~}DhY0QiHC2nmn|uh{nX!Jug~xg1-ec%n=u_wuIsv(xY~tX7j|9ObzRz}UG}=x zt$<-7rJP}$*15hyDOGlhmWc#Z_(uL1< z+8Nqxz55alJoggxoyyLL%-Zdzbshb>clPw%Guv5vrSzCf-*6KxZlRX7 zH_?u@5RYlcv<}0rnM_RbwtYtCbd{``Imw`I*Kyx4`q&+bFCD|7_EHyJaG`|5=zTZ0 z`EWivPsz=_|J-2jKRDP%=Isl&Uzep%=HL9s<9>sGY%n-iT!))z;f9@nS;N@-=2;_6 zb!?qu+L7S=5m__d{(22D%d#xXvMh@+VqX(^dmAG*BW7dvSsa4|=P_XVJq$%G_w7u& zm)_Y;Z@k^~CEHCn$Vw3R4KFEmFJTM**a1K6+ZJXx+$h%_m}SpwW*N4!Nrof~g>n|g zkYyG#R)i~$VH70Zkv~*Va(%?$hCVsucJS1aCyTRE6Ji5%L`!Y-4(sW0?6_rWRM3#>czMj-{RkMd;8l1x6-MS8k+^?gqo73k6ynfStA(%VuW|PVEZ0c~R z{d$iNr_|l+v~OK@ZQ7P)Hs3I@-;aF3<|GoNDQTDJ$RGkUD*F zb(yHp%+y@w8k(=C$=(T=Z_U>%ny*==FXoxASse`Sy)^=6lMsn<0L&(QKMsHyg`3!S z-+plj=6jj$b0p8{_xIj!r|$)t&u3mVpLd%1yc716%)I7HXs*IR^fa%*K~{d~X>d^e z4DPu)UG`qr35OPSh0Kfk!rOhJJ!iuA3&ERFN1>ikC>)k9LT$|m?E_zeHo2^;(Yu1G$k_7Dz64!d!y?A*z$h(JOz(F@(vu-pPX3wuuVT+l# zunOaLU~sc@zuqjXUEM4Vhmk!#ZePUy_H8W_J!H0T_Jl()pPu?wx9uZ*IG^{`Z;M ziaW=>yQkBpX(&y@;dYLq>UPup)eYfHPnqtqi&YY|HhWLD=h;(Bm8j2VJLcRu`sqY)_O!#_ow_^vd4iaG%Y+;g}Q#sCDAA&-<82 zB9yH8vUSd8!<+4QUU0Er+c^o^UxN0sBeLO}lWj*NB|!@ku|Klyi1cV3`>n>NwN_c{ z)JoYqBH1+%4C&E2F^?^a-3l8fQpy^}X&w6&N;$)}b?kAnUE*TDUf;cRD5hUeNqy-{ z=FT%;ldIT(I9!eBiMyv&22cG z72^{pLcfX!D<%+nl=%2C~9oi@_S9>|R#WqX(D0rY1vjyCsH}+_|$D zP>4ZfZ^anuL6^LP#0^31G&|)^AFJ4$);!1fcqX$)b(vLP&sB!=^;}^%6uOeb>|V1} zU$bs(K5x6~&8qplO@)J0xA~3A=0P=Y7EWj>SmldUVi6r+#+pdXL9N3bhr^zdn%{hh z&2exL&TW2hZi8)*_Zr+R4);i+I*#P|rusMlW(+$4IRNG+^;q`}duXv9Ukr0afAiUV zHQyFFRh&}dCKrPYJ>l?X8xFPCn{aqquW?`ZIRRCeojo<@xZ|78rslI(4W<#O#4J{| zNlTehG$H^10D}|&FenfV2ZUmwP&A-vdN6$y01Jq)LTp$V$+I9yQ4m7L7(1APTT zQi~ORFCxIAh*!#t)F_rg{;#$)7H!I6$@2uVjCdpXvgg@glEa@#OY{&gn6o&KDx zl)cE)eYMCKH&b`&q6Ao&;Eq`8-Rd>M%wyt?!gir7z@gjoMCd z>5*IIgT!iFl<5Qh+16RmaENpwdIpvUdf%9(pbGTiw~Ta&W3|lZLe(m+)t|s(6t49u z9X8lZkk9-b)S2_QRp2xj63#y|oT)$WubUF?QaLSR6>y}ht0QD7^SKmt3YeOk)J-9L z<(f`y(O3nMCey`U5#2ZD(yC>sqF4#&dMl%_$}cy&HJ(v@q9DVy2gx2{@^8CD1Bm$Yz-p*O2D#)jVjAGFCPP-;}|D#@hmC? z40TQ+5TYV7JM5{_8O?W{t6qC+WujWlTJ+w--HIFpjh9F=H8P>ns%c$S&{tiA7dG%D z;8QB2rJbbr;3#DAC?DMY+$}s7Yy+Y}%tIg%*Qgc)Oy-Wv`3fE^jJ1ih$cOZb000oJ z?v10XMO`CMxy_#M%=Zq=qO6hYXkwe))0aw-of=82^Le$YRlzV+zf`6N8Ek9-r#l!^ zEn4aGMs%QDj6h-3_IvxsvtRd-q+uPx6|6Af9B<-Z7C2Z^}YU6r&zj z4tqN|@R&jvs>jvxG@Wddzd%{!Ae2~p`bS&}qa4Z0F}{b&tlv)(jRe3ZMMcf8*NKx& zQ-wgrkuK6AJB)6h3S#mM5MDd{Cno$3uZU7A4e4_<@^SIoKsO%+($?&61N}f8L;6Yo zRNA=)zRzxIyai1UHmqu)bVOw-4blU_pR5s@;lw&JIJm3_tkntx%BScz;gx;1z@w%%6N4n$ zU_1yxc#~2!_2NKGbz=6CGZo)Ko~L;deanv?t&soPAMqN$hJCRyGeU^qABl%|BaLW> zq&K<-Yy{^%Iw&+lG|;l}Yg>0!yFjAAjn`2!_U-E3NT+-|6Kn8<>vd$Vu;IvyLBH}b zM^Nj&0*HlNAhA>YVHSopbVsa_WtA|y+SeURf@**@@P|TC6;b!e5}bImx+>B1?S|-; z5s*jsF>6xrXm>-rR9qa}Vt^a*frxlLPrZV#CMA4u@bwq`INQcK>fV6j8gx~R)7z$& zI5a!xuCWq@Xo%gYXG0`M0Ys16br&`nZ%HthutulJ_C5C-c)F5?h+$3$5IT@bG?>-3 z6Mz|e)7c_q89{whbT8z~7*{_H6cyn7-HTcosOsuvx_wL7VW*c(It&NghA2Y*Dhkle z>=q+L?4*|p6Ivinh&>#RM<(cc3MU=ioN&kvtA(VLsXL5WpI%WK#wt)-)^K3Z!yIC= z;x4D=1pQv+&;^r&aLXLptUCs$K_U!JOyj((aQy_IY8!=z7KG{%Jt1H+sY&?B?CZ7&$NlvUe1(Ep-KMp6C?3H3;X5nqLr#Kf&It;z zO>k$^bM=M%OAw-iegU+$ez$a*gOLHCqq^kqIswN@JI!=Z->Qk^Pt`PRcET8+ z8o11iO3+T-4RGz(h8AaM7F#A`3p1<*P5|tD1eSFRI}n%SWw_{iu@!F*Z~dY_Ph_CL zNS=U8MB!?YCy-3So~Oa|{i`4xOW&8_F)8QXOKYlL;W|paW>)_%mcf zecTt>93|rfntGUZL(NTgNJ?+?p$`x4?XN-{k-DK|9djtbF=dB5{nvH5rAd|=C0}hT zoBkD}2)5AyGPs-vOZDft_kmb2L~Uz^a8v)|1R4rcYlbT86DveoHds9cQzm*UpH=?i z#>OV2;B^(+GE?|CJ!oFZSH?n`!uWk!^4@yDeG9i2EhOu31u=aUnw;U+bnWD|@6x@L z_boJc#!L#`XkJ|-O2LToGDLVuBECTIef@-=Wa_8r4(dEYLxam(s4`FPlAOjH`1Jm! zSP2{!gPyoQ?umK}DcSlJsY+2ZG_3DH#H=$b(ux_$&1rgTJh&;I2@%AF>fWjOQ-g6K zmRC*k>ZvSop~e8W@{(X~YzslFth?)HEXMoe&jcFULhkasDvWzoQLUl#&KWX>o)Qz8 z67)dNIZ7=ePth;{Jm|Od)+2NM^zMi+#0E=x!l3>Ty2}uu8X38F89?u18Y0EN%P=z{ zE@JUL>Bb1FrEgzLCrO15CZcRVgu&$jmmlqeWUj@~LBCo8jFh$1b9 zOcnh)AGJO|kUY90lQblnAV(y~3hhI&&r|0Y*uqnOT&5xZ7^JBQHbc(Bp?sS#sz&&XL)nhfStu9i$6_%Fci z!jI!T!*+tMUm#nbdVurQ0`-t-(3=C2uER?dH{{=9w1(7nujf5fm0xbA|nF#cGgcl#YIt83dk*oC@8xpyct^U>tc*5CO5|20AlN%EZGFh@9TzFRk@p{M!_q6y$81s_N+Z zJs=5xy5P(?-DWj2{8-)J$5)?lF|7th^(G7h)9hdi-*BGtn`O-o8E+UZrZ(L7aeCdu zJnNw`vax;1B7C~*D5pEUj&c{}X*7h>GL*MkOpt^J2~J(Gp7AvxYKO^QnK2L1=~mP< z+gHCK(44_eG}Hn8hcwtK@$|j&>Uk91CBy=t2klclyO{8DI#wm(vc4}0eyBYWE-~=%w+Cub0G^s0HO0*(G$cP7rvIJ)VCf*DLf|Wc_FZy?G*< zRk7`J&J`#Xa;7Ji*4hRy5X{tZ{&<>Tom5PLc%=p`l35AA;NBpf!=P$=Brj^3)5jFDEx@&k6~D}m#iywLLGe{HO{%mfsjYUr#n6&UD8Hb%5s6q?n?aQY{0rBOwRB&siSUL8`ymSJz=kR zS9rak;3F{<+70m=ghA?u2P*rhjtb10w*5lGiRMsc=pgR`(@F5Q-p^H-RAgm~A25&_ zZ00^*`*3OvU;{?dd+I1D2qS(y9NPJColZBe2^|;RfN-lvDhi{%01l9mW*4BfS}b-% z_-;TlS}M?8B+Vg~8@NGquywcMj|Ai<9j9CReO%OI#FU#^D`yo74|xX)eqs0)!7#bW z&4i$yIB8r8Svx!cX~trno8VtRUo>miRm^F@q(HU^A$m7RUkRb=$6&ivP|CUEYaY5@ zp)+WR=kGEHM9Dy03%>QuiDEAD6Ajx4&ySg+Aw&qr{seEAXvOA)tdeVp z-x1P5A&M&88KWe|eWcFfrmyO0G3hWNX6OeMls@X&ly;%k^*oBXew+;dc+GON723@g zE;VYVnJu@L2|8~%LRksDbQtsjHUZzX(X+$UHZs{wh!7Prz&XpW0sXT5 zzL879J;9d% zdI6CtAlUzI3eeD1lD6ym4Ui+E&5$7RXwREz%}kLx9f3HHLM9LicurIoBiT-8X5L1i zrNiT{;Y|_M<}yF($ zjsqZ0W#tn~-mBybY$Sp7eTwN1k;E^dF)FhUtF8?v9T5gB^(TC%xz9@rqUf z-FnAUUr+R$fQ{NZ5Z_XR{o^r32HoZCg)0AJfa!z4uvvBdV>C0B@kFHYOPDQ`39j5Az{30X$K$WTx|NRHd~+Q-i=wP$$&Rs!jfOH59q)Y$Cd-5#oI z7<2>p8_=3n_5uW#X4qMZq$g+Jwx`i`jRkRUAbe+Ctc;n^>{85^ZFN$zuHNECt=Mn? z=`xD#Sf8|^jh@7)fq48<7$;5+G5v3Q0#;#kP~pk?l5t@}mWCVv-wcbn@9$lg5Kb^| z$j;VTTauK`K}MoB5w7u~6f!?e;d27jLQf;cAM8F4G$WgWo3@DuSTGfi#U+RaSGGgVH(rUGE&-7m`6C zrG1;zJszX9xSpAo4WjI?$jmrB+nk#;{8i;eeECqnT)mVgUCOo$vR`|InGdo%ZWk5~dk0+7&OAz#LPrfbzx z!Lg$g{7xE);)Yy~@TQ#Ej_q6O3&xuK10O6%Z19%R_Dy<6H*NTsfBOH{j-KU%{@V-S z%0!LNUZQ4M5$SE>eiAya;_hEOo2nRD8zvj2w#aqdiAG`o;wvW5w^8;cpY1>!Qrg+# zs(qx~g*n=wn&Q}0eT_Z2aeJH7gg1<}24P*BOVUjWft+zjYcHg61TA#K^p`VmD{JncAeAka@YGt;DQVh8+##^S)zb#PrDq~rdmt0O*gZd=YAr#uK z+z2?vW$l}q`!CWIjr-knS&D^zxa9LK7Kk0{N+6;fxGviQnV5ZIch)j`oVkAZgKj}y$ z0F~{HHqsdl3{z&wP$V7B1_*E+G?EI0ggLZ`%X+iiI=`u^DMgCLBaT+?9=)el)PX0l zn9B-HDco>HyEFy-_nL9fXzgw+2P}Ec)?zKZgAnysC^qNo=89>GVAY>GSe1vufAvwq zySCC4f06*E7}i^JoEaK2haF{iXNuVos@H&dVtHwO$NPltcn$G~cLoQ}<$e+LG*Q#9 zX?HR&rVQlu$JbQ8olXO|98};{T!J8z7}yx#by-HpKZ{5>k=u7^`SI{&mKDA^l|-$M zpmlm+AmGd3DDB>L;va;68^ljZl#){5X-?-JdtVg3PcGFIMpvJCv8oO(guJVwZBgE! zJdXxdKL)-M(=q=f3eX)h8a?>ECgCvixs&aR4B{xI!m=`OSf7kO9>ZL8cQBs}JhDz7 zUTcYq2INy~#qHHwdt;`hmppPCEcGAK=0G7YP1aLpZHB*EigqSWB4=8~VU`wr%~!0F zP#G8~CxVWONhI5=8uDKBSV`PygV8%2YyURvOs*hH*pOBvY|7|^Lf$g~;9q&;K%S0U zGMTR1UXzfyo&+U_l17okEI#ipr3{{qQS;Tb%4Qv&#BYEcA*wkMV}~6~5-rc>+D0tR zCnXUQ?36*=h--itUr}@D{g_-}Oe?6hojdQdD$Qg)8OifU*n%8E$;j4SY7+lZz_efPw*E>DZ)K5T8L;su~kOYbnK*cn{X}!0Hk$koxNZ5hYZTWdiblN_l`$ zKI%Y`FBvyV4NSVC3&S=6ReF+nkA^AlM>+w44u)=TAbIoAYZKu6w1L;V%9445TU94MNQTMugK2wI2o;s z#OWG$_n0QNEg@ijO~#qYETel`VU$1jE|5267Q8KB`dahD77E_ZgK6sr z%vGe&oDA2zy`PM&K#f+gGLv~q6mLOc%=jAw4$^FxZlq^7>7r^h%?OyTnIp}=XmZA+ z*tZ`rX3dT3_nbC`!_9N5i>cYcdB7iZAzQ#^YbWJOEhqJ(z{<>DhD`q~lACC;r}Lr{ zB)LK6CaR7!Kg<-gez3fMvUhttVtEYarDsZo3HVSh|eDUc$4F@qM71p*`uwY4%_(MZmnjEmNi>25!1Hme_)Lp>r>1oP?xk)(ue>y-W;vrB%K~ zDA7&lObbeefg%taB8nQ1`ku$fI*=xZfHQZE0mw`yLb8#^LkM2X? zsQs^o{!*kw!Wc9(9yknsVsw+25EXyI5d6XXH!Rir3E2`X@(;=D_;1z?bb+@ENtgm~ z%yN*cl{IbHZB28BYnQyd?eW*Z(-9jts2!kY2kyWrcg0Q_(4)ht3TEf)u+X z^a-Wzn(crJ1XP58x|J}dEz8FM6obNN#3_T%lDk_P9MQ3S)RI0O1`7H=cMFp9rrje_ zup(8H6g^}8wZuPWAkd@m?jV+)YtXaN zr@U0C7JxMgLs9L+Um%=A_fDxw%T5O7OuRfk6kPKHY~N{GFOA44KB=i`;>28_@-W%= zvKQ_o!vhfNHlfX|&Z#^+kihar_EB$hH*u-lg9_X0bz+}eHsoq#6U3)~N_Z|CmntBU z8b{u3M0npLN?3VwFLO9Plw&9OK8ze+eGo|BcJho3#BH>0N|{Z>iz|^Zs_W8&d{hZ2 z)CP*TJLe+HWN85Rx4-Z=cMm=pg zeX`FHFo9Ub?KO4Ai$DjOheZ3r9AZkd5oxN#%wASO3Nb#8m!aZ-MIGHQ^AMWsvb@^N z{B;x^r(zCmhQd@gOq!!3nNrv-HW5j9ecQ@ca^y=us|Fa{8_4!@$9qsfEIEucvYEb2 zx1S4i&!!!~WIJ5nM(VbfAu~IDQO4G$7qVHBft0hPdozHObMf9busip3bFAxKbD5m& zYsrYP!=Il2H-DO!1W@ab5nSxp4g})e zEms*$NWuLIi2qt{O-UZPt!AVi?lW z>wVm_Yr>iqVSe@pV&P8qg@2YNE&L4^Jv_1hkN0T9+{%~d9oMeaY`R;i#7`M02uVK% z1U`!lUaSX>Y+&JBn*{^Y`>J1={y~_J2hG}uklx6JBHA5QD9xWlOwqOXz2-!F(b`lf5iu66{>F_VX=W z*u=6ZyTRnyLgN-roH^Oqj%Be*OKI@=kWA@b7h@tgChqb6RVktiM!v$EKzpG;!;7vPp_ zvRs)24e=K((@EFtj+`7)DH9xn<$YCGfdG>ztRvhCC69Qm4o7@LpWxIx$ss5%!(!yE z`4}O>cGXW{2x_4xP5X&0L~H4Ep#lxZk4Sp}6R>oPOJwwt*Hhv|C7TRTwS#^kXgl*! zpCF&TwX8RpsQ>tLww3RDY4$V4Vg{j0-+4}WS;p2Ma%^Z(1X9vh4vkB2yPZmTK8kL- zP*J5l7o=@E*}Dlg8SsI}biykMOm=Xrz!dxx|EqRk^IwH?E-m24$K`tSFdceg`#)0m zGN>>CV-(U1c?ctEOci8fQyK>NZeR7))rJKx#{CmvRyJ7Rf1RzF_{m{R+d|!9py{NP zf!)XT-)jsn2Y-&HfOnb4x`!oUQSN3XP`Az-8O(>|T)thezr4HU%Y+)c`(L6Pz zv-YN)I(b=K zYzB|p6aRpXaYa0Jq+#{39IoDcI{{+!HVXv7px>VpevIO!xS6f84@*E(Wa%o3EKa+B zg{RLW)c0!Woh8_i`V#M6l;n0fM!nMLNB{Jmf14XwWtpUe zGJ9biAy05}{ zHXRMMe5OiIkg8XNiDHG%k&~QUK}fu!D?_LH#SuD0?D-TNGNii@=%HU^gfxPAD>lV#Fm)B!s8ct*F60ka!+&=Mc6qYCTy|ZS`CCv!hgkXEH9E50&op@f0GxbCp&C z2eBE>yQWDri?z%iSPO__gXF{O8kq}EDB6>t(c`KLVo{uN55z~0=L3I`Q5wrNdU?*3 znzZOnRD9xz0gxoFLg zxnREos$2eG9uL{bM`fvYaI%>(|5HHJB2|jltYE6(rfzCI-#W(^s=aT$*V5!KaxXb*_4D=i&41#QER6ZoD)ru><+%5k(=C(Pa@2& zpS5%R^wG76Br{izM&GVQZsp#2A+*eP`iTb4?wZ;%2!&7G6G&<50T#_dLy0IH^p$S^k8uWVX&Uo zPr`rqI4^qn(e@kZi)mxW3aY*JzrF(l(_+s10KZ64DMiCFC@ULsrwVD*Ujlm-IW?9&KZ;Ya3u(gb>_9P|XGo1e>dv~2WEe$N0od3Tyd53en@r79qlvL5zm0^< z^AI*Ra+^Iq@r#=5d$`X>K zHce1rbu#H@hsL)r6&5sXzHKB*B235jZkbNm6KaYcE1Y_}CS!7mJF+O&9rNQI4JfTh zJ({o7&E!0EHltFW5z=!tDq0#6F2gOjk!DIhuWP5u8O}1xBHeIS?Y}faNGlSkA}>)? z83BDK+bp-`%FHdnW|0UJT71eysk>YCnV{$vIRpdMuZzm>PgmRBsuhB^6mKZ>fhmN7 zQU86~pu-@wH*5{EcQ)UfyWZJ=IbOZ9J0JizvH@;eY1aQYA&Hia_>$BAB?3E0-n&5c zqx%0-9r2b*tb+vTw9#r>5=>mNid&Of?~VdWyPHTEU|j{pITj!3HUy?{j8&<}+T|5j zkrk@FRgHwr-KZ|;Wcv?mZN~?cNmvha>`c89Sjpbbo2Pi5VSvn#ha~Ixp>WC=fqs~F z(FzVlhUllvHo$MQ-CB{-;fsa%GhF$B?Inq#(zK^~J#RI@4brv9!ohHg>pN|mPg}Sx zhi9&Ycv*-7=@1%^VC?Z%A6}A&>kTUYH(0MZl14cvxq_-t;5KHEVXSYk7zIG1i|f3x z1l`n?Lc-q^Z7#0*G)`WJJOmjn060t4vCXV;b3V{Kx10h0*}mh_rVgz6jB9?>Q65(r zdTT5%tW=yuP=^N2SOwyNAP|Zs18Xx&ZP~a#3Bo8e^UEpOf=i|gv>!)*Xb9DPZ{)h1 ztN1??WzQNA`!UN_Z_1`5w5o6_{w&CMFDy4V{GrQj^+V8^CI^4zXjZE9p4wFpY*+xK znBoMkR4`Wuwrn5`)=s4aMpUJ+dPrmOHrfw}fwYel90=mPBDs8DULcjDQg(dL+I188 zA0nS&dS5Ib78jE1sOqH~u4tU5-*EWUcGnnD>P|TRFx-{ABEz0BfdN%M_SaY8dV`XO zIdj}@n~qzAx6aZceVnrcEPCk&AQu`%r^!5_N@}CL^|-EzyGk(WKwn!$zZZK^^cbvj zC315L4XZ7+;8j8;r)<~v)LBau<_jR!o%88Yr;=W_$a^HYGDi1t3!8`$5V9&iJUw_M zK~Mai`AK)tr_X~>Jvgu3h%b^XfQH~c;wGu>Q`*k)A4qstsM@bn706h2oxuqXv?c9O z904`~LJ9Cax$DAU`P)q~Bz>()pc+^Ny`ibtx1!_EVv&<`)LZjT*P3scqY4RAq{tLr zM9v1;Zb$4mHFyGHP9O?hDK$K5Bn&@jaUJ&ILJW}kvQ zpT15J=uv%b2xKCU$SoN+WuNz6-O9^ca58ggF`I>#+wcZqD#YCk{m^9wY-cyulNE@4yiQIzz5!k1h@CV*PjZlK%X9)x-B6UkF|U?! zNfYf+^#e*U%CS!f{vB)|K14MNeTb#_T?C9jhBz<{%~$y**9luE;~UU^Yj3#5Ja3YD z211GskpgbP1l(Lu9>e#=R5y{=lTJX5?HVP*nb^-M`%kC*)MS-dXC07Ly6q5RquEDp z2>#4Z8XY)1<;J5w0oobMxZ9SPnaz=dDGx2zCd+?QGT+%Wi8&`P05I2FA06UM164K= z7e({fo++V2fD=l{kZK{Yun5lomsCs@1~*IAbbv`H0jtY`>m?THAcIWB^cIk@jiAy( zzC6NZSO0RS9B2}}fHx(eaNu>pz+g9f=Lt{g z`$=B%dUi~FsWzoC$i%GXS%65#LML28#C6-DqlYlaEaSuwLq~#@hf96f8hwIxTTsXZ zZmcfTpPEh3a1-3()4GpMIP;{7TsN3EaS8$GTf3tm!;~uU$T1FtbZQ>ao*E`-%=CRD zmeQxNVo$4rHL{Ka`p>pS-icGdX&O1%18OTdZ;_|(82l2expw%}fJ8R+^1KcRB)H3o z-sWXRyXJNdiEnSoQ7D2$eH-N&F>iZDClZ5@q7^{J%bDd)^(Pw{Y|AUy40nFRak^pV zFr3*^m&lM{6kKT<`Ht?JrZZSAup$3PQEvoD3w2id*`5*=y?$*D1C=7lZ5R!%0{6u^ z97YMK^Y@e}FkS@Kxj)RFS-i)_0KPQ#^KSnPy;#DFOUQ7Q1?A^C2W(GEdXhO}YW&Tu zzDuNo*+AEbM8@YHvm}&^F;9|9a(=ncj1L8#N@p=&9X?N!-)$)y7DLXb@LYP2g@a?= zvxz8qI(F#>VCfa@&~qEX@c5sDJQ--(%E!;}eZy$wz1rN^A@rbPmy3D5hU{YCh_4IC zh)wg<;h-f}MBgFjVq4YWLO*l@l(MDa8UuOf3=JeNv$UQ9bj2CF1`-eR6dBfo+v!Un)B;odwQ*1H%EdgFk=gmrC7Y{#HZAIejodHKWgp}}|wIa5-Q#&+di}SpqGY=neG-rIqm9KX$ z1ZE^nBk~63&?scTM@#h9iU|xGxfOR8Zeu7CdI3{~78v(TnHngJ9q$r);JXFY#N)P& zO6+vu{s9qy?nZ?r;cT^$~?H!<0S zOcC2Vt@cDr$5z=?8BOqRq7lN-mLL~Q&%EqJ?tV7dra1*f*-lI?kjRFfwb;10Kt~S{ zmXE`*{R4wyjyFpt1c%^u%kAAjnF|&NJrV#289fCZ3r#H}Qz%y}yh5}zN3+$iH@3-Q zdK4bl1D_(+SRu^adk?luD1mPh6`@jnFd;D@VehgM<3p+4EA6v_SUrxc@FO-hwx)W| zm4}vx2jQ!0%RD?z)H=2X*5vXuLa``)?wJOPeYTyb*Zptw3@fPGCB2e%z7e;#(KE&m z@4-@y1EI*T@Ke6_L$o)OHJPEUAE4jduj$9Ug~cewuOt0g*hbDgKi@ZYHAU$HlJUoW zdlk&VvA+~u9^)i$nl%<&da;C7VndBDm&XbX1bnZ7dV;Sv$E&u(b2(_#T@^`Fc?L9S z&rfw1_iQwe4S3C+l+4V`k6Ez{+a$?OFu1ZxFl0=j?dYhu6wNbiW7AX^B}QsQ05=?3 z`Ficm{&g54#DX^dUv{PzsyX5FGX?O0%}_kU$6OjJKrAzciw2zth1)0-BNV|&s{t6v zRVa)QD59X|$;0-A&-&P2X)8#`hNF9Pw!=hcND)ryCkQlFj=699Vy27r+M%O7&6NGDrsrDVFcaV0fdguWM9IR_foE50ux%Yp;6;SgnO(5j zdHT4bbxsFSm0QHWjkF~|U`t&WbLoKQl+F7T*eC4QDF)K-EcpRJ!W_IRF^5knhX{>x`ds5zX=j1kVA=J_W|K}( zfC1ba=GA}6x$z5n2EI&GY0o`i*ziMiUNkm947buJcBJ8n6Olqo9anb}5}f|0vVn}` zgfSd6vOky+dA^zMO!DSRCAcY1;a$wGrr2xw5D==bxjk~!4sH(GZ_{rFE7*a&UP<3Q z7+f*)k=QNfOGU1y0c{4_%(iTiMYxNhg@vYRXXr=Qjr zPh+ZRJaWyIK5gidl`V^W&U^%sm+jQxC-VU^UgNLOtf`saQj(U;((qC;HfiuCMzaFW z3m+g{i*|?e*_3HakZ5QK%ZQo|XD*5TKoyyhXA0M7{sTkBD918&5Ii(Zd#!8P&01bG zBE-1Lr9^$m-XlJ%yb2+QA)EsVdUB4waWW}h5sHLwXE|3COxrP_pf3|8VVoxRESX66JHv_ zf4O9ZgBw)gxGvaj)w`4BCMX~bJm|d^-3e8odD~0^r837DKL8st;M_LuT1*)9a^8~j z6^2Lx^oC3aA9-6qB^^X$JQd$8MkGKT4XC93V`u(^0VL%1M;oLhRT^eC9i4GmN~Ueg zv;{(C-5Th(8+W#zg7o}peADDxU%AV{Z9;z{PE?Vq;BzLL{(RdH@+O2A06)KTFhmH) z=h_4Bvse=OdRPfYt)FI!e_N6>l8L-3)J)#N0f@DYbH}u&X^ceUtu|ArgD~Oq3>Ia? zhAj&y^F`SvV5mK?0&KN7^!%LW9mtC-f4&vvNk5z;D6g&F8k!C;Npf$tO$Ak!=r1^r z3%lLc=t%_xss1Dzu$wReqF5#7GG>lny6j0LrU)HCG1}wHZ+i**8nRbcEu_$_WyQ_Z zByVp@IwM7UW;k_S0$c(m zsv}hPpB0(pV_hulgk|z-?e?W;gg37)<=6GB6{vvAsW?HISNgA6mXvW4F)sw7%mBqrk7 zCPy+ydEbVShycZXh!i9@Sgu)st`)nraIjp>q{7hseD{ttZI80N8(<#C`Z@ZMfknq8 zBd5Ju);OX~r0tSbjfB=U<-NgT`9+0#q^b9D-qoQcQw7VCV=xZmO@3?j^q$^G0-~W_m}vS_S(58y*kTI*Uf~+-lXc+G*Dn1GB;6?ph>mDP(Gz{u~`IAuy`vwv?7|6wrha-o98y906s}rx5x1LH#!qZ$*K$ERW+bzrDmjuEsOCh&-E! z-kInC28EmtIPtXY@!w|l6yC1vu|*i(0QlbDNOK!$!DseBu&Dv1oxVsG6s&4~xUKptMF+^nnwEl*H)Nw0SZM|+)bh`2u-oWYAw@j}H~ zm0Hep%TH}set`>)OLHs-WDpWCPnnXO8-V2`mKelEAs_WR3uB;0c-n^P%?aI7pN=q? zG~Df0yCi%|Ic0v_eX-?Oo|aM41jhN!)ivAzZoGra*!_kC%Atg?fh5?5-^Jvxwi^WU z_NB>n_`s638Ns*EM|JF2r6Gk+`*B130MEiNWw9CouXlfDfxTt@0vAG!a(SPbML{-z zY{2@U>~Ce^{M4Id*78T}i-|+10=)>$uU(|1fT4pAvIALpen5;Q`UU-ily7{yB8 z>1?!Jos|NT2`jc~3RW^svnrGC0_`t2vRs?cprphKl@1^9ZwuJ%@t}@__Ve4t0RaKw zUDZ`gyd0NjrVQAba8Mu__(r06!0`{%gb1tF+QZje0@I<*vlnH-T*uU6HYus&?uKX? z_937z?JTP+`G^1{+UKFlzF0!Lz|b>XFsou_1A3awQ4FMF%N68auABQlo=mzt94a?y zvj)hy0X}Kh9H7`oh){$S^kc3PYT7=-bB|~-ltwiR6eT9{5*#~#u?ntc zyAE3k(4&}$MWpI(w1^Cr^b#A3`@W5J_-#68*4;+20XZ>0cL6atlMx z@3zuuSqmo90}9c@w8Qo4TkarPX$UV12yKS83p_TM!$L++uX>jr)b5ScPswixAlsBha7@H>V!Nn=y00CV@K}JyF$Am(x1>;{6L^Tw|^SrXb;Vi6@F8GowZb0QmQm5pa7+@_3(p*_INpes$GJtaa z?PhhNf4^jex} zC_3~=R@{0OvKN@^J8ZihB~i8qiv256v1vp?7@Rz|W_F^UDfCw(>Md_|`4l)qBh6x! zK+=72)Wq%*Xfoqx|FOD}0+XkS(&SdLhQu~EeeWFHF@$dwi_NujU9!CwOsFOmf|3xE zh6inAi%!F<#^~FVb-m`2jBj z32X>?NZ!sAVyj^{#AdA`R4X=Lfu>fwQny3I=D(G(IhqU!NmDe0uz#R;jN_p_S#ei* z8PeO-st`H1`lOZjc)YlBj-#>VAsYyhdO*uWCDfwCn-`KBY2@?^W*5l5Zu4}AYMEs& zNSV_zZ_g{L_a_-9KTzV$Rs-PK-ljazT%+X331{f;#rzk#hH+ACOnOHgEpYNLW0KIY z!NvRrHgILe3HGsr+v3=Omo^xZKtb2`+=^?nL-1yxG-_Pp>V z0Jn{qt0GF4QS*9ZgY~67iX{~0-@L$51fmTwQznt-PX{%o%iy49JI~8QXuFnQvy3yQ zpB|vkpkHA(@zNM&FqR|`r_eJ#N^;;=LL%Sy_@0ateVBaQg!dW?AJSZaJ?|yQF+O{K?3p831zc6q2fTuoOX(> zd@jqyFBfg9vm#$sV%P#&%49zzdE0rVDp@cSHwaU)Ks)^B+riFqUP3g!c?k(2_4H=t z)08_M>q6|))>#BYA;gvt?iLsT@3G@gMgnafYt*c)GqKg|2nSJMunoE+m0EQE1uSOr zG!osBte8b=LL9e<&QNPJ?D>VnTS7cu(#@lZIb(=MHI9z|%qf0-UrwYVr0tK*(E#}_ zCW~|}|0!}m?pK{r!sy@z6=r+-{t{Ht10@NKZ%ZQSvV!m7trT4sI~08w2U)<4@OR0C z4(ncHnMj^*4b!SPP83F1jig3K^9uPoyB5!U4qecA7XHhw`Rc4#C9_cx?aYX}>T()R z$0A&8eX7fNfL1XBfC(+@ioRF^3Rv)<KRFDyi{N_9T20Y<_aCfh+pqv!Io4471+ZQyh))9ptX`!p2ZAs=ZsS_FdrHf{~JKz0P*6&iG^A$p5~J1t>Vh4th-9MnESQ$Y-GCr>? zc24St9WW1%H|}?L!i)86&5f>_(cd1Q@eLE`=i~5s4|vtI0>R$0IhzfDPH6EwCTE4b zx?5wg?>mgDQqlXa2$`slIVr_b1MhgMjF;jZX_)O*tPt6rnP-*@r&G4% z%pC^jqfiJ%%w~!~@OFRmIlRq>=UoYP1$4ZhXgNe51A4NKuMpL;X>K;Bp~%op6WyFj z`Tq!*Z2e-{NpOIl6XsVWT$a`N{K zAb9?*zcQkjb4N1HoN$WVXfxI4eKP~(GU^f>dN&&hA-+4xIL4h>GIG@WrYZy{+45pL zUk4M)(3DKY`^N@TFmd`s5-JcNL>}Hdk$K_60?35n6aUcOnr9mD*Xsa{Ck(f5N3zPF zBc7O^jUD6;VyCDP)gW8bt#X;4B6LuXl{fPda!Y}c7Qo~gtHJrs2ru)#cGhuCD{9=| zer9IB>ueYp+@0<$&@a){3lk@Q!%W=LFB9YTu~`-Fu@}t{S@?p1M1+B=K=&+18^y3-#CHyvS{@Ol^DW+9_oQS2xE?w#bqI#D4?*& zsHbj^hBdOmP01N^zgQeJO4##5&o&pyW+Np_618XfmZbqJPVu>2E$V%D40`XV%tIk7 zaxXp#6*|{m*j!>&*Cy^qco(c$iwW8D_$p(PBD!*(I|LjjK@TGxT$j5Jd^Q{nk_B2% zRQUDB#6VMMjSM>I{8QU(>CW2ZGQ0U$;3WIX!m!IhaMsC_7N_pOo<(>UtUF;q2cw&! z{guvV1mHPlz~$iWd1YuIkF-=2iMD+pz9y@w2pe`*3KGi5gtn5t-~aBFfxOcJ1x+2< zVs|o-cqBeBZB{MS;*@fFGAoc&2QoP3x3o8CI45J+=s>CeyGsZmLsbxxutiSC*<6(l zTe?c&f|g`LdZj}Q1x)~dKCSt9^{{yfpjiect+vbK>qCey<6O7|iICNDC<1tFOu9hk z_5KeAspL|K1*lukeo5K~47~v^OH3IJ zapir*Of#)l0)%lMzL_Y>pU$Pi=W!~(_RJ014Zw`qFy|rR@lrtdP5>uNgXK~Bn>@V& zruewUWXYI;M(vSGo)Ch4UkPWx;R&R|KZp-bujNbyw#3<)I<4xHYa1nz2;p|B%L4Td zscbM@(K1obi%d`^a*V^N{D&hUa_Sgk1)DRmSG z!ln*kc&J*!VhY#k1?+dVKpTM8OaKbbc4xTvVhf^2A~JrlhBj(GWY`G{YM0jm zCHY=Bnp1rOolxNao$n+IG;X<~nD~sCV(F;uT!@ht0G=~2t%f52y@_a(1&DHrp)O%I z`TJ)_os{|@JQ>NRobWqgH*W=$zq8BiVWB3Q{ofXSgRfsfx9Bt$#*4wpr6fWhs zo0)Hed#N{IgqExF7-_Oqmf|^Yje_lH|Wm|_JA*xoCvgYI0$0V z)txsP7;Gb?*ydOg&Z;JHo`btK<)FOU^kYG6#wq`VngIa^S`D;SMDjvENS{DBN{5j`o}a=s z1#_!^BNup&XaR)zDQJsydhJ~w1G*f@w#mu+`Zn+ttNY!Hr8*q}z(l-0J655rVonNJ zIL4iB@KjG*hEb`3V3eq>TbVoX z6gksU1&Td!GXM%n7UQ;6)gP5PI8~;?rcfGPrCun6gS!1Az;OP!qZhv)p~-#Aku(za zL%el5ABk7F2Vn0OFuwNEu}%6>7JCL+0}|#E!9)(j;CYH zLuePU!r2zuKZ<_;gPOSQ3NMUxpfR~azl z7Tfq@&?OeIHKZzxMMv=kR(>~xBn~+=bgm|!uuim*tr5`}!oU`<^gg&`8S8mYdr8qR zsb~t0xg<2zlhd4HxWEy}a}biTLCiEw}G<|(}=JPY0P{=D%vYj)7oj~)SW2e05H-~pmh z293C=wWDR*;g^-eg6Zc5@T1z?9W)Tn`I*_v`uX`w7d-(0PPR*@yeBYI4j2jT^`X10 zTS)b$(zuXn%Cv#Mr^xuHXp@EO7u6~Bmx1#$9|xEFnQpS!#L-nh+3v^` zyj2tBze=XfQ20+qRIPnGd=Z6(Xt^IxkcqTPpWY2375_$_>TgiDnr4U!&jN_3 zR1{wjc5?^l=9Wtd9lz7n@7;iA-AQ8(J3J;t4&wzfC|@9PvM~mJ8zz$!i4b#44g#zc%itC&K3frRjF(P)`K)kcp{PgOlpn;UbP~!_cB%`L!J$(-LRfw zY?ZN+{0_p&%N+2Q90Z^cNhb7q0~Mui(H06(-SnRDk8)LydS@y90*?sGW>8p1pRN5! z>@V+{bBW_nbKL3CpE|ey!klxm>LZj*L117m_;$tOa{w!Ye8Y>0d@tNheI%p*l}^5p zNS58Aqvt;;o{bqk;oC(ID&{FyY~>92(BE5~jZ$Meuhdl}dr|)Il!9JuJ_Qo`;p$nE3jL zU!>cXTJ&m)iV6c$8Z0Tl(hWvx@YY6V2*&4k-a=aZ3S$g^wi!Y3ZFzbfbdy zXRSUJ@p~FavY;Gq8b=IrmJ_5jLW7Tf@&PBLb%?AwV9tvM2Mzx!4qzAE_5s9ej6tll z6NF6V&&Na&+cz!jOJ?narQf`)J;sxM<4p;JP$1S*VgJOukScvrQSvfW8OOUOr4B6` zGJvJJx@(8$#ULqK+u~57?G^TTz;LmzzpR#FU21HQOvvrB;x8kP2&_CCVhhrsd~+6D8zEcp3n>V#y4xbm z?X!Ku{yS58v;%u}7~1MF6*fO8B84o?Y5szpOAsp9mJ&3s)6A6alHDe2j9_i-z^xum zMm25?4@{(U%BO>Ci(H*!-R?55IvF&@LTk^Z(4;Cpah6TUdGIh}0^l1pG_G?)JHARv zKy;>WOs~rOL-vQ==8#P`?Hni=7Q+j|aXXDb1Ar69h*GtZ&YP(Hii;$hqrN0BfACjb zKn7hx4=%;Lps@dG;I5ao%0y<>BE4;(f}_bHAo3~RHMefk0p?RU!%;*&rDL_kk^OIY ztPX=03RAV3xKeLxvL5u5Y6kh5T2 zO)NGf{~nTp#mSnOzHyt{_o1Ym6}2{_qP8`tZBSvW0cMz@ILfS}8TKY=qNQ)`*dou) zd$0v^P$>JgNyix)ruM@nzK+TpD=ZdXsLA1huF>zv|Fv-qbLsdM>#QQhpWh^;DJJB+a3J13vMP&jW1lrBv60tDr`8Wa*wkq(=n zyjAA!UOmVFz1g35ALNIk1*;ar!6K53SIJ0))1L87(%r*jmpA1m#(o3?zvN;cU9G`g z>;m1U_|5I=dR_AT*L2IC30s7mniXo1;laT}K6jZfnnE0gCJF5r(h|fjY`em(CSk}i zL_@+82Jzr+oNM(WAOH2*zjl7CZjldOng?S0lb#JRGnYHnQn`_C(dEk75;vg)NBV7W zg3&DFj9O-F{o`wilWOIvSWRxM9oNWQTN6S1{jgY3+Iv+eSuugtEu+JR3fzk2|B5TVBmaJDwG=y!rjAO;P z!38u(I)WYTBeB%w9NUZV)zmXJ4HAyvab3dRH-x+w)IxPQv>LLsKc!VO<2hgkK?lU5QDvSe#75kn2Y!D0M6xlZLSJN)A7 zc=Q*>t=rdC`fpiXZ+YnjhFT_2Nr>>SC#b(Hl-NaF9S5^Q>cn1OypstE{;#&u@ z9`_O&wlXlXP8ZW=Vq95G)?Tv1KvCe_uf}mXTpE$6v7IPNQZD$f5^;%$@Ye^{z77e)}E4`;lU(dh4?#1;Szv^KB60Ve?re4cog zE8iVm4!owIeFx07vdfFAZ+hx8@j_ekes8-lxQSAjr~G)IR^O5VqD1*${Og-(UPwgY zIacvej(BaQA*)wCtrlnc9-U=9!G~2E^LKWwI=HraARc&>!C1%AihHD%I)u&3{g! zIfKM*9NLQfVen!rfx*$z6Q2YO89ij}su&?1#6I9IA;>Xbu1KqgYN@wGg~^@++|3dZ zw`1f1ddPQlW6M~8YxbZ;J?b0SMWf_-)Qt=qA>-YMCM1B6pZp0BH)oHS6wwE zfCkGxOT_9>G^3c9ruZ6I)pbj}YX5!~-hUXeq2v48k(8yLgA3mF4zR$(z>8F#(SxN^ z5r|vb9kG!82}oO z8Cb;&D;<<*3Bm&wZg&od3*T)dD>FE1!`xP$#qs&#SjE|Rw5$z7_cdJDnI98WrB+J&!d2|{k<>BGguzbkfh134z)8Xe-dEx^dnkfB)=4RDWV!CZa9Fw)WSu}Fg* zk>SHua(~&dJlSlex1D_&B>OfQ<>0ywBGlQj;&GFcqKi4=(hL}l;BFhLZZ-7mst3Hx z4!3cxvNUfBOP~fNWnxvy$;3wNl8Mb{!=LDy+}5@rS>Wp%wA5|NPc~8`DoGh_(CPOn z42Y_DDy|p$3qg*12(Yr4?^3QS^WU8Y$BAN2=g660Wl0<4S}8hvGKA*9wEwL)7Y+s% zz<$lyK*ZS54uJ5Yx`ybZ6i646>TFPe6A+=^m>X%#-s8c;b9LN_tPv3ej{2mdeZ=5)x>ejp!;&l@l4B@v@LpuyzjK{ty);jVwS(oF1hi zc~AGH{E`9D)=HY9ibO8)UK+@u^sYAM{)g{@F_j-aaLn&`S}a_7|V0G~Gqo8PK_}hP4oZW51ZK8~$lM0MI0tygW9feWuwluyyBT+$^WFz#9 zB^eRFdWXcXpP`-&Ao?ByWW^+%eYt*#t%uU#8R+Eh3o66*H%`>K2ibRS{JJT z$}N=loQ{56olOX$o!32;Ku=wXv{ERG@$GM{vzc+TG_S5I+yi_kh|9K#xIB&_jfE|6 zsxWp@s_Q25tqE9LYXO)1pI3l@ihQ9F1pVwSwo*gg(R0 z#s(#V{pH-Cx1lndleL?q4vKZ%Uj*bKU#2e`C1*y8=$t91E_Z-*=ONj~(v^}awJ--V z(3=;zB!dO`$d@1jrOoP}9vH6j>4T{wf^akohQ{cJ4$%An1+l&0%|!0eY2+VXHd#If znJ;5Q0n-M9L^FhmwKu*qnd2X}d4LRF*1&4`xM3_Km$)>9vf`|zSkyZf4K+?e0u{sY zfIev2zV_HxJ5&JZA%YhW;}{q1y2BEJz92vZqKBi2*-wL7u7$`{ofa^ZL5>Ql$45in zp+OPWj+MGoibEZzAVG?8bU+_8(snJxzSyCHKraOFf{XnTBKy;j^wuO$MF%wieH_99 z(QA*4XLExl;N}nstwZ}6Ke*_*R`BDHQFiXrEe(OQUPFafEq;V?zL%yL=>MW`yBi5DEiEnCQc5Xh znhLZEObbk~JGpq>`ewD0i-P@?vDn{wWT<)}28NwNoOd0UOaDx@)>><= zwOT~LFOS&%q>fF0+e;poH}2mk!{)w}_iW2N9R%WUT5cIO{s?YEb#I$q-Q3eF6TbPh zDa7eI6bgmHxGdY;hWn>cm<_ktWSLFP@(E*%F&1Nf7{(~a-AW(cxqk<?4*qYS%*(xa6`@}_%vsBTQ|Ft3)(jo5IcgA~+6!hcHUHa*-}!x+3N&%I48fB!Vi^e=1L@vXPTN_Z`g zLR-7lv49V1pZ4v`;J4WUG5yP-RoVq0HeMA`>rW5+MU+GjlJpb zTDOhbK}`?Qy_LS{Rq3E!<#c(7ZjJ7em!svN!q9Zibk4+?I8Mu)w;kiI&46*&HctDe zaaGGVdYoJPKJELCX`iNP!F^`l=RGgWvMlS2D9x}@hK+45sgK>>5Z$Aa+P!oW=H3la z+6~b?MDO=Z=dJ^fbM@YN+EUdvME9n%%j13J5hFrl520qqgYCk$tLtFc_g?oxz00%< zZw$MJVdw%4-Hp~PvN+w`WOJOOxTCU{z>K-?B{^9Jg5VcwOH~<|-LuJTGBC?H48t(I zHw?otgdx-;3}I%I**w!Ln}2%6JsY|^yW2*C9CsWP>gML=CcFtj@N_zzvIz4C!wxaV z2X6vRCKJxV&%xMqdU%uRlMl1?Q|a8j@L`B`_YYkrU?8)H?6(EZGVDkuG403^%mN>n z!kp|I{y6S9-M{VMt&RwHOa#1_r8XS|>d(7;4$fZA@jbkq`%b;mIX$L`fcLn6dQ6pc z5P0u$AKBkQFXx;0FXx_K<-DXe*kr(!L6zXbv#4w#L<++y~kr(#; z&I>!$iDQAY{iZ`b=UjNsJKnr}`j^4b=HThzt&Rx3N5u4<{be8iGMzfNt=1C(VKyj5X?+UZGyn ztMHl7&d#*Z&PM65+j2PW+kW$#?dIEVZf*{GH~8RobMqa0Hz3Z9#=*e>K@bE%Eb!;X z|Gv+EAKq{&k2||`FOM&55BvuI{q*VR*!<=8VeT+)MIawjSnDXvc&x#yERKFvhsF6ZE|VRB@&o#6de$wZr9w9gho+yJcP1 z(6-!lS?!p1?3&i&Pz)T^ftV#Xgg6cahlDsG4*T>tv@xg0At6qP6XJw8G2D=~pAg4! z822G=FPTR4aM$uY&+|SrJ*vLU>s?72a%*X|I@dvy10idKB9C zp-@QAJj@Muo9(EZOy9kKUoLsxyA%GtEDLo4jCM)0kOpVqPk9V4zrFNj&;v7}{e2*K z93J0OVzfi8fg2mtqma-yhFdAz4(iqRl3sQ9aJaWjk3!+@yw1}j%4D+PY&aVm8_?jm_z#xrYa;VU`E8b<=n5C5$up8g7io zP$&$A!goYi7QM~mk!|g*&w9=BSZ!0;GwjzfOItk-*_uZfhHTL^!YJi(D#B;oZ*aV4 z8H3<)upW`%y(G1_<69k((n0QEiqi=&+8e0C#|NK*mrp?V56s|Yw*av8?ACkfU>=Wb z@K(n{mP&xp=8p9^WJ^kn_NO&)V{m*`1s&+GEfC`cbvx|%aux{QYm|-lJ@>(6PRnag53BV zK6iZXyNPInbc3Z-=_~N~CGhy5#yb4;kli_QW)Ia@*+FK{H9VW7+qQ!YKIKq4TsC^F zvAm=zs#i;{)ZDZIY0o{u*dS%!Ta8sM!8lPfsifWs<`9@}`9+H~yfCrlw=KVnA%iip z=mva>E?)K#I2+mK70hKzFji!dvgf7uWsE6b#xTK_Q*#JSW1cJ3O2d(1r;)qtk)j|jH*p73&SuB!!FCR-*PyC>178b ztO0MyLoahcr4*Z<(hf-Kpg*Arwy*J+SOBA7ZfgWfDD+HQ_886JT zv*i?GRPbe!JLAl9T~AeAM5=KDkFrY>Nkzhpl8Y0Y&P|Dk$Y=?3Bw9orC_)Xy>n=!H z=H3|S&$PiAqA2tUlqqG?YpV+|pkPy4Ypq=imj)$_R3CO=$045o`ww9Ldq*GFFG}>i+*wLC!LxxBo@4B+LtSGVsW*vh}4?ZSNj{Qh!mVl)J zGjU&5IgASF7cxkC6x!J#*98|YBy*Hy)lP^xjth12mQ#d@Vkb$5iK$#sWy}*`#8?@+ zVhAdZU^3>5C>fe1XkcOk*1LONh_{=t$A8vZw><7_O9y4bZI5lI9%YiIm#wv0m;HvI zg;LA1IPAh|h;feV`exNSzfq3TETdY`ybg+@D4AWq^Y5y}9s>}7ZLigJWpmDpgUiId zNf!rmhy1);E*JT2PD!N?DW#O$5z?yFN-OOgRaUK5t(VHGJZ!+3bu3#;j79AiEUsIY zWmT)@xRg={mG$2G)xEr~?RoFL_fl&N7T9(zeYGwI>v4k63EMio^QtQ4lp2LAsCBK0 z-9QRySwN-_t5!6Zm1CTgW=iY#jph~oG(vK1B-j4*ieBz&=auJy>I|}UHX3=^c2(;v zf$x2cLNW}RtIMv|&bgYW*SxYUyBh7x%G_~rp(<&#<*jUpxkJi8vn*6)v}?^2$+am3 zBB{izl+@C)EX(4Mu%wc@?^jl~lUS!65shYZ3n_KfDL8N-WMy{cusF;@WvXrU*aL`W z42J+bk@KVorZd8$lo_cmuIsv_k#+T0G(>7q>%Dc-kJzQ!zAUR+)@51u+9ysZfetJK z$N`QLq|&&dgr$WGya;2D*4h=)CU?er=~wn8?A6^dNFPahb`|YCdz4+=sE7zVrs+&G zaiT-aj${(C9+|^Enu;*VtZTHlq&#ESZ`;gr-r5Viq(1um`0a3NB6(EhsSkG{An|Do;J8d88RO6eWVXr@4eQ&*3KWuEiKB?JX&m5DK}j+7CDy8J4)bs`Knj-+FnVGQPn4nq?BXT zW0AGRw&-QHPVHGW$yXVz;Kv&UL%t+m$5&27piHzr3* z{_2(WaId8FG4|Y#*1o^@qts&&3sQ@FEN8#Dg&kESu|~u$^GLMiN=R-o7LD=?7-sg+ z+*M;hZei&vGZaZEpop11!afr1t4A4b?6QM^gaV3)ZJMPIDWxUly?$j(3G1?~d!NwB zAq{D*r7}1n%$GB~d^li$t&cs*D`idq%wTGtV~>`QOCTzBaJh2E$qVGYEx(AN22(N0 z?9!HB!~nDBu^mf8md{%A+!!{|pgi=uJ@T|<_~Mr*=0-2(j(5Y>ZxYO z24^;Es_9z5GEo7^7OmlDbV#1!cF@mh!0Dq3(v%+m*fP3pBnkvuzkR zJ0jaQ>6N|dVd*um>?_s#A>OvhZTUB>t40a8p}mAmLdJ1@1KZlaPSf3mY3tc- zw(@ASG1>*uG!4{x1pN_gcAd+P2&R)?e@4(c1?K1xg`>x3R)@nI6ppN|5wx8Z?&o#f z7h|^Rn3*R`&W?!b;W1TRB}N-l)xGJM zwcXc!1&_Oz)=Dou<2H(_ZYaYHCz%_=e&1sTo;sEV9@}&vx&rmNrQdsnD)qti&=R`! zq`{__YvEUTE3jOI^Ou=DZ;jdWUY8Atz0%BFF@u8bS)HSDu7#7TfwH#h zoO^X0k@-}RXzyns&kcm&U=dtmDwub>)1^!NI}#h;wj!=SK4N4vy9* z?->fmUUm!Uu~9uuv_|RC=JNTgsADOV4l*~+aV!dF2X!18m9Z<2bL$==;F0d@Blqkh z-Bu3~aQ3kqw`ZT1;BPX1mRF_A-Q^WNc$>TuS_!H4XkS`kAMH6k;;*b;Liac?w1JIR zrC(Y|wLv}Nn{Lvpk_O4x^A-lUc`vB!dFxB8jq?(1PmG2=zg^Q__OjQ8ankFqooD%1 z>%4=b)@#)atCzK@>{lw&S(arx$8jV2c?U-mt+SSuN8ZAKYL6~#AyqdTZQBOTDPxO0 zf5Ghe%EX?xTJ}8cg36xuo2}bd?ZhxlH_5i!5t*k{J9Z=6GfiU~tsRj`WTvd!l%<2% zZ`Y;Qx^ybVfbE)*?AWF=?AlprO+#hR(=uB2b+8N*d)~{Pk$TzH`%YK3SsOKUsAk0i zj{((Qg}2#@g05$$*i=fLu&ID`H*=2LbhMmziI8O>c$Q1**r7pazs+|xrQNh{UEI?KxG z8~yBpthQU2#+_QJUdn_^U-wLF=-BP6ONr6GPMhhcTRDh*cDYw2dh3(5o7|mAijKAt zqmA9V5v4Sxl^AVIU((ZW^!U2UZcp{ySCG}yy;Q3 z>-7~qed<1ionE`?rJTAi9c}s~LH60N4%%qOfNCSDYk=73AnC=*rh0X{b;==jQ=Uhg zok!csL#|&c5IoJJ3!8qklwJ=q@5NW=Hg2TGZ|K~HmbFQZ-_S?ETtn+ruKVlFw&xoe z!>DhnoqEBcHd?Ud(P-Zfs~DCqj8Q0xy=tX50ksQ8`#6_2@5(;iaiuIP&$exwPNf)N z!X{nPO+f9!zK)Hye9a!ULioZ3Qs>EwWt%5E$w^DjdZ)cLlgwR@!IH^t-DfI+`13k$ z)2zK$Bf)-YCHF&jU#;YR3AnFTa($@V*91$Z(4yKU>K?|)7|N0uMYVi}S$cK3EsX@z zODtftFRjG-(A}0+Vtom?Ev;mJsN2(OBv;kg4clg&Zq?fBR_;wUtzFlp6M#_4qG zR^92eTAfa(QyHgK7@AI})9G|Ntxn(#7m4~j(Id9A>=Mc2g_7l9dhEcN>)u;e17!9n zFLa^wfF{c{)6H*iZu8Sg!HCXeG zad5ur73$iBvNaq|qfj@Y&FK{06q-Vl$)trEE|p3pj4{R-O_pU@mStJ?ftdw0_(Jir z&9VyxX=_q0l)dRp;?GJ4&Ri&a$-GcF8d#!jtqeO5Lg_Z#Q8$@R_wpBhAd&9dro9u# zoxp2)OcCk6Y5(+?0(DTQH!U~O{>n>2A?U(iK1NAsZ>?RZ5gmwuZ>xg)o z$_ka-NKf$eenEBFd(OxC|}{dy5lAEBx%2CBMl%0g6iork=RKY#F$@A%sW{<=U= z@>~ZG-n4O?#i)F}#u&)7P#8kVLE2>fsq~2+j7W+C3M42>@W2E~q&YQ(xYaB`$bw7?oX8{` znn)69PPsr7z?dFb5owm<9KjYYgb-;4fDPh?Njb_w2RTIuh(H7hf~Zo)#?@Q`nkr8O zflDI;5bV%#HLF0x7+8p#$JMMt3xb$J+&->m6^bZ=2yw$?$Veg!$ki;vAi|3eC9Y-? z#t?!AIxulH6O}*%7)InkEHVHOVwxbDSAYFTnm_U#0tf6NJwYTHAB7NM?dtV6v*inQ{Kk6-i(+_1rd5(_i z4~23>0IWMdkj3V)<>?gZ!#XvAX_Qk6g?`>uCmI*sKg{3*D^ne$ir!kMP-qnCqtl#J z+1n|1So=w*U^(D`{&hfVmOb;g#gc}XJu{A7N(0RZv|6bqDLWw&I8H_I!H!K0`GyKA z2P5EoSrdjThld;~B}ULW;-ZEKY;a&`IKpmmgR@7-pSq>iz)Bx|d0K-ELeeE9)k4-9 zq|c4Z+aRQmkjvX7>Z8KtEfdryh09wm^=F04+b_~51iHL6Lw&@{TP>syjDU|82>GLS znLAP-M<9Qy6g2XuB2^Jc9x89ENS`2=w?s%EAeXmANS^~--sT{Ed|cilQJ)@{w@eBk zZ;uG@A0I;P0$kocF~CQQ!>(WC4^>l-kUz9c6+`+A;PSN$_4(NXg%6>&31kHD6F!96 zC?o;kIs(8%06v7;I4)ngP@kU5*C?b+C;`bGZqpdfkVDHqZw zb$R-Q^vStA6+`;qD6!>flKg>yxr64IV#`}E@<)!j;|TeKsv&vkX%ut^(#PiV)CuWx zb9w6n=>uNgijlSo>0>$&Tb>p{iJ(;^og#mz<_>x~0!eM4H_#mDk^B*^kS}?z$^{`o zfE*xyT@bbp@LGc{wF?5e96*mS?EQJMYT5K%7xcYzy^lzbs zJp+YY)0~hi83V|+1_79{@2d#xlZsS-tPM5_4?TLoOiyM4jvc!C07tH30+4GJI&uY* zBUdc|Kt&p6)YPBKh2*&>!vsANJ>kif1yV(ibwS@aUae4{E7FHb*BeOHttI42Latim zj{6aET|&ZO-%~KU?0Z_BkUaM|^hk7NIJ(^MxH%L z)xC{8PaswIHS+Xf2GIpo;L5(QGDODIQq)B!Z$PT1STL=_Z9`&Q-3Ug05YB&K&phuAw+O?fYfncb8K4<2?j?A0N7Du0FuW#J=LR3 z0@5<S~M&Q#lT`ZB(z8Y&kKvb(uE%7?kdN*LAmDK7bE!_qx)d zs@iD@e)BjUN8l0f`Xj@L;;{vDlZn-=rPkWt4#?L5>8==fq|b(I=fF6Tvb*0f@QS|s zNKfC{+YNK|+wFpc*Z4cyZ0&-8`MdkREQal&gp@iK=sUT)Ja(&2YX`I3X(4iBoeDy+ zcS5K=t+hkwIg88OH#;HTrPMKY&%7)cUla?jv#TG_SA(4EH?JW4fGpFmYih~%YZ zpg#DDogPt_x&y);-Iy}eqX0k%xUU=Afq?=-M%lUSeaFix?<%U|HYDHPG^I=Io^$F@ zRh`c=T83(Le!io0+71YvbJ8-DZvVc^WsCdFDypjIPJd)ly^8zmRa~BWhz^-+)~um( z(xJJ#PLD=%d)}{Ev^Pr2aQC*kKh53Clm=n$nCDLOJeTPfa|fklXb|QOdhT*_S#FM& znKWRoQMKt0n|zuwX~t~%B~6z- z&Mnhy*^_ShC5@GBf;2g7`o#=1T!7^lGt5|8U^BvO`Na$_d&IUhLkTmC*z?wERxa3s zb+hFcGmg3~zm$Py&r3>wkI;bGqf9yi1pEaJl|9a*c{G_!qzg?Ed`6i>h8ES$$QWaS z=HzE9qXs@V2-FHW0O@mm)a%;v2ov&0)n!X5wmdg~oSq~P{SEn}g7ncg(@koK{J|d> zdo=Ct%b!$rpSem^H%c6Ac?5JvyF1$7Cr_tk7etTtcclJw0ir5;8))F^Lbt8T)1!o< z14;od0RTIs>R!tOkgEHdf25B49jf)Xr?p;J-ae_iKjGJZLh&e91)3;mpltaC&5=~| zWsEXgkiqEDF)6j>Qn?ODwN`AFEvPBm>#=FeYz)J0lPZtAW{)hAg<_>-WXhaTgC%kC zB9B5zOk(+?y&ffhvRpT9%a+ILM-0O-Su0Y7Ql-?RTjq=!6eVNN#Y-3zO{%}4$%Y|= ztrr^FYfURzwoH)|3DYCCM>Zt*v@FX)Wtx^*uR!%?472WKWz4d!LP>1JR`0p(GKou% zJxVh^FBF-Vs{UkFOrf@f0?NKxhpKvdTvbIor+v#QD4>WbBb$T*inwVbQ58l{kE^uY zJs*)e@}*V?B6zR`8QWIrqX9f<01wnimE1Ppd+)XNLfGWK*S+<%R;yZdtK4;2wPq`+ zjKBj}MF;{NBzy0bQu>fmO8LYK7FewpXwM|8R*QSJUMrsSE}{HETXA3ZB(lap3^txIB<=Y-i?197Vy%~GtnNIJ1Z5Jw`Blwt@MP!WlWES4nEzNm6JLP8`e+7Ye3 zxm3ikBGNob;Ka>hMin(S;6mIkDOQF+s%PAw3>-w7=?7>qpA^9g8i+K{C~3q^<7g(D zPlP}uDw179d!izfsFQ=p;!wsCIEX|=+YV5OR-d9UUu1!xi%2gfF{lzoq`3+a199Vq zXh9i~W*si#4_@E}7b4BFj1`$g4|?z-(yXI}@_>scx;P_lm;^82ftVtulNLB}BGN3y zd=azX0Jz48$T5 zY9^{QXd;Rqh($KdnGv9fMLc5F)`qKDUa>Z5#@+5;-;gc1L|CbE>)BfY35cS7S(Cp zAboTxOu^Q*&u~8jmKm&XAMp$~bAm0M`qkFA8@b1RkA1sV#g(USSe_xzfMo_P#Q^Kt zA#iW4Yj1KzEK70IvfL<_f)AL9Rm9>*fk)K7_Vr62*S_AP{@7nUc(l)B+3j24j@@F< zF2yYcAFy_7_0^$zfU|RNf<4oz*@T`bHJ_boBipf=y#?#p{S4Wyw{Wpd8;L+v%U8xK z53W2$B9@Iro24ja75h8s^|HB8dF-ndRt=W{?$D$)a4GHGIy z%oM3({vdhm?Pu+;omsa1)Z^CxDbgn~v%PJVV&(vEk)iTTq{?HDUAgKbmB&7Z3Ou*u z48R7MQa$zDQh)6rOQjf4PoJ7b=y&Wbe8;fQQ2O^4F!0!=m`X8V<8*2o>7Jdtk?b7z z>{A=juH8ty#4BEL`xyeBMVNeArfvy4_!jU#tUnF(GlZVXW8Y<<+C$4T&>67Y&rq+8 z&};fXL%>y(9gq|Q>a!cE&vfcuibh0L68P3ydx^3Ga%MBK)DA%f5LBoDA_@u{6;#el zC_Ac9;s|dEMu;(6(w(aJ$A(Oi7h(V-<;tXIy3EZB7%5up3Py*dJxViYj`pN>jwI|k z&K&kU3G)X%2=>S!?GdFi0<|jt$1j3X}r<5j05N1LFBeP$biIW~;b|g&HGz~kF zs@FMyeE{3X+DiX=>{T~FikQ|`3lp>$LKros*tsH26CUh<3mY(*!4*)b012KM{J;Vy zWFXpHs*yzuqQ&cfQ7SZM%DqgT%TLCbJ4@HPYR~7(-!ATwHAl^(g z(||z@a1e`7X~b(M)~ObVW*Awlzy`7CW(V=!(nK?hGhBQj7TF*nE0H8)MZ6ljc~Ut8 zj1{8IB=A72m?p9@gc=!$MHdd@HDYy)5N&1!#!#30TeJhc#%fvk%(m^OvEmwk1ALVB7v&4 z8lu~3)Aq5p(p|3~HObu9oI`Y1xh}gFR1m4%!PYISkF}NVAu4~+Q<-G$A-bg;qFaS6 zwX9A&A{2on(!62OgcT4Ri5tDnkl{rvl1d<{AnEFXSQPpoRxO!`VnY~lvsH-L0>zUN zl$khyAO|ZV%{?d(w+oYE218g8X-=gf7STCrFln`_A8^>v^6XsDndG_Ph3P4IZkA=+ zwsBnNg|Tg$#o>W#ExjAau#1B`raq%(BLg62LX~M*$8DGicUgHfQ5;b_!#1kg?t9P^ zsES(ZlW|+dvV?Ln$J{}=`QwDSBZVKIo*X%LR6HA&)mk+#iF?5}ElY8m)P{}uL%S9e zs%rx?uv%Myy!TC?k6dI`O(><2w1kF_hLP?Se8av&vhs zt_374NP6tmP~F#6+epN|jZCmR!Gfg69+EsRy^$4Z9*bx<#8fRy)ewt|Un!DTWC&wmq%Z5X!o&pc$&&R16blYA3{KS9>aEi7>=0 z5ypmHEvYKg7s|%1=IxeyoORB9-6EN5wnghigKjx2jDeNZJ-;vObhD^6=bTpyNiz3n zZFDQse@jwEKRi#x##Dv^dYUjR%8ZDXq)p)JF zw@K~~%5rnZWv91CY|S5=$wPVQ0Mk8k-28D}-!RUyx}XcjHh-*HGo{M@df;wqhfte- zyGZI9H1_=Vfw|!aT9irdhp;{A>z8~|BB^%TCblVFm^^W2N*NoV;YFAiB&nH6Y?+dj z1QQV;MFDeW9)aK}%o-lJND^D{gCy|-LOALI1{PI_L`7DMqH0D2Q-uXcB9Z(8hLbd6 zkrjq0DGEtCa1!Q;Dj!Jlq605UQdBWTiw~ekC|-br5ns;CHCvjHp)?RtgOwgDOu|Gl zWzukD#nBTb5R--CK#C`29A&}94Z#{Ryhssc857tblf2&Ksg|fh5+P3M0xLTEix@IVYuaro1Zl z8>O^T>s7I@T?-mXTA*B1@aGh4LcyO;j$~*|CL3P{7_>6@ z6ezNR!7l=YUx1!2#|ax>bvdH;H-3mM9yy;4tXZ>W&odjNSN7bq!}Q9J5f+T#20Z-W z2Q?)SKRu$9u+l{mQV@YugXrl|rE_?qWr`ZuI1zBh7BFyF!-EUXi1UgV zgrPyp6(Opq!stkhni7N{j0n1z!U(AdBmm-v9NcgP7vem#F|F~%PK(Kl7VYbmBAG%| zWp61!RrWlTkXvj^Q$Xm(4|v>xVJC+a5wL;+=+BMN7bLbd%>{miA}$c5^x%zD?As=7 z9YU9VBnCBJ_I06)jD4B(Xt(Jbn5pM^o)-fO6~lajgfz-B6zK8`Fw8Nfk3!+50QHeW z=IL)2R65lo_>##42Qu=r7*JYqSqv_qR4@n=UUl*c2tJ1a4ef@~^G52*1NFVq} zinexr!&yol9o|^J;ce|+qob%KELdra8e~e%KqLSF05cT;ARrJ72n0g0XgCg3Nw5zT z01%0$LSj^v2$LYlK^z4cWQ;Ke5da7PA_6lrLn8p)888#$Q7)gZd(GG$B!7f&j-WpQ zI6o;l-fzl8nD!aOKFTaoFn9|z=?x*y;fd7p$4CJTN#zDPi7EnV>Lu*1*-e*E1xxoE zP*S+U%{w3c!Qj@A>5r;&X3Rt)?#I-i?anzVkaAm;Vuwd}MuYV~n4z)r)!AJ`tJy^y zE^m;IRU!d{xz|Wp(#LV=2g)aK8(Bg{f$~aWrnxPb=QrK!1WbaUO;^o;6c~iXs?N6ErrtHq!l!6!C$1NT1ycGM0*rQ^iyu6I;oz3#?fL2ZB{yosaP7(La?n`(0;(hf>HjgoF@wmE+w{ za(n;;w#Yo5Et9&al{%pAIN0e0wu#|oTq3;pk2Ux@{i0^5c<^e3k4qSozXUS81Bd*u zjrs~rkJ$$WKQ?L?K8nzt1$$3LwUB%b*u%7)!paz55lsO#EI0VTye$%a6$wW{`H zKS|-^@2vv7DY9In(i0_5Jt{v_Bp}E>#{ivWti`W=%TeAfZ@Gmj55;*Cb!D> z`?cbd7I?578#_WB&ShA-2why}+Fe{Im4XN3@)(ZP6mQ!>UIDz5WXptZracz_m*3TL zR!o?skJR9uj_1kl9OqQU)CIPF2AnC{@ER6=C>#NbT%O)Y!5+dk9{04n;zDkj7@WY< zVhyok(rW_1(xFgIqf9U)e!4@tV+-BbF>{-}Ya(&yg{TCxayXrk)GS@(xm@f+<&(7@ z@+qs4DU|)emjqr08P6-Tu10EjQYK_eh(j3K&Kwq0pbi-T%WJL+$*dP$Cl2G-4o1QQ z$)t~=MKp#<4&#%MAlaHCl9p&`D4~L0VjR;znU<@oVy|<^)Dh$iDW`4tCy2>7gT->N zU|xg=THr5CWZR{EKl-&p9?uxT>ab52_-)-4&R4G@?sk@L1Z?RM5Bacq^-djTB zsmJCuNhlZ(KJJ0GHArVgy>OI(i#pKlr-AZfSNU-61P1=W0>KINh}LMN6wS;Do(JU2 zz%K;d)nqYv{bxW2M^F@)W zNX&<7m4yW9p9}!f%p3wBg8_;Rn>plK0ac?ND5QJ18+r$^iUj~@;Sz|y6xBn6n&gKv z%bR_8F+j_Z``|a43n73;*ZT|~83Bdr3ev7wR=*T|Zx$5DSzJ<3(sA-WmS}+yzd^$s z=*{Z9VfwhYt1H3yA-nyDVdyWm4#Dp2#>)-qEG>JMSq%*ZjpF$IN^4lhigRh11`Z8v zNg2)KY_LG0M>$~uJa7tf7OZAzP8c#LR**31gtW~Zlz@AS{mMqLAO|Jo{seg+q9(xe z#ii4T({sYj2tSK=OBZ64Z%km5zz? zO#a^w#M#3^)d!$6obroD^r*Al#2uP*&9KObX)lOKc}VK4Hptw2Is4l`fq{F zF*!*A2h}YXI_#PuZ(KGHtyU38zY>Xb(4z@eeH*x}4-50$gh&3c_vME3UWZ))a_%Uf4w2;+oA z>qHd=0s+f2uN6qH7RpMV-Xu2c(^kJ5I*k}K=8F%wW^SULJe1z8(?b=u*lOt~G?1C? z&bZVuw6TM`Heyd~(y+Or@Ej)c!4m~VQYIK1<)0o4>~QYU?qX8+cjqjYOuXIzkhz@Y z&a3#`5si%W`KPgeW%+6cKPyk833n#H&7H9Ca7=Ny{7IRBaLZNp1p0R018qw6w8y)V zz!REj6u7ADX=FUeKb+aW{FnEJq>%k>?2Sw2j{qSCS*&lC%n*Q#_DioO=n$T`O{eM9PmLxY)kc;#4ohMVPf+M zzdZZ3@0JX3nAJ>_g&bQ|6J=zt2jh@V6s)P-jOkt@U4{xbdyvD;!?7QqVK z*01MX>B-+`q?VDV`<_+vS@xhVL;wkmiC2RMjQ#<@i=DnkLk!KiHD%Wu=@mOlQ;C*m zSgWG?7~jg)8UGn5u%*Fql+1%?IJ@;M;)?>jOes0{?p^__D&YQfBWE&MsIZKrC5ay) zUiP|+@_k0BD_%Z{$O(}LVt|L3)IWd#8x9^)eNPQ?B<0-zNzY}xsAMfERR`kpe@}LE zOcLUv3sqfO@~#w1AW%F+mIr=;i{(Lf+p?G`#PYci?_&}02*X9wwy(SF;voT1?Hx~N z?R#K{^*zAt6uJ|TJ%PM?L~1?WW)9Se+_x`$0#w8o$k9|)!y=q@wFPv5NWkKtdD0w8 zCPm?j^9EcwriE(!s9vajfQ_BSlmoLF8fI3KG$xc3av+5s0VpPaE;Ncapb{^JWcaK? z{_!$WeOvMAEI)wLC8{cgNO#}&0dVy|%1PdG1GQm_Mk-2bm{-!5-QaM}!k-^PA&Ccv z7tX=2O#^#Rkod2{)D6keIfSY_Wyu*Qsx4y;{rY>l%nAQ~E1YS!iZcCae+J}?oNKp< z%UYV98%Ly_3?|%XzuNON*Sn~p5)7rG8YS(-q2=HdVQus4W0Rx#{`B3PTvF?CV|}b^ zseYGdU;JWETui3;)zqR^fV0pIQLmtO5zn$ypibEr(bynl2c_*GhE1Uw2C+D}Yw8hD z%72Occ$qvw0+$WRURO(BPw~rb24$9Qo%@*{858EGqh(sUa7k}M%}a5mHM=)^T9th; zcg&XZoMJH^iDGP=MaY3M{eju+?l^4u!(d2wLibqad&VWj{Yu7fd$5X@1oA-s%~LcC zU8lV1&ShN9km_`;GO=$)4?0-oT2UgiL3 zv_S|PJwF~c3PNKLVY*6X?Jy&=Nb8ctV$l_3on06R?h$;E?stV|)pFebDrz;(Y| z1!&}=!A)ZYGsqEMIx*)`+uO3dj4qt`;B*Iq73NI8gj(>g_P1|?u&_RDss`8jdo~$x z^FEbgMp&d9tBY!ZXNRdAfD&f~M*`EPZw{O^+iC8Ec}Nnyi2+wa&4oTu{iHOWw1kj* zmrXk=t}|D2^`}5-e<>PA70EFwxQ4Dj73&7fE8=(F^UQh5YI-3JB?DgRJx z(zp|0umi1T7dH1xg`*Ryw}D94u+Gs_J3%)!MiYlQ(qHGApU++LQmV0wz=R*TDJv7X zW_B0-VS9|>#{U~jy%lWpR(gA6q-Cq+>jhf_QnBIq!E3h{X=YDGYWCXE=Gso)SinD= zGi;-<@b!%20oZ5IRPd$k0WVW3&aFHQ+@Q(X&LXEcdWmH+Qld;~+Dmrw4rviIgKOH` zw2XEh1TRCIf!QjkG0$PUpzT@6y06-S@mnNf`8KU#AA<)7-DCc5U#J^;TW@1OrVth} z#0SL}gK=?(Jz5-8qjzA30vC0(`JnhevQm=HV>z-w>1${n zIa>!U23n!_D;k~y-H0;UP~x7lQaSz9N&S)gK49no&2V*1oeKvNCF@E%%J^N4`-heV zw~9muN0z2%B8Gi_Z{3A>?&pHjJ))cxG2u1-E2qxI$sNpDiGbI!{Bb?ZVGP_sr$pn(on|%qO6JO7_iI(?Kp+A?aUCSe$ zqbyg$DA-N1Th`~6j~%(orQ8p)MMii?lLuinz7$O-^Ze0*@ZRQSE#EF^A*(hDLZ9MY z{tIJqg`B4ulWmm(2ScG%Qo(?jbB-o8Mjr1$G-s@KDoBg(8Q`W&=+YbR{Jl~1RMAF zUN8@t=qg+?M3=Il7Ts%VUdx?%yLhFeOuPYXfYNkYGc}m^VnJ|mv-gUR>>LkwCF;sy zoml7em{DL7m{pa#2vAk|a~G+-=o^Bkt14Uqj7HX4{EJ!&i53{2MlXT-4cBqK%$)Mg zzo5IlI`qP*CSt=2W#6D|lgsQpKSTTBpehE_d+`ad{!vXN>c5j-#dVxO{OfZ{VnTm5 zULaz>teLT*yNE0GTN`2#pFy$eQbDmH-hZ+DhFxP~v}g1xR%oR;dhBEO0KD~@4zx-D zYGGWAACD8L`=BnW=o%HiI&wCn$L!NSOK(!IH`9!>wXi8nt@tsfc?!fHD6}Q1KY8-1 zx1Yaz;JAG0esPT#)Xq_=sBA&B-&|3Jdmq*`-A?)oJgB$!;_S?4oTMTCS$LM2p1V0BS9Vxt|_EzaA zN={H%R8sWyj@)CP$aP}jFgCAZAfw4cGxoI(xeEIetFF|9J=*sIbS#qkiyh1RU;m-w z_50ckt&4Z>=RR@Y(Ekpgq=YGHDW?+`aGn7?5DeKk=)(qO>Q#wv+D;D2!YB9BIN00QtNW|>ap!2&{uXLpdm&dIHdZ-bjo z>%cd=o}1trQ;8J9B?+W~TAY_IuZ9a(RYfAmskyLPTT+WC3;~cTiPDVRaugO!kXfx? zjA|=hay(K|s2j?E{nN$-=$KoG2>ATDUreBf(nQSEw}wUAbcP z!nH@Y;&EvM$A?hiT+xdD0`)#f(Xec?)Qw97O?iU_--XFM{?}Lt~)- zFfg+22&Gz_$}{ZGB!;hepQ`r%i8gPNQ-6DhtEi~wu9g9`0+D9I(7UFD5BJ4Za*GW` zZ?v3Jf!dgrJDdrjMX-*H!q7&v5i2Hvm(&v`brpoPjFE8QSsC>lr|NQtCNT+8=d^Kz zj93ekGQcwp1Xw2l0x;jeHZ0z0T?w66V zt~cbG4c-*B#>?S8teN%#MiWo;y6oRg`rm(XX0=NTNg#J`PUy>P{eJ?n2K!{X?HR9eWj$pt;1MN&*Tch`WyUv}pTV7nhg-R#hqh>UT85W^*0f?wsl3Cy?1W&vb-H6wNYkVG$PcgeztY$+_YKLqHVSI%P=zBu+!~E zFD$ckj*IKR#Gek{&mOLU9Sftp8*1HS!{6lC#iD4dkB%Cr2WbJ3-M??tf>xpjR`R;f zio(stk0@q|U$9>1V#y!SOn_X-W32r@(udxL9pG--G6(A*IM?mxgA|cThPYvO8QVq% z0<{ornnoDOCiv*5?Jg;+CYTfHwry!`T|B^t9!&!*0hbKJ3wzbYjY}FL&=m(hhyt$v zdil;Sr@IRGn}+_kPrUkt!;1(2s0p^iuN&YCfzx&`<*Ew)a#+bwBefdu($Acs@IgH+ z)SiGb(sX^XKsUr(jJ zYiY?o#$+YeYkA2jkP8-6ULxG%RPKE(m3FR6OZ^exj<66^-3#)tA>9)1ytc&CXnfdg ze5SMZYT3DMIW#VG>94jbK)#qYSxk2uc~fxizf`Rr{sapOaKz|~5};)dI>d>1NqIm~ z#WcYc%K9f7-@rB?n-UuDb_iwU?mF<$eJx)VGszd}Z}dOh%yj+DUE$rjJS`$iZ_5;nYMC3)Mz(8| zd*|BIeo%UfQA8@yH|GF6Z3Qrz%D?DEObEs2qH7?X5OOzxN=k>ctSSaE#ReDdL%D|J z>FK`MN0DTW3vxDp%WQ-kZcg$V89;iB5(7cD=Gheukdr-av!iXhcszdnnQvQ8g3sd{ zD_moRefGy6hPTa^OuR$=9|h^#OtlWQ70vYOIj~qM=Eeibtmz!*ZY{lHwK1F8Qxbj% zFn;1VE&T@aH1xuVRQ%q};mS~HA>-G$A3D|o=iE-un=|qChewVpRLNUxem(6o%qz+b zVVTz7G_zUGqH6O7389`1b~w5w-u9P(zM33n{O>O$wHT*_Nmk~26c1l*B+4~1p@2uy zz9}cOp%Q7T!VvPvz)nYg;XBH8;M`a;52MxT4$Kl$%cXLpH;=}K*8r|HA}W{$~eP9gfq#iC*r?%t<*A;LKir{j(*w?L z{%y~Y+Xy*y!yT-7AN$kD;YjU*(5qSjqTjfmvi}B^Z9BOyGU-)&&Di59bw}^&r4(0? zwJ&p7@UVp&e+jfyav1-SQ)Ym^;g6`t^aIP3$-g|tY1!U^c+gbGA4#VU5a~PGnppZvPe05fi=0bN` zr(w8f?~-CrA4;@?TIl&_>=x(7j7T5AK!%GYMH7$`T>eCitImQMPG|{bI&xL>@G45A z;rU0P3{9L&tecC0Dr*L~GVR2W<-?L+y}ud)G5np`O9Ubh_1dn}*e(=rPy(=vV9^r5 ze&f3<+(#e?GrB8u{k2|$l@jl?kYWBS)|fMQ%%aJ2viP&v^`Qy7;iK2 zjOIh5{B%TEiKGpiFJ;AmuyZdE{i8M;%i;5{d)G*(Oati5m6A6NoF~~dgobDkuqmMS z^6Zh`;?1A0-*_7@z?|;%w$4*`|J1*lWV6ip$2~vbC z&^iwHpJmmI!;K!=*5ATPffcM%nqecgY8azV^tkIk)X_%L*;<6j*Vq(6LklA>x^f7P z^|09SN%5c;$JYq2CS8pwLrx>n)@d1RH<~uoBN$TGLz}`rt!8mTOs;w`F=zG^j9xg( z0@DZ^3lB=!H5Vgx*DG%HBC?$DWqa)4^(-J> zANJVqjwnanlK>}=v8Exf9viOX72Rn&H?PWx4XKZ#4(BZjUWKygY6btS)`Z>=mQIg`$v7aELCNJ-=Q zl3oiV^)ZyNRqO2cnjYMevs`#62;#byq5#@HFWw2Yrf4u@fpq62_1DrI4YO<1lmB@* znwom3MO=2qh+7Qbp?`Mk(y2}7_|nsFCKZyuk3(UUlYIw)a7$es}stn zFIL@0krGotLm~v#?s6L4ypnJiDFj`p{SWG}kC}3sbhq*>6X9pCGZ!@`W{sU5B-1ur zFsI(N6q+;-SSe|){r*ysUhaHCb1C*99i7G!ywxq@xw>ae6AC95{pZ$2t!Qt-%+haw zF{;s=VgCA**lqxxU|6CfB|%(TL)!Y!X&UsWwfFnfFpx&9lcSqx zLVp=ZwvC30a#KWe8PHBwwi|{jH^A~@yMcY%l%uolHyWh%*n+(V*cjtQJ|&!p^kgTp z31P+j=%J4?7>5E(F}-3V-s5TGF?d|IPaM!G6kiAg%Q3L^TZe%TbIl)9;V7wu$w><+ z1J9sSsz~rCNuXHi6p_SND7`#fg2rdP1GaYY@iUm0s&R(?Bb0rB2kwcQ5EMmpVSu8oekJfX)Nt^3}G< zNo%G+#7SqXIHNr9*aah`P0G9jwk=Zm8}d=uvx0JM*~qB!oy+ArEqpZePe^0R1bZDGM~s zC2gVI7`MyCDb8gSxjVcu_0wdknpQp*k8LhTl~R&J!Gt~pK@lygbyl=d4zY50Ck$w}H54eEZMR$%yoUQA z3)Z$(rRs3y^)vq94Frk6IOKrh!=gH6#$ugd9sD{V@8?uuKDlYjKx$@W0@nG3JlzMQ zQr4uFlKyVF_9q56_IEhRxk%4sVj!>8-_#~g$F)@pl9W0CZFEtIn9VKaK}NU(y=;rM zFrVPJknOBcwh7D%peh+pAZGFp;92alR+GEYM!A-#g+4E6u}*W>TjT6%HAb56yID2D zp|C4*i)e5#9lXM9y{Ir@ZTl^rJ z<>gQO$%JUPpB&fo3J!0Fec}nuZ-Y}HGAanLJzu;wc#6ZQR6~it+8wl$@Ig#KnCy&|rZ;w?2X7QWBPd z0!$8(gv?A_q0Mj&1`iu&h~3^s2thu55U2Y&?d66 zCfWqO(IH55fY;sf6aTsstJs_utp^|S%SeMzpF|T733!rv4bT(=$v|^fePIT!*HT7h z#i@lUpEI`ObJaP?E_<)Jo(?AK70KDvL3{3D4kpT|=UYvxq+8np$7`X>fNMIr&^_fd zq-OgBZthU|C637-WPHg129HupaFvu)U1+<;2!M2DD>cOZ85Z68;v4;=Cwh`V@7kzY z2QlZaG2YV+dU_WE_0pwBsdmDoVikM7%ypGkCA>D zpsg8q^RYDp%qSMrvSxM(qV@{$OZy;-hL!{m81O-J1IH0Zw@#J(#YHB7r zc@0s0`WD3dO{VuF9inZR9yu4r5rzq?5dWd0Jbg9;RtvTEPes;h8e?Jo+J9Am(13hk zU7cQ340Q^ESIHUe*~i~=#cMLszuc~_^`oo+TH1Ma!H=$P0n;zbHp8lLs~bA)bxFNt zli?(7-Zo}lqo7c6VhCbcpise+6(vEh31rrZp+C01mC-lGzDKC$z-W$r$HJH;UG3-N zvPret1go@Y_LC>JKx_NzDYHq!6lfvA+S^0*Ay3YYTX;Q6a#(LTBv?j#Aql%3v@7R}j-_*|*Dcmgq-C^@bE?J!9us$-qFxY$f9*$J{fh7J z*bnIV5|A9S7fBhy860=nO$tIO4Qh$c#I4S#3()l%O4u-LI$hTx3csH_k*k^5XNd5+ zF6+NP7Zu#J>^<~9?yZ^cq$efB4=S3 zk_1vJtuXr12yIgZKMa@$Z$I{6k5NII5l^rpG8u&$ZY>ZYC z3QXEhx&{IX4ZQDH+LUtL*>w8B_$p{up#;bWWre~Ma0wu-icwIRr7Xe(2XMm}LV$st z5E`ahNpLkh6AMR9LU2AfFgXSPTQGY3# zda{a!w{-<{6=k3abiz^YzaG7s-wuaG61s!jDJd$_Qghla#ePl=BSaN9^0Xdc`wW6= zTtg4YxoFxbj_h|MYl7f&kvuA+5r!yu2X7v*+psm2%QeBmlQE`@QLAdr>xaC|IrJo`1Nrpt%gq57c_I)h}+#BC?TAs6{@Y(n=5x?K^o9h?YBwQXdq z@g@sVOnZHdj9;!`2$hD0Z6Kv=Hf4)#1@DJ;wn`cmoL!hikU*1J76ln;sXnGqEAO2U zFtTwO-rcy)vKQ?qXMv^!{an z=MiY0_1d@srspLt!NKiXcwna11+2H#TQ7mxh`v9#_bvM@{}H z%&IDNfzoa-!1!1>U85WOZRuD}`kq@OP@vYX-qh!@6Lu*a?4TlZeQa+h$wc z$b4(3Y1;o?jctd6Z{K<5$vA>^4EdWI_}D_XKnL3)(~)~Jk!}%o*_{OI zDvD>}B3}8X%!+hv^bdZgK=GvAa1PVOJOFZE1-x>88nDbSGLeJSTBpu8xo zxpeG_U2h}H>s{CIUs0jIf0~4N5aU{ecm(!vsPLHgTcEL@P2u-7bR2VW4}AMr7ry*Y z6*J84HE>1lhn}s0!Ta}jvTK-(6}LBM1Kh;xH6!gNGH}} zI7DuLW_-krRhkACh*p4Fj~w_i+ZclBz%|a5o2aB_zK6tHtdox0?=6pWNg?Ndc9cri zV$E+>g8K$mX_VPUrcJYWL@y%+@>MPIuPN^%ox4sbuF1^VK~-?Ff&_oz31YJ=Bz8sy zX-iOIH6wIM`F(t{9BMK64>p?#v}Sv$H}A=Dphd-YE|DlYOnZGZU?Ftz=6;o`4IV1l zQc&O$5sX;6ljFU#0pFffuHc}R3+Av7HX+4H0|v1{wCj-~G9{3T2xVij_?8jwnXRPv z$yn5rqIxQh+cUlPJB`oo&Mzcp+*=Heft0BtSbUG)OSsC`9FNB9>3!9AR33uUKos^7QXBNo>ZiAYI=Ou4RX*TOXX;gtU>vu}2GT#MR43oT&Zt zxmmqEIasTk(6$ZAavlbcH2IthZD&Haye3$-06fJ2y(g@EwhR!m;2>U;%L`cUoZ>iP zD6tGUtKvO`>*q4SB4ah!Q0W$DyeUEcQFhG6UbID}EXiWFP4J+ZcoezhOyR zC*PC=8k8`GgUlY8-PCP0thEo2gkh$lHLp*7&HqTBXIg#sovE2XNG9usJ!Zes#$(0e zNy8+lLn-|x2+ECQQzabtE&DbHFk_f(5&U=GsZ@?0@4lGOPoc{j4vcfI$e~;jX3>^P z4%jgx28q<2*J2oSfUy*lL+tAa40 z|BLQVC+l~vhpAtpS{cx|1>_0*q4h?kipxwjH6X~m3-Ci$Y>-0MdAMATZy>dXY{wmr zb&7E_lgj{0ID*vUWE4xEr*z1AzwdK^zygrKN7P`nf6(eg$`fK4)K85 z-||xQqY1FfaB_1CxJM^e*^>rXD8H#207ZO^T4QRKQx`4*gK_KBwD#i#2j=p#oZ2Cn zf2oJsNk0s^&(-+*_T?${CM)t7slKcHSM79J-H$`gnhf&PXb0J~fk8GZM|HfXF817w zjgIb<$8tyZRkw(I2UgJFB)vZWF+AK-IzG}77sO-l+Qa%z8)$UE5jh0w+omU;_Emrw z13}Xd1<#&EFeyKr!75L{Yko!QH2;f6KK{?%83y-WJs|CM*qDUXDx&Sf$vSP9N0PVB zcdc`>DZiSgQv<@%- zhR9ZXC3vezE`-ARWCGC{cFr&=E|vj|?OXbQ6?dpaC0G}V26m7T;-zNuz3xOYVT_ia z4y=?FAy5+Cd?4ffB7U_&(^T^}qRAEv`+<*0LMZ+ao-OwJ3~Sr8D+;PJq||OEw)`RC zD&?J~ccv4#Dji-~g6-QM^N2pOCc~Ml+GCE<_p50#)SGBSoBdAK;K0g^0U0`d($q78v?KM_k!rp5_>Kk}eCw|Ca=g>Kb^XJY zg#PQ&THwEt#J;DugAMulodlNu9&Q78gj82bsWF&#feF&DZU{Q25W~ZhU0^B17!-Rl z{D#|%k=!eR!vp~&Jm*A(w@B_J-0&itn+v(=#PEf2e6fld@3GJ7O=CFaN z2Ii*;-tF?}YP6EGrD^Z=#HD?Y9C{&0=&uQ(ruwsAa(CiG{Z*oEoAYkcuP&m~@Tm>f zi>@L@QjxG?^V*RYTgnga@Q%#JEBx)@JLS;jLCi&Leb}MNV`jZiDD3=`U*PO8B-r`M zBU*L_=32KtvhfF=CR^I=HvVWfd307~=rrf&NsxCKyL3Pn&PIdr)=unJKL9whHWCshNHvLgf<%71J=1P0i9W4nj7l>p}^){tx}&dU1N zRos5qgU!Tj#f`pRvSY|c0B1TRi+p{{+Iu~DH1mZpYVX>Ws=yVp6pL>3g$KD}-zN59 z-tKYYfZ4>)ICZ0+0OGzVIk96iGwdt|vd#;;J)K+%D6YM=cxrDFaQNV`V9UP24$?H$ z#lr_OtCJlrv-2)3OAG4YOrK|;nwqelI1z;W8p)oirCru}9zxh>#RR&{h(|zGJDjA| zkg5@CHi3t@+%#Oj-mhFW;MFlNd4#ABhcd?3iyZAp8x<~T1Dr&jytgIp zvZh{c)NUHw-tuD5ToF!o8s3S=DuF3wS0(P z5Vx-Te0c!ySWPL3nDMI>ZZV+(Jzg$zKhmMZA%YzZ+Zi&H!?JsqV(`ey5m$k&TkWoV z3iZSyQ5|Lc+tjh{oiU}ywkOw6dMA$fHhS^ozZgaSe;o?%cipY@`u(RcV(gyOqX#P$55n5*zuB zRt-!Sy6AB&RBagdf=T4(GpG;5!$4!UwyutIo+??Q#uE(oVULP>2TKBu%ogk`yMy&qtI#V!UkETMsKP*&m<>T$s!GgoX-GVgu)# zpqK$2gTOs;j{ae(@i7;ZJBXX@rbC$Y4ZZXHx{=-|Wke8B-aJXf zz)$qB*t6&;r7zfz@HvHyaBTIxq%24IUZ`*mye2;+7cinet0nWE(mF6xAX_#6mr2CZ z*vnedJWaOYBtMr{_T@wh8@-QV7uE8Tp7DC8%=;A&QPYerkT2O4(`I@nn%p%L)#W=> ze5H@DyHatGX%ccEZqBMf`d3`btY(ezyDqRv3Sr9QB{xWPK@X?0fgEYUUHGOQ@V)S0 zH;APv8*3Rke3Yrdiy`%;+pl_|s#8)uIyi4u>0_|HptVky{ zggY&b+71qOKNiD_t@z>ZS}ghMgOgU=7aXtq7rJD*u<1Hovw{Y(4pSbqe297)QE5P< z!t)2z!c>9fhD`}{4uNe#$eQ;%L*LVQbU?4punOon@AI&YSvYs>Ier!uyHbh8;c*PA zIvISi-nmCtE!-x}Dz1s9o0T`{{B#13>6+hs=@Nc`gJ;M zw1OVXrqe}uI=IsNf!G#Cs7_e!4emGHXwAelTjFV^8rGO)kU8)Ag@B+TRZ~9=;GIk1a%Cpqk;K z^6lq_qmd>H;Dqf3ECQ{B4B`&(UdGwrty=Hl~wdl zN2N;`FKt=X5OT#*JTd(y)1f@+^bAGVRSUo5Rs*VQU9;iYVV1)2M#)}pA1#(r`paP`k#UhA$!aNnFM)6R zPp-U6+GGPWz|&1q;#t0wRj+0N_eoLaanf^@-x2Q9Lf#0eNh4V!j}e!DRr;K_gOFmp!;x5#iI&@8&fEK2Ciog*`*I;T z%R^L#!Zk}=dM>h6gdJNT;{xt;PTF!9w6D7$Nc|5Gr0+?K{FzFqC+-4QDW{(Ent>yo z7@^9zipq)zN4<;+CDX$GNtzIFUH@NloW@nEVA%|D1}FiGA$Dy1!5Dy zLi@F<>X1AcO5W%deIB)-#8Esx`3a90aZVoYxHG20IypnbjhD)_k>jaH?|?dro|F>4 zTHl2hmXC&{oHyUApTsUp*eJl!mClpe@fsDISH*llg(lOrR@fDiLLC=F9wm2~;9^$?E0{s$isg7c;{3{vB^ z+{<8H*@XI6%)@73Vz9(=RUX;vkEE+b+5m?@c)znz_GsYPTc611CMtDMFj^mx4ucBk z=fyT|cK~&rfzlcgWI&B_lfxF(sl{M@V~|q)__k6~1Qqx5`A8g57Z$%5t8wAFdvxj? z_Mt%pTxP$*)_vj6n@xmnlw~Zioh+&G_mHGIRU9(K!Gn+W`?rqr@4Er%@N3;CLmbgzc#joB!avL7TrC2@p$)p3 zEC3<6DRj3iD3FcCr-`f>tB2C@`=moCs96OfIbtIKyDc-*hs_jBS^k$=_K;><$pM!R z2*?&cx5or=Ne~j%(qu-Z;Dn0Ci8d&qO8cfp3+9)!c43()EeS+Vx=%LaW2@&5Jb_A| zTkDAJ4Ob(1@YYZv6naxN(&k%Jw=}HqDD-^NVQFxhvREP=sCwF;XK^(Sr814}br0Sa zj~lQ4c%0J>6g&KzW}_J33{RP=^l5@w@l|3w$#aMD?~&nT<}qup{y7pZHoHlXSP=Ikfrvc87EQJu3{g`)wxY4IvzxpGuvseQ5 zBz6z`r8h5d$5WLMKFqP}U`{ZOp2N7-L8|>R_Vcpno)gUvrW03q5Vi#XA`@}2upFo_uB^{J z_E_OuB4nKhCT#XW*P(G$xh$E6B}1xCyH(p1q82%yfbU)7u}h8bd#8Y>VVa87;gR&S z6pIHd5S8poipvYSHEj{e+9vZDl;BqZ`M9WAScK|^T#Bp}3ARX#=dYXV%thZ9Fq2== za%|;9i;3Z$;6dq&u|-T4qKRw98`Le@Ggl5N6>R-Uk{4gV8&Eht#1oE*k3YPA5BuaC z5sQ5jXfiSSz%o~2KQ)j{xMp47x#z8EcRw;u#uio1eWC|>X@a(*#PR9lwAInR4^17@ z<)xeXea!IfN(P{@?vR70n0>_;g;A)VKHQ;`Y9-#MkG&I2eJOmqQcfc)~@-Xgg$g3eSh3pv=fJc(3Sh5$eq(Z9_S zSn)XL#%)=BD$D-T+Qhj^*YEfs4w*n>7W);p8^d@mw2MC)gikXgkO0ARpb0P#gD{IR z`+|DWX^Sb3aS=l)L|}rqkWb6$E6?vKZ3H5(z60zH=`_^rGAvZsUgay1A&@d~jQbVM z6`l5S(x@B~j^@m2Kun~6YVKIp3|43=Tp)u^8->Gb>V>BHa(D|m_RAlmjJbZf$0oIt zHyUKIvgkBNpmgIr-2&m3gtj7d8)5ATZJAIjLRu2MjbJUAOVI}cGENrc7^AU8kz4#0 zd;nZbi{o2Lqi-1yCM5LB;UlOGEHtp%9$+A-#qF~x;>7wTJtv!t|CC?9z$+Kpgp zEQb+bFk(6T;G*ZWfewBvNs|%!ko2^b9Zf&4no+9w+BN?_na>Lb453~X$kF2%W7E)K z$+#@^f5IRSy~hhg623mK3_;}#`))Hu@0f8q0Q%i-lErH{Jjnf`7LIc<7@imBd!Hg& zM<;x03q|;}{a`+?6OGmb()x%U?pO^nB?k;0@5Dx27g3jLwW5cRyLUx2gAD|e%@sZ zB4ilM@xNhTE#J{}L~^|9b7@`jZuw$wELaeMS^rYv5f7htHR@3x6jcakAfu?Y!OSS5 z4E(1n+jE~JxoA$N%xkmD7#`LFWy}nZ4j`~ab&#P{KR10sV9i%d-CGcrOaK}(W{7CwOGEDl<DDWw3`3_Lf*eRt{a3)RoedS1PgC}5gOy2(?S~-dwjc8PcO9LA2llGuw6dT#_ zZ?nA^z^AtxBFv~jP#dpyshR8viPQ=PJglKFGwvlQ#qK&x7E2k1e|8hz=*R9x!Ga?V zjNPMyn{T;MNC>A8X<|?SXJopBfjfdFEPDy91semzkwEG(8TFJ9Y1T;5+03pgS#0ih z`h4sI=Md8i!E2opW@w85Awj`2dmEX4ZM=YJ@@um;5a7B5>1!oDuTq8CC$JY_BkMpo zzA2_M^5S}Jb3(IVHDwmyC9|;p%Mvm*WLQf6>M85h;J*a~g30TKAp+aTR~?eZ6LS26 z;5|~*T>~DA3AD7XSXY#3%bev$#?~PO4Q9s@nnBpdTWPFExBYYRfot>{AJ+AUJ>hd> zA4JJ=6a&pIQKKap?``6L1z;vEXl9BxVG zkleggwchHITTC`gO9N)pWhRD4fZ>R4W&(%y+$~^USdArX6rD=;xJ}d~ZA2YdoUTN{ zW&bAUUJe>XCmLaHOX8AdQ7Va==&vpLrDObHwpdWSI^nVMd4DDDWxpko0hh3X)l!X9 zEqDW$`-f8Qj4fwxk1dq$k}amil`Ss3#cUxQX0!@^gvv#xS|l(>1;q&#nJxP1&~V6j zVXh~+IuAgsL23S&2$|wz>_R3wv{o!w1wxCe7!*h$&Fo%gGyx-L^{+IS3e^R56^sCu zd-}tjzuiy{-dBmYU;@Ad$th^R5#^v|+Ce&}S=DfRiI+1DbV96*@ri8O_N(%F%2sqrAV>&i9L>G->9@wu%g) zrCO6n^fR<0w~`#-@aOISFgj>sJ(JCR@QJ9T_k!FKvHB@OwA=6{0x+6Pz|F|mj#$x1 z2O=dMX1AoH`V{7v)-*jCOrnKh4`~_uaLe|-aCy;)E_5y)v|9lt`m%@2blO8lJ{Bi+ zVAT$l$J81yL2u)i=naW5i-)F3XJ>-4Vyuku0!o#`3HK#b_lN%=a|!YEM$IXr>_h`@ zt5vRy#v;#Vp={P@LCe(%l+?(c%=d;(-yVD& z@YaXb1;c_vhkFUG(FgkD;0@q;gU;qrSQQGIDv)^wOH$bo;io*-5+EuI5 zaUYS2T9FIsXWArvir||)I7Dv3!RP?E6Nfb&=?0>Ch!~xY-0Qqs~X#iwB4yDfr zSW_NNqM}q3PTmb6PF^NBGq7=?CyEnkI5Gu@IJaJtw_mQqEpiRoU&Dn1d4&<}XF56L zK(+-IR)vP2rHjW+N<)uDM4mrgIX5$au194qNtWFNV=J)gR{px#z4~cWGzOvwa9h-J zF0!EA&r9%gmA;$}diDX{HRe?Lu zO(MCPH_d|6i|MuEhwV75hKLPWu6)@R^fzFZ{Oq_;axCb26Wq~n1LPoAoozw7!Gk~R zGGhlTLN$fs8DIxa@UwlbonbRXQ41p63T~QeB|e+2&$s|q@%FIiYW8Vwn?P$$7cCIq5<1?@0;tp_kc+MNbvwSic?Z*}t zHBq5wJ-;Ur*xRZpE$-lsEepI^C}yQXLAvPto8B)|2`qY~ruuSp6mWN&|^)5~JdHZwh)g1R*3sZ&O-}M~iSCIuV!t5^sC$523|xP6Bq$%XBqU-Wek z^+q8GfCRr!n1TUp5MmBv4UTOTWlCI&3FN6grnFP3RHOaW9XJLVh7+l zrq^}cHw18W^Lt3%MTijikM$U!9lqbXff$R`(%%u?H!-27VCM{l5cx_J#Ty2I8}LQ~ zue~W<#3cyh@V5-p3?RE8+srix8dq?_NxV`wYXK-e%?ALa?mEMO%5zWN7T&?ZOTVLsv^`x^O zf%b^;;vbi`BI!s`Eh@D z*IXfkHtpZ>@|iNA%Yr`r z#VLcrW~IgQ_fNB|&QID)FC#-GboRti}T`K$2+dKXa}j7&K| zUsq!on2iU|wze3$hD=fv8xlDo5=rMw9CGigMK*il_AXwEuw*iD(yt`Nc(&ejzqY5U zFKe6uGHbyExwR?F?A>Lihbm(Rdi+jA*m`HLT2rh!+kr13`>lFy%*!=_9axmZ-cSyW z{OzmJxVYp22kX_?lFuAh7i>4o5eb9C^Opy_Kyq{n@8JBaT{$&be>(Qn``2W95Qii| z)Lt-gspP0>$GpT&>g3uuP?b&$vR&r;pevm!Sz3V0dsS3M4#4P5ThE*)@IHPHFiy6S z^HRY^if^y9ruIfXNX<8PEexED((8n2KrexTUmtGS>>t(df<7a5!d9_%Y5+sVM{7I| zF-G`?nfXEGD!S=*|8blcK6?g>$fB!EV4A>B)ZMjxz zFqf5RShD;}r2&Cj(hC)0mUjzyKsQFU#fIks3ZDbcJulGk!dj|Br-e5?uqR!5@t%0= zX7##<^C9J-KV%f4f51QUxC(#wAAt)Azl)JRS?Yt_4|79+%i{f1O%i;c28ZHWHMr)W;7gNApM&#YH_djnu`oRi;S*4 z_7S5%wJpz7d~+Oik8lfMB`BtP(pBD(R9My{hPduZqXf%VpS$SZzYEA4MN@b@IJy^p z-N0=)wO@xPQh@~eL&R$H(k6zUdEAHW&XJFRoMvV;j{8dJM0G#~?ea7kfX`te*Bz*! z>ikQiv{4lHgE28$LzW=h7Wv^d*< z4&*_6fl$WsUe)FA#FEwr$oI1#n`ZChj4_uPICX`l*P7;kz3)X_ja zQ`JC=B)JpWs9e^VL;&@phW3ocfBXx^>HG$^r-K?wBe zu!EyYMX@2(!o|ihx!?ea6eM{CXm#^mrQv@sR*dy! ze26w@6;^jIiqbJiE7igfy|(^0v`Giw!=x7hZaHeA-b znC8foy`BNu>%H#R_Mcc>?a@b)@}#t77T z3=u9X8~jn#Q(C@~f(-6<{pM9Xqk~9-w5ci;JhVv}Ri)M3lxq=m?=ajr|IK@5=&U?D z{*Jd7!c2%2X#KjR@TG~=A&X99OhkoYrudnzb&eJmAPpZZ*1DA7QU(100c>5x5spW~ zo3~=iJ0)u;+zuMj;RfsmWYFQXS7I=#w)Bxi3b=uy(k7+#&Soa$)Bi_JHMGv}dSOlu zI*5|bM1g#NMmha7@*aKP_7C6uPyoR}0OaQl4QD*}A+gR6h{=WM3K9LAz*LkE-iQ)2 z3qC3dUo39q3YqF+Zm69p981+lw8ywS1ra}6+HkNuMT!4rwz-NI+gFo#fmrE9m8tev zW6^Dgvi9#|#_3mpl->Iqfu?sZ6;BtpjJmyRA9{LhXzhE6|Di|VVy3r6U0DdxpFQS^ z*Bp_amx15V3zv~S3=zlyFYf;h*wXvW$9QPxRR9g`$eu>B&7bw(7Ir`EE_n}P znIL&h>XN`AJL*A@=TwANlo?!{9Z*p~{84K~Ts-212fQGy7_+$C5dzWgytpiarW?25 zSsysRCQafU%grE;fS)|+grP}TGtJ`uF;~(g23;J40}8CBid`^Jx|$A!FX4-%qvGOJ zx)m2T$rgG2ERBRIQ$z9mn}48V#ipnI+4wzdBM}Hf5d?E}02Q(WLLd&6w=`91VlW>T ztlvog9o91$dwI}IX#^T8vF*M0mRm}hl9U0?2(bum2wC9i;Pr5JYTwf^rAbY)^~Y8= zxzkd%{zdAH5oM>|WX3E=iF%31TlUnl&fQNJ*iIxr>NL-SGdIU{QS{p-Rl;35l@={3 zEi>k+mQFRp^UBw({3@SLq%7a%%dk~5JX`E;DetCfLER~x)=mc#1`N;Q?(Wp7Q>RXy zI`u5>?oORLb?VfqQ_n&vb*EGcokC6ET)brAzQmol67MRFrIm0nVZiV#?(R;VI(6#Q zsZ-D5?(Wp7Q>RXyI`u4+QaXdio1vMpa(8#?)TvXaPMx~bEM9}kaF)9aN+}Z9okde# zT)7p)&~>FAu0h?kgG<(aMHEEy^Fe zJ=L}g8UV`<5O1GpRkq;}sUv}zM=4W5foEup1!bnjscD91r)eh%nWh>U8<`wYT*3z5 z;MTtpD3p!)#c3pA`koEy9uNwTG0+ehWKSvQ{*=CVK_D5GQ5ls{8I@7lPXeS)|4hFg z&@TCdi0si7g%sM=Kf@s^C}=q6oS*I23!2F$>$$niM-u3Fthb(#2XbmN7mR6Qnp>ZU;VG5%nC`+tZ8I)j$ zC_iwSIl&N+goiP}V4?;P%wWR@G@=`*d`dCYz=jWOG^9xBvPBC$OmQ@nfht0X!9<3b z6fjW1tpXDznSns*o6+E}(NRY{qkDyBNBNV!!{a;uswX>o!nDW8y3%$u@NED}7^ zpI)ef;-q`57+0`lAomw}OdaL^4_<)BRP0IaS3%LVz%_)>}g22KAOE_SH2&O8o*r3FX3h>yk54FaC;|k@+j;>FLWCCnqK*nQUnZ2`Ls!O2s^* znV7#~yvU2($c@}*jQoXqdiwGu75m~Zl#D+43pcr|pNUB(TUx?ja{rT)44J=BF_#hZ z7s|+8{Ygo&7!p#GCZ16$HhM-mnBY-U$y74cOvQARZ)A9+|Gii5KhO)0^pUH81}8H& zb4}hkxtHV?jat*_O=igb+>yUDCAl^EE45<6GEHe|)dU+A`Io0WYE1zEgS#Ulf7Lia z0}-qxY{i6SzV!5^oseRll*gT>+@4X3L|l{Hg1azsGUR?KLvIOZgZHIHnWc>+Ja%7J zfWINBS2?AA2quGinZJUDU@?z+{3sL*f6x#N%e?%ENLbKN%y-mFB`M`z!b4&{NTYBH zqdF)8=d>uc*!`N6Dcy5~$Ck~y#{;eR6!hK$D)6||#d5Isp^{o`l$6-L7EaB}n2W4=PI{luJ(f8w#{*oz` zVM=GlZh9JyNBT%?98@qB!JA3SV>dZWTgueK@n-s?N+!LVPQm$btDJ4bLuLa=)snU**)VlJ%>Y`a9+?2}`PB zf(&viXT@sry2leWODjx@Jfay1si2PvyC>}?;dTKO= z0UpR6l=t!QeB9>AA2qW_0~Mho1X|!wN+}gV5lAZ?5(8OGbr5{|i=e!(E6(%q%ue$v z80Kz%2WXfb+W+LzbhbFtnH47P6^~;d<*QArJIjyzUS~=&vq4jEVlEhCgJ(2WFx^ylr z!=^B}WILPsyJ*rvLLmbcUuY2nj2ps$^$b1;(Zdp=A&S6(2~LJ`VuX_Q4&*OFFvUui z7+|1-7qAiM?lOZEJ8&_Di6&s9I7tA54n|N}0tYFuamR@a*2&C?64?Zj3`u5Sdg4M8 zHL{%H07kA^&T#PZ1Hc~0Qvy7CUfbI4I||N#m{O)Dry;cIwcmx`HnywnNbf)kuF2Z> z&$M@)mz#dx?);qm_U)0GTstQ#;ZlzHj2~qALwsDymnx{B|K2CWc)^MxgAL<~7*7VB z=FL@48hMUGf1_(%91d}%6myL&@Wg@Bx)FjebFfIrk!NHN#|mh&A1g>o%6I0}9Et~0*vA7v zq%6<5MOKC2BEd{591$^?k;ln}O6k~~Mp*L1N^(g)5yg_GQ=aonAAMg<{$6Sz10a82 z(h>P9LdkD8;GqaDPeep8&-?BZ;^A&4cU{*J!6bJ?a4{R=3Wv8ZD3F;DNVL|PTtUdS zK1P9*Tz@4c1G)Z7p(0llypXHtRwVI)EC;M~<@#eU*-rpvW&)%KLyId*P{H&?!A$Cp zk{Awl zz0U}BTlDuw!C#|b)Tu9HUNfYtz6>eWA6WLNI9DPnb9Cen zfBG#c${y`!(j|d{*dl2U+9L;PmdvzS_GP9oZoxRqSrAoneM`kH`198n>*M;X`tp;q zRYMhaNYKfaZRG&_OC4608z`h}@3wG!z*v)~=Yc=DmOp679`kSR!WDR=CeIswkSV1v zz%5EQz+`D_VzPvdRKT-@JLqI9Cb`XLw&kkut2YLNu|L~#7g1L63a|GtM4cshlXi$uaHwAi1ddt`Ea zi{Lknui(gf{5N3Gj@MCJ68p>M>$Tas4&;(YBh0<(Q}c+U3AeC0(dLRcGM@tHlG#Lt ziXihcnD988RFHWYZ@~zN`G}Zn9t>Z?{>I<@39S!XfAg&u`oHlKMw0{{<(3~z>;R*D zuLBIa@i@Nw8q#dHtF+#(s#2S#qG5_AyrK48IEqflesc=d`;#%aD}NkA)%1F zn!K{c60MKe?s^=LLrnJ3{d7DlrT^W=aURL!2sR7D-3G=&DZpI-=hVO zvuQlClXsp=_ta2)!2ow*3N04c;tend$VHQ!lckm}UNY*(*@VIYO4to3VK~zO$5mc| zV^b#?kAyWVB=9(wA~Fr?8F*u?(3QEn7Tg99e4FLY6mgqWv~G zaGc2;&K;*3%GGO_JvJ#w@-~~yC1UDjgsJ&7c9QYi$!Sq^<$yoWFa7hWe>y!mvLK5D z`qc*KhhR51A3o5{htGW&21VgQAe+YtgK*yFgTlZ0As7fw;8DC$yB3J^{oDW00EdtB zqqrph_vOSca#w!~oKO9vk6P@%(I0}~hqK8>*wnOi146No&2PAGZ)Xq}oS5b`JW z^Cy(U3}8 z1`OhOav7-yjuWslhv#dS^2|`cK=IPKr#*|iKe=dAHmCF}2_+(dml+AXykr$sx@W0h zNj{<}^8CrvJzKg*&VrcY)ZEo9n5XWsR7B{kA@P@wyXN1E@oM$&!>T`&KLj+)XNDC# zW!*E{w_uR4;IEq>sH z0%0hz0TVG=2!n|E7u*5TqQuW5{RRZ3M#O3yC7_X|6&sdpSfW8$Sz4(f3{8_8@xX)3 zNJm6jNkJb$Jp&-oosi!=0T5l0LxzjwUg z4o!H%{zqoA{QiLWv^aTqp39P_d*pj~dzSEcWG2h-(kwb~r1V7uPsBJdL{*Nknq3bLg4Z&o)>^o?2?%Bh>1nN)V`Z&Tu zQSJ-T-@ZXD%TGwis!yM#ZGS@`4_Wp7S(>$-rrFNY`NP7HyHybPTZr9dy9e67qrZhf z+jC)%|7NYNQ##qoaWF`Oz=*$cW@-f^NQyFG6l93I=%+vr^l<{u|DOIVig_v)p}xbQ ze$;n7RQqdxr$wF?>ElQNmU+y{X_0y;>v^c{dAdgh?(0(-sxSdMv-aHMY^AGEf96!k z+P+!$`|%60wveSg5D@EzEG;DBpZXK}@%yK=Pl3`gPmA+oKqKyA;TF-C^k`es$(B27 z%IWUj_u)G~>7h^*`$GQQ&)5992lD6MhCuy!?+^5SzxO_Wcn{R{S=IwtHYVo37sB8C zJ|RPrc>k?1#{gpT1)PJZDyG#2oe0OOta@N`}!h*G;<-i@#$Gb)rJnf^wc()K-+g=P|(ne|I@?vk@$;MpJTyamlN9lhO8=K_BBw#DtNKGY!UlL z><_Vzg01s`?&tbKO~n5`kbe~Ig`9>!TG%giL;G$g%tsD*5?RsttZ&A(*vR@A?EDB~uD0xC@(2qr;!{Za4_;y(gQ{sd-b)d#wtC&-d76otM}|9zn-HU!dszR+dKkX1t> z{r7?TZwNGBdm$~{@o@wGaVOUibT6bTMBnr8dc>%;{>ooMQGmMl7xLa;Lfy0O1JU;$ z$iKTG5$gR3xVz4B)oOpWYHO={2mFPE$5wW+mGj#N>6L%y5@v#Z&04Mgqv4Y2nl$rjK@=f-T%A`(z2~T*&w8)w9QI&CT(*)xuKFFfQHw22t~zq4=A3iRIp>^n zZkMandJ|j|_ui25kg;QjOl!_L=bUp+D|^(J)i$jbu-T{eTB~&%PN`GB=3pMqqXW#N zN6ega&PuKGKy6uiY`?^ zR;gR9UNlyNxkRA1BZvt56;}-(aMoTvrbzrA0Ibv_<%bf^nl<8FB?97 zeAuw@&`Juz=`9hEshz^$AKnlcFLxlto9yEaLSn*f^*`e}5 zf`YJP&N*iQo~TTqC0w9V5CV`h^Fsg~%m|=|3>gA&r9cS6Beg*hBnRUl0+2D_`83ao z`h-j!T42pO74w{P=Mz%DuLKonX1Y8%6ps=aoP#6FzsV{O2L_2li79xnS~-?@;fIC& z<&v)c4|0E(!&`z1kDMAgTJUl#;e`(xIi?7)5;t**m!6fF0uj7sxUMS&QuvtRNl&ADIKrn*Y7-Qj?$Bz`U!C>G(5=^{2*K502mbX zAa^+Bj}<97n1{>ou+r24=D~!L9x*(;S$1XF!;|u-w=YE_f8-B5d$f38-tA5$9PmJG zQS?v(h@7v-lok&gOLBI+Dos27UI;qA!1M8rH?v~Y`s_G9Ax^s;Z&syfR;7q@08sgo zju4||1m?1w9RUUkj&O<{VMRiLI!li5ji|@Z>Mp#h9^a{BVg!uFcQP#K_-Lk zNsNn*2P|}uO`*fg2${A+(_`<>o*8kJ$B(HJ!vY+WQLy7MQ-y%LL zVqXim%W@V24<8d4mE|mk4{%J_%W@Wj45%95Ez4O9EpReivz%=J2S7$NDI&{ErdiI4 zXd;iR+QW=YM(ViC$~oK0wfpKlJLuOVGugj>C3pY=EM2l&Plqf9qWm3^`*D>c%fBE1 znDFRj$KB+_j%qC&S^ft{+#Q@O-$ezFbi2_5cO%Q^={(S3En~XD1dljRN@3hL7X}5v zuDfQu`}111w5zl|S*hEeQbUbHxkK5QL^?>scr~yMQwo2Y*!I}vVO0uI^lM_>ujA>~pNhy|u)JecJ(d-pE~n26o8Uekl9YxE~pp_(dUpl;w~2gigJhcQtFm{q4U`$QF(>1nsY73bVsO z3*u|SCBeQ{Uv8fPhVoXg27b2HUa#R5Dtd5vp9!C*S&#OWZku&CCG)AL5kKa!OZrR3 z%janzQ^tLZV^FR+ksZ`=uXxH1idobC-q*kp$OT<$U5pH=gT;|cyH}j4sgX%}SX{xO zGN!jJW+3o^XDsO9)IyG!Sr{%97ck+sg$F*tAs14(ZHIcj*6ZpHIP@!}^r;P<+pLx)9j z^jjae7h{a?ih7ZzIWdC|-60|(O5#qmz{B&26i6^F`(Z+HGP&T+5{46Oq(nF66VZ%8 zv4I@pgMKfwoB(rLW?5>O$&kRaC#1Mxh;UL$0t^um>|!r#PY~fm7d!(dZUAKr8Q=go z;iL;Krm!MK6Qv5HSo*AqB(T6B`>GnzSrjurE3Oqw10HV;mYFKsw7`1>GLV7=OITXS z{k;kR4J#<(gWT<8wt^=#E}L?F8rB9^?y3*u>Htmw3-)}1_^ZGE^=j*@*Hml2>pH8y zn3z>OjHs8~JnO00P%SZa#l z&T_VNg?4SFv!y7yi&r+XoGnSoUY4^Zq&$kUDjk-2$c8XSJQPvE;RYuP&;So(Xc2=a zN9Z752I;W0f^HiX+jq05JL_2+7IELnlejR)fJK>qLzZh{k|H12)LsKSu>0G0&vGy1LLYb47lMtrtFuDz?2n~R z{l;+tr)IaK#-aMP)>`XZ5Q8b{s^0(@Y2@0$Xd`O%Uw6H>VEgi8 zZ6T5R-7lbi7qYgO?t(3VJ{PjK@V0m#yUPa@EOS+&LQwg0N2|(m$ei{%5vhZK>9TKK zkgfgk4v{+cUohZtHqEB)vDV#MuRjqg{YXgVYyVoAMt`=P-9+lxzadbIAOL~=T{9#g z_d)eL1nLi>-{Fv(wQyP?b*%jn{ME1dN$h{lj=yN_Bd1Qb#`z^{-_bl$Du4Vn?E~r3 zDv%bnuiBCeIF(0=wU{cF zPs5;o?t`ZGU4z(N+E36v2Se_n>-pw6XSs{&;krwEEjK7(K9H~oGTU&4IR@)~{q4Ds zbwd`B`r8B5-@-76yR`oK`GA7|-Bm^EXm3U8X#a`=k3Ly@k*9n7OU#lV8|j{!d>@JY z>3rwk`gbzPcXA+KzxTe6A29Xd1J<5~K~c63vReq`eNcTb9OACKeIg8bw0pLO!E@I^ zY4JYoZ(|X$?>!3jtE7z@F_4Q$o%=!Bh!_S&(&GItJksKQ5P-n+S5DJQi}%0#9vDLB zEu1uvI`>~u;Bl4jy}$C;{5BL9Zoe+YIhR-)pAj39qv zv`|QU`=L-2Anol7&2RVdSBEV6z2h$%&hP%I1x-pdYl)I*ty3M zM3g$EU#l1N4Z$uI-9?eGP{fD_vg!xk*Zu^Kdo2{|UP$}~SQ8Q!iWot{LJ=buG}2V0MVqhYe}4;E^d-zbP#3ba?fbW9(NMyIAYq}15&5yS z1^C~Pr7fU;3t8Iz6E-35w?E-_f1QeS&v{yiWDBQ|{cB&s>`}K?#jK$XL+&a7B)GCa z#9z{i?I7E0|6Xgk@4hWdyDREL1X$+!Gk@IQo%=!CU)Stwod#kUG6zHMqI`2_Jq^4t z+M+a)Of@*?aO+9)voPmduP1=*WGQ+t zvRPezHEwSQTdal+i-ErHSRI4;0azPmq$$Ftv!fp`XKW^skyyNZZi^rj{klU({Z0re znUaJd4ep#b8WJw!YdAOMSoM$x7Q4HN#pq_~RE0aVx(867=S?9-c4D9f7Q;fOfVTsG z2(L?X6}eHeQ2TMq%t`%#GW@G)@`!nI?CJ7y8OLDcq6-p*m!M#{a!itfJRmScjB>e| ztuGBR1D}@M;0Lk`S6QTf`6&hwqZhR8$FLt~MsfHJ*r>-M6?={mhpk;5MpNR=<>UJd zqAWc5d~8zKi{2cHRw3#{7-)j&pPrX+X3UpFyexBPa;v5kI5gEzqabH-32h40wh}fA zE!UO5d>X-c$k%R%a|5X5|Gxp~0FbaR@VjZu%KMfC0hT2QzXgX-kP^l|z@2<5>t_5x z0kog(FRAcX5izsi?Vt#;M)Dro^S zz8c3-{hj=?>CC-G^lVQx$ntWctP?bUp4!Yp9^_#{gb=YD=f>y~m^WUx8lJ_j%VnAa zis?9<_%LE&;MtB08LxOi!P;cjHR0Q{h0JB&h*4OGxn9?zaD+ZQ1VRoc7vVQ_$eYk@ zobZpC6nLo{5knN_EwYt106H7X!Oy_LTq1(}z$Al$IA%%fLDiT^P8Ie&=a$1}#*@MI!gCv(3Avqsfh+o*AB51(t;bmd z_T&k7&}5~RGTsPE6Bc1&5qjjq1voX$+vzsEt^p%8k9m@Rk4;n1PN_11;MO_$j6Oyb zc#;>a$esyYNq&Oche)FU=UJhE8v&EO9miGcpIufFd||zFf4T=Kktm|~h%`-Gb1PcZ zG(m2DSF*p4O0O@)1y=XOc`q@V;_CG;zplzbyw&a4Me@F=dCPm{`>t!)J; zI^fl%=3!F{6bvm^&BD;_#zOXRL@JIW$_m!JL(_ES#L=cG115MY{{03O5Sk$r;e71| z64rTW_QOX!d5P4_b*s@E1JFgc|Kjd`B+i+$Zg5fGv-qA-$!o@}TV3}2NzrG?^?86I59>mHsFdVg3#Ue{f}-7C;ILAN*7GG%Z5U*T6^g0F^hvHH`do9n+ z;PDK7kCiZpo8S5T`2b-k$o4hG=S>ihcP*2uA>xGu^C`26h+XGxLBabgYZhW3JSrp> z*y{oF2ZqPa95w)FM`}J!uu3*KqBRHEG8(;=Qq48GaovDrtqBbmp39MqueI!LWhj8v z=tE^ImRH^!7L7K zCtP+^G!Tn`5nfzp*I9FRHk)IE1hli`?&HpGQ20QK99SM~&sF+%I~!#!DO4z{KkmX- zcJ>zV*JZn}2BTzJN2GO7Ry&)Uyhy?I)?oUQZWZnArpXa0`3^$G_QmP(lWgg(xQO61 z3jRg1Wm1hj1ZWrO&5?!_&IvV{o=0i}IEhj#;F?U>#YVD-*~r*cn(DX$nji57%7 z>54Q%L3*CcmG+JTELPqqa6YG_w>iyPs; z#EGv%X~q}7^a?<7F-tjKb<5_=&8^mz1};{2Tq}qQe7^I{F*Na$HVsS5>?PZ>z(47&xtm?h)Hwl4`1Kp;3GIcZ3oA%A3k0Ab8*uJr-Exw-*+yV89gy5#YzdkkB zcc@h}lCQ!fEV?L~dYE4PtGpt1SwNo`v)Bx~3>39lk^6NHo;0o9wq7Th7f- zdp28Y0y*$ONwF6x>iwLpG&Vz#HYlQs{9uUYu!X-?QW(!>%V%PD`F;l zlYXmXCq0qsB4s_~YGP@ZlG+YGqfN^7K)IY$4>bS)^v2ahCz13iv+&A6E!f7vM{V8h zhDv-MB}TcGvfAiAxlIvoZkdWEMLQ`%lk!A4m04{(Y z>nn`Rx!qGxMt9G&Dd9@G@X#lU&|@dy7dK#2qt>##NAyI80HypUR0(G$-c#N^?~W|t z7NfYfh3iSS3S;2*ol@K=x^k6f>Xkzv6~s_u`1!WzhSJZ5Y~I0Nm~D!513~X{Y3)~& zPy+$mbO7Eb-u8Ch!P3>LS~eCyFC&qbFs3TS;lZd*EIq<4AB^|(NEFvkL zv~x`zT3yo3I!+p%_97Py)p6_1#Zh~g&{xb@zrXICizGKkq0M2F+3}Ps!w7=u17OK9 z9wPJfDaR#)l2sgS@IlX26=kH9we~pR^tC+c5-kD-f2he|Gl2iWbZSk6o86)`r)c`( zP=d31vMFD)%N9bqjs251Eb~tPVoovY#)HSx5q-H1`aHvCMER3Wsl|>MxkHW)oMCcN zSY%(h?e>treOS3+MIlYIf`Zc=mmmQ)#7OXqCJ_y$-A?)~l;2bpA{voOhUe-U#>KCC zN#5F@KK}ZHLIB5dN8I@0Bt@Fro*%72Oj^%ThSI_7m;yf6zKo!|2jH8&DbMR%@y2L) z%5EPv)@)?Bm#!P8A^U_3Vi;ON(9fCmfE`%=wM|2dI^i4_J`n703|L=KCe4Z5Gu0P# zL6sWSH_oq`Nfqn)fQvta1n#;?ggN3n_~Et!3rAlX@C4RFdkmVo8>5+XWYdtr%i^|o^5e|uILe_X5c=bXo{JtjVz38 z?g95Nc52NKXF|L`KK9XPL1Mx3Lfw&ZqH3bzgn_Lg5UNNHahJiJ7u$+W9FW@-A@IP3 z1e6fhF9I{SYF=dM0zSG1bixO5-d_J-fXiwB&M5ZuxCFPcDeY;3tqE7cv%*mC&W{r& z_PzC1bmNEt~E{!c~h#7r5l!~;BJNu)f7{Xp3Fcg?p`b9%{TV1fhA+eT?imPQI zP_h(wSwJ$pIb1A|>wjB~bN<0GhHRMCBtlcbd#kXs_W8CEPdaqgH#t9Fa$-+VNg&SJ z2k^%GMRvvB6Ck>d@$3Dg6s`vpt0OH2ijNR7oK!smOo;SjK*lzfsiZYDnmJnmCSB5V zETVMV@N~nkO;$mGW&$gqMIptF2{db~0`HzzjXJ#hB*P<+!pht3QpLES;pDa$^Spgi zV*QVUJO7yw`!|=NGIpq>$+bj@H%sQ0u66Fag(K-*0Sbs?*nnzee1MxP0-HC#?Q|>X z0lE;1GRaHdwtG2beHQ8FcjsN z_*KiQ(4kOX8PbPZ)!z4MWSyb4;WQ>o&+b5dK{5IRMei;rJqGb;vJsI+X)!HQ zazRtPy=Vu&3~eVx-5Sda4!sa%pj(gqBxFPTM{CMd$Bl|bb-=QSJd$5%7WxjILW_wr z2(u$Prg6I33S>;Q4;Yj%gkqPz@3u=h@NqMG7mW)xk$4VQWRn01>j=Oj;%=pG)aU{N z$&RhbM7S0q6wqp7gU+>wV87`k(}uJ9M?uXEIumrdm#r)HLMASw-EkDmWiJNrvd$M9 zU>PU)N(?cXx!NzE2J8(Qv`Ab0=1us!_3cfI-Dmq-3jo2l&wtL0j7rmmuzeM=Kn52O z2dr!m4EubrX@~?mDzzfhiR%W39(qL1Y!$r*VsZMSYsg8RxEYx=IJ&}R2$G5@j>H9 z@^m*81N%mb(YXEl`Z+%ocuZb*u9XG2JwiQTZC)lIKdfDYX!9^Zk!&y@h3~vm_Hy)trb`#c3 zqY-0T9}yte5LI)}nG@pkmX#Ldl}IAoh;x;|uW4|}75)$Hfa6pBaw4;9isqZU3P%`K zJcgzMMpj02Vn1rfuR{z_>P*i-a2DRqmw_EA%{oT;7~QCyX{oD0-}s|WRjXI^MONI9 zVp})OLShMd<{f`+JI3+M4G@;D?lbFjYRzhfwP50ai`AJzzH6c!Y#2a%iqSr5=Ybr;-6CICCr}3!Y{8Zcf@9!?WZUUlY;|xatzllog5I z^tsqNS2P;>gjUb$_GIk;pBeyADfg?UR}Z-zfth>@h9>cwwT;d(f+44Z9wnD!EVCmU zA3bk=-pv#&yk4XtwBqK2hQ|OAGK2~Km1dWeTXz-9nttm}za$?sN0zR(5W5`jg2JWf zc?uy%Av1Ci7+nyIX9lIjTiJGcj?&J7NVZw|8ysd<8nAL#6-~@GxY=$^$u3X(x|vCX z^!|Kd-(YYtQ_xeMvQsC5F`*XzGoj>uv&>RnYb8iUE0@d?yzD%K_+1D!w!PUBu)yy^ zX6oM6$lV%yyD<${OGkTZJ!4X~V5R0~kP=*ZHLDBJ80-aP$Q7AP@hr{g+BA94DfL~Y ze^C`%yn+nIP>1BsdW3p*Clqxp(If@}+zu_++H9j{1Y}Z~v$tB-24!5_*12&X8xH*2km(Lt+V|6mYd31g49{2GwmHCUyuT}Lr7Q?2Q185Iwwq( z*Q~?5Hb{!!b`oXKY`~EXD)$^v?o>t|mP*+a>=&<@#%&LfVE))78d6x~?;p@mA3 zihEzSWrK&&TgYe^(U@e)6xCGKN~%6NZ&Q(JPW5Q%d4wAULu3V2Y}HJMSy)+vWhO`u z*;#J)Nxi*jaRP~5q-+|h(43~$*ve#|@eV>rFk5{_g>X1-kP>p=kdrInxF@OwHuRxU z69Z5a-)se{o?}g7%G|UCNr3*-JFhJw1Lk%Bfd~~%&D8@ z{t3X1Er?4HLr`cZileNMS`D!h+XSNDCNy@@$VEN-GK6w%)O36ojt>SWr{XmEPx3c3 z(RC;nBQy@eo!QPF0zt%GP)1Ie?pwd}$c6R|fcm3220jmv7QTfII9OZA~ERiz8; z{wH<%P%DO^balyYvP{Jc_ynm`+i|>Qm{ukBFp_=;*5bU%5*?AquMUaqo- z;<{B24|XA-t0!=fbn(|PV+!Pv%H+dc_B1kTgkX_KW~C@hRC?U4fa04(FU%_g9uAhxS^jD8`AALM0{8PPd!vT{Jn3sKJMIl4{ zi#XW1Oic=#1+q@D!`Dsoo(KDA8($pZjr(ZH^fIiO*c-aZ5VFcJ zDbcTDoQl2x1*MnmmV9igFaY&>V$XQ!dR% zyvwZpJ`g#;09|LqNH#v>gMPTjA$?%Tt(N5(OyOa12ct9Z}A<6Ufn1?*)m$BS{}SGbk@zA zYEt#nkVIRJ!LBmmeRy{#v?#|yH@wV2PiJ&Pv-hS*2PmO4`Ld_qTw@?Y4A3DsYvO((;)eZQ&K9F1F&{l( zhA_<4HtW*2R5usms$b1EypF7S5bo_-+a-nRt6W_FM zZKmjHS}>5Pa#Z;z?v4$;^e)lk2{hR%W^ko5cBil8Uv{kIiZv)@7<2;^)$_SydiR_r zLL{Ry^z)o>A$}4Qn&ixQmfKHLj9VoUND&HaeZ!E?y&1(VNp(3#CO<#SNc`Zo2Huw1 z@sEzDznm)8I$wluSfk*#E+}yZ{L(Z+v1ld@7IOWAu@sbM09WcxER~CV$zxpnMlNNH zyJ)tXOP!6xUito#DK8#F2~j{F{cw<1v>XK2-<~Ghve78Uk7&H2Dc%t>rQSn&wOc6F zU|bd=NJCE@>STI`i}-BCy4+UhawhgD$sDhu&cJO?MKki>eGlT6051PUSghP`mQ>^F zkj?-a<{p_iO>$$aqJ<~gFb$*PDX>pyB+xT6e<$KW|8!h%`EQ*`tdeqUT5Sk(ll9KA zw`A-QF4iS@{3?fru-Rmf(83{uSxh zBcsL@k&#>rwr)DGD;XfY&uVVQZV&8fNQ21^ZEAJJ_GFw7m5?4 zObXpR^FBE{zOj@Vi%O*&!Jf3d9Cg3z+$ToF!2)Q5;$ ziw6}IR-#3qEcuW@we9w#;$)!ZZ70+ID@4DBMG2IXoj-pNiyJaze2xJ+V8KD2#br3% z`$&tMFs<7V@1zmWl2~v`3EEa|wa_k)|8PI%Zj+e+D_AIIlhHsnKMz0i)!Sn)CNm^a zYQ9#TEF7&aWrUbc9+nwVysW4 zxbNN?7^Pnsm6<@siiq1R06KfSI`AjN@`>YOcKE7Gl5n@5Qj%3TL`OxdtFppWKqimI z<%1x)whhF};~a*8q$bU7ShnLrvwiidkxZA``(KDxiWSsMh+X(VA{0E1EW^_O3EM)2Y~7q&%9fQRj#z9q-?>?68+(XrD_L31xf)LlO}8x5S&tr2-bqC? zI2w}*t{G!NA4xErgW+NTF>BW3cXe6oPv)h+jX!AwDQt0Dcm z^yydfycg`jhBAcc3eW>W4yUkv;`p~7AK4miWuau2oIhI9b5CZ30G&)#@if|rtau1< zJ%||v&WRj?({*STaiu;c5+f5~QQhrXlH_i_5mUpA1qC5%XLwR;{gAXRnl;Z1uKB*W zY>xN|VnHP9aDsut+$hPr&wT$QQ|C+2;#FXl97e)yLvS>f_`G99U0P>#OVRyq2glj< z9j6k+k31{x>q$S^x{!`!Ws&6Ey%92s?zB3co5njTnu63C3gFqeF^SU~QAPWx;g(k* zlU3+HDb^{)(*X)qd%5qzPio9Mv`GZ9sX#4bW$ah*2U!Dn!Oa(XD>}W~Or@K=aNfFNG7Z>!=C8NtS}C}%harxG{i zi1pbgzv{yNl_nf=rn6b8cTD@QsqU{h575Xt+GX|?&w87^8&7unhze-(;Y|-ewED}9 zx*l%%*OC|sIXZz^dSFznfQ0OwZ5MlAT{g%eP*xjfWvc38-V@A|X1bgtDlm+`{ouv{ zMlFJpwfB)Oh@0-TcV+66pdG#|w(6WyB}1rM6bZ*nX3!3qo|~X1I<12e>`AL4A-Yy3 z?%}ks8AbxsIy%Fs!E|qUUfe4)d$p@l9F`|!{;Q2LGq3X<7$tD`1jHEr;SoH=%&yKI zxS{Of05#j%Cd zv4&-YNq=$&T|>ninAGxRL;QKkr81xXPSAt)L{*VmIS;hZ{`@J!3)1H!V31G_AfjE0 z6bO1_<%G8PeEpKg{e4X9ntI*#(RztG zuLxl)JQJNyOeImnFL#Gt8Z>3EY7UpVD=-@|^VF>(MM0x-TchXda18t%c|y`1vUHms8Y#Dx%IedFDH+EN*@xbUm4be{y(& zJCU)@(lM$WM-aGc+c9TQ{a8cxT+1oswJg4C5w!1yc?lPOs{={;`Pwj)h{T8(dMW*03QI1Q6(RaDuR1ZU`LR12W|cj`Rq!$v71K?K}I_&g|0^ojQHBhouL z?bv28KFod7Lop`*OfVg+qdQr+#31t^JWF$MtHx)ulneRsm!BC-Xh1>}Qc9JeQ$lY` zAv#Y`DA^_tIU7-(*oG964P_>6%L@3Br*W8dn8`*d-B-3MAzJ_alTM<|*$;5PrI2Gn z^-F+>F9s1pn-L54g)P-THSN-bbVobnf5+bV?*b>W*&!@*_{hS0R zo1jxTb}*)njqX?(a`z^5aWPviLY)ovb@QvNd;lYR8G8^DK1hStvrGw)oA$e8)x8!G zq`B}d)BaN{Hbg?N+oOdiQX*pXEhird=v@QwopjiV_iUp8_q<`t7|BeB{hDz)>;f#3 z%r^+zAMo}brBRj9g=4#f!XGGk*=QDI?1Ex8BMKB(o;D><+d_$nn4hb5Xh!z2r=^^@>i63ACs`NF?r-UTfIN}4MUP+ zj~hHvu-BHSoBravT^pzzJNwL&2+0w>lQ|>TpS{B33#N`rcGjsERM2 z*#%zd5I`c~^c`ikYyfw`BhS@MiT^;>!z8tzA6exvZnVdF430-5z#ShM1D34#JP|(X z*7s9<6<6FF`6e~Au^;Z+dfGsi1izIAFZUd+9b-~Xz{uZbis>b^Q((H9AdD!PcGG4M zvguS06kO$jnke)RZIl=0Z#AcP(NNZw>*$UKfW&&ae-#(pH_h7gBzyqymmyK|cJ)i? z$Tx44+24!dFnjRvL*xx=3^nHb>ScfBqpSOT9S`Ql9$_txr81k0 z>CaauJ6ff0BL}Y(k+%24u}3TS1SXFCU$r>o-Y0oD!vutpMmu~2*)!UdEgxj6${?ps zc^%re!&8zwVAK~nevudtW=mk%yqt_oZSTx->J5Mj2LKeCs*UlT8fXVBirU4XOF9sZ2eD$wAtSjs8}^82jEMr(q~)}h zoHE@?x%m{3IJFLGWSFV7ZGK5O@&NDafE{~NC*T-6tIT1D(`gl`xRffk<-zP;bSMg|{ zB^{Y$Y}yB=)6eI&+Jq5;LHZGW4+s4?_c{jzq)AB1-Br0OXsIb0Y!39>7UGG;{v7;A zM^d56koyqBm_=D2ZW4mGAo|+y=S}gsRYoa_@wru}$Gy3@mhQ%+*g=`ZU%2P%H-4Pg z{UkLpAr5S!`d+xv^kXaYb|iw5SBERme*nFwjfwn;;|5&KV2sMOqRKss$Pu@kp)J5b z5nx7U^S!?fC}u036zrDVv@gsiqOa6 CK4dgy-#eIFX;pjI>&$n8g`wKDzUjMT=-t!Sb5RLSX=vpjR1|6= z(W*l>(H`=};+z21gmC*(`utw<91mb@j=redyexOGek_I~@++-efND}?INXhe3;Etg z00K5gn49y~wlWB&!v@%ler}$5-unzjmICK-#C-pG;Iqeh2vO{JM&ZK3v~?6BE~BpX zl|E$JqIQ^T7r+n+WcQwx>m%mw2w}aAaRkK$j(59t>`g7G0ab?t;B<{({@J&ut!8JI z3w;`go_Mdp@xOWb_V_>PkQoFl)piU6NEG19BFSY!(K*v>P*C0Q!V`fow-ADn4lLIy z+JyJpxKLeG(C+p)020;sjxmM>$n|5Mvnbg&SGL`npnx_4+5J5O`DUDho_me*tN=1f zuG~^m#e=ZSs%Xkz*7!=S&gO7%;8F+>wU6N%=f}{ZYgRzmqpH+IXw$a1p2+)_#vo~w zd-LWriiYV`U&`{n(7R~GuJVuC_tJPxM@7)=BTJ`sOfl8!;C?@X>4ue--qst#i+w{! z8DC-+qUUmC&62q37zf|#g~k0u1T@Apy0yD+H`m7OYx-AP|=mrA(I?nc&tm~W@(IE{jk~u zgB^C$P2I5uXAHDE23sShjzn!MJ(07~NCar>w%@wPpNo^do4lkqyVij)5h2bA>GRA^wfMVxh;TU!qm9*n%R_)MG7!T6@xJPlbJ|IGx96Yu>0b)5YX{ZS#()^k^MwT!QJpNDtjTb zQs!iu@uIuu0YD#D10oy(jz;B!Q%*oqbGBN=2Umw9?|)owtTgQ&o2<>v^F3f5i206@ zb3#X*V@b`-lQwr;kYr)06$OVOc({|ImlPk)M#U*5CZR9s*8$p)woHzo4tK_pz$GlQ z<<-fc%?q;hMWX%@|E2Y(3%6?rEv}&AF2J~f@FQY-G^9BTSRbvJxHm>pX-jgQT!Y@u zHKZlxI`%jMj3(M+Eke$T+1T&Df|0WBXLxJw2r0u|Cl+MV8r z3w@dM(eM0a#jyQ27mp{9htbOtK*R9Bi$BWprpKSXaV z?OBOs*$}s8aAN-74<62!%@ikyq7@KLevY8zK+T2I(#UMq)8i8XtG07 zxUB@-hMLAZnbMpOOL$#4Kl&hrydbqlo=vmDb*aF+9@6!^40-#vHMfXhso}tP36Fb- zqW8XMnzXmmW}~W`lz8O5zzlb5OW5v(Jqvd9=}F2Aq7n-eoLn!FYW8{Ypq}ub7AKoE zxnyKM4w^$;fX+SiK6DnEB^eoD5Cyk{X1V4YFj8|WfCih6?1GPMt=L64H?67mTxKCc zBkdA`j(0W}d(|;Y5SEpcz%s#YaW(1f$MJ}_)znMw0JZMy#epd(aZ868hTEtkFf-}f zfxVWDpu}S3BFdCVlq~_p9ssZ=2RFtl7%JORQ+5IeFN9}pO0#~{HId(?_eshi2+#pb z0?jRz>U}HjyC$}7AA)^=m(8-zq@!~D|_ud^$VMX zBF2U`uTPd#XroVTmHnEtHImnG9p*pd*w4k9#phwU>AD!khn={Q#2YJnp^U#)zd)Pd zD%^pZ!ip%MXD0;SA+Ac!fuum3eKyp_6^Jmx=)V~^Hae|lc^W`7SBd);eZs#h<=asD zQ@T;Op)Fj~v_4ep8?D3dxHw71+o?QTSeerIpjJ(uu>viv-a8IiLTSlV8EhU8NNxs| zT+ngBG7X)UVv9%~_4IR|kL*5~yF!ZWxt@RA=Y zFcnN~uxMI^Ky)k1iN`!}H)a!m1Y(&yg%11`Y)%MpFgD+m0s(zliW@RGmEXiWC!xq91(Rvva+a% z2XWfOJ)s0`Bc~AA!UH2u*0QJK!*Qxs0feYU{{aC+?kO^Z`ODi)DlAYH`_|xel=RLI zeN464wh8qIJEv-FVLea;KC8YYT`n1QWc!J0b2qRDLxSECj(-*gYqH2U$#J|P0rV=O z;@J)inF3Z+A9mV?bM22ePW}YPNDdJj=EAbj2qyAE--yDphmD7sr(vZVZdW!pYr_M? z!j;|0$r05c`=%ULR$A4(JnAp&iXMBFB5F$xQ!L~8GbX{~7euK5d%^?Ra zQuJiLB!In$v5P}Vocz8CNT=1QxhtqW7@)gbnnLD;2nw3@upw}?z$!Lt{-#(=;^VvX zsuf6Q;;-}7B`&1JQx-=w3zb$DhrzzZKdRTjv4XUxalGfOd|#J4WvNsX(T(I9nHjnh zT9L72<+s|cr(ISH>T4bIrK740I5RxMpZ>Myzeq&nD@^m`Mtu8cS} zwZvg~qmD247t3vZ%z3uYCuL4p=Z z#%^fla@@1-;@Z_rR23bd&zKz#B_tA*J z5>HZ0`k4lN3u);jr0G&yaTzur!>pK`_qFdGVzHV$A;sx0*7UG(FMmG(#^OQ28Y1{2 zxc}PRB+)C&@>_%hOK z3pR-`CKsTaHGi>^*8U*M;x9wDCedZUX4U}B=)rO1?62Ua-xOKyba8Qf1j@5n6CB*R zVAi_M`&8X#DAxiF2YZw|I$7z|JU7POU+%vVJ1V@O0G$8f!#_fHg_hUCg_%*80TQ13 zl!3+Qz-t30v3#!bF$2-4TTOO_`WYfR9_IR{fcwssoaQ#jqm*vM38UExz(>0w|IaW& zB4WJQme=)9j$LR#ryXOtq9KTqOt>1$Mm(yGm|6tN>Kh(J3l#iyCMC5-2zlfa%2j_e z)-p0M6`^3U1tqU1SX>(3Vp{|t5kwT+$zuS`DL@)jKEf!k${nO1K|b}zH81Ot<0<&M zn&jqBw>tB-PTspmf_mWnhA>J4+0%oF&It0GtvE6lQP9 zk&AdCHV|9Sjm6={C)(`X7>d0C=%G-2(S;(>uXS3wduSNLAPLEiqKimM%4eJn=O2q|vx!BKFzF#y`$!Gl+R&fHKBEid z&#bubH;g`L=P=Kc)Abnylqr30{(5k^G_zp3L|Ca3BAh$9z^kY^iIrhGrlCPK znsTNHN8)stXZNtYKvAv$1XU}g_7>Jr(3SO@Bnt-!nIgy!!{Y^r5fP;CAAFzWOjD`7 zqD!FEZNF17Mh60m{*Dtmv$=OfFQ8vRa7RzvvM*Ur#s9S4ExZ6~40)En0Fgj7#sI&I z)(BhC=}jGAK-5~v1>n(PKWIsPdkSgJ81iJ)gb7jGbd@l!)#tC?(VAJJ4JjEOVB)}d z4Mf^V1}JZjjhUSKaij|q@5nlVICn+V-_gnHP`1HKk}a-hL*?Tj)hcb}mS2$HWj#AE zpK;$l&r@tQbJFd%k0(OP*(ehaKP0vZScJ7!{kcEPy6OADjabTLfJsp-ZmB9nzzaXe@YqMlH&<=ulCDC3x zzTDi@zW|3iA~ZM=;uU`Zq+V58wb+pr!D$^xzEX%k1tlI|ffF1p^FBs=!|IF9bFo(@ zan(zj%w&T^f;_%&?Djp<#=v8wFS{ znlLiV#1uvpj1>$eG3=8Za?V@n<;P5_(+{w*qn&}sqKm&|Cv}y3^FpzkTT;7X&BsF} zS>$P!-++DduI*AsZJLEf5wPAg@Xmb0PL83**MKBL?P0_tvV6N@A*vr8G3`zedR(j0 zxSt)KDha=ix+Vci;tRG1uYv1!jVn093Q8O^G{?%du}G7wI1%1m%@@3^eR>3*cZBK~ zN=!)*I^v2*XtAl>dWJw)N7Frh%P4>aB!jgJTU4Mv$oQ>Yd8}t5@Xc{Gofsuhc0(C{ z6|Wu?SIeoLmRTG>)~)W^Ws%Js;3w@t?N)HS%w8T;ZF9jgqRx%ikW*SeTs@4#W@ll$ z)!pV!%2Ju6+}=tev?c>GR~P{UU?D=FSt`eno;7@>!CHC%(y8Vb?@JNVs9$Zx2!ONH zYe-F03K0I`AX8wGu28m?CZr4iivAY+R_|F=nE$ZzEXa7F?h5$7&CxVXtt8+zgB;^$ zy=&R=s{VIj(#%P`qls0H_@<3QFhzINMOpi7aR#MVRv~M9>fJO zcr_79QdW;$%Y94NH}wok%=-H!Yqg==)CsUrR#D=nOOK6y;~lDeVRw0ouD2&0+97oN4#SgyE*dfvGd(91-g{GbL*j+gI?oB5XWsiEK zcTjTpwPfI?*AFK-qr&E!_G6`7rALOeJ3d8iaqHuOo6grV@l1L!YVMGU7qdhpW4J_x z`~K^wrYZowf@|j>4qR+m(|F)v@1t2r1y#rK89+K^bAdS=Z3C2 z7F#w`#lkoA#wX3FTq;1;>|?iA_Dmg)bY7XwW#oy=n6+G2Oh#FAWDwl)+TRP4JELIa z8hhha4x3KpfH*^<`pN&kougM*M_TWRitVYfs(&DQgsh z2W#TU&cR*7o7Sx5P9P^K>EMBKoGBM;FINSTqFGbnUDD|~1PbG(x>OsrI>Z%cO@kTX zoNjI~njFP>aCn#sPsyY+Hj_*w4z8#_Qb zqg@licI(M6>(EBhWD5wXsGe_Jo8}}3^5<-eTK|j4qqwX6ww%2u<`7N;^w#~x6GXF7TFISr5CKr#um_Pzl1eOE|#r%#is zlv)c-V27FDl=H~oZMd8=9l6VK^Ffx=Fl;mrcu2op+1=d5F$~IXNATKv2fyhYSr{6k z)^Jvv9aOR#l3o1K2^}6>$Nf^HM%510MjNP14mA;==KaAu+#GGC>?$yFryx~uxK`I8 zBU6NB@TJ(r;n^|9hMel}d6}39=haoVvkX_ikSl)Y%N3e#aM3&>1ZW8fLM{snrx{^K zw6tl!&bFZu(hGOByg$H)5dYzupk{t3cpWoPZQQAh9HSD1BUQABa8KMHMpSCZ@AYhk%3(!89>5%)d_! zF3a#xJ!1%gvBR}08pnsL?`R4W(wV8O(LhFMhilhJPTHY=s1_IXN}$4StauoWugk$s z9Ks-l{xZ5&Y=*;dUMd2`=d6Jh#Bw44YXj6{IMP(~ut@iDNvUe7nx^g=SQu-yXI1?@ zj#I68{8ZysdeXE+nGq#;)B6gEeJ)DWlOZjV^>!f68q+=SBz9Kg!WSjWz?Z2rTuM+> zHUFZqH39MW(u)$!v8{SreKn+KPntEkh#hdw?_AHQB^tVuA@u+%Jj28f7?0E(!LWs9 zuRlreQ8BPWDPw6`yc3tA8E$7+r&Y}uB|XUly)y39DJ=)*>b2|tmMg2Uv%cF*Uj8;`>Tqe<_*)o#-e)z3w3&Y2q-*r|m%t_Lw zj^6GT4z0H%F}FW;8lQ$)BC-Jh&dJ?V$htN`3UHPIK#-)q*cw{qOXN^r|4*@FeNWLBR~T zZfZ=LS~QNVxHOn4c|MV@IEL+>aTKL`)FH4h)-gOxZYmFQ-X%6gDF31V0?O#Fy&mpUGAC;)c(l*Rr5f)oS9HyUXjGbuB>LDX7liCq22SPphRdOu8oT(I ztrzXCchTX40cn*y*GB`TtdwV25aw6?sII3}lK7#jDe(nmbS?tUI& zQ3*PJ4w8INTyV1@5pd0L>Uv7O8>Xh0yi8QPbV`GV8D>rqZ)@m$0p(uC0(fw zOR&vj;7vI&sq60tvPku_5v?482ypx~-C|fX8a7@{NK3%bojZTi7DG8QbX)2~E<}}W z_8#MN&4SLfgYnICVbUigaqWl2l(4$+r&TC;7P*GUNB%^|Gxxb)g*$i{x@&nf#z;mc zyN`U=;#kkD9RKaHK?->m?^;jD`}BgK;PK|Z(vOG&aqHZ5Vh_r;NT)$=Q#t{0`CK<^ zXqO(zmVGn$+oUQS&Kj~hhF3Mb=KVRtvf7P}B*mdfK`|g7rr<>{nk$RQJV%##uQ=e@ zQ-l~rOEw=djH@Zf=K`(L2Sb<;`T5R5>lI9IbP4&)`{dFNN6i2LS3s!09RkFjt|ASN zH7g7p#ku~ZVoz}a9xLkk7LtWfT8ha^7ZP`1U~Ni^E}K{g4`o$wo76lE`AO~Qkf=}W zXYvq3yI7BgrT=Xu2=u9)q1&LPm_$n_r~{{t!3W^3Tyeu3`a{6iY=n9eU4N86dVAOP z(06~Kl*UVNOEM>*`NzDULO`cxm~BJxO8e!eR1mzz^Uc_osm(C9MUI|ZTva;iZff18 z0Ow0i0&+T7x1EZHE<1^Tu4YHGv1(;D@^ziJoqeB(WgDEgMR~3ALj-QC+_0&}uy&+0 zEJ2f%xqabn+?IYA47b)C#JaR1-7brD71^!P&y&S>K{yG^ZLakF>*sbVfVw+2PSMZ&J$cLXdKfjfz8io!oF42n|;VVt>5Ns9gRYUBVR~{Y)#E^ zE$=>x+G#46J;cx2ABVuFzdZ7r?cUTG<`lkh4(RE6JZZ*`oGCsWLz1g^sfn-oh%5zJ zOCN5lqU0#VDM3w2^rH)iSR*-lJn>om)65tS#VW^=2f7;}n5ibqRDb4m77zL$$E>f6 zUKyxxsjQSR(#{+ZB08x%^~QrWbn6hfB6VHbEV0pMZv!YHHm!q26gaNuv;HGCYj|gm za|gWFlVxm=QO8s?Q_-%(Q$n>0L@A;xFT!D&BXFDAOMgbpJ7rGg7sx|c{<3B72~Ex> zT^@0fcs0Ln9|Gs-zHrv0b<@p|Jjvyfsq9emC1FpOr+ej!jF9{XhoVpDOo91*yv2C$ z0>PX|nao+25?BOAfQZt7i-*+CC?!E7JJLbOF2+l|obiqf3>R&BmX?J$>CtD>OAAdd zrgqRM5$r}_D)H}LY}MBN`@*mq(UWjQOnNBg{11!eQH7TiPoQl4-s=2AoGT)m*nO#Wt()t37aM|Ds@!2)=0XI3 zm(W52*AiIe$74Y&Alberr%K49tRMvoCc$@j-AD&?zD!&ia2EAD7Rv}LpTDE@h%PiL zb>n|j){p-P#nmYJ_6>Oh90XbT^VXy+IHb@FdT!O2gjpC|w#=R0MDi@DV!ydDLa(?h z1~$p(tp@%GSUaz+Rih#G{`TZIfvu>y!;7nl0wo=lFrvvtLu*={cN_d6Q6%X>dNLpP z0N|oxTMl5hoeoh&o%|sXA<}6Qqt==rlYjfRT$vVcBiK9&l+Hzxlg$2b zUqJ9#hsWCh{iZvtO zL{WRK!!=lX9qAji2sWZJkIrQA;6aNd3`!M2MoKe;><)9pn1RiloQ3!hNpN%VrCOb% zEZ4wn9hT0sK!-x1pa37Zb5UYQ{TgPVa&k^NRGIQsR$`8B6UsE#2lT^?iy}Jt1l9t^ zsse@b$&Tjy-giNXdmvVQUXa+o!8kWQ04a)dN}Y3YpO4n`xn;}RNEN7De?;+M!$KKGb|I!o>slC!+%Ac znXD&~Vu4^#Jq%&-P^8INGn=UVn=YkJZd;qYhxemP;!NwJN8CZv8x6G>W8>_;+ioQ6 zjlzEjpNr+DA6mqyZGDEGvQ6`hea^CN!%Gl~!1DwE-aV~k%D6C1UESTT(1 z!-rZ&w-UeHX{;ljVnD|kfVn851WuIgb!(LxksR=;1*Cr-l&T1jvQhTg_{pc%dM~(F zeLi5PH5{t}>GeMlp@2^_PDugn?QN`bhGoS2yY~uQ^X0WdwE()=L2KjFs0Z?A4G~m$ zB%z!S6@Nd3KUKS}#(f_5xV^OeQ?>Ss@QYss5q>?W8cHqmDAqTUNa;@KKv z+M>!OYRH;*2*BX>CX+du`m0jZ|EyY~6mtQw25msTN3<{>R54%DoY0HH=ddjOO;lyZ zdqWZ|h@_4&Bd>d_5P9f=%3+4$tdUIPAk);QQ@>!v`)uKcblep|Upj%_zmIJn6 ze7$F~eNr1}s-7j6*W~J5ptRL)MF#hxZY{;u5;Z_+U zc5FRanat%#PE#*hZN3Y7VCzNznE2vb$fce;+7mmNhqHK1sB z7SX41@YTdnwW%dk%19OUB^!D9^$ZmV@E#;O{CYe$~1|$ah1-E0N+mUd)BSx-ft+gZ) ziBu|;N+y%ZblOf_icgQCIU)iP4|Z6qtJT<`bO=G!?AWnmM=F&{@!-LOM~|(0#M=Yj z9+vjid~EH#An9_v%u@ME<3NYaWiAD;_G63w6o?g|ChNW^2R9p1mCBl%6{o8}<-~N5X=gSzQyZem(y)d1~ zP2*S)S|MZ_d@kJ=Wc8jv+4-S9+J|M{&yG)h&3gic`qcl~@yUJyR|eFL1;8!@x+`A> z?8ff}8ST}Y8@9WQb3Te<)j3+~TDEOGTu%>2OWkhXxy$G~ENLp8oFl7-#>VDRj@q%g zKPskrY%$8{MN5wOxYzsdi>`X<0|Wp7;9#3VI@o3h+mz8&FIOrLJm4-zhzz;8c~p`Q zOfbO&)(I!Ha*7nu3Bl#s*f~DRMcCot*

    )W5h@aBpf;7a{&N==#P>}0+1w0^he18 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

    Y$+$jBBi9<1fD&+Y&#NN1S<2u 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%0Dt|l1fk<_@+2>aDxK^zlvBF4=b|J#!w zCeaC7hmHPJi7xSLr-%7Mo+3JV)v{-Om-zRMEMQ`fFd<5FRApq~9(?*k`}#=3|BtM>%qQ6k>U$4aO{Y(*g2G2Q)5V7qLwJ+sO>= ziXNc@5!B$jrqrY6519tM9fDJ+z486v^kruK$0cq-Nu)rAB4ed6?s>C1l-p-q>n2&H zLz!O2_@+^qOLKPyfy<91Tfsgc8?m=J@9$oe0~TTdQyFH1fplN4B8Ep-Q#(zp+=|v7 zGK(M%$Sn|p63ido|7HKys5hR+{h-H1jXqC)#u*STsWXKO&U7!a0H@pKZ-=oVJ6M8; zza1OxP5+Qbb9;+B!M}#U@|eE|>%IQ~g+O}0@4sY1kTJ^>Oi8@k?zW}WQ&bDpI`6jv zuI~cB-MU4xIvOKU5jE!T=Ka#+J11%%x>G=ghD$v$U}lss`}U?gvfUuK{&{78&OeQ& zL3ZfQShLcV3p!u~C${S8?PEIHMFn+9F*HY0TY-TXRiN^>3%G9eD23}=M@rXrCR$78 z>wW7b6<}V(yLCz!e(My@4R}|=0V3)hLHK%tnq!6e|BMbXv0%PpfGsM!(tbu4GC3qV z{IyJN!{|!ih6Zpfz2>aX=Y$40B=g>+beg(lk5By}yqogx_m`HT$+$gUDb35LV;VnrXH)=%8 z59MI&$yiFnRvz0sG~JVeVzR8qTw%1g$cFDrj{A$<>gBMH5H{eRMHPbB){nW4yj)Y_ z4I|A9z=)`KJKI?cvhwac5tZnw$ggcHti7KO$6IeGX(*u#@(0T2I68QkYgn=}_CXie zr44x?_@&7d^#Y8AVc9*7l#8HfDKe0B#B>YJ;y#=Em4ZU+lY%e~q{7F}R}Pfn_Gv+b zEzUHIEezS+_1}$|OY9G&Wfi4$O11IqN7fK-&K;4p(a=|qY3b7mtr0*R?C#p)IC|tpqT16nN4$yL|5v!R;6lH|7 zE`*N>7jy(*T0?WT_+K8#6&*DMu@pJ{bs|#M9zDVWfW(lib(!&a9NIOo{M=Y!E&(&? z6vs#lzG|-MKrYjA>m%2uU+NLL3^FL5e>pisVwZ4VEWQ*4drG9BJHocc;+jHc0*m)M zMLCd88TjOw##QwWHI%1G*iLBJZsX+UoMA|$T?rC*?qD`faRsOsz`LI-dB%nty#UNw zuM7g(`NziuC~b5OuG~%Rd^5VNkw(7ODy9<>bXh?Y16@MoWGZn~%ik243KZ2+RXbC$ zo@#kyeXTG@fG&QnGL^O%!1m^!f2RE~8_*f7$eAhW6Z)JS5B>vS1)*}gjcKh z4r`Pv-lC;Yc!2^SQ1;X>2Vl`fkRU&Ys0xadzXI`DDMWWI0HKwldxgSJCQa!+a2Hcr zY0@=tWCAzp6PM)NcK?<5Z<3FLGAVVC(CNL1vF8GO#{qwS8~){H61c|R6M*--IL1@D zCQD^o^E9hm9M@M0xT+Xq0k!-@e;m@@Bea!@umZ2W_EG6kAkbFs3E@8D8NnIj@B5#Z zm~hN*yBg}VxMf_;?_tY-_kYiN*T6?g_%jG4%ar%pz~FX>6CMoC0-?tR$hxQ6Q`1p6 zSlXh?>r8-pm_gbG|2#Qn8sG0AsVeImeS!3-#a`U>ewCdnv5__+dDegDF@cTk`eY%5 zaUS<-x~F}J5#ey-!mz>Ef)tRcSnAM9Kr;v*($LOA1Z+OCH9#$nw0&P^ViYy9cV>O# zC=llH#8;HS@FzOC;~OuZ?>uk9OMHs2nFpU0x5Wl#rzW$k4oM~It98b=GXn71gDBgyI^N}--Z+4UH@LUib@D!UdsKgJLE*z*MyI4F^) z9k>45d_dsEwEfKlY-Eqkl~RVt4R%Z~q2R9+NjcYTcxhQAv1jedGoLsr{{>|!UTdl{ z+7DfXmzOJFP@{kR7i=@uYAxpM3Hn1mt^)5S7RSo13WsubaLsH?El9Q?e^}t6c*Ok_ z?a%PC#GGLmj7oz9F()d%vgMW&+vq~#T}DpU=&(7VO%oiw=sJEgb{ew zFJV}bI6Hj>Bp?hBtG*)8-zb@{uV`VUD|N_iEOf}~dJuj_bL3CRj&~~|t4U~dJ!@#5 z{R#^a_0};B;v?c%C}llSX|+<+2GzXqRn}rv>OWRu3zO=ejU%K=!UQDgm8LDry6CWb z>XNh-r<+OW$n)Q|a|N!?yZ1*F?&^Z;ERJ->hE2upg6woeN-w|@L#L|I7R$HIkO}-M zn5)&I`OOR`2~=SDAexR=z_P*jmp#;jnWGaTy9s8*HVzJJLY#fMRnBJnz2U&7+fKld zvNB*H0>MHwis2p2Xg7|#izcPieo8phk@NQ1x*V^<_VGN!Bg!{(mdqjvAZ^)FC)U#z zlC#t`b3QagCfKd>K;7}m|AWh);%GXw{l(bZD0aa|29Yi~;_2OWZR#*9LUKbck;hL( z(m#p(S*V}JUBkNL1m#hg9~y191=>u&*gMM;_X{gakbCBzR~{%JL41~^9dQq3X2h?P zD+!|NaExJxvN zvMj^a2tDC?6Yv76XcRD4y-27VQ~CVxYE3`|@Y{#l)CK1~Y+PRi&#m-l>)eOo1PS(L zM>qin9+eJs5H1uE9}sz>KrA(=5-_o_pL`b=bfzuB-emO&7b?Iu9>}&10JDkB!+oru zMa`rSk}bRp=~QW5E8f6F~5bm*+0lKcf^{g8kZaQM8{z7!Eim&ott=nTI6UU!^FcpWU>z3S=;DZ2}q3Lu%V`Aj)SA^Lb=ex|RfWenMjBB2&1zp-0h5hsedHLQOj#-O11C zYMEy%55(8Vt>MRZD{}7Ue7}&(U;ZG2J^M%ql^p6mpoDMof^d}v zlnWDD6v+z?IE!+h0`f%XVkDk*(W)9(`YWi)PKS06 z@R72my!KZB#9pKnuZY5WB>s#j{dhwYTAQ(Pnq{H79e?P9j>I0<9 zzD{DV~#zZrX!eoJr*11IRSZGg~IaXa=HuSodR~YOr&J8q6)z~=2wR(}^Xp&W4 z`0w8S3hp(3b;U1OGz(Y68%d47!fMju_~5cDl72?CK|ghaJGg!+@JPfJqWdoPyF#OybpEwpicB$$|E4%H~p`6U%`w z+s$vVJz&y)!X>>JcnsMj@008)^?(Ola^;CQ#cu^qibnrrrdxha(F6*5oyx#FKd>)grtaIH9#0XQ3h7sILg-1 zFMe#Btfpq+Y`;E?Tb~R5nu>n)1SJNWnya@WVG80eeK~WMp>uqHO=G5tw)m!yDEQ)1!6?u3!UnSzifKH1*k%u zVjknlf63;EZmL8Qn)vr)h}Fb~fkr(>*x)QuzXfbii$HK^^?THp4Qy3oJ;#;_NPozm z8`43bSL*sQA8THB}=ZcYO*P{tP8quzPh zfW}!Ot7X7FQ*its$z9Z;`td~Ye7WFBm<{1Ha5j*K?Oz+#BydMgK3a10D1!_GBFlv~m+_`ZkS+DUjy zFxqNl-GcQXd^@!Dvz`GNCaj?Z>HM54d7T>$?fcU?S_XEL>TDtj!eB8g=(xD}%e;Ux zz{bBo>>#pLmGg%dV$N6RQ`$@3G28m6V|cM-(MQX6F>vwqn@8T}`ZvCP*oap3OkT1Xg#_fNzuTIvg_pI+hos-Uq3C z?7$-9>1_}Fbt8ZU!<|P6<6}2GXDg|ut)4Cd%SXEs6?E&72qZli68rSZ4!lBel@2My zbqRS^gf%aIF?uS@z~T~neKE#yOsR)Hk&VTw^nbI*ozY#UVQpkk(@^gnNj#;9y7L`|d`>3QYuVU}+5H@(+4e5t2fu~;Gb&Zm$8hBvq;|B{3S0tXv zJP+3%+_)g`O!XIsEYe@Mi?!8{Z%jz;y0YRb;%l~1A5o?SdIXFMEurtw zYesIYMdhDWI$MP7hA{oft)l43zAsV<&%y&qS;tfUZp+gYr4rvfC4`FQYbf%=-e*9U z?N2o{x)f+|ROm904ceA#@XBl>J6JDFA|KyL80TyYWt9omTsZnG+cWIlc7!|)ygeBX zM56L^<+$Shx6sJ@g5CpkJk<>UZZ3`Xyw-X3|eQF=2oe4%`5 zv@cB;GvuJ7Pw6wNj(|Yq*|UmGOpKYc<}j{dI70eQ(ye1*j2KfoTpnFV_=@U*Nd9f*_F61{f zHnq9XjorIvnYs9lo}oLt^+a8ur2pYI){=y5Bbu=pZS^pSwm_G(bMo||&d7oGfODm} zfR)_R@QnR3unFJU&}Rn8Ke2hCKqQO58$4IxtqLGg=zwIMitIbr4LR{k@ioEk&}AJ3 zEmRyW`2^%8q_oBhH&=t!@3chEnCi!Js^95~>f^%+<%TO`>n45ujQ~NI_kEa!)8d9C zO0rt8Ans9Hh{y>OySU{a{EqCwwMb}vXQpGN{Vk&?(|_CK>sYFT`R=+K!-!CIiKZ|utn&{N@t;C z*{C`9u^WsPxY@4HOiEd^@bp3k(sBdh>Jx&sT$Y^^hjPT)&hjmlATeO!8P=Y#o>L$g zv&v`fas@38-QL>njLuQd<3k zcqw;5FUx|FT?oi9mf`mz2R5OT5lVVpSrI0e;$)VQaPGlQo8luNbc`A!cS9Ze1*QHKSgaz*RMm?}+; zNJ8V0kQ5*Cg6-ST#&>_VltKN6z7CIfT2s$$N*?>^or-IP z9QuP($lX$Na$!FSRwTfk+1oGT84Ky&{Wz|Q>glY6C?`aC4#s)oZ0FKwVhrUL+D)jB z;`(-=TP-9QWI34GTV%V#C#P&7tjNtt+X_dbu&+&skbT^`HCUpt?N+EX4_toqj8jE} zlNCrakto56#rAX@FuL+$3N5DOgVw=i{&ja8X_Xk8{d>6YD%J5u`EF{`jYx{}Qn}MP zBq8VorzT6u#amm){MP7RAl8wybzIbYr(FJp$kFqm>mk3cgrhJ+hxZ{%9R$kv>#c+VcA~*n z0-l;Tl=5nKV{NESq5?`QGF*S~_9Qs@C;T698O7}w4L+beRwC>>4>obO$GL_!^qHYA z6%ua^CSi674r&R8@Qn#FM)Mob>yh2_Q353X#N8(6{@-g)7ybcK&&VP|hug`M^Jnz@ zeTWBo^&Xev!f))uftHu?q+6m}(g254zCbS3)H4_yhGD2p#(lmYEUL$N$y;*KIzw)sn^(osxe2Wgr%B$BW0q z90PK(E+p7aq_g;WOmzzEgbQ`XG6gKRJ2eA$ZTA}zWY-E=k?m%h!F4} zqDN(P?z5xJxmaPqGTDdBzZQOKLX*K4jm-Uq+WZn2;pVp=c(W?zUkt3xUDc zj5qm76MuNn6yOvohOO{ncgxK~Mu2e*8=J79mUtPbXME0j(z;nq5emK2@r7N@J98kr zpaJ7y5qu4y?VL!P^j;^u?7JULuPfT)9=!-kqYrTUkdA4>AxMhe1Ei9~;{wlEV_elo z=IG%#t+FhB6s4llK(9Y0r{RhOGCgD`?Qv`|b)kfxm%fbgAR)kx+p63}ATDb&eV(oR z1Yy;U5RIsN#&v=U+jildB41cNmZ@tjr4bvCXNV#DQ42G&^56FH9(!+rr&43^20Tf; z9rumK8YtZqh{t1T7HS`t1wa3AMFwTZ#7u6rH5pajr6g2aW!9lD{$_<@ib6jC6k{=K z<`-oHaC<{YoX!WncKuxm5d4;t_2G9s^gjAY_^Qh!4T&XaV~_=&p(EfKy~1&+Z<)DJ zaJJUd>Uuq!%bB5s0_qQbx>h(Ja9<~&FUX?$89)<)xKA%;F%H?@a@G5qWjwB96E2y$ zseyADHiZpKmdlX6pt}7D1Scz)x&8C^`iAS4HEa$FEn`hpdCCLvHI-&i9LZ|xOrX%h zrm24ZgilR0ts6zS$E>EdCCgnYTGwi{L|ui13tx~WIwVV%TgfV7#Y9pG)iNbAB{+Fy z3es$t07@J`B=|#qMr%xndYxz?PVUc<`-OkH$Alw+MVGC+ca_k#Ula(99%WJh*>px` zcGP&W(^h8K-f0XJ@oLPC;)4oDhLUuIhnMD~ht!JCENn-Hj(sD@vy+1NW zONf{}Z1pR_hm^yqnza=SCO*`adMO$rUi8svPezxY`Rj+3MR-Wak?gojckARGB2zI| z>*3=7wopX&Z3-GPhppN42d)6KYbuJXYX3Qb#R{D3|5D2zl=#fR9%}VUVqq9Qr7$NYoL8!(uE{Bxv(N<*3S;yH#pow$RdGC{|I_<}n9rs}n z+N-4OWUX+J5_c^905_uY4Iga+flUS*jN8}2EVr6&>6R{`Z*0R)%B`L&yK&d(wLH$A z2QklAs6~(pHp!R8$m3ddgb{_UQ)~yGk1Z(B)IZ))4#{LZmAJ z7h(7FU#!Kouvnfb&mHjOBM4bw-$1j4d_TfycQ^PEihkOQeugPxLP{|loh(*5gC)|& z;}Kk|mO+AtjK=vd?qneij9en!rlZdnlk#MHQZiy|O+ui4mVi-20^mpLg@M{R_C$Z8 zRLlc?u8mnQ#hi3UD1S`UKXDI@6x)nLL)>?36h9T@jzSk8skD89MkOEINopNFmkDAi zexXVb`wK0zt+|b6_^bxpNPy?yYi0!8)}bHc$Y&j00NLz(d^`r!U7=OwCL*mCrOV6? zT!hWwV9i;mbfOhObb&Z#g^?W+DrAmML+*B>40GQWeop~N!?y?M4FZQt9g0C}U4T|S z=af)r19=n~k+NQ*2s4PD=0Pos023FEWGIP1kMD#41AKOMo|w@W>&_e(2$fWYLozcPdC6&%zxYV}9!e3f+&1Xqv`=_=>^yUxAU+Cl zybQ1{Ro_B;TvDKJ9_grH5>+5=p_YVGIOy2Wi@vF8=5kAs4Epyzv-vd$W4yu12z_7> z@KqEH1;XM?Y=}7T;n}uUbfP^o>VcuG{KQa1%(@>Fix|9{d)s*?s1-%q9v$n*@UrQWxr(?q%pR#}-Uln@5I8 zxSsDhDjp=OiSLqUjN%XGo@M!0CVnv!*wdbmuor=yO<({%#LJvHSm5?~)9@3&maIX3ENJ`)i5aYXF5$^NSEX&WHL|mvOEG4pcmg|TKIiH)3P3rmE%!UapzWZ?AAYrRQzXYdP>E>4P`u# z7&tj6ZT%+JB7=~k&4m8JU>X)A^5DAsI!I#hity^M@vc#FhwFfFMS}R3Jzl~~KM>In z!3&(ZB033I#FWrzcgur1U*2jbkYH3{7oT@h>z}qYP6FenWuh7|SrNtt3Mk-;kdwg?RsF;uhqJb8)msq2} zNvRO{xAq8nYDH<5TKsbE_1U=;4J>4lt-e1@M$9wV<~YRxrVw_5n_cR+NhX+?JR_I} z{b3Elva8RB6bAi$a-frW59T}BxL7>my#bpz51uDZ!!Mm@>o_%s>(>pud9oY{2`0q| zef#XdrsegI@3G*CF*e=#q(#$+}!Y|8ucGZ9d9BP9ZurcHJNSFYL@wx zDJS}`*(-x&ggZd5A(7Da|8I|76T!bR=Qh&piVn;KA9qV-LpQcGV9S$iTgxC`Hp;i- z<#(L5=dWn*7Qi!Q2Cu?8ko1%rE#3g#32(GhS!+cZH%PqrE{7)4^+d&pA1Na@rr}tw z;~uHdxT$fDUwYH9^f$b>E%4Lp6%GqKm@d(&?Agj2Q06#=I!DLEgfTQy&ow;KbvdKw z(T0}evB&kX7;I*w>!#|3qlh1ecYMvBb&~LN%&I&%mTzs2!x?(Fr$(K1%d=+^?iRa> zK-Pq?Mqy`KJ|b`)P46+kmAI}`53qXi+3k@cSQ8-c+{q0?bR^@)s)6(XoXP8+PriY{ zXcdoINX9B5PS&Xz;I@XokD&&E56JqF4+CM*bx?qyaSxby7POH;K(+BJZseHsp-mA zw;M{0mjLdO*h`=I#mXn3*;laEIe`W;P(p-_m=#Le<0itGJQpN%*mulJJK4YgTLJhu zKEcek=h&^i@Pp36PQ?5=XKX7N0Rb~p0_?av1WkGXcHZU`v`DdvJRVwf2r#30h}F%d zL;y~UHOUgbWxXhb!`uopxNo7dm6i3lOC8j;Rga(1p`aZV1yeV7OPJ2(kc^C3oL<&H zAOFB6HoV=Hln3rK(2u-v?CJ-@gy0zYA@|rAbz8mR!gj&rypfXZJ5Qa(hMO8T4PYD+ zI>H<<@}lf=^kkw$rgdlnq#E1^ao{xALL9;9P=u4gV9+#n-RLM=kZ)CZ{>S>HaDqG% z1fN0oDs7MifiCj)c$J^M!1e^nxawXqAMT~5hEO4^XRhBtaLowYD)N>{02G>xZ$b~M z@NVujS8hP8e^T|0jl0>PRdKAD$_r%?*#~*#ki*_C-s9aF#u_cABF@1OJ5K+fXq){s3A%U=4qom2_xpBHqaWGIx-1PoijPQ?VV?w-ai@%!_rn@AYutRE>GeHx!vW5h68 zD`;$F~`w-=v8OCjj#%wEz}^NIZ7EH!NMuioxr4e{Baflp+?FHm)=s~!AW(K zc{GAUVV^;`p~|%A1u?w%+Z!z~LF6t4K4?Yy5=anOuBHQ=;Pr|#^{(g%I6f(5inTEQ znXgY-aJ~~}n*?oX`z`nWF4TzJ-J-MrEdp@;T^xcIIw=8T_coB4ZGv{P-Qe53WeTzs z@Dm&nOG&VKVIg3$g9;WU6!}LcU}2hpwd@ouluyJN4l4l*1?&(Xd+g3-QOq6%{tFc{ zF$IAI+o$H@$<%DHKqy2koisjJM@|rWEEV!Ut6>BjqAQ62l@Zwy?k$YO9ueMN#OSsoIk5FYS>qwokA9kvP=EmlH; zPWVC%D`5d^rdS>YSHejj0ASNBK`K&+f`i2d&=74*fXFtI!GWK^PLpS%fe0T3hzsnE z&I@6mCw`V!fGS?CLReF)OJrf>$W!f5=d%z}Vg=P`5^||SW&LEKLDYhU{H(L_H5sn= z;WxEn39U)k=aixoQx$|wgjg-nxjGBCh+(3FQk4%Z4=n|Vf`AKr5LhF81tTzEXOK9o zWkAJeu>wVC#3BN04M93z1Cy-hvjowr5aWk6A=nc}vQo#6l^0k#RU7;iI~0U`0)S$* zc1#H=P4VTQkRaF(BB6GOBrr>7o|q7NL36{B6(K~3KWtIhJy|6kfk8f=#77j9L5gRJf{48{?Ea1n6@-6K9hQ!k zEa8&{ayDot$}Y-T`5l=wZ{va*9#EFto87Q2BP&izWe)HYez_rzSfKAaEDSR6!U%%+*)#ze{%i;$o(lpnte9TNX2qakg-~HVSDYWV3kXbzXA-Eu`p{xP zlz~TszXC~4NG3}S8@5M~%{@xec5DYxOVnoy-%Kj5Fh_l3j3|%-xh98znKoccu)qsM@gF@TBNsA%| zK*o_})5wOs!9|-tAVw|>Km-tMkwrTZ1P;=E4D#k7upz@5nWDklDwDp-ffzzj5~9}v z0>y76f8NZQ2Es25EU`{LJP`)DV#H=}S`Y#eHOV@Gf=_sdR1mtsL0K_1Cyeb=NQf9l zjuG2~13566>5_h!s7Xsd( z@MSix-cc6~Y>x=8!VYf8uNz~-d_ZbHu;b)m*cr29J9LC#8i26_tm)t%Ai~1$(A*KZ z7&@&N9Gv|5B+=&)o3YdaP!7#NS(k?FQEeAoqoox~#6qBJX}mX(IK&4Em|TV2rVIzHFB7; z($;(vJ7z2~Eg;9*Y2XE`M~N#Ng+r0|n%Y*11{yL+!p$$z!$cSY8W}8+Nlb_!NMM2m zB&CmqA%OAmyntcL#)y0vCp0Vtz3HQvl;Wcn(yX8oMtFc2GZv_VPuQIfg-{$3Axb?! zKo}+f6_#$A6@KduniV^-k_E#>#?%519auL-w%9dj?6Xh;WOHQtTSuiLC{02_)YsuMR^CaNNmH;M095h7~ zo9Kcmq8I_ZummYBFzJXP#+m`)vGhOSCa?=dqy^e=z|Dw-iGFf7{L=|Z^)1gp$A)FuwsPdurZ{tU<2;F#bVVzt^B=RGE>?0u{ zi9z0My_B*D#N7&w-VviO;Z2{P+}kT@MHU|p<;swi4xH?$r2)Iqe27} z$bis_3Pz%or!>n&*T|yfj946WFeCbSD$i8}ON`=7*e4=m!v?}yU&c)fA$_TM9x&J= z!kJ=b4~^i$Mxm(8MlnFrhf(3*=!hvH4j{%q;!m8{VnYdQ25Cy@0*yVPq)I6)C5h8R zzUPQ=2du470^Oq}MrR&`HyAMryRal#C>j7@d0lu`ERh;9igbMz1|$*{t@+_c9Hf;K z$7dH{G=+_F!_QwSqbQv8;)gv0gp}P<5#@I_0tj8;1I11-z>Kg?qeeDL1&KrlmS#K< z8=Nq#KxYBz&?DkUEQCRD&?4>`Qpj#H2Af?dA?_8bmbyUE@r9aTu_OXd;WvOHwKojO zzlDIMca-JyF8<*DiBbx0nFR1Q5ODSw465_DKP$WdO=e-F9H3Y%VJZ-d^uWkk0IFf01?~N@gWRZXv2i_0mz=&f|;;zF$;~*z$H2nFcv0YW)?y@;YA#W zo-B1?Q-dW#a)4N6gg+Jro=EQqNTF}h#zuHm1j)3R6 z2f_e2$c0IOKmk({B>02_Z1A;osEO@O7-PjYMe%qj#$xyvTma#Dh#_Q&FjM0Jpfltn zaar_nx&{d6m{IgP8gN1U{(Bx7WO+X|D0&mtFolN3vi`<&iZ?2a`5un25gEXNWf%3n zY>zE?-U%gBEY+;=5yb*Ug(%EX!s;obtgxZP2fGzzWrBgGfPZx6jh%Et3w8i4EWZM+ z(T9YbSRceKA4vl?qLna7eh55KF98OL{tJaPB5%z3Qw+HCF7RpK#de{kv4)GK;l+%I ziwgomhZSU@chVN1Yih=2}zmVP)# zw$AlIlz~znn|5Y`M*ukGrC!tsBbmuy^%pnckrowL7h1Fl)r5&zDkU<)+?1T9APPo5 z!a>1?VUUPVFuhZDF2A8VL$-&xQlwkK95euor zAb=?aF;qTG4xFh^m=~-LPAZ9Z)+n)MVr*G0f)-gKlD33kRP1>c%FtjFVBr8e$mT~Z zGsBrRL_(R!g;34{AHX9zVL`=L8GuE+QWWq*;84X*a6pU4S{(R6X?&uZHNIctfDs!Y z5<`?@$Y#;7P{Xv+kz;qbK+Vz)QhlD%87w9vH5@-C<$y?p1%GTL2nG*S#s+o+9Q1qwOb3Jo9Fg)WPBiOd3Mnj=DFTFK2snQR3rIYo8PeyoWRTcGAPOu{ zYRMs@eT_c|HD?c2P;$_hK-+C>1Tl@VCsf&N0bx(iW6ZWx#)cdOtAbHAu9MF ziil+Q1QA~~Gi90hA>)5DY!iyqgjp^CLcAFegLuKB zJT?fFFBLaHfm$N^C}8i5u){8(fKALy99bnJ6H(0-Ec?SE!1rMy0^29j6L!d%<#lYF zY@R%0_D%^;gi|!IfelwYU>ztR1RDYrj`54rEu`*~7exWY4zeIQ-!k|MLdI`Zn zC}$P3BuxFVT5MdQ7a1FbsERjBA4DRvW8x&TF29GUPkmPGqP1YN{008m?FEKis~9Swd7 z%q6_iCjjdK6*Ej3*ogQ<`AtZK6gnFTP#+Zt+-MQ{>=0VQffq@B1W)TD4}5%9p*O`p+FqX0KWy98~Qm5KZGStuuKq8@@ts* z!Z=H`@JNJ+W0SC809)rvPnZE65FX0|xv)_WH008OGOcKVfn7nvif{_sp3sLiMu=8IxpXS(Mf2h;Nc96woTl}zs3LHfQSxJU+tRP}# z#il(}h+le8guogalbu9Oh;?e%2+?#9Vf!%U`5J9lSe*|Qh*4nZU;*_pK(sOi0d~uZ zPq;z&c>HWnhgCmP;fc?4c!YD`=w??lw?i->48iRg}|G$)Sm3(8}=7 z5ip2WYXVtDKzv|A0Fj}v14%K2VTc6n6D)>akeh777*ZijL(Z^^qBOF1$~^Hf7Kw#- zh^POpSt8Uk00wX6B8WK6OSxl}x3B59w zMqctD_z-+84Y2rR1)nW|i5jev77ZQ=6L9{91bV!dDlJ4NjDYfE6(;cqe!{!JTE!t; za3KS@E}9W?#3Dg~5EBYWq(UJ?ZV+)uWC(u@(pemEG$A$sNe~^R91{Hf5`LmyL`(93 zU@Q>o7~+XdAyJF)1xQSufJ&7rF(5@o4G2p02!PV!N&=XRHLoX^j8o+qqhXgUOWFUkF3ar z8TdHnLN)f`a93nr!rNO76T98AR(mexxZ_gia=2qHAKKO9XUDmYW?tg#-tY)sPZZelU?q#*t!}>2X za+^fVRD7zrLVr+-i!;<<44imCH@$ei=p7lpw=$QT zM7OfJTep_(IbK$Id#mZ~w#I}SYVJIIO;dM%Ird#O^LXp-_BEy8zsZuRC9tBJT5`Lc zBw3m7N@n$*>#2d*tE1~a@#XD%Gpd9Kc6ryAOF*WH9%m$w$J&9pqno@s-9j9KzO74^eRquc9tE4xgMd)6X>eFZCXiRP5AVrF2tV=Xn8>IO@4 zyS=F;xZO0Wd0FdrQ*$?Uk@W4zH>vk(mEkTvkZkt4?f>>3tZZ{L%U$l>M zc0;1Oxq5M_A3uKl`0?Y%)KrfiJ$h7CRaI40MM+Ij_3$xTRgG3ZMk^{Rswk-`sve^c zvfGXGDiyrYpoI<8{6F7nev-`+XY=lUdDpw!(X2_$*4ql&8|31qAqsi4SQZW1ckwTe?6?zp_&g87Jv)r@8%J*t4YM5m}SiQ>*VnmM|& zOuXBsk!*ImMNI|sk=sqh>FpNm+QjN=hTU%H3W1MfU+#7@Q+E-~Gn$PAiQI0t8>)|d zb&fNVj&-}KJKbs+ihW~Q-Ci5b9p78#o%L^7kUW?Fc17kZCjTvyUHUJ1E}vNC)ef*zJ0Q)UP&+_I&44tu z7$)RMTvU}5*X~hOQe5X&c~ev?j5K7b=2G70Gu_F|=_{F6C_=+Vy{R>g{HlIO}%9y4`NKGxx6B?RJ}5(%VR~8m3cuy4$VB zf=P`<1piJ==x?KDsFJM3GqV`SM#v1@0*X!Lj(ge6<<2rqoS*1y#Kh!A($}!vDuz4O z+O1-!?qwopyHzYbR|t4}EIn5Udh|9Ds@_I2)!Rs?o(Qt7JILn>XhsHDx#fRzALl{qXTMtjfpNFdsg?hV}6AHH^x~*RUxcU&Ew)d<_exJIiaV#2d+2 z=UFQ~R|q&ZlAmZXFEXrWBk8$9AXegyM9eCyyNh|1cq8#jcUalQu@SAY%<&G@JIlv0 zmyctvV7jw{>CWoFtxRe)jAJ9gbZ6yq=W=HS)18%{Xt5G+B)DTO)5KY(iL+E9RX(Q7 zFiGYkDi%|HVx~_l_aKqJztl~pf|V%NR`UeB%gI*niFH$~8|g?&G7{x0hJCz0S0j*qPSatzzctRhC%k?qdJ{q807`zYRkGEDQS|+W-I1hW7to z3~gxt|3xd>f2MyHESM~l6`7R$3nm`m>c~yqS2g#1ZjO6SO?!3JfJ+CZWLiR=*~s}-kqexFF)apw+P{dU$Ps-4SCreL-gN~HN6N~De`aV*os zSv_4r*2^(XF{Q&7GCzthM);Y2vIhcdgt*agy|0At+HLW+d)nUCn1@E;XrFu_R?q)7{0o z25yL&8 z;{T2K|3v?f=>HG>zoGvx^#6qZzli@Q;{S*E|3UvR1Q7o(=>G%#{}2D~!~X;N{~rGT z&;R@R|Fr+_^Z$JQf6xEx`F|e%e~16q;s5j8`TrdL-_HLHb!w191DyYV^ZzpZe+>T* z!~eT+;s4vPS)*o!|5qW+|D!pB!vCB3{}cY-g#Ry7!vB*IGXj|Z|MLGL{J)p~58?ko z`2Q|k{(sB=Yx(~y|BvPWul&E2|F81@AN)U+4*q{ioEcsqvBcGpIar8eMFH`R8Z$x=0M6>MsL@bufBet$gsR_w<;e~N;uEv<@!>k z`-LJI|DV%+N!|15>srNNM-ckYPc&ce=9pA-FL$)-bG$gh{3)q13X116*r76sViWH& ziEbm1_M0yU*Fl6P+tPH{MaqPR@c#kTs|1Xrj z?INXSUr+lk*Xr(A&0YV0jmf_t1n6;AJNGe0L8YcjXe>w(ii+@4M4SJ=Lay$;>2$Yq zoT8X40{8E`-PBy-%tZv81~T~nvVTE@m8ttmwZ!agBtL}7^uwS>YVJCKGA{;&5M)pT zx$}(X)ZBIM+$t|e=9Kdw^Vy3*0RZvIaW7|HF4(oYwQBCY%LQ{~xjWZp4)eaIsLrHT z(;UY=9?WJ~Ts;Hg!-rIA<)bRBYs+foxZXz6+a|}oT$%ZbJ1%imKBl-xo$k(gR?8Ci zsN%{bx>2A$dG0|XSna^vqiRi0+<88A=eWmlugb@il3+JiQuBDa%<hXC0x}iWwG||BFC#f~@9JD5;XIQhR@oI)^VueIlH74t zvrH3b-ELUu*5LwuOk4FrP>c5=HAX>Y`&d|2X;&)vLnlZXt`>|K#D<0`*aTAY|4~w7 z6ckk1)&yN*IWI6UBt*`=&7H63b8qv99R7a@6z+(T;PkLDG&mxRQi8FP{74bjaAx&7 zA#Mo2wD8ADk;Y~(7!|Pjggs&lyc?d&iG)ypQQ=AWVkANkY_b{ckw}%phh4G)mrug$ zJ^)xdgjROoJ^PC0nUdC9zVa zMz+uk4Lk)wh|O=w7lN|uik zFk+djI5wyV%-cFnZvg-<#2DzD??L52WCApk1RX$je!E2VZ|nhOmQ7qj0g>|IV=AAi zD`{;=lEd0LlKbEyB0?&S2>pr~U+e)sN0xN5SuGfz*e*s`*d9t9Yyop*h&#v>_$N7r zI0NmDErKY8e*g@cee#1($ZKe1(|k33j|i?pHeiIP5OXC&=ps!TrZ9rKter6wR@6ws z1KT5r7vcsCtgs|#L9}$^NDG@L#f#{*0}D1s1w}$NHo&l7F=~H>L?7$p^7|+dz+oXc zdlP;@0}9I}Xu~_PHeq>y@erYi0t$;kjv}uDny7CPtcg2t31QQ4@KH04SccQWL7z8*G~)T9%Cyj;xYG7+4x;qHGJg11z^d z%ulkx>zhCc@o_{Umdu#$h+1l^cw?a>?2XZ)q6UxR`*`IM&t46yg4?6JvM+4lNTAIWrP}>^H3Pm&n1Z>s@U2GIecz7y0m|=o4=!-Z*%6%{$ zbP%T1`LWc!e6firaKZMV^vHJoaAM_3JoBP(hqv3;7*%%!oO*RCyLT z@c1o1Xndgt7KvUGK;g4EVZZ{CG4>A}@fBV-IfET`$^b8-)&pe?0h+*iA+x|Q>Y~7(5i-brfWp-;dV<4- zSY8(D1sp6HD?j`U4EVeXjMB%!iw2v76)=y(&H{FKMZo)EfQDrv773jc5!y$3&WPj) zZbA}%k%~Y~#0epop=U)2UK)fka7(B_Ajq0PHmu1EqADrKuV4d6q;f}*{Tfrm-oSwf|3}MI zh$n)ruhkHMy>QM4ROA*iAy7fs4>+v@rsjeUbwtloUxzh(zj)SVT&V z1#_R4=J){Rv)rJ-KjQiDWCn^vY{3jahJ=sUWXb@)qkcRu!EE>!|i!NTu;7C z5M1m8H5Q3JSkUjH$RKO;s9=}4LxcFkp%ZKlWOp#tM2d!x2)-fSwTH^N?1f_BNMWC1P%H|TX+cNkQw6bJR&0O z+JT2nJqSVcz>fxhM~4{U8#q5}WGT*LO(kIy$WbR`;eaCS5IP+32GpSDPdJan8c{4@ zr%)s0Cn?$e6(%I1l-Cmqu_Bp1fchh{fnvt=rYT2g8_y*%kQ!MWqCg6(z+(0nm;Qc=-^l5P2eiR1&|uFoo4e(AXW)5?)CZWW9@bo7?WoB>q@#6&o!|xpk3^j{Pe@D5 z=UDB06DTh%V2uiICx}rrV9p8l42_R}0SgD;gAi8X3>S2;DtLQdgEF_2?v2`s8`f<6zdFq=B~+?_p-gOK_{J_Hi~9MQq1(XkUE zpyurB^hA+{Hc#veMkoqvzyOUc;$#y0mX^Q6Vn}#9hz_V8ls;i zydV1#!ylml8XIOJ!V8R?JtQ2!LavjCzf4ky7~rI^R^(K&d{!7w0ht*-kXV^lAr4PW z1A~FZ!G>xXh?0SgLST%|BD2^X#PWnc%s^Q_kMO7{)MtvYM*)+T1b9N`&FEng(Hvk4 zC!HlA-U^AaR4cqZ9voO~4K2)g`=j8;tN{~Oaf6>S#3u&H;m}`M0VNcIg7twA0fPl1 zN7qZb8Y8MQczqLH60lF2P<^4UBu^%SHvgtk@5!bQLR^#@rXNzQ!d^&-rLjTQ+Nuy) zN~3aP39v4fNIy1s6<7rjptPhr0!w(L_Q8^wA2`?@eh@)C4RK%*SYgJ8w?B_Q z`4H>y$>Duyxv+VlG5(6C0ZZo~h8QicZKB1_Npt{G)jD$NjPi*h7|0a z3E+r)M0oU1P7sNFZj3&M0t}l%V&b6`5ev-#NMi3i!ur|+dY%U{l0-W&0{sd+p0GMR z;$p``Jv@>f7I+tKbRik92n#}05WmET6zhoT$_g+1@OW60LA;Yo;r3g}I&K_V{u@rAgY;sZvMh%_XjglPmEdiXzm zFbFA#;)cld#|_g2Fu<&zJ7yM$svIE@ixT)fSHef61P$?*XU1a?qfkhOCW+tS%Z}wC zjvT8-PAax2^TtY6`qg&BxQOE8Fp;U_Y~bj89AqL&~9goe`0?;y&Fr5RXMAhOY^QDK4|VL|wj!dHPU z@JN_rXuCkrE9zQf6;Y}3Ps}v&SPnS-jw>vD56;iVx#EC$V}Jx6M^y}aV*~a;H&G## zl%=L8FvgHmfJPKscCxYb2w}7r-#bVrfDU2?7556XaCNSAy&p4h?gDQ~z zkqt&Xt`qRRY>Rb3gg2jK3o0C=&?Vo44GKH*_RmMk=xHIQL}+~qlX1wqfVfZg+otRK@tdh+%CZKITM43 zhe-r0$&B&%MWNq9ToBV3L11enkXa#!-0TvO6tGXAkjK`L6!Bv#jCn{tG+6>bQWByq zgCr|Fs6k_RFE(vf&k3}1Tflvk&Q`kT_UQhu^&dr)pnqZP*O$T;>9K5^% zEbOcfG+k^T7#6(`R1sLT6p%a)%#lX`3zywGXsymNuv+SzR*4Gb-++Y%F-WekXCF9O z5(+jp&{zv=q=_U}l_C;;X(Ay!GDB)9w{;`D9g#wGz>b;l2n|t)k?=4IOVII#iBAnk z;hHKJECE5Kg@xdTkWdMeHg<^`jnEH{iOqw=#|z;=1lt6Pf$&N!_aO*DMoa@lgvBBQ z5aF2*zAOzFNO>lBKCpnI=pzP#k$_#XfgCZCqaIJB7vs+;@yCv7u_F4g`rxsP5INB5vfR&{ zcY=r&R!8;`QZd5wWFD{~?&(O_KmkyN0O(X$8e}Lv0DVroM1~8#gi*&6T7tfokRO&$ zu!qTpqg3R;gh&C}#JMzQGcYpr`Q_1nF3m@-`%9VsFKA!LzBHxU$8%p;{IIW!Am~5W z=3j&@D=(`e__o@4E^{JSN0+RqZ_xJLD*%s!5}&>v3u?KXxRyHa?scV`m(_qh;IIBL6vuw${t1Giw%M$iK@+>cI&pj-S z9?K5@fBPDiEh83S_Kjire;;4N^8b%&+|^88b@OtOlO#j6*A+qkFuF9@9w$P4)T1tTRTYeKbH6IuUZE_6O(A}fW?$TQ^x%N_{->t(KB})%tvs+d?c97 zcrcsoR-VgEPKlbrB6AK1{Q_U(08Y*{wHXIgIMC%DPID>FzFg0ogZsI@ZYhs)QsDfT z`H7YS#!SU$R;BR&FE=@c8_OK~!ZOFcbPIQ^g*z^}nv-y>Ze?-|=X9T@sLH0OaGQsA z^WvTN+h+!>hg zKdPCp-CTWRNixu7V1?pS&1nWN{>O6N<;rjNjYUa&v%UN6e6`>@HI;GP#n=}wZY zM6;MKciwJN^Y8MUi`1UH_#cgYEhs}!$GbkWuWPKa>$`nFzH;mfM%92r07Lly(J7_lN>>{L;STUm4!T`kDO>IIHtNqB~vjEm6GN{XRXZxnuLt!d?xqiG}S!C+E@9w)_j(_-;Sl#LW zyS~N={mA*s)7|-1vjjZs|G5G+^^ThU*w@{=y6;o&nAB#vmKS$@pL(dq_^MG(f^g!2 zlOIlg)KWyXbjy!u-rc=>yRD{|Yc!u-6R#-tx?`EsbgN~MuUpMM6qimV&T0?U_@esa zCay=0YJ3JwzHWV%)s)0$dbiT_$Bt%>l~xfNIriPH=6^(Mo9zFWd~Jtl8*_D{d+wF% zd9$x`eYQ_D1GMQ!)5Q92lg)jdkwYDPwou zzCrxETnA0Fcb_=^nRV37>*xW`kGmqvCKWIY2N9^%+epp zYX+lcL7D|<|0GWN)d^2b(i-^gCU{Njn*{Tk6Nc2(>L!fci?8ImqWkXh?%xeMnI>+! z=x^72EPBr8&85ca&AXhlZ>&e?N3Sfh+e*z}PohRSNK z*8t~1QRA)fKRS73k(F81JeO(;%=+ft9eZPLA}~=C$%ZN7q~?)y=Ds zipV-!)Xb}q6ZBk})oey?(`rg;#c?3^x=&74Q&Q`F>dI=m;%Yuuj&2g?WVPNWtF!yI-G<3*A~5 zHKIy%FZ3O&cE!Uv-KVH3DXyj~GB4>G)lpSaTs^8*T$PV0C07;rek{{fFr=)4 zYnr%LMyX6Ul{?P5CO79XvTxBs2U80hiYr2KiN!xtjarRb3>=RG$m3`cqsE6ZYz!te zpKX^UzuZC`4f8f?5PTCJ}%|pcR3S z2$~|0QHwx;2$sT_XcUG-Ei8zzJ+-hnwJ%6vZo=05PJt&$R&Fnh&$GOFXjgi>mFDKE zfysGYuCJ+1Nev8tMt4?od7p~Zz-ZLIB>k6J-Dt04-bFWhe;K_`x6Eojx7aRMzLqQJ zX|B{~JjZ+ACRcN3uH0uX*iRDJGY96(Q{88-XRdB^Yc$u(1%Z33`z)uPyYrR2-Fm;X zT;F>aHASjtF8BnSxfADIF6~OjcDage9@^!#WJ}HFT4o<9R;u`ylc0E;uR69gIog$V#3 zxzn7@-5~|&D4C(=>ewKNGFs@EQdW~J9|7*u%}Y%zEuq65mpyY`=DHw?b-U#>I2HtM zHB6`5YJLKR?yt-By+Pns)Bks2<7-(V{O^78;PG$w{J+)nWp;9(beM|6{w)t%>8Wx7 zbBT6!rKieO;><-l@p5u%^=*ooxWqZhzuh6Ic66)6If;+#_~hEF@111y8g;skbN800 z=H1H8&vaIz8(8?S>0K>n|)&=zWL^H z%+e`VR#=iz%|UG54t3Sdc_uS@yTY(?PqcY+V~OT8H#%`_gom%^rprwXg>F>M8uuDwBuavtfwLusEd%AvD~QB@%GI|u1>MUl#C^Bm$_qg?U?triEp|4MfFv4dimY`NyVndXZYq4 zpFIb$kIdYLjjL*N?Pc}yt}rYWn=7fiiqngBof?~D5Z{h(F#9?;vF>Q@JH4m6d0k;x z=uX!hipj3Cy3flszCCoCm*cC;tJ;HVUY%sVeZQ+_-|s%@I=(`LT-_b>sP9v-r{~Q+ z3GT@A%DKL!-ejP8zRGOM@qeV!}l_&#Oa%ccakZEHh1+!U>r=FEMhxRq?>(24ivs}-;oy(2t=H1`zxSM+2>8m3zMz==w&AOwSd1~&w z-0R^n-N^Y)ZxF@W*VE_aH=C*M=6as$=BYV|&uf~P{Nng>oqZkMDc9*bM>X!@%Xvn5 zTFqy7_nXy~-)x4@+}FLsx4fu|v$=PA&GuQjeLbJ~0=t?!iFdzUVOV!8Gha7)pLl6z zjqh%oyIbbIQ8Vn0>RR41^KIVU?|E)At6g{G`abbXqWY@)b~3B#F1z}g-V(*8x$<(! zgDAe}<`$5-969p#&AzVFU3_`hEm3vz^yS(&cE{Z|clQfS41$X<$2#5Z=8Ac_ygJ3| z+vMg>_q3UB-d(=#PW^Rp_Wf=rb(z)l?i`9qb^H2?N8T-Ssn52WUY+8rBf_~EnSEJ& z-2L1t?*>(Tc1=_NIB!%}(#JKbi`<}@rg-FJ(o!o2mPkGP{=T|3Uat2;B(mD${3G;1}dz=_vKD~qgUOx%uv9n>+5^hbaCy5o7xQ*YB$o9-5^c18(VBN@IR$?!>o2= z>~?&g?oG{|#47fY7nptehE)&Moa^&)4U7U}h3g^3!>MMY$N$vTvExeJv#e&`V~m2z zrJ6aEnVz}{f2~HF|6!F%YK($He_P%8IQG?QT;ZyL)_3>zGP<=m)-G4EU_KJeM@n6;V!Zq3isq}^=DJo>IaYagY40R-1*2;<&P4oYqOk{j^(=qY?Q^XkR{Xc%2 z4(P9!hmQ_{pZqQV7y02IhX}co(S8Z25^6qBeSkFd+{P}%>@}^rfHBLZ)I-2 z|9>dk?T#0SqW|&QfWZ0x{RPBl0}}OPX|qb>UGKDStEtTj?cdbCpVg56F=*=jW&6?S ze_Ykhx9qa|K2d!FahXwl z=3Ljn48&({cMilQx_4zRODuJ7o$DHybLEM1>FzmHn>d#`hw3x;%P6XU83p1qhw3wj z%WQ@_N7oz=I6Q!;-WFt)2igD6#$)f$mD@%_KZ3zfyRW0}f8^VOF$&6w>UNIJCMY$h zPE@x^qgYU2#(cI+P`aQOanIHGW{ z7|V20Qw^lq8c6f#&h1_Uz_Co%GY=cfbU>sUXd26OQByZ2jb%D+X7Wa!9;(e$eCBR| z`5QX3eU{Z5QMMbuPaAn`Hn#lRAbXxo8&PAKj-z^8FsVfMj@L*-waMe{-0sx?Q-cer zd42n8EHIYo%*@x^?kiq*dhV>$f8o;Mv^<$}5 zCmM&*c=6i;tOe2*0H%AVwgu45aW-$q*|z`#wi$W;a}TTNK5a9o{M%-PomlOmdd5{? z(m&Ten*wY`E_S=&NX_xR-NvpIu=-bkMOorp0))mgT>@>;H38t>X)d4PZ02kUgyqT- zCxAds-8dXrM_|kUj|g1-ziN}gNQRvr$Fj*#A|rQs`##~0wZ^V-P|S9K9E{`gw(Wo_ z2lz06kg9|D)CQ>eHz2hcFvAuj&zC6QI0o83&)3sFTa2+7O*R;UxD5uFE*M<@|2vp> zm*?H{kv)@Zxz u>vNY8k@EPdZ^~;dQp6B1^CE(b_=lbksY750%T-#m#5~cE@HF! zd2FhgE9ot{-Nte_Cjgx8ldVSOYh*cF&8o)Yg&;DYmtZ7=@ID0tewUlR(h zsT0G!`t6f~jWqF4l={hK@O8?_M-rqyL5;BqwcYlhE^ZWoWnY%aF^kH3w&*s=}q z=ttdE_eEFTeJXkO^`O~p1GHI7bd$CLwwUG)vkk!YBOV(-#tTp!m zgBaDg^Bpd8JebW|JhHWb^Z&LMTOP&P)aovmwiZ5Hiy^iaENmz$KzQMQmpE^SuO|J!UDn@#_1cF0(!v)LE6Hv+Yq zk}A8d$}S$vX0{LeG{q-YrANGLGtFwHGEY#stVH&eSfIIgtzJ}5!Mpow3NTX)`L5Nq zR5y=@FN#X>2&3D~J4{|F>b&ksVdi`2R)4{KHCB628P&Wy?i=jgH`XSKEm4TA=lyN2GV?VTMH3W4KtTnH zAWtCi1Rmb=4#m3YCb`aPkHCxT2%6d4T*vKQcMO^)iu3sdmj5yLaQZ~pSNWLAO=UA| z?j}9L=h}32>eiJiCb=%tzBj4O|BsWHFLCyLrtWC z3gR<}j$Ln@Uap%M8&OPd6sy+6O_HM0+_!J^rZ}rT942Xwq@E-p|6|W8&u3=lr@3=S zv5ME;?c^$kt~Y3E6{|ZvbI(t-*zGo!dpONKoH9X3Wuk>Y%WB$z8O={L$KkHN)OGKC zJ)O~9?%^<0_wtV8@)Ip~pYjtemg3BHHASUlceLw1S*>K1pC!q%E132K$XP_HSl2Nk_GhpDUWv;8>B{ZR|`_W=KFtT$=~!1@9VN z1wA@5mg#z^&T%~w;JG$Uy;F0T5`souKGPh{yjXu6$a3ao z5@NZ$8@o?Qc&YAR?p#rvkK;yE8ilDDMRlX5|3)krDPol8{~2xh50Y3V_nFJ<#mG1Q zc23ikQPe-t`~vaG^&%+#f7~d~!9`&fkzJ1SMtKf4;U22ba5nGLJwsxWE^jt_sOCtd z8T-2R<>{+41JeaTB1J-gwYWHTL}mUHp^as_oG6UzG7*oy&q_4&9K<+`;sCf$SGOCf`401SEde6nn1Vs= zuNwqW7$O$`8TEDiJ4EPzJY?qaHqmV6a)-!%EYlsjh8~S&Izwvy%Y3_y{WfZ7gU@Ch zkC}1Y3r%`{eH{BtT&T^i(3V1JAsIiK=88)+_kJ18>LoPk%bZ214#!3ap>foRWdB7({TIQ42qJPgTt4xa4!hlgT@%4YMAZN2BjW#u$n$@@ zjSaD7`+h^D;}9}X+%$;L9hBzBL1g2gE5sxr(y)ZsBE*n?AzlQb$TYQC5O97Bf=Up& z5i5u$Ak^J~NOP`00Dr_kH3MPwU*Z!87I}XOA|wdRsCig|$j-GC6!nj8K`h2VZMK?T zRA0>7I1sRJG|&V0atC}I`%DvOow*;-ek{}d5SGhjbpLSwhu3C4q>W`dAKLs_rt<+U zmwV-k`e5WA)i|e9#U|#aiL(Hu`5*f}yS#nJf~JW(4tJGLJ%)P%;3;UDcRfSGIdp5T$y|~c%{f$`o!=ZiRF|5}<(h@+v)o$6X;#yY=5u@Ha6MF?s;cI* zZJJxfW!LS73*xZL@l|u@_zadhmn%_y8is6DHG6#eL@&X1*^FF#?x zj9ycBbT!Sb-j017`~1lGPa_nh%vfn|(sV!et~9HCb~*l)xzD5DMz>Zo?o+2vnaAp* zdsO%Nj!|vKN6?tpygDiK|2%pQ^6|a8Z?Hdo@#*pZ<5f3L^QrBrGj=qmJp1}@o0sd| zxkhukhf29e#~o1fp3B?!_Tu;Ssx4vKQ6-e)`H`LRrw?og&g^$}E?b)3t% zvg=CCe5YGYOLXscknuV^(jm|PsDqD0_w87B1c?$Nxh*ZMBu2uNAzUb>57 zFCFf0H9r~4lU0nBr_4F$@r^wd=eZlzcnIO~;4kl?y080g)W@+84;Q-Pk#XnIk7c@C zR#%SZJ9%>7=p7MKbalc_QK8wyWi!&LXERcdHT6*4Lv;>q(4EiCb3hw&2>TH$hr9NE z8MUM6f0<_|&5w4%{vXTE{=xwc{;9d#=-z91V1s}TnlKXRw6?z8CzGkOD| zAJu)QZlLo2Z=zr~gqgJ)cDFl#@~myB^FL-ol`O6991hp(JgSrDzYZ9wT%A3Z={UaX zsNQKl^%$CcKO7Kyp&Flb(&$jpIHhCtKk9T{UygrtSkzGGpEupE)&LySb(=LHQ8%v! z0BUpWXnd+2r&%rYoG){R{5$ckukQ)fm*b{;=g7d4Q|EsyQLH=1DV7{GY;r6)VgJG1 z<@hJ(#!34e>{xNyV8ucEQ8nW@j_!Yd#Ti1wr2ji|8VJ#_1?4^(e4K`;oKG5NNE>IM zax;qWN|Jj9-;bQ{RzAav9g0afk8bvj!O1iBP&i=z(cj*!VsL=}aKhloxc!GOy2suq zdXpxW0@`oL!O|DPpzh9U;zGDrh|d3XAT1l?mze1)Cz+Y~kDN>%M3Y)lXaZx6Qm`L-s$ik@4l4Nn^RD&HwIebU!+w zYl6GmGnN`czsu#*SeuUObIYhERWn4*k4{+xXH{f$G;WI{IB3E^NG;TR8VA^+Kh(^WzNcSpDLsemDQAp z3Pb)!9WMgJUMjr!are6@4D2h6K&o!TmJUWE>;??f85v=4{V9lX%+KgprfGg*^^VNb9qv7IcWPHcD%>A}$rl9D{F3!!!jfD5G zS%mkn$;(;grJ!Ei*cEUS;n>7v3M~FVcScd2e_z+XGhlL=<2e2Ac$YiV^*#5?=($y1 znYp@A0Mj%7i;w`Wy%G^6_JE{bIajG6Sr*~}0#FQ85! zbOIdp1hjvw6Le#Ff{g!Bmq~RO(ed2ZomP9tCH7s8eUD5?Gn$~&=}Z*M1S>2PUX&s9 z|HHms>YT0&m>+fO*5NWkoOD@YHIN9PMQ6vV=quNW18HsnMiL=Cn{r~e-%<3dxb=SH3i-aBTqWX79ATz^V ztLu_rM_@Ao+5eBf%**J$>b_47^r{Zjau{sN*h^WN!1{T7cbxO^M2t)t?fCl3b03a|#9uSFSQn_p+ zZU7X30brkb{XdsS5r`1{^{KzWiw%YK=lyV-`npT= z;^N*t3Ll+o$^m~qpnu@?3Zu_Tzt&f!-7HVJ_k%ngpxCE_Odq+tAwO0MT(2qZn4YZx zn_O-_*h-eEoH469OCmbq`0(*T#GX1gjcOZg@`tB<^u2xFI>aSh%2{b-ZVh<1 z^qpq=(Gh~qYm)xqorIazH+%>NY!u0AM%jtMwBRN+r9*7b;w-81v?f``_?KVuM z#y3uOB2{04xqsJ?pP&9G2%R~VT~lBa4f#=GCg$$1!r+2+1wLhyUW$+y18DGhT1UCo zf&b~k2SqphctVrnhvym=n8Qwjy{l#

    sdf#4ed%p4Ji-hwya-hBOibwfcWj|T)T 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�WWlWkI;CD_aKVuTz(o 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 z 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

    C|rgO^oMqFBU0@)|CxWoyERoi9WB+qkKO3 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

    6d zT8yF%B^+*t#*cFToN-SA=6NAT59$6=W+vD`0-NL1VUFTYh5EOG7nHyRE>OV=`U^*a zNx>z+U(f<)KsyJh`~@xW^F=!hHUt|-V6S?*LXH_8+)U*{F zo~{oxY{8|F{c>>i3YtSTYN0`k@Cyr{+sJ z^`GFzwtjo04{qSR{lgeEb4ZSF16!LqYsB(GTQ=~)FE#(oHLxiq_iy@(8u8Y#M#lX2rtW6;s25w?|i1N#qDnh`(b=Ht_Lk@DBlIIIt(ELf= z+L@Kpv1&>Hyt)13m$r34afdwvg3{&$P*X_0mU0i`UedP|iumUHcHZog| zPVICZbWsH^MUIrbw_-)MmI{1)k%R2pw^zBNiz#rc(KTrBkfPe;0ygME3QSJ!qz)@| zkpxy#451|_=8&@O0tsx+VXVD;IURw`-H#DitDH0WSa^=6D*`*!8FV`i%Whv%g)WG| zk4L_|Q)L%JU~+@!RodEoyTf<^1%$wTm|}(MFnJQ7MJiB$7hcSuiy-jPsutW=&HZPv7+c>|*h9Pnix#MogD^M!o5 zxCQT)Q;03tY?*^357Oo6E6qhM$csFz-cJ<|qZn|} z3P#V{GQ3agBU2-&o9Z&_Qs=KKEY)CsQPgb z93s(xr>pYtrjf91={7wVw3jpd;ny z5sU{pOsAz2awHx{@Yi7o-oD%6=jcZ8L3)WHx+GG2G$Z&}qUE~>b(uSQ5sYRIaol3~ z=Z;kb-z`>|6A`0`n+U#ASPt4#PPw*-VB=_x=^=tftL!1T(~YMRk~IXMl6R{uhwAY} z3&D4a={cy_ah#(`2)5EkKj}k;@<|SY?Uzcgo#`=4QV?89deuSv$TK|{2-f4V9OTUD z|5pSA8z+VA^_r8i#6R$tyP~5yi0B;pfz6A`5cfEa=dTZpSlLzZ_~Qe6W)yA*8yzTVBScrGhq5dr^mj|}ZgVeo?n=fy8;L<(&`Gk+Q;Dr}qZ~=xibGT^Sp2!4Te8ITz0_!35B2G4| zQMC(vC;hb9w+dFU-YT#F7hEteOaxqPf$8|wvg9oJAABvaQ4?!JHzJ$Gv%s5nP~DoO zD%ZvWABcUv6zw=lYhS^woU&FFU9G@Pw`FDTtk>C61#WUe@;vqEO)8L4L+V&}#l;l( z4>V8ZhP;zB1&plZLJI6wrBpSlSt)K5*mH^Rd8hnt;#@$1$+HZPmp#0zsCpQOW1s@S z3ND_&S-koveco{I%L$xW_DDmCxMuxmBDiP*pW??h)*fzok`joK011p?9#BQJ05Kel zF-!n9!37g|jUCcm==hdDz69(VjFx0=tv; z!~d*b&rR6_7e`<{BzOC^=G5yr`vVt7;4kK&%<@!8iANr|C<32DyZj;MZUruALj)#8 ziWWkW$hqRCR0l4GzZxE+PoPOc*MLh zPex0@f6mpAFFHqlF;XxwwI|4p!&ChFN1@~Y+3VGxHInqYGJV#lwMIXrEE8JXZR$5x3wVS=s6Vf07&Z4RqT zaQA;%!I?%-4^k{ol@~Eq@P!Lrkb*C)S}>y$C(#XQr8cE!LYP4b-Zo40 zxNmbz6$c~f3o#C3`j6;*5PsI3?1DtW;}wDJW0wvNJteOK}^w{nO|^javrQLHlxi;zj>Qd7LVQmamd0xKxP`?D6~s4L?T zpiQ!>GNLycSq&ab^12o>gjY}9*Dd^lp>1?Elq7d0An{C;BdwR4O2m+Ec#0$ErHE2VVlPDAs5iPp0g9E6N9p-CBaSoKte={ zW=&g7M&l?)>5yU&{Cos8G#ZUil6Gnhu%%&gcU|631K|O^4n_-rotTFpI&|=JaNFlWlY7Jnyg1P`mJfh&cbpVa=22*UF7DF_s48Jf+ZIP}>xoAk7x#o+ zEfty@@T#fiw>?8j)Q}AUFv$IiZ}$j28C`t?*+UTt}JdFfm1c2rc16WeAr-raKZ^_micr#4dTb z?XWZYQbpjf$m;sew;)$j8F8+jnq>dvcc^IdiSlpo9UL{h$lqrc=}LRaBKn-DAl%ob zW(`yum@mfaT&`@+oNf`@D( z!-9|9*F<7+LQd6^K4k$7mFtLtKuvifJKl*5GP2|6SxJvyIulR*Q@M1pl2H#z=!d>a z19AGDEIh`vDz&a#uVHl1fo*i{ZQWyUVBQPfIFPodh8}i6kWk|hudPljC6su{n_5La zbr5M-R*;n9Q2^MiWC)_;%O_Q?rtrA!E5ZZYLQwQyn^|m6BD~E?p%$-o>HCg0Q&MiPHr#t0H>$}?vykR3&a+EvFk~D z!z$x*tn_H(d$-tlDOi1?*7iub$h<1x1zP}AP;0u!Ax1KWtw9U-VIrqbaJ|`szGA|| zMtJlkeK*^4CG?job;V=0s%=g&7#lwGHMx{wQ~Y&{>8yayUhO7AN{M`E6Y>YEC{No9QYHJn&BzV{ zFdlC=>5W}|(-U}$aB~6hdT$R!gv>1b-i5BS`TLGFv30NOV2d&!7wt|1xi-qkQF=Nw z*Mv-&qjV!1WrlwRxM-k=08pj7D(J8fkxsz~(*T|@p3Plq0p6fb(~a=*{%j}F`4V3| zG$#jO=4}Q|wNDq()Obq5xFUll*&Ki|F8E5TkAnu>Ct;ssLjAh|QgZsqR3O9z1uTU$ zlP^-LHv_b1?3`5kd?QLxWJhFCwK;gu%6~T1+~GmKvFeycX}^Y*_m=QzAX++TCm4W+ zXg|2WjPnQLMTD_mEE4=KRMHwEs_CA76NRY$OVU_HuKYpH=Ayp*JW_3YDURE5Y%OL~ zoRgs-5LtrBtwUcgFUy6&*X09q+x_c~^WDx=)o6pFazu#?2#ITJkR#6)y+}GR)N@@D zX`LAUp@oAE~YGjY;YA7 zXO{G+C^RDTV8vK||KN5`He^;Xh7r9`Nb&*g>$?&YN1Q0NwFs!&lpK^o!N%t~L{2l~ zHT+~1Y6;>Mj8TJKWQh3RxcIeJBsM+}Gk|2QsH|0Mf$fCr6TjmKw}EYGcZQe18N2So zhc6|p{oe?4ay>7LSUGb7wQ9S;=6H5c%AP@_{+lqD2HoH*Rzbsq-e+}jBzZ0)$gL5491 zRP#%S1e-!28~m)1p(1*o5>0G^5&+L)q%a3uXl{nJNDG`4I(zPlHnQg>m_rC41TtB7 z9I*q)v+=AZQk{dt8`q^vI9P*HE@&bK_ffU^05sxv3K*H}`ANapXB-QDb*`(WH353& zbSWwoMOT?$VNBng1^+f7&p@hp1s=SeTrpm*F<*_)CrmTzd2P=JgISXpj^pcwq-I}v z`_yB7H$2o^aRLbN^lb|9{_fX4twfA2LNjveCkc+i_UT@dVNtSjW9xMW)?=)^hPZ16 zHmJ$2y(ELl)%VkTkhG2kA2ubT4PD^gN2ZKcM73ktLa#F++n9}R?=(Rk+7oFW|IPI* zPc$quUg+0_YO@mYGG$4rB$L>|oNx0?{pM9_`Def`IO#CXtX}2oqFdGi?3g`F@v{#pI$-iAWj+9J@_fd>D8hirGWzA$y{dFt9Jf$s{FUbG%VE75 z!oGPX`QD7EuskU_Yw@{N_TiF9ay zh;s)1gk|Z0Va%|7$lLN5FL}oAhfj-6)tFrVto}LP+tE8jQwFSk9umtQm!NWDSc@JMfhoR5HGqSBkMf^I zeamwx6gQlzx1cWqNPC5Z)%TR!Mv|-T9sQpu(_mRL(5wF4`%Lf~w9SiU>O2 z^B-&TO@g4z@6NyCYDFvKbBdV_thKfK@!jF0Uk)NJ`jsh(?}p4{{}2)* z2&gfD1X@NA!`!5zAe4Xyfkw9x>qy?H-UY^E>*5JFlvz_ih!1PaTvzHeB<+iiZBpIc z-rz>wpRs$ug{0ocVVp38yN(?`{kUa_c^uuZcj~>2#kU^Ta39+6`Px|(UdV=159R_= zUTJlVKKd2kW7Oj73I~|W;G8Qd46qrJzM2its(`ZsHpNPEtsc*N*O%lh5;_wFiM;bi z0y)T?U9v->{tnqOj)D7v^n0|* zu;IlId^Y}UWFV{zDYvM+f8hF`PV>=4;aw(*9tH?tgW_2#OJV7!^1`tDCvAT_= z$Xw@g5$CQexnMP8)Y(Ch=^YMt-W>~!wP;B?i|);{W_FcCH&!Q!i!1(?n}Bf+j-0u1 zk@!ye0q6#KIRl;$Jk5hy>Xq)nZDp22Q|5fLJu-M%Cn;w0xlHOG5g}`l)nwXo$7vTU zGEz)!tN%X8*F{?a=D9|66VnJX^fq)IHpfm@+U_vNz$Yj~6Y9NpY6h^DVFL~QM+eBY zWb@Gne{`CE0Ou&{DU$q?uA43LE$ZO>7CR9{S$GAFaLlrS+x54#QbXGnzfZahYvEmr z3|ZfVtO8BI_gj}JX`JqVG?BT{Ndr95fNwFO=Fp0}^}e^{r|o^Txdk&X06kVNnPyfH zE;DJn%t}7AosKeJ5J7(yq!vb~)s19a8*>&_ z7gz6%5CCDI6=F@|cnwZFF~RQxZJ2?YL_cGjLvNIQO8mTG#|0)LaEf+dGEP-51)G!* zPG@5EH!3pqw0VhDN2oijK5vRYH3$^39}4&P#lTNlQ4T-tc8i zcT|ycd0nZ@n>w8n#?Q@n7(Ru434!qeZP$-5h8;qk>w4N9#DRY+Z}JJ%Z{P%ex@lbb;iYQC!tS z%FEziVW}7vCaVehiC$S*&Arp*W}5&)zz4_GL}WAM23AjbNTcFw*C(rWMV$^WVRGJ= zn8|#X&b=DEawH5_StH0v>&Omk_r3$m~2u4;>n0wnW(Igl}Hp5x)|H;TdQi26$Wd>x`k@ z%zp=KB@0p@uR?&53^`z@oJfz*B~RI(ZSUd$Jz2!B1l3|7ghGrPx^>4fwO`kva}6W} zRA!HNB(nhZmcVhD7Kq*ck`9(ry!_EN3V67SQWXRo2MBlk8+U$In_L?F_Y|mEa)Y^% zzJQau3=qwx&n)Qo2<_t^)TfJ1Ut{?;`m#V2PVSz`5g2vkE$XhbzPmx&?$ z9}k!7Tt}T2JCLF&rl-@nGy~Jz*XS(S)mLmAqwfu zC(&-(8ZU*$ilu%GX0JpyC%hPo!ne=9doFd$8u$Ko|EW2E&LC@(U80#`<62|i%K(lL z7t)NHH~R{OF98o>k_FU0Tux!4d!*1_I2;2w8sIb*B|(M=%Sh^FmaH-n$!3!HbDzWu@ol}2REGGGrxCxn z20{G5!y@77FNh2U>4NQR$fNyPcJ%dtxp1#EiK&GXfTg6PfMS?3`?Xm@w0*M2g3yOm zd26{}erzYWWIjdkEfY=Vh2LY%bN3GxLJ^b(jM1|hv>DM}z#XssSr4j?)AQ)wxGRh{^fU3wM{aB64Gk+@e(M=8wlcJtuRj zJ=6f_W{}!)z8il2e3{y3>@?*1pJgp*Md~=u7@+8vw-Yj{0HI==Cb~$UcY>ykO%Q*Bu!-y^1eYs^@7X zPB>bKbWG=SbLK@l()u+ow)m|_?wD?AXpAS76fy=g_Cz8`K^Z`d;T9#p2hCW*=H&R ziw6ayHC6zai~y|38UHmekjvDU$+uXI1X9|z6kP_D6`-}RDJp^ftkq)#_Oq>BdW~RW zKq|o*K!Yz?{ncX}2Hk?#jb{fGe6UZKYt)kx<61!kUx-Fn6@SiLbDv_c4JmW+om`B5 zH_)})$;=-RH(c7_=mV-JpI)B!xII5^3K}iSqp}n5H}&blHmqEuE_SjqUK!=Y^?G@p zEbrE}Cj*E{X%n&Z_VlkaB&+>>KE0Ki>9nYLJwf3PAj}6`xDfuf00mNM zd|V?Vs73x@&r|m`v*%qBBd1znzk(p;-lv<`oYMSa&)r}<2=I{>pbr>*HAAo_v=<`4 z24{6VK&CEM(c=1%V`UD2+K1WuUWbK=A?-b7Fx$_I{0$$bHQdk##E&hXtKMwkfxG}e z>H6VGFp=u0(IulKFawVSCFZOw?CR<}Df|o;v}wok0oskY(nF_X_Y{hjar3<4im2EXEU><0dT$lMcWQL1tVSQkWaW4u&aDl}M zQN*<%mk`(7t7fq758_}Dfg-LTr<9n1vf}oLtQmB!Jk6xiD>1cQ8sg)zv zNxPD}H+~Lj$7~ULM2%9iPAsf>R?B;vTs`nCz4bQsHF~SSVAzMp-7SYieum6JY;QCxAsWE7c5Y>wHJrc zz1V~ytHdb)q+!Q{awDE1qa=G*q*V4_63x9pQ{T$*b{lY0{^XPUUch#kU4=mvP^-sj z)kGJqFUbSNHj+<_?I^c8BP}r*W-%DpGOhjT<$=k7$P-liE(H3?Z?G;ZlXXe<#DVJo-@=CM*Bv63usJnu=9y{u z2V%b_|Fth1vW1Dt@tNKOnpyv=bu=NKB3@I@Oh<$dT+Wwcp*YPNqGem~ifg;+IB$K> z8BAe0>5s(LqNE|$wywB9$8LtTaL3Lr`FJWcr3^75r=u4>%0%U!c9b6w_6m|jhrqa% z1QBc;48@ftl)OxcOg7)n2|K`5?ABxuD@aX3%C7t-sUwlA;>RhLwfL8SgzlDV%;Ca- zMXRsG+ATo76;L+g1T>M$+qiPQ+Qjd$Wv!ovgf#z#2+sR1YCIINk*YqD3i^N z<`tv#&Jr95=_u(#$p|?Cn9UglV|;z}L92l$;=QBsb4v%x#oqKq`G;)d!>SuWMS`6b z@1B~OuMCm=Q3zcmbyo4l5QX*oG5>d%j&6Y`XX0Rm=r9p^>OU_h2(h&u&#&}A#vYS7 z;9lgg0q)Bg|La~uqmTI#JWxY;M?CFr`1Y6A48ye=;@>_j=Y0!S4}&6TFpomH8wI3v zsH4gkKJ0O?)CO+*#vd)nv4-rn*` z#8q37s&}&pK+_z%Cf1T^*v&45^TE)nI&%#cU7*v`YQ8~sC=hhUAo1R6wy@ku%~(j~ zF3fl4Ut>Vm=DHX6Wr~$L_B)tcQ~Mdan~aM z%)1kq-WnYuXJ`yZHyJ0rt0E4cObV6_=nY%8S@yRBP@|}LRFT|qmM^P1&h8zaMCRFs zdIw0cUmlIQ9Gy{$cQTPZg{)~tyf-)y<*)(CG5f(-eyciEDJ8I?jYu7#9HNqMY6HC3 z=h_O)y!*vkyRN|1wnOOe*A-#MfnwE7p45JsyUH;`T?c?Sma2z!~ zRgeij)cxcq_Er+69wwZkr#&ol;XWCYGy(88LwJw^-GnU(RK%5z#=~@9%lq(wJ23pb zi*?gy*K9L?#>zmbw>3rCylN2A->q@8wI%Y|j9q1_Mv44`#aV^VuSlY}`Gq=dqkN9T zuxpSjd9*}%g#P;u83Ma*@Ryh0lL0z_5E+(sj>0=GFv2;Sfg01XfHfjQfayuVDM7nC zA$v|BnhY#;NwTfD^Ok;{!!4ZhsVjJ&wgJv1mKsXsheARDVH9vxRbAH!R zW%CHq;SvgCQ8cM(sPRx)P;e-9sBlo?LdC)R3NKU)b%kn%0urb!6%0^1nilt{HdGm^ z(L?E=qGHy_**0TObkIaJR=^|2l({y(S^ zG3sdD!Yw3FW1;GxfRlpsJ$%FlhBAiohsuLeL2Y1BK#1p0Hb?3rNYpn{9IuxPY7a^d zg#a}Q3J=8$RRjfrs)d?@0uZ6r%R5qx6{rj-DyTUWcqlw58B`U9>I0_pj~~<`hw5XI zS>2jL@d;EPd&%2LgfbQC-f3V8cY=b38Un>nZkUX<6uSoMTTu~CL6ZWmdr@Ee6l{A` z9F~+>IZy_u&`@+xQm6_LMLXZ+=U9c>gQ`Fwpc;n)QcvFqKMAT2PvI$2ggPFo@4Fdt z6+$6q)HgJa1H>Lw1QZdd4-_sG0#pGMA1WSd1qB{z8&UVp>ZSktHo)yrA1Eu-^Aia1 z)Mrm5v#$nquf|bTsdgxU0M%S9PNroewE@KhH8KV1hljd@l0hvXDh@Zbg0l{lhpL8x zfC`5KBdV{I;OQ7cJuZ|E*gT6OOi&cKQ0`Ea3UzOqy0+RueL&ejfib8)lfQ2ZhYBPV z@E(ucl5r@P_!N%K71Rcl4HN`wEYt>6BvF0PGqeF1)LEe7FomjYRE3lc6&UIoP{FVj z+3+Gty+9S9z(dtQ0ihs$p->-Cmqf8j9fATED4=KEOJ1<3I5LqxZ3~qEDzhj$sdy+r zh3cz=41Ug`{uK(?UZ>?fu_)Re--Aa&C^#q!D#fDi^HdyJ|2m=!RfmE{)R+`D6yu}r zLDvuaa6*lNqCgEkP<=-*%|MOHKvF=B)3^sT`4nih5l6DwAi7~>EsS^zt|pB!mQ__6U@cvlFyk$V5=?O;a3t&))D2Y8LB$au*|Nf+iXtbP zWC28&0^U^w7z;LFvSvB|00000000000MKkykTg^YmMJCKHvlL>c_GOpQ<5?h+3hC8 zF0|n<(uTiC8~(x`H_-~l3Q!A~$RXiH9JVMyKcx_!sNnw3~hQ;(si4e(7Y|e?`#Tgb8I&~0Y zc_oGr4!khKVlgt9-q_(SbjOP_te3P>>+Xc-_BGOI{0p z{tEl$8Xe-qe4n0Vg-y+Ls&E&Vl9Q^ih-67+2RS);GErgEq)bQH6nim+O*F(Hlxdh% zN|M4RNm%4fQm?lZg;i^;$~sKFQYb9i73V~nbr8uXtaqbv!d@yna-5ow7z-USMD|P| zc=f-8B?y_mPjc*>dnN2UL8K3ok_?e2VGBtlsEwKQhY%7roh*%(r+$P@2&wr*{+J4$ z8-XN5=v;U4BCHiO<`|wkDNmdTTd10Fm$dY6ehBMIRQuH+XSE7po8*;bN+IVXCkR^# zI?ejrK-g2PoRHa^FNFPrEj9X>2W6XKY#(f8igT?+nXY8(duvl7`br>6= z>m4jQeZ4bs{F{*uwiH6vZr6C&pd73@=iQidND7-nI9PJ>k1D#s7CK$>T)V;2VuLM; zZkNw*ZJPiM2%3(BV`?9Lro{k^8$rEB#GK8B44|1(6%ngDSD6 z61N{pQqL(-V$)qBe#Ymq{wJ|qj3MRGm~=`du?fv1MV5C7FA|G}F!{S165FW!b)Q0y z*lzU5(VTP+Cp%)zpHz}6CX?N1#In2Md1Xe3$uOeRQx&XkT*Mj{{&Ms~MeKJ{?NjE7 zSmcU`tPLqnq=$%Af?9=+c}4f<4zZ_I%O`t-(91bPtQ{IZsK{x0Vy+PFYOL$WBpMx- zD1jUod1#QsaKLiA+Po)CFeM78G4!|<-lQEQwjQ$^M=i1=#1Z?#&S2TV&N-( z$nPN3hRrP3hM4mIykx_ko1>LJoqp;yEE+ynNlcnb#He8zB_dW7rC~9d|4lk}Hgh$C zQUEQ`pv4)C8C;-68P?H3S-2ERryNQQ(1HwGoD-RwPbtcc#;}YKpL9%_T8Lr4Fd=S^ z;ly96u%Ja4_RlfS-F6%dTTBs0?d;|Yd&D(yDapRKJ1=aV&Qr|$^2MYnr3+hyj=lN% zjPI-zF07SS@tYfMN46SiH1Lj~fD}QCEv#LUZ^ce08_0n}3)`oToqS)`bul}%$ihAo zV$3D{RGJc^!9|Y5!k$+b=i*FSjWHZ3I6E39(BcYfO2T$xL`m8)*@0sN3CMyLR@m>v zl%Ay6-~x4_!mKA^=EPzxz6dO}As6DkUDFkk=)xPTS3 zh{7hm>SRkKOCg9S3R*y6(Ijy(839OBpp((W+k4E z%AiFP7WJn}2z{2){e?vfCTt>FjGCm?hEp31>{tQ1as@4x(B@tenVilXZvrLk`&YXq zo>?BlNmz4-=Z@zo$y5aii*99-vvQ+S^CN6F9y>@-o1c|4!XA^AX-Z6+phXdu`SAKr zskGANMA#yJ6p?E?N}D%ju()P6u1q+&O$|CY>9UgH4CVxbuu@b4obaKTD*%toRdtbAwH4&cATt zavB-dp@j|hpmRx26V)eqRf9!SbP6(=+zl(yU@Z-kQF)&kEa^f}8gy1Pm17D8Eo87( zKAlI3$GuZRQOF_|Yv*K^Pste(nTExFxtacytewZsE7sm1dzNxMy&vL)EL^d~!q1V9HC*)b5yZjr8UWEd_yafifzX9>Q$U*|N!tRMR z_CtfX+n7`2bYfLsU-RyqCyj*@dx{%RF@=O2Z{EcAS$-wnxl~TAi8W~KkPvOn#5PLP zgOCT|f)JZbmNsr?W!MclEXZOIYsmYl_ZiaKrwvg-7J^`X zCP|7ZBoOs-Z_uEW`8H;Q z3fHg*Whx}4sZ-`$4XLE5^aYuqG;G^xuaYNG7oXD+g+~}y}ylk|p7q!iKDOjrsXcf%$+p5IwTj}zl+(_4iEa z-DV2HT*Lm!bXgD$QUglok0=d$R>XasAkwR zt|R6Ya-zeh42w`1gw0>bu!v8P^O#h8UO9$+J2hC;pyYQ(3`;l_npb}#=7M3^HuY{v zKVP#TFl;GxI=M)flmCT%V(H%seF;1+?_{|*BVJ*zJkuOfN?T!zA8HxanJR4JR=k9; zzm*H2AO;oI%;23;cI%AG$m5ar%hPCLJs1o6VsH>gvI91Pu}%QSUi0Sry?@*8CSxh zM0QVI=H9h^g2MVN*1;A# znOzi*OCg$rZNB#_D|imUgM+muxm^(%cO4V6@Pr4?J4%N#=TrV-m=#j0y+C606ziz>Y#j%ZR9dr}{wR!r8H zVlowb?rjPw?4u#mP&di)9&s{>=RN@-Z{n0I+R%cBYn<& zio|geYe=4Qk6F?|mBgyq=bNL(>6jIaNNihC^r&9alhTmbVo1B*2aF9EiC9CI>aV^lm0}k}Z2sw|tWS)WQo%Tc zeUu>eCSvem6b9We^|Cdk{VPol za33({fH35+ZJG#DH8ri82O|!P1RcGkli;xA&|x8H&v2hCOPi_&Hrs zbCue#NRE7&Rb{u|vtjw&lcewSHS8lJ1~Z+w8W!c7NyN!&2EWs=f1G^!FK;xg8RG`E z7ov&IpJ5SdQ;Z!#+RGkcm|;)4!^W8mGr>k>Sn`GwbElK%s3I~fKc4F>*r=c~XbhWv zxHDCg7`7nerIU4iAv+Gkni4hI2UST&kb+?oW*UOH&llFv_!CLR94{>DREE-1$}Vgp za^FET$%U$}23l*L%_LbR)=EVY53Eo31uq<*^ET&}$-so>Ao=q{6miImO(|jdH;$>_Num zq}N-g_mje&VxD=Bcoa4fWzt0aI64Fm3QNovqh>}JozoLGNpjNd{b|&=6SklI+`kcL zc`Z#?az&K9rEDf$2ov_In4-z?pnK^h>>+*mrCpVp$Bt1*PdR|wUg z)krf5$a4h@B&-qqVkKEAj3ex;aYu7dLSvJP4lsEnZch+K5f<$@GUdN5=KzBU zi;}IllOUQVNlYGK3}Mr{SaPy6f9&v`I=~RZb}D7ll~8&WM92jgLD+P7=^S^RB}0%J zU;trDNhG0SU;Kk*RHLSjn&=LR57z6RAW4o~(9_NUqX+BRgum36=E1)4xtCP;UVyQK zRc*v>b?L99m4~5&HDpRBEQc-`^!@;h94zs+D>}Mh6VT9MLq9$aDq!GX`QK66F&>j> z>IN`wu;)&xcXuQRaWUpMDDd$y3K%w6Jgu+qCr_nQu0_D8!P+NRqa|tJAVd!^Xt1aH z=-?ribV>za%wSQY#4_dY9UbW~z>vYZRbQb>{YTx-i&*Tn*Q;@HegTU$bA-%YUp*0a z)xwKc>}4XzYUUF;r8^BTT(RgFWLAf{Jn*6wOVpq$M2HhBwhfi+u0%-pYg)ycoivCr z%CA)NRj~*&Pb%r-saV5aq%c~!(#HrDdkir>H7D`?cb{TQ5-lVVMx)2OO|d2+E5r&S zL+($PVpD!W#Lu1e+K3eU1{FzF_Xn{w8pT=_q~_b)AML}USV!haF;D7^Tj5Y_AxGN^ zaa3=TFenza*^1TE?-A=K_Grq)kKQnMA?k^JHm9gp)Qo9Ao!E1F+E|*C%prF;vG;lS zP4Y~2ac*J@xoN&3#AulsO>Fwam{1)RBa|i+%cdleiJow&*!`l1eU6T zf!Idq@Ze+8H*BN{F95NIPg#~D*?j3B6JGpbk(jhMi5nYV(F;E;lan6PaU+BjA{!=9 z!J81g=)<0Vvioy78T)Dwyx_y8nM%f(`tL;2CmJ_w6zRZ=JuD+V#EiHUO+73@>gT-L z)H!OZMp_>B9PKjykWBSEZaf!f126EfiP_*M^8Mlto4hn7bF`cncGySAy$zW5 za@C4X@bLUEsh~df9tRIMEHvhYM@%AUSWfo@&#ojv-{%ag*5*Zs89tYrhZ)xT zNWvuCs0{nqmAX1%-=RGjHs3mn_i0sQrpK^M3KgDXIfBVf4Exzi%=s`K^OY6M!6OV? zrtSFn_>Cmi0mFLY&rVbDczj_!F>2FB3t~lTH*nlg93EcSWaZECXJUG0O)fmTuxIzz zUVMed4I4V%X?Sp9zbn}va|xNDqhA8vQDqCu-$x7KK7HsEYhe%1^xPcchNp*P2NL$k z!kT|PMNU>5EF00xohifJP1+ zdhn3KS~4oc694_<4I5nK_#N-Xba2rfNW0__g-vIZ8l@dUPtc*ThqSPzAuD%H`U%Dg z(bTac&cralRAtRobkSWH>OIXf> z(BZ2Z4<#&0Y)ndo)S!RU@qOa}A0I|z5*|rda!6W}B16g>IS(YHHvDM(93ih2p&~|* zv!oM%8h99C+h{QcQGYT0iaQc;g77H9o*zr+yC6kIbt3GSsz=_M{C;K#o5yG{NgWcx zUimb0eGCO*O{0{|C0Ze>iGi?Y+)(p%mKygTY$kiG^q*fmsrq13sgo|GF*PgE9xOSk zv%_&WGuwVGD^d&@gRCI7Gbs8d1Bbf+~9Bi?K<}lGahNl!+!9zgJ0|$%8 zcw%AstiS*=5P<_lJeF+IU1#`fNd6fau-H_k(P={v0y1U1V$md~DnyK! z0GL6BD^}APE&1tiKJ)2GQ%C^HAfpw_s9jT))^0=CS+S_m6p1E;RX}35zj7$oPcSv7>69E{>4liBhJ|N#!d| zC(D5&(V(H@9mkC%T~MF_4KPCr8J$>Vg7VKfnP})pfethooY=Q7EQgQNCbl0BGTg^p zh9=hX*r8IDp9v&d40{bSFtNlSUmpJ{dP~N1eCTk%$A`H~=txVfG9jO?P)e2T0$cnA z{Kf%(M;BY*(18x{@gbuUTc(U3FWOIuHHVRSXZcAivPTB7qD*F#NMcKpKBbuQ=`7We z*kaY#%GQwBV~Q`moAM(zl^Ee;`s#=+gV0hb#2c~v$H`&DmUa2Mbi^!TO-~V#a>q-e zL=>?E;eGqzYZKE%towhV^mEk(7l>F)Bl!QynC%pE)Id1pB)?qdbXsl#gb`Qz(OI;`Hg zM{`xF3!$9DzN0S3%o~E$U*up2?F@;-VnT*_#L^o*HaKiaGheFTq@KR&!US*FHm^*s zo{}3j9Z@D?Os6(%r>slJ`>-dz#D+zubag66`IJ*%!+Ij!#(2NUl1{5(-OZWH*6TE^ zmsZrK?v?TsqhU|!(+R6e)~7pX*gwY^mA#}HR*!j;&&TgeaZ`p(V`=G28AFCOCdfR& zf{s7oG3-@Ae@952d^9MA^+v74?-UNhUXt_t)~JACF%kW4l9EyO7na$SBB)Tkq)NmK zYv@yDnxm&3bzzOBlLwhWJL9$?$l$`BRL8wv&0&7Dg|$L9y=?PZ*uFywAtFe!un7@y z{o{o1N)-!hiRGNH=A&Nb3VWuwTp`q4@8novFWKQo#%Gnm2;e<7vnf{8s)kq^oNCadwVH2Gz z-T!@_6h&N+!GzT-$62_{pBQttAY%zjIt%X@8%js~m9Qmcl@dZUjT}ry3o??hk52V5 z#=8tco>!28geB=uVz+`w@q4IzUE+n)?#Y8mV#Xd|$Z29N+9TiDp40WP`& zT(k;g?0^vSSbC(&i*tM-O^~63E$GP?RpY5f8Wm*ZAP_Qeu%}O~kRrv>F(wHigNz$& zr8h<8JTc}4y$$x>%}6P0K95YF0|ps2$Rw&IWtx!`aE{Xh88q0gBy7065HHA>!IDJS z&=v14c3R4`?2sXY%_fN2in3Vq&DlbXSY!=iz+$x+pDe0p@0{cnt9HIvX*auK3lXJ4 zH-^PsOe+=(DO~i?4q|0}*!B)j4f@o^2sn}G|Ak)YMI~kTJ#6ZO+ zMDot4ptdRcQ|xJ!5@wz;DaAL%qEn?0Bf2leCM!rv(vnWGvy)6u#7jm6#!hCW!HqEJ->2cLv6+r0VmUVQ#zkk z<}x#-&5(kah6-#XVjPIkh|`n?v5!d-#9+ksA!P1~ny2i~72IG$ff$Qe|B|Q73JZ1O zEE|ZSh_y0H*jJpOSsI)`j6`f3)$Y%@Y!bZOfVz13Pd}0a5)5w7%5bNYHDe|Ti^EY23twbOOAXbyIAt&u5 z|3kjPt>X`C$+cMG{F1U$yA69l3_t9ldc+A4gbX^9Y9x&k{F|UGhY<(F=)-z3SfvfQ zFIIOxtif}4WoxaGhB;nG4z2*PcS3*|d)Q9Y%>R6H1QkOMM@Z@&qQ#Ix?4&z}5PRDx znF7ARAw^6KV&q|&6(u!GDFsrPafVGqlADt3=S{GJ447fNtt8Xt^T9Bq42x#vt`IND zT(}D}$gqsq&t#rFEUu2ij4_~QWW4ZDVFJtyF>IYZDaGh9m|<8nt@FoD`5i`54ipqH zY&o|)t*A)a+!vOMr_aK9%IQd@`{8RR@ieIAvHfN)LBjlGpevCHO+r9deWg($`xi%VO^n^uJ zzGAc!LPK6o*h2~-=8mU-Icmb57q#-m(G~IC3?}TAGw1EiQGParOku_n>WZC{Oip`X zh7#6IyZNV*dVv{9*et~$Bg}v9Ai`&ufrLeds79~)6w)V=Va5>_8KEI%(2$v7gsn$6 z$n}lZNHatRGm5b0Jf9|S=%h;L8URy3tiNe0m_dZqPliydG3+!31v7@QD7_W6M9>%& z;ev1EcpY8PKpQ{?7=T^O5W=d_K2(aolca@cm=T0U1>G4DIzfh%0m7mz$5EfuOTu4a znDK+nvgFQYT4%Df50;c)O5JH*Y~J)>v#TUi(&@W1As(z5Hfjl3@hMla!i*g(QDWu} zqoNvqivR+2u*$5YV5ZZZ{+tRkaQ!)E^y>X#YS+$MvV;Q_zIk|2h6~M zeayJQ8u$JzMxU9yT#dBvSHXK>h7A^Z$xJm;NHTBSh8Zc=KlOGycl7)P4eF4lY{kxjohXJQH7nN;<=Yg7&eAU+0me~77 zsoFSKVy`Ib`%iRjHA9KTCI|iDGakFtlUQ!-vO6VN5^IFL5-J}-o?GC+fs775BC%C% zM!2iZV`oBQ5v8XWOz08Ih^Sg7KK|v3j@ULu>#U zU;qm~4zcLmT$<#`^Mty%(M2Ia_%OtJX+nOAA43V<3bC2K)4@Dt#2iBik#6Y_I%EhR zgIG&?%#*_9s2gVBLlA2RJux4eeCF(7*=p}<3CN)ULq6~Uh~-u{ zFC~9+eEearIAJAeIQe0VDVK(m45|1xbyx96NOEVUvCm zQus|Pm7yNCF7Y|p>c*JOaZk@tD84v-32)vwwNo({(UNu|2dq-!$()lv>f*M5O307$xa>y!ABgn?~`Ar)5XDI zH4`#PCRUIlliskU5bWw>cf)dVQmFjTq3ilKEJDWoqZV>dli9GGsztv{9?HzJhSfwr zB=y>A*yr;1bJ5*TfB1q5R`}L(wVGE~L6F==goGFFnv+~Sk5OGJAQSfS%jDfc zsvGO{sQQfGm9U2taYd;!P2X@5w(||~GIq%c4q>klY-6tM$KW~TLkOEv z$$7$VOpUZM6R-p{2>Xe&pEH6Ui|f}&AZ#J!P)hiDrNeE2|H z6E~(S);Cgs<3a`a43rF-iD;Vho@rosenAAq! zJq;f`T(R}2x?EnTD|ocxiX(m-?UJ4)kCnlL6^m|^DH9%a$BH~ivHpjp6CxuY^Hd{k6l(~oHk{eS5G-Q?4^bfPENZB*OClbj*dmAtXMG~Z zN=Xk;Y!^&|e-dk?(ZDTud}6IiO20SSZ|cUEk_8V>tob<_Hdoq;lG~A(Mkfp*g^Z9X z=D^`yY|%6xt$?{uPV7n3T-}~nBaLiglesD<<=HuU{7vxC#HN!&R9Qst;E{=KEq)r`aV}B328VtSadc97ga!#1=B1#0X1CXD(}`c^qQD%-a_( zL^{X`JPfgSSe&1Zj}l@Rz@re$_|=IxwF^&sjjZ88h)rfnHfe3=OXC`8x&)6wY&s+x zrGNcPe`*Ks&~g6YA&9-pL`|-`ddD-M4<3QogUl&K-u#q9cmQJUig6u8=FAff!s8EX zdezM4owz$~oE^Z!4}3U%6ZAyulv1M%3m$zic$qKupIGJ#3TGOibC@Bsb)9RG{Qx&+qco*i28J#KV5Elbqhtnd(3^xM&rW zJ8UCP=TW*soM3(tJnXQ>{(K`W?Rx*n1CKgvLGvMFpS_s=yCpv|R|Sua6{s{1<|2746bJ;u za4?Et$msY0vl9pa7%V7_L;|5$I8rrj9u$BCTQ(v@EGixz8XOcB354QcC=dt)LxC_T z6bOU?p)f#Tmgi88@dKtGjEM&S-T3eTrEjk{-Wj)eZzVHh9Zpn#Hmxtj2Zx1Ry=)A` z8fA~ff*2A@F)<)s{xJbYzLRqw2ZL#wccDWoPC?ZLyH{s!F_&-H`4Y7uAJ^=W6YJAi zEd_iQQ$%l|l$_Q}rMqu{Rw(NN+YD|Yz=zSbeiLWPpMyD|tn-7-)kGa;R>3b>><{MY z`Tl$5Eq%HrQ!lZRUT?LM=prbgQ{#k~j_~cireehaTMsADJZ(zi7q9HW|uoOBI{hj`;sMV?pB97pchV@7o{8FLF= zrC(!8jJk^#o2lfPk$@y$=833yc7aN%{&i&u?e>*F#KIa4y04X5U}*#BnT-pS9M6*B z(7{LQz!#HMF-rJ@eA0%Al?lLZoAv}m4=-gRa49Qi4j)@h21NW(nx`8AsloIcRnmk^H;GTh> zvn{u}iM+vA^umnt{|L)gB#D`&tr-U>6J)1MKbMP}v#&={AxjR&z`e*x3`q}jU3TCq zo+-wj;G4pflsB)?n1)-5u_aMpt(Ck2SBwm4>?y3c|BV?arY$Szv8!jmu?BnAwlW8t zwS^jUc5n;TDXb!=(p#BZSLx@M#X;xeb+XDE9-z3wj>T1|?GByw6s>_dS9ph@22>NM zUg~Ypl{S<525~?%GU?Jos4*@>orEp(7EnV@+R%A&V}7wGb4HjS04-`COv>jB;hZE! z`vnf76rgqkhD2D35~Y6c>qZXz1$)OA%WBU-Kr;B>KLwq=UuDR(Xo8d`DkSx;>Wtw~ zzTXx^4^T)Cj>rviq?FlGeN`RM^)d)Ac7PKA!Bw+i8<62KxWNEk`ZZ{_fptaNwA*x< zaHC9IIFCrSD57u;f3<~mA%N(GTjjO{A#k?7^`mqMp%EL#e2Tao6JmN=UHJPRc-4nG zgv&1gS5YYS96eK};&5leo&rL{Fu#Bq$Ia++;(e5u8#c5F~*WL%8>?D6GP>GUfxjie4!$i2Nz>JllR zNI7qYz>`uRWr}CCuOq0gkDD9NAN1a9 zMUwV6IpPs`#jF_#9W3&_=*bUe(g$)ch5;y?@ofeGr`B6t2D1(e9w3(>hq=kG9Z>5i zT!x>7Bkjn5CYvh#B9JzK=Gs4`&|;m&4o>x~B#PP^I+P6T$`6{g$y7ykV_RAaZ7TrA z#U-vH7VdU&i%fiF=KzduaPM?zOlf|-9Y)5HE#u#G?ZVO@A48l3X9|t;l*w-&S#~0T z2&(0o315jO2CdnyiVjb8F{HR6z%7o>N;py?d0eJ09lbqwDPNZs8Lfyg>%aT$^p$7G z@?qd%dJM!qX5+vR-Ztj|=VmniGGQ76EL`AJ<(X(~O5>nwcMT!y@$IOlish&D(*-Bl z5K|aIMh_k*uCkg+uc@gQ#E}sbopyERl4UT_g>F3cis8H=LtpXP=@w1|>O<9RlBXNY zThMK(mupr*2LXhyIjDHfd_QLnQC68)8FvNhRX`K9Ua&xZ7L2$^9FHE5Up{GKN6Y4f znqJ>oIu3df3oX#-BDg3~tuPz7$G*D;oUiC3lbOZ>d=3K`nOw<97?P;~z&?j`CNf!X zgI28vCIz36+=&?!z$I%75lvB3@{O#W?Abi2wb>v2HIQ(T5x2Emhy^>jB` zJ+QyF+v{ahpe}%( z&&k(S_Z$xC>Q3rL&^=-pQ#ME5)zxQ^#KGlQdllRhGC37tZ4}Uo)P^DrocGBy!yj%g zpk2##TVC(E$Vjave?{&#Y!%r^HJJcZJw+lBKq;xyaz>XUZ1Lr;(;v7(%C+#{je+Iy z06Kg~yabr6SQ(+vmw;uq>2Z`Rk6eAy^72&S&;4*7H1SSuW^C78ECc1bLzs;K#baP&)b4wBV(;rb?R1e}AJh z6ECia9x_l^&c&iowNJ~Pzi9Ub^d zaKz}DmR8o`j~#2scQEwbW^!WyH<9BRsKTjoLbDSXN$RCI&v?7;7)qye+Pmj|xCK{c z+ge(|z1N!(eZ6*pSHg~@pQ5LtO9m1Qe#sdq$F*Oz{J^D>{tF6Y z;N$I6U#36z=}+1ZV#*wtK@)!NN`qu7tje%SsPYCv^tf#yQ(IR_wxHCHpZIk{?NTm; z1|NRMKFA9&7S4B{-T3Le0b$M?{fZz}s704fY0~&D^jUiaAh63DG{30Brt^%#;>toH z$jlK~;IA&o1ak3S%MSd+-(e7Xb(f84Y^zewlmfw0VMqc0a<>$LP3 zek&MZT|)M%~)JBUJ-XNVL|=G5=3QEm^Q zB#y#!tHjafF>eC|57iFgz9_hwln3`aYd}`YKRN`?oIB5@)=;TS*(cl!lHr`}opUfI zO{pCkY;V}Z55n#bK*S^~-J4rp0C9roDtDp4&Bj#*s?U%^zLO7M*m)aAYx@@6RshiDsX%~C0|S>|VHokS!zmj^II zzdEG!PD5r2KQF2h6M)reI*}yD?0;Mx6e3mKbC62%_RO+ z4yH!%?&!Uv2;@deV@Vv7J*yvMD>g!NgvQ8<5k)iRa*o~EK;3+(8kstJF;Ae81)F=3 z!h;AVwv%?IX_vst`H@QtKzMS&c4e=o02K#NKw4XYIdL#T>$X3ZKUc213XiL$nN{%e z2q+mUA+#{HzFIRP7Ys6NvtMAMTyk)TKYS)f+~KFE@w$$K=M=zGQlYt*Pikjp&5i;F z=7J8vVR2W+8-nNqKNB$trtQ%G_hM-t>$kd&w$4y~hWn zF&|A(_jkadGuDk)MaQAn8msg`lZB_q6Zxv6xCJ{spG&tso-lv)=Um&{Y74&8d( zW>EQI>zLBw9)kh#dN2#UQRza?boTku)$yN{w0t^pQxyqa9}214;Z{lWr8TqR_94*_ z+bECliKQ`tHszd6S|gwqqdMyn+Op{8`%ciTsd(cGAaX^!f)tm3x3n-j1QxjP6Fm1g zL~1LoX^aqh-<^_H?l{J4)yEh((pD{<(11|Y)yZ^CkrLevDba0u#ne?1O2DE9Q$5#? z(xbs@dH(3=h0}W>G5~^nVE>AizsamSU|13QmcGAYTxfRxvBVJ>HG!4CX=NERsOq>9 zDB5lA5oY|O| z*n;67k~{@Ygt&1eWEM4nqAxl}rQ?5cyp*r^f#FD?kI%&_jCncOW3dPiVTg@-(WE%& zGAXn8*G@9=8diS4LpOiM$QKl?JBcFN%loLAW?d3wf~tF@SGwP=bt;X1$Wk*rRb$Yr zCu1-124~^)HekbQ1tj9EmD84Cqhbh&VvGBC^B?G0RA!4FP7L_Wc#vt=j_(_apo}CSZ zEDKRaED0Lg;v-RSp}d`=@G}@`tyJy~!J>W-6qe>c6MF@3-vpD+vLMofY7&;?YJ$^5 zRdmO@$9obl-0Z6MxK$-)i0@X0w+$;uuq`n_V+e%m?F9icoBYR&S1vgtcyRBd-S=h$4u&m)|4Um3)q7^qfy=_Oa$m`zlW| zkI=%5?kn#-?gbcLrDG)9e^>M8uuFItT>261KZ)a_YENs|Bw0UVS8TJV*rbPV9g0faNzJyAsf zbOO8{KsXpI=A4+3GyuQ@c+X#!#&n2*qpLCC3cU!R{|kUifR_L#Qh;zIJqZI0&@RC6 z0<_pHacp~lIut-S3dmp(AaHU9tVIu_KLXar{6cJ!fX)t-O(3Su_ zrsAay2SIVc1kEEvbR%9#EQ81d5Fi1&MhC1CpyIUr9@G;1)Ykh^f$+tylM}}ZS{d{; z^>9M^Ch5^O|NB>2))1{V$vPIaoU-Ov*%!+izf=m|Hy_!nJ*l-;;w^!Z6>J_3KN%sT z9EiYA(1*!_ws@aknJl5v7{u<|-t&@Rc$lNxN?1z zIN*^C)cwMWF&CE~LbWmtdzn5sKhR$GVdxgpEMT?gZ9{B}msw!j5YF-P84C`$V!^Vk z5LrN;Kn$uV5X~1Vj$UKubYy7(5I30Ufu*BzrO*uJ-DF!y9w!+=2h5teRF#obolemf zg4sxHH^mJuanzB4NW&|eHAes#iK3_Jz-J`c#)2cE(;;OIP>TRBUok`m5Cxd9AlIXI!OZPdy&>WC&bxznC*manw&R1d4Zif} zDxR7OHd9QJR=gAee=c1v=8hEbXd`9vG5H@=jRg+o2@y56_BM;QR0CMkw5(;J?G zl#u-A-Z)wLIhHWRrb;iw8h3jPPMCQ?Vcwv{Vk$PcK`#I*6&o3^GPlc$n~kZ6GozQzO%9q<1`Uvspu~ z1}ry9pZR#=25yu_UN;Vg-Y8*mYQZjWl%#YV3r$?(2)0L?P+j8$8YQIb87Ei~pW=ah zYZU+zCp1EH%!CvwtLl{~=a`FeavdA-wRNT1l%D?jO<3>))mGGlMoJ&|a18D8h`ohX zB_$_A5#^1)gcl(jx75%mU!_Jb0RQ+f0JgvMiV4&=XuMV2Fe_Fz-%C`#imeT&uq@Mf z;iwGt1S|^F(a=G&BseFql2F%3=8wlj?V_=r1hHG2RDOOC^&HD9%tpl%E@>6K+hEh#@ONSc{Ai=MWK$|< zMu&>YjT}&gw+<_ecaSr3e`<^3Z`ABq7B-xO(TZK7NF_w|OR|m_fhJN~tit+piJdUS zK=|pQ>eTh_N*+p3`u>6&Ruhy!rgl+bIi}M)O(`1KBLw`k5tS3Ce?$`s7PxFHDkYW| zycq>^_-#LgEP|DG0jVOv{_z1D%)gI9=n4vYApZ$nHYt`5Bnp;!4vUMytLOKWEn(2e zwsnAX-9-a*MnFPaC31kF_&P7PnRL{BBBwlOR*nS?Yga(N^R7+dkaodZ6+GQQM` zNKw}j{BZOym8MA2o#P5%Qa^`67Aa@|EZ7l2SKNi0^d1V-%(G|pgTO>56G#PfawyC? z%MFxhTxX76u&$_NzbBQ~N$q^%8E&fI^JcJ+8!yu1NTIIj0nhnnH~6TO&FZ1SgGQ7;1|)LNidQj-xTg5=1!yV9>pxu= z{rqJtL4Gn>vS1>V75ognfb*3XCPdaoZVjnp`xa!ngkmZDgzIk~fC-pKq(F_yaPkTf z3&?HAHj-`g!B&V61d=z13dD+O5_>$lOv$Oe2QyXY_rD`!^VQmB5Pv! z4SDw4jzjwqWt~)u0<~Z(JYS(KF_)miTVbwn-GwsN1x8%O(!_JXh7X8N82nOqUod#P>YN1Q{KT+mnoK}E1&pSoZd#O9h#k!%5N zk*t&wo9RAG<^o_11j}Vkmc;*NVU0>IiRIg*bklk{9o(hPWD?$uUtFi;2v8wWyU$@r zeWl~#J+IRRwv_saCQ?sg77o>Cv!mcoGm4S$07McikqwABaUvIlX2Rop;uyKNNyWFs zPAEn7M?Im^SPF&R4pmMWfIK*ln7oo78{LJf77Rw#Iurr$-Z@2Mo|`|= zH1lvRBMNf=fDn4*QS>Cm`{n#b?Oz?~zshkCoNRzVSV18p1gh%`ZSA?)wc&oCPV@n{ zo5B#=q$ORa+1rcRj=1@;+Kcv5l{KwHv5dz_-F*GN>A3MYaUh?0jVCDpnx=19?3M=j zDf^(IKhNo&F;Bb;pjqGawqN@LdhLK?qT>nOt&Sp`%vQ&=e56loQh0wbCr ztOic%n0;~YrXS!)=)f)-%?S(Y1d{YZq!}KBJ zg%r;yt<*sE4~N6O96M>(FFU_xeNMRIa%ypsVpLYncCmiw&8La=7`tLhz|O+D&1EOM z>tj*a;^b00vij1ol6xDLDvPurv)tY&l7NW<5ps!I_mI#rPOPDZQ!Ks~b!T60k``(E zNIc{ar=^))*?6VdJ(d+ZvTpEM*xH;ep8!!G8(&$vE z33-#od(lLi{Xz^EzSWWLaya;KU52Tuqft-&mZsv;)^myvh506I0Wl&apiIp04mS?q zY9QgOA+RU#3W_X!eEEV`2eynQ>Q|>e-0(0zpBf&;#u&fcFGj4x-8Z(_#dQI4cJ2iu zKrRq_K-&QE8WSKy!XS9i$md!@C@*;yme_8qD5`)So)s8fOohZFl=Z7y<%7ovs+r7j z8k5O0&~%6VyhhHieYap(1Ls;Jca6Z2qXlw$ZP-^%GI2BnKQ$q_@IM6ueQR30FrNw+}5gt zkMrgZ)4%&271JokBT?u#j1$wNO3q?sfViu3dXa60ac7XbUtn;}p!%uX9fZvEmu(Xw ztolt~n0eC(Wq*ax-VnLHBL4_+g0Da-1O*>~KoTW*3WP#P@Dd0JQ9-^dI$YvN%S(T0 z5zU*8Xd}$=e@UgFMu@!phdW}oFuttxLJI&^V?G^S-1D1-#k;KXwOcTB`lXRmIx~ck zpII&v3Jnxo4~}uV^UYgs!xvS4^q$#v-|~TP zM{w{vah0BgE&G%G!Q;^eA`#r_=D|G7Z2m3G@!RRtCr)L;3Yd6ni0Df|>=@=QXVFa} zOF5{+I7MFj<3aqDDHQi8CCv>Dn+0v?!>a9vr2&{LB?8r zg-2Yynen`e3G%$tdReRXNDxQEdX+F-Qk5VoROf3)vj$6%i4dS!#fZu%IqogRk$Acn z_dWS?3mEZu?Ewc*Dg>@GsZ27^6hayNR7li_iM@O$N|T9|Aiq9?TGMMD0A2aXLUIE_ zfg_s5<$-cB%^acmst;Vh__XxGU$X*$AuJJvW_w*S5Y_HzFG8jiHWQ%Eks+V;>$cR$ zNT9oQ-kRarRlL}!A1ud*V*jBsLL$FL1~^$GjE&+RLaL5p7U`YE(Z=-FM#=2$@KSq4 zS#wSv#biLY5CHi3M7?fz`-FfXPJOy&|FAn=UuX{brI)CtD*?JAGz`XA4reD(vECER z9@Ixc0x)}7#0Z6d7+$q(Cgn^3>CM}hK9i%qazjYy2cu?j!LJEP+dU~!@DAaYMC;1D z){3IS9j$F672mKCF|{55#y$|D+o{O%Q zAC=T%St4Wrt6y}#QRLP$U4kwyq9K&`L8kM9oFFzJ3+VwwLpDBfzWGBnwH1&QI!QFS zI0h$DrwirPQLnk8fR-yV#J%gDXlqhs9oINzXWSERgR01K4Cel0)ukpV*lb#&A|Q7{n6H@jVam0*Eh*qZ-;NX^hM zIhAAE*1eDzy2cLHTlB%~zF5Sfv80dI==oDl+$)35vZ>nr?Ml99?Q3g>z}BaELhTT= z0kE|wWN~D{qtTuj2+I3tCDe!1p6BW?AnR`EKdJ$nsoarkXEDl}p_FY;JCKdWE!la_ zm%ZhH+GMW9#&f-BYXk4n7;GJl`w&o;+*mk706oxolhmTM3e=mzla|xt508_~z5Rf1 z>U7G1jx(K*!aXcXvilizXFuP!XTSkjx}Yu%xHm!x>bIP{jci&UdKP=)B-~Oh&t!nL zpB?nJ%ZYD_OM^}Pe-CFryVYOK-^=}eCDr@ZtBHzlovqXUzV__KYytM+XZ^kQ+hgt1 zi{t&1kVr^ZdAUR_3@;Amt~^Xh4HLR81U5@+ws6Fjk3wwgR`Y#R z6$Z;_Wx1Zx3oejcL|u<#Y*Csn zmQ=Kn___i>vW%D{WSSh1j}=N?6mTpCjLoABPlJ;yip<>-xk<^yko+o>^p}<>5GK2Zd4R&>lDGPv50#I-6Vt7!)FdMroTo`VBaYP_pjOq`@e3s6vEJPIjtZm zee1a!06|rd#mfj60=1et|90;LvuWTKka?qxZf|UJ{c+K+AEv8gAqKT(s3BCVm{Di9 z8#YRkV4ywQ(J0vn5qgT=ru`Q3uUg7d!YFGw+-T8*+uLFxi;==oTpl4_`n9+c;ahyS zZfx3FY9!E@L}lq6@gP)e?>lVlBu?7m+6E7~d7N-#9M~yFs7?)j~eu3woPrF`>=aEHxaW1Nw;IM3n*8nLQgc6F98>rxe84>%UNFFlaZ9b^S*2 zd=gbre_0N_k$z7d8hNq$DI=MUH7Kxe*zePNxl(14VLDiXq*s6MkJ?c21R@4t6!?+zWJ1vPFEA(w89hrN7+spwaP#RuYvMZ1~?%AFuKs3|GYK3oU5-AVk|5323Ap0%=wzxup!N_P81sq?BYzDW#MM z&|Ja6WB@o^fN%kU34aMu36)CU9?l||zx*#~5hf8#XQCxb7OQ2{LonS*!b}MJ(BXnY zFl=QfWhb_iG6lhCV!tnTieb=|@)tWM>UovJOK=&mFe(?u4&7ejJ}BGH3l~QHR7tqx z7s^kL7bqY>-NM+(RlWpeg31%p;U8SKFlEVoa-7RExsi_)vQ-O{NqJtp_vE1G)mX~` z0{OtiDbO9?y6A5|Eub_)GTi#$16pD<--t9ZgBt@cU6)SYyh zcVd(I!M;?goG|XEyU!-d$3nLWgSeI%^;fHZYQp3>HAaL*Ghw>y*KzWm#;(MKc|KlV zTk%}NWd3PNrOgHHq9x33Q7e9aNpa#?38R(xv;DHrVRDo(#}Us-MkV(>?Ig^}HvHtQ z`tQj^5(d-J_Eaf|)-@95ojrL?&Ou}-5fbKi@ho^P(?Y#|lP@ zh>jf9h+;%7!W?2}*~WC#(qW(!v6Tp8r`RRs#t0FnJTXE$d#4UzxSYg~*Rz)_NtGe6 z3ZWt>LYQ=ZA8n>Y6CM8`OoGoz>)G`ztAa45r!^C6EZSKe2!kBqYL;46gth>}B;1=+ z^`lBjvR8jFXx94N=6*1q6qH;cPIURrs}JU+y~V^BIs2Z359Xk~r|Wy!!+zQUqV!-o zCI0fPn_Sn|@?gp`(bqvQn3oA2O!4kwnIxyAAm=-nI;lAo{LepJ%KFLtEq;%l+xxX}&A}w;>-%`MqF<((q0TUScwbwKTDSQbB?se& zbx0lcagvAPV9pFJS4q&(Egm=+gcKoLIcExodV?v+cB0Cf>Jz$TM!CUMs&p^DTNqQq zYJ<6yP9?0r?jJWuzDClggV*68Nr)zj4aScb7v;HfFLi1SCOOeAmd)R4=)*0EH7|jD zoE;+{He5%Dj=Mpn!6YrU>bkQ=#v&m%Iw>@mgn2qil;(bj(+rcGomv$=+kZ|I$j2E> zO37j8=H!#KlV&h?bq6y!$tO;_b%=zF+%XQS3?{c!5q_1ETCv;^K{A-+9I|?n@S;Z5 zH$>_}Y7FLJk|ey6l3TvVawP^+=X;zSCYGmD!V{@57;h}8n~#4M2F#3fNnOIV#X z)<#C&Y!nyFUwL#AE!yW~lNxJwIcf_gEjQbf;v1y}vuN||KlL=CvS7Fx{qH6JuV0Q4 zg#}Z^j!9C`OCstDrqD~vqI)9Z;!21r!=O87;ufMqMbiq#GT~Cnv!AMh@$>1B+cR+x zMFrFLn-XM1`&Cx$hnj-1_D{vqE9r!~+=r5aNirc$mtd#F=zjlDQ7~GPGGB_;Xf zi!;HbowSJa&>JIPT`j@zWkH_|ZK*K~m)DiM`h{#j=TJ&8=`}yC@sctoorF)+3u*e@ zgI))IaVR91%%oB`>enL}XTwB3XZ_?qX+s&oxbn$DNCQ;_^PUbSsg+YvL@=lnPt5f` zF80qM7(0iPC+L$s$5+)9B?N;w)i&KVC6yfFLxiD2cVZ2X{K@jq^Ll7FcFucxo94#`WaSNmU z>j@e{n!Nwn0|E_OnB`n^vp1h>$WFPrXkHT0M<3p*>;c^lU`3OOK zN}wSM!&%Si<@^zX*n&VK6lSZSgz3*$<0Hq79cRU$0Sd!~T0GfI$;o>Rv7rOcfoB97 zpD?FX;ws)NW-3I(6XyJ6+GIc7;c|~YpwWrUE(j&>QVd@JDnWx2s2uf7TOB{$M+m|K zjZM(dgehgn+ZL5`eCY5G^mcnrBNJv#|B__AA9X^BVZtO`#}eXxxrE6&wN<|Sqk)Dc zOkL6BG85xfTbhAJB@D9C&0JRe{BtHH%wZ)bzoe@hgoJDWCt=Fk65*B9Nbyh(e-L!R zfi8XrAS?JU90eX8k}&A`-~ZM7&AmlprLm2(^KTYoZ!@7nr zN$R9MyX+*t=g=rb!c7uwuP)y7gfQAyorMxFt5FWZbi(Cq;wZuN)h7sZPCD`_hKxoa z%%#&Oy9^l(Kp5lI)k2JVj!z>Ng2o>VLd3IuNd4IIY52jUJe?<#g!^FfmA_n3Z#o;a_>?`E1kpLi#EHu=(E<%U80VzPF*=!uOgc+pbj5P|(C--rc~W1Le%){S0vd8KcJ8EObjXhSduGQ18gVcQlUE_f zQhrZ5{1NHcmP(lZf|*!8DPhjJr^1!0-1+2_FkTK-!8*3ZO^_ti*te)9#*c(CMBbjY znzGS8BupQ7BeL?-XO@pJ$?=qmKQ~XgN*rN2xj#E+6BW&_5hmI5latUD*Fne#qotUx z_}f+PXAuTYXl^3HRQ1u)mK^p(hKDeRTTqLl zJBBccm#+5Y6CYHC3t_O{^h!!H;h*FQVH~B_MT z#jl)Vj1LHt-sw?VrSb=pmP||G>HEQWW6^^u_3RbBKA6(pUB7)O{+n@^f2 zThbm(UlsNJBuR-}RS(85C3sL$kR_f>c`%mjxvr#IAEiA!n7c%YlEjmFxI38b(mL#W zQZ7ok3ugz@Y@Hk?cRquwgGtF5K9)MS7e@#4%esEf{wrfU7$G7#a=76fOryJWn56VQ zFMe+5V5A)3&M?SH7pwD_=|vUcft z9s34|7iXLs4Eh8!?V&zde!UH*3m!9Pt7U^Jj|$S(Qn-R!gSk#TTcxxnjfrY7Nhdw_ z%}VqXE&_ zWO2crVbMuiQ<9W1GJ{sSP1%_wsL4p(NE)i)%3!{fDm+PB|JJX@T1nl5BZEP!qN|9{ z+Y^rT7>rpeo$j6VEY*s^oZN!tluhT}%8ro{5Jl|8g`phu2w8RV*MS4%1{h2yw#OJ# zr9wQ%A+qCi3+@XEvebH9)pA}iNGo$UQMcB9#NWn?YznRm=$&@1B>(+^BjlrzjgT4| z05%*K7}?Jsrna)ZEtrxB+r6%_jCHt<9VIBpMo5i3Etqf1#Ay9Axnm(5x?VkhwYQ-| z$B&c}92SgKL70WfrmFHjnU2ly2o!GG9ABO&hn*i@^94})W92HC{N#RY3U7zCwU2vd_ z93dhd2!V&k4Un6HDc$RJHhn!ov^H{5Fx&}pN5LTd!`ya+g5fPoK6HzPN+(Y+XWEuN zmAMlP8+AGA$gNrJFWqV`(IxFz`D z#xPgzSaN$x`EvlvTD@vfjWrwG5DXV`=ET=}`+Fw@!Q;`dTv3Hc-4ORZ(ogt@j6UKuDriy7zTrd(Z-ZsQtIj>qF0#Yu2Ygq7n7uaU19DLcUF}v zwzKL5YlXo?Ig|FjO~0=-7%R+TB`%Z@ql0B_6(-sA;y>(Fg}L42RHvDWE(u*pOFMN` zL_&0on4!WXR(vgeDjxOZXRuS4WG`08CrO{2KT{Y>kBo>pvs|JR2P=iqPt540DxG1Z zFsJbFE_%E7uakg`-~a(Z8f+A%H7N&u<|oC`t%<@U&$q+Jl|o?30h!0JZ^xo1+(syBX?9U&;me)UBWDJ#in>?t;mRLS*#K!%L|qjj1s0Kg`9LJrB`{_CSmlh9R50$ zc=VtoOct-Z!h%X?`I>@7!f0b+31x0^#*+pKW0oL#vPDnoljIoo2xH}xL#~b<2{db^vfdkH0=@gyH@zeXiMRoO=XKPSiJ1%GgpMsM(ZWZHJ4AE z6Jb_A@x#Ts)sqlm&ht4dYe$DLjQxLS&ro?rH-xD?tEErE-6-i6!sy8@eOIy|&-@)Z zaD>1JVUB4U>O@pbUu6&`!RoY9QW;~HD}o8aq%x#xS?B!B`~(Yx(Nud9OwLwyXEH#T zlillw@cZmKCRNTJ{UiK?fyxU@WJ$_ z<$_k|+n!GE!Q|#YC!h2t{Cz!`ueOq0y(ajj6ChX~Ot)bwrB#LpQ;vHQ_VegGC)@

    I7a!Sw#obd_9-tgpse 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�`R*gNvUcgdux5zU{ZvF`*B#z8*IGDh3HQ`DE2In{6 zXWR!MF2vdZv7%A|DFcKIkQ#uGkOqLPhykquasudzpEZ8EAYy_a zE_%Gt!;Kzo^q_OW8bDz1IpgDl4-h^->|nD4h#o15aOersBd6zvo;W=?^n9Qvhn^Jl z!~xU-&k%rKgCVIeO^mSwT-7Ju2{_>Z#MiLad6S9DtMnVq$2Eo)wTTP-FvA z5=0v9Bty>(F)m_s^!U&tLyrrwD~e`7 zf&xhkpBj8n@bTi)#fJu;FFrZ=l<~pAXN->xJ~#M~@oB*a2A?fHVSHBbiNPlYA22>* zd|dF6!G{H&EqJov(SoOq4;P;od{pq!!DogYSnTM)jw^aH(33<`4n1isK%>Wu&m12$ zd_>^0hEEziW_Wh!QG$mH&z7DG^ic8CX*PNUy+*6ib6NzQMu(u~Gzc1v{y@j+Gun(U zqv13eJw}VsVK71SBDi2AQ9&dJ(F$Y~LtY4R;l2S{BBln6+$M^?7!t>&!+{q{F0hn>r6!d8 zaI}FX6)5GP1cx9eSX#me4M$%DfkTPQ(F;mzESaH%f)be^7&@bGb#P~d@rB{WMl zd>c$GD5Wrjg&|%p*x{At0y7-Exh3${P!hoq7mm7ULV^r@Sc0Mn8$Z@inzIzgm15P! zYr;dqOTuHqgTkxB!+DtI5Z8Grx*W!gYkp2p1AAHLy3ZFJN9E(E^DZ zBwN@OEDP34203J~Lk2qVaDe9u9yUBhD8Yiq2%tBBP5=bQkr|GN@o@qlDDV*n&lfyi zxDIZ{cW}*N;>D!~2W)Uq0uD$3vx12cunpK8><(53BXf+bVMGm{H20|_5TcskT7yd1nT9uD3Oo(&!tZ;Thl zi@}@0Bjd^7iScUiXz1$b>c}m+Il2{eD(F(s!Rf~6%19#9k@sbZ{u(+K^;$R&YjeF>o+&IdEaP6*w@D1ILBi!l}Te zz@flVZFROfHafOBwiRqD*ix{`v7um#V>`hH$M(kN#@5D0XEVW8f{g?l8`}uBH8wT2 zIhzQ!G`0|IayAfbXlx(Y;%sMZW^83_a5gfwF*Y%_Fg7r@FE%f>H=75xE;cSUH`^AQ z7F!luo2>&I7TXmYn~ek81~x0UHJb*uDmE&%s%?rb1Dh0E6dM%V6PpuT6PprS5*r3K zCblIuB(@_qHJcGz5nGy#i0uN~5StKN5F45ei0uci%XVh-Ve4VzVKcMsu<5Ynu$9?x z*lyTt*vM>SHW_LP>KfIJ>VXN{5Poi5wITC4-vrW?lz+1T8}rM!(T+dWiNw zchOZnLtoKu^qZc7Nu6e*m*^~*sGxo59vV%b=^q-72Gcvp)@TgK5PT2MgZ#i>K&Bzl zNE;*>d4`O0MRvg=t0Wg$gQP)%kt;|qR-_6t1xbZ;GlB#nAi@*~NHIVGpgh0`K#|HKr3w`+AAzU@_&CbI6ew3BV1>!b z6)I9vs#LiW0I4ZXRjOPGK#?OUvXlS;5~vV>=O~I1q$FU)sR|VA zaKRB1B3N<4vII*-UBQB-ge*{^oTya6LPe@d2_!&~qCx_dDp0aWk$@6R0Vyg|s7Pgz zQpG6=B)CcyDfZ|H&LV|{iqjOQs3AvcjNmLzSxS(SB9#S7R0&6pir_Rpj)-6>DSmVT zj=C~}R0%;xL$H(-AxA>6(-bOESfFH)A^{*rLGTnRS)@Q9$PpSAApjm2fP@m9qMSyM zO8RjG1XsCo#RC&Qutz^|l`2xE_&7S_I`UzPlqe}ERIt1OBv1kboCIKxdSIt1R<2lq zA_WQ+EblbM$`t}gSt;SllqoNC#DnX|3`>AY1guf>6)F*M9ofKBsARE1B}&Q!CnyxCf(45dC{a!#RH0JB>}krC zDzl&?GMvT7(HNEjCFrOICIN~RDJddIk#ZWq&Jhh2pi)H&6)7rKsPr6(DPf9}2~InX zX5gqR0RWF=U@KR!lmJD9DpX2<02C`yra+;B<)y4Rkstx51Bl=xLJ3u-SfOGC0YQ$! zFchZ}oJuIb2O>C0Kmt-eDB^>LpQc=?0s$yaQc^^qQbmdu7E7lp5Rf8erGyATk(%NZ zMMVTFRG>fs+JN66&2OX+63BIaj@c$SR_YxbUV5Z2nYzM>$?*TVt+n=?bXDtW&N^GQo9V2ydsUey(;wQkc9peh z*F7ssmM2+q%Us z;kXrxZnQUV&bo0ux%o%`m|3E@GVkEol)I~3W!Ijal(p8c>uSebY1bOoT3HYwfPmSy{5Av}t7u1T=xTGIRIn(WASubT_TcwSKg6 z+Ct}tdhAoj^n~s zGn3g@q!8^%C(~}$o^@9CYOTyM#|&oBv(E0WJ=^1^oRiX?9PMVNKFrMgF@Kb;giL2w zI=k6Ixb9jjrL~z1m)#vewm+)oR7u zb+vXgo!wo1RM~1~<~Z8STzhqPt#eXlDnz-mWcU-hrfbMgC`qWbijR+rNB9%|gh#E` z3~3E1H_NWFnLUr6j8txVBiE3d<9I69ES5MYm97Z$YJ^pH*9;^Ofecow$y{fhO(!=M zn{q5`t#ZXNGxa3Lb=(gg-E($3Pf2OdIgOm=G~!xk8_lK_2(42DpR`V~>!vxyU}C2m=fpz}+2$ zavY1rnzOmu-OZCnH}lLnJ*J|!b+bH<&gMxyv1^sJR?cg$#o1m@u|2Q7Rqa-?cC{ym zV8b1=wz!)~12{@4%Vyc#OI%A_+|-!?wbJgMt8QkGCpSmytGl_ftg?2Kld{JoLWBsB z+10LASMAAl2)B|XNJ@|-L7GVBC%c(1nB9}3A&^Qrj-zx=I%!k7Lv~GjPT94bvuSNQ zYttIernAo3wCk>$wdo&u#wYIvOLw2>8yLt3%&B#SAQB00MyWlJf4 zemJhxno`mox`5d`Etx56&aF0YJZbaC%nU?!a|OVhT&;D*(aCjpuWCoR?z)cBuC;de zs@7U5vy>g39M>GjO*%QIAkdx-h8;GQlDTG%TTzw~$~B!`&*moO>F$nBj&>cTb#j!l zSnYY;+?-j((#gzm%yG=}SRON_O`BT*T$$-?I+4aT=!t+*`p>vwruBs5D=t+gw0%eNEp`H(T*~ulyY|-Q|69o?KzuL%5faW z9nl|-e!y{*qnyWa9M_V&&dS~0+;ei*K|&~{ z$5oHJa#zo*o=54FEGtvWRc7YO+%04Cr)NvblPNcCp52rNp)6ZA?Vin^$2C1b8(_{J zw02EdEJ`Qk%ChU2d(N(uGS}LZ_N?4YnF}!M>^bM`*|X_nZmzXXN}I~b%#)dWHl1@) zZmzXbW@e7ERvh(sxNY0!?l~!)vuU@-ab@nNTs^3B&N;+!bIwU??YOSi7N5WfFeK8U z0l-MuxPwK7*`u1#mpZYLvfLW23jO@XK@Bsh_TQ0AAO~B{H+%jeJC? zLS=+0P^7AqASD7$A`oo=6Efk-1f+gQ86nG$Cn-~=I6c8QIO0BzWB}!e)031c5P%{9 zD^y0vB4q@>Jx39cDnY2n1g8<8NLis0g$2r#EL2E{k|LFbh)))vAbjM?l_(!iQ=~wk zN|h^77RaPHMfsqB(-Raa6P&F4u)s+IKt8faWuan%Q&0w0u27MhA|;CzDN#~Tq^OWU z!j;$MBPLLZfKwEf+atxP$`qH62v(f1V37jFNdi)$u1IAGB8qa7szN0KSe&G?7;z$j zijQcfgX$s$Dp7W8liQdXR_I6)yni_?%6D^7FcBT%edp^_!aNeh$-I9Y)r zm4!+bC{?ORnF2-11ScpYNO6LIl`B_BfFfmr(@TpLrD z+oss_rlzK9Q&Tmrt8r5`8l@&{VU(KmT2X3pYKqP%HCdz8Cap%NY8|Cko0^)UQEGB( zs-sNFDLGY}s!i3Hr?we|#afM>rX)wH z$*nePH41Z-nyl5jMx$`8R+~|{R_iD=S(8z?CZm+lF(H{*l8{9T2O*P^Emgm10fyy5 zmnLU4AQwnW$Z3AP_zcLMYPFolX+N$Pp9$S5mxCU3r(D;I&sw)j8qQnJlfp~iv0i+( z6WXcJdECdH5}ijB?^Jj}2eP!<><5a;KaDIg7`ciDs+V4!U(R}1FFvDnG^cs-*%Zq` z-*F#H>$y`bmh(7mYKQY&FFp&M$Mxc~ojbMTdhr>{!K*^6PMtb+X5r;YG;);~IbL3= z@CkGA@{%BG@nc1!=Bu!q_nMjaLIZ#vx;SIu^%6Skb_uTvOlB;eF{j>z1_*t}#TnbV zURW;PF07ko^U$etx85i2BA_;F^^E0oO6+Koib^zrtFEg$%e(lD<(rRKe!H%EKMYYTA*SC-XPDMpU#R@+Fopos}2U#I#^c-ZWN3CnI2{C7W`f98Cx)Spo zB`3H!=repWeYNGMOaCe;Ljsf_zLZuXYd@Zd>d;oJKw@5D<9=QNndrV zb~&!RorXrHH>hsQ5tCe?m{6O0pYnheh7g?;8sU3z#W5&f#}ZdWFpFy(&zUMhEM zt>u~QR@QBr&H1@3WhQ-)xRQodABI~RlUOjc)z;i1bT_fFbVW26JEMo>0NwA zbDyI5AchU9nRTiOX9QxXW`4JH@tJ#fNBa3TO7DEEW#p9B^Oc?c+0lgeoWlXU-g8+q ztyXsW7DdB6uVXFq)jiv8`cR>N%uQdF?y88@2 zaHn1OYrWp5t?D_*)U3Ih2pr?jPxj8tPp9Bg?Kvsx^N!3k(xS9l_hH9=mop z3M0DQ=tt>tSu-Qa;JYb|xVh1f{hiCO$>n2zD4)4Vdi%#=697DOQCDluD#yFp1?Y%P(5~uLmeY=|7(g z2~g!-s{VCzR3R4<5)!IHKpcpW3kd-c5(;vb2eDY+C(rn>qkNaoAI|b0qtOTX=<@b0 zY%<*?Kgd}?KE97N*$;kHxRCd7p|OR0xOjZ5PpE=n2?>2dLiPiNT3%ld($uKKXy~oFX}yP{bEPj%8s-jHzjE7<1P2OogDq5 z-nuG=nOp0`xL&AO!X*WT6C`Q}R9m7}~P?WNaVhDlP^(n|G9=fWpMpSS$;)~#RqML(zh zeO%Z?l5dZ7xHX+vR@AE7cFO{Nu27$Ek1mX2RZrIKpq2!0&-I4pXx!AJcg__!IX!%(dO8)1chn63- z-{)b|>%Z%2TDj+|JLmYSOvAjfo8zf_R+{kvC2kG{1trRV;+&s4=R=G5)H(k++4yGT zLyIV#c2{z?1o5TB-!2+2KBKh~X0qUcYBojZP;o;QvlA#ltIdXd1*2IPqgfj1^-IGh z8x50R=K04-=bOz_?>0f^oFL7nmjoH*nWrv;xV`4eGri=75ha=DAG@bc8|K;^jTfI; zXV-Q=5Uuyir_Q~^I(2D(BnHx}^}$A@*Kh#g2iL97@B_ErVF7p+x(o}zvwOR+ z06epIMQcKhL6~nk4~^1H!#tn2X^be%Jk2s!{(TZ$*$T2&wH;jbwt3h2YSle?{i?Il zR~Gcma@*!BTkp2=5A?2vO+sJ!w4HKfRammsRTh%mav{`rs+ zUC&i9sClMhJy*dX$1@cNhpT8C_aPfoKIl@Mio>u zj^l^wvb_G2pfuC4IZE}|b z&Zju%=Ah{uPyK7KEqiBq#^ICs?es#;I(6#Q`LXuXIm^w#$W=Wk@lyS5CY(=*eqL#& zFBCV`wc1+=`uiBHO&`^NSp9Bpx+v6xpwQflQbr(}>c@=%{1f zF6)@j+Lt8>Wut8-qjlziz=bDX|;*D%jJe^Z_FPlivb&k1%=K%P4Ll>Ss*UZ&s-nYcSv z-|ka)y?eh3f(?t3FV)X=PN~a!x~##?+r@ds>e9bW+O9f(y|V5s?T>~@a=MzPSD)9# zIlt8CJ$J!=QJ2pz_KSWM3Z)bX+s^4*X^(WGwCe!rlvfk`i zua^4a7S??CT-Cx8FT*F(>m4POe0srYX}{PzS?P#E(%W4VzOMmdzgizt5jk{HdrGB$ z(l(Lb$*)Nn1d0GanM5$R_w^^fP*cx7woATMEJX2K#X=eCh0agfu=z<2JE%SPYouTM z?RMV`lWK<@)Ser*HQ7*|-BKmlHO$pS{^r~5UV63id5GR8v3d9!AfMW$v`sch$xS|{ zBJxfMGtAL)&K8>zbq@ek~T-&<<+ycKxDG{c9~ioZb#K z^^_s-aew?w=bUs-I-NdlnEiMrf={1e?b2!2F!|CuOp@Sp*o0o`Q%Wj6Nrd=4SFI4n%O;-s7UMNkA64PmKV~E>|GpaN zEX!O3-tkL<>R0;i*#Eh7(2i3N%4dyPrv7v4D`!UHIg5)}cl>;M=$>UR3hxN|KRu!(%?vi>ap%0AJnMgHbY{hQCQiF)6$_U-(iOFPP!KEo!Pv;4Cz zrk9}-=*&gZWmDFmg_3o?bCz|5N}PLll<)bk4N~hwY>YN?hWzCaY3ZKsymzKLT=UjYz^P+YxK+f_DrgLFI`j2Da zJY!sdE^UWTAI=4cf6m^`7#AZhJsil{e`bt}&!zcztK~pD-m>oFG@nb`8FC<}`8en; z=Q1y?>s-7v(Yfigd1>8cK{~DTAHL(Evx_svWp!yQ@AePq(yntsoQOB)Ku&81y0ltd zytI{zP6P7Kxls3UX*@i>p@m4{~@$meJjuQ0Qu}pk!x?|GrO;+wrmBv1KMeIXE||-E3W6OpbwBw zXIndU<$3cHxt<+R^zlHT9j?1xwQTK~wFhW+L@W@$ZrRU^>Z*7p-XdJn#+0c z@Sscc;lo{*7UVp5xXWoh?z%J|F8ARy@XDA-`j8h10`733OY?DQK3vE_(67^0elKlD z5Wi0QE*2(|zQc<+ZFNmxBI!jg&4SBG&)rL9)Zb7?&O3GvTq-UZ>iwAJT9m$q`y zbI@t_dcZ`|gPhiLmzYTU>(Yqy_>fDxmv&u<^`T1(;(jlU*VvMRHg$4%Lk2H1%f$*} zworiyZs5YjjEi*{(CwH=y1g{N?sJ)mqyxD;iP(P#0eR4+xqjTorPZKFVgzo&0AdI& zpqK&Ga7bZ{Fja_=f-rWN0Xc2w{xFerpiBF?Jc%&4il+L%oygH94Yguy|M zDpD}xGQH(A@g6ae^wy=ZE>EHh?s)X)SPWu2R9wcbK$! zJ8f9!?cLX5QnzjXNl^YL!_B|VN=c|B+Ar!%;%_d)CH`#$U)DR;zIL6Fmr%_}Pydw#7UjlRP^!Z2W!%M_%*nKMfnD>Q@)RhEbm`{bLz}$W8DkUF zp_4)gbO54-AZDD44eRHeb8i?|p+LlQKGd;p#<`J>(HVEgDn}0!`A6_!{L(i&)Gz6t zeKnEvYI*u4om#P9(x;uVpC*zn`!)J^FFgZs>^d0pYZRY-6n}huJ9kXZxav7bO-k89x6e7JY?t-y?w;N~rIb!z zURRTJ>eA_zl0Pr^i|;7Esgz!P+%Wm&i=KyVf^geFxs%`?4JyirhoElu)2?? zF(UQq(`T48Z?)X7>0g7>vfK$l%$9!fxBCcz20C2C|4ndO=^Qq_(`C(J67AP?S=bg9vXc{AKPJOI$^qqVDbr$SbyJx$8wQnGD&Og#`=dcO& z>azB1_q1b@ii(PgYSs=mjK96J{4#u^MZUaUzoc{5%F%E4iF&GN{G zq{~{?vX(Uu^?eebgVZ|NF?>8U`cMBj0OH3pk^41@KV3S9Nz!H5!~`lTDimJ&*C1_} zbarl7J3EJ6zoyGtTCiW!IS@ylpH98{*agmYUhfBXT>PB%1N8`m9Vl-)TNZ z!ef=yPp3ZbNWES(n-V`7FFs2%eTGfm)1K4&X71T7=9>~%4}MTtK=;gfWBIN)n$*HSNAN`tW)RNKaQdfE)m3opVxM*HHSTVP1He`VH420D=-k z%om*L+T7@?dr-Z;qKwe6@rT)T(6IV72{yhOVKzm6WH@qOKQbG!IveM!VbiOWQf`vv z<}6)mdzL@cuo}fKwKYNc_N|>|UuGlnhDlG;J8+&ZCFdV!M+^Msv=dI4>ZbaRwdvjN zj?>x4t;y!IX}c%bwzHe2Z?{Q$`%l9-uO1}wR3RbfH(Ot97;i4=sH2YOunrqx->j_j z98$3nc3E$>sZd}#9-6P^p|kV+1o=?IIA?z~Z1dW$Z0MY=ec#HbgVx2l=i!^DzFPCt zJ^wh0$~7WaA#vt67xUCZB$RmSpMNWGv(&$@CO7MOwtf<ONH;sdM3zr_HH%cibGjo^SHEmYv;& zIRiP{((*3M8Eh_RvI*MNg`!PwS)P3#*s?rZS^ly1oNe;%Q|L6QsRl9h@$*S%$n^Pk z$I!p)`n>b%9WsU2_1z}Ux0QEX_rwiga-Da_&yJwGJZG18n^gb&yZqqi-uATe?~d}v z?a6nUi!PL`*Rx<*z&|e}iXF(t#4GQFwNi(NV+Zl&q~9Wa0a!((ETKV_R0f zCC&Uk&vI4w*Wd&_%W=XEX!vCEths+Wsm1W!6C^tvJ z$;v}bF@X={xelGwcKEJI&CEkZk-etw%S=aY2l)Vk&!De&#Rb(O;iIMawPO*D+FlU~ls zr`{Z;+jg^T9Cx!+zay=-O1C8i6sQS5n>t$WD4T4~Tr^g1|INiTsnhl<`^+c3?#LlT zw)8`grDaDee2|f__xvyp^AjrBIVq~+4uZ(jW-i(|-`H1-gu5N*(zz>r^|E@q-1^y9 zPrke2qLx(O&Ro=u!q+Pj=_)=sged*{Sh5kRDCZ>)ebnBs@{=8Q0D4>LpnYnkcImQN zWbp7b8ROaXwk>Ck;*-^b?gRAcHGJaYqUqrE!9^^W zwWN9ul_V9K9hbE@V>_3&?%4h2Pwguo+qr|<6swi2KiVBKwXd9?SX?x{#YL0qDHlx_ zL`sFihyHnAcw5d~)*j`1(@%36+wbMJUyj%I$eVQP? z{>ncJ_V%mG{i=4Pzty?2vew%YgRMPp+Y*D#KPqXzwr>Bp>idqeZ~r{7+Ui{OTt&p3 zXDYrg?bo(>9rx2YJ5~X|`j$kmCu<8I6K6T<9QEAu4wJU-9Oqv*KWCr10d&5( zcWFnd9jQytzfMX?y^~T(?`V4`rSz_$=C=%jX{)Wv+q$SzyCmaWeho_6P_j;x6o`c> ziW4^CoE0**E?BYTwzhou{46`RoftW1p6P zLQTmzR1oK1$I*UuUODb^zq&i^I9-eQRVWn-KXwkq&4EIl*V1`U)Z0JjZf8Nx$By%{ zbEs}h3MhP(mhGi$;XX_4IhRe&Zr+XC>O#pmo=WvocQMJTZ{MsOIp4gkmhQa2dgmNA zff}detaI$rKFQ13+1(wbvvbZgf6P+*Cj9h1O_%qHz5R_L#4v5X`Q~|b&)M^pGuxFF zJuPyR*SUy433A{{{{%Iv zIGt&%F1@oZd7}=7qZ_>96d=<=7uhohCSo!)g}TqhYUc8ZMprZg)$U zqS@wNc+9>ujOVFW`RYbL^8A*~r4QmLzdZGkL-5pT?BXOkK^Y9}fB`jesHkR}%WtEi z7l6Ts6ncCKC&B*V}&cwkYJ1_bEtL`3mOMy3^YN~eChta6^-I&RdtYo*FOg3i}##m9L^ z+UC=00p_>r&Bu>!ww*9yz|x>-@OrRwW-6GR3u0HcaKn()&l zJ7s{Z(a_kZT6OBwDKqn+W}P~ZhDzv#AHrys1RO6V9}Sg{8Aqs~1{KweFO7Z5iVi%8fx;YA zRI~0kfT&{&71eA2Jid$gC=a50@Bs)6=cj*gAlK5c)&jEmj_@T_y{^C|TTFcRw1 zqs-XKr;jjWayA{yjDgfnt7Zc0*&*%5&`Z#3b=KObAVlejC&C2GO@eEB1?>v(81lT}oGy&hb^}p|PXG zgE)3oRSn~udbg%w?bJIq4eOlx*tL1;-w$41$aB@1IRDKvYPBbb^rv^;t*Po4^|9-q zdUrcE@`A2v#yT)fM4dW=`LU}qL9E_Ybzu5M-2!60E~ciU`sq_tRR46xp4UR%fO*1n zRDHcws=Jo>Yv=W)-itC4iJx|6o_hZ`K{yoT?AU>M+JTWs{nR@#4dbdaVm$SZOvC0= z|Kw~rS#4eIXuL3)c`mMcO$UF7U@m$Pa;0KK#0 z1hV*z{x@6lq^z;_E)Q1j;++0`R{=tIao2gv?Wr@q}FO1r)Iq<4%&ULaza-Z7FY876TNy9|}O<0AfH%8rp#XaDMy z(`V;%^SSxte0sM{pPSD)Kh6gAYwHYf-CS<&qAtJRMWxuhayO`7+oc^Bv3zQWW_R(m zQ%2IZYKSMErzM>-5_u&Q??GH7FGI;Xt;7!{>r^gc%0*Iz>Xeae&R!Xbv>WuRdJ}Kd zuj(Am5hMeGK^*vehdI zGhZm$kMmc~AyfC?ed@f&&Sg`3=TNfFdoG)@?krDBKS`mWKK^|5hE?C7VXv?LGsKp! z9%S^jy2#_z!J*3KlUqb)o{#Ge*e}YHrinOllK7Gbai|4vs8{EzKUZB+iJSk(8a8%f zl!kGhq+ze;9E65(l@LTc=OHv~KF1LqJ?Gpoq93^p_p7?BgTA&L9MX;F`hV!OiFX=6tXcS*I8abYJ)oHtt6w$o-cAif1Jw=ea zo$Z4Csuz5&Lc_+>%hNAeWz+G=Aw;?({(Ko}*y|^nGC$|^4h+GIJXfIs;+gfyE5tV9 zxhex(zIS-8f+CH7Jy$_d1Cx{rbbhQwvHe&=m<>FCEqR4Ft9Y)$z?+wAo~xJu^G2Sl zmS{qTN~pZvo*_#G7zJl@7zZR7ID#IoXDDhwIw63NK#!DZw)S$RdojPAtq6*I2 zZ?9l{TOcn(CD+n3uT=ZDcaweU>td2#y`5fHll1D;XT4J2SE1&mTFbOQt^Jnzp1oFO zqwyh;RKH>*NLENJF`(XJBuqzalSI?mSvtLA_v0p`f(#c?59u?KjEWi<1AcnPzT?zu z>6bv1eCZy~O8h{OtAJ4Ap<1t{+awbI9Q()Zr^`^jAWHvaD8GpElUneaBq&Nn#c^m8 z70xDyC6b&2=h<7vc*eexNR;Zi3B%#KuIo10bzOb2q;FpkK_kY88a86^a>z>ufuQr! zMfpPj))qjlnK2g}D%@~}i7gyBV^)I!4Kq~mfea8W%$ZG}RBjPFAc**OkVmE<>)BDC z^vSeelDhYc`gccv&b_{))O_hH=V=(&f!(&uBtQ6S*mNWEj@&n;T-lC^XQk>(p6|`29lPfla^3l8IMlD{oqNB!%Z>7(B>QGZ zsrl^kc3~3VdPR`OKd52;(~U5a`E%$$S)cgC6h!GpSZYAzsv+XMq>@zM{>3E7RstbD zO{#vb8p4fll2p%klvF>HsI%2VpPgDJ@!6*xYd@*Gm{w0ORO{Ipj5qp`>-;#q*>b6VgfGBTBbm?sebYVv zTuftahp)Z~@%2XeZ(jTDde$cq^_BgZM0Cq?fR%gq1kYEF0G@d_O?4U?UPC}@dgnot3?k1uUxCTYbI-?DQqS6swI-&W7t>5`IawnDzJHM8N3MG6AT(@DvedAV z!w8{a6~5s3k zJ{08r9MY%u>7(f5=Iwo3q+Wbw`_xW-h6CvN+%T>>^X5nKE6*78^*&8+AN^}}@JC8H zoh4F#^$rIx2VgYQOzK?bdjRdzhcDkgeIVkSDLC!ONLKDS4Lhh#orX`^r&CLfel>k1 zJ%g`;HGDExK0ybkuU0-kD}6Oim%fDw==_B4p3wQ`oPQfQ!>0D>UkA!C0UZOn$XVwn zbdj@d^Ak4b9E8qK=s@V4qjK8tbNqDL7WTl#PoLFSzU{cYJHA;JI^Vq7snx7HGZN0X zJGGi^K88!T=bTuvApFwmd5fO=a2zE4&<`tu{601N_yNmXUPBOe{O8hYGtqrmnw*KZ+7DROTla(=Z~4c8 zGfV*JK=*{uS0A2JRmKHkePMzT6LLh)w1t14qyi==L%R@W0n(ZK|cQkr5 zURVy^snrbh&0ALV9UID-lJw3wOu){ifgav2EKjrDrz+Js-@N6r{_be>oUd+&O{7of ztd;7U%ccrI-nuk7yY~cpX+E4LIxX}a7jn;b4q6p}T*!Sat%v*gx4mHISqm`R3ub=v z`t)~b;+cz=6%fZC`obJ9Kw+i{GhTL(gNHIa5V6CY9m3dw4G322>TZ+wo6BE4H|JRn zH|IB>-_Icv%lS>omMV%y8mix%`|Up#SgosiXI=F&{pQ|x&mj{AU{pZ`2H_Ky%d2Gt zPCL?mZ6n;xzgoEv#}~-5GKzj}ZZu=Es);uDpC56PP4sK?20}D)DdTMU%}3cpjK?>Z za~KK#<}KlvqlswP*8Zc6^K(Y*GQW)*{3zp)=`X)+&SO28M4NNcGRq$EYdXJCLuQSc zHbMOM=I7>L*g@@C8}w^#96ISj`~Vws8n$uO2jo1H-(1FN7+1w1BY%@@{N^7A&hFCr zwsB!nU!#7_8v@HpXY(DW{^Q=^GS22wPQ!TYm|HG4_#M}%U-E{~ugzsG!_I=-&W>}{ z8DVU`xoiT?$aJb2HnN*Fn{S)TIGb;vw>}@mpU}4*D_S%>-m-C|slOYAWOZ&A!Qg=6~Q+DOLv0O~scTT^%D>kU)lNj}^2e@kP``SE>6<8>$Lpm+Y>-9H8#3rvL#e)6=nN&5=bd9|nDox2XdOG6M4fkYs=n*EV{X3lQHqJuug;|v;f6qWzMo>i#DQLh6BRG&G3eXKUJ3&T4{rVY_opca9 z`0jke964;jL1*|H34L}+J$&|$Uj$>8 zP)frm{q!;yRq9beT+~90K|hbUbd*E@9ei+fbVMc!GHb}RA@fFtiDsj-?lkInpl=7I zWFjg<$$h<1l#81C_R1KvOKJO=&C4oUO~LNimNZbZ&eNKtU)|o>9-KitXM0$KZW_d& zh6Uvy^zB0pJ38vu(Tx54$Q6h|{Th$HfBMxN#^&uIG|cjBE&vy;9xAaSLoSK4<8Hs$RVUN%#MEYpt*(=97 zc{GXIyH4cpD7OE2#%W~@pR&5`FE%@_$x)KbhD zFN7hvxS`{_`2^obPKcu<^DW6Vj8a*qVOaXrRk)~~S`rw8_GwM07M)){M^TpPSdu21-or%GN2Av@>LMHyrw}7~&JKiwFcF^J zkB`d*AOM*Fk|YtplyiIp$vGVN)6=77&QEvs=;5+X(lHi551;<^IEP6*F6$k4q`$*~ z{OBl%k4G60J>}t}ed<6g3^q0>(taMEpbS0>-RiB7Pxu0b|-Q5r1cg>;lHTVIuyv(wjwBo+|Mt^k`rJ9lY$5Z7j2PNur5E|7Up!ZC86%EEKV7<^SGL*0NsN*h z8I6I%L_9`LH--%}aPUkt^76k4PP)@My`pGcO_W}q=h*aXdJ>Nvon?OQ@Xb zj|-)=dDHxDha2w7Hf*+R*-`@>HOw()%a|{eg5C32pZ(i5A1h@f+_QgM66c$h&sqL5 zKV5=pm=x2n9X?%>X;>MK#;TXtqF^1xq$;W^8H7 zEI2j*CYntCoi7c5W0D3Ynm$3x@r(1%e*EHmWn28>IB!|W7;w(ATDlM2vs%Ot@8lQf zk_P5@FcIgU{qd`&qWWrOcO{vA%_u2`i>8nH>5>MrOO0GTpO#AiApn23xLOvFFRAZTy-TC*Kw%*R7x zt9k053AB#YsHXRphDm0YBLp#UJXf7S%#RJ`sY^QZ$4gU5Ii7Al{ToCLnr(nnXe^v{z?C?Yl%N}CH~NB58BZ`JM9?dr-v5w&#pkr`DbfCtyKLL=bjxK z&T~Be+Z}(t)pQ)9Y+_Q`#8YoIC-`{id&v`wah5g_^%-Tis37ai(zJK!W?Qy&@fqh` zjAk8e)|lkk9p<2VXPGk?dwg}yGHWpQfODw(x{)L!K4aY^sy<_0RUi)atNQq()Jcfr z&)4m>*&!~fF0GIz;%?MU)A)F3lx}z!$Ob<}qmbAr^gMdcv9C^@ou`LmEIIa?MAf;7 zeqSCg>R}=(nTYxZK#G2Zh(a;%>1)PDm_*e*AAxi}{%}5uud(&x>noKspuj}cE5E!u z0!j1LyF32;@YT7S!&lz!*!q#@NEYVstm#*!S620_$~Iryw5*yjN!60-`${q0ggDA3 zzRD&VCU2Bf_fb+}6b+MJq?KE^sCrw;g)yj3>!Tx+lSOayB zUq@+1QzdH9iZjPM@QcCBfv%8ZUnQhiC z$+ppr(pl-8E2vHB)DXnx<9ckCix>ZVPrC>e=8>CwtC4QbiT+|(R zTww@<&VTGbDW!C?N?pfWkdd7?f4hFQ*PeQZAb3Zr?*|)3w+oI^3^}OC-H~!Fh+H)W zng5!*e$^xkB3F&!<>gN3H3SU?otV$qzZQ?}O=HCNdfS=amQzY8s?#buUB1V&gJQg3 z#Q&I8su47Sii!#a+C2yN6Ayu7{i4np`JaAKr{0$PCFzKrkKj|WV>B#X zd?s6v8c3%O(r)dk=bDbl{p!kHTFr3b#f_XS)cn^HpGTf91f3m}w`qT0gEEwtX|o|e z&*kl`EP*&fmLm|KIIlnYf6lqAys&iS~NS(vS_^cY{x&4^RM-7U(osD&3_ZDW@wp7rp3sw(?O74uKd!kxpL{X z`UrlJPd#V($j(*YxnuS4bLp&*<<+Nc8Y6mFYJSLf)soIlryt%Y?}i)5)!&{x51G9C zG`)T})@Jymde`ep)=fTd6YY*~8z_q7&x4kK$L?^C+g!9eoWmyH4dw6Hz6M1P?dP9o zNANut?dLN5B+H&G(5da3Nczf(Je{OnpFVw~6ly-5nzgXQ6nM_mi~Oj6@{@N2!HxO{ zwrY2td*JtdpXV(4pyy$DWfSyV)-2Fhs~whyK8nt&z2n=#0^MufvBm10m5(ATyq(v+ z@-9>Ej$3^x_9n#_YuyZyqUvH>&E_V+nX@nsCi@Nk33g-fDJo}ABJ5$+&pZT%`J5PuAFaB z^TQf8sXgc4H$Ai)&&y<5445y^QvI9sF!XJkn@=#|g_=H^Y!JuL**UCX7&h5ZzZ-f8 zdiAkc9zJb%l;1d8zPY%uu9W93@Jh}9?pRxS-R*e5usJgxfa3ur{%h4r+ok$FaOR0T zS9LK58?V80RToYC#~=MsUh!+Rsh1AI2``=F`O`i@(VlaDZl|H-?kJz~NZ)hzQC@D} z!Xz$f$H&ck{Je9HD0I-dVJl}5Rc~4D7wdxCm72fJ&Nht^zdNp~Z}(~5QFeQ`^RD|z z`sUTQdY^z#`?9(w!Qx~T@(bvFtIt>Ri*rsJw&UC#CBu>5byoO9dKfCPoI2&CfBc`b z{L-*6Npk*$N#FNbmVX~7)g1`a$2o_Z_o-_^B6a@J+qz$#b4u@=opa9lyic8fPQ5jN zk8|mBCwE=#Oq@&3sr2v8(Z@GufuR!1CCiTTsr1b$M}00!vR0uI=TG#qxXbFI=<4^@ zNy%~EvuWQ)=EsfWI1r>4iNrYt^W*k4H_9&@W%=0o_uWx``OR1E?ce2CSE|47laJkP z9{xFP7>|Fq<)3rNL|3<^_q?(NFA@XJxloBEy~nPc$L=@}D|%~l*<^vR1N>M!TE0WF zWQ*lrgR%wo=C6E|nwzigljod&KCb+m&h2n%S<*L`El4EJHV5hc}z2T?FwQJXdi+hl{FzJy&r- z=DBe5-%O-rWYyOlp%;3acl+3JxVvSOXuHk|pM2k;5)b#BHmo<7{L*{doNf+=Nt5TmbEE1#vNvzSB6r75_O{*5<>nm6aqY~*-LW=;kxkhg&wZNC zJ?Ur-5~;^1_4A~=BPG*wxz6X--F=$V`?@;!9CWD$i_3j}yanW<4`=yyN2d18H*e#b z#)wk=8|XO?3x-NPeEWKMKJH?Bz_*@A_ynI`?W3z2``;G#?ZJScxk$yYpn;pfUO*27CsXy~0=rm-SKV?%e z4FlbCDn=r;dm}CLBM3Erls}(vckJikJU&t~4}zn-BPH{oOZ9I~rE@O5U4o*>-KWiY zcsuB9ywN18KDM0ik(+~ECyGC^NmP0GwmIlLyy;K7xeTAw-<${NRE)%6b1qck;hclE zT{e5{j`P@-^Wf2!g6Wshj76D5)nno$sy=pA=$nVWW4T`~uc4CkC-90+!zUnZqLx>eU_h_(j$-S2&ieTQ zeH4F`V8A;{)%SdJFkhX5p*2V({?KQb6jCzJS-Ps*cOwOURf9y@rjH%xd+a&ica);^ zK_8{)C`Dh!`OQa@4Wd+i@II}abI(Vq`dufAkkg5La zc9wp}^gVZJ4HARx${rHP3*5;`J0_{B^`8`Y+Xz^7@^H~W8(y@a!W>_)oCzc6iZd?I zMhr-V*o+v`1rUXz$DBss+#rJv7XX18Kg_5OY;1rI7Gn6~Wd;C*>1hMRoOKe>>LCAl zG^?K(TV2^ClC*2s=9JP7?C>;vN~sH=UrSU*>x?ZSW6Ty*#L$5&z~B)@5g@2?<7LYn z*wMF1p#|sLWc5-?J3zzJ)l)j>2G(eHCwSI#6&51+(Wq+>h}Lrz7Fk>|#}zL8$1{-Wh=OpA;BAA%%~B;jCwa?QnnaD8Zuv)2-C!j#-36vIPi3v zQMz3ov3ArYy+hwe-`&1}Z?5{${kaMYAb#~+g+-Ykhq#_8_;@DzcRxlLFhBlC*vm1( zP`w;_*$s_GR)&5Yde4uxh-q2?%x2^^)poRDV`Oz&ZCAZ=_NRIWo-Y*FP ze(o2g>N>`=>SD*}tojcYGkoD`QR3T&Wa4jf(}qXbIKrgxY${gXZjaeHpq_T6Lg<>kg@i1srDHPMEgA&JHp z{WK>tW$ssZ;FBqcAPWJtS^Ejoxy-u)lUaM;sg^D^U}qL*Kq-+QrT1u5tKHNy2yExo zCIAC4sHihzr?$=`=*+rH#ae)&K6*ciuye=&A}>71Ld>9j88M zs#)ir?Q%5ZTujo;*Xr7?2b}YNAkMmNyHKsK7fna?9cOtGjosI7Ffkq6pwT^L=sWfr4JMU4ymwESf0w$AP7>*7(LAqtb3tgIK;K_o(%ShHwM)@?3*q{1*r{jadG6>7rq^!V=nMI= z3J1~tgNOS%79TeDh(g5|9IEfu9%<-hM}7!v>Ixgg(S0|DaCIau^y}VB1&^;6B<>)w zB|hM1>5-bHhx?NTTj~a(i3`qEOFw(Dry{oM(kyg8fN|vlEAda#?Li4j2belKRt-lK zrKl!AS%Kb5Rr_%-d?NH5?koY-7eRgLa zi_Qqjr2?o)-h~nr9T(cpYWIJ4JrTPO`|9*wh4Kt5cWBY@dS<$9j<|%DXwmnI;y2C! zxvlLjR{mUMZ1!@+iFF;gg|a)JsNh9}jiCbw*|3}{V!lLb040R>ynB9H#XdAWZ>m~y zPbRaN-lwe=N;qYiH#Qd6)d~JYNN})FE+EKTQRqC z6YwwxpE%NyiC>P=;zDkR!8$9+ETHDCx_NyN<%lxnb#%< zkMp|^z9O)}SNkPLR!CP-T)325$B9eCIOYE$8PO+7pXLGru+zCf%Ubby2U(pVGvnxt zIE&`rv1gRuQk@f}1?pK$htuOP(>r4x#o>FwmfX(GZ^i+`7s(ObJx?6p%xkm?A0Phd zTQpS2OQc;>>Gxw+5vlCn(=CeuWxcPtAK1x6X&yNedVybT9g z@FN(Ol>O$zS8N3;m0E|+T3>%30iVR0aIBmW?Q}J#iOPJT%Qxt zMf(G_odnZ%r?!=h-!WcM>@s_V!;=}HD>gNg>nkRBv?M81yem%56Cb?X#>p2hgrt3A zKN0ZdxUUNgXNwHN{x&TV-0W$HXLKafxR2Sw6dzaN>VpBvM#8V?2H4zE62zTh&5|)l zX3czb5ntuDq)U}$%W{BYp}bbO5*=lzlKLDMKE0mF90wC%S%*HBqe5hk36PM(g}%L} zI7$n1r+?NrEKaqL;-ljgkK~1v8I=jNuAD{djTw?`Clv~~qQhorq%O><4)X`rE94N7 zZ5Rl07M6(Mp%yp-NXF{ro#psuhv}@1*xqeHHU(q5k3)@w&}28_{!M7Y`(yw&f?%*T zC9HB*V$K3hV!x)=qT^c&%zv}-2y|Tv8B$Go>~?V10YMd{so80GXvfJ^SQ-$-6w!-_ z@Y>bGjChyrJY;>`M0@?BDUaG6@=P>Lg;|~ogKQH2?17VydQ!udxIBE@5IAD@aGwpX zngU7toMWvlN&!{*S7L2Yer=(BIYl?pj`$lw)1Yzc!~v(mO(U(&84m5-WdV$g_|E)M z)HB|sPn+^I@|GQ9^_F+NE4|Hq6PVIj-ZDG@$l|ZJuR?E`RbGFh4x!IUVcCu#OUckT zqam?-9htXO&(FsTY-_~bgsb5b9t$YQM(!~kQ)HuI_HP{PW%x+Jzr73}L1ge2HN-O$ zQkEUNrVhk3kM?!CK(@SOBI!cxvw4?zB2V@UuLZOyNtPX!O=ee=EHwtE%sT?T4@gHH zDF&JEMWi(w$>hrjSEF;yb&Z3yw}l5mLBsVI1ig6AWkH_*k09%fi*1$lmvv079ohXHA)t^;8Y zv%+3FVva&^%>V>-j)7f9gai_%er3O9__i3*+vMYYlpTDvx&FLmx1&xB~Dg?yvrFI|)JYIA8w(Dyr<_L8H zLm}l?GO3}6fssHaBlF@y*vxt`bbh(Fu7I{e?S zZrLAPR9Ms8d%Le?jW+uEDa;Tj1;i!wPnA2mI_^D!B%W5a%RI*e9P)dpfxuK#+g&!U zRl7R3dhI-N3{C}@(eZ20$C0dP1Hg7isu;|c&2WzgneIRV!O_lek%>SHE{|7LFa7bI z+AXG{%wX}fP)R&LECZP@78U-ow>qEfwtAf2dN?cG%svaEKq%u*0AN3N$S|;7xPqbb zYsR)xF{4Li34UGPIC`N@+AG+#D$-j4f{q~kWC@x{kxDKA4CWJ#gF+o>AqKPS8ludr zJ^}?;siRKaBiRq04>?2Er6eoK-ypuR6dd|%iw9Uo`S^+blum%)6yP0oAd1b2x-#iI z5F1KUzlg}{wi{$mscR6Je2+5sWQg0Go}e_W4xR|TS|uHs$;n+j+~Rz-o4aJX?Cn^D z^CNs}-kG5SlfUoP#!-qUgHUUd9DaMmetyf88{4`T3pX!BR~!Q~zsICq!ty+Z)u!1C zLf|IsfYO%~+Iw$annqR`VHJ>e)Pls)q}^yenuw$*VVQ{>oJrE~dMVGZw~}fIT*W;w z^A;5XwX4!b9ncd9daxVLNh7f@cHXmRy=5i?tt^A2a9Vf`KR5u6JJQ*^X|3AsPPEabD@txOsr6_I@M6_%cl6$o0 zwDp7$O}?Q`0E?IV zf=dn1ehd!kKT)JEW*DO{dv~dx2w}nEim&U0Qz{XAoh6@v5(q)o!?nV zbYAC%T>g~wOcc|En6?X7LJ?IZ!bFO!7dz6ulS#-nM|wVZ_r{21Rl|tSn~3`Z|JLiI z*WD{7`*n!3frefly3vp}#8)E(L4(F-*=nX3yj@!t#)zP{>Be(jsBo9b z%~r3)bPfQK_$OfcbXu?Gxrm9Mh?gWu%M|crNR4sVo}BxY$8!LFNM^V7ZVbBbY}XQ^#9XBQ}^lCh^`(9R^)vyWw=u941}11?9) zlMu4*C=Vi70eJ7wUvCx2#mNi~3-VvIx`4sC=&xDBHz)$v9O5X`(5n-@b|-jK3vjj3 zucGm+v*+`UDG3N4neajY5Y2i{m+-%Sxf@r452if=c*Maa9@|Wyzfe*PMHH8csA5vL zoY5Nq4?4L??D2tkVz|82=Mna(fkD;s{d6v-;2uI6v_KJw9s^GZ~n?nrEW_@NKD)$PLMJSMSvTOu|rJEm=Z)Pn^|PsRU9 zh6+a~OG5yehpN;*Ha(4IqNuomIK+-eo9n@1hx_ag=s z&sfeZFw6o*FGe*)ddFjfn<__f$@9kh9H`5-`OFAX&0zFpcxG8O2mSGf#g3aL#$hWt zHnyz3DO{{*TWV?!^GyyI1$8-Km%)BdK1$TByuWXKwb#0bo6qNUxGJs^_bNvp#aeEb zP3ZBa*)^AO@O~>Ub%MoWgAsib*8yL$m39F954pnN2ufu)g|^pOQK=68B;fS>`kz2a zO|cehjr>JirYdT);%#d|5Gp3TdZ%M^yz{BD^n*8_k zywN*fRUAIHPgyKx6hDBkE`*v7LxJ$I3wSZ)H@9oazuJGc5sU2!{qA zqwD{ZQ$F{c!S!NI^BJi77wP3n0bBs&zu#F#p!chlT4*nMsvuTp8G@$a6!_rOWo3rI zq~uK!2P6U!sJaPpi)iIXs8yjxl}%R1n}Jb7_`TMe^JO7MDkjnsOT|As8qoQQmD%W> zOxKN-3gw2xcAWMfryI^n*oa%rTf}pnA6k|3D-N&Jm%kLU+#^cf_(KdZ7X~AYRiVII zIzEJ;OQ8jtCBxiMFU|8}`6fjMOTM;_jk@uMJij*p$iy8KHFBduuDv3yo1y&6klO#_ zXxZZaaCRO#q={l>qCN$DIO9g_1JTX+I?;9)xuLQA#1{p@k&{Q0gvj`o znlQ(>4H|!l5C0jp9rrT!t)dWVn0BQbqRF=k!h>*;W=a5#6RZlBD8@#2_u>TM`?j0d z6^A{NUW>0o7W)lLBh&9i5-$*ZNIRvX^84WIWL^#c_9ZcYX{bFjGXurA596+7P~0t7 z%)NJd#47&B8jGbc?kh|`uI9Qy&a{3C#itkk>rurLi|_Ufif<|h4;tALH0b~s5x|m( zXDvx^8;cQkH?GF_fabfn+gMSl78Q}T54+Wk@l66610AG!%(7nFcq4Ca237!P$BI*hwqB%wfX+u9YG!tjpY_e73UHs#y0~3L-PY_x z-@8sD&P^*aUzxU)T+!@@%%FdlK4br0j#39n?epfCYw7h>qM$SFmoUO=N^0*&?l1JP zfJ+CZnmn$Ce=f0(V)`1SP> z+Iv{3V?vq+ZTw8~W;1mD0j>T|tUhC$>ye~kra8(UY)OOE5H4!}QuBzAlpJYWG!`h0 zdNs9R!*8I57wIDPsHuD6G)-j6>FtX{?$aV z3T9AX`B#E+$US)@-?gX8?4*73x`eF{o_|=J-~IuQtX+mmowdA|Bp@&OG^KU@ZMs9nS7iU){~i z2jUy&(c9q(s{puy5rSMBxet@4k|<0alwL&p=}G^&#zTe50Y?h~mA&*rBU#WBB|Lmb z|Ay4YcB!pnuu^y4DKWQ$Il8=k#{n2s009$qtVR}|qEdw%md3MnC`5d1bm;IX8cx4g znYj-o(B&bdxH^Yf%Dr9^d`|P_>P^A7DG2G@pCDqYF)O`=_Ea;U+Uy9|=x8}zo?hih z&SZ^LP6U1nVl0m)Oh!J9Jo`B}>nqUC3|X|@qCMhyTHBVBhj3A`G!Ce)QPzr{6{LzM zf4FO0#4InX=ukhes*HVi7pRd^;fJWC{7GkBpw6lp79<&H4V=c37&9cW zkr_Aecr3Si1&o}`vz1vdh7K1?FzArf%=^YC@W?F(;F6#Mj116ZZnIN8c{T`VYdJZE?UPCIkgQ!(b6Wgu4< z@XEP&!|AfOn|+EtLXa^1sV>}kMf-eJx&t4`N*QEn%eTF#rO?_gD-#gBt(Mlp5gD2_ z`*0JtP-xUoxRL{$oXrE(yR39ij!Y{sGvp$K&XYVih+L0(6LbN$>Bie$cB0}d^kVYec!py8pM>?1?$AC~C#{+N8^C6+Y3LP=3s4iDY@SvARi*jBwzK}=jE z2x%~O89fGn7fz^!S9udGg6fS0@IXZWjFiHHME~A{R5hk3uM6#ko-0fT{9wu9s&4dz zln7wW-LC9NS8osR#*tv8{!$FaR2CcwRo~VmfixgLupw2n&wy5TKUXOBV9~T_H(SH4 zgu2HcVDS2RlMkI?sTChZDI``B>rFDX?lg!vmWC+D4TLGVF%zv$NQAf|Kcm!jg#O!~ zuH6YU9h-L7YA?1hmxkCX+=mlAr0$8_p{CNLfkh;)*1oXvTB6xv7_X?rtgwlHLCw2m z7XU{RBx4c)s8#h}2ofMD-;r@xC(6d%lX!fHAOydawVuWeqty)^yz!Gg8fe)dYv&pq zWd$FUVWigQns#3F;z&a;uwm~bqO`}CYymx^!$z7K&yQtA3ix86>lWn9qYv9qzjiS; zj-`5QlLb&Db)?SC(;?NvLPl?97B^$S9x)V%c6}mlV??7nLJ}VJKU^t=8U7z#eOUC9 zQeSfyx`yC*Uo-WT&!uv(F#_qHH3W&6pB0I$>X(Ozr!I+x@2ms1AzM=DU38%SaAySG zgh!lE|I21XAutkfVGydM9M{ZRtU|IeMN~~hoUSF{giOD%N1_Bl3AtNZf>PDc7gU@l zeJohkt*w)2m3||;eSz^;gKf0Nx_^9Y~ahus6eYP4@ zmp0m4<%|d(^kBYt0WrU|*7;!v(tE3|Fs0zBjf7Fj-2bkHL@J`RZCAHv9Jq?rBiE@y zHI0i?`4WiR?`b);SV1M~nz=Vd{DM+YoTYUHvz(O^#Dw8`FiX7A8-5Ps5kdM#1^OOh z-oic^!gA6I^0`z!F@kORn9E24Q4gfOX%ZeFiYu-W6>V3_v8jyzspa3nhmstUvvt(O z2rJAIHJ+N3+peYfuM-gr=i2Y3;KUnO9IaqJ|IXw_*I}zgS-s3c*}m6nUY_NgMO810 z(NOG*@=^(djq(#l7)MBWQ*IowQpl*nF6KBEaKj4OxfcH$-UITzS8l== z^Asu>ib0`-fL4*WX+DxtreDb?y~i>UfVX?K`|^szF;Ys$}G-3j{Imdf$AP{8Xiq1M4}cIe4IpZ#fAvi-WbY z!j)a1{j*IUYTxU~p!0NTRlPMYY9ojm=)u_WAWJP$G;q#zBw;fR`N_`2>ASt|VV@hl zJ}1L7i-?eBM8q`7nT8w@vfJ~*imcla(9;AXlH>y?Jd{%DL2HG_rd0iVTQ|O;SuXGi zJ9L{l!IIIAvf*s^B?xzq+fO1rd<9+_Hg4ut_=IWoI>KQE{> z$jwAYe&t-U$beifjBNwxpf@@Nt0hS<2F@8GvJHC{D%b-ybQNQ~c^!pI0rx&hgL&KZDXd>^NFnqK zF(VM!%-FR3FN7phccc6dQ-Fkcah1h$vRt*wre`H_ugGHELNxszUARW+;l+r!U_5t6 z3S@CNn;@EncF@iJ<#KaKsMz%Y{A8D)KOnVx91?u&*oTH%BBw&u0LS*Ts8lY~5o)SQpy<(< z#9pExLkHc=coO;_SgZp_l3a;J^-sN)!0}EFyec}p+%zQ^wN*!C4`0}EGdWHnMM!g4 zK0$a&K1j%cZefJFxCm}SX778f6W6{cT#J9O%=I0o#2BC0VTP>u-M^*y?zer_V%4UxbD zO_0vdx4{*GLEz?vHa#sKXP4#Lz38`u_6RRBsPGcooU`pUtwNmMBg$AJDQkgkgD}Rn?rdjp!NU%9x`hX~&_q}Q+`P`0w z>e3?_X~sWb%~r_#c_sk!NGsE$p)emaLny5e^pb4H8&ZwRNt$SS?W?DS-6e`3Xc2^j zvQo4}_6$z+hOiYhAigVx@aqIXgxyYacc!qwmQsj$9z#Rad^2cbiLmUM;G(L0U*=A$ zMbsHID$ziM=P_EL)!RHQsbIn>bZ_gCKqm(gx*( z<1+8Ws+1F~1m1PlUeAP6D*QoeL#mPJ>r5vsbQ3iOa$33gA3CVu zo=TH~<25&}qG~Jkk;)&ubEN^BuDrlR$hvzvP5-!fH0QirZv&I2vmnA8MWotzOj-h* zZXGHGHAPnwr8^`2JI7}>gmV8SttoE~km>egiv{*BqbGC8NDQjKw`y7gFy+oG7>8PP zKNg&yPkKe}a0jIlb4s%1`AIP1a<`Di{WBQ8tlM=rA1BQ%VS3H!2&Mp4Ep=d<+gseX zpzp$|*8(wHWu9CSr)3Ez#e3!4NC1G$Hft7FU zS=x61=|HDwTS7&X0k+05i15R|zKDRAst%?Py_Q&EL30stmLP`5$%lFs%^RaI#n$%S z*n60x1O!*tKg4p;x4DW_uAa7tR$P?l@wJdfGog9Ky&2pRw2tv&7FDfW25lD`TvPG! zP*YKI)k9(0930vhm#LfX{kb^Hqf&c}UTi!w%29&bQ5>>Tt{7uD#_EARLLD~qblnv~ zhud&aS4J#Ef|%@^sxg~jj(j%viN_q5r7dg(PHoAFI?%F%ALG4rNcO8sz1t5x}-*>gpB{fZ5oPCQ5cZ%Ar@3>`G-4%BjU{L9*M~MSLUtJBG0`xT>J) zpJV1gPY}aO8-1GHkAf?g=1d(7&*@=UN#;LP+@ZuF;IK%>|KaqB zbs0+n-O(P;2@%_~x&cSCCE0Wk-yz!qXr#EOocJ@GR2lD5AcvgJEOR>V24$>*G?`z5 zVI_lyqQqeQFD!;?EoAy~g3`VJPsp@J{tNkS4qQ4*)|(P7wH`(|W?;>M(gLZ1{!2sJ zTqZBlNCxv9%|Q>01C^APrew7v$tT1GX|^Tm@mpVD0xnmjcPg0)f_V9|d8 zWgxSZz4T=pyG+VYa6u4MV}6Ty$OqxPM`(UvmBR!Ck_afUs!<4gKH>p|@s09d({;Y~@A)oz1|ar&;95l< zr9)q_fQ1H7CbRCW$t5Pb7op&>mkQDOf=Tgl?a!gU_g!DG%8qVMgC_;%VqhM}RyP^M zFL_#E#@)O8!KKc}pvLrEh=N^9ShmzwvD6KI=d3oQZ-4@JaUCC83SuWd?*fxGN*&p9$i0PgFsVdfljY$p7|)GPaQ2Rf6$SZ)2Jd( z;&Su4L*D(oDdrm!88IiyzUJSEfJ9sb#Xn@?4N(0v85Ko_(hIqv6{n<%b|*h@yosc} ztR>c@AqMMgUc0De0LCs$Nv>PeF{(B+Byv1wHV&8cCjibe9kwl`)c5&2%K_c9sm8O` z%7A&oKx|ni`DyCh{hMj^2-P{#_@JHBTO_KY1ul|}{dvs6PNJTBIIg=4!-jiE15Wgf zB{-mm4g!D3BMDFykICf{F9;@)vK?xWOw8ao?z6-+z_ev10G6e3l1dPkzCKThPan(} zQKNp*O7F-yM-QE=!AnX`ustrKG%wEOh$s?_h)9A1e!0+PnjLu_Dg={BpMWB^yZ>;~ zP>5+C3u;^!Z5SNOlk+K#k&qeFodc(E!&^Kl!3MAXsrPG^oKo%TBx+T9_ug;?5h7H7tO(*m|c42qB8l zqt30<7*{$;t}b4x+$y;9`O}IXFO6-+)vmV{ZJ2$tDd(>jH-70Y6ga zL;yL66hrGFAX7g|InP#^%>r(*9;%=cr4T`ZPQA3`l42(U6Ra_$NTE)+s+3A*{+XLD z04-MrkUn1K+-g1M-7I@{!ky>f^I6NrE;yMUxJ6L6%7Nv~_)m(Zv{QnEE3veYh!Ku? zv+D0^<7542-<<7P&VLpc3$FeEN~N3)uHWoI6rJ=>D#^uXl+xOmJ2$KrMj)6WvayYZ zaxv(@3XN7lDsIx_mMky=Xd|3Q3Ico(L?nia-aG#DIFcj)bj3{w-+pjdoXR#A#is+t z1!u;c;SjHh^_-kc@WMpH?~Jy}zy`x&Qoo+i08TYuSNdQ<`8O_hK?nboGfQvH!e@+5 zUYd8XAGFXIs=c_dQzBk-R^S)opSEIoC2hlf2?kmk?|7Y14VL!bsx3b;wLR(P;)Jqr z4~6gW$8Thn6_~DK)vHtmcV>15ine5NfW5qnQ)%OP@c)o9cX!zeLwmlNdLVlVk&E5M z`&L6?!4JnVX-(A5ecGZZ&=djv_ZoF6Nhr{82cKMrN0k<-^0-q3R3xnWg6|bR1mPM{ zw9xG-gwB&49>O`|rM2QRM}PZ4lTD~1DW_^^R~z*5pG<*|Tyvn6m@Db_lQwD%E!o7! z)v^?V0#d9R34^`C{pl-j{L*#KYenb7xP%z74w3rO=95W+E6a8{*8OaY7zEA^T$EbI zW=V#$ik}hxvIC&&5%tI@Bv+0P#d6>*q6RP?CCDz;`4OEdHy2Zw=aT#L1tn2Lywn+LID^F2?j8Wi76$)11B0ARy_<2++DpasCvQ+H8Cl zf4B%dE1levFpgP|qMvX1$=3gvy{kaUKc)YY<}WOOc`F|l;?gEwg3Y`owI|+wm@)@@57s3jWFvPbMXb{oOG$+NTZHSaBp8Z^(Tx+Q;-#5z#2EG2=v z*9F_yER9tc$yy2`#FTz(p>J`T0H|o5e18#VhLyKV>lQSq6e?&#V^h-^5BYm6p^dUW z^aG48eqz!EU&{vUl_HelqKpR~boZ~sp3dB1eauJx=wq;O(1a0kM*Nl&ObiY9RG|^o zr;|O5xluz+i0TIi1)v7>zheg}A>|gyPZY2o-pZGt4+ko0$rqCczBzBy-pp>H&2A+} zO-*}#wvNZAj$rpk>&it7c#CNG7$tE8CkCOv66G`K6h+A1ACp8`uP%WEgDQqXeYE`~ zxB+Z&ExN#XvlxHbTx_5WigguJ%h~Y8e?z|MVDQ<(#;e(WJc$SHJS?&m($%Mhn%t)K z9t`v_4ingrgnVFDCcn!R$6s2O$VJ8K$v%mJp+ z--HVNU_TLz$W&N#l3SZ?v6c;28+3pW4O(FhUXWB(!##r(Acvg7QcZ{T8S?C_5VL6n zpFEk-JV{*%Is);Ebtr{rQbM61WIYLP8de48ru(@HtZ^%xOY~Q_+3OBzhLYp1GzRZbdaV7K?}%Oi@dS_C$a~pBS-3nJLfDcdFx&I4|(H z_gYpG+hNkSNWEeN1E#pN-;tC&AfDb`fbg&(_B%qAAriO7ujTfJl~nJnydaAxcwYcBn=9FATQ9(# zCkok-!GANy|5+6Utyd3o7IE^&eYiR>SE+MIKn%013IJ0+wAFz2-YD##Q#q4eOdQoK z4VNJE!+(zvah~J)a1vXztlBbW+JC=w@ro2+Bq}2QuoC|8ee#?re{_ZmGisHs?qUF8 z8%X#Yh?X6el)#2ZYv37msevzX?yZoIEAUU!&+>bVVhKS@H?MChQ>EGcTk3^;dBzes z$9NnzFJLBfGc6y*(-rVa3S6tY*e#muGW`GK-h`eXD3(wn8E&x?id5E8rs%ac$>OWhneSiI!VSs8=IaP}-o@ zFuybLCc*VKG_Sl@ZA;(lgRw?r8JlAKDtBFeGKhl`=dMIzfUo3k4nAIi9vN*s8&4=* zv~{*e0Ka1l>vV}>6U^E_PD7p|SMEd)hZpw`4W28%gkf$YEaLeV9}(#V@{0xIA>K;ndz=>X{d-5f5J zJ@oqP1w3v_Iy=&ywoqV|1d!~XTOQLeo-IaQ*6Z~9_z`fw4E1qoAN z)hW(MiGTL-MVb00a=l-JI12hgdTL?n_w$;&Q>Bz9d$tL}Fu%!`{SCpiN2rI?I0pLU zZ}_^sQp6sC_-|8&OgUyN7?Vm0Sh-Tbt{uax75$u`Uq>L{QRFc^bUY*uVn2_icC+Vz zO^qjz_1+BR?~Bu>aFS*cA%#xs>2q2?qi}EPNuTYk1a9+E_5=4XJs`(KDp}`aXv@yQ z(XO5^3JCaRS3xqEf`Y^+XqqUMJaamuIl{Hd7Zk`B2?Ml0)l}l+!gSJT@N+^krQ3$u zRRvAowva)e=?`q|ff6PGUsGjU(YKlT&&fP_#Lo%jdRZxdzA|bIlb00%!tYO=d2yGC z7O)6R!VhNlaIh=(iVMT`1FK#9;N}wAFik!?GQ}zdSycHTE4zKozLSV3V+CHp$Q&nx zkHg;cJi38{--SU5?FZ{rrp>t5Qi5eZfvCD#O^5djT=xAkB8!}{!N7fs<{L<4P;xXPzg8uT4biYTbZEemD8(wcvXsO?Rk^EO79U!^({X2 zm%>d?6q32EkW?Ps-~pM$Pt9(_UZ+bW@&R7Qc-?c~HJE*?Zb*Bz#<0PyAQh!ncRw^o ztbdN2G1r8{6s%4%Xe$4n`+CtIz$9shLh}P zyrYlywMRn4G;el_eb-*>hiS=+BF5IVEg4iwlfM$JdL^zeDd6QbDVUo=NEhl9aLKq8 zdRv=&S8Xh>#^G&as>t53DV?qZ#uD7o>*AxNr&!jgTVUi7H6y}l2VLI7ui}=;yjPLr zQQ|t zwmS!W8(9ziZpi>9AR1FDquuW6?23?ftJ-cFO4HqP$iPI!1(vE*I`3hJKsiD33t^_J zkvwnQX`bRoplhCIA}OU%r`_VSb>out#0#k7y5)k4Qzf?L2_A82XMV-Kf$sh^p4V@x z>ZQ(bwa|XV!7d2JyWuv-M4xV~|>zM|3(vnf≀wC*L2Nw|R>j}FrIr?D+ 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

    %1;b$70pUL(aGE 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 z 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

    (Vd&0E zkYcJNfP+&7-Ay#@Z>&|-Ijhz1q*PgHh4p=MgFiY=JD_xO3^XJK4P94p;0+|VE}V5c6qZA0y=f$ zijJBw_2l{=j!L`B?>MT`|9Zan<(R;p;rw{P_2137g2Lz^IG7gP_9VeW<|PmtXjGU4 z8K}3xcvYiEhjcS*8I-0d46L?iUdiC2Suc=&ZmepMRkl&#(HMXN;b2wCk-6B^&$GYC zcVt|Lr&90TQNMnf^iE(R@bH(|>87W;Cn~W?d6?!ULbIU?%^23M>B*7qAU-btFlh#_j>7YdAjGQ^vPF8 z{3Re1YEkrZ`il#_Va5O2P3!aSeJdkX)d(3zo8x22v>cH3Iw|k|`GVaKY`b}XIaRy? z{jt26L6EC>5o;wxXgaAl=lW2X7oKD_Itr>Z`@(@o1@#$9yisVU_v z3pn6BYzM2&^^JU63knRR`W)K&-01-jqn#b1k_u&gPHk;S0GsPX?hJ)+6ZyS7wN&WG zm0x(>{L&k4VHu=NVt9UA{~cy;2y%GdDGeXvHw|p2jnZ5tAMaiwGK#KvG=C2<8sl@` z-oL{BJM3-^hWh~N^_Tpce}(gRd`=p%8U1fWdvh=Xn7vkGncx}yW(N$)pdAnZ?zn}Sh0A%hQ<-;UN2MHH ze9JXO> zyH~JOXVDPtLDx&+H6Vub1w9jV@QrBvO|Juu$yOUdrW6KD% zxyRU8XkS&6Sd$Zj|MAV*c}<_*5@+#sUcGO0;N_zYKIO=&w=hPrqGGOzM6AJ=O_zG| z)|Q83GjYJ9bYDQpFDJryL{y$5b^ksHdlslT%K>LRGF(J@X?gG z(0M5TZXgh-3SiC%NG&HdwJ@yJM=eUoVwJN?wv@obb*TKDlff@YIdmi^ZmomZ72KmG0$J4Iw*L}~^E?J|yw+$J?_7YxtH8o`nzYeFZy!pZ* zWNBm!w?V=%x!TdvuJ28c!2Wm2rHYQptExOghL8Y>jyBN7P2{#+z%!U-Ea39ST5{cj zsp{aQV7m-dZqwVdQsD|aG&HlDY~W&>Mp{P4j^$-*T12OHm?`j7<1yP8ksKkw8fGE2 z%n0M&@ggm;EQ(h;kbrf~I3JL5(o{FKWCq1A1cx6dm%-rH@83UT6<}ecqRTlW&t`j} zfK5AO`CTfL@{JrnRywG>1Yt4_i+d3kn%3}==>>zEz=jJ!126kfpIkx<4L}pcvK^#V zHF5O3YTe{KLXm73F=i%KksC#8K3k z%qZBF7C9NGw4co(7>k)c9%nI~)Ss=6bIY?BlZZNA;aU6B)26iNdlOHQxs@9=RL(Zj z^Au1}lgEfs7@oDdk}AVg^iM8Q2GMjQ8%I-}F{-4hVQOL6^GFVXm0o?9gDO6j)4&yF z?fGarR6lFnGo37CX!$ghnu*sNHne0)A z=4?PtrFkqV{ozCS7#~}4uoht0&Qj#qM*1D12FtmM?%4Y?p`LerbHuvC)D^TIWt!u$ z6sVLHh*IxSC!1@OyArs$nhwTA$qr_ZM6;=aBVuB+n@J~KMGz#B^PG&7rXC@cHJWY? zhtMPmgG##qCGm;mbS9%zhFGCSbGMS&Txe$b2H~$S*Hi&`TG@`_w6qYC zO;L}ETPFS?S!yr_(~m1-R3D(DUPdG@p3=g?XR2iP$c+{)zNx1kL=SHvQuB_N^@Nl72C0Rjc~i*qi2lA9ogix@N{nIX!IbDh;ij%8>_02Skj@q1CxRlo#lac zF`qhq&ICx|pkwIMLlW_Gqy|njB+o`W>OCTOGss+1$)q&Te^U<0l(6^rcnhe;p`}XS z`l;srgc&!NiT1rSg(QG)cVO@ird<@DX^8z?l&MVtGR`zZC}=vD>N?|sOHjlLhVT^8 zcQl$yP>kJkRn>EqE2fY$DR9Ny?gFB)2IS4BsM+&`P_7H$*>We10&cz?>f2eK0ti1# z_`?#m?*NHyPrIg^v-drFH#(aO29UECPebQVf`A&PIpl<+C^vao47~4wZqOvLQ z_$K>#+kNnPbx=8uX=73KCRINpj9E{gtkHvF*>6VW|1tC^NrDqgA%(@A7syN}qW!M% zz#+nAkkqzNk+YkOq_S|50Og)00YOH9Aj*Ws-e(74u3o_PQkUIZqV^Rs6$CMFR*qyr z@L}_dTfT>UZClm5oZDIhR|hlO-Lh#O{4dYroERUOFYY#$olt@Oq;Ns&kL6N51U_=C z;}wz12!TG`tYVWf8pxqbfLvEW_-tGn5Jox<1>gpF0joYYl3xwa3drC2 IEhBaA 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

    cgU@?`8W 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�_~L-qR)#t7YzA0gi9~ga_sSDAEOPE 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

    B*Z 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�%mdT7r4Vz!H?+A8gBq98NQ(68h9)sp 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

      R?vSpm8T$?Y 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%0AMH{{-w8%?{H>JpPV{%x=i?`OgT|2`$1lO?b23 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�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

      ?LaIF0I48Qep?`IG~R%=YrRU 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

      P^fhmghIFM+_tFq9K-QZi6Uca5B5^2RneF* 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⪼bwB7hmi}p@xn+a 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 z z9!@Bd(2)$QHoet+X0t7~@WGkVUEw)`wTw!Zwa-j`pr^4P0A z%d214jmJ86w805wgw`Dkec~2rqja`Rx3lb6`5J3@-zBbN<92So9NCEvI)xx%1|VQT z4+H@K_NrBOe~*A7h#pKA1Y3~5_87bir_=hc0|rfKP9e7-XV^+Lzy}2m(vLutVJi*- zd_Kfog*e@k0RWil^Gc&ssh%GrL_P@$KvGs3!tQAFa}_CY5rL#kHH4K$qn~RCijw`_Ryryt)3g{PeCeOQvMWHU3MaExO~8ofvZRMnCVRf zE*=(3>Yn#)(jUHihn`rr=T2iF(LIC;%0@SM2b)Y#*$UpRU`hDk_lM-v>R>K)~G)s8exxfSQY!g z+Y|KTY+(=Ti+oOa2XS&7GZmwF4|8_>(cZBq=k1BDJ#Y6MC{HrX9HN-kr#p22>rd#r zRFtq}Ta>#qnv$M*pt5)}laPjxgdhniOfm`tPb57lXxq?>2G>k$7l4D7&A7rKj$?@` zZ*o!@VgC&&t%54Cy``!W0Q5y;VR5hum{VZlYisbdL{j-(H@0QyRSKYxh4B*>^}uR{ zg4#2PV`%<{h#~=+L5F_@C51(1XpUQd0q8L`!Tavzg2|^3I}~}?gb*f)-2I>oG#%nZ z8Q{(dAwKwmt?U=2j4A)y&9HHip}up!;Ak@I29Y6ZCv_`dJ{VDX`?Vg zx%1UPqcire4Z41_e z+{YhvJt}thiZn5MxJMFj@Jzm-24Vx9;?eBTlw$RBB$8Z}H7%>ZoP>+d$_??C7u*r~ zK-yB}m*BL3Q3(qtmgXB%R`&$iPNs`ypj{Wt{%47QNex2Kix}>G?D)fN1bpJ}z&cGc z0wwYb@(o19wXt;w(Y+GyyR2zC@e1k^ignyRcP|N1NxUTxo2m1v zAp0d~6=cFh@JD3P7=t-4@!_N~Uc}V;jjqBa>(!h?lkc%IC(2JYn?jXAJ)%)oITEPx B+nN9X literal 0 HcmV?d00001 diff --git a/wasm/moonriver-runtime-3001-substitute-tracing.wasm b/wasm/moonriver-runtime-3001-substitute-tracing.wasm new file mode 100644 index 0000000000000000000000000000000000000000..7dd333c0afae353fdba1dcb8ebc6261143b2b4f1 GIT binary patch literal 2123089 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%0A+Z+x_jsG zb$#H==dU1t{Xnh)We9Q^ei?xL#U#V(InMJ}kH2>OrQ-l))w!&bo&vi2s4{p@J@c@NLeFLB{=EnI@}8Rn|*xw>Olf!}vPFS?B4wXdguo%-tT)f!S?gViK0^x3hi zPQ+XdlXP}eWlu`HdD8hPhC`ahPJ6ZxPV{oo@d97i6Mj8s7<)$CyGLXVlXR#Bs8?TR$1ABi*3@JD zg6bp~PG(^(RO}q3G<+eeOM&qTW?@evh2j$jVSi80heaotg`JQ1l03#ZVH$fFoe<(V z_BdyoY-8u>1{|yew=jN(F;0&WAERk3T+(5TbB4(@hMfmIK?Y&ZBDg7VXj$_6hKVz5 z(qMr^V{ckw=ez+lb!rK-B(@$EFkcMVn8Ph>pJE`Vp)~dwhgkCIqa1E+sO_pAmvoMrgjumZfLYjyIC>h`Wjj0H zr!&I9jy*a7CtNyD+zQtX8|)bN7zaDnUBx~8dc0#h;0LPVxeAQ46gyQ}DD#38(l$tP z*n6<6Acc79a!@>m{Q(;|!4t4A5LT0zi4_0DfIGKbPtSV?z%A}mxSxQ+16Zg>265Nq zG}psMb4i+exNh{fSr$Pv-t@B3`&7o9=At({txjewDbnf^DkIaSSZZ~Iwf5Os4VgOQ zxNo+@!z}FkRK}YQoiumqglln+GG(_%3e63Q?`qg-Sq*tUt%g1wdz$m&3ww-~>v`4U zZuQ)9xNW9z9{{)HIWDV{(Y|p_dFBJi&5(wA^WymqC0f z*9WNg-EPm|iq~q#ET;0!#||~FKFs1J^4J&8b6O_|mUuC*oJu-e}rEyy74G5hu`o8ADLIxdMzT9BxR+7{#X z_$=F|^rF*t?JsaEUi;FEg@$C1c5Tj6Yud7qo7NsiGb%7kdjwgi512b0v$WHpcuo5@ z&*<59Zh5C;R;HcbLYUUBg-&bFmRX(}?%H`YO?wh5YSMfhb~yaM1-6x z)PRBoGce+b4vP46P=f07>;&07c+vt0983X%9k{YFW^y2dg&Y^8AO{n~Aff{&At>3t&OjShh_rdLoenx&BIv5^=uV$6s^W5n!%<0iBBao+1ax2?tx zPv)GS74BJgkI?xpK6`|J76~`cH)Y64lmVbHG&B^3jWBM6fkR9f9;6yY-4~_Jm zu8FpZnuk*Gh4D;tJj1OyBN}eKz%16XNB9$TVUh49h=b<4IgjJJp2rKl-pDkhgKFGGZ z?}aRpm0Ayv)uTiqisHmc6dC9I@QHJ>tY^m#Cg!yKsz;9#u@e^BC_OIE?f7~{JSXBD zHJqK}K0Y)g)Cy$nyri zpU=lfBen^*{0|t(#E327rNMgSIsg2xLH*FdMYZVA#_> zU>PmH0)K#^);^N3kTw+E__nd09+F2@qKPNi%pG7H6Ui`(r^YZpd?8TFM>n%ZEW)gl zBuHc5?1$pY{8|Rh2m_PiJkIC10c?hX(GlavTHavT^`v zO-EHS!d^u-mcva}BNlDKgb4%22rx>3X#&g>b9P#9NPEv=*h4zEN!EJ~E6R?6u`_TR zP0PnJ+=^znmE-d947bo^S$1xWIaGAUahC(!Co)9P8n{*TdPNx#?|{23{s+#LGF$1@ zS;q1aV->R{z-(FBIgndcb`+>uR+e1_#zm4n1%A=m`v!jb+N*L| z*`p7e>DZv`90;UQ?BvuGj9QInm?gVJGkZk-hn9~%ED||qjb)f6AIa1>2FeM(aNC4w z`2le20aGFqE!(KTtx&S*Ft%xVC)}Es3rZT z14D+>8P6N5VNWv?%!B#pgq+a{W?~220&yKzc0w6AIcQ#X0mFcabzE!sHE6CdVQRQ5 zdkslk+T>JNw1GRzgkA%8MF@K|eFpB15bo$C5OckeA|sbVnhc_sLZ?6YfS5%e_84&q zzObh$#==0LJwhMBAxz{?!aUR97ATBvcs9tAo+IH9q41|S+xgXrn9 zwi*Um)AU*mdp^+gS@l5E#cHVPaOXrD=J2p#7M(RdF^fhlnqtB6NeV?Lj!w-rnqeot zFgnpRI>D`2yDVwlW$Al@TX9STW0*Zc&tMd@Na$zGfRq}Yn8hmiWEh>A-c4qPi^0ih zefYwzmswk_aI2-Kc}q`g%W<@ZJxzN$lS12fLKrbt##n<52YLX986t3Pb!Cv4_2LLB zx**er7&?f+rBzwG%3y3G#23!yA2En;pMKD$!>(Bc667y*iM|niuw{tLFu)8M$Y2ID zI=~S@33TFk0*a?IvIvuAhnqO`pjT8RTVR&$|;$(h@HVC)tq41#O9QA zN(ltYb5d}*o&H!cE~VN|$-^s`Gr%oNW-b(HdOYtHi{h`Q&^87cUoq?8hqQc5Yg#V{$SWM)|>v$}}E;TF@fhu_L` z26l;(pE3|eGpNZY8?fk|nN~4bcc+h>6QgrZIx!k>i=EOGn58|OQ=U>vHL!@%?dF_x zb}hr%yT>BE!HiRWf?i@z32vmrXXY)MJ15WD@iKpRnJJ|!m*d9W-Cf=|>&%d~>87Mp zN;xGClX8|#IlatcN@A2&a&Va$7BXrlEQ*FqnRHXR$+jDZ1F|vSuKGCV6d-T2w!v|+H z5Epd{yBM6DoMxCDB){1^Zc%LqAALAmGHaKG)$r@t(xYD$t;;B_OWatUIgtGT z{lYzE3St{e^iEDrOSG9kWf)qV?2KVkgp;8*mYAKKoSc>zj47p*Rg063k6x9XF>HvK z8Q^a-$1fCxZ82o6ks*>9Q}1Rag(Dzl&1XishgtI)=)dVVbQdZC89 z;tg?x`1$TtX=J9(zEPv|Ewh+rb<#9kjBz6;3nrRVeZ3)%cCU-E@??(VE_$)FfDqY+eXUyqA51!l!hB1vls#6TaO9v|LG+1Q>m z+Tg<;JLK`<)^_<=gD*BkT|PhpKT*L^4xg)};5q z4xG%Q6NPDD)xw3dK+=ob2)NiSKh~K#Rzr#1fMFO$k9~SY*b_u@dPVUDN`{-nxEQQ;!58OG1b>A2EbO&zlfH}Tp*gr7G*OS6kFLn-$3P-5%VTpY$(~HI$z#t4+jowM+&mY#Si`Qv=DAKq zS=+vK9LI6nQ?tA6o>z%vx1ESn-BGBW)V+t_QRSi`s-a$S5QeM?IK5DBw zvl?Qw8MX9PJcfgRTlT`PT7ZWuYApm*mcO zfXhKU70XeVxHs)PIp}vLkLun-9d(I2)-dio2e{1Iso|HxP@ng}u2D7IG>XL=A`%{E zF|ACoX@@f%-ptvZ6x(wc_9l!sOuR|cN_wAQzy=t8?RiY^VfXk%67#;zG&`mw+oPV8 zrq0fB@*aq-tb2ydlp)i*#Er#!-Z4yKmu0-FB!5u3;tRd+*Q1{2QMrP0)w|c7KIGKB zB&>#!3#IDVKP*+3wyV0jB%7;Y6Kd0{#?yJ6rGWt)7&OtGiqgqn;)a0{O{Dj!3pm*5 z5qh7xaH6^8W{0tU-SlGW_!MO5_-tiMFiGjv*|(QJy_nT7_KX|O-o6iGT|VX&Wkov= zv2(~>dluxq`*I8QR1m!iTxO+eht(z7nAAWjZ9cAsD0-|W$r?uHt!meplj5<{W3*c7 zdU8!MEkP=aPed}^#-X^QBAI8O+}e3o!?hm*;=eD_TB*QJQC}!up zB97z0)HyC&Vl4&9@oX{=c){O9DAzsj8cy&FpNFpvCnMssHvDjc}CfjW=&-^r9Gk1W=xAQ%g&Nt9CxNe zEX%SK;+R-M_F1MwjN>efWU`rhsGZ|#7|Aqt)X(Q?ma0qKT$3JZm35r^e`UftvzVCpOSzis8qz5juLRFTk z-Z9Tg*YWWNuf`i966~m_fO@jfkZRued2-+7f;RVed6LwbK$1Bj`K`>YMR5_ zybU|^Lyoh|OeBM_`jlsdYxazEeEZ}UV~^YMjA5VHJFf`a!08pmx?J}i;Lb6ydj{$_ z54b%E{f@}krRYOVReQvqWm(2wo~(vVVHqMBIpe8G@|hKFZXlM>BV6jSqSbJo z*-W(xUp`#4zTl#dK}|= zY&^b7{YMRZzWb=*r+QDt-u2ijl{R14c}D!CSa-g8R=Va#CN|17-08L+JZdcS)vcuQXA1>_vszUmXT)}Zgt;2&BPM;TR72l*eS^l zV@oSp4Y_rk=ixllT^Gh0&NJP8i5vTj&mPZ@-S=fR3A>K-yR(r*2GNHsr*}l`ou++X z50MO_I*wuQuH!sgg4m;Hg*J8_-KUv|1bgNg>3H@IeDoCNo#3zMbkU{i0x*Dgar^D~-@B>%cx3jOy5o3&BO+tNp zj&re#F~)B>9xl;FJx5(>R~>s~LJASRAcbNX8AMN+=;`^s4Ylpq((L#!rK(igd`q-r zckJGGz-5-|)H8}t>gxCDS?MMRsZJlubf>X~pQ>(8_4ITPzYb%Wu7*prw_`8U^s~&| zKrCU~yYz~@d8RXPqA1o{Xn{s;AeMm1ha9Ile4%+jj9?rTRY-9t8)Vp307l|7zBsa zqMR%gohbMoA8c3+QdIJYaX}8exB(0tWL_|02RT-p5rQ1(&;$h75&-DJ$6P@VDUHAZ zf`=eNAOjkFz%_$lgNit8(1FaD9!S_>2Np+2Nu?4h_IXdMLG?%>R3(x@acbPcKIeRa z5Iwz~b3O{Qrc9zqrO*>He%K-k9bRAs7&@L1fefD9j0rQRHPl$ppn}6;M6}L1U*JPe zRL?2p5-^F>cF?Kbrz_OxFp0+95vty&E3&Wx4l6X!+`7JfYE8bw9y;l8v6w?qxW$p~ z6k^cWKnFXdVL}bpye5UPY*B+XXULpj2Pa%psOP+*ik_HjPOS2LRGW{p0yPgcGoOm) zed_SzQN=P=`RheJISg zhNEnoaIv7EHo5gfq@NVj=&4T+z1CvV^gVw{GV7TYWw5=>nob%Et&9F+q3NRUxuS=r z_xU#2rZv<8)IM^)?H(4|Cnu+#ZtB5@Crkh*3?ABuz;y)=Oj=%(LhAz#L;*(!a3JFb zO}OOQE0XUbA~8O!ms?nCeFd40m>8hRedOar4&(quG``>@DR<{Cv-kyEq~YsQ321Wh zWsnymYX+dW_*|JdK8~>8)QT`Ckq+ZIOwvR(rd}C<+9{|2Bw$2Q$F-jzl_Q|z(yG&H zQD#2eS`yi>*8n0NVIU-w!~9%f-!Nme3>>4mvM(4ip}8{b^%0dAL0$Bs@dYZ#q+JuBSvvIeGMsALNC6uL-{lB8n@p`n?X0MGzK z6ktF=Bo>T^L=sKar4JMU4y>+DSe?q#AP7>*7-Nhv1c(6u05AX`LlPzc0DhtlMLcM6 zL~6)YHo9@ahQQe1=R9y9&KAnH6?jPgeGR4?^mnjU(D7Ssqzwu(g!Xt&xe?hF9rfmc zyJC5;LN|Y2_R>_$u(88 zErGzl*N>FGAMVcvY^l42CeATeANpC(dY0HKjgQd1Wz1Cwti=ALg$5f=Sx&g_a{kX+o%@hq1LE?#@_t{LbqqyUWWnUX1>G2f0o0$`i{|;cCHC?3yd7)F zD4BXaa3N&gJpE{70LPlm> z$B0vMPC53}!dp6VqVzyLBI$5s{1frc2CX=GRoK<-YV^Hw8FrT(LHj&$@6BwZr1&P_ zAErekpu9HiGA#WTv+5X?{Z_g$F(Ar)?dSt5yeW;lu`Po}Np;`Phqs^6)8YO!3Rq^t zX%_s_!;+A@`OpO$z)A(-(E0vXXEA;6y#9`r=np0HU2x7TYV1@hBgks_hJH}{W`l5h zM9(bI841xMKw~^RnD{Y2_l_mvAJqTe(fN_vdbqQku+s(OUXHlL`htl=-&>HP+KHA@ zPU$r*Mdk$;yj6ENS_Wb=4M5oSIGVMG=qsGT>SX zAzd8>)OItNN_VPPvdKF}k7EDW<7G|e61t)y1D4H?aCo%5FH}SoyUP=8lP(UVD_m$` zzsWff*~{?_EV}+%83^&VX%Wh1uPUCAhB6I3X4~I#eDNw(29kNeyW(zOBSnypJA;xe z3qkTf^AQVC#%%$wOj&;4$6T}WYV{C#?5%+<{a9iPMm#1EWDb{G z{aR2_TCO{t$2V|ss=b_#UZBj77t|tGrjm7KjZtwZuwb?hjjQOO7@DIM=B&f~KKly9 zhzOMif|aH6Metz-j-!}rM zAWhw6Im?x>fLf4#&6DUz&;ld2Wzz^OwiLpVDr9)>#l-=66&$1{k_02f$+mbKAf76! zz6@H^fYJ>3E#zznd)#EZ_R=rd#MOTKaLiJ(*%X9q>gU@OJl z$E}%X%aWZop+w~^>E-GzFM3x>&wX2djG(+_Bme+YTW>dr-ZFMDJwzQcpOZ7+96`U5 zA#p|{#`9DZof{vdQRZ#;rw3w;`um!TpSxxb@ytX*Ab z(UMfRWaA$hQ_h{=n!i2lArAAts3sTNf=;L4$poa?Kg!V43Bsx%T`w|LD^lbzAlAuA zA?(4d(7#6vyAY%qV3W>Ku6HiQiIkBv*QJq`jh}cCv3~0 zG`=4jLU1%P3TE3itO9YQ_IgZ7@%{UAwoL#JYSIb+DA=_^fYMyH16|<9Yaa`iUppK{ zkN^y|M^Q3jf{uYx5hg?I;sWKF_4?}I)Lt86WX=-;g0S9(paC#B2P(T|Y(x3;8dry_ z{mM1_W1k8;0d{XbwCs4HpL2y7nxp_{Qvb7Z_gBY(M({?SOP6V$2axCY>RbJbZ z^e3QGBWfz@78ap|O7!wWz9TJGVg;rjd;eoRw|`F0FP#-=Wh@J_MJwY@6=2_@AT#g} z@YJC?IAa@7p-PU*>QcK>?t7sD-0Q|`RlQjO3^NHop#z$UkV+&44E7D@u0lO(A{{~obc>Gw^y-t8O7h9clAY!J7 zbyYAskfoNUy0D13wi`2-GUXsJS8={KajHh`T*Hk#=+=?s0#4 z@N-`5zXm({HWPwJA2-^zxqauC^2|Qlc+X~jR9D*}fd!&(!bEH4ms0rCq=nmF0o>8- zkp&v0*HArgTl>4v1N-5yTTcVCqBq98?vFLJZRuhT%%L}Gh&-k`Q$(y2%v`?V9kb+U zgKh?hd4-JIJ`SZ~z?GV^%4*Y569ronyPg$n&)J*7M-GS@SuCWN;H_n$)VOgE{L|Gd zwl+|eG)b}@blQp(wcEXFl-d6D(-F#lRX#Erf-_sgEKSCxc;V>-0~k;F7oVLNFI$lo z+PLV&kJV`$bGXPiPLpbQgPCEp2n0SvBf8% zmFJLZqqXbSlZt2#j;2>Ij>#a_JSd@c^*8fqa@+yO$;^)W5$cj0ZV(c?0P+$FwHEC) zlZ+A7pSF)^u%<~mptnSk8aBh|zg%0C`hG6vxE|oG39cw1%RWgUpp>Nqfkx18rDJH? za&yJ`3OaAv4Vn48^nHqHub7r@8d(w2NrY>PSQR^hx|2l1mm}hR@Qcm}TF)7pSXpKJ zjBjeK`B&T(le%;anzYL_l%zOk`GLk*fZb>*7sFRN1VOv;X4yJZ9Q<8dj$%Y;i|KM( zFNAZKrOlQgV#c)skpPj14>Oyq<-LfBorRY~N@w19GML4;Mu>)=Q6)jUx*{nbZp5Mkd?*W22!O8Wtvgjy$oGs4yLI zKe2|5QzQ8y%lQu@P4iorTOs>(qm^gTZsrSyG1#mnCxHopG?)YVboQ(fePmb}O0uug zG!?Q=h5;d7>ce9;NG!DS`Jh`l}2BX+~xkx}e;P*2NHa}#3KNYxEjQEQ5?g8>I@8N{2yo! zE_b?3UT>^p(2*vwln(@e;VPp(PuQd8236bdr*oQudkE5?g+^dfO}EOSwbD^nLspq( zKszUGIx70AAkMMrn&`k~sO^4^Gm!!Yeo!SsY%2gcc}G;h4}^s{5b!w)x)TVXEDZZQ_s8*6V^x|p`X(z{Ul zC;We`P~ix(^bU|Y35!=E!6YT^p3i?j#ZH|r)%`S={>fHL@;T3pOA$KEeN4e>X4Gu| zEn<9=&)UO}PvznOUgO99Cbv&m5#Vq#J)Y?3g^N z5Vqoz-$Lq};>ps}?i|nf*(8He7@PwN8SF&$Ap%`lHq%hkel+Hw-78>cQ>oFhP8G|*O1@>rW1Jn?e90x4ygvG`JV{ZtGk9u{3k zlbzijeEj^BI^;8#ZM`ZwJOFNyU^c>bdY%g;A#--QR5Q89(d85_CtG#rj4I`9d?TEw z!OJP#4s>g>xbQm(hg=+kE$ZH?IvQsTG-&rRqHawR+p%#utPJGtt&FC~sZwDw(-ZJ! zJ8R)%bk9FIkulgATvM!RhJm_AkzS@0z)wK_={w72dcWFI3+<7o%4T)eBWM~AO@kDyoQb)y%2DDtV zGF#D8vFbo;I*pZz+0BOSIJ&os=aw0X*u-<1a-Md0?Y{g;pvyg!4~%zI254cRK3GZ% zuBAr|2)dN{$Sfg@hMI(eE*3W_u14|&>sZtsO2}h+1Bzoll%ihRsF1rC5^^#Wy9_D! z|BNhKe;>}shi*!$R!ZC=DURY5>cY#T#f0p0os#Q;a@-J~yg718$$-dY`z1>tg?0g@ zEewb*Q0Z!kQDXll$)+Gr8K&WQBJu{d9DJ;_$oGNpZamKDb4}f3IDXQXg5bFNqmV*W z;k!TPkl6+qV3F}*>ArQqq`Jbcv}QDUq=G02CG-^$0H!H)!V=Zk=#E~T!1x|_(^}wg zkK|YJyN>jK!y;t*y$F)4k>a;=YE^#E9G%>k1ERPj0M&C} zkUe4v4`Pk|$rAUD*uU21s>f$ZUxnh^OMd7(vBctM{RYKLe|9_2Y&{N~3?sskWDlIs z4flKNi@O_oYj#xIHSQ)d5C5-`^@uz7*QL+czL%rXM~XgrbI`T)HI=BRU@0MN5G+vGGm>f+diF`B zqj60hAB$nrcS}BRb(S44!#AS4b>jh&f4&e&hPWB4OmwQxxpjE0ZSK#ctpk7kA{6sI z?9($LhlV!RP4d=wivN#u{}Y=xW3}BRxL}5pW$%?FU213*wOOedss!YXdwL%VECdyP z!(IXD)@ll8oF+Yji3?pD%_U!GyegwNAHJ@8@dE-O)mw6k^WB?Z3%i;i48at9P@Wp= zHmU4BBQ|mH1ze{uuMqG}2FfkJdxj?BSo)AC?Mh22zrv*eaWBK&4PDaD;$r|ha|>)$ zaz}i^Z1H;b<^^iA4g;i>xv!1A(1jJE6&(ogaW_vw85qOrRsmu6xUcS49cbQyF)r4iYZr{`A!TWc^T~{(z$;fXdK%frzXFi2`>vsXs$XV!u@G zBUmZ=T}Qc9pt&2%;FtlpN&zA!%8f>rA4TzkoQKAF{fR^b)`4O5C}y1gT;=T#;iSt$ zrnveJBf-5EEBKtw%hf-F->V=ZxwnG|)MHlHg$`76Znc@~s!;>w=FisSZ;&DJZA_*<%$To{hMR zgsPC#n7Zi16ShfBlo?=Eti0OY_)=*t>Jws95peRyD+nYP36IP zIUx6DIY{~vYW^g~N0>N2eK^YIUv^=4bg~*(MsoZPMfKba0f>cg!y2Jgr5$V;EwK5S zlh=X5zJL7Qqy#qK&U)82`%=co*4}LpLeg;NB|@uz2+{bC6n*>hhT%SrbAexXhp^_l zH1o;zCG}PKPLqKL7v5^B-f?Y*JDbuU%L#7!-7F|Jp6hf1P7ia}QL*Kk1wgJ8@P3eY zL-*2>?0uX}PLNRB?>fBi3Wa@DbOU3^3JPRB)_1n3&7-w#WCCu3R3gep9-3K&DdctO zsGo3`1Dtc42a(Tl@>wxoIbkbn2BOgDfSmQ_KdsHkOUZpvBMcj&Oiy--0+ zWLGSt;n;I}8UGnhAmmr_CMZmFL)y6&U? zHb_@9!a_%1y8`XCD$EHVwg&98@OemSHMk`W5IJ$xmxa~GA)0-LF_{w6hfQFrYuJsY z0XW5686#*t2&$@tASnb{d1PklM9)z?;rwEi0ND5xI2kEIb*LRY;mMK>w6P$obPdpF z1uv9?q1I4MySnMceXK7q7WWZLX^#Wh!llvC2>csHK^p(KddnR-iO|RI)Q`HLjN?Ub z2+IOcP94?9<|&xWp_b7IZvc}~gaufNM7x%c+pMDTbs-6z8Y{09J`ev-ULU^Rb6nZo zNv@$)+9yUmm4Ajm7&U<;XAKt-v*?P{A@vik;tQ6t|CH(Di<(Wds0XeW099Z#JRNuRw2`C_Nbd6K%TorO$1drwH)yFB7+Z6O=Q8dg5cvzcQI;%pQ9U=?NPJ{Ymm@R#7@utg)w+$0 ztnyTVM+=xQn?VfUS}1?G0~Ow$6{b?~*dlQ$nM1#ejmQEiEm+j;s{^jm87J3RsN~1R z=wt~*?R%1%T3Db$xMmbeBD#P$6bJHkic{9g$yvgX9*oR4dI>*U>YaL#amS}Z$wLvs9_z(>uAu&z>3L#|1F z+a<<-y%<4iuBAo_zJzf_)fK$r9}CIo+O}Fmp_dsb-S-mt$+MU;s&=#p?R;QRZ0KMB zOnx#l#!*vm_L!qeIu})VgE_tiZrBYwuj&8x@-m^|6$CxzXbrxML&VMB`Hj+Web(n4 zKJxpLw3C`<6p{NY{~6tL&xHY1Y}YE9%f>-zD`Pc3p_znYdYW(ysjSYsrI4 zFY_V6nO>KCurt?0zyTMl9fF`ZUV0Q!piQ&!C8Nu@nM!hNe8l##2&>}a{!p|Y zawtcC?Z!shZto=?s}zIfG%tN7B!j5Y<(F#LMHJ1*IUDx=(!mIXz{7$-trGbIBxA2; zZdyk}h!d)oGGzqbPEu-vSTgv3OM6&XFJeS0o3uh0!#?t)!ly?7+36z7pmJpF|FQda z$@{5sf0^v2kLi>PEj?KVbYrr}$<~5w)zk&C`w&Ek$|!OOBLHDU%u(Xk4k?WQVT{W{ zyvwY2e^Q~Szd$ugk9c(&g7>>@L67Raa^{`j_{(rbw?d9dJI#I$MVno6jaFO6&v5l* zP=|pc{F4|(e}R|kqKwj*DNz*qveb0u06bMS=D;=%T01<@`B_ef%zEKkCE>ajPX3u9 z52f@v@6j3lwd!Hb2;1nb2613~wr^5{76qO&_ej`!B0n)?;?Qp2Pt~V<*H_-~`y(RE zji@9|GSjR_g!1;hB1G0r1Xh}m2uWJU2~ksBn%PU$@!C24DWQ#zqY_`|0z)iwB7_8$ zmc|3rDoma`P+%~>=xsx6-VeeVWwY%tWEKaPCdJK^T%Ra01~PHf_s>IS1E-nD8s>~+ zHnP|tJFQAOadqD+NPJJ8hcF3oKIU#QTIYI~@L7WcG5b}04j*)#XHNJ0VJh^Hy`o6K zZeg{o%scb$l@GA#lpk>>Zf6TGVHPr5Kvsg2VmzGF?x6XD`fDzx#UvF6P=9&I2x*&_ z4r0Djez?SbF??1)BKcvDS}A5=C#*UP+2C`yj7Rb%Kv>x(H81+{Lu#CUJ7xsSW=fe1 z@Ip>Ebxha);|EAkFJ3R6_2RHs%YY}b?N65M7Lx0C)`j_G9^P4r%kkXjTY=2@#hhk} z9hHav=x;U^Dl$9(+t?+p56E+mP~%(Bj)n_Lz3XwfuK^LLlA?l?uKD)?WPo`k#F)L& zOash)M184*aHh)t!jGyMg60X4Ud8RbZU#1%DEz19RrI=zpTi)Vl*LDr9J>8Ofp$GD z^3jl*VypR5gc+F-@8%wMbUIL>83sQ&AG3L|uMf>nTcaXuq8G(vltjS;9fWDd z)4k$LVjT!3Y2!ot#!-#7&?Le^#v23e%M3_@CQ zNgzDOMQ|Nrf8Q8SjPHB;DrUhl570PSknw3VKrA7n5fPZCh-PciOq2vNQdOE9-o>>D zXy~nR%k*~@4wi997IT#_>md)GbF<0h=hyL^yz5%%CC$J zV!0)>Nz*d1^b%fhm~B<7TxD&p&XWL;;F%|3=mON~*@b_MkvE&XEZ}`6j6(ewe#V6m zJ$s%{;NtMzkuj^R)WqzDbwp@4u^|YOPUCHsTl4Z-Z_DIJt~kuMmh!=oQ%$1vnCA$MX;%BFi8}u5gEOAPc&(V^4^aOUZLRS^##6-^ z=OOb_j0?=mC< zwl@w4Nh*fAb<%Nkp=EtHvtZ$}Qn;T7x}hV!K`pVjGkXwl`KfH5dZ(o=LI$(%H`=cd zZ21mC&I5dng-qtbP{jem41bvL$gP5__0ENwKwz3{o%o{)9#_r7X6VX<+S`hFEVQ+xK{+F|6 z71g3NA2=flIOs<(nermpYDNZ&IAuqfI7bLO3=mGQ8qCmW&v_#aS?#dn)8tu@M+Ck# zz@Bp4*WDRW^NS=1)G!`O?>Ir;US^I&&kFAHARdL{G2=8FdENTw`JV3+0s7jIbnQp28 z0A8q+!wadDV^j77CM#6e{LyqdE>8U%nd=qyY1#!u-6%ZO7PZ7Dz_shZmY_s+jipot z=wH-6gC#amkhGcd8cdnyJGM<=k2ZQQmt5>Z^^bUD2~~+$PKHtXP6KMe`F!jX;=?dt?q^hL44XIXuxuM&%t}w~L!`QK7{V z8Q@x+QiSjR_2mM*5{1DQ+S_FS1Vs3Svw~-M(tJ%yikUGgr%-L*pWOS`OF+zV{ZlMA zyiHUjaruKqu_Q%#GFdMg&0New#Jw3>`TKGat6D3A#<>l0SVZ|?sVIrpr!Z|s46V_> ztt0k^24dIUcs(M$=%5*QD#4M;9kK*hj4d3~_Mji3J-P67)e51*Y&fVZBbFjTLiSDJ zm_0B@EIjAPV`|k!KOBUa0+xdkXlVlv?w?@R`BhcD+y6S`V3x^Dm*d=GEENbFu5s|{ zsud6b!Pv|zN_O_jp?#F>7-bSEs>KOGa<;SUs8;&;b7$omSApxFqpD;#mRF$7VwxQn z1;3eZZ%7oL(qnGb_CK_POD8xD&`5NU7v1G!<65f7t*wpk!{`&K%UD(`*m&k1IJPG> z1D^*=GKt8Rzl4Hlq!3RzL1#D>GJ;ZI1v$xc=9H3H@OwUWGO`I)kW2(cxi||QUd(|~ z$lUM*gfb&drc!eMiI7fra1k~6Yf9YUHeptMn0{(X%a00jD-Bt5K(h!x8O*A02OJy8 z!9`zGq0CHH3m4vM_V)uq+$kB4PJ@Q}1ZP10EX zG?f+GioKFO%R*@%2X^2=V}U$Zp%Gx4Nx2J$(|2MWHeHc94R;fKgZH%N`GPyu3Ai{j zW?39syjf?DK^{W9Nb6V9tMNt?t-g5F^Qnf*LdjE8lwe^^104O`p-f8$L;H9y2c<0s za+eNsb^HIM%QBMmHdI3rscL6c_wb&imwY~D^wuO$PfPp3biK5PwnN8vGDS^(+kk`R zos->t;alHrkA0qm>$8$8Wr+r^U0binn&9E?iQbe14~hECaB}NoFC*<(^uM^M&MO|1 zkB$t}abNj;?4m`293z6Y4BqF)1w8|Tv=&^beYyxf+!gYNBi0m$K8R}7z@e?j4pbvY zj|23g0G%y8$}2AC17j}xjp-`9WQQxcKm0`M!;C#`s4yAVni&q8s0}hngS5-0mdR4e zXmv(r2z6MAQ*xUu>nLl`m1G5Gz>1MXCCqn5S^=9ok55s2AwBKU_J}64!>%+Bz|lkh z=^H9EKj7vl0f96`8mww5Q!*MLYLlyU3C|GrZt|x;>8|K1sAIHlw8OAQTSTN(yyO6=5 z&b2^|dM*V7yBI9DY=&668+>zC%Shj-0(QIZEiDNfCpP;7m=cm4?HeI&k7Ujk#GD-F zdH4|cjpV&B6jU-d39HXtzo7>KB1wUaUaoocVJKoKqH?jUqq3YVMV`gweqVkQ3cN^xwD|l?Iigc3~8Bjzf35KvFg8_b_+GV~S2|h}P$<#?e3%9%XandA$X@dl{zE|HE zT-%d#XpSwA8S|V2H*mvSJSo8rh_^TF)^_8QV>Bp=`wmn{bDv%DH+S_d*{BbTeWtT; z)xJ-Kr9wg=i|EN<2%ISENryFR_3?0HTX^@X%l+565A|jyaY^$<&K{oFd~L?zV9j-S zhTBtYYTkFuTUdEestBGW(+7W9EGv2@elhae25Uj(k;+DEEa1Lox2cQyu!*W9^2&f+ z1Jj=YYWIyiiAgT3w00@j!mCLYh0ctTXebW0XVZaD1ju)8-|GWpIUQ=jiqOVb1)B}x z+q%f?=S5HWBP+G)fI#E?u!I2Mph1v+eV9Y@58yI_OE9MSV>S=+`F;sUqJNq|G`y;r zWZ`hJRZ@AVF>`=yvh9LU!+w@F>}n1*P2P&T+B_Cx04)aSoTkWxC>y68woY}gG%2|X zKdBR?nw?mE%MSa&#&Nvmt0n zKg{JkMZL@-sl|#=L8VL~00W(5X~~mf=KvE-$B^{QOvv4>@C++7Q@52W) z_R(HY@09eXIq}x?<@LYVP%RzOSOn73VjW zd=tD_UwaZz8Oba{fnpRaj#V$|;*@S2cm6+I#N7Z}F}RQJQ;)b@LI$%-e;;$GF8q)y zOjV#BDe4;udtY!@z)@JZrZFw_&lH02 zWGx(FhWOE1k%pu19`ro66nEcNLj|<~{)A{k@X>z`v|aOJuH01;q{RX@Qn*^_voJw3 zt45r%nYcgE3SM3;g!9_(fEJU#3@D@uKb(;@ped8)Uf%C=O#7J^@eP~}b5YWa&GN-* z6_OE8a)1TbG3t>am|W>U)at;2OAXItbbDQ=^W!*ETAikm_#mlZO;fA>z*`dGFJfG2 zC5*U&0oMU)Lgs)G$o68i3DTno&<~ZWT@ID%3D9)^ zu(>-cb%m3VnykmKpQG(bDF66_tBA@!$%K+7ek=*|W*-)x(gwW*vb-f8PqfQ0osaa* zqi_pTVmAH_s>UL>TN+buP4(k`Bih<1c42$s5}3@5Q2m&mr+%>$f(h-LETlaOQTggc zwo@cTv}`*xJ+-w2U0L=tuG7{=a4>mfZ2S!OT2U+KnWJvQPm^E{#FnKP;4Y=XHakn> zl0|Z|f`}HSDlLq+q9y?OnsMKs^33r1?IPU*8B~1*JE1XSIx9*3hLzAttdBte*Nfl8 z=z@^4K}n`q1aZQ~!-u+`RAP8Dcji9E5qR|NO*mM>sC7nq_JpcJLnEq?bd{gUJb_t- z;|QYiwS&G<14iEwy_BG`iUbn{@epq%NYJMP6&2)*#RFfFHzI3hC(dR!{G%qNJ#xuo z=Tk?h_ebmHqI$hZdVUO59Klb6?61U{8Prt~ru2_Fm|3q0fuxx!%|U%A{8X_4BDfX_ z!%DKabZowDps>rtpONcncwN3>t#mm3*{bm_LHu2ehhYwjYA2*?^@Re(rj-T^-@1bd zzAOuktq*p|-$bC@!&ksWE3bIjzcGZbiwKxtFS4G$awt(V74x0f1|IYSB+=hlCHi3H z@IHU#CHK_ixKOsVw&(yMd$fXizaUzw1~Cg#NFTC-r4t>-bjaaV;c|HuP{?=-Kc8eK z$jwHd_5yv3>`=I80uQBvkl}Sf#j!8qo9^?<=#ZjV_|lCV+eRyfuYmd$p&b(X5umb1 zT4YU!cZ6uL-lEA%)EDcMZ4wX{Q40C|1E7vYbcVg3L#WiQHtgw-;QEUI*ODGlBRgb~ z+oJ8BgpDO#01H{&eJdoODHe?`09h@0%8AGiy)|OV4lM5{|2~Z0_PiS7-Y{B8Y$ub< zBGrS@lTCl*zdvv%ct!Yk10RS&!NKsmB|*AiCGdTM+xJL;vKC&jO+z*d@H8fK+|1Hl zu#=`?CQf!d6&p>BljcWbS?{((lKb*E(T{>}r!YyjciD4qs zck*Q|o6~^M?dG%Uv{Rf(7y05``3V<%Dye-a@`8L&XM6#CHdkk-guUQCo(Q@?2J6jy z{%2JnXuUYhS-8m`VAJXVvPuUk0U0qnSO94H&>jag%0_wno=Q%3;pwPN8kQZIAFpT( z;z)+;i6my)@-mglJ>&J4pDy_o?Va+0mJ^$!LOG9W(<>#z21BKoG>R zqyXC~S_AA+mkxYkpWZ_MxblCJu4$^b?n($gbhGTH>?`HGC8S=M!)FYl9Py4{^P<6I z{?T%^RJ~Q-kO8!+g^Qx;DZ~Fy?!E2#boQXev2wY~_lGzhbS@Po2Kq{V%sI~MeUT9-7USN!J?lImBXRYc zqT-ldY~sBAcr~Qf$kjgU!S#aT&vl`F3z*jy_@Ut9 zk;$*&w10#{w>;IJ>jI_773BhrRK1JphABHzasX zyu+`M6B^XjN+Ez+FbySjQL^q5pnBY&D5Ghno&!fHSX08DNs-0|z@X`)>$NhVMQ6-g z_(!<@_8%g7GFU3EoAtg`=N7-z)Wf73V~57zCqtVxD*oLwR2wUNA$Y;Rq@uKs35E_# zFm9->DI5|{auLp30^n+}yBzfge4lf5jWY6DOb80NbdY$XGC>YrzZ(!FSBGHwdK1P? zZDvOt9Hk79l0YZ<6HJnS+lj%gQE!^vSoG6N|FKH6%T0e3oG>opwIK1Sq&ihF(&8Wa zzZR9g2~_WQ5l6zla!jpn{rwo`>!w_tG$wm^^}T+s@-8D>b`+WzR(!k?2m8-sz9sCTu;Jo~^7G!q zTHYCHQ$I=DQHaSSdKzFl4N;Rf6{F7vZa{HcUpwBEryTAxXe(KqQQ1o4;BZLH7oms0 z&s7i}UP0mb1a3_PCy&gF-r0!%|dBiaa8^1C>hRMej0fLB6g?rJs%FJ69jAh*K@X_6Ss7G`o zF-XXM$frWxjHxVzUZx3zs%vVBZ{Ni??BE93)0qv1&RcY|0Ok7L1cpCMXhw#zyl96A z{Oq{z7%th^ARCowtPN#znQcNV4|z6n8etDtO2OBj8QJT_9tH8hh3MEV-Tet9wftM} z@#KzA#7$RfHc<9Db!fpcz?U7bKN`jp^;WGR?eQ*#ZCU~Il|{CjtGR#wY;Xp^63&6( zmdl{5{#V^Avz{+kUIbRZ?IfCvLN|>u1zSjq@kGd5+cMM;DRtRSvQKv#|Jqm6Ns-gM zX*lJ3n4-MwZEVeL$wyV58drwbE0ul;s0CV+0sJTo{DlBD5W}3GdTYOIk}>Lf^u(ko zBohmz^7A%CSduw<5kJcJ#WH3$cn6Ju3lW8OF!3%$U=9iN1I$7C^ehcV|*jF3qW%{`mbEmr8lVFoGwf7J?sINCe&c4zO~aP`m+mkfFW z>M*u4(&=4YqX_M`YQJgZ%TicF29s3$vs4Y#`4M&qKNI9#2!E{_Df4EZ=2U)!m*z|r zN$m(V`7M6J8dq6QOn|zFS}q*_E3reL;Kikd^XupvNbgS%6dYP z;fnT8ME`Fj5G&4adW+I@F<==3FgX;qa2tW?d_hd4F!(^KpIe3)DMd8*IH_RVsm{VD zMB@KkLa5gwOJg#o?@|g!^hQ9L{LTO3nm)t|KppI-)BWSvzK6fkVFrY17itvZ8^#f| z=!X$z==tA(^+Lt_O;-=6oXKNpw4rN)oV>+a;N#joyaUoKgJ4SSnTT#36UjC%gO&M% zOY)1`3VqN`(m><}2jQVh++ z=P{7C9*+R`woA1EkwE#Pb5S^9m}60F$4TC7TJHu*#};J6F5Ke`XgX(rMRE}j2>L37#*P2S z2-hYNUpo@evdTO{4Ow@`3$4(tEJxbKg@JfZrP2TSq;XqG<*Ite#gUnm@K-2Uy$V>B z3(RMtOn29jM!Y*xG()jX!Tg)^-vK7HBl&O~@Xp8&tDR`aCb6+^A@##fo0PAEjVtbh zL%-D|z&BJB@1opIr#5cy+d2&LiHEyU&)4#;_X-)LO0arzOUJSC@1mr;#k7o1!Ham< z;|#SDwP#b0=`F$CCAUN8HL;gkgkYtuI+V}N(J7L|X+JW#kMH)2%*<8)goP{g43zg}(SE{I5 zI}D=uSzdw#3eAjfHydP+Aqt;0SX%(5YE%6d5GrbD&ObcgaS`HlsepP&=yX=FZjU;$ zNV9P$6^;I~v0bhZb@*#i78FinJ%OG8FBZ#zKR-S>j|N$K9K9K$L*! z4bUxdkhP7XH)EMg(M~*>pmI2w%it+kAMN7LB!^z@%Ewk~o+%-)zRg|lXV2cGmGZCq zgOE+;`gj}Gy;G7*Wu!;`m4?TrNd3==fMcReut|r)0s154wJU`75vMvu@mi^SxklXY zmphD;yz^K=6mFLQENXGw>^EiG*;AXHq`Hlo${HjC%1C+xpMKS$-|TM2(*M{|Ux~E5 zyHfa=5)^=EhAG4;hkTUVO=GawCIb>l8v&o3#19`VFo_R!xQUT&`N%LN^lWyUzlcBz zTbhv`Aim`ok?1S$leinRm&XQ9r$CY2wuj+45}evwM#cp7x9Ny6b1F+ERchiCAX4<> z&Q@ZF`5@$I65+#CejJNIFPmW4_x|C+FVaa7SpM-yU6Y_RS3GN7sE#gP;6r+OzkP(K zHni+M1rbni&8Qv#b%RfWV6bYBbFh))YFdV2cqMs z0rJY2QXwaRjcLmW>t4>A0lI%SfpL;&Q-+061(G%*ay&&Rdof3-P2fpRfwWdQ)_-#v zSQIo_a1*=bbxV4CGJWfbiMjCk-LRO5N+c2O6iI%fQDTc`SjvEvmI(4zk6n2Qr+r2` z{B_)=`wV7Q=FX-YS9?l$^YTO+z{=>I?k`%DaLryusKkr+;-{qdS%<4JMMSBnMKVK+ z>j%dsJ%6S|lt{>RU&=lH4#DO&oRt%*=8gGGsg&|W9|~P}i4T8xUUM4;U6hUx;o$VW zr|>dlz-zt*N7bkIsh_GtAd6AB_!ilUSPc13DqxhzbB?5>d%t zYvV=xpAC->QzI(lQ7~qaokfDbpmPO_QrJdA4ff~y7U?NY)AcQ)kH(+JFNcJUyARg9 zJM{q*INc+pyC$%>4Fbm=RlrY(ZI)9ORWX({_)tn!aiv2Df(fpDKbJfIcbe(|cG4djR*^vrXfs+=BISJdem)7bf2l>|%~ZpZ#dJmI}Y{EkWD zp(qeG)&L6@FGFq+`b>HE%ecfwCigqzFWXG$crwWa4b<|MZE)p>&?hMKzKX!1KVO2% ztuIG>p?P^sE{3BONxN}ArV0wN$;e(m4I7@lGH?n)mAOX+?Qz^zc!4sDt0s8RRG=61 zSxRIJ)P>$XNrgI05YjX4BYQpVQq?<9{yy4 zRSLKbp-J%G$hrvk6LKde6_2}DkM0rB2wBzR83{j=mbvTXz`(1uENN2&Qs$ehd4)Du z9_oj^JM*FbEocWAKZ%T2H97}7akXfo zW1c8|t5yN0EY(QRrU$;v{ zNbxW#zBBc>+u`b-*N~OS!4&sqC6`6IB}!pxsn@6{K6Y{{$iRc1=D_Zh55d$-gme^R@7s$;LW0@F^VeWfF@o-sFy^^b;|q))8=OjnjUhQ=X!HJ zgy9z@KtEP?@|Gh#?G*s*|9$sx4-xLMi4%vW4HE*1_Fc7`k(F#xv~)yFa_SS%)4jrF zuecz7mLD=G+Dfj$7L#=BRO(ao!!&`nx?c8NFTof_xWO^Z`ci^KPp+b(DtDfqfPJS^ z8+Un*DwC1aOdAaZ>ZMwMjEZQU>ynr#M1M9{@%9{VfaPevd6S3@Zvq^#mpn^Nd9GL= zkhqiWVS_T#=x58Ef#hi(2$uFz^g!OnS9tG5^%&LJdXVyHKNGFkbx8T5e1688f;~*! z#TZir0QPLZzd8yI#`x0VReiDuEw5NLB%t^JGEq0!&1tP!ku4d{;~^aoZ)r6b;SZ*r zFq+tobrH5s-!6iiw_YO!*o4oUU|0!(h}i3(%r~EEi*1l{Vpqu#Cc~7QGag#O03oPp z?G5drAcY_ia!rWG1+gv{M4J-k-L|b=L8Uj{zv>yaoJPZH2iM-DQ5mx^{+{qF% zGR3dNP1K2tvv>RkdF}jR4B=_{M~G4DwP2(*SwListw3{{s^aD^OnaC8sY03SrIFI6 zDhR2`T7Rme%Q1ADDKIL$Mr)e9PSd_NQ76ZEHz>;hvDz^@-%(pOUVbwIgGmCqvjg*W zs1HVyR4-8rAhp=t?hd3BD1!aBCItsUbapxdGZsw(OXh$ zK*V8q4V>3pIgI)HO-xf(a^j6PA7$v(IaJ|YA0R7Lh4#2^$cL;GH@&eR!}JyuMA&ZC zqr{>2jgej{%=3dyaWl8Hr==AXCPgvy@kg+u~PXLrVX{~v8#hlUX5uze}`G+2xdC)*`E zHfsLc12N^0P{bCBIqZ3*(s);eqTI^!gb>3?8x%pxE&;cLaMGS>!DYJ|74E#WzCcKO z8h#dJzv)gBoDm{>5aT&Ep6WjFPI4)37h~Of=yC$!>w3MegLKA_{kPxU0YFL6DEH)i z8mfnBfVq+1d1F=6F};i4N{WT+8a!k@b;97>;^Uu;8c5n!oR3*mt~rB&Z%airn9*1#mcOZ(g4+xTA-S~|>lsm_Jv?r&n<<^}RI z+NhKVE8A!L%G zH8O6YoJfY{PgPTvu)}vsNA{rOQ#Tf9TjT@v4NfO;6DX!;BO}GOQW?Q({#=wYB)Bf9 z#7{nqOfqxQ&9EbvXhupyI4zE_<5wq+)Q@!>5MiQHA1a|?ekQQJ^+_P`95j%)#dR;C zO$F5NDPs$?uf1Iv(Sh;f8|+$6Wm(u!4A3Da7z!> zsYeXeN}CNNbFmh#bV@G5P*MhPBRA@J)@n?`|9)K1SFhTa(t5BX7Z=kK8q%7oVnwP* zeJ72T9`hj425A>rj;t8x1z6LN&WhZEhBbK~??7CN@&y%|!8T2-==B#41w4Y9-T+Ey zY~aQEiq?f=Y`Ga=?K0Aw!Aq-Zn&wiez#{U6tqB-kzumf;rls4xEQ9j=Cs#{zQ?C8^-Bxyt3!M;hE0Vln>h^d2G=N-p1*E+7zCoYih87jR_f3Xk zq)aMKA5J!ff$Asd=rZ|esESWtcZPohcf?EQi;)&;fJDv7g8WY@A`RvB{+)nHrYcL* zDNzv_$#i?oQ_+h9_gTi|P*L_R_3*ev^%lbCC^3GW4yO|JP%tJYN}$|?myBSk7Q{I~ z&pr{DlHsUmJUJ(F^3sD61%deRes>m2hQdQ#a3|Z zbsVc-mLYJhS|WGiAP^Uk`}jiCyk!HG)MnJ4`H!U1J-5n#CSFyTD+RY0p3Kv1i3SvU z+qBtX?lZO5a$!4yn?5VxA4(YVBCV}CGHb~Ly(^Jzz{bX zclUw-I7%()Wbu^iFmdhoMq_ft1C%;0>l;YH)Epq;dyo4yZRv+}v4biZQOq4zcv>=X zcUCVa>J#aPrZyb?MN3(Ij=X|VN!aCVTE3hstn65F?!s(ZuFV-&J}xP7IjfhiV_o zG_ud&sdkN9Vpj`?;;wrZ`Bv^~+{mD!E0U_>u6`EsmGU{UpOBQ&yRRVooB1T4%3fY# zbzt}P!|izYFu!z~c$Fs+Zj#%<2@EsS2Lr7IUxCb~yH-qJGz^E91?4gJ^!6G!K}{)n zqLy?O+i4uz={7e^=+=g3<=iMFt)-a>uXzYA6VwgBh3e)~2pBlO>!4cQZGi#dY#3ZZ1LK2LsZPKXfjXjJ<$5OvrLG7uv-9K^$ zKrth@WjEpv(mrUurRNoR^@2(--raekE)XCbr>z92(fnV@0%E~Bd}Y)1T-C7fNTw;Y zG!)TVQjLgf??8-f21|1job9Sh!u`D}lHW0NM(`^|YDfzlMqAH%f5^|D*LVJ(^M&4C zLnj1jD3Fd$B)~7rQ&Q!EI|c<8n?vJJz^HdzOecXb9JiZf@+8z$dQS;%sMfBQ;}Lk7 zH2X*1po#M;f|j;@&9S%yd~#~giy@Uapi#Mx=oUF@eYCXt9?F0JJ$EjDUuYC4601Y6 zjo6?;u>Vu`i@Oh7HeY$Q+b^$K(2U}Fcu?!Zo`ow9*_vY#uLE%m>xhDQ48abRfUk^; zk4Yioxt9R7`-pjxo)(8xv~)s3PjilQGt_P(5ju#bw12>(24JsVd~)DYPr{Sm<1AYWLz>XiI;q2c8LDA3Z0hLQM&Gugr^+4~6$>5QasB7cpnh~b#( z7nnkzN)(-B9;*#!LmiZxZ=eCC}sonM%IEwA`~^x|>50%(qfjqxz+ariF5$ws*+-&8{KoY3ArrFL(7&+u zrhyd73GQ%pg&mnlIvDil>HaiNl~-L1=^Q8XHb`iv7!QBHmHQLc^D}U@-|#1MvV*U> zNp7xXcPfyYA^3N#7JJy{@s)agR%(YUgI7={QKf`7`>&d+TVBo}02e)`N)$Gra9D;v znM?QwB-p2yZzfOT@qG$=v`uPa!-;|Whk`aWORn(9Q_4AwB^$gmJ#2a7$dKKFCEuPJ z$*$yh*mHRJ53`%#soa!w$y~$<4pmPqbVT>GVKPZczhP14kqJ>q;M3M(GLfZ%vRllm zm7uHWurjb^cGx6>^nAplNXl0@Flrt@_KR*Z&G@@37>z?qTOD6Oz(ZgqK2PZ25p?;L znCjB#wK8USV0b0ZKlz5XjenmQnFN`#uYl9G2_*@89hIm9xQK13An3eRT`U%kCT-^tAflz z%}bDBW{wM%YvGOnpeAw{Ap~>Ps4KrQGZm!c>qy42|BEa9yz7Rg6u9crO~+O+Ts?%t zI}>DKYh1vZ-kd{978_;3c}?_%g}!%^4m!q5Bi`(a!RAw1w0ojDY1>hWyJF(w#5&+N zkBWvFuN_D=ssu%r3ok%5Zgk-KlhOw0uVI5Ya`D9{Fs3zrla8kR_LQ}j|BP~9*q(mz zeV`%u7r!Z1&=|@HjYQvNQ&z8mC9#2s?gn<8@(Ko%l!Ebw!_v#F)Ojv|m=oF8 zJ%{EWQR7Hh!6>j0d~83`8*8D|?PK%uA&pi8ppH0Z%ZR`j!ej|b zl}$&WR?z`wQn`HgJq#@4B%nc`|BMHbPyv`Q^3#8zD*j;MKAh>q?zqK6`^9Xy5g0;5 zGVN4HRq!kErz%jfRz5#X#h23rl@eSwnq#z>y+<+e2Lzc(}ORvXP{O?kD&Xt|rjUo|YlyypS3cRJ#60zlP ze5_%|FS#l~b9(AVOJ{cZjhQMCwe|vN_-cffTcW-sT1@N8i1qQJ_KLUNGwH^@fsaD0 zrLBUa!Trjl(Z!^Jn~%|r$kb1pJtwk=1z0x?tbe9j3B2X%5^E_QLsy>X>Xj0))ukBr zAR|Bz;0Yt$6C@m?S#KqXlV&Sgk&7q%Eja|(^n-reJy=&MI;2Y=E8d#qHi+z2U)&}IfWgbSj*#9gdBIOVMM4B=dJS&w-8{sgem$5)sg~ZqtcN(IVzE{~`Z090>A{h_#^4@6Xh_lA!KYt6kH^q^uR6R{P(LLiG3F+Lw22e)JKw=Pm$1@Thcyo)pfdzGyWgukS;Q_g|2n zk+Bi`C_}Ib%`(#`Rg1-{rk0H7d;t=`5QFio)WKO~9@)I|nq}gW5uyJ|a5t_P@loJd zN8Q^S4#!}v1)l`(E8`W~J{n`r{Ra7A;gdF-49Lfr*+1x2deIM*Y!|?a6lrL12>++j z8$cu&rOe)l53uTqd=-6)xvkc70z$D;N=45vJN{8Nu{ zmd(@B_7EAXafjU&fgNtzYEA&?;jVgT>)R_v4QI2mMmk6bDk-ea`8`n6BKn)<3r#*& z1q!~8;a6R_t3aP3!^*PQ>P+m^XgPkj*#oB*X7aPwUN*==jv|}yJ_1gdGSn_m4r<~Vj@eRHsS!$Kv6S<`4L>`T8!$$b?8bZ zK0}v5@vQ|J>6!=e%0_#3wPNLjEQz^$OPU$W^)O{vq=N!U?v0A_bJY+_?26N*0WLB9 zFLTQ*E?=OP{HcR6FBu3FA81=fzA^f;qHSoxBM<7wsqaJo$Cy=~tqZlIYphOrDwhyi z*~uG1xyL%(VlxG%6k8ZQGB*7#dMWyvvqj;6(hOg6&(4mT*N!pVuNu z#tKGaUt#8QiA~%UKO#6|I2}R3Lq28k3Cz#hjsax%XN|Qb64cfR4|zAw6b!$xB1N!K zNqzeCyNAlK3s+dcOEn+k$+{K5gP>0KhfTZQ5PCiC6jsGIxS|lDb!8IRysUr=FDuxZ za%_w>t_A7rNe_!XWUvpF%)mkH(O4BrhUrM?4}N(=@K}wV4E)o#)Py}`pfarfW)B@g-y#Zz{^>zzBRwczVO04O9=^gD z`Yp9>)v*ji@|e%|tcx$5@`p|D9=S;VLO)WU{VI8$9JdtxmSPsz__0X*Nc3U+yyhDi zuSq1n%;kWROMm4n8&2aiTry4#r(wi;b?YbJY`6KTOGU3>0DbiuVDMzw@)qdZX%?Sv zuiOyMQ=6yUT0eES{wc;U{nL%j8v^5@JnJbxp`7b3j6-L^hR4_r<&axId>bqvS?ed4 zj&VgcuWq}G{gGlu1%nhmGN&Z%z(|D3U8mS^F@5Y~T zl|!z`jH~i>#4GUG`%|Qki9@!g*<91QySeqvcBtrDmZjHx zOLdT4H#{cgFn&XRO*v$o>M$MWsqP-Bs7{9X)+IND-@4|ScQ@OiBG-cLn7JUeVltNNyc07C7T-Y{- zTP%H&j}Bq>vx`4B`zSp^hYURz*gN?QgT9E$U$;Dyi(P824lNahjq5&x(l&n+)m6P?r=Jt*?DJf+zxv*iaq_%3P0xH zxnvyEWIDRM5DON@xSi=u*l9=Q5A3CXq;^lAE@O;J*jp>(+#R>RkB_PwL_8yqziT0P z)1!B!zGSEYA8#Z&`%U+-K^BY;8HZhzx!AiyI+nTR76cMqMX5`P$u9oT?5T&~v8(OG z@KNen)@3IrC;!o>PQvzX<-X#EaiUuuw5nby3R}_TGOwDm2kV0e0F;g3fSf0U{CoAZDurZh3b%91F6T#JAz zNhzpe1wd1H0pxz)M@W$Z1ql}DfQ%x5+?yQqz$w0SFoJKSD{`O$FKDn*0}%S~^@SJe zg?^l7oMh5Z-&`z*zOlNVDA8?jAW=@fu@?5Sl9H20*R)fG9CgToklkpN+hnCv-B=0g zcxj%W_NS(KnrEfQPIK7_iLS{^T9pl;OA7H9KbZ&b`DHFYUB-CoR6^4|DI~2V`f2$q z!p^|o^dyeCz^)gd4t!UHEzc*^vUuJ`E5*_|k70c}D=`jZVVp~OiE&OoowG0wJMHq* z`eiRat>5lprOtnF#>FtC`;+(a=lP6pj1#HtZhVh=EdD&-x^6XcZ4`tyo}W6co|agN zu{^PxV}4_!P$S2jyqic}`gV@~4|%lh>`BuAI88R3jk?hH*PMeA8$Y zl2CX>g_%kznrA-?E1k}IKP^8ULM2N*I@LTn{K2%NUMUbPbeG%?4tF8;IQjGlKpoAe zO90|{K3RULs|3GRC&nRkWw1p(#=WlLNBz`6xPwwJf##{RQcoc##9wxI^OIv)juLWs zos9V78Ky@ZadaBKP&smqS?M?K}#w~PX5KR-XRi4^+z z>A8#L(`6G`B#q=tK9NwQ6glOm=Tb-t$stLk9jVb}kWU?k)KibfFKkLV^<;?e)@6L8 zPfyY=$J`8<9xj%btza=`+aY2q)^~bcEv# zO@{cIcVS5A;E&MN+~{m{(`$54I$=4DuIb8|?#7^>uIg@;>0-z>w;huBDNh0XO?Lt1 zUCMb%)w`?dE3}K{P4CjTeX_6l{r=j|?Dz2(WfCjF!2mG92I~geMZ>-NR)a2V3_aL3O*jML5=3qRO+vra~jo|MsuaoXb-n6G&7m}A&y zh60p4-*gLeO6_Cp8-I*%UAucmT2(cyq{m#N61KCHP=}1mAV0=oNPSEU%40kk;>&oK zeF}ZM5%#R*7+Q@$I6!)oN2e$&vt~fIFnOJQjI4L<5Xv($+P-h23cogrFQb}e9+VZE zQ8xsi@{T~8xB>p6f9-;tfY<}V9h!6AT~V(ddy)S_Dj$98_?ZgJ%nupo0_!Mz-h_uoJWobS@&jOVci*mSTsTHavUqXl-L?SiUR1vbdyVfsqd5(FD$aS`n8 z=Y~4b0Es|$zsN>Ij!g*sD1<*U32byY09$LQ5ZEBcJy!l;>9n%Wfa1lBpIv+#EFjq% zL*(>~OwY-5C)A^ixnvx=I78{Lv`%c0qp zwbE6!nS-8J7OJq*S!-7QT}cZ zO?c>*Q4rcRmuHn>|GY zEgP1#_f)2wb3gv6Rf)+_~|*Z((5Ar z+Pjv*t#(GTx0@7wdpGGPj01&n;N*FjqncoYY(^G6hVY~F5Pp&-fi0Vvmss%^Yn;Eh z0~jwTf)N>K@Q?%~OZp-SE;KYTqKPNq47mJ&Qd&fUSVKG(m}z9yyS8VuQM+70ROTS^=wlE3OFU;3Meuco5k zP+e0>T?ps$(m!ckO3BMEb{Aqv@>}h&eC?F{gjsgVGVP>E=@_MyYEoh@H4LL#^)7vh zV+1-XW?gJ6u+!#1%WsUq%%jZm8&;(zBhzKxMcB){8$(vk&fcZrD_8PAxQXa_JbVQ~ zjNfSOBJ5$_jUh8m<1?=0H^?7zJJz?DWuB1O-Hmq!l|v3w@|Y^+obr_0?&LEvGEURc z=&q92Jf@=#(^Z-1GA{EnGQM$z>8Q*2;7@ugG3-@+^vmNpm(IC#kLlpEEOqOu?kaf| zx3jf(LrC;?B`?!m`Z7Pmv-gaW8EajpyGh>qk5+Y+KN){yRI3_ioEVqRVjLKoLZLDg zD(m2*;t%H7w!u^ibM7*3C*>Hn#n^2rlyir9s@q&ePs|a)JSj0rB=e$oV@T%El{`nW z)Thm6VqGEwHab0FyMg(1OwtJF6xKJbPdISkI0ZrJV}RI)A#Qnp7~;~?ENV0`4O@kb z69WwK%WEABA>euHUFs*_IBcS(Oie#|cPvldjU3m)bQK$`f0=;i@#6k#^$VE zEdE$EIys;X`^{V*w_uMB?qG*h*lQu{r+Yfw1?hT~#GtV>Fg$->}+L_+yWp5c<;VR~7cgEYE)X^_+!f@j?ImMj5P#`hM=a?E5$RDnjb9%7^3;otb*XemloiNld!j@U=^f)(xiu{mm13yBcUMf!dsH6KzZWR6SKsn*OVb4*aW*=N%|Wd zW6YrFF{uiaC(=juWLbJm>7f>C>T)Hi2nzqOkCrS{UQZNk`jTo z9D!9=)njhoK0+$TfVS$kmZrJ54i~oee0GI&er&+Ploi%}Pr~bnCDyzA`)~T=+22P!wD$Q0&6j20DVM`*m`AA%t_gIrsb7+|KsUyASxxhe-i2+I+(jPK+fGJ?D6= zgHd3a;=66TP!4@n<1CJ_#V#0UhhMvTqEt^ggsz?_oLh&^V#q&yI)?Z(mqSP!9a=r| zvEqsW^Xak6(c*~~wQ~aFTc?8uf9zbB!ykL96Tt>N@74|5;6QwE3XqR*u)%fX(FP1K zbg;O^+zG#REUxP&+L=HCBS@fWM1U^<9O1)v>-gG1_(_+2f)Orw$UJm#i-oj4^S&in zrCkY6iXLK=+v#nKsn&#-+R0<_$D8L<0iFPMu~^b$2j$o4;LlkOgP}Cn8ih}_9_wHT z0nhA?oSgBf?&}t}>>+IQ>t9)>iH9+A7^sOW-uw{{PV9(+i!47?LU^!O)|c#3F&DwM z*L-&{iYK&u5!Lsqt5FTv=+}PRa5MrZJ_R7RRzZc$PhlYy3;B~GilY}4Pq5yJDNVqj zUtpsfxqyiq-%Hr&Qd&UsEKoxAMMZvo~4lb zyw#{RR5rLB3zdS1H8ori?VCr8JaQiT*va7`Wt1b3Kyh$8GUwTQiDm!MOYG%>XzyLu z;UHmznj2kbqsEG+qcNlEx=yBxf$415bzQcDMh>A5ipAMx~mGG-zgMXlPV2F*GzVmWGBVMT6pKXlMd(qQSO7-%{NzWw(_5N!Z+| z9>gx&ma?(CnVVZ^(n|Euvlg<~ex=+FtxsC$p|_B|lvWkT?O68y!A5T;_S%PEirZm* zDNabuL;fsGDu$W6nY+JDCPoIv%A`mNmzWyQQ31%`hq{ZH~0ciDel*X`9@( z=D20_R5k5%+G^!0N}^EB5w+FR#?@Lm4wb4l1tVc#nj;LVawuC;Ynsp5jDI3hjMT#^3vIIz*E zG&DFO+PB96Ygcl$YK|)}G$`uE5c<)xFJHa@;W>#v=s$$mVC0rFg=JOZkY(7E&5=?R zCvBHqa;HL&Wdk%&PRJLvA?3(d1B@ui2&_nH zi&+$(ID%ppz0&CgzmVdF(+dlzv}FMUA*iI(JsXdeUA=SSFlTnfeB$VdxoyF<>qz+6 zF+A$|^4$4Dt_Ak!wFhs&woutcFI_&fj-6&=dC5z^-%k{W^4iDeHk6m$bzo4(@of?r5s!|63c#M#CEP)GwCh+gH=OQ$JIGS2d4$H_)bC^4!D_ z|K6zn-c+l?iXu_c6Re2ik!NhQmssgPn)27xRdc%4UcF1D#L>a74Y;hd!AiM-cC}lN z=5%I*Xpea>@YgQ2u+eYM_k~&HoH;Q~tnlF_y)i@sIZ@;3g_kXgDreXLk(2Ugm0Z@X zsjd~M%XaI?*FTV@*3@(U+HH5%GO*2h9^aI|IHf10cjO~dqe>Vp_^E;K<-?^Ua=3{# zVa^SYqaGp*cFYq1w_LyrSWT5eplZo zZ(nsMr|C{kqdTSi2S+0qXY1^dN|JWbaQ4U^i=;5l4C7$#av=t>>xFKy)4+DocpD85 za%*$Vt(|pZ7`J1yn&ctpTX#slvH-tfJmYq3iu07m_@>pFj&sPxpin3m0w3j}{6ZzJ zyAjph_LOg2xlYDat>jfQDX%F@YbxbJyK*43HwVUHCbv^9{Pvq;cUY*xT9^DW=Lxai zUVUqBr&?>hdIW{?7*i+|>W1LC*j!etcNe|3b9MOLS$FX#a`2;bU3=}ats8oVB54Go zdOo6I>81CBnMcJaDawdY*ys>ui%D5@(PN8OtQIyZvHonIy&C?aj^r%k77(Mf5kJZ) zg{EU2wr!gWfxo$uKXupNeipm?0t;1Grw+Mz>ZWU*l8r|5*#E(M&Bo}E`XVL4%8oO|lx)CEN1rWHG-)~;5* zS^?UyGl6tk!m3b#MH4Tef|H|YiwlZe-~*!~jBxOR9%j+22s%eDfKmzCu=fzGtkBw7 z)K#L`07(iW8GJc`hrjV8G=YS0y!MhzfQVj6PULX(gD9j_0fmYo6s8aZg%uTFY-qIL zHGr8Ys#v1=D!M`ksb5NW=0R#>V7Cb(%@S*}1Q*0S0>;&)pdG;&w&{Zp# z7@?4&QP*hX4+=2|P%%u?vTg=VpzPG-1O-Uz>YtjhYX)IJuOSE!ltmF(%%f{v&C?D} zp&|ZeP*GO2LDo$bJ-g5frsN0-B@v~^5X%*G!Gwe+hG7_nrG#)Gf7r>0%uh|*$u=1x zVj=_(u*VD%N(r@V4snZPN+<;-1%+{L3W*dFRv004Y7!bEYQkUUX-Gm%EYVO<>@k55 zf{75cVYebwM7wMghy_~k2#P*AA@Z9ALj|B&XF}GsFbu;m?PTOLgM{V|&wghK9{TJ7 z_Lx6$2Oqs)5h)0V2YhY$<}` z2AiVlVOwnS>5{7{hH-Ur?2?H+KS#gGkbWVuvd1e z@?99`N+3KCpbmW2l;FuTdH7>Lb+c#sV4hYqed6qyJW_UfmR=@L7k15_=`(*O&+M5z zC!QiE5EC!Sgbg}a)|p`C$J*JlGUc=@`GPt?P^Yc@l}FEh<-~jpmg3^7%_~yfk7$t%_2sqO_{4l%*_| zsA`<9SagXWXclCsYE`W)rAa-gRzOz1{hg%kb^Il zaBu@JuynzN4V1R1ffiS2FoP_TtYE=J8BCPHB7&t#`iyR5Qb`0e;gDu>YJJ)u4J_;7 z(Gf=55m=_gcz{4TwXBH=Sr)Ud=KCgt80EqO5|5C;B8Sg(thoj`yBjEnv>!Gp)Mwo8 z?uI9@&1z*W^ys-0!SP0Jd>zswv=P8G0c&Mje6-5j-Q6b*3LPu}RQ{ia_jjmVx|s`eMRRYtLw!uW?n3P}=VVn$HO)Tru(5JEU(gG!Aq1fgb>1-+GlJ*Wk#sd2A}7wZY~ZIU>t|FULn+Jhc+_hb(QL1p*)v1 z;Br(V%(3sGe`V=xf4jT8gbJa~2|@s90jN#;t4)N3P|}u5hu$9DNXrOqpoa;dK6&Wf z-Z6k~LU*#eyC>^wrU0sh!bXP>LMf%xQKgWL++QY=jedE^S7C{jf9o@Q2ig7@gblL% z@e3RM3$n3;EX3ORyOTsMPq5(~C&Zh&g51JJ?;|-6eFwJ#T@rCAvngx{!vK6k3JkEKJAU{Yz(CrJ z7NfhHUqXaUjImF62|EhW4Pdv98V_9sT{5uMo`PRH^zRp*GuZkv0x}A~Q2@%C(v@!NcMiuCs=|2F((J=1mH2cvToZ)PL3<5yPI=z zUf_>ii<~5YwmiEJQBbh$0}gbWYYBkBQT2}m0ASj7{pjx3O_Fv^k8S+1k8`6AQ3oW9 z(;oB4-g1IqikzcLlg)S6rr=NX{L+(3xEcL=fuO zuqp~^w^$Ov!w&$c@pOnFAD|G_1PZGmBpVvMN&%Gtta#?F23zdiUJbX{so3jdb$j%H zIxsQ|Q3SO#mB5NlHwEEyOmwMMu?^@}>l?z;e zx=5i1Dsp-N!hu;*#Rn546`1%~tF$$paMD!tDOW3>mC7bcIFlQ~A3X?IwT5`BKCcAs}zMf zyAKw-?Ovf>n5To;<-7I0(-70?sbU~y}J;P99B>>N|f5?*$+L9AWX3~|&%!}EB^4T%_MKbRBA z0wIF}%pjidA-e|AleuG9oi5eN#iC-beJnI+d7DzXvp!eVxQbmY)~6$$*QhiM*M>@i+VX=^-Wgn7W<(wO1+vQiDHn*`DO!X0@9!(o>}cl978Tvfs|c}{u&PMzjxFIW z*wk#n8|_q~hV$`?$9S+kQZaA3|FT*}`TC<^2OqA!cjcXyNdF8E2pd#m`tMmmrs6uT zyLz?)D;BZV^|vUM0|)Q64;QvjXsiY@e--p#wi`-XB#5eH_?y=Ss>T%#S7=@j9^mzf zE8SqiKv<){@y|wp;*41R)1p1VQl;FDqo%FJ7;r0$>w>QeuD#J?5Uekaq&dji$;`(D zZpa`dniIyttx&a1#Z>(YqRziy{dWh;NM)n{M0WzZ2=vH!`_X!?M9}fUbCLXDoEAt( zD3u(S85k!nk;Iq;B<4dLQ*x!mj2!{w_-PvQ=uX9zFS z1@$sWSvau(brF*U)l-ev&EzjsUbyz1Y-c0gk9hn}7D51}fJLjMyyDVW5#l4Z|Bf9c z*LFpgU{w<<{LIbo7@@Sauw$;|0$@E|Ef{(X+Bj5e3J7lQR|=TmiB>``h_Q6836UI; zQ`ypJfABLV{(Gu1Dy(?5<}~`FSqH)8%e`PQm(BTb!$gd{0_k2n2jFu zF}WAl(AiP$>b3F#0nSZ+l~lUSP!v`%A+1<{?bbb2cPnq2IJZ21f+tn|9Grf!>x3ryGSt*;;V!AA)>nz<&-12 z`^KH#gn>JM;o5@@MxsH!gXZ)N&u0-5t6kucP^#N7SN)`>B&cQbc_!ip0|fzUOeo!) zSS2@F6g3%P769uc!Xbo7w7oRU1g!%D@@r_*UjJ{4rI?uw#X3(REOAVI8dxk;x+V;U zl&z=LVZJCesMSojSq3nfz`Zymlur&yMdK4|>rzX!FBBxSpBY(ZXW}FS#Z_jHuD#c^ zIBjM;=!asB|HwDu8yIA@PS2k2sW^#!bI*{5)WXRt-RRtWdVqUR?O=w%GQ~3&j_WFC z;xLC;>$-PGs>EXbpGq9*8YjZ? zK#`BXN`bh8R!51JB+nD^5G2ZF>2TQJOh3y2Q{~W-vmCmk`(ssvtBcjlV(2{oWTA*` zYKWkmCi)XPNxdVL_e;4zHT>+zZ$%oBib^>7)zm6$4gmXFH60v&{0+Jw>)>Sc2UCAyW+_wX%adY6P=t|f(41kB=% z@h`~c^~-r0HLb~DOG$}IE%MelXvR`suA*BUKWiro0JqVI2=gqWUvwVsGccVNhp~mO z=#2d=g|IPbG#`1BpMXUmI7}xsQu*N0JTOTxf_zIhIvTOgr9_G!BBe1VD|-YJ1tjdu zX$w|`Myr-ut0G%{DeC>(0dwKPQf(N8UU?t!6<~4 z^$INWk*Q)EnF=7|%odYJ28viLy;VHC|FU#z|dP~tpci(pAgXR zD1JLG6fiYpLy32qIk1(H&$nxdZ7w7Ewbi)05yMa-jr&QvV(9Z@sD)^6CC6+rDqklO%X#x6SvQ4UNX&rs)&GMbWAhpvcbKs^0~YytxtLy?Cp8itnMf7`N&SV@4DDXvFI zejEl^G&agu@Zu-Lgdf3{5X8EPs?erC9xNez05zgDRTF!z3`PY_;e}>mBP@UxV6WJS zDBC9EAXn&C{wN%9)i68g-s&`O<_4AN&okbB#P~no5=2kwC!lr5Vht*oI^fOB%{pI( zUF`x)N{{XI-69C$Y{KfJz%+cLlpo^@UUMRIT}CqqPD%R6b7c56$_4U^4~{TmC_HRs zf#{*h_$NZ+hkZopBAEfO6CEg`eIsGygM;)SSpER!RJ219H8|j(zI5BX&+gqS4Ly3fiM~vMjf0l&bptWav zQTYfcV=p#U!~*6iLSp1WpDDrLiXcwXmmTNoa1AhpKIoeN+=IB!jf1SoPFVU0L4=+? z;a|3vk#$RYfRd`?jayKYC?zIvFR#UFF@io#?F50nmNL8MZ3rI(ca^NcsbZNmf=CyK zFZe4hbWtSb1|DRaj!y%AbuHz>JIyA&$P+8_V(04xh0!kaMa-z;>9qh&p z^5u|q>~h0RA&Ad=Wuzf{r0JZ4 z4P@uUx?5Oz>viDgE<9OV&4rza+~kV-dN2u75IPR}Ilw~_%1U*J{t$vK0a(1w=q^IS_-=L(0>pLW zU$)teKLq~$kbLc>I9ABPZBo(mpfw7xaHST_OyF4~0tpB2`fw3mn@tcZcFtLgQ25{)ex*iP81z>)&@~V3@N0bV zhsQGJj$K-4=GV61?|>*BU;w>Q3fS78K)~T-Y*N#voTU)CzPPI&c9`d?J8C$9kj~R? zJG)o{Zba6Mh~#z|X^>wIHu~sv=j@lK_o>h5VK#;5TqUn4?UMZmpUI(3i!Lx_=(gyf z3#4)Su9EG^6C{5YAT6Cl1B}Zy+2KQVbo<}zobe9j>lZ#M*mE!aGzd2i0B`Eu`eFG~ z!FuS?MC);}qzbxpkENhXQRGrED z7elPidGeFtX;3Um$YG__8SU2Pybt2*9 zy0NwINqKCg>8J8h+O&P3ao4ARi&d~e6#8`~gBw}T{c*vNsfM=U;t=9p?!pz@)$4{v zyD~UMkm!72iJ@x97L4w2b!B^zZUq{ z0E$tIwTK8PL|mgwWPDDP3S37#7kg^C=VVG_plq>vcmrqFqfs+WjCX{43sH{+4Lfw+ zl8O@d9;!)m0;ZINI*47@*J&JI3cv{{^YBHIs1BV?J)H%t0_gfX8jG|9Ei$841;ZLd zk*{K~N%=f77FncS{9wF#7K-<&j;_00Ay9=)N6KtC$f9MHa9^fV;G|TAVCl|5G|fa> z6jc8V_7e?65{DYMfT`(3-a{wQ;_`iI1|kQFKY!MqL$DW|bySoMwm6Ks!puY7vLGmn z$~fv!<~|5P$h$SlR-N)GWo0cPd1?h-NtRIMCwV60+q4i;{GulXYSpl2gEzoP%gnxl z;^~{cP=g39UTRvroT#R4=kKmqJ(%4zxGTgn;?LNEUxYlNDmXBWClr>!<{)IZvywO1N4lH$i6QL%sZfYuoT33Bn`Angx3_( zD`oOiY_;X4i;6i++N&MsEZ(zPAqgId{nw_ymQ3BvPd7Byo^Cdw_8F0Qk+^ zue+CVqr%8Q0lB|7VZJRB%-kB=o5p@|+pW*f*Wyro1$g}`&q7Fvd4`QmbTHy@K8QK_ zb@3k?h=g6jYW?XBQUUtv>BKLEu3AfCwsT-bAh@z9U017a;f6LllGGtkfvFb?(E$K%dTYj)M)f|&g|If z(0SPiHKM@TkYYmf0i}~37e<$=v0(Tto+sP`~VQpdJl5y#&D>Ki9x*<4a31X zTyss1;8bcl_1@t?v|lQ?i>BYNpc}CnUh;Q8>_brpVvoPb< z4ksgwIYw{&0RIu6pRF~&D1|0gMeB$7OQ)FdtHXp=U`J4^$^%0-v=N$rEVhd%jeSgC z!9kPA6L!|#__gUu4b!8Knchlf-De|#iFQzRwwPVIdY9Cwo7KV8nLo7;gPdXH(3Bk* zn~*3t7WL4GgS}<8%=q&GXiV&N_=O6wpcPJXlVd}?peygOf)tAG zZ4`<-W~3?F-OEW13_B|q56ym9CNv}xD*Tey(~c4?;pO)=x^ufD+o(r!b1s$i4bjV{?i@RNPL{;w?d{pn6vnf8I z0B*CkTo`FhS!58>M7VRy&BI7lzd03*!?xDv$wM+PrFz(8&V&;if^~W&%obQ=aJh|- zTY#Oy#?1Ysu`eQgl#O+C@uG(BXRe(lI3cvvVPDS>Z zfD=;B;`LluVy2L@wQVUvK%!_R^^)Vj`GxJ|gp?mV9_6A8qUU_b2^I>rRwpI35@Q-9 zSccNWKqLT)I-V0Ry#IMaiIO~08fa54jBayeJ9X@~EXa!Awc%mV7>hrF_~oW0e44s{ zm!j5){f+hro=62uS&x)F@!iK&(?&BUgskmP8=ydCy@<^0;IsmS>YRe4jZ-r1DI|ej z!N8n1^2)s{pX6~>YBeN}1MKw#TbNMh*c;TunlE29&12@@E1cSD_L}l87%<3yvO2<7 z`X*dibY4=)Bwgo>FCz9V76WfX-hV6o?w9YA!g4#8H)=BMey0|dC1Ee?NG5hBW=_9N z3AeNEQ}7n829Eh?{1~G-de?b@_!gpDuVm<9AVzt5rP&9FFfNb$8t(^oyBK44a!amI zOim@@1+JM9qEu|KC?&F^R%5C;3_ZxFDf4x0U*U^v&v~}BvP)rrd9x4Y&Ickk7`-gg zpDNMx*5iVTsL>u%PsLxD96F?$OSy<~mvA^xQad1w-BRUk3F_osy2PPSZi#^bi|!)N za_~{O2}_R-XAc$QDXi^oCUtQFVM6N1O7{_fk)d?DSvCbGS@vWdc_#r^4H)VXbp>0iQK4OQ zsQMl|eHxTO#*&&j@r&v79>t3pJ<1=Rc)uib1e40KHn3&Ug5^KLk79t z-XJxFe=H1jqKF|k<0|N#sj^lIOrrbclVTJo@+vOsVa3Y4TRh$ED%B& z;v5-TS`Wz0SxIv~fI5HMK=i@T?SPuGqn;{ESno|MRO%)^v)2OcpEw&>)-m9EL#CRo zZL?zSOBC3ATZRORZRzfLeDn$dZZbROn<~VsG`@4Jm}egIwz!q$ul*{IzwhC>C`e!V z1D+lx$LVw;#cmMCJagcl2MQ7l02`_bhV~a>yXVg_n|GR563ZZP){ltK_q%G8^d_E+ zi{kH;d$k~0tOn4cWdtOcj*HuJ(Q9H(cY(P`XxOm@2`hsK6&Z5B^O5#o4*zHyEoX;0 zCBotDj&ShAl!moCIqz<#{cfkiGSNs1-Cj+oQQ;<^l8@^~B35&iO=fb9%JkwqhHV3V z&t@4y@5Bd$p}SrwoitydGW)s>uyOMqQ#j!*RhZ?MUG=aZm5>T7l5CipI4qDwHJ4|4|J<3pw)tW=4aHodv-s70M5TdklMC%Xoqg69;hcE}HQ84}`?@J< zGf_eWuxW?$Qk(llWUm#mHzrExar|CmT1#;9xIAj zj~5;>%mQGNBI14-mLThr!#c(i6SNDtAWU*w4c%PNUK?tNT$fzhdrBCe{h0 zI1rJ~W^T}R3Pfms?1$(ny5cFCi3N4;?5JK44OC1HIP#w*fB`ieL;92eCgt4OsKOCf ziDK8xQv3u3r>tGE^01nbZs0^1_1$>P)-YK%`GD7&rtnTF3OR;q0PXF*39tPb+IAr# znYuvnrIJw1MHnXC5;}mX!wAm9x~0AFcWx3hQ}76J(FW{ky%i43r2j>nVtN@b0`5 zQZ5DZMeeR59T-SNE^jteUGpYfEKD2&$LuF?7IAEVgOxo1N<&ke+y&PW7dL9ErnG;6kp~VP7BRI7%4HXMvGM9L z$zG1*TgeGT&}9e=h`R0HFr`<@&x$+tq-CzYyD_IAJE30*9Vx0e`zBmU|M0B2_ey1c8jD4`plkW^rSS!Gki zNl~#ci>oTuN)Ol)l|Tw@uGYN$gK?iRVP||8wG^#HR693Z`9n-KdHL~x7;$2Ry9OAg zZl8OR9EtDx$+U6ZCvUhwaD6EgxB83ur^-PWvekT?ie$7QT&XZw{*QlfOItXh47v0D z_~q`bj!AtICg=9+GEv-^SkN=D`V({(r^L?+)FY5>Ex)c%BU0y;MgbMlep3q&RcmXQ zksIF()E-;*PWv-9;t%RJQL7p_J3?upPK6_uFqVKm zyU!;DI(4Fo!CE4vZaAsfN@ikO1q^_D`tFYwSdFOgiO?toEA5$tJDLa__st+Tad!zl zN-|%0jNgaLykZa9um2ALnNct7MMv<%Nm*2`GDD=LC_QN-N!ta<)=em$1_>n4x4UnMG_YTOP3ld$vLK_7vfMZDay+{V;lhxO;2}E-fGL9v9Ff;`R45U2-rT{06USX? zankV&)yAeBDzp{ZCP0=%%HEYhJ%c2HPGzTfmHH8L4we6FPTL@#c#wQT&Rowy4PlWm zjM@hNIf^E!h#o%GD>XOoleHGqpMzp`gNc)y^2})#rFa|Y-=R5lNaVyRVDAMLpXF^Y zKhR(?tjM9l4Ir@kdDK*FvT^Y9thMi%Re3+%R#C{T*jH}7EFaPJ0B zR-5KuCJSVNWmP6e@fv5#?T}-jz#1jANKAGZQfFDFUTXjvV?k6`Kz`#1Y*THfNBW)G zwy(dCIGN@*^D5j=x_y5R@n>5{`9XuaQ!o5`v|~d?0470%WuxlO686yf1In-gqQ%7>7xiG06Lb9v7e6q ztoEdj0g~X2D>$AU$r9NT_pAtvH`a{g6uF{Pl1*0gef7_4c{ViM!JnSHgjB4UpuXY*)DLIa(zHnz#d#q}(<-ow z7r`db0{$R5N-JkbHJa#Qv)ROlyM&Rq7AuH|l3giFE+z>MXMwqbWHCP2PH$I|qRb>j zSwd?+PD+_B#_X6gx~@Q#fsuhh!VRm?qIeFGo}Z}tp@>o`PN_i&xdObJw9tG!ShjT}1IipdxxR@q- zkYY&#`{}X;12%6JriKw)Wz+FordY4;wZJLYeHS)nW}Sr+-k z?hvqo9scQwSp^@(ZN9L$T5oY7gYeRu4dcF}uC{q1gyh+))4OHhBySP3DVS@DR3AY2 zu2Y<2rgHdd4Pq~A3Y$-A%PG*O47`6pTi(vL&?G45(_h&5&2$--QYFL&D%WJLyHP&G zlrMxgBRXL&3;Rw``S4y@9u!(|IztKLPt&c-Fy;Hoqq$w1*r$0GI?8mJQ3yQs=RL>? zBvVwa_FxltuQE|w4c--`_bBnXJ%KmAS*Judp#w?aoxu-QvG(yA>C5wlN&oE=v;1y- zNtAF@dAk3qWtDpwX~}pHu_2pMk)2mwL)?@6cFsa7_D-&@Fj=uv@lO8nZ z^3cjW&}qS)FgWK|Iitw&6dEq##xwwqhNf9&S(zK zYkPi)LWjb+%PN>OR!=MmY@2v?jDneESeegSuSJeAltf#CPFz-g>ASL6Kh~X7D_f)R z>_$f`UQUcaPAy@$*GXfOd2!43$_;=*BPZA}{E$p-EF8qc2WQ&ALWVm(CIi66M%4yp z?tW@akTr>b0}DzwpGar91ytvNIE&pH-42x;?KBWT*JK5L8rLkg6DVpFE%4Tz6y2`; zGWwhW4H>BOsI0h|%{Fz5U6W--*A{PB>|L|RH0|Dm5h3C%2XJlGysvYPtGE3>Jbf8D znfiU#Y^k7v$G}P$^ysxg9BJoZ9Pc2=Uo8J8AaHNns&1JvXZ`w^2-}6uMm3D&rlPnRzXaeiB@41&^uGBOu&<1QdTL9gP;CKu z$dVT{_70_meUs4Rkpmer8%Gl9q(!3%-n_fdPSI%}$%xWg-xA(uQ_Zm*-}j1PEE zI4-=%5;vCBeq{ywN>Rv-qdUjMxHgzE@ds627@5J%eHwvH0Ucs>*=R>71B^?J1DcGNVtLth2o{A{GD@#}BbIV+Jx^SQVHKYFRxjMu5mS$WI`FvtJGP4GZ8Q-bKZe|3^ZRF z_C#S`IhLk$!08~8E81zG;HKeo+MuTS7%GUkSF}J6B2pNx2AK%b`AQu1M;icnK!(3q z81QV6ARzBkpm^Kw>MhQLrmB4|+f)BtyVO?#kG=R&((5{SQA|TOS17@te6T7DBEcz- z{kyDMGA0Y$j9KzrAcG8lhy%6YU<*b7)jrD0X|cVefH;yjwLb-z%ro+ z*6K2Kve`wNk>gTBcKZv)#lM)xc3(#uQ4UV;E6Uh8DQvWsq9Kh7Ou?7ZJH|hl3624Z zwvdShUsZ|VUHIF292Y{-6_xY$qS=NM(Jt+fRU>dROIv?Y&*{Nt7fZ=87opg4LagBF z(|pJkl8sc>ZFQMTt%Sj)OcS+kBLH$5&?F@>MK98lMC#L*I^4Znj$;%DYxh)cH7M~d z&H7lC$*`nJ@bmzufq!~jYv?`IM|1oHw=CbHe;HjyL;MH9X+*AF{0La9pVN$5u51gZ zby^<@Mb@2UFDhu{Jbpa0SQW)cw)O0C10U z)otLR2lV+IGgTD&W?INY0wS;w?`pwwIbubNppWVyE#)A~DMB4^b^$xx4$<)T$HEtS zajT2d7Nvf$k5me#lrD2p_o$S9on69Yi=a|$8Tt(iRBJa2C&|n(AIuK{0o;8-G8!g# zjTDRh7~Wuu*YWlmAdVxu2?MLIGCm9KTL0l7g(`LPM7WgTK_b?V-Q|&ot2}X$g)Smo zv`#}!l^LCz&_G5&C=?n&ZR9~-VAJ(y1QMtW_Uv5+&%*NSiu4#v1S)|rK}qQ&e#G%S z{E{z&O_XhzzO7ct5c(M7;sj%0<*)Y88j{iG3u&H!Te1mRlyX!T^k( z>#e7}2EeD;iXAVjl1gBNYX4p3Dqj%CfsdN6J0q+dv$nT+b-ooUDf3yCR1fs%Z9b;E;Qcc5=xh@e4D99LHE(d4Y@+KbsV@+M$e zZpit)DlPfef%IV$NR}Ye$I!ah`rY!f9e5yqsmZ~_}To# zt5)VyulI=Fb{CLhP7V*?;IOXzGY@Qf86xl9_I=C0P}3(RuT+BygwLH9WNMu9(P8s5 z`3Da}L+^@pm5^4Hx4a}6dx>$UBPxvXD7nREcZQz!2ld~{^19(`!QHfmzISwkdk!v0 zU^sqKusy2Z14P2k3J<;2SdZ8?6A!)JYKw`URt<8Yhs9`;T zeU~PG(=> zLG=bYly}cb`%IlXPu;f@gj1pft`R7nz5B^9FwF909wFUcwd-$=HxP>)3VHN*fo@0t zijQnvUL`g2EN1aUzm)N?9%Tr@%_2n$6%?RFJ_!^Zt+C~$Lef0pG?osIA3#-@RXOJu z%V4qV87+5ZWGM2Vxcet1$Yj3~rmnKNAmWA+N#IUI>X+sl%cu zaD&ZN)W91|t`mZk-A52n-L+ZuohyTy`S=LF;xSMYF!{6$l$xN51hAah1^#H&Iqb^R zyNhiJA!QF>)75G+)Tr&EkJ?q)^#j z!O2}o6uTI01AnXuH`5KsV_f;O%w{Q&4bYB=nCV&Q$az(eoMtgR#8$U6h;YGozsbwN z-TV+w^3y`Z=tW%VFn92IRp|vHgFXbJ4rq{0#Y$<)Z+g>!uSZlUB!CYW5{aD9Zu-Ug?BNf$y?IBx?#gH^b>9SU5`0?#LHsLafa zoOw)3Z;1P_%YsYdq&KSxOd!E5wz5;8X?NFo&B}6UG-h`L+li)rtUjEXHE>n)vr;4u z_|J-Gs>vOaAJ^t~gXVHjW1`M8HSmw%&t1H2p+cc$9D=q{CGC7~`>nQ*+5=t`+GnSzAh%f1waU>URTPgtk?MT#n{k`$bG~TQ%Z6|kTs*X@xTfj4HO#3wuk+Hx2$7sM*W)Zk&#voT zn-HXnOaE!n*yP4Bk&2KkDuTjc@sWVT1#}Z&vfJ6fp$!S=<92%^)&le=8n$+V>iHct zVgOtGM8ReJh1p#bW8oD@f-k7#&tyD#+0#6Rw3GtMO9Dbr+LsZco`3{D;I-*C0(c3D z@CPO5&k(G`XTk`OoI2)+0SHD5w2z0Te!dB9YGk3x9a}z1Lzd|m@VJNR&sInUcUEB{WGHRbUZ_ZESO!lxuydb)g8&} zJ--rfZv&G|Avm^(7m)CBK!L>s3H+k_^bc|OWr^36PGb@AgV@lG>8W1|%0ZR=2!lsX zkRXr|smUU+Y{b{wZ+*bz_2ii=_=}i&zMFdjVck^xM5dtLdEY+djyYIxaKL>M;&Pdg z0jEv%v97+CT}{YsamQhud1o9rDOjSI&{@YG_GIxz-70OCXJ=Qm+(EIa({=}M(BB%d zKXc!WQ?{I1PgA5y9tmXO=HjBPD`OoeTu#NAF z#J7ST=u35H3YMj0m4XE@dNR%IX?H(@h0}tK3cER`2@fHa(@iy_%~?VUXwp6mfa1dJ zThod*U;sd)4oX#uOI9TngJJe~a>YvUW8s(Tfw>#z@Y;Fjf;)0i4~Vpv;)biOToC(V zA9;)KF>K?4_p%(9W9&bpeb~3$Z8YKaVu|$}V|Q(^D{c4LzNBu#7LceIpM9FD{tq)U zc!P?YwB1PbE5iB)V92N$;<6&lDS3lUI;Q|l^QY!?+QPuWwFdSaLVScwVYOIw4{eIk z+|Vy|{fLh&Xg*c)$vuMI&oX0}jZbU5#b>uJpzZ_2r}+J4 z+;TVjMGwGkr9@3$I{XC8L>Yo$9Q+W>TeDH*zHk^8oyZo!{kLQed9XV%r5tPdoI@H< z0?@U4;7fbi+@L8&YGlvjD_Xi9$O%V6x`eV^1pH$5A3C+DDed zvU%oFvey1i|1am*!wTfmUx7U`2MYrvAWz%%7+wCFU?PS03`H2It^q z4vQI_DG=QRaHQligk#pCej!mg^WDm!NqHd|L_%Z#zoDVy{Q`7DUpmLjwM+e3FFo^; zTBGLNFU=$bmb(v4m7YhK$di(RXL9bUW(O7fi8C`oV=2FtKaAM1| zaL~)=zHIBLKkH?4US!MEnDxS}FP`!8no;BI7mbgCKG{n-Qj)pkj~5RDk(7+w2glJLI<|ZSOj~uKzPi6!pH#Fu5!M+4EW><^YfnzmNc8f;+xZ) z5648`_RM@m1~r`x+p}Z_VN+t;cNj|^(}$T$$k(EVx6Jvw(rXP(G$cw+;fyrHGweEQ zNI4+#%`zb)rbwDSFfrL7hYOqHwB_%GNst#@NrA+vd(qkD&s~lafJB^p#k$KT0O(q>~v8 z=0Q{r?v7)_oBRsxDT3jZ*R2(>>@h2?hdIiGxfuL#b@+{e{in?3Zj2vdEfARkJ?chg zwK0e>Cl0wO09{0Eo`+K%=?Jzmn)-}dRebgr%sq-(>$Qyz*$L5X z<*jle)N(K463{Gl7%|HbPvViuVL!_C2Ha>OIAEfZEKaW*^ka6jyrS48^x&gjNn~Mr$hp5w@N-!jb(4DmLXj&q?Iy$-&%X$6&S3u8zmw1ag}_nhgyCoM3j z(xcM1{NkA=-kIvGkH=K|XcFqeUMU)#O5=x-h&?)fRnR4@nx3_t9Eii8a?3&~t0{@- z6(YU0DP;`)?m(|@pKS0KiB&7k<%0?_1ebS^r)rma00rMsdgP>(dCccE6gBA1wNYWv z?PzrOGy@VGlSw4D@oY(X}mliRjsrjs@JVS)5Q1|6X&re zY*0Dyx2Bf(Oe9Ok;3~i~g7c=3+E-8n==CCL^|2gClXcQ}E^4r1Hg?R#-B>O?6?{WF zlLh|#g1e9>1FrSpF=e3ZMQPU*u7DSWb`vi`*qe3&B39ny7X8tW6=(OPKSg_{{^aD8 zg!lh_LIS1OXB4>CqZPq&$M2baM)$;ZHp*IJo?H}n#tq}? zkWU;>TxYAUHW(&6i*xw|$j;Ibut5vV)4(d1WzFfHB(kko9Pb?mQ>fOt%|K-<3;m5a_hb8(COp&c*6v5A<(@_ zAB5rNK`cH?K^zKMImr$TU1BHb_KJ)HJie0e3U&F@ULcSvAFI}7!%Z;ptX>RO(yy$( zqr=2zsp+WjGG8damNNU}GEonxV8=oce%M&a`mqOS4c)&Yz_=XCSg=5N`2ujkUHUgl z@jmV@fiL||dtH;Ap)Q`QbJ~M>ZDF-_w>a3>zbP!0lmpQuh$*OLadF1{#fH@TBpz#3 zL-z!#SYDo76)=R{C<7`2o$;b*9&MC})+~3@%>3KD~oV3r%2AxNh#mwzlwZ zY%5qBxTNM038%+PQ>695h8>~o5mf&tM3w?(vaNWZLbntLifpPS8DDwQNFAOc0f0awEs^(5-Y*AT|VRr+xgG73S z@t69>^4;Mpx3n-6PzR50%{DN5k-Ww-mu2-z%vkVtc;Exe1sK-R-oV0k)oLBG#$=s= zHNaKCNDb+ClvEo#twL;cyeyby@kZ1^VN}Y})GuOBg02NnyV_QjtnA~BgoflUS%*?B z*sj8WVD}G9zcfTLT)%pvY#K%tLOdU28>0{aJ_&HtgRqx5SJvtw#v#^Lb{Mp<+F&kF z@RWgZ*7dZK(mp;C8R}u2(3Az)fuqwGAR4S4R&OZBFxO5Cj)F5m5cK3Gzy|7QyvL^; zG$wA=j!}?o&?%6Zo;d?LVvS1S%SXExy z*kOe?@T1@(E)yP*IQc9+%IS>bA_c#iTE9#$ad>jlpKY>qNcO^C z$$jPV-Ho;@3dMCkV~K+YqlC^fR%mIg>26AH2~yc3WLbHW&h=oUD=H<;P6DKdk4Q(L zFAvOmaNdhUvRWw>=*qU|9h;ZEZJ-5{>zNo-|Lezgm;jS(6A`0>nQ@Oc!`b&;o40y?=hQO!46cc7$C zFpa3qX3p>S-iaO#=);YYzg2Bv2Ip+6WPg>G(ScSAOn0^UYzj6OzXOA*f|6k)!UZr0*~<<3uLMO|*-=h?pN2c6r|#L8XeuH{3U$KB_Qh^Vmqumr zYW%fay>fZO5Q%B!0AzLtvy0ljSRWM1_kh-4bwp3_&|881NM1zIdXgy2VWALs8ecku zcu^9S9#Rb0h=sNw@or(jQ*F^>t8t_O@ceyXFeg0t-u{jUW5ca2H_HUe^N-R^6FSu8 zlxAdTGuc{7)^THhE+}|jVFCp*qU)KWJlzI_OyMK z*eVpb5!=xIDW<5sf4rDue6JV0?zp~2(n#k>mn_oCay9;2>evGV<4e&NjJ4}JyTP=? z^1`9*64U#W1d{FWDgh4Sw{~wEQM#znAa}rj9U=L$9Bcc+nQ%`0Rb%HmI_)-u0-9^p z5jvylF(RH*K?%kqu?q?p@E?i;Q=I%TE|+3cV;UW;x|wMk`|EOw*~_JXn=&Z=f1nej zMPLWPF$Wn{W>x*VDO3w;0OPvdNsR(A+Zz>G{EQoUOpw;ovp0 z);MI))91BZ&?5$3;J8woZU}GRYNBDUo26SMG_jh_Q*QpgdX}ds138j$3#9o6Ff!g& z6m{gvMd?L0{+Gs1FTadj!q z3x9>Ke*jby_%z-!uvbNwip5O^_RBCy6ekm?XH!5sz)emNrzvC5^QI(L*I7KtL}61_ z0hK_nk(c5+ghodcC-qEn_hj8eDGV7#%_U25L!gocoPuQwo;w_Ajb+e{^OJpm^lD-= z06B~ZkZY}LLuFvw$q=RHL4roe;`}5~d<0o*Vvz1*n=1K9ig(a?VlyE=1*mnjf|gzH zTUkgtu51}AFiLDE%)6*vVNBF{bThhf_t#d>Yv;(WzSh5`rhb=;P}14?&vX! zM_2l^3uGaWC1C zGVc^G6sY>c_a^J^%nkY9dtiq$>QIRGFdt9NJPBTOC)gGsUq0Z~ln~X(jLbJG^W8EY zpm1?o}LNKB;8J8Oc{&)$<-ag-+{lx>fb9tE#Xr+?5NHZN^i``45)Eu@Ng zztaP3=7@NS4yXNglk5=vrj-M45_tfNi7gl+bq9*5n^)}y-e7jAj;YImu)3TeUf$mk z>ypg#ie86KJ|@TIkxz;aMCfv&AOl^d<5F;&_@Go5(?LniHG_Fp%$0+-Vu3I12&`4Y z<7trce{C(&{jDexti#h14)8Qs&@(_&cRcwrv~6}FRh&~K@gxqk`1#jg@V571r?kVN zNglQ`&L!*hzm|hd8m6DF7R?54IDxKjxybV)8NMeLOXTddL0&B*)eyu$ z0_u~cR9GO+I&KbyTC~gZoRAWOVn$DOR+9IzgH>%nbs9@`!44V9(luI91shEI=-7Uv zOo4Mzmj7Qn&I2GBfeyN*=(iv00Dg8m=xxPlxb`cI5;hSL5hA5bNv3KA6$Ky#mWnJm z0?A)m0B}i%6F>uiQNs%z;K3LZB-Hc(El`690>JJdANgg^!h!$1QA3?VFUmP z2>?+z6Qw5w9%)?BAOr>M@Tz!3M+yMDgH!;QvSSrOAr-y0z|ceAVRp zbf0oJCWjFv=-PUMY)K|7gaHK-p-|{MObn2+C0SJ{6siv<#9wahLy`1FZPTv9Jh>oO zva=c0KZtL_@*hGI7)nBDfEZ$0F9(Rh0}>HJ2;l)bZp~t;^@v-$ zOP#E%bx2H1X3TsH%K*f1V@U@L$iaXWkO9;I0XQ(hgA+b>h7}IJ28bwGev+a>G;Rno zzy_fZJpgDcWfBTeuMKE`16W|81r@-c<*Jqin--XmNU}jF^tAe|)lfh)1?c}A~I5xHmH8d&p{ zV-{HO%m;)*|CCZny&?#JHUHuYkRzc?U~HfyNs>^A{ugDEghF4!xR=>8H-^Thv1*8j za^EVq$~C%1Np8tMs<0f(_J|h13PofAQw9$x;{;23$~e;CeLV9ss3fa{G6;nzhzfDh z=oNkJW$&`Vj_sKn>mW4l0+rH`UeU80hoom#6- zhz|l_1k8x(fJXvO29zKke=?rndD2P1(HP@F33dl{IYbptyfEX63AhTD2;;0!=v~K9-5sv^^p@>UjHlS_fG1KvL0j!eCkKHfw9Tb^zRvpK8-C7*t zRk}6Ld>0Bk_KMyWV#i?3TOD>BnjNI%t`5mrj+vOum_dUk&8^*!t9g+BaGDWw#oKsc1j9HwJn*?>}7fibrDN|Hcikda>i$9EBV zfnh`8#-R=Of#l0LGL=zet&u5TdEW)Vc2~@d71zhUBZ=fFqR2rqimXi?nE@6okMu{* z@}%teBWF|at9?oNNZIlBvf4vO4#{j>ksI6zg(|f-92)I!PTN-0hBsA3k~uObqsV^2 zz)Id^&+>|;0%-uf;1+Pf7gy>9FxABxJ{L$R^rT1R6?s)sP0J!gwj(`4EN?A4zDwQ$ z^R2ndBXX8w&-9g>@A{aTp@@Hk`(v@}_=5rL4oY!Mx-&}T^2;eyIQyJl5#yD1cXtRV z?e6vy1zAua1q#a0f{GSPS}+l#uxGVTnC7gJ%i6GjtvD?H|2^DczK~$VNg`OO$bo_2 zg52l;f>Xyhfmkrl!lEWp4(kNTfpw~Aqar~LCdO1nx$)OzVQv`i@?hZf&NsX>H#Rcj zgt4+P7FMwULZlxRV7!VYlthZb*d(sUeKMf`KOCspS$TByk-n3udt zQ3(Vh_g~2&l@vlRNnac&f}xTZxwOfRIT6R{_Nr+#^}6Ab%PH^y=w+EmQtRD{MNtHJ|q1SY|W*~dmr1L_*?Q`J?MP6P2 z%1>6Ah8KrFRY}C*DPCRx$}zkK_ErygSi()d`0M`G8Jg70kzQy-vA_2NIns*^Zc&>` z2G2K$)B0Y!&}y(!r}!!get6+1m9K`eW{_NG?e5NXkGs2jmwSw@l^o(;$(_Hq1TGpI z^5Q^S1&ywxkzD^-Wvsbj3IcJ~K|zMRYU4WVAf4Qp1F_(^h!4KYUJR!CS^g@ni%9WG z<*t@Ajqv{O{20eK74DwLAUF)Pl2zL2L!we^ ztrdz9)VkGLYkf@KTB{b@U2Cni){2931N5~%m0D}9T=&#kD_5!1ueDmvTHAGZdzoex zxF!l3DtCcLcD{QYhti>s7Uc-c-W|l{C}DE>8Ts;$8(;5qYLr02qlyen=z7H(eR!U# zitObFATC`YE`2fzmqkz<7m6Y{jvvOJ%1QU&@U4;Mas=0qF~WJ&2D58u*N5||QdBY> zofuQj0wdC!p4?&7h>^>2Okp^3@Ck+9MhDqJ6;mnAa$NfGsFZdUpsD$OEwz|puUaq; z81SUL4$2{7A#C6vL60YjO+SO&G$>HyfN};B9U#|@K1yKHt?h%M25Kf2cTnCgdDA_Q zZT0+AW$%VF0UU0-w&p;RJIoq3a@jQc>Zpk@LNn50`2w~tRLJ~gqeuPRrW1j?kt1!$Is z&@LwhXxE1wJ9!s~9e>cSc6lJ#k(B(%HbHjtT~40mn5$8mc0M}!@l03Y&a$HHkgLIwYLo-+8|A-kuB$4z^TVz%4EdC;jzA%i_Qy8Zw z4^=-(cXyR_i~jZ6?QY%OGWzFp;chyx%Iv*5J}(FOft*Z+gcvq%Bv7FUBHg6iNvMlN z2qJMgblhw^ti83z25yu)%Z+&;{S43Ldw><`XLv643!*AC2tK@YuG$ru74+O(AtO!Gtjg7bhC0YTL$pg_ojvYTNi0-*7sQI3E%!@d& zlgktp3ehJ&-}Ad!+>R@07(qSh`JPq91H4jntJO3hwq(cmif*y8<6EX%6#E~&5$d;e zw@iD`soIy6FS}K=i&O2`P_Lp-ZkduF`=ggV5=^A+ODfHW4`llfvqr!+6Xye8@6;ZM z(BP%iw+AyDOy- z1<6;PD~W;{H6#jfn5`0rw!@d~TV&6VhdjS3g(ykB>P$lh!72WuRAs{5-8ZM)_}a#` z@s~`9?v;t|4wcg+`?kdA?cKIpbpg7@*E{7kvty8kL*Y<3bblxu3WvBG4t3#BIP`%P z1m7v>g+t*GDjc#At0=xxQOqgktkuq1?L>hnF&qkqbc91UH{i{VaEORUI0S<|*drV= zvyU)Xc5{i@dCtyr_GZ56o8IZ2zKI(BSD7q33^k9Yc`XpI|uFoHuAB9D>Nlj%hct4?%GZON(WJkRqy zVK5jB2K%O&%Vx9LZ01Qmb1;57IXO8wo#%O;Fc=I5+h()bY&I+7r3w{F{s>F>nkEJ2 zgd^mHC44FzAyu7#fI)zmrcTw-d8ay+2(bz(W*DiWh7C^-Cmlm;bg2n;p67YOU@#aA z_DxPrO;2umk;6Qe9eX{`^E@pK27|%A>6^ako4)Crlqj--Mi30@=#U`BB&h<0sCMek z&O6<)!HS|RLLOu^CZjSLO_I%IE1c(fo+s>C4uip9Fgk|T=u*>}^E}V9!eB5M490~O zCR9715FtA|LxvCmix64W)#{zDtn^?d2H*}W^b<9!(@9~g6~^NziZn)LG>L-w^E}V< z90J-PWe7+~BH;)`ii9H+S%o94SUi=7=biFQ8N-GxAMA$%63=mr(+aB<#^Wf89Ct=^ z8v6;Gxk%>KX}h*M)#~)ssR+0#5|;2tFx0#PS*x&wH^K@_cvGNu!YYX_Dn~oC3=wH>U7Tj*|{|Ho?u8 z=a?(vULD>@qA5VH4i|AR&$B?z;~DyVZD7M2;Bb=Ms`VY?$2qNX!r@m9pkJJ--Fh9P zh9Nd>ikWFrGKWU&lHGBK{j@u13wO!7X&~PxF?g;j89r~>z=m&ftJe2lvxdpTK=W&( zF?imx;SNvu;I*mxS(S&cyXClSTx%_9w`zT7;@CYmrcYp?x!0`8?byi}Jb#c|HRbz0 zT#DaE_Uoe_B#39F5UpO@m!kq*v+T!po_*RZ+j*oHia*bGAivFzKQGJ?0Ej<)0(gRl z0bs?GK9gy9(eQHYkwhLANum$;vpW1F0Im>U=%?JTZVm4J$bNYsf0Df64+J+`XJ`_F z9_b|{5<|#qvlaz+MendJ7-0XcUOZTMp9r3-Kher=c} z!2{q+9B-r(Um`*{#3NS~2;Jkj*7LGt)5ye;D;GouRH6tais&f)QTy`c%a<-kP0+fS zfYzlABO{|QY#@OZG%j&~fOfKbX zXBPvhG%YhAEwfyH|6e!9X@MH?(?EUUMGo2*XxQYYWjVsk^Uwtu&x%*W z9AkqTaC8{~7eZ5b$YRM!$p<64D8XmNI~i4%1`()nqX{Tp#5fU03|gqnywIWpQEbVJ z6BP>+q@kTcFacY`gfd--A>#@k#&E%dm4(|j#g&c*MwRaDG`WG5R?vxy%lEn7U-=Hd&|p? zKOrFYR+k;`pvjHB#bIx4*jpES%VKX;?5)Qi4~V@*S4D{MtWeZ?ZPZ%HFXGDo|CJ^C z&F*PyAJk0WrsN0Ykq@kq+ly||vqGWjL1dxi2KmD#o++hHi%f3Gh^CI}fSLwG zEpz1dM_Ks9{E3RbimyC;1$35u+9wGQg1i3TeAg|yMSqKKQFe^Q#A4x`AX5P-^j0R`leSD-`Tr*G>djpCR1oYx4=LH5BVi5BSbWN5)%#ULjvkYVY$EqzHE^RW! zVKcc+)aPS;#4$%ctSOfnsB}$u1~pVO0{{R(0P_|A03Zws2ZUl_5~ZOmeiQ%>QGzs5 zQaUmahN7`J5C>uyMu8Z_Kn%k`jH8rcjH#lkK>+fa%G<^`184ZG@6-3$Wuv!koPpCw zuSn2#nmjY9ABW33P$6zi((n=j3l>BW5}=9Wj`9F7jidA=|Cg3cS8jnKP6#im+UAu~ z9YWry#4qv2-HQoyZc3hCF3x?CkYXxjh#>l5z_1TjwAaLS3vaB3c3ax7G9{zL^xHhO zL!PCJZ2D@Y%0$+@nXn%o+xm6O98%J#%s8*XoE)0bNp&Lc&at2ZKKaNVD-Xz)c6Y`B zQ<0BWOzTC}QHyADL%FR^zt1Wegcm*ks$vbTo-Hwn)cY?ALl3xreUP=PBcrCyI^@Kd z{Mue))}V*Ir9S^yZ<+F5QK(J{mMiqMlK;}%%3YTHP5l|E29+8~7&?89_D26B_&4gH zjDPdOp14+M_wHIv+aD}_eX9w}uB}Y*NLt!(nkC)N>!o^t#Xu4e7qb)9U zf3YX+-{IPZ`d!t8emn&=AUHs;6ko0%Bzu2?UPbgSov8;A!~PyX8o5FaXMW?ce7(XAYkvkGWx)sx5X}k=URH^uYdZOeZBd*V96-~ zyhm7N8o(ELv~pRKEzn! znn)Ns#}~OiY7ttc3L#SI9X{RAVWlWgoDia~K zb@Blx2=NRMH@DK$z_q%lJ+{Jn$+EYyJW&_u+MG%%ihVU%t66eQ6(>lqkOY#}g5t)~ z=<=OBpn%_w(%l?xVTrbh(_jr%G9a-0rV}FOYi7(7emsS-12EU-S;6Ahtld$L>qzxF zA9et!_PXdy;k8!dM1i(fTLy+roE&PH&O#CX#PW`HANVf=2$G?eNn8KT9=CwuDLS~9 zt|P-wBw)OpkbcqI2;b3RoLa5rebR)tMMPz5@4i67<2t3z-kX;e}^X z1%HPf9;-?7rtcVo-}e8nG$n;8N2*eogRT%`KSx)cH*Cb-RkdPXW!$5E z-Y64>^&BOG{5v9|B2v^S5^>%1KWLjcGut3cI*T4B7N|1M5Ntq^UgC8O(+?+c)*5I; z2!Zxc*-LH}UWRjRvWHf_rMS!9g3szT?t~D#aQ>{ybP1z8U&|TWMb?Z(%poI^_Jnx5 z9@FaV`laOy*`7XhIGUb~i#R#Yh$DRL9jzw~A5LY3MiP~*%DGY=fsSGPMv-nczpG&) zsud8kR`)4at{+9_eHFP>RF;rpWwh;8&2zxfcA~){BLRrCv-B3vX5mEIc6cyh>_%Q( zmH{_lI1Cs0tO@$w&PG&<3xQ&gh$k&P2{WYTAvKdkJZa%cm?1R}shK3=NefTH43h$g zCvz6%E;wQi9V)EmO_|2*Y$X9C4R8X$34l%lC5&o+)=3O8T}R?nb{C+^7m?F6OLM z@PzEB%nXPErg#%lip6kZ0%fOW1o4QU5Qb(U)?pYsiA*5kM2={cZS;Hn&t2O4eo)%mEGF#!~UD85`LSXJBOb%TkBpBXMwB zw487*HMPML75>{h2+QE_#tZ_d=ycB#+MtHyLnfVWAWi<*Zqr1TbfYH?jDTJCH;?Nq zXB66sw9Hfosslk8_O<1YRN}GLfZ$*Xxj`LB7F8xnmBR`Z$PoZ zaB@7gj{KTuk-^pN+0h_f_O7g?wb&PxM7tF(GxR@7VUSt;c z=z%6><5$gGvEu#lh~6Nw{Ts_6r3s(VA%)@IP3n9I_za&c z-ONloD(&;vgypQ5Y`zq)5*VFJi)cMBX-KdDxN$Cb$UJzCi~>F9#$>fGR#PL=x>1ur&o?M#00A`dv9D2AL^OUizYb>1L~04M2ej&@5qZt(l<~&+WJF zWGo?!vcgGw($tg^FbqU9S>&4EYL)sEc4xe=vDP*^GlcXZ#+R;TUEZAk6XdZ$)@6w=Wo{vmQA3u&oo-%h&|F^bsUNP!0Jh2Xz9CF_ZXBs~})eRQRfcla6mdX`J z#tG+3NXaf1D_fo}f0}3|e&{36S45o!bT+5F#P~|>LF`L zrahDKs7Y;Ea7UI}mi&Oxh*Uv@7NidyV`U<-&IIWxntE`&KY>=_wNw#Ho=YlJ605WP zE%d8XIOc5s0hk1Vrm+0%FV~Q_)ep|c?ZDAsIE!CiH5L^r%+4c2(V;>vvKEw;Hr@%0 zr0JH!@+EkeKQSEJyK6lw$%$I*lZ(8uM@#Zd?2j_2uyPu3C>`kBk>xLe@Poi#cb22F>n{GQL?83LcDfsu%jyV>Lgmj^_K`Sw3Njn;M zST~npk(4!P`kt21;AvD}UD5RV?{fX{X6MFfG>3k_uBKdNzYtqGZfGamD|g3)SnJ3F z`j99gb_>%bU$9R<=wHOYgtY0<{*L_JV}^l}+@s(Qv|mq(J-K?*`+ngF4oAN*<*cH& zaouNZJ-rWF_5h18C^CB?5AhekiDI1X)vjFnZA$pdz1;0ZpXL&L;wXW{B?lbKbmmO` zQWSQBuy&BVu3MHEf(?hB6yBaplo&XZf~d{@f*#%}t(++rw;ecGq%I*O9$!<89E&#C(uswNYr1bqqPA&DVtX${%#9+) zJ+!-sZXyMqFU>kRIX_sRt*Vi=k-TRAg{-`;W4!CBd_ZL~o6Rel3ib*OVqcG}ktZxK z%+sYv9-C0=FF0juq|C-wx#^3x_1~|>67FwT?(b*}drL76_@vBsakUAL*Te9hZR?~p@+0jZ0-v{l?$FW zrf=T?zax@kS^LMhsIhQcDrSE;JI`)qz_63UvP!v4CM)KhlGWOuKpyss>f4AAeR3+s z2`hXcCO!ApDwE}Icq7yCn8@@$6LzPe)fVWP)eBLo7Ld+mwv*dj{e;{ghc^ZTo8mEW zF2p;PVJNYezb%1hKJ{inY;%L`;#-huc_>ei!zRcUsniV;ap^g8_6clBm~8Fe>5w#2 zAtQ^C9FXZ2{Z_ihb`p*V&8 z3~B8c+TP=FI7v4oaZo$PH6D%;{AmKRaN^{-9f%MX3yzfCIu^1N^fuOSvRlpJ ze{T0T{%0I>Blh5TK^@2HH@{QIbG6}}+d4#ELi%J5C2-kOKDE%y&u@o;g*sP7*0vcU z17(gbEuUbZQ^v|)9LWGG-ugUu_^V#a|3p3FL;M15#(+ww(g?wiq5G6EfcOP_m6@s2 z-7&W>G=A|-E9QREf`!r3RGR|wpBe$5SV?TAcwj^u)s4y%Qaevr?4R9JsW>P(1t1Gl zeR^=!$)t>{8m>ck$uPlrRKfAmSej)N80Yp-`O|-(pZQ+F`tWNKX0p4fEbp{kB zRbbHyFRnH%tgfnbHyDu3P^L{odhXKPW68Oug2P{ZWsAE$O<2WQaYu|6h{-fi6zctTEYm4&#v-*2m)s6~L5g5`b50v> z5ZB*|F^Uj|B&$`5$ueL#SaHfh!ONHdk6K>Wvh~^`R|5&O z&nERTz@`qgpSeU0hUxUHHHB%Mv%&0TDM;etTX*lcj}1LoS8d69NZj1Iu6QQT)u!t9 zBEOVCXo)3m8!&RzP)n=LlKSZq2h`a5cor!sw`m9X>|s4wdj}uz)q6f85A7^?tTHEy zDfx9}>JY14BH_R`W#o8!bMjdv)&$@LI+WpOY4vX2{GtO;%+rNUg@|Qv=*FOhMjRrH zroycaAybf6dWP(7NW{Wrm>?VXboPMoZlCOraEUIaoPh}HVpj^s;5vX5R^m``26u@r zSlMgMAa^ueOdEq{HH^ z2M?-npE9J8=dEA&QnW>K9vpDh>Rt$*16uei<);a2&_IbXAy}0n7M5`~3x`D+N!Qag zb7cEebJSr`Xk%~o>a~bv2@{!B>eE@_Eq1*WBjH@gX7?5?E}bBrd0^ppYB@m{1VeEE zI3l|if%co=CqjNL)I@{HNWjtNb^ecsd_$!X+1a^+L0}abgTzS2bpe}h(J z0o0uNjl$bA^;*FO$@zv!Vyn|fWH{#anf=d3>#

      #JwiyBIiPJ<)MWhu0$Z6hTg5UMH)put{CGXYQ4xmjse7x;gQxX!E{8 zknuj@V1YagHm2h=Q3EkLdMgMakooJqeTp(P0|;q&IrHtql+I^K7cvxF6{~#=3-Uga zUc^kk2xTp2t~hS_YXt0}7-uf4x{D{>mob;W9f;}YVd8mz5}2l)s|OR}Ct;njV=|5t z)jxE=jZZaiU~z(J-@5dyCMg$)w&&KjHDwi(&44JSOn1q!C-CmembH#(MlhsOO%5pt z*mHxoVwWXEg8}D@noj;!JwMkZQGj&>|1CX(H;4y#Qc7+v`+Q?lu}j$ZN^FX1kb!b` z&gyr$cp=0^#=hvKTAv)Da7)`2>z40`0%q5-f*PpDIn_-5n2XX0mK(qgQ&bK3tF=4V zUr-SK+Jfz&x}eaUDM4Z9(Re3r3T2TgOQ@t#JIn|)ivMy*1Pdn2&c1VJ7XW+T;N zN-qJi3wR}E6egF0hmfY;hopW?hMd?X4I|DSO*tb2xtWi9r^g3hzfjTP*vG%Cg0zS* zXln0B!7lcKEfFYXwAhNIO#ZJzg+V|E$Huw%E3)p*@pBZTJwIp<*n#>d?@z$x2fu<3 z2pZu2KowvyZ*c^k8wAKf2YA}i4NuVtX3Wrs%oUytrWFQvcZ~<^$WE@F=nhnbX-&7H zyvZnD69$2kM+G3rko14sc>n;tB@^;f$@K0AEOecW*F=*;hOg$CxzLSZt2m@M3}s-^ z40V(bZ32mTu$H3838?4waV09pySqLonpQJjYM3pf!PBp(acrk>$mP{U#4lrc@Y12O z!3C7SwC%G*LJgI0i+gP$;zXqck_k5eQqjmuhhlL^~j`HUfeW5Kcd$A zOkC=G;;70B1pG(V1zK~j<4{z>kBhwl=Vu{(3n?#@-!rl1N;EXn6m(DWO5EM`P(!=z z6?*7L$|IjizN~GxYYZ!L$^NnZwPj(1SEuL8SWQqa!OY~l8~g}U>xeveV8AdA*+Tp$ zxHD7WIuhQ-Cqe>5EHQS++>2^mokui9-KA@T=0gUCDx!7?*p-&kT7`qy zMlf5*1V$(A%r4=&_$w;|>sQxwo-IFPMw}OWnl9umsAAwcZ0~!&pnjH%0ZA9%8p;ru z)*2!RqL7HMy^vy()^a=eYvr2otB4N1xD>s7x$x^l{BHs5S4SGcK^xibBVVHX`~7|n zND!an5>~_8IY!Lv#k%@$;Y&R~sd1s9>CscOk`OTALbQMe{VH|7C(?g~w`ozhsE&)GM@O9964VXvPTjXwWN+ ztJR~?h;bXIRWfgP4V77ZR6|wru1J$;rLN%HgijT#c;`4i?*HNvlvnQfu?zX-+TH#rcD%i zpl#D-y7cQI`+?JH>S>EmJ4?MZiS;$wdbZ9CvT5t*VbS*1Km1k~MW|;pQpI+p)C9vs zFL-Mtm9+7V3fk?E(`G|z4Y@csZ1lz+YY7lt@`Z2{(jub~488A2jwCeRGaFA6h^arH z$RQaA?3c_imexcQhPL~<`8aQ@4bm==T-ww|xDbgdO+-yJ7X7XzzE4$JltLj}<@iW2 z=Wb*@Zkl|*{RlXz6Hr$G4Jp z<7|1Sg8#s{Z?QrG1+M{ks2NA$xY1!|9XL74H3eoAU;?~2iUkT}*)N$q55u;M39=B7 zh{TjJuxvvs&^R<3N-6=&nzIXmihThGG6|53C>>*0Y9JY9j1US=nsLsI z@6ln{IB6J_s(@qS)+97B0hhKT2m%wql1UhgBvb^BCno8Yfn*X@x9&AC6jvapg8%}{ zjM706j;kW9V^7-)D4f&+vJQul`(A=RNLK%riXDyW|Bd(#)03;uwt{FXuR4Jn(s00)Z!*gKl znT&$Y;H(f>A>kL0-!a!&;-6dhT*z_|wHX4FXjCe$ppW3biAf|i-|ZY=#6`|f`fxNK zA=3mzlZ&H}1q9j85Lj4+p;|C9a{*Bag=sK&qSOEi{SqHRY1*SO#EDQy!~-}yNr2Fl zAb2T>Nr6&mBpEMF>Tb_4!Mu=31OkG327qCOeB5b(Ffto4$uTzL5KI&~A4MlunVF; zd+ybR(6OoRqV^O0)XaKFJjSNK>UmR(|MXiGizxKR*uA1(az;jxNTXBjrC0kBz5X1& zG7DfSBt_SG_MeX@=3g#At9t%$VLal-Da|J!_|T6`eYr26!&vb%FYUcHfeod~{+mx1 zpSN>cF=cIrR8nGM;^OM<#KgpT9vym2LUjm!q=w42cNZ*Y5{z9iI7Jj}f~X=27Urse zL0hx1?nFs)#g0PWCO=7DDmO6E;+cYRY&TWgsydo#(@_K~OV{ZRW$9|eQLv>2D@PWA zkxKmEf&)$=RY6)?C5W`Mbe+Mdf=p)I)@C(@$Hjx)4Q_aujHMFd42}>p zBRYL#WZHTSMq{g}GT|;Qrmn48YiRL}yo`)YOr2LqMh3>r&{Nd>I~WX143NRExS)zE zE~!q%xKXCgGnMf6blb_3+n&>AyZF)|Qw1+@C4myrjP+YMwp420ASW0JK3{>x56fsNYq;iw0$(VNo-@L{yO^iyJPy(3zvQxO5GY$6Q-zD>~fI zQ#57?hx-{3cy!H48}KIcK!mZC#kz~O-YtB$fVchU$F?>~%QDA-B^W1uf%2*VHtvF@ z+}6suf>(?{p`F>%QZyC(Da~BbyZJ^qJpR_Ej3$a~}3*1akeMz=aTg3}cQ~A*Ijj?2InmWbDGLW&!Lv@TIFL$SH6z5*)odPK<=`Sb-2N7- zR6@yBTAHY|HtN5yLxMp*?XN}KWq3HJ%v9BO;?9Bv&zh}!t9$SW2ygDNgj5rBsqT8t z#AQou7tOZic{u^E!Zg$~;LMPe(V$3(57f4c4`QAC?s~F;(4TjQmh+~H)@3d0tu0!v z1L3wW9L0<3r~2w1EW3}k3~(KrlWg0U^XlsS^7^)0t!BgJC4-@w&IM}UR_wd9jzhWa zEJsr9k8;C2wySDGR_tTe3^3LLSfBjsj@$Smi2zzY%RZ(02B1d61RQ&wj_(e!#*V6TgEBc7=fr+rgn& z9Eqhrx*ixh;k{0IX5}oSnsnKH5{XNU5tCm2Lc_K=rn^WCSvD`J}wtdLxBXovnwF;a4ahO03)gclO6 zt-`wL`Jey2@MDGEpI^Ad$pD zk2g9Lu(vWeu6Q>7f9+n5Ky&Z+2Ou8weKtK>PvI#1zjlpQ8-djzf!4l$emL{vQs4A5 z{ZkuzTaG^C{ytQAczkN*<)r-Wn$}MXUPwH<{6zWdx#K;lI?Fp=+HunT?r>ow#!IC> z0C=^UzF3FEST$wCmOW$Ey!Jnx-V)UvIb=Zi!}EoGfAaG;7QVW=y2}6LaMO31no)LF z^J9a61q!YX5HM5#2j8b{q-|V<4G^GUpd9-C`1)OygQx}-Sw`7)+IDW)Rnnt^1PKZj zz80OXL{-V7qCAcS2r@}2kXmH@J~QdV#A1+;kWJHHfM$@;$u*l*UwLP3Jx#=h(pp$C zQ|yt<{x)O3{V2Q)*SYu?mXAA5E$R=9sbpt{z|$I|4=LWmK!3rR>6VMW3-kgS)wg5j znTw*}^j~wm^;+ExR;PLF-+AzyZIMOxfsU1P3&(x!Ki#&=DznT|vy(BiYt6)t$HYRT zwNj(o4u$Sp9zi8hFFG^`6kNjm!<*UYU4%xdYbB(JB0B%TGyCvJ_FuQz&6pi-+qG}N ziYlV;&OY#P|EIQ7HiAH@!9X0HAOU&~_9X zgo5B~ZpP#kjCk*%$_aLJXWh0h|UQLiM~mE>6GN_(&3k=vI!dOT;Dgk)2+XrdFL=aawNQwp4a& z>wEO;>gSjw=80Vmya4j=yA+y5&`C-Gq}&DMAVfc=ffis< zlN2#esLG=d;Tm8_vEoCmjo?O}(w%m9>`!wxuoQf=`gt zzt9Vn zylS3R&mBJ}O$phl<$7rsKk#0e=uQsUKuW2p3xZToSBW$k45ZlU?ejx>Suodxt6+4Jiqmak_It0gNl;uuKDyf?CLh;y&yKhGD?%4h-ZFa*Mc9r0b$3%0a6q^P>*c}YkNWld z=TBTN;bE(;vV_OKNrK*Ia(N@{@NB?fi|V@dysmRhhE+_42sLYk!Cv;SBCLn&>ua^+ zt*x!D*q!#1!!ZZSn9k3&=5wbs83A9{^_LIsF-ImpFz6!Cq&s%_fp>0ycYpVr(VW1i#mbPj!C%4(_>k>u3pUXbR^G-E)TCcyY)8Et`h*JLP zifhryo34MkKlS|RAh7w}yIh!A3S8v&md2YEF%RSm?~Rdn$xyig`<66}i=85*VmYx> z9XS9LpL{Vu3{eozeQ14}+3gKCA48H=@Y4&M>fn?#?Sg?Tk6eqj^!Tl3pYWbXWZ5Ga z_}T5w*&vKyjBG%x@EE9eY-Ve@%i*`OYxjt6nW6FUx%YNU+gfwn^V{C}>kFOhK4PRi zne@Qkq7F@9FWN%)Yz=7@_&K=dX~U^z|53t)GR9H<$vS3MI?Dl4B`7;n$*4&^0l?sw zD`b*KZPWWV3u;*G6rK--Cf_jERJ)7{Q}qs_7Qxwc{U})^mPb*v+S=xjtVLFt7N&OL z%4$`E7=88Qr7c%r;Nx^B9LuSgbos&;V`5#Bkjb+bBBts!IMM3`z(Pai)(FXfh-c(o zS0|pDTGG@o6TXUt(aO6j)3oN<6p^iRS@P=z!GgMt?G((5&DV;3%8&ChExp;u zLT$azmg>uDLj=SJkwiEv5NhZPyOK&8w7UNTbwG;0C6Xky<>_%_9hG3H)NC3Ga;Sz% z000O8^A-RAAPfiwLxRC5iQzz#(*qO$30syrTuL?=2P45i6bi&B4#PN-VjzY=1~`Ne zGRP=%NeHd9V0%PV8_@&W1_h@&i0Q(Jnu!HW z3tR>8hdLi&)Jb)@({8}Qg)>7Uh`KNS_w72E@uJT7AJinrN$Vx|zA4?Zj1#TI6%h?& z611lqnX{iOqE0ZIH#ka8;CBeHl)iehDt6e18h1QV&P4prD;P!L<00+PAWB94PNb&F zubEYv7C5}DcGa*_=L@N;U=5x7YfJWu40psMK+IUFX- zofAILcoJ|>0DpaN3b|F+=g=Fk8qSW|#E$G_i11ded!W&if9=o!{u9N2Q zQ!e+p=(5$SZc_0`#Uk?x;`ju1H9x=`%c}DvySK^RtDzJvP9%{**nmE_GBFlEN%px9 zLSt118K;!Bwv*~k-&ULUh;qv!SNv&zPJA`)hC+dQm>l$ngfW1o1&6FPVb!OQZ>h58aQL>-PxammC>j{O7< zjQ4iZe2(bKQu{#>b(ro_Dbv4`q3Fh@w}426Z6d8l2z1K>Xa{;z2fpP@#;ni3KJw_5 zWD=z0B)NDri#MiCOMu@1$d>Y=_tk+X>F^^E=9A|Nmj+c7Vm3el@*&@7_t87)aQ6SfXK&>OPo0&Iesg)uU?@d#Mt+K2pn7goznhp$y$NR6u8mi^J>Q((>h5IzA9S{SQW7wSM9CaT1dWO zD~i!_vx7?S*Jb^yf!Ig_E+0zH#Fel+f*iEW*9vU0tm;O}A8ni& z2yPr#fO-j2&cHO=nE_}g4eQkGkk>wr$2SE%wC~SC)r?3iM~m20a#RN^pJ_t zmf!G_SVp{a;=^GOFGsvHz^%tyT5|jHIsy~%fq~?((De-H>u!qHW7G^7aPq-31hlnb zSwyg8YC{7)lE34_jt3l1WcA621L$bZ^HIkP){|2u= zswar)G@}Dr=cmiYdUKuKopMPcd(c*k`2ILvUvm@(*+cSPd7j|t*Rb?VVL#7UD6_i7 zXHz+Q-QeGT^sE@rc^5M{Z+4}3$PMjlg10Ig22X!PZwG1;pdW}0)W28mm#xcC?~@!U zz?Vk13SsQ_y0uyt#!NzA$p3j5#>Y4L`0dE@K%$AV6qy68*>@H@!SwwU*MDv!!9r(U z99GV_#eO(w)mnpJyeI+pKua)&4k}(d)XjINu=RnX8&fnm24@b@=q9u%vM!MaVwk!z z!VvbYMzMHM%9`?38&S1)pM|V9G|1HY0=(p865R6xF8k5GMtf|EiOS~Y?yZ7@pwuCM zWu7^~vy%fZf(O?jqSS~XxkXOo%g@!I=^y6GC>yT zMhEb`Hgh$fK_CKs?|@znpUbwWj^vkc&^aZ;OVq5&Sbe0dl1#18uwk8HOtJRxgCjF2 zJ?8Yos9Rj2ZoWGqsSgzVjmpDKPRlYou$IsE>)ceJUpQmKm@wj5u5NII8_E)b7%%Jm zhB^iQWv-gt^m3-u0nId+i~(ZglS+|hGQI9EyAt5gBqnr+)qP`77GGVjB8hR%X1d5o zjGi6V4O!LoP^waRgxw zgCI^c4EZ#PiUD019bdO9j_Zz8DlLp|GA3E#=Qg(P_SzFHu+ z7z2@9!nNDW=P71_1-D^7_Y^s`FZrpFIj_zemNX>QKo>JxB}T!Q#6TtiNOFKNUZeRe zT(Q`GArM?6WQq+JU@X7tq|~eCwvhE9dzkr@OiY@Oks6wQBmfX^VzoBx;Zo`<`6OVHOV3-2#P@=H zF!L1nI}8*ZkQ{7SBMG%kKy3Cq+5?w8dl(Rs)VFG&Ju=E3CCMJcyZ`be%Z9oi2<3i; z*bB_IU@^+g#Bf+0C=n(DE&08sZ2%-9XbT5Y93I%ZV^j*#cfsL3rJ&ZEgBG8ytppBn z8PNRP^{XSxLSo|)>9u-*lvuI>SW@t159SI3HiHbpO7Hdl9~7JwUC;2BhM<+c*5$7x zK!Ofw?N`kw&rbaOJ_H=?TGZJX$b&qT%sMIa%#q$r z(@&^w(LZPCly*4Wyr%tZMP_+v=87n=R#fR*$GYJg2!!h>K1onbp%43yNXIRK-XXVz zYJrP=fb^3FZ)IngNlHp&e)oC^M3l`d_caKiJgJ~S!(4)<(fVZ7iP*`}o2g4g)wH}I z6EgZLHGmH|qtpRMi^wnMHK>cw5?*L$?iZ!oByZm=Ice2NH6^3nT`ElX1m>eXgY$qC z|C{SI#<5bJP1*h(lF5jDqW~A_ueja{KC-uNbuY1@x1uuElgIK?IGVUAYl&AQxcIW3 zgM{q2eQ-Dk3_Tq78ohfF-4=^wYl^KG)c4`80I5TXnuv0!GVnvcP2vY`!KvF#?R4N6Yjn zSuR|#+CzXrte!N{qOSU=UZQ$)f+fajb@lXFZ0`4+9qqJ+kyTA#JQuxfqdAH?Agfgx zDBP$97$sP!U&gPN_Eig%KL;3Y&T0`Y+-}X@M|f~hV{&}0GvK+fFe*y3?{l`C!yQZo zD8V+308jdG4ou+`la&7w2|Wv>hSoZx;*Gr_jsSZy$HxqE_$op>EPYK;k?l}uhB z+ut-+u)ZU8RQ*0MtZb4;ZrPv06%OyoB#piZbm7`-6Q~TEV4k6m7!bHdW(20ysqH$y z%^9N{pB+*?*$d7q!XWHmbf1PPn@T(J!*UsCxS=yX&+p~UEh{YP)z!+hsxDda6mZyO z7XHA`!t)p{+@ggc{s)IyxB5Y>5GPRd_Ybb~pat*?fUbOiA6iVTa+z2>qza3v%U@4Z0 zTnE55YVwmyM1zV7v#2(~Eh*fDO^70X5>y(Tu7|Lyiy<$}g3rV9Nz@B7uj|I1_lCe; z`6*a3Lr5G$I_!jvj(7K3>=nb%-_)_%Ip~wpNPrnvG5n3_MR)qAkJ?THvInAu_M595 z=gymjE?Xw9*GBneUFN7|V>HpV&JbkVuu*3XE}V@C66IY<@bi_fyH8v|Dtc8h_g+eJ6DQXZ7)zL19 zlbniM{5AP$QfdP^F5iI3L>wDOxI89dI>l)LJp`6}B!?GdsoN-m<&?rs?@M$VM+3Hf zU7IP0wr$~wrywyxnN%P%Z?N_xHJ(8YQS&y88Lpf!s>}F7nY@u*$ECF_^yfivXe1mI z&9kvH7e|_^AdC%{`U?uf2c^@I<1#Zi^W@WYAx5%1_Jm6B)-^*}F9 zSBp9YI)%V6j|sSmtv4&I?wU`^;Po1#i5A89sBp$?At@Zw{(L+it~+`pWYcxBQ5X`? zZ4ZDxZeTWu!0`hy*5Ek2W!|0%qqL0K!89ZRaod zp>UX;D$5)wJedjM581EChYVjSWzfaP zx&c40%8tMTKwF%a#2D1Y@yh)!wz)EkWv39CS@LujBw=>GMeFH4zW^`AXVRl<3g0GZehHXA; zl5umqpYUnmu|D0p#sqHOQ$c1bMuXrJ@*8)TASOgiHCg~yo3%J)U0Li7t}o83pNHVQ zr;V`=C#IvYhfB~zljlJC0CGL%(u+OJf^j0|`U51CnN2%0g2~A1Y?f-OaB*;8%-lN> zQ1o;+j0j8TF~I9Ecz!!$5d8Dy3<#E=F@S%?93drC@#^5fG5L2Opy2s#7!elTBZ&V> z9Og=?0`bv-FgbQkAi>k+8>1|I;}P!)IH5}kMdI*2NW7i#5bW8(T`X8SV_^OjI6_KR z#nj>2lX*K3(Bb(qjK~(95fuK=3q!Bt7auhUJ^9Kxe%(w61DHHq?460>7EZ5{h4v1T z7_`DA@1KNr>u^;C%_sn134&8exq!Om2eOYw2J(l4SmZ);9VA{GlW`GP#8=%L9~s#1 z0iC%iNA1!r(_n(#-v!YsSQ=ON6#kkgX%S z#?XS~ABk}*wQ7-ck{Cc*uWkw9`V7=Y;!ZxYu|_lO4-Y}$LVG_*S{oB^EU<`F+#BDs z5fcobhn^YRW^M$+H$LXlOYDcDz3tIJ(zKnif`(g0Jx z3<8b9Bhv~4hLWMBu z3s6ww^jHY1b|pstHpo)#*oH}?=Q@hg4q@x`OpFLyJr9R4;+5zodxl80FY8`oNdH5O zt0;m><`*DBI;rr*k=S2x zgX$?VI$jg?y1ANyjyWQAlY=hNCy_?1?{_siznJ={YaBB90t~x$8^*N?r`sjqR?j7j z2!0eheeTWp3fw0wF}EwunN`9jKc;{#4UnRD*ZT-U8RGdmhxlAJ)eRM6s?*#p}r9AcB!0{OC9g*2Y}vqgf+ zx9nOBPY{K@t88x_D$7PiU%*LV8ao%> zf177L>LH9Qy~v#ul}DbEt{;Q(E-VY_uT8^@I3q%8ffHJ6PP#L|8y{f}wZlh`gI|W` zz<9HsD&!;yEwXn3FNb(TKs)@= zoC(XwvlqB=#C8t0ubf0*jCHd&FWFMY(RT0eZ2gWxMg5nRVHYV`)! zn3$Y{9ZtrQ#SeQl<%@csNdU_0myCD!R!eulv=D`($}auGmkJIV7zHNgUTwy(V$C1@ zpRHjH#{LntX~yhbVp3zqC28iB4YW=c85I}eOmrtxFM-^4g)Ov8F{C{uyLGv2+XCA9 z?}whF9$v_UKtXx#SY;)K#)aVKs2Q0E;IWLT9cEx7BV#bEw>I9agdL)ANjAI4Fz;oP z$K*X7>`<6aZoD!^1>$-LPvIJg;mrYc>qB*mma*k@P zsc`gODEA=`w5zokmYio)GF0rBUpj369FaVH>q-{#qud#YV;c}%nMzH83g{;&4(8xv z=16-bgtS4Pha+a+AkOIsk?F^tpXNeAJIr4j-rV9%?+_EsTCj?)N?S2Vmab(Uq$3vs zev$RQtfy86@&}YooB4H8(XPVs1jNO8g#rG@I3~f7VUF)8IE>}GIa$rVJLL_*#J>(6 zfWc^n=Zkibm3#XWZyWFM8yHdsdSqaSE2vBeKW&SOmU-#>y8PglJ0+l8euNjSz_1JA zu+1aF&_c*BaeN=5FcOO$N0ui$RL2rTFc?!}f=GZjAm|W?4&8`C6Z~K8LzpK+j3S`- znAO&)yDoi{ru~fz^)7t{P_8C}oU3F^)S?3Z=>3P3m~6ZPxaE^T!jWY*RDoh6tX`&P zx(s*d?3vE7d{e-lT(dqWIBv7cS$2BP1MZ(&6TE(sEa1gAZP z=Vme2P^Rdi;a;4X#TG)SRrp zJMkSEz^6dhAv?asF9=A46fnS8;Fz$&7h`20eTqz0}&lQG2i$3qc5_vaR z2y|4Y^mNTMJ#s*BWS8SR3JwJW>A~ke)<<%g*~D)q8sbtfju{j@v9rNCN9Tl^id8WN zRGN_FfJRHpmh=bk7@NaTYAHJ`5`k+OrPlKD9FM5x6Db$>s?Dq@}RupK_L7e zkQGOxXkh^$@)t+6Dt2RdDDIY`_mcWisjezUfR4wpt4Sb(LoxGPB@jy5!^n$~S~WNv zTrDbd2&gi@09<=0C~kMx8Sl2v5O=*erl6PrNxC4V$A`~DnJK4j@rKUu!cIeb%!L^Y zk5kek!9trYJ>X}&|Mi~t=}Ugw$Z5hyJdTTs5IlcrdI<>lZe;MmV)m6DWTAe&6K1d1 zwNwwH7<^e=<1r z`AX}ZQqWGnIpfyD(~tmX$+PMnV`fop-YTrAS=1U^y}JrH?F=Pah|I}GUZH-!MLAo< zy0V>=zMbU;y47~my8Wuvs{7scx5M}gavU+B%5U;zX?9F~;s!=g`zzu{U#=Kz2*8P3 zpQRMCBIQv-c!|@;8w?xr4V{O+8~|_F@qLjFAP;FRMaCe*?r=%mtfKkgwqc=GIYQh^ z=<=7=9&di&fXEE5J3&m4snxBML}CRgdt|n7DWutgZUDUYFi1!3(ba<37G-A}MnJ7% z$51=f`zgHqm&tZt4%0qTV1{D&q>sHB1;zXJ5DV&OV`!L45ZM}R98$hiMMeYK%BXMpZB|Y)-R&j zrmlcz&8*{Q#Vl>_9g&wDPPYF%dWPZ76JD%CxC|@Sdz$*-qoO6l83lpTAlgoZ@GgJq z$Jasi(3^l=Q6MY8U1<@5H zP7oNiK;+Q`EfGAd8NI2sIZzK4V=B~jUPY!iPGdzI`sil^#`9v@E2KfQ;-<%)4{2FD zn3O_$F{G5>XN}_>PG(L2>uT6l!MYjE?gRLsl8mse@GL9 zv7`;TF&`s07vAZ-InQH5nL&Itp-Yhskhz#P1&A~QDR*l|Ez%IF#wI47LgMwQ_=5Cy z9F?v4Nk0aF5N=Jwva$9d)y{NYBLY(74b}fW_#*R1(}#%hk+kgXV&%eT=|>}Q7#A!N z(^NH_K-BDEy`)`|{GjCSYwQxUkw`GhKz)w1KePVoEy zkh!EWL1R1Phr^&#m;B>-SciwUywS@Mcz02#zoYDO`QC=(n(j-;Yj2(1cP3yc!E-}3 zam*VaL-qB(+|1U}X>j7ywOII=TFqde6{HRLnPXG@+J+*iZEDmrh&j{`3AForQ7>?X zu8I+X&FwBzq|Ri!DySV!>d1=gGEpp}T`JSd`pwRmJj3hk{Y$(b*QMf_7og%~UV2ot z92(4_ylPb(r)ZgN0?8j@S+;ta{R03OiN{B_#FGIC%cK&B#ORI$-94p_nj|%_day;2 z*)%7<3^2)r;CB+8r{!uOliF1E-EN&Mx_?S9{JnD6fUAy8iK9JEJm`(xuqRznXm4Yj*=1y?0>jY4Mretr;~RO>3GVg~f!D%19e+RC z^D{<#@lh=@dZGZx9U$iOsBm% z61YRU2LNx+_y*we@E(v$?!(mtUt`029miaXz%{YV z@Qxzu>AO{fGr=D0(Mz$?;a`)K@q_(c#m={CrUBl{&;N3Ci6INKXcTl%kX|p(fP&4j z>R#NU1o6JcYFYaFn}kBW-97O|c)R8h zYJ$ccF){T2)bjStGT5rp)3(;<&AkP=}=-72k=r205Ku17v*Y1lQSTRdNjr z3RSKMBF#FSiHzMDYFE;46py$%;(yqMzxPD(67e`#>PMFbWZU-{$iLUcb&2NJ4>GpM z#j)0#G4Yf&v$r7Z0CImvB;q*hA9dy;zX;VRp^b-!Y#)9^G*Wmz)gqplKQB0#q6YPQ zX{SSoZAdMd!cHC0`I9ExspQb1x}yE>RzZStYTGJND;rUU@xSV;$MX)mh`sLWw2%W< zdxsnijVmZuEN&bb^Z_5N3nAX0DkV(@-SqC7iC!miVjPvI?HPau$P*w7T#mj1qvwx* zdL(#jj2U`|>7#Sp_iF)6a>neiaxGl|FP;VaR4G^gS2o2jZ+QA(vxh0=5$+0~;hQy15HKDC`GC=DWfxN+7&@(Nc9Z@`% zx9kZUADRyc1{B(f%*8m7O_g3CAZlkUoy-tWIGBO1v6p{+nBa=7cj>FxZ!*Jy!e4O( zP>Dm1?1faI$xa}Vx+5)!@+p{423Gb!G9mMzwmlbQK%+QEIq-mZ$wY=}|9Nz>*Sl(| z=G;Y{L_{Qgm^N;uOMUfGNyibrA>@+ap-6GD=Yg>wTTNIbq}Ym<8oMF9t?l$G+d`+) zP)Z-Qtphn*r`bQK!4K-t!X&LQHeH>qbhd;Uts4>Bs>7T|JX*Df@p}%Zs4tN0(+;a1 z=u?d2EYdA01c39o%}`h~Ls8Z(m0A%_@TzWrB)i=#=i){jnl=h!qtSsxR-%{m)L6w^ zr#((au^HqZ&0fI#=O;bUiVrncrA_kZEiu!ceW!1CUFWW7pXCPr&`Bi+U1_4z39Ur1T?FiPc*Fd-bPy$TDEBVG zv%6&0AI3U_56P&?cog`{d&TSSC~kga6qWGyRHO7SpL1|xF|)=j*lPF6A*4o;@3ovC!`|7AIj^eINoLLZ9a!ZEm<87P_d}!d%aG%EX@bdQ8GhH{LxVU=M1~+ZbBorwTC+q z<9@&X|D+hSwxP=!q?I`YxONxVISEMFKxpr++rgb~(a~qE1dikRjk5_-T0PJ{9R1+Y zEVL(GyZ)*QaxFFbbR)!R{pTLZtazd!0bnS+8%MGERtckp8}AHlAu|P&4k#d*}x5 zTcf2UC!J4|SaH<&1KQrHZVwj{Z;FW!C>lUh7AK)6I}of|IT$4m(l`2*(TV}G6Wt{8 zig%*x_$G3HMn}}IL zyvsv?XO6X@7_5=fx2*4`^&J$ZT{4T~Lk(4$M!2sG7-?S~bE>9w*vxktD(P9Ykqs8C zI)`&6dcs_{nYM@4u4yq!%Fkb6fMrCXr}oAsr#~=~qT%>b@4?Kylo0TZDEJ99d8y#& zzcyzzSZQ7Ign`Imlg~cBi<1T1XLqy?g(&Qr;cwx_xvMq?c%nh(-l+WBB1KNwn7jju zW^9)E5w^9u(*OzL+&G3XUzDU~P(>DS*WO@u11bnZcnNb^C&z~)F0jmd)e#LaO?r$p z3Wn=Qa~GW;d^n@k{y4njQ~{CV>X4~(1&eaqu>BRQ6*t-(37Dn%0PEnJd|VU|Fe=Mn zMQ%0ZZ@`Tt2c6PeBDF}@Ru%QERg$uQ6v3~o8cSBSd=i=}fj?1Iq?GHaA~pgqg9q0yAr zZ$`RjBwwj23MSBMl;1J!aMX!T3rc<}KrCX52}+TfPNOwl!Xu!Fg@6#LlIqY`)K02H zqQ_x%61gTEY$a-iEVPiD0QU!b4%uWGZ)ON=on3;n~D> zRC?veEQv8_=RA*>sBjKgoS#}p11E3=dhacWs08GYvq(B==Ke-@WWaJkA=*1~F7PY`X+Pf<-w2S}iX*>{u#4FxnASoVZsosB= z!zVxsy09&f=$C1q4awrhqWfA}VqDgZ5S7nYahwZ zd(2`61?Q|N`54B<4pZeQ7Y24*51}N5wzM%0)@7C4+qD*IUyE(C1;)j)C)z-X%jCK? zOADP+_9`f$MQ5lQmI)N}inr#gI6RCTrmpTvHEuLYP&i*`glpG+6S^A_-Ym(TQxt_(XzypyOR~!o#dClMxa9gEdKgCTB z=Re}lOt2IoEj2igsH7YT2^dkG zK@$K4u1mANbSL#<()m;F0#}))AtZEq>ox{3r6OaKR#t@fel3jkpvDo$bb6m2hN{aj zIm!p^>;guO_3YFKRLg0ZF=DXkzIJqsCX$gSYRMET;+a+f(u%dfyKL)4Cn5x5r=}1= zBisF+-mRWv3tPeo8W{)?AMO%mC71P6@*KNVb-(UZwB1n2b02MSo+pD$rl!Qf7w^bO z8~46cswQi5$Tb=`QX&p38->mqXWXah$i0F#rTD;4uuWyJX>_28%987yWeKfOUTKB_ zYrQBSuUSYO2#9p&J8-!w^0PKBA^?_21F$;n9#g1yYt-Ng!iVJN>CGgrdhJG8JQDiK`;B&6-l&Ya<=^;E&0mS~0R;Mr3Yx6JJFBj8r-9{UAc1Om z$dZgoS}h_1hn#>;8yN<s3>Ef)w3zz?AbZb-7 z5Y5^}$e zXIAbj@~H&vy8cZRg4u+s`Z2)8TTBQX<-JosDYvx*2#1**PfP8p+{fpJNgeO-S0Z<# zr`v2v$&1QDU*6V9aMiV=9}THfaZ&Z>@IY@hs$Z{KS#yFRi_k^&CQGRXgsmEkfM<<~ z?L_ql_)axGvt*xFr4+7Y$EY%;DNXjQq6eJK9?^M9s}D}&x;9bvcThtahHZyoRh|E3 z&(j5Nu^^Y-Bbo2z#XT5=A{^F6X=|&-8R)`#ITQtZ%u6T=-`@D#!~Sf0C{ce10wl`s z7fuupcLRd+b}|M{a(GZDMEEkOk1*50;|q5`4@w-^Ohs?+##{JseSs~pHl@@$L?xxB=i||qb)s`wv=-O(R1?kdRPaong4P|;mPsQdW*GfE*VYCf{4KtZd1e_c zkeqT>IQvuoV<2CI0(F6d|9qxW2rC6re(MK_*tRd>B1-SIDJ~Vgzw@9Ggr0t*)C!uQ zr%tY|%@`?Z!wp^qlxj=SUyO$Q1~>5H{DwqB1Gf?lJU49XusNi!dEOmt6ZS?Rdx0f~ z=;Kk#=ZX+f@4u;agFZbi-ma(tdX60a0Xyoq@@l8uW9# zF=t6IfYLTm$_^lQ($u4(Rs|^@X-<6|b!q6=z#M8QjXNClO+#0YS$d+bB#2e zb%!1%^eQ|xRg>wMQEe2FshF=+7yv1iX^cySplG`BQCXs@i~?rY(WSQv2lky(1uKNg zT-2zrGJne4r8;G{w9Mg?qSf#nk1G-6ScUmA;GEN6c`d-g$X^^b}!(h$jOa}wNJg&WJ*#7?*@fRa10ciErCEf;fj-Nyy!(LcXJyy%E(Zo@~cd7Gj3j*nKQOzGIiY?c>Hdlmk$Gt<^!& z{qsoF2m^}YjQJmGQIRVP`HoyA4dn!(g1AE6S?%LA7HMuC%84SEUbpZ^Pf+~-|NsC0 z|NsC0|NsC0|NsC0|NsC0|NsC0|5t3&{&UXx)qk6!g&-cj`u5<*-K~;95)GS00qG+` zKoA5gs)9r&4eNy>G$gT937h?HAqUh9$DOI8l-k=l=VAALT(7GhdAE+cTm4}8ywB@! z4LsNtYYo5fOCP z#F{S{Ubqii)7Y{%+;5KBR5L5pkk-a)czRrwk9Fqz}->M2uO{b}n?&dbE?zQCA zk04fDy^oxv67yoGiJjwUpsuAc6|`UvfIhs zHR*PG^(7aGj_d!cQ~j>j@&2Qfex>0{Y=XAe`T6m+wbEL3@Ia*4Ypu0@EKgi3Hv_M4 z>$bV|HpiAIMYJv9O_$-0Ak?lCMSDL{{=~t&NqN}>=Is$-Wh&|7a zHg{dubu^lmxVsyzV#WY$Yuv zEtoCIW;;3oG5CQt+?jm0S}Qkx9l7r7z7hPs@8c@>)vsK|9QMuP-mF{BR?_yAv6QQ$ zlMip-60YTHtxK@nIDc}j)rEXF`!$HJQ9T`vtUpwQoLtNMZFKur*L9r}5N{*d!F<)p zT=j(3bTcXg%bgCGsG}2?3o8f2P(a|~BnOHOAh_AFO9%@jdB800R!V*(N8asN^RaoCnQY5bbK&|91>~6Hj{==o^#c8R7_Rhc-M7Z z*L7X5VDfp|x~^M+olkCWs%qDD9SDM8hsAWKkH+9QvCtZB%6Od*a^q^jBVndp*L9}O zikWI|!{6hMib?ahaaTpRgGqC7<8IdJp!=CL9}S1`H`X4x@lJmgOm*z2n5o9ytY`ka zuIs9gPC)!4YK!T@>=sI~yPvh#(lmC+bz~vm%pYy2;f7WYavkSSc6S%9G+{}89a#vG z;*N$wf;VCQiLKUJ>#f^Y9yZ9s5SKBCoT&a&L zS>^-OF)(C)atL zw~gGG!-Ei3M{d}4SsuyVJ94-iy)lP}%i{0|xNf|dtF_j<;|R39e)+hf+}(xyCf7Nw zpI6WN#52r#=bUrSIloyqu5y!B7dtiIX<2b;@w{b!pl9a%27$0+j2&Uz?FSEED++ZI z{l^Ynw}~lp!KGe*H?u zQ%dRAGrp2h|0$)^){TB8qttCN)nA^$RLv?kxK(ffj^GWgK}V3ndGipDl7Ty z$c;<0(oYGfXB=1W`YaQkCQ``_EEA?<84~5jU@XLv8;3sOEc^+9LM*~CB=RN*!+WAT zY2Rz0l#5)JxG4FQq>QCm>8AwLB`iuNvUHN2o}6Nx67w7iqH>CXvY^;hO_@*7%q7T* znVPxOL3haPKy+M|WHoRgmZ%JXEJQlL6QES`!=N&aeS9sZ@wc?4~{Akzi;A6;jDfhE#lc4p}*};0rYMfKR{|JCd?D?r`^D zUK5zdQ<8-~SO+HW9myOyQXqFwIs{3QFxJ}Gfp?_PZ36}d!|>?38#QXAz{7?ORVC%d z9If#oD1EO72o6!=!DHl+sv06BUSMA ze%&e&D1YsAYSkhaF4%i8`=uzIB0>q5BSIf9A~!aH{sN0^nIrwRLuDF=KECoH=p{?< z$&I(rhpL_|NxAe_=tIg`Gy#LLlI&$F$zHZ3dzGS4nUZXXlI-*{aWY?>NayjDiS(Tq zC-Y=x=8R+a)2W7%&xFaeV_=PcqvK45VI z$9aCxVF&L;5M}T{M8ZYkWL(#E9oI;dK}8CvlO?2q16l+TOT>77(4mTK=Zq&tTRWD% z+?~RXii&W^L5nf6$QH|dN@zcbvV)^!M+b;0IOL$k7+B<)?~7=S#iaatEiYJ;9v|Qh zm)*StK~|U;ku5%fI3&n{89*?|7Mnnv5rmP0kq=6Cbbz>m7D2=kP9*TXmR^-)t&;W3 zmwrp=Q;PBmeO|C8J*b!16bWW@&vbh?wm`LZyRFvBTXncys;)V^T24~e#sV;=h>`2l ze+MWr1R4h@5yp(^o~LJQ%xO=rawe_SYPEPg@TS_Alo0IlA|_zU(2;dwIYLB=k{WO$ zlyuVJ3C=KLu|LHqBxu?s$-_;ju}Jil%ca!lKtLXDa^f}h;qUH{aJG8(Kj>I zX;m8;brp~DFo%GM(nXI)v1$5|o~1pqrl*O+VD#zisT3;3g^0yk380R33 zX`NOzRRJNElt_&E#hkG}m_h(!s%j3#T(ucf)kH+2mNsK5Avg9dK$t?9qWVEBY0T{t zbLBNq0|C(*C!##ajb)HTZfsw`g50>iVzUx4bZJO=D;A3hiKWxL$ZKw7$#y{@mL7AT zN#n{6#jK&;LmNer8&4mW$X%=D&_SH6(rI05puS?Rf=rd2G@l!LmR=p1s>TDz7MI*? zFR~Ra-)2l!1!a6_A_)F~DwtSON~b7#%yA6QFbq3dGjmVLji~}A%V{i`FT}EIwHnLf zB);;n#V2rv6DY%nJyOZs!urT0BN#&rHsvbojh>}dL8N{Vw<4DHV3 zkb*aq(jiTJ-bXf&SEDwNtJ=v3Dnh0W)Ibfi)rh+0b**a+sW1{UBdCX`?RWS zPr7DF5u9_L;6)pVvl(GUh!)fyC`w$(mNsc_mX&BhBwuT-MI4MBD1n4*v4c4Ng%dmE z)E+2GbiqVJ`5_7z%pW6cDZ;@4h#4f&#J_N2hb7s5L!gL$!x0oOh_b~Zh;srhqNph$ zTO5KoCII6K7GTL1doQ2U90+seVUKhraFlZCG!K{DR83V`%0wOuL62b}mNaIh#Mxr{ zq*I`c713kg_cd6=1YT5$0TwtV5E8?O9kRt8h*JU<-~bB|CII6K7JPvN5Hm=E1zEb* zwJL*wN+sf}FD-&-V-V3pjR|^GlG3Wdl^#fe9dSc0EY4^_87e9oD)OR__#T8Z z&wq1n?9sHkRwT`dL@ISr88>KLbt#r0UyhO0|yQqE<5O0LBlD*5k%u|s>6wY-s8dy^cWhKwSs$bRRD=XnR3U^R^8bvn1ZIE|EWyJNj&yR4 z=pz3Kpa8K075V@FZI2JttFE=G@#mlQ7MH8Oc50LVAlmc9zr1v6;!h-BengauSl$&5 zEYVtgfn09(Oo#CfM2jDZ#Tt0h2?;v^F%S|-mZHmCkx(9YUDvJJu!nPJvx5x-*~s#W zEPAn5V$w)y$&b91)WBnl$s9H4s3D2{dM&M6GE@`RhB^GdTYE80Y-%^B)*m}g0RU(~ zm%kBxbgJpP`J@O8qo?xmioFXLz0r19X0Wz8QA7Tb-8Y`sWA zO19Qw6lP5W=*y(BxUtninM{?f*@tX#`Ozg)Wicst1Inp{Y&puLM;c~~#b{)UH?o{O z$hK#4coXK;F%iE>L$k#&DH(i#8@4W3bg>&QxebMEH*C|J0Kf`#%HoMjBMq&x*rP#U zww8pgO%<{HvYlD7ePt_vCOsp7Y%%5ORS8>6V=I_7lV&T8^wp|wP1SV0U_7y|BAYTZ zmq1zoV3FTQ7JLvloW1Sal90j&NXT=hI&T~)++YxKhkF$J-X2M~8*8{BUvaE~=DT$x zX{0+F-BDrZRpi<%ny@iIiySukYPC(*j^j9v<2ov1aW~}XWigFeOkWmLnB7Wv!*s(X zOhFk;xI`+cEEAbz+cwgrcUoneq_0kG_V&Ho81zIAaeMvI7Ea>Wx^+9dqcyY!5*{V;qDROImI+g$R;KTJEv@pf zxIcY=fP8o=9;%isO{2AR$U?&+ltoC3(3X(Lg#9G8T=@m#$wymytJQ?KTWUC9Oz6l; zjujm%JGK-BRg!Wi4S8NK6p8cUWL?x+dgU)VRxs1N#Yl&a6|#*KHcX$56gz6{$TWL9 zKGhPDreFkd4%KRzk|oyzqjHHBmoRsWQI?*uMe}0GjaRpe$;Bn=80u8V*IIg}=8maB zxwwt8k5A8(qO__hj5Z0tr&@tnda$q7GZb?&54Q4jN=}v~1rWz`9d$t*7sL^9wXW-G z-ImU%XQ-ExOGG{$%!uQPXh5?rRwD|^B_}JIWuO!h0ER>tE%|Yc8(H#W8zbuRX`J1H zX?&Wp<90W0<9Ki~8bran*>Dz0(PD?Gnp&U$gGSk-W3;l@M{s4&jqu8INDC~}X-O3i ziNTY-7OY^glEsP^D_iD_HHA{b87cJXyaHpVSSciXP)Vjm5?qTW_!d0)7C+2##4_{= zS0>yy{PCEZMo`u&@JS8C$8>dl(zFz!OolTNOeAG^;N|qrJo&BIcrsMI_yk>O>;4_Vr z74p1JLBN|9J__E%5Y}8Jh9vOwI$UpQ`~R<7NeoHg=XIb9%mG`S0$V~-2vs4Jg%B4v zbYM%mT+Eop^9J3Z)km|%-kccIQHIw63i(tnk>U~t21*FxDM^{xL9Ce$`BY5Anrj2a zqzTHwtf66*9L`Eq0dbQu@=YQj}KpEQ4Ee;|6PC4(aI5R%VD4mnYhZmgQ7* zGU}6-UWGiZ>QkR+RjjD8MU|l{KOn&yi&Z-!kNfI`FObqINUJO^$x2dkqbw#%F$Kz8 zHCZ6cjZ zAxxSZ$Bmx|lZK;V=^6T55lN*;}K)Hi*mxxMP zj3^2GypFph@bfzE>Ubgj_#p!-U<$D;$-1Z{MMwxCBZOY?0^ZOXU;^q4m1QE8+;BJDOF6#;w5!O zA{qE*&-hQPoce2i#VaD%@r_*=k@3D-<=uCuQx4k^?~A;!PPz4=iVm`5icx4h$BMlT zbj`?Hy_&tMvrajtGaCd21fe>ct-p;p_W$M);FExlMu~ww3MuHLnsaU4E>I9aMF1TE zq(qL2`s$4G|NmYFJ{zGQ|Hd|~h;%;LWa*MqU?P_Hm3wkfYWDbgLlbnN+IJ0Zs za_lb0U31(sDJkeiu>oKVIYjUa*n7Z78n?`iG~bLH>xw(&;uFA|+l^bc z;)fM<)&y@p2z)nVlWf|1z;|;~Lk@4Vc3VLUU;xDhym=Yw#FA;2&Bo9vig9jU7;kq) zrkFG(Q~Xg0#Ze1S0+h5Z2f&8+?eoHHD6cPY$8e7-P?rdNJ6&WWhHO?O6%sj@KQy6E4 z8E4)x(oBvskK@dEoLR?6GXQ9w*=3~p#yGQ$nNcInr=*2Nho z>&dRkXc5aTsL~#9o;_1;wCs=Al)Lp+W<1)PljIECLI8A zY^J1zb;|L|46(Ga_Sa6&z;2Vv(=&Ib!|s#)%B)T2$U&T}vTLu7iMYA89_DJ31uh844F<3nhd|jl5uLkg@;vOea4}>x|hIxWU#>|mU zVpyW1Mg-gRysu8Beh`)X5m-Dp3ra_BuTI@@)9KCCDaV%PD+?28*|AL3%%X(>Q?}qD zM925#E7Vl=^ePC)U~k|j~B z3wP~jGaf1QAYpum?CwNR_0Yq3t9W-eO2uL-k_=yrxdK7bx}GfUlHBB@F~5u-SF{xMFjb9R!XiXc5V`RYxvQ&*8TOyeTrOpG0U(!M!|80v z%EXLm>_QP@=|oRH>2HJl{eRSVC#wEm^hIC2I#Enf(T^QF0#LCK(fHp~!NS3Hr z=z=1NUv;@r5C4DnAvCEJ0gjA@)U;XypsDH6!v*f^^=;aGDDaeX+m2_E%P;z(Jo9+< zGg<%}BDDZMR-R6|Tt&i-n^s>rsIPtyTQ7P%FSbEK?D8Dyfu|_@_dJnJ?pe=RDyZ<% ztERcCeN37fX!gXKubhaMtLuICA`*+ez=KDT%d;Y3#~X?K8Ti&(YXk@&G71L7<;yH) zW7So4YLllDW%e(z{8(;mB=#~GtjpCN4BriS^Z)-a*f+o@HvSRSD-bt+>6r&rb*DDT zjon63y*j9J!H86KbxP-F_GcEvHr6#ug4OlCrBl{rOQn;v1{vRIzy!jt*_<;fmCh}tyh;srcK$0!hc+{aohYkQJk&>kd zFvyQl0CAM)=-O^7AhJ60Du4h!xaD^APfivgJR); zI8cLJQ4bV=3Tu)~Xj(WGh$A@+qc8}9Ac$g+L52`u3^4{7hKj5L*)9TYtNmoLtwQq8 z-&hqO^+b8MCqSAi>xn~(mbM^fTf^<{bE_vM_ZFYGb7lW{xES_4#VAVJ9^ISX99PUR8V7CVrk*W&bW4tq) zk}xs4v{Wh}FHNm^w0G#cglZ*hq!X4ERN`C?iZ;Xf^L@yHrmc4gU*ixWJJsLe;&|X zhJ*~aiiWDFwU+Zc9P%;Vcd(MJp9dbKtR)GZuA!{9qiBWo{Q|b?H5L%bRd$gm=Q=4X zXyKF#?<;7`w=i6%(CrIy=X-dt~ihc-gpEm0rVhu+XLT15>t7Np^$STeRUCr3* z+MW9?RWa+hK0+#~8muDSgxH~fGBB>c?S6)L@{WB5Sa$jhK$zw;K)ff+aY;!2588+? zMQTbF@n@NNr6(j~tk9%v5cFpl$pi5YtbAGz=v@#g;vo?aFv!}Ef#I3~xYy#))i67+ z(0Ccp3t7KO!u5r5wP0sPh~1{r&Do-BY}b0`iG5OUlbr#ZxkFX7E63w&D8d>-ovsKa zoFEYo^H?O$n>7&Np;RgI4xe4)MXpK+jr4X)taIXZ&62%H*N{E1F$dDJ#CeXH$t8F+ zTb&0ctS4Eqv{1kXPD&4l1{|} z`aogdroch&Bb8y;Dq{Z-E?Y~fBp|rJy{I^&5O8O#e}|Rg90Qi=gq^FPWWLoIEaD1# zH#|>HFK#;cp1ywLSRe~H-Vu)~V?tjt;kd7t+WM#PQ%i+N)G_<#t(1o;L>@lys3Pi- zI>dRI-k=qWE;Wq=hhR9Fwn9BQHA@c7Vum|$5%Z`Nty+bV>EPD&rL*^QM@#uSo$g(^ zkD0^^5Uu(>Hom<_SNucJvF!Jsd0zKLrD#oH zg(DD$*&tB+6-eB7lh=|v;O?o9q{~R|?%9>&Ln{IFN0yN;8krHqZ*%|utfR9<7N3mP z#I~X32onh z_7)h6agrg<6}_8(;Fv}sTBb=$c_8G|+LLBY7_FCeRXg*#G~_h$Z51K?y8Z1#1V%EU z1mi@p_K|U7nCP@T)e-pQQq^LfJrGmM1eVdfD8!j!%W>u|SLGL7PmKhWIR3-1_zJB; z^x!~-EFrGs@nzmOz5_7#q}y#4LVyG#Hn}rspS2Xi`GfT9r}i>A6}-5lu#H5V>6{Wq z8qb<3w4*!B8u?S;5|XvZOr*qKc7BV|Q~2{f8QC{7%fc@!4^s+Z{BxomKvOi!sYE>{ zo`iFiCM}|>j*e5TV*&J`&5hZ28(*TP#2DNTPOT=}bhN>XVrdc|Id=zekHOG@D4YGj zl$bb%-=}3JQD#zdtzQAitbU5`QXEOMaHPU46;N@_9K?lNVTqD+Osx5}bNrjBMW{PJ zC^sfZKh*azWo0NSyn9!7D&tJ?tG;vCgLu;B&+jr>+YV#!v_3nN$S=~^OVDO)J)?}b zGh+{jbJ=C~G#$@;EB0t)a}`BQza!j2_OxacZ};Y{i76b6dSB>KHK^uPbtsezyf6jF z==(^bbPCl&0#@gbv&1QuZRBJyYJZ8wKAj_nts6u#!Cx&_Y`^`DSg_9+H7CPF{ISSG zMClP2^l6axSeZ2b0PbbAVYt$a#)n6i(j;6MnU zXt=X{(|2g_py!@QJ$9ZpEPzDrU^P6uIu;LgFCnUi;Ae9*8&Gh!2N>Z~CDksb<8$6x zCRJ#C8RJw;VjFS#Lb6%5?gJX}m?xa}DXBUN{tU2gLcjm;>Z$gpL82^uB0uyrqI0%2 zIl&b%?nz;sRBE#KMZ?;TutV*)(rJ`GtU~sN?`Ui=>Kp~ZNzz^df4~V8B8sz!q&FnK zBcX#M00USizmd^xc)WpO7%ECo_Lg!J7OrhAbpY-(L*oxf2T(|3YdLMqh0oIB{#d)z zH>qi?n|6PB9+~gE{4l&NUXCA=EKBuXeN;FFb9-D9I8zO&LVLvSA4ybY=|%M0pl2pN z9Qp6PVKM6aMngWWxDP`o_m&4I67T)8`wYg2vxS2SCnek9E(ezU%GPl%j~zDk+@)Oj&%z}z|M(u z@n(!@q~qL1H$g;+oI(^F*p84P^+NGtU8Fa|tP<%)M@)r5vKKByU_N-|0t)F$@0kxn zB{pBdS`}T-fh?iaYio5~0}uV9{{+EE)l6XXM~ej0+RKr_3dDBZrLrVSQtbyz<_r!T z%)6KGg@CdG5T~Zg;2+bCZLdFYnD=`ZqyHwwKI1)3p<^q{bNaQ009z6LF8VQ?*e)!7 z-wjo0)P{?z`0}I*h{?7n_T5pcRPmL*q(@lxhq;#I;=_%&@m>4}x@kr6<7@mIKcZO^ zWxg*i25u@OS}@F_R-0yo7)61r755WF0g1Bji3;J!ra3$CHox5rf}>DHqzjDi;y-BS z74c)#1-S@4X+y8@NP{L-+w2^2I}0xs_wy|-RQLZ9APAHouzgV37Yr?KA5)WM<%yYa z4z%m0T|pK{^TnJ`0`H*?#Jf&YuO(+3B_Osvw&qZ6oHwG%z+a#@dLRPBo35xT)D5fNh>fZLDgXc>eRDuM#xk@h93-4*FW0s?D`T-)-%5w#zEkKl?5*hU1>p^es2L!Wa8aaO zwZQ7L-#|md?|Z=8hn-MmIdE%{gk#NWV-e!m7-aFZy;pScd!#3I1;NB&sS4@*ypO0M zYn*sr^vR0hv9Q4QVhru6ocEtUf8a#HULNpAAm&|}mu@cwbC={n0TgFHyaLv5mDt_V z!TSJDVS$EAG_G+A7`=O(A)*CSxI;b04vb&~9RrqvzuT%vsn#;eJ`9Cs&o=NnB{$YY zD^d(q$Q`qtf(qF;1{RMhXVdkF^JnU`{>nmwGh^M`oC!+M3$T<8M>^j!_@QZky4`;Q z5K*VEhO186nKHgoTSR|vm5&-WMWy|&kCBhL7M?HVxhpKD&HLFHVkBFZ#Xp=ncTPOy z-1FRkD4U07uu}Ykp3l@>;B$)yn8Al|gW%D@-Ov`IwJ74&yMp8slHp#@m>J!D`K=k- zCn;6Y)r3mm9C1Ndj(MASh!e>i!#5IZ9mlHOvvPt`MjA}1v!L4t;iM2n43aRE&2g z_`%LxC(`q#G6Lfsp>Q`Md>$y$rADDVywNk4#0euuC79(fW5mmk{5!`k;keJO6fwj! z<^i0Qwe`TK7(fOKU8G8}wqal0C41WymLY}R2ho?xb<)6H{Fi(D>M+Emev(h#bNNaQ zP=kO2GcS0;IHeQ9PL54HUU#yn9LXedIn2d{yD>TESvrk7_2!}qek8l(@kIOAna!eW zI%k-G$>5oSMg#=viK;aY0Vl&cc-()LwrH|l5$tjSauqUN0HnWtx)_Dst1lpWLI?(z zlVv!8S0g==h>L4VjTDPkXRi0v+*S_VV4~VY1iz$uWjRx+9eQ}5s%ZaACmKc6X*fVu zy`tZdE}F2FkC6q;??pe^3dAp8KmltUmoqrt z!Byc@NUT`uJ`fW?99z z#Se$}5o<4$IY4x@sTp$A=gVdUt!n&Y=6w%haS>bAuOk|6Y<gZqH8I4p*9u+<$bSsA@U(?1pB0VCyq_Wi8Q>m3MkSh z<1kgeczS^Fid7?&z$3>g$H82ule?0TfeRd5+MhCHpGuWJ$fbNq>kZxQcvL?*&wZt?B zNROg=kI20?EV4KtokUO7R+GCIj!L+bLqpQqqnLzCjE5=$09_6RXL7a9V*@;o&QR1a z%t?RXlF29PFUbo}{!slWch{jn_;Ek>+|TsVHR$!q^S?9=x7RB+s5eWb&gT@Qn*Q1V z9NNoZp$;ZxFAB!lkUUYp)R<{8%`lV)fMQm9Cg!UhU~`1ik?eJq7?{!(hBsWxkGW{W zMPS`*4lc_*T>Iz9(%Ap`&eOzsBtmBD?+jZg;@y^MGb_2b%ufn~_24KA z-y+>gRE_4NIF6#SS_*^S|QyWZsQp-aZKowokI=Vm_6Z-Odqr4?R zUxnrfUkONTJpChxYIs__m7^`>oXIv;-y{q(+K!D2s7C6%-!vq#FH6Ngz=aN{TH>8X zxZjv7YVLqqzP7CJ;*E(@dRwiJNnaaF61Y)))PAMy1f1EEG6tkU7S?DO(PI*uZo-MVuqcS6V^41@U3)gHzH84XKy^0Kr% zYgUOC$E?sl!gfbzsRFRZ41Dto$1czOO*^uhDS8|%GYp3LdeBL4XXHl8A9%q~(`vlPhcppB z>)FF~4|J2_Ff|(yVF5SX^$B<>{$-q%?ns1M*epS7NXgjTb(ftCxd|M~p%aXW5Rw)# zOkn*MfuRTh0DY;Aj0q5=#V5eCWYKh@Ihy0!!7SP($eC-}8t%@#J?>4#nnHN$gm^cw znGb=y;Bk>YMP*WfoRrCtz%^Z!@k6Tb+38JtyH7$;`tDa2poC(K54+WcS{_&y-)qQF zvwcv|bGlu1VOKM$kO`SG$qiL-{pb;D6Cl+!j+wO&w@S zRCgllb~<8W4grfKzN#gScC!ry)nHGtmJg~&ZQSgEwen;rob-GRRw!8Z41Um?Q6hLt zgTP#}W3T$vD<4j}S?pSTsNvQbn!{~zaDG&A@HW~MXDUi@l?hDOX$`uZk%6$$=4;Tf z7pHsMvg1_Le?3qnixSbGsF&ZL##$Tv{tWXP|7>Hb(*lCF?lw3(y znL3N{C-XBe&7hUR=*}FYog)(3S*95I1sVwGA;PwBNvz+>qUA}NA}42wtYYCkgq<%w z3WVGZc_$~Ak74g|eGTIQQwJkdwX+Mj!zX;fSNM$h_~et^?ynGx)`6<)H)9@i_qA0Y5Y$|7)_If^Jcaynd)61$2*ut zi_?SAgp zEDB+9ac$7Rt;>3)UPA>Qc*LVS4qb;lMY*@C%CR;L$Ke68Ez0dkF)lk&nQf+zxBbj_ zF5^cy&97%P0(6X44}bNqjNqr_IB2*ug#D)XBO)qbA1?lDt1sJ?ciN7gS-mv2vfT%( z-7RbD{(_aFs4YJl5D_C@U?_8<81mg)=!u0T#XU#iLeJMv?3u_5A8c*GhMzCK(y8t0LU0*;3MM{q zTrK(BY$e8&Y*;~)_wewa8utpnkDR5t(@f+){+Ht9#bXiOetTE{ zp&_RAylP<|u?Th=>nKDiVAV8by}iXzTatkQrE)z)QJLJL{ou?@3(Wu7TF_q}^?;py|ESNKHLqP|wJVY$?P=N+jNM+6aIIVQx zs_#rg7Na0hOmeu$dEk0Mj}l83G;+#l{PdkL@}@x2hACTctB=?S>*_xMdY$wdU0nX7 zXNuA}H#mPqof(*_LUBCoFq0T{NL#YAG{m{(*F^nr%o7ew`OgElwsih!Oc~0nura=9 zSou}xfk01Cu7I#)6UY8Gp`s~mP$?lpKKXP$NgyIlm`*g>{)w)T&LP62oPltBp?gTe zkUEj$L(|5!+s5utD@0Lu1D13hiGS`gfWO>il)Y+~N!dANmq!?n{nh{hyDZ&&Nj1?= zJoNErKISq7mH11xjCcd>S2eXkkuZcY{0yTXNnv-S-DyjjuQ9tNk8xzVj`~9|+Fo6D zcGWuqztyB#+PeY**@r2*zF;>UO{U?xI7w6vQt`jpa+zp0yk~dOojDYF&9n+04h~uL zmRAQDKx6?vZyLb&o|btgCjn;M+)sP$Eiq(Y3=;+$C@`-{Kio8MN@Xc2o+isvc~%TG zLtA%EFc~oy9Q>J2?=Ombi0`{v972Tcrop4*>)1X)w+TE942J`3uKvE1W_>mzAIQmf zP1Vy#BUHAzK_0&E1PAK?AH%o}?2h6QXd*3uHuYlivHl9!I-~SFo^eeAq#D@?nSDOr2b7cKHp@8e@q(s>x-5^7TbKt!l;b*?bkHMdHdITs-fRVx1;3FCb zK4NAcsuJ{}<{;o8#IfSAr6Y!=4S*Old>jk#WI(eH3fhS@C$eg^4i)t{q6w-Bh0E~F zc^<7IYjOvg;PU-I)owl?Hd(67^PVnhmsa_T!gxhHKFBW2#<$Z=EMkHQ1vZz-hlu;h z{;rWVyPY9c+K!n{ik?uyXl(Ebhd_Fs+hFxOiBDIy!WMup#Rn3JK!@`3BUR)G-^#gO zAcDCLiPx%sBEf}rw4nt65byyL?S{L^?aW1i`56H>#F&mXUs1NMoikg&BF(UwewZF5)c|zkgCVM-2$0RG z|0NhD6FAF9V*ed2#m@SfF{GBjCp7bFyA3^2lR^-Cb98GMYH27MT~<|fGu4oAjsT{{ zCDbxDF4kq7GEw(`OI}a20;TV8`gf>{1fYO;B;zdaiQqo2rUxJ!+#(th7SyIKUMUss z1G%(ojU3ol4zrX9Nari=HAhy^A3HYdu+G8V%H>n3bLKJgWq#ioUBMNom!x2p4UQq_ zje)Gtel_dQF=Pv7i|on8=oe_P4%C;y;LFKjUMNBOKi1Z4|qWZ^F8!1B~ zRu+4Me;2TOG5K&`;%M)O_r*%5aO@N*WHB1MqeADG3HR}CqnmC;YHvM-w(r9w*8Z>- z6;rC_Q0MqIi|D-LmZ=x#O%-!X%GdP^=CxG!j@kA_<5!T}jWK5Z(RL2jlV}$Da?Cer znFzia+tgf6Bv`mP*Wr|OMDg`%J!Xc9{kkT@)_G`rHOLHrP2sTPUFBdjNA2}ov6cxy zhuG>)wf-eEsB)0WF&IXX%T~H__D0CUJMbf5&Y>Es{J|hz0<+PQ^+p*%#1texCP#)s z{F2o~vV7}We^bg8tL^MuKeXq$d_cZaA6dPlz5V*f zs!D|Qs>m{PffP7x)w!&lTS>>NtxKo-QI}iKDz*NX0eA~Gu5ue22IY`l@Uy4BM1^0`_dO>I&}wNalS}sR zQ)Sbl)2~#^(mg#uni^=lN1Odzd+g^-FQR#3#>GHl|2nb7Je}U|G^D>GJz(Nm9`=61 z{V>6_{OJu%uH#xgoS;Tdk$S^*!#vJ9*O5)ECvj8>M=n<};!PBELD^l3{^5qGFL;4c z-QyOjo@j-0NLI*eW)-D|ZPt9DqF?-Mgmk#A+2y)v{Qc0MbO>eBPr2)0{MW77As3od}SWflgk^ z$;|_-CcouY7idFSqD!Z?F!6RB()16avs%9%=a132FQfa8S9SEXqPiP4vMEN}@Y*Lj zAerFhmL*eeRWvrWjNT#$P!frKQ(o=d#L_%Kj0P0dAcpg9H6l=v+|5lcu(sC zgC^gj$YQJsXOj*|xRD3Cz-7uHg?hAeqnhXr`Tg=xz=VG!p_f+Kfzlhsg7~7_3`^~M z@O%^@Y_I+fmD_2@v>CBI!yk%RozplVG|TV@1s{-9gCm8NVXvtqCP_fzfy9T<1KCI@*P zB0LOIYryDJv5zBNW@MlW2<0)Z)WCSlc+*$Q&0)c0PXI*=iJiYeo3fJGk8h>;c$&RM zw%KkTmrXi8Y-bbO^(68zx~XW z=b2SLO7rr04XRIEhrQzYDw6p}TA$T-BM~75${~Rp2|Hb76f;rr2Vn7y|J%EIsYQnLSHo@p~_Mkg;%5=l%6dD@NB?yyJoVGVlM|((U z^lcs*S-x#S#v&J>7#zEGjWvJShdInX^C2Zrr-mNK;typjCC=x*({$>3yv8;xVYbDQ z_-$$8(>cB?gIDI=oW=A`rw(HFu%4(LlNKy^Z7Tjuqi~;AKN_vvT)|ZEuoR$Cl@REp z(IRmKMKP&n*e3k1bYy@wln<8CtXYy)^dbOvux9N`A3~VI!p7~yZccQ2O6BGr9G6aF z2ZSxF$kL(=5WebH9X|l!wI&KTPJ>$x0<&WCT2y_DZDi)RmjL^uR_~m(i!m2c#tV3N zkylQYRFlfPI?Lhj@9-dkCXpQ6GwE}?yvc+=X!n4<+vtFrM})Y2!KZ?YFih_qybvYL;#s`-Bm-19EHea1w9p#Ya}xR-uDe4dXnxGT z7YJWPC63LmgJ8}6UeFB5p5Mi>ih}m39^w1=o12$}zS!JQnsZ7$V`;6NkVIaM5v^XO z0jQyQCgJ~`^hf!`I93uUGCX0-%JlVYCaav88OrvCnjwdNbs`S=K>M4D2A&UTCnUlv zHv^kKc?GLOz>QUqZV(@hY&^bUqKR6LeA6_!)N`#f7x=)y~iA?<9Un(I9JbsGjRZ~Kuj?MX@8Jo^1j2jZ9P+W8Nhwq-0Ma^*6?#l}#lTb2BH?g2 zcLP7BOavSU*qSEvvE(aK?VEASo3D)RNbm{Dj&vhHAY)_Rn<>|NcN{*M; zI4T*Wc$ws<*qQHQlndmz*~1z$xkI=m?^#YU#flU<)KA5ffp;)z<;`jYRcBMM#k8MgC>AGwvhA#LD5j8A6>dSp&ZAqSW{ zA`-|fwx8mN{K-M8h%C@?)+=;?JbS*xnuwssjKS>7ddWxvAX8)#aB#P9XIiom>ssfT zh@w^GVNw?{&%eQ zi+{v+v=UkeO)^Q021`8GxXIBO7jV*(H|_NvagSmF}klsQ7jDmuRezZ#9$zt*ln}W8!$k> zteHa+UL@)Fz4C#g@%g>15SF6P{O+c-z;em^hj`5)_5OdUK6%`(zo!IP`22a*$R##$ zQtnIC&t^)FASg!uP;O`_$zTWyA!Y_qt@*#bLlXc0e#WriImlf#=32xVY%WFuqpHBA zNTO}xdHmX|eFQ8=8^Z0;e`m&-pM}}G0ySH#*K|uhB4Xwoog^tXE<+-zMtWx0j&fw8 zX<~RuXr#v#N6K`&Q(DJc_z1yOo=YX~gx|Z$QO?=FxPkCmeuTWjRBE`tf{!eSsf&il zKluuT{y!LqAmrus0QKCctB68vtWZ3m3Smn}KK~REmJjrP_HrB$JDM@oz9KYF(~zT} z!N5bX<08a}x`p^M{VP4lW}emEtpE55gV`Onk{;^h0Sq|A+00=b0ex!%IB2uL?bZnt zS7lI@l!};VX0vcG)+9w1AOO9a>Z zwF&O6G?tz#gU%7Eb_`8!Ewx-RI(yS^UU5-iix;wZ`D0*(y!Y>k(RnBB&;T zxl#u#UU3|LpJQRMgoO>rU;)n)jr*!B2Y~->amaxE;?63bzr~%DpN^qkmD_W{Pf885 zSz;2nr#SRl+yVQCHrs3?-BOs&4FL&o!B3NL91r5eok`m&k%S=#8cP`<2o|kr_23Ji z?ey?`5`a+MAp{Zr*zKGbHUPDfrR)e~wLDEq^`_uEGhX-eN+@bw_mMV%iQrqjkX;Y} z{5#{weROeSJ4eAIOGceZ-9WS2#>fpqxKw+%W*`2--c`p`G#!`8Lm0s{!_9w;wV9cqSRV7Buj#v zyI$uk^PGh)MCV^)Tjs;C+%9TVMMn*#^aI$~<~S0r$tAg)y=;hGH|(n$!%u#sK+7=@ z5>*6F0%H+#f@-eGF?fAw)OxrV(l7T2nG9$$p`{}KTdz`4jdStjk2IXYa502_Xrg(| z+gD9JSg5vC?+9%}7`Kihd!a*0*IupJF_6R48q(%AA&5xF&(KqB0d>#TurTHP=N(UC zsE}=ugoC;{X0X;%Cbx#inRvgCVnC)~)=h*l8O-fZM|dyCIrPzb8E`~0y(i`t2>qMx zu?oQ(-bY#jZC1U5GpAp&>avJt4KEo&a2>p9hKEaBOzXy9vSdLv`ke<=+Z&BAUi=gG7$ZwTHO_5Pcq3sY>`;9{Q)W zgkw+z5(2_NLpifWA4?3IodYZRg-$3FniDtJ;lv6X;mev4xR%9d2uYL$x491 z_|`0rB8Ab$Olg(ru8V0cTdWlYYN-x%n=5whO1bg31qo2)UuYVApcJ6fiM!zh*OXC>7L zmri5U-55T89lHEm0S*N3*W{`zHL-L>WzRE2=-{`qteabz{dK+#jtS&k)Z_&Kc9$B< z94fO^k%IuAKw!T|koZ*{7Ia9dQ5z)#I>r%aMFAXVyTV+dOIuz_rk&*5aB1VbCKca4 z<>!xVVKs;<^9BO{lsN7GD3IE<@I$b&F%g-$Y#HZBw-{_z9@-aY0reB0XqMTZ>WG`K zc*TGoM3DOD&GZ(wAy`6G1OKvkgxH(sQ`(E>FgWuow)>uE<56yX%w^&%LtFi|T+VWx zLDg8TC`(u{C2R->7`u%CO7W* z1c#fFucu#3C|6Dmz@2&G7EH1%0#aN5R=NzXN!_PG+RQQ z?l0f5^)q&8rx;{w-q#6ZnYMj&rBJz4Cgc(uq;q7SAg?4wgBVeha{!$w82^`TA}>+Z zm2Qv~HJR4s6n&OOJ>p^NFnHE6aQr3!(~ipfdD7@oJ#SPGLw2@+LNPV)hd+xePSDU3 zI1+W^VV^WM@?ecpG2WQ(bES@PUf;%&$WJ*-x=^aAD*cVNtdedJ^n+o!xRhBF<$c?R zo3D2AKhWv=tS*Ys%xyO3=8{KCo>Hg({80@imi>QkMf^s4XBO4$+*vTN$RbJBI!qh} z7R5+2fUYJ~H>CiLI3EIhI3r@H&HV!!*_(M$zCO>W&O7ucb*s4He$2>5_HE?&usSNu z!eeqQID%Ku`5mgxh2Vpo6|$hYxH=v_+f&*K{S_PXkfm|7Qo9RAvW^*eI8!88l3{ZG1Enz}`;F@T}F zjo=({0H|msxXWiYdyZs_qu>?@xEifB5EiGw;SylMFEe?(HEmMckn}wBJ=bD5b_asl zAQ&<(XurnmcCt1-nE^L|FZfS{-;jE3TlvhSDAxky@ksczTVE#RwAW-`jW{e@T!_-f zH(&?%Ego#XD{mhgV9-!v;z-c0ZL5Zg5N`6@UwuCCm-QmnfN<%L?D6d z4I}aUzh#%is@YQ6@q+|Y3Ixo9OE6pV^GtpQlpoRTl^^#%k=Q`mlxp*%l*9x<){35= z|L?O@^7ivG_!%WwDw6^BeKL!*_`5!RILPD-NG&C=L2<@2SJuPs<1}|aAmGPNh~*pAwpL>W zb)XJ4lP5YTfr`)up0_cKwokWwEJNyx@CPa@vl$Ey31$lV-?MM;G=%j>z+?t$=WaWC#Q&HZ#J+>WD|E^xYd5 zAbl|3goY26u5OS*F(EO7HV|x1g-DcV_b}!8uogh3xU81Z;45;$du-|DBJVl)v&q5} z?6X8m?5J5Z&I_wC9In;^FE=ZSFLT0~V=dh^{i1Xa5R6Ncs9xrZFj$gk3-?s$Qc0wB zGwkRU;yjT?z|j65%gaAKqw_Hz#%i_Tf?=vTT({C=&gH=~0_TBKhhT_!yBtmUtr^<&0p=uX;^{R`}QQ37I#t)&{tJbd&b zF3f&-kY>regFcJ|Nu3hkX#jm@_PfDX52faw~^Qa+usW@s2Zk-nh*Etc=byitaMtw?@Bqn(J z|6=z>GpYele8BpxD`+sn*C$RDa!YEB=`pyGH6~ss79ZjJKE+?v1Xe za^#p3@j0bO`{-*bi*Cvo;hi-w-4n<`q@L#yA9O#HX%k6efmB2~SnDs+h0K%33-YPa zB5D2(jv*lsQ!|k>WFblW7r;m)XCRWKxtb`%8zy-?AxZe=4lbc2dFURdr!bfZ|9){= z4Zg_a?)v8w>Pkar`?9IlW%zD-qg}XUu_PuzZRQ7VfQb(W0b)=DU|pYNRp;N6CM&N!Kby4flT9AhQq zk89g7{x&Q>umFY$|CrpNP|=S_;Lt*KKf+))B?Ty^{78MF@g*kCAZ_epJz9T#k{w-U z?`rNtU=|+DwcEjg;sISC+l7 zezyE?6xtU2XIRmW&&62A_PoUGCxAUZjQbJaO7Qqxg-OX4ut+Qq8X!uzB)M4&G3gW?@5!Ihbu5>FiZ^BYlSnFBg3h_tHKm(dqur1=!5 z^4hn$Eg`QOBa5_PuS*R~Kv9=&-mv`zRojXp)!DkRVAqljHtD}yNIVP3+hQ(wo=6O8 z91`a}htF_k^U|CE<9~*du*mfQD%qLN#3h@RyC-TBG%9UpG1Cc?n9Fat5Dn~IP<^G5@h6JjNJ z0up|*zW1w3!3hB->%mXVh1*9?H|Sv8>hj3FyAFAqJvov|_j95^mJpqvP9~sOAyCyj z8+e=KJudtbrzE?G*P_h|{i+i{{;``JJRbDM>N(N?%fb>mW{`RH@#Wr-MWM7oc?JIC zB}SjTI27+C)=&DCOt;C}N$sQYhDg=f=q|acJNAF)h`wSoyWCclrb@R}A$Y)H6yYs7 zCK?*P@spSfD)#{GJ{H?FxskzUByQXEc>>+Tjy!elkywrZVuFW6>-p-yNhR8Mm!wPU zdc#EPsBif!R8{4p zA29*(PmI)HnzE8lQ}~`=<%{EqVMdDZE+JarY`iV%2xj?%o|^SR$!$5gSdNUg3A-G9 zH};X;?BWBj0_d=a9mdcb)a=?;C}-0`N@Mr$V;}0-2o<-PKBBs)PTl8$o+c0CR+PyqMx@1cdLCS)))4Twr@Gd7B)Q zOTsou0tDSuyK|^db`e2XCy_w?`m=vkojq>+QeRkR(VA|WDzt26!Z|eCCrc5OV(=Pa z<=tu1;}FK0Z~#RZS9H20{~?RrpBjFXfwbJ7kHn0Rot~YVc4n?saG<|Y$(kki<;=PL zGOug}&9kk`$!!GpN9w3>j?*!vPixk4C|8(i19j%tM|54<#&3_?$iglXv6T6t-03_ zWXuN)BGcnr4!HOGl!{IR1RAf6jPHQY@LwXW1SvTd)rY$HtMO@9vphA@irhS#^u9&@ z|JAXDTMC??msWk}WTmc7$p+R&1;mn&^Chin08X3Dwy}iyiFDdX_RwekV&z+rL(vt8 zi_3eF5k+!9h#bpCWMD&QnvNNUM%r)27jE<5{s@}zu^&dfSTvg76@{rY^YrgIlY+Ok ze1r^)Vcn<}8_kb#I8f{Y?zoI_JLn6k$6C^C13MRW#{8?C3lntChi%Z#kd&|Nb=i8Q z>4A=W&_#s_ddJVx5B0!lYbZr$YwH4kwWrCvHji)rR3HEWi-~c`iQr)&!71G-x+G_! zwgwP((@rIGjkCdu2-ab&nDTdslBtx(28Lskx&_l9se@w=H3NfbVt0VYgGr&GSJ_ZP zJJlpXmFdE=)nUjPJ}d~w{Td8TxFlM;UlLLP@4BD|Mhc;l9;*`~k5{ zStBvCa>Z=T@fqv=UgWR$U>r!UBcX!TB0QcHN_~~W_5podMC`m}eAHu;E3If;U+*UF zU2s`MKX?`q>1tydESVE>U7m?-xaHiPxj}YV1i3|ws)|hvb~%wd_&*;nB9+ou8ZKf} zP?sm-Z4Sgnz%rADqf0XQ^xUwq?%)QeAH1^HrSl_kVnfCaMBAu6mT>beMWbZ}Kq-hY zT8M}skg2>N1YICdq|jSWS>b{>0759Ew-NoN^QRfJ<1m%G>Ie|C!^VVSX?^u zG^Z7vq8|@G8o#INoC4WIqXr5}=IGxG^7|H9{We#SY$ua3Q+xxdQfhZ5TupxY+yX3V&PA5sxUc_~|_?8SEk|*6wGMn(06g zQ8{4d4G3Mo`E0D?i((?T8`=q@$EfJoyQVvm+-zHr<_NJkCYQ(_)Va6C^0*~Ax_?}Z zPg_0CZJic&+tcO(d5|-dtO+YOls|;6m6m=rRM8MD!2>o+)5ajGe=VXSWnsRn2@K5S zEVqSg(eDsHplUkBX^Axqv&>6%@Iqnwq?0tjM<6({LTgRXoxqOD4KKh2)H*Cu}irrN+c z900JP68O6X?~CNyNOg9Dy&C5oz~~zVF*1Md!Oj@w?&!Lrx3Q|eC+^HjW5?mVFLz9( z*W;N#p?@RmAJjxkZ33gI9uLydH4m}$^z%3n&_=>EIs*){d0;Am-!l$~3$2E}&4ds1 z@)WN}Rtb8p2T;oBhKyl<$nRSD)U78na3!45*)M*)(d>q_9HgZwabYr{2_qAX)6iaJ2jbqpws>Q;T%iE5Op~;|jIq z!lR`tcEp`W%Z#jA>X!gh8z@ma;?VS7d{{Ytz$zRtZ+n~_Ra{a?X&WjDlpfqH9{pN? zYUmss9P+|$j3ZLmS?Hatf-^4vm*SRQvOG=R_Uh4bKNT4wkHDs;)hj? zk11h)ZtRJNm^XXE({5<8c)&U^i&oMunr$@DIl9z*A~bEJD8D;0;U8yD1)?HL`{=-9 zpcN-bqOE~hf(^W#21DS5ybNaIr}&nYiDx^2fhKrkY!pf)FQ^t(Dt&GQMWB8Kf{$)6%ldzd;^sC<+Sz zw)uLr(xTw2w0Fgw+3&}kjmFRbL}NJGi&4^oK3591AZs6VU(4SiZ0iGHJq^F5Q#>LH zvvd_W9A4WpvIAZVl}U|}Ja!lA{0=egJyAafX)_%h_tuKi$dAR*q|wTC)ur?D-$Q`d zsnSXwb2N2D%J;g#WXvsi9Z@JKQ{KK)JTEP4SS>4WnfH);6H-Ywhae=m88S~8o(91fdO262|!VJs}ByR*z86#<4 zS*iq>hlDsn5cIxG|1d&u0O4|q{=j*zNgm5()0F8L5M~x`+Wf_}bE#Un#;-lXf#6lA z$1H&ryyz70k>3M|tJr>t8{b-e8)cFB9>6>h%s=35D=01*4;4ksy_;oPR~xXqdSlMw z0W5LyQz8F@?Evp=5oeL@Fy3VMp6^oDQ3RIbz)V%gY3%V7p$4V9-93N;116SThg(6s z9=hI~>`kmj00mH-7890Ok95*l-}7!VUjV|?6^?I(enq49`H>P2nCl`DJWAZmWX?n^ znA>-Um3-%wfrQ2t);%?oxtQwF6)f?BP~SmPao4Rj`3g7&KOd$U8G@6L{Hl*I91_$`p?gV$XKRGQ+^%hJ;(^qU%d(`(@c` zn)FMKQR{%subY2B{gC_xu*~^>2!R zhD zE=k8N1-j)JpDPPHP;9!BaH=k~+W^es9hRZH+P46km654fr=+j}7)xpH#bnaT4OP7~ zd?!?z9e1XsC?BRPre|i{1xw>co&sSW`z>N{kR?YC#d7&zXfqw;L?eozZuu-ORPL2( z@;RdSrf!tw{8*%(j>!~@Mgg4cBm+8UVtiXL*i}sjY5s5CN%jVb{7(Br29X;K$OmoB zSUb>9+j3h5@)AOq5Zz3?@@Kbx*BA&w`t|Qi57sVkF|$Udp; zZGotY{%b?x1`9AQ_Lzt8+Bk4y1sD@zGR}0NKjt88`k#*9@uR2jY{%=+JHi<&bod-z zdg9fIA-pnNn=zXcP;B}&^d^(5jfo~U{ZMZ(81#m-#c1d)N3Q6r=xns2b1lozd4|rf zH?6l9IuE%>KczE~i}YdW+(hRhx!N?4nXqjDiHl7?r|68*8AazHoq^zYX<4!e(reD@$*yN)OVHyICDq6&DJ{i4y{9PJT*GB zq?z9jn5L%Gz06&{}7#t%5=Sk6Yd=B*=dp?0oiBhbUKT4AF$nRLxfS6hJNh2eNB zgE%)Pe5anT85qnt=Zn7R_#IDg?8V*9G5R!#*F3GSB+NM+^9~(9rgrEXBwp!t=o=)t ztI?Cj(>ytR);u*|%HcW91ACg9?^1MfP}N&?=g2hD!Kh*;N&T(eiZ`@G#eatDc#diV zpvPRKGgj2Ux#XR^$L5?f$77p5#VIbl==p(0qunop`}uJ%zYfT^eJ4AKg;@UGzs_Wh zV8fMEs@AVFoxl`rf&#%iyE?Efc6}RqdDGaP+$9&WhUal#3>YuWkP*hPae8j=<1h|} zbwA^s{Aysl{AynK8Sms*BcskXeVdJJ`lTbAzSon)b8*@vi$n$3ojjC}d&iNj(#w|D zI+4j1ijH)l{=RcS#^54cgv7o-i)8DCzdwy+EByPjCR;Cme;&ye43cc+kS*8W_m^zN z{FV9p4wEh=$QW!iUFe&BoLg*~A14j={fUK)!L=Cz8H10e3*A4?5p41APato({QVi^ zE!N)~e`)wz1CGBo{QcQPx>|o({>JcE^;d?!HvYE!UHuGyfBr~UjhVNAjKN6Lh2rp| zWU}uUK*r!CBHofQ+Tv-oUSM8ebgKpP@-koZTiOPFeQ@ZT zMBg5LZ|G};rLT*=Gf`h1uYrOZHAENDMc1g|B8s)68hQqOeOCG=aglzDzCAYdJtBj? zDt&ii(0As9bfFgtxuQSXCTzO5@XF+he#{ASOuFQ}8_Uy}blqL!S$@nl^!D@CU||V` z_Iw{`G-k;78K5?!JqNha(A7Vb$w2setze9-d6)YS5x6hR~0>X)-^AgSRdQ)e2KTP(BJT;o;|Z?&N*K^*E1Ho;by|X0C=v2)CS^2H$5k}%9NF|yyT@-F$6q;yfJ%vEj(KauxQTgpHht`bjKQ?&LZ!>Tj~I$gx4^NT zQosw|4kx0oLra=_BUkiYntsUW+PCNuxeAtpojGSH1A}p9y|9%l>qeG6b2#1yf5xu{G0a;a`1EniTPPt< zj<-(2@e~GO+4DgiPan&?CB3x-3w1NT8Y|=Tp-2xWJ6SBT=bXCkq#=xexah-&9~oB5 zuUPvi@OCcb$ZU8re5OBX@NIlGoRR$7+ptB{p#19VKI?Bs0n@?GA__K( zF0TH%j^)iy2h`i}bzc?yldsPrUE9|ey@m4iTfBAp`m7_}_b7VPF9&P4tW7(2q23iKB#SEcra_P@*@Fl@2ywXRA~o%iW!hKg>d+}y+23^5 zo?O|H<)L)9`fBpu9dDt+afsddt;}0iXXdTyEooo4kYWO(z*b*MOv>qZu`_DQ$q)YS)O&2pu&Ydfp^R6}?;-ZTk4m6RE-}h z#or`p(0CvU90nD{T7yIk14r9)h|%-!{L$?-sU9Pj>O|9@2?IYH3j+f=tdx zz`+t_{7rYgE~gxiuT^sV0O5k0>$q`6LK0ZG|LQR?&`Ot=lifT=cMyC}uIifF4A0KflF=PB^=r))x zbSAOK>EktsQ3P;wAfHX&fjnp?Aze;iA-E})``Y=LkvquE+4QB5Y$9tC>E?Lr=G>k8 zvLRo#aEBagaQU<4%cehLkt~u;x;;TeoDjFf&g{$@u}SQY4dRs8C3a?gtP%@kX;z3+ z;;oTeGIBi}5T}G&!u8O9JNsA2&8Uk0jMI^U3vlF&Y)YRq!X3d$L?)m??62QD@AP}` zWf3hl(oJqopUzPl$8j7>E-9+9>C15UIqtoVlVSqlmacorL?K8vbTlBN0%MFZ#u%&6 zA6qtkjPZN;tC?XVjPAYncHH(b7nd!$yn#7|UtGzU8HIESXA-$$ApyoM(na_E@pRnvn6CU4H^LucKvFmTvY~s9H?|DgGbx$`DUqfW#QeJrj%Cwh{IG zyl`Z+8MdJjVT|!iIA69<$dqBz?Ip+fkEaJ@X%tH7VkB2DBtwE7l!6!riYdbR;0+^?ZFh&+u7gBCwEg2juIg9+>79uNjeI%cEvb7+ z%2lm2tQ_d(`&X8YRk2n&O#ZmL%js^dwK!~$FAVVZ54rjwS33B}0R(UqhulAv=^pcp z2Oam>d-tS>vlMa1y@*F4*$c&6boHiXY+=g}?qmY_3E+3j_suxJTHx}QH!j?CutXL6 zJ`P7oG-)<1vs7KvmTd^`y*M)3?Al-(TDIZQ@t`k3Kp`+P+eXw$mJMr3ljBF`1&hgy z;*3nt(`V65%b>}+2UXGU5riaIFln;hbe5`WL!SJZrs81BL5lu^w6w6W?4qJ4;x`21 zVhthWoCEqpsSiy;cj%6{Mw(=#F=~YF&?Gb_S?k?Z{grce5pVYut!7r0s~i*@!lxN~1kZ#=hb9 zk}LW+;J69VHvLV=TXqQJ9_f<7#dNyb{DFb-A&9v|8o@}K9Fjz`NY-YPO`pysv&sC) z;S3e2iarQ4(ZJd}3^zE|}8@KFQ= zmJ_5?G+z@ZCY$*%G{W!*8iJuOIpb%s#4nmJ90GYHaAdJ?VCa?j5fQ8<>>72 zAnNgBLnE5W5=k_IwRAxPS15h@LVsd9Mv@p+ac4(*d~lGYAwoiok}$@&$J3WBoH$~;kmnAxu)4Ee)sZGq$}Ux zJ&pHc7qh+Gek|<-NL3HoX%WlF8}wn^2KrllPrB64x&o=~pMV~sbeUAL>72AnIX5 zyZ7GKec66*p%7Qm&?v|ZT7VoHKEJ#1I{Z>OoR|)QiRx+Op5T@c1tEiz{0j$G6?~VK0SFZf?sp|fKtl&KKKj$ z`4MD@*ml+tE~p*R113k50NhDa`-suJzq7xykoqF52|RY_uuOM<+jKB$OX>66$~4ZUU)4`ID1J zz0Jv^PG%<$BP23kbC!y|PCw2V_%A{g?oYl5jSHa)7pnYl`jfXg{RzsSo(pZjln1{E z&5UDCMo}~lBj~W^IoW_G>oTgczo`J89{iL?JrbLfM|qTx2ojYaP(I~tP(Fo-q$(7e z4a%cJBD068?4yK}MpgDtT-H;vrXMFw<%iRk9tiMFFFzhPCmQ=;sKSMl$VK~-W)@ME zeU!uq-mRkI8vmFBwbe+scgHd0ADl4Hx*Lzbc;l6Qyy|f=a5`cYk$U7P5@`nray-^T_RU6 zlV}#CioSfsWR1;?#AGx{1_r>f#y0)&DzWL)nscg-w`wSrm@$;*myM;dR^4x!E4ka0s4>;PQ zJ>Hz0BDY0(h9rP1n?4TKjS`@yV6mhNM&8*CO9qbBVJ;s~CGT-=ug2(C8U6aIu=)4C zwKy!IYpC)A{`^Sh6Tu?|+Vtn=kO&To(9Ce8KRwpz%O62^N>h^MKXl2SFN5UDXu8b$ zK4Q-sNzL}0KWmux4?t9!8WOnxO|9WXnm)i?D|xXDVtXMHplib%b4IqQG={fB~=uOEOrevHAo~Okpxm7bltqU=8QA0 zwboj9xVXbbI`fkP@n_q1kXfLZK_FB`fzX%yu$^f$_g*7O^39-^dC-@PaX4WuI^ZaY ze(VV1g~j@zH1cDyHtlL*1{b#Mx);)wA2nlIrV9mc=w5#Jy%8)LKl%8;j*nRbeNQW( zyIKb8PR?+E+hfL51l%AqV>}#M?!EV=203H$QyLH;MfyFwl`+;&bwF(i5ZPUJOp_R6 zSWb`*#u#Im+Q|k`S=3r(-z|lj+8JQrl zg@uF05mKN+Af_)rW)Lp+aFKo$K$Z=ZHv}w4K(Xf+y8>LnHH?MGm`;-&SdMIFq{)#H zt*FTnjW(o4qt%4ez;OcAfP%8n#W*6`!MYpnh&%Gu*xhhR-WoX~4v9PJZa5=R)4{!W`s?+YLK4zQ8l_}FCg&r1;6A$F*Op^| z?MVIfq*$JaAZ3}M`AiNBRxKhf<4WV8bi5u^|{1PvJ2fnPQ36tUujBAm#D ze2FUoS|UVLzE$y(~qnL*5b~a`CpsK+v)Tf2CMx6KNjJCQXivXhltqXfzlpz;OZr1*L#! z#wLzTHap^@Bq>NXd#d;Wq7k`yB~2V4vQ8$7n>A%Jdz`WirgAu@{-Bh^~W?F1m^C7FuRxfOeoh0Lk2YugpRQQ<$;o!%(2S#D^Vrpf5g#fP%muEI>Y3 zSWu!8D5Xv*rIb>7U8IY~rZa5%Ei+~b4v4I<>HT{{Q&y3x`g4eF^Tk326@(a)+SgQa zeJ>v+U8fsPUcQ_FK>0Cm)Q{Zk-b10B=oz|Vq?=+Sr zlN38$b8eZD$vNj18)Qm9;&|~PZ_xKq^LJL*Shu7WOt7=ntC0-g}L}!M3sQ`|v#MV}@4?#w2*vVB#e`?P3cEs+c)WRTjGMz4zXGZ^l4e)Im6l zl9s(i46zu z-TlUW*Zn5#SJQDi+?&2%%|&%FE>H;5mr#WG{zTFh`2s^f9`eo)LtlDO0LYgFNEDqx zDb_#fsi|DmH&y9U|10Sssg32TzNd$zwn>k2da3LF>q1V`*c%EZT|PVcMllY?I61Q; zKDD2no+MQ$+4QlHA&7?5=Ie(Tqu#%~aO28m5o6v>91aDut^7=!i8FDAz)=eI@R3uO zi64q(5)Pl&QI2l8MJc}0wp;;IQ;$NS{*v*}5Y$gqp!;-pO2JYLBf3d~YMj)Q7Zi$uniWMUwJ%uRgB`Uj-3C}{B+=4& z9}aKnv`kjn*dhwRlsRXeG?Xb|Y*%E=xKXXO-{~1&&8*h`jIYMRaKEfo(nW?Iy7)=| z`H57xSN?qg{|atG4j4MaNa;Ce_`-#+2O_A4tP~h-3JL}m6c&qe!cyZzqnxNW{^M7n9 zr6YLl8lP8Q|prA4mZ;5JT;(E*5#an57k$R4SVS9g<#g9jlq-K0 z9I?f1`A+PxXq|T2Tg1i#iZv^<9>L@ZDR59GPe?&2_56hpENyQ|+cUH$ryp56CFNcC zF||{Er-(bHE})RN{N+4F5rl07YL&-ev!krcnQ6ezR##$%52ffG0j2MiQsBy9+kL_&<%E{|r; z%eMcHkteo)4&!wOv3?R6Vf)M7-DeU+umPi54M_-C(2TRF$dM*mumUCYOu-}uG~=v+ zbo83wf!W=6UrpzI;aCK=zwh)Yg9qU3=7aO+w{TxgDHNi1&k~9>0LSNEj;PHs(ZuFB zCZ4dl2SHGS&3*oAxYXR+^n&N=6tbH+&OSRhH45ccz5?r%t4KA?SnIxmci zMYbJzN*}&T;RQUN7Y!1Xt8tiFjl&Gw=84H9{{*a(28OEYvwWy(+e+aMKqQb9l10{9 zORMo6hL%W|6{O3)rLo$?&0snE>|%cRoz+EHRDd&ARVryf7<=vxXCU4}nlUko5Q!v( zp)V!HtUY=S1p{!LNI2A2>0$eqUd68OO`Jmt{m4ZX8i1qMHjG_674Gf*Tjc%?Rq)Hb zeUUA{nhwUEaqmT1K?<1`Kv01eOE>~el}wU&Vu`mlBCLndL|m+&BME#8^O_^o_Zjus zY{J^XRrHIVC?y0UZI*|Lvx7*aBKxHXoDRspCE0i1-BAxE1xUYUURlzV#_H0BQ3L6# zs_goXBwgFC?@8YB&nfUzHP>9L0@42rB*~D%YN7{K?t>QHo>lfL6+H~>elIZ}PE&0f3y>>~dbx&Q&hukF3}^)TOtDm-j&-x}R)Z~G#f)4n^;dnp3P z2^87e&+UB!=pnxiy)TFS+jIJENnc8z!!bx|Zv*gtd#~=!zb~tB`NJPhU;4}AMgynP zYXCH5?Y-4u)7%5u`K{jc#oWv~NNRg8H!pM}F8U4I&GYhjUNlHlczBQJwYN~Ehv|S?YtqHeznVO|(BlaeKYI&j%|%LIGU39= z&S4OV^bO#CJ=ot~g@+GSddScH_LmFgbQyz4qfcjIs#O&5BLa8Bb1+4eBM z{tPEDH}`VR2{aNw(v<%6BTwlRUI2*$f*`3MB!>{7LtNy9Ar3Pz|5h~)GZ1GaHYi{E zQt3@^Q+iWK1W7KHJ|!el3dNifbG8&Y{ieQ6Z62C`8gE zk*uMFD)~{q2u(_;l2P8~lyl0bo%C_$_=_*Vg03a9; z2!#Ryv2aKr$8jio6o3tVkVa%u7zu;1B!_VjL_rjUj4=io0*En&lo_!ZJ*pb86T@Lu zbtM7rfpFzOYy=P5gJNJKc<|smmd4N1nr3uR7La@BKjCgf_a2-pxY}qidCL$sdMg=~ z$>J21!~$a8MJYf11);|#jDZI#*j}U`(G8F01gm6J^3`;?QEt|SQ?YMhPEI8>6#Ewg z17we%w0^G?3;*}pDkL5ig*o*}qA;idjvz=LcvmJce`SRl(ZR zp-P+}w3X1XgaUGVp;mJIG&&omQFT%Uf4n@r=8ULTM~LAP>9RUhb3gXEiNI2ZWzcC_ zS0CJzTiR3-qZwZv{HeFnSE<)hmn)&K%Qz+`n>0)x2?aA!9b`OF%R2}e_lC0$lYyfQ zD3l9-+*|}5JQe7vwm*xB6GoS?`x)TO7IQRJK)JTEwj~+?PZyJ*17`Ik^=xG+$z!t) zAv|<9;$ljGDxx|SjyNxsWkQ?JkwGDk!V;sClL^}c7A{hI_pyFYISix+l@KjJxpCB* zE%ZY|Sx-9_1B4d+!&?IpSCM-G@Gu*1IHWURFM;|~|MzP^)iNZtB&MzoQiHdQg%Y-7 zIc}NwO^UG_@pNSk`kEp9CUCzY*vqy1{xRB5H|8H?Hlj7z0;-h%CYvJUm=de_?{w~Wd{ z<0;@oC>N&_wAELw#8-<+*TPe3`c5B9X^FwY9lnFaebV2IJr#c?T7re61gLF5iML$R;u9qeDUR5k7oRc)bU<54E{dJf^v$@mCQsx$43qrHS$Rpk89 zC|4N;qYhTIcjm9KP&-)@$ja}J{TyJ_i8HPu*!|7Ve`0p7BlywMDDXjw(?yZWk5d)_ zx98Sy5;_AY8w{A}H+%HaIdE$9&6oSfXz?C%g8}Z3LiLH{$>|N0**HwD%ppk7zi6i% zOSw^s>`GY*F2Y*hJ9wG64^+|??f{njVh`a{Z>jOKgk!{|iW;r27;ffDVO`hITPFj8 zwj$J^M0kR6K@O`WcMIPu`D*Rr@F7+A^DP+!>I%~me_h@LlCeOCRwc9e%5X)2qF&Pj z8WJtvvsGCjEU$ckQc{Z#-c%VF?-d=QmB0=@TX?EyU_8A9I#xFD30MI2s+?FW5Ednv z=al&To&kymUSwl|p`5(-3pfY+7zybTZf&*e^tB&oNt%39d1z+nzr$Dv2hB5mq8~{j z9U>pwp)WILRys6oYcqzSc^dr>6yh2mrcfo5@P!^1u&5}CzTH^WAQUn1kqHhwD_jzU zp0(eJd=CI9#x$E1;Xsn8EbVu$uwmhjQWXB%lA~BgnE7RiD@O>xxFu&rNH-TzjSLP+ zAy+6VVRKwJN_EIy8`<$A&n|D@bOKuW3^v&gKR?|s9J6AX4Q;Lm+GuSd77XVQwvtGT zNphUx5fkH)@Q$cnRm#fWbPETnSO_fnV5$3Vf@z#ROTgOPqt%~IA1`W$b0Nsd#LQr~ z9cgPqBc>8Du%{0Mvh;hurR>?0?_AEo^8_G@uwtQELBZc|5VTZXS=@|S>9Oz`2@b7D z=bl*aDLR?4uGuL4Is8igHrMt}qz*x!Z7su2lH9oMGO@tdx+ZelT5e8yrHi8U(t;N< zbIAU^4$ix_Y|l7f6)AyT_vUS_(zI_osDrM@dA>!bh~d67Cx3;`_q{2Zt3-0g&oQ}h zZIf9K@wu{)vnPQRHb-(s2ot1(0A`vbB;TkJ_j4zr2K{9d16+b69s4KMw~NFJKKB~# zf+aM2D4x~GU=0dC@?cfrISma6i2nQM2w$EaFNi7`!63ZgZBzaZ3!kBrDbO5;Q-?9~ ztSCk6^jl!qTqi}t7ep*aY$0ixLq9-AG!t!oz~N8of8u8{Cs!2j@7cFrlswumT$`}A+j`Nn{IG218T!6mlN+++Lq=#*iswBVP>bKl3L810M zmAzYFiSwRzQCAs<04Dv%5dFw$~KuL?>BoPm^dbxQ0g zrGYzj9X#f;mbU$S&8iu0X3ItrYOsAb$Bcx0kA@7oikmbII2>3^4c1PDZy>A5ppI+jl^kZ&h)j>iUhXllEh#gu1RteZ_SUGN0tf zEUqgJQhJoDGZ5t|xgB1D3diP-q$mI!CAh@Zq7nu4z$u=m0%+{yUF1Sv>M8$teZ(M4st;@TOTGhy&V^dl)opsm z59BC5eGJC`79xwBj2-|oP!}iSXd>ni)5AQ#hB8%T2_(^f`!eG;5fb`XB_70FC*M=+ zD?4Gmnh%HN5w#kq3hGyGEnBk?^I|k^06S1L=riEN97=S)u2F*$X@8$IN4s z(7IPEpYA|poLAXeE+(Rpu$6;oq-W`eauzFfE=>^3)0E@%y3GV9FBt>_^ip|ze6qscT z|Mh;E{)_x9fXT>{MjvO%yU5x*vMW_i(Yd7Y^4n-glvrWq3z1<2>6a-ZF$6~hhL>%mM-b+_dH&!$ZP1X3Q+ z%Ra%#{J=v91re*cV4m})2(*vW5F_&^6+w`R*P#L{U^u)M^qu_@yy68os9M83=g`#5 z-m6i*cGI^2Q6^_*x3TH>8qO1U#7HShwc83MX}TFUNm)+a45|oH0*?Z+ zZF3E@6ovHM;R9;y6re7rg?yg;izMvZyw<*Bx>yWMBR5F4l5$F0lBT@$z&4^my*qc!ydYoVd22sUcu%8tKi2kJaN-6~yf{75+hKRyx z510X?!VywW9^7)9D3=oq8X6W7FPJViibX!bo z>*ivyMo)zVzPirrN{}oTsz3ljK)t_Q{qDq)vZFTP4++G0ak`#0?SUt>&Na?d+(QH- z!wi?gy)|!LSU5fx&q50AA28mB%gTY97S^0v2?u@*2EZJO+cM~OheUDTPDb_g9nuLS7VLxYj#y%8!Wsd1w_^47rUu}zNWbXC&tGO2Jlwi3 zck`|*?_m*0@uGRF#o4i;Usb-6mJr9<#|N{ULS8V?E1#zSpZ()64%R+ucPAWQrSkj* z@7y)@pZYO6;a-oP37TeO!-VpO1Ww)v0A^>&$wn~bF?O`Cgm{r^O7W+^nnIl;N$_Yg z8;`NgV&`fu^DdiygUGYL$7^r0{*RJ4FJ<;~5^vd-o!f=!_@RzZH_y8%m&r;_9|w%M z=w()bP4)@UFw_HAhVG+uJ7KdBTe&T14R55(f}v@LI0Ug-k672I&edM5HEn zCKeRHy&_+NksM+@%H>eX9gBJPst<6>qTyy@^`6xgn!Rpw&%}H5nCQ}m1akIdEUptu z@kar!2iIXSDUNQXA;@oyQc(vOhWm*6z>?(IIG}FFFsNSK){L6o+$f=u>)#N>icVni zuYg^J$ucU#EhnX@1~5CFJimolb5og|mGdyqK=}jM*=3aZJAJ>>&Lp4|NZ6taH93ed zF;z7I#UY1cKye!nG{7C1-gKFi==ro)?XuKOzVakkheo^S2%6HPR82DP9@p5AK+ryu zQ2TsKE<+N3n0-!giYdfJ)*E*wPk@s+zDh7vw0TjQ+57w|<=oc_$|oJ%QV{a|mqiY= zTmaB2Qqg94?(e_OO|pQ^(u+LhoCq(~eXmkHY@!PTe;*EPX5gT{NNIIOlp-q=!&vNesFHpJJPP8OkU9BL- z{3`AUC8T$R#cc=Mtx8JiwgZcozx!qeY0RYA{kQBu%*3AUXyOf}L*Wz^5J9WlYD|JiSMq1&Bs_lLVWzo**B#ur_&4aZ)o4#x|4%q|=@=q%qn6|+X*VhzhEX0|!>4SiKxu1jVEduY`r=p~#Fo$;bn{OaH} zpa$r60&=wm=Cv}4eGYE-CC_6&+C=&Huu|hA3Hkl`HG=qZ6GGf18~yaumLL)Mv;RE> zQ}CXarsKJDU=|rc_iMsS@8ab&yxnfB<|7F1Y*)JAbaXk6Nc$=(5MlNVOI51g2n$an z=n08+pq~`dPG4dy#+R-1^3`M>xL$oyIj~pBg+72Upnr#8d=d<|&B_9|uG<1bCa^;Z zA~%7bjD%HkZ6$Q4wA+TT*vRlrJLV=642SG?&M8PvU51 z^|t|EFff!w#GSaVv!_GjD<3s4D;>Xk*oY4l1$7{4wcDT*P;5^pN$!M?Iq9D^X8%xj z;JxdK-$s^HuU~bsUPVVdys@&1#{uQTQqpVwenIyQ0Yy__DD=>%1yDn!o{&fh9zDx# z1AFXcAsDN6wp{?j8??efPR5h6BKMK2qKo*Ko>H%BbW3sw%M zj(PrU&Nz*oL){8WzW z_e1Ly(JNxm`WV`Peq!kILz(1K)>DHr5o@Fit2Df61fG0fXJKa$BvxjBPP(JsP`1FO z{65p*@xFNa+hNv(+In=uj)^k`iP?#Q8a2{k0ge)QBP>@SL1wZzH#72NzUO#{BEvi0 zxF@~%{(&{EvgA{#pew;eyzG70PTgI0IPTbv(q!&50gI~+#x@A8HZc<@{on{8SBv>v zgS{pcdGco%$cDZm4$DF_SotMl#%bh!zf9s73zfRsyuf@I@LlRg@rpG?rcImKExc)A z*U|!OcYL8)0sY@fjS-1r{p>}cr)U926qj{53xZMD80D=Y-dP`E0+F9z5os#;VAng9 zJI+dWHwOP>nugq(G=SzGgrw?1f38R*u1cC~6#St=lH8=z8pu90J=V!Q^}*@C&3<6* zz|-7;G+(Tlw!rPp2w89NQg-v%7knm?+f9~S;OZcnCb~ezNU!`T`eLsj&&04k{D|(+ zKTP&mQDoaZ4HR@A`@E+%?h46oF-t^;b{OUt&o^Mrku{4P86LnPovT!^(q%1q6BLwK zHLASt`&r{T2%Bg`Y*e2Nva29~>Si=2jIL>M_+yr`_Iv5RIhI@BVCv_ker9={RHO*@ zPf`(;U1H|ZB46>kP>u8T2x5@!fJ_3x(7otm72-dUjTld^&A>*JUG#qp0QOZEe=?o1 zOwyI48Knx%X(9YwX8lQf?ceFS(Jd&$pgHH^=)zIblGu`a)%l{)y-cE&1|En2XPz>u zVH*9LpZ;_TZj-4%uf*h=<7Ag+E_a@1L!k*CEX{@kMt^|H6@2$t5ugyJz>I(THljf*RAr}1h-Dm^N^Gv7jBF}_ zn?2Kj`c(2*;By;rDTl4Z1YOIzfjn=XO1O7A0-kw(#VdN~D_v2%5=iEf#NZuX;p4aj z;0U112;mq27JyIr;LkYn489UBkGIO|2K18ssC_yVb}dQ)DnUxQW+U1l{NffNpt4KK zVE?^|u?(lxk{K-y470;mmgB3@p{@t*Y%-77V_YGF%id1YOWd@#NqjM;4;m{&kBQZN zjGlvX!L+Uw9%*5Yo$kco=T`f{Ur2*Ccpy$#JMY;b;8V@hyyru8fR>B>r-OwZ`{St} z-4>gCS~AiWA=72OrgZ(^HaGMe1zl%7umV~lOh3%l_q5>(TDc*2cpwZh%{@AZ!|gr# z1oSczUpCLxt(kb_J77jWtqf4uNhj3;rW2up!FS!>Hk4ejwP8E(2#o5=fiTRkM;IUq zK?3nI56qP*oWoO9Ah^R_BQ=ZG?DuTH4K}T`BN=t^2sr4P+^AonagYxjX8E>D_!c)f zm;|nlNrR9R)(45H0xGZRrFx#n0mhV z+a~`Qu$XI^ zoG+o~M9E`fsY5~2mJCaKZ^~2({Dv^Y61t01xDo&eg8*ILv9bs{ax0R z5&KK|`sqYiS_Kn4&RIQkLM{-zs_I(Rp{2PNScK3NOKr$@#m?kS?#8TABX5b#FeTb- zs208b8iVAn0?W&^OHd3fJiN4>kiT0Q6Oi29pGP@s3WuyLNAAsDN~}iotS$-RXFj|$ znD6zbyfnRdEduri!P?FxlZZDn^17_k2kfo=ZfthHu{^xbnqSBI^-PDYsX*2v9H^Uq z-=kCQGQ2CVu6+SO(qHhF+cdw!^ujkFkeli&S%ZTgx23PCkttexTCE1(q$j78cDRf)X()j5I`518u({?8FeZO5vt8^ru?U zv$j$t;m3rf*hK?ZjXEs5KKd&PG!63EiV>ZJiDJs;JA_6ZxCTO4)?#m87$(T^0m zrg+CLL%QBgXd0ud42Im#FsB4Os7Jgwc5-{y&x{IXNf;4|@%Nai#wi}w1sBg4uiIWA z!L+BkR?E95YH8+oG})~bdM5`;J6$X>qY<%9(L4DgU#BTdZ?B~(9Yj;FcbWU0>C`rN z55O09WUf)ZEQ1(HKK6j1Y`-(LXMFWA!Fl%(;<oH{Y7zopiJbGXco~b#!n0ytiS> zRRSvbd=R7_r=LZ!Yv4%{Vo5w99C*uO=U!_BRlKPn@tfmh)Z@!rgffw-3nLvv1vAA) znmbY<2TX}?bJT(X4sM|Bl74aO&63Lcr@oM`=9*lvA)2-pKy2hyvMrO z+xFgHsubi1BNdURc*oLPmTa4>%+byedoHpsw&DPnbLVdZ=SxYWIHv>XZ1s(y;C)A_ zaYoKBmD?aC2Z-ye`IU^!>)}qc_x8EGh#4tFQ8@uXte}AJr&b0#mc%|1O<&UsN%sS$ zo(#P^JZ)q(nvQP#*mWD_R=qxXkh(xzj-TjRE}CPrRveN=PY!rJ%zY$7kCpwV^<$LU zh=l_q zV|w?W(3Vz2M1c?687{VYf;1=rF#}v0Cvj>QiP<9BHzmT_gaca%of`8r^w2GJR!QV= zDm%MejC@?uIdI~o8)ZS_B_kzxL|c96*le_xvr=kFLyl~|0zzC-A&$BK!lBnA2ZRbE z!=zyOWD)}x>5w7hv@NF+i{J+bz|cbAQV8s4zlbNh%R%w&X-^(uor`K@!r19Wh@p1!61-|me&~G zL|BP!&RdZQHg^(DH_^L4Z$5QNl1%ep7iYktrvQamp;2EIF&ON9NHk?@&>gHkWYk6u zE$)wn{Du-t=6t1XH%WPs)miyMj6-6Z4-y_z@NP1Lpxn4|PCk=hjCqmE0$mT!@Ob*D zk`K?2g&+>#e$jf1yrt2s+WXuh!uiVr7kNb#Rv%tUomxloN2V9zJUfva0Vp)ouYP_B z9~%IUTnup!k#^uQqA~zo%`XSx`h|3#0lm7(n~%g$xPPCfyZgGy-pBA=FW4EUj+eC( zU)Dxz96TURSckF&3);?u_82o;qoAh=v){_YDjH>c;3er5yRnR6P2xYOvVB&a zig7#VDeG)@9t~lQC;{u{av{v`AuN6_(P^U}JjX~T?*C04YPthXfiNQ*RDwKgV2B!x z9?Lpi3=ct^P1jc9#8Cf!<822}>d$V`kCz>jMK@|mOv9=`Kd5plFZ*MRVjB^>4?9jj z|5fyz3P{h#k^$-zECcKW$d;LDtP&n`LZtXT4k})cJB>Zo?bpCovDTyaD_>5Y!{04O z4ug{hvVQ+ud_Wg&8dTh*J7L{|CMH*(mFakHbaz(Ha_7jK@1fizeh9@7dM-p7U-KYJ znR#jA#^&k+Xc>9F{Y|`jf=2*NVq^yoEM5n=Sx$s zNyR6R{=Kbn0bH3*Xsp)q*0odyvedlQc_0Mv3O$z1Wi{*$PG?3hg|oa6LUQO%q16?! zfi7RVj?krCquCe?@odyY!?&a)t3UaViTE=`i} z6*9XiCW{`70hz|Q{}6`W&mUC4=<$>-^# zsc@Y0Am85OG_h$ZkkOQ==+@ddC~!4KL6|q>wotY(x@-P~2X({me{|LzwhV^8s+29g zVc2bkSzNbVetHeN8y5Suyrm>)cn>Z|uUmK7_r(e)I zOD!0%IduH-l5d`e0B2MZSaADdKMU_N%4U{q_~p)tFjszhf9gMgyUBSAZ8+UC_5X0Q z+BlX{QLO^fX~2%n&UcOIft{EUJQO>VsOyL&GuKV-7-b{@Yj+(VIs`!UvGMZJ3p$qs z`w;XfAYFlIMCpGY^?bxe)ao_wqbzrOACW)S`^dB?MUl9zR_6J^O_HT3jNf2K*l?1}GCsXA?3l&Lg7LoSBvHz> z8SA5(MNV?Z+e4i$3Qk3SfGUL7MUr3?a!9@C`UtqBIZk;=F7X^1i^-E%bo28UG~eOe z-~8_KxE-vNAQfn!L)Tb_;@9d&Jbiioi;%I)rQeubBXo~JSi2|@5(`sqVo*_BX1D5* zLK3J;BkKEpiz=LABK6nyrwY1csM!f-Z;^2MAkjO_jV3Uts60ysMze3W)3La6x!ii? zeUNLJ8lUj~tWzkP^qRuEA%(cU(uuaOS{7_MRw4}QyF(%YT~jZW#dO5S;1d2jGwRAv zVDoe38-BG+d-X@7WX+#=NVSN;z?s_x!mL3FON7GxLD7_i!4qU&4$DwK9jFozLe(E^ zG&qH+s3xLQrUYPfsO(N;xS9ftFaOvp@>5jvvy3kv&)X z;-JU1(t85$mN6^N!%8rjnME_AJd_DSsVmpzg~F4>yI}LoJzlT?cz>87WkU=s5Ctn@ z@)L{D3L|{F9x~6boaIlYz2#9F_f;CfqDHxLaPl}}8RE+O`D1$ZzkbFxpKZCBClK1-d zS2k{~7dn)OoT$U*6!RpuKuFf~Tz%~h7hA$Ppp~>Cyw>{=hPq8Aa zv;!wxAYNW#xajVN9Ujt|6mm+TRb-*x#ong`wlB?m7|63+9m)O|QDwd~_i-%?W;_&L zQz+oADhGMv$2#ajUDACvWyNi%FUJ#<0U!*O?TTfcp3z$yzE^iJFHT`?2!d>j`-kjBNkPtByETn0N6V(N9cBp8Co7-P3mOJ; zpW#5*R@i?eNV76W-vl8kNxCek)AIV6|JK`_<3%PDDBBPH)|_Vpx(x(&#Z6;N z68WM$PTZiOsOikjkEq27hPUQ8f~ajr+PEz8PL4bOkm3FxFDAHJsOEWH5Q3z*a8&^v zv-fp zAuM2YFT@H2)u#&~OlbM|m+H_{M(@;qo9;C!?u((%DrC$`1~q~6!Ek@xoLy4#*nU1w zOcrR>h-lT0ZJPHW$65XD(_%g#xJ9dbT~b>{1?6ifN^{~AQ74?;8I)1BiYo*a?b^Hk zvdm9zc{8pFPc=yI5X^nskabz;KSms6*l<2kKPPUY{`GBE5ewh}#7Z?}%#W2oJbCR% z-{0)Qb3hx2>R}_xl>S3{SZ{PjI6VE?m|=W)`Fh*n@EQyn$2y6k#2MB?vELQ_MXPwzRF8+8uEBqs<0{g`hKE*aM0^%qJNg@lpXoh4^(&({0j9daVAoJIfAUbP zD?YU!^f~Z()6@oZurm~*z>xl01FC>tvn z)&x5Ej=vgSlc@=_VTBA&K86V*=}^1IDo4ksMQ*2SID=8^sJv(TyGvNYZNM*8sO-ug zyLeh4b`!kD`_okAeb(Hqy?|_ADUU?nNE9Tv9 z*)P%o3QE8Tb1KsS)juOj?n$>Z#BxC^U*1zxUY{Ok0 z#DutIkk#JAQ(-Uidobj8tc^ftlF6hk?#{AZA1X^3$aOatw5=kOfhi#uk9Tv8DM1Mt zeteP=QkO$1;f=2L7^2Q-PKSo(i4PjaVoxNLfN<`vEs=bT!w}K4pWa~%6k`aV5)FLZ zQTdIu2IleTlV1@p;Z&Kf?hYcHhJ^^pPm*%MED^9F!aMCMpUac^CFt56Q+EUiAKY^% zSA;ZCbe(H3gV#XOd}13F$C|`q#97oMG(Ys*L0qM@lTS0K){V;ZSQ#9H+B_gF8FUEz z@23y8#iNgv1Q{j-{`sNI@1_Crvf)r7^i&Dt%EOOLg_t4&Z27cjO>tS=7m>TLin9`R zfDt(-iJ2?VKTsYI679hOFsA7U=QZGd)sbl_Ru4iPNv5(NGgThQNxnXxpEEjX3#T50g+|lkiyKKZCXl2 zk8bST*9gqoCuZ5gI*Z07uHjm7NQG<3hba*Fo6F+~?al^R3=s(Ka*kTDtX(3XfJm`S zFT<6#JOYd%;>yA9dW~HOE{MVx#cfgZ#K6-~xAzG|c`u;|NumKTf$x@dC6o+68=cHa z7X`A&c{{)}jt1#xh)Ib;9w%*~nLmusChd9n8WT7WXnqRKC=0uT8n69?@@dJGplt!H zfx%pln*rHksT2o!D1Z*TP#RRjWrtI-rgBR`E|%w3TF!zn9K2|S%p?Dm?fG@rqJ34$3EXQGt&4;Irp?($fQa*K6zngyO=^%8`onCT_e2^ zH};>~p{LcNrh;CLUxMUzgDGbIwA*M|YE09vBIV)~AnI3R&6T#-0iML0pKPGX;1oe_ z9(L$z_s+!K0cls=kz_cjZ@Y~)phO82C}n-zMBPPZG-*GQsVCAPv6#O3GG{FOv&7S? z|D>h#ny?#>$699U1v-9+Y6v02K;N|+ap?yMY^>}p8sUV2Uq$KOf4HVOmsY3cd+q&E zxpLD3F;u_Fbb4;hr)M*;WF}v8FJTgz(yNyXJo<;EbICixr{ya70?+xcwdh5QnQ5o3 zV8s6ORpH~p$U2>kkDk7bNP(OCW8`wi8zduM+be6 zWbE0S_pzk)@{zA&B!yl#k%};U7vBrB+^s#ahy&)!mI=VPnC%2}Y9~P(8LSu26tyrv zGN7UIk)96yz<3mZ(m!%$M+bGllU}2{(U?Ip^4?mg2Ig{x-nE-OAW0ASSARV?nkeXv zMmV@dkfkU7l$HT$7jC={CSgWOEKQSSXL(?H0QHSL(de#3yeSZLcpIov@S1>L+6Tdz%+GX z0I5iMl(8ZAEPUWK(~I#ExUc$FvvQUShf! z59w~dC#DAVPHHFD*NqqnVX9Q6#X1{DCYY+>-Yt!m>re1KiOL#I&@e^#VnRVxj5B+b zY6X;)H}MY_db)l(E-9o(Qk@QJ!l#NzM(i(0r3Behtx^fH-62-WHYe1@7Miw#WoTbv zVtt2uQhCV8wbsh^SHZ&84I?o$EX@dY7qlj$X#;ywvk@Uh{mJSKN}oY2BD-g_6kcIJ z#+25~5ATA@bUrcl{VbJ^Y%@da$|J>AByf3QSJ)BMLn<%NIeo|fNDp$Xv}ls9HN@>6 zj>o{`8-bQn%VQ1D`X%n$FyMD!hkfEukcsN~(_-fxOvmZ#pZZk#wZDJ?>NlS2bCZyi zMl;fu->ey9-TgG7NmR?cZGkWak4nq?Kp41xGT;a62Nc4Qcg22>CQ?vv53gmN2Dblw zQfXwqbYQ`SF6suJ_PAM1{idXQqJSMU^^)1xfFM-B3bYFzThz*K_LVa(!;Eme_`EhO zE&^;Z$2xDr*tYV5+e%4``Z9+KKW0D6E z0$lhl$YEd|Av*UPQLcpk(jiZ84LLT+#~*E%#D$s>ld0pM_p(8zCWikM&jFQZpn1SC zqbNvlMiZ-e61yvnvaG)PTZ%D%imCoAM-Z@@fI_hTL^%X#Km_ZJ6HwS{)rAE?24ZVx zk1UVei%NyaFe32KSV^Qy>`ali^;5+f{!<^HI}jANqTRFVg@tRsZ?s5Im_2+K?I#j` zw{%RPOo%sH>Nq{3y43QWsdsV~IXh{fszWGEt%OS6PdwNO!ziuGKd+~#`!vZr5cw2L z-zI^gbOkA6u;2J!-cNXAzMO{#Z|Y)Ms$=E#8ge*M6os#d*ico=NhRaJ7aFd1c~Ku0 zlMlqhHtg4-@a*|P-7 z%VDT2QfA5kwGcNCn_}0rCr>%#s8gx+HtlwvaGoZi3yd6`bIMcy_{{OdC}iE4Nr73r z2Bx-DU*B+%c{gwaS_lN!LsXvz-1DL$)?MemN-UPP@2xk_`VlcrcM&sDULxUSamrQbGYVNAJ;Ju}xhoZh1ZgZD8?L_@X zLcsfA80HxDf7ar;dqw?E&HB@jg?TeHMW*S|2D<9 z{R;M>AJ?jwGY12dY{@@$eItjV{~6(LVu6$@8Z4*r;onX_>ajH{hgtRo#$_dKFUS^9R|uXlReRM;}0SXTy*w02Z&2i3k%&T zl^qx|WmG_5D`uKG20@B5rPdi3vlDA$RGeFN<0=h4J3O!_b9WL{rnnh4I;1`C6@ zx`oHHa9p2BERyxfqBqQfOGDR^;K%)vB}@1-z= zBn>;LAhltk{y|-2K+(mdTT~0wQ%t+u{~BX}z`&~=NjJsNr=W(j5~tNwjRokIsM@W5 z?Dw!j6{aC$CDlZvXX@j?!pQiquJlo2|Js^V%c$)zi+Y@$+)RsDIxkH)qPHMN^74Me z-lx#dj~y1>(0kRh@@lkQ76C}&fWRzVrqTriD6>OGJ}YO+Rub0a#X-v34BSPtq`?wS zQhiJL$!UNztme8tN=mXT4hq!_X#Qwvpg5T0iEIKOFPXQ#pV)UVy9x=XeuNl~pTZEU zRA`BuInD-#t3TQAajn!Wkj_*ORa8X21S4!=zL>6w&496(1?gbhj?fC$-5inIc1sO$ z6JO#8s^F1y_{NgvXa7UY#mxsPOv}APonaX@8+OR32FWC0EqqeU`(LFByP5}4WrYCS`Q$N3ZygZm&+e@PwL9uDRIqVlPA7nywlm1$zwh=A_D4 z63bIi%czJ-w!4)&slHST?nN9OUu_0A%#&jUcOeF3)vBw#0J?h@Py-s5-EUq;fqXtJ zr{w8{r8+X9LyCpCpwl{hUm`P(2oFhXFxEo-ex##Al?$FFRL;#T=wCE{0K#-Ozh2#H z?V#y*S3*uji|O$$3zjdO9I~1wvBak!(nIP7E+HO-p4c`5EnCzRT6nu2H!@9sIwuxO z{V6(T948?=(-)wzKtff#4ss|57Sx158nJcze6DD$?;z+;$cdO5E{r94pO1vbnXD2j zBm-lc0D2C=W&l?98R&dx4XX4XpVwEP)yV!gP>i%OUdCiFDQy~~G{9orL*`n^w0+^J zGr1~>f}%@-bqxOK{kn0w0kQyT)h>ci9OdrV_3EWxO~lh=MLEFAz|7IKbPLsDyZ)h> zxw{P#M1yKz7C4`24sk(a!=Q9ioT3kue| z`}R$;k`I%WzPCPQ9Z#>n-vsZaZY&Xivj;obIGUOPbyQm_$7#?;85KP!=dRiSc@!@_ zmFx7bTlV@R6QcKbs!9Rc{7S>63zFTxUbKkQr3OD5FLFaOFj(Jy-VIGs8eY=%1@)!B z=$QzZ0|5jGA{pTt=h6?{Bal?4U!}0ze3`Af_jn71Db@lAr9K%HKbCL>PD;^-wQwDv zyH^P>L$Y*(PnJ>$`>;giP`aEC6A}u{fA~om*(JosNTUI}sMe*m@l|m7uSrDhu%Hga zQS7Fn$5nl$7V)0n%C)ZPs!U?C=IR^4P^MVYRyWh=rFlR@t^)k`@C5P{4=!8>Q*`6f zDRXaW(jZrBGZ=iCgGDC`F4pSifRSU7+3#}_qXnH0+XN z%U-BP4QP~TEKCDZalph6uUs#J-=a;>jZ z^e8d=1#^xqA&hDrmBF0KQYF^*b5WB|HL}+WHazwZsKLROU)22Yj}b5pZ1qB@H9spdQ&VhFCBH8^BE(s)u+MoRlQzH4wMnqc{BeM z*g!;;k#90p&8WX6W!OsYHUE6}H1(jn zgi%v2B9XlIv(&T_u*QYw9?w;vs|$b~+-I73Stv7TBuER2`BrNT72)qBya{KpiB;p-K$R%mv#_9Y-z4~mOO;M}O zLM)$%7tUW?lXfNRJ+1J<-w9 z!XJ(0QM;L>cfv?RSn5+VY()GXT}Dz;5KP3AEy~7ShF^XfB(j^ANIMaTeFifB!1=Q@ zKBc(ndx28qeSdc1-_mEU-@HAgN-*6_I75Xb z99tv;>gJhv9TY=zP4MNq`Gc(DD0siKY$}2YzVaB!==KWwBW1>l>>@EiXHpPn2M5XW>iIA?vvi@@q%S?CtFnb&@2_qQp+V@z)^$_Mk^F098H z&Gl+IXsKy2J2fNH6X8a&WZXOy(CrKE zpW`ugR_)&dz7%>jZ3IkCQ2>rhhPzCHnM4j%)=7J(aGwem`q!4AKj3mHU7|>JV{nVU zL_QSUXew+o?1sbn<`FhCg)|nx+?nfq)BKq#1=)}~KUpVN4Cy3=WWrj^?Tjw$4}*r! zTi8fYSgwS)2ZxY7h*%)eon(TH@pcKQ+42}Hb)tdBsj1X= zBB2ddMwu(K1qh38@MRppr~X}Z$bwv_JolMvdS%gdma!ibTS_r`+|F@0gOzyzVc%b@ zpHg7iP4;1&goh6`V(Kg4%D~~-cQAz2Tw1nc0~}2=D`;~a#oUu9uHL5k|8FP*Clm@9 zG*6^_L<#{Tz8#b>2Ra?A_gg4y`jE29$qpq}+Lxj+)f=v*pkKW6+%>cdoWT2kaa%*^ zz^!ha+t7~p)g0!PV%Nl~Vi@|k)eF;0sAt0CIq3lZhH>D}gN%G;XvN`ZZ`PRY#Lz4? zo9v9Y*{>X{Ql_YO`MLS9fW`V}@&&)jgO4 z)jB#CQ~i)Fa=mJk4B!zX5m(qz2^BfGGd`kbMD8UluARhPt$Pq@{h#d zn8JBk9zX<2UXX>`!OM`l3p)MoAzp$!H;U8{Q@>32S1}+0m6P)1kP%Xq0Gq8CR8`j| z1Ap?r&Q7PdeK>ZC6$3Sun#f5`$Qv$RGkr_SU3bJ@VK3}=nU_rm_t=m2csKiR zOACB#krx8&Mu{HB5w40sxF$dmXPp(g^}M*;oq_3w*F3@_AW-Hp!pPq)-!f+`ik*9` z;C1+4GX6Q%DOc^H&9R*IblFg)#S}5z3YY8o;jA-#`vrgGAn4u$?>~(&BSSVDGL_1F z+%v^4{AhDx3Lio(Y-dT3Mqk#!WQ=TwN?I+KT=6^EJsR1{Nj0^N(#g})95oo%4uGK> zp%Uz@dSV6)O>VyxRBGZ}FMU3$O2(mo5F5+nq6qC!)|gFx?e|a-64Y4=>}=W!hsK2# zrJlgl4Io7(YmFwkyb~W8>AS0#K*t6buQ(|__x0Y*A1*zXzs}mCz&*edoWG_r5Shy* zxM~~qNIpide@YLD!`WBYcC;pZ+-_v5!4`ezVT-WqER@k+MAfTn0}-Mc1!FvvWRsSp zen{>-o;@r#?b;_dwN?=K$zxiAehkx$TO@A}DYym22yg}@^Y#oxqM7AHAPrWFiet%w z@%EM%330Ymju_WeSZHx2aMI9v#W7lbH^70!$SiRsyR2Qv11G%T-;+7?q+8IuzJQSF z`l<7ArK8GgmyV1F3Q?|JT91HnCl4F<{f9USAPe*&biJx|=G6l07TM?6GgF3(y4f<| zH@dMaz=P^sk^ndjP(`x8EAM44PLQJ9&6|3_#-94*n7JGNp^bOO-5{gyxw{BCpGz;s zD9w04Tcn;B+#L4%=jevKw<0r8l=RIPPOD3u&3P_H$_2;<@aB|a)i||OAyFN#7tLKH z`^8uBI)+H~X&qHZ&L7p3O)p-ab7&6q*L4XW71?7_jjT)$?^iI_WGk7wQiU96$(H&1 zCz8z*G)feoDs$SC!S;6QLclRqBvwnowO&dWLd0HeD_6?oz$A9c2J31B4+? zDm8_MP`_oHJ=Jm4e|GS0N_09HpiU#ATh>(@8N3VoJ%FKhH z)H-{)cDm(MF|s~+h#fWGDP;B91teCEE89Bb6xGt;gr)N<_l}nGF2!ihuA}w4Ci`zzxF^t9p#rAFr~r~@Uw@h^*h3bx9pt^C%a+Q5ld|IF}IT{uM( z0#&${BE@m4uZXh*-}U{a$Dovl$IoK-qk0GIYKk?pGsdNupQ;TzEH!Zq?TtPB(+eTn zu!KfVu(&LaKe}U;k%*sprgb*9y|i(d>!+=gsl$Pu`IOqFYfvr{9n${+Q8n$$_j!^e zLJsSD)uyC&raaCenT{C8fu68vr?uW{gJZ;+_b6;^g}+|d&aes|VuO+Dew5hAqJ%)3 ztWGDnPIRA!@|GUJCGKPE(UN=xni->GBlSQ2iYtsw z*y|c@4YQxQ3G{{5DzS3blU<_3KEzA=xNaDquR~Cq1l5&`l$5u@OY1SY`8kVxiH;lC zph$&{p=-aBGL(GBY1DNPNU1%0ow+3Vs6a$qRqmIO3^Gsy6~)Aj*T@s*?Z#J` zjPY4w98Cr;%P26lFvFwaRYxr)>1gN9 zmP-{;%QhT6rv3>_2y}&OfkSk}tZytj)J+KRRR=wh9)>r(jknU%e8xvP+zQ1fHm}Vd z_3Pn=LqAT$UNjIw$~FovY$*=}m*JG@JQ)=@;=0F7%iTuurcIL-wzG^`kdtc0syW_Sa29f4@HN>KG`)7d={`H3<7>h!Kzg(E+R2`$gBq5>l_%dJ z)_b$T7-x+|P^kZ_VuM{{lqfrbs4@E(KZTA*K$&h1)c&jbudfXCjoUyOdG}Y5qkms0X^g zW!wu*E;QYnyvb(+U`>NSrn{*@HI$v?$6gxTzzv#xp_3#>8f@AaCAp80hFmq!kej%v z$x#m07npRA{G3UHFEkjgnvV@SQ4RF#7=Kpd&rSa91b(d~`nwj9?z^uEzgYf2Vd&M9L}qI6TL# zIO;k%(2!#ib7i%(Ol zjrND1>rRbK{w-NmCbBBEmKx*_vwi{U3JM9z&p{R(aH0I`K9mZQ2q^FVP+6V9ME(*J ze+valO5a2bS5Zp&G31(M8FLLvPDamBx9w%e=}LF#V#!dAUlOo(p+idOTJ6vgxj6kv zC~Fd~{$MpgfM7cHqBFFgo0&D^+<3wm%B?Y6Mp^A&gW<{i#Vtd_7(Z40_eTd1!e|Mh zP{ilB6-U`u(jA2+A{VENFajFJZMy7!$S498iqxPH+^!5!LZUA;Nk4_G+DEnBom=&4 zzaF^|*3giflezAm-jYjX#?SupWt*0e(7!d?MK?Ocof}7>fwpXSUr$LV(r9=$GV2Hd z{jlX~5s@!K)#}F0jZ-Ci_d=){yMe7>8qA0Bn}$``oJn-l8P0z9rq4O&m%8s|+>Gvr zPj`2B_b|5UzE;%zsm1Is!Z~Mek#p`#ce$_ToO4bc4enR%=cj2a=V9%;cWMY3qV!YU zC;HM)@~QGiKEqAP+=X)F$y{9tt{duocfSzz@%+MBrIgGYxptauS4hi{47ty)qWibC zzijE>c8u#Uy$Ysrw{F9xEm`Xqu#Bwj+oxy3Zm>l?4AeW^prlzup+1|Bn)9PW`_o@| z=4o5(FO2U#qygdAh$OxsX5Ac}=;0n_W@ct)_NGq&DKvDsmWT`Ix1V#dbx`*=*rINM z`h}nvy$1M|gfCI#St2E2tL|rzQsLl!>j{zq_i@jCE^xo?KsC)@)fQ0(@)g}Gi(8`j z%fmqZD=vBl>SxKSjX}{72IASDBQA0=Q2!1Fa((To?W|3rZM4p#JW+5A}tOdiTOw<>VXTBK9E!Y{bL<9C`;4&P@kFFGD=M*VN>_1TA&3kq5u~uS)hIwIJE#wSOw>y;Cv1LVxtxS zM`N-d$pdBLHWNZL@4nn`U^ zRA?F&E2t7|8J02gh)yceMng))r0j?2NRo%yN*F~Bq}VkCBnc-M>SIB`nwvnBNSd@w z&-ctQDGP%gx*5jEf|7t{zy#ewb&yh3D6I>|7*T5Is#qL#QjAeU=LW@~E*N6cphq-E zT`7h=TG03*of>N<=#N*N0R3=P8jeJFhstRv%dNe4cGqS-G<&WE~(0xig#c>B@KDZh?j!+Ra zenWGAvfn(^{$$TyWT5Qb%NQs_Jq|DBp|%2G3k|nMB0^~2qrZbD%4^k)n@JpU!kag5 zwCC5pR`#I)t3BF19!^Jy80qO9DK-ygp#Hp$wDHSZ$i+nKSi1yqfacL|GadqQn1uh5YUyn1AP`oFKQY%VP5_Bh}D zwmr@l*&e6J_TATHKW_W&b3G?~Sjl-zKR5AfNewnP5kakVz{O}anM4hv%A{-dRoOmP**+sK zBb)B-q&Bs?8&1fa_0t=|jG~0jlCr`LICQP&3!w9lhDBg|0J>qfQ-^(jP$2W@ua-D>z{p0;sqq6Qr!>?%nUVE zN)+u1DVI2$5@n1aIc_t`VUbcfC_4lLVeGkr=5U!BEYSHwK4S4eMGN@{BO(-u#1Yfw zNzkxtZm1#uptJ%vbnv2#rdPOaoE&i_3=Mo~YT}I(FHQqZ{RVDO|1nj2u4=PE4W;Zp|f_bG#NZ;%f1ss2QY7-=B} zaUqtwTsu$}w&$MvWJp5$?PER1egE=z#rV01q|l)M25xMvA+a@N*7>u}PXd)YA*edP z){xm6f+Rlb(=k6+Ez+RNF9;7GJ^Hx}%0v3&7ba=U#&tI+K0jCf!IFrP9zj?KTd=k9NSas8H0SP~W44 z-nWcZqoTeI6zaEyP^evrQ>BYFgD2FpQOBWLENH*Ikq+{yDAYS(iLysMPwAk26hG=8 zz|#!6f{OZOpcOR4vBq-{$=U>iS_xTj+Ly|?2LTvp!#0Cu`km>8b z?tC=F2HiNkKvlwTl&nxt4IGq%!6oWv-ly)3HeT2t{uC6tggbA4_`A11Z-wM@uh05a z{$HXQj?hcE@_T<3+W+lseS?D62kUM{G*A^Mxsc0!vh0I2m<1U@ePiap(^k&1jMdca zxqSp`<_joN-PjOpDnp@SB`I^}pdqM{*a1;J*I);Pe-hO|e<^!r%AS+5cXgrjU0c?v zLqYY~_h&>!q=Q(fr+u143Y}Ed7o=vd>esxM5bgQ-bCP97P?B8uaMGkC?Qz|bcr7K|QoWO^ z`a))R$5FlNQ@vMJd#VRv460IjT!&;xLg#nBp%x1}pW}0UO`N=TK398QRo&82J)6<_ zQ0S`DHDe!;vS%eNTbQ!vCibFJvu7|u{mNcP)mav$W=AMAx5v18ud57H9Ix`We)rp> zTu`Y#`#C9Pu`(Q9kq!PjuX-jqPv5lz4ZmhMaOile2D4Xv6a+9d+%a^A)j=07Q0n&_ zkEg-R1z|JWhLu}Cf)x4r=e-j`wVTqf#5M!l^Yj70?NrO7iL>VfR zROU+ESeYMkC}R{elX@dYW(8)*cp=jza#YX^j5b+d2`Nt97?~{E#>h~qO9ljWs~aPO z12#lKi-@CPo^b-@>;C`?fKq5(&xA!nLQWyfSr#Lj4`s}#DlGgi(}nXxlSmA_e=V$4(k z8ZBecxX~CgDt{n`Fi|+DF=+v5lxoPONva!5gH%I@)lK6=?drzT936lP4^2QAki=JL zYk$_Qwl-E~&3cf=DGk&9NFWTCFiJ^$MU15|X2O6O0u#jyjGr_$?bPICEXBxpBF18D zD#yr3%3w(e0JFrO0?@dLPH5J2Q-d$W%xsB;VX7N5lck1W4dX;j)s30iK#iI45-Y>z zH&$j%<=vnCBoK?asbwl(5mR{)0LpL3h5Q!;7GX>9FK!yggOgdPKnuzRit65CQMZG< zQz7qu>S-zC>xrlNwEP0nhiSG@B#T8k8?(6xKSGW zQ+vkV%%^NiBr}cU3_N--JEl?@PW;HRh7W(;r{y1!4W`g=xiqCvglVy;&9$2}8I#2c z_R7A=1>T6_rTxBojG7}Y#3y)KBObbSI=Yb-To__YyL>`L5f>s0E3jAg*@Ip-WCIN+ z8r$}G|GqZ)EltZhK#DQO8n0NYF~%-2c8Ok$S|(=}H(v31qI~ISgKk%3W^v<{#f{f? zMcjuhgjjkp5gXDK9q948+%TmTZ*ay~kp>MyMiON!$lwGqljJ@-y)Lr@pcP#zI zp+yrmM4rkWi&8UmY>FopXa=RBAx{RzmMEyiqHw_pwvd7dDO|9zB`I8Qj3Fb5iw;!2 zDB=~;AEK;b#2G7O;4tSlLm6OJBXr^6=~*yetk}Wh2{*Mr_D?9JsBMA})HVSdwI7UW zfui;gMX^KVR9d#|nOl!G=&FK-THT*q)Ue8QHrSyIakDH+=_TP-O;_(4dQe*;{x9~Y z3+a3+ZxsgS#8H?g>Hd<>bz2Nf-EZIh_VTlE*`8GSTjy0-&5b%A(n=(5UX_(xeeXW< zhwwo6Aw$fmbPJyWi3f(?jrsiJd zt-2hp%gO0dki&Iax~}V5)#Y$qPEJQ9iwu;Wa=6YZiTo|=RA_bYsyW}H@1)XC9_gU2 z@{{CvFC1x5Mv>1`v<1;>sD1;>yn#RYYfI9?UiNk&Jz`ShRwy6+Qq=kxJ^0#G~IgZ?D_d(ms_t8P!$MtZP zw=W%UUnwu#Enr~P-2whxeRH7ajk{E}<0Y1<0W^@0tX>OoyE*v#;c+9s3`8j6HJ zK7UBE=MQY~Ly~pf7bam+vn)D4>Z6B*U(>ejfNaeS6v_Y;Vqgh}sEYde{96FZKeJet zqq=o>KUCix&Tr(R?X%CgDCe`EOT>Nls3meO(fC8?`|~u&N`qBh-HD&ZR{R}!C*ax;)g@6ocG_ld99q^R&{jiDDBEfqFcArbzKL74Zf;_bh@4f zK^*Az;r|Ez!1+|b`R-BB(V#00jVg91O&f%vf$4bUCX7^`4p$l)f4dcOzVmjps%xnj zN~cnFPo#zROcWRl_M`c2DAr>aD&Fz9qS9SqqLE#Wa02Am~Y z!mz63gvt+tbwVi2Y1`g-I1$-49!_*uXAP${ywr`Yv86__hEfhL8e)TiwBIMRvb(!C=UYrkR5rC7_o<<>l-wfcUGL)T zR!42wIEJQ&o>$2282X@Y_aTppLxh3)4KPSa;h`^FEIJPuwm@|W z8g@0D>y!Gz)$W^c_e~g?@G$I+*Kpss`QfB4LBsX(ruHXbg*c(^`y;SIIM&CDa1WL6 zBCtGg_x0(K>P*ZgfG$j%3qD*hk#*g@j4og}zsKTEEnD=B zuEn;Y>bA|iyctf2r0(xD4{2W^DHMOV&zRbDpXDw#*YlvFjo4@oIKS{_wowb&GZ|xy zjb-cL3*}G2*6(3gcix}wKH9WQJ0smUzU1gVW%KV~hRx$MtM=Dj_-_~6_Ut?Fwgxy# z8LyxYlhO)~3EDZfa9WeZfQ+v%J+#S1bp=pAs2kKB6Bek6iuT7xn@uKc(Ezq+iB8y` za9J?I6Zm7ARvsbn;HVlb%*@fn#^&x)`V>!`M}ISRkT6||AaZoNf=TJ_S>`y6~RO-A&-` z-ZUpq7m9Ly+{d4;lD6%jPoiiy0g0-B3|dM<3AJbCq6fa%{TSlzt@L%l0}KSZg%m~{ z5ETiau8t4tE)~^Jusa3qmR(v?yq>tsWHw>`1$*?!0*@?MO)9S@Hn~JF%q5C3M&C4= zV@FwP-2TKUhC4Gea~t%_3)KH@`_n)7N6l>aKhm+od};Av zYJv`NE(wmVUPq7X+rc{Ix6gBc1@%=t!aWnBDlI7GT>JQeENWWJw6NT8Tyy?RA}WXT z*Q*AEUdrP-8TTiLuJ#q(B@I-%jLa+}Gc)sxlSdt7nwD`OCdzaNE#iYsk z8162!Ou7~OL z&xBRG-{+nQtIFSvD3z1_ep-&V!TQ9<@pjfH{+1^d?6ajGyvW`_nB@ zFOlEH4r68q{a3Cftui9np{v$#ynV$kWc279z3HpSCQR|jSrYogoXXD}RQ_!Vu&n?n zzqk&XsQHWn;@2{7mx1`V4T?ESwCxYK_LH$2(g5%2DyF=BL9uavP-Vm=nw2BNl`AI( zjn1$SUR^v&b&m%ZMqH|UCDd+K2dNhH&tw-p)Pk<6p5rTN#8YCx&3>Fm*0_%Ayg>cC zRsU8Au5y*5zSS%%V%0p9U~|@|f9oRoaSPN#aC}4} zU&Db!{z`r=A*-tWs%p!Xa*pIz;9~S4N_NVvOa9_>99%)!gV-`If`L94@dEjWnafbQ zb7BnDf7s%FTywq3JeEh>r@2X>!f`aZ6w+PF7`NE8Y`Zx9=NGg10T;d4Vw5tX@p30( ziwioc0<~Gui{5%+gb1p8JyzcE?nl#Zg;?Wbp!Umcq50}S2RJ2O8%I|fOY^AvboPDl znoVQo^-BZeBe3m~F@+4HH;ZHk$qt#Am@OR>!$S=j#xN+_k`#kRkTmi!m&Tw13Zb}! zkQ##pLSvGUMrfK$-S03O^;-ZS8^phwhVxsvR4(d17Y3m2ySAuj=Y%aLt#_-=8ri#u&1_=&c%LP481vg6)abJ&c?w;WxEsd}Bjlq09pcCHu3_;|a<@n$6gJ z1Jj_*+p(M5$Jm-Q?VA9j?MapUNAoi8@MVoNIRB!ia?Bz2NctHL%iCrjCw2R`&7VcH zx!L@Bc-S@dg^WT`Zc^uGUdTv1g^fOB82xsg#&93*QyVu-AMVmn%~&{J>O;C-YStu_ zJ=lG_DKAvgq)tb9O1#c5bh0@Yg4vH4L)DhRrfq}7#7{NLl*CZAUnN@AzR*eKcATy) zKgulol7K@p;DV-!=TrH(l*;beqU5Ir~@xtSA8<)5gSQ)Pc{Ahx+ufeHW4 zF!DzvACmr60m+AO1Lg0XNM;?bP^n(sEv~=FdQk0ruq~B3~i1)c3?6Uh(ke+!YBxWAc!%>5JLbU#u$T;Qbc6{ATy{(^ggAR zEcrQ+LMy#elCxxLg{+HNoJ-K{{=(#DubibE8Vd8i*|2V)hY88|%}4QnXAETmL!jY% z@e0KhHK11m&H63(-4Y_RUKl=2+6;2mQI4*F_x_o;xJ~LyaApk|4+xJZDpFq?n`>iN zVul*mZ;K`B%DhYT!fz6>!@i0hW8PjmJPQiUx(W+vH!^)82|0~L70(=&hi)m>^j7%m zvTFy@1LCQ=d8_iOKtXuSWCp299Z0wmOb7}82FP$ajh%5ihub80%SSE%QeoUZCg;~) z|Bc-t%H%Z|9wJTw7xQk6RY}ap|8kYKQiLRR>)%>|&4@6_clZQxXqg7iWBhA6^{m|VYUY$vXy^kz_ky%&SOQegH=00ljPF~rDh|(sGHjGt zIg;-m_tMr7Mq2;-PXJhFX`0YU#X4Kw`HLVdP@VMIU4C7nLE0BBb%e?Eg1Xqs40JNHR_#q;N z7h%xzQ9a;o33M%}t7nkVWQ#2XK++})#MTusF9VnaErE@3Ik$`2e8K0t%`ow6Yt!Io zkIeuXOUD?{mbQ;0-2(qo`%r=I>0^jC3wcn%t0xf_1{OR?7O}HsBkQ@82>MZ^areju zr^Cl!N~(e(f>Ci6B_ukv(-}lny56>^Uz9ecqy5rB}``os~y9tN|~sX zw$d$J5E}`&S$8KWM3o%3S1@--?3x7PV$fnW&TFc2jDeBN(gBXTowhAsMft5gPJ}wk z3L;E3_yykU9FU+wJBSLeb(-?6-zQAIa)aiexZa~cxsX8@c1lMADgduslNdj02e!f% z)w!@J(@6Txc0fd>hL#gjUJHO(JC#8gh=7X{jrG+;s46pFQz_1B3e_~Za}CncE$UQL zD>{odCC*xT(N^+l)KU+_Jl>F|ATMP4&t1xZDbFI@(Vy~f$c!q1mfY;^KQ*HE4agLk zdE}=Ql#$y?NPB_Np`B96SWVx&p1aH}pYzpFfL0ACqRC7N3!a!hD<+Q@5@^;R@WJ?) z<<`l%CLH%O-c z0d!kp!^c0u3&cOTGLfT!^4pw_lBiYwF9P|}nJLe=L%c~Ff7-&^Nb3mD2^r>tu~HB* z>(?s7^I(qnC=aE?vpL=rz=LwnWRK1cR*m89e4#mp4fWB$1-C!T9^^9{y3cIEvoDPE zh<1U4j~p+Q`g`64S%f3x(T%vdQ6!(IQ-7*%Km{)e7hzi=w^WlHgF9de`DItq0|dQ= z3OuwQL+aquW6LPzq{ayTS34fqAlh&idyZ^^$n!W5bSkm{eA@`OnI7&a0d8!FaP~TW zIL~)12r#jPI3o@Q%mR1x#AE4Um6^O9sB@D z6mb(+sui!SyzBipJFMz;i;D+SkL0+@Poijz0NC>XqO0W2oC_Z!42G-q)dg;#CkJ-? z<+U0f=NPu$)vawhkwBd}WWd0Cc#b7F){2Zlj;k*mpe!oeTzS!tGXzrVLPX^9n9Rdz(i$t-{DPR3A__=hI=2 zGWxM`w8cCYg30y%7>b(y_kEXii6nR3^n#nrpX7WsCZCRo;h!-wNEkz|wZ3dsQRBLf zsLH8~fY>F{hF7~o8rjzknBL@+os4+_&_ERXY;feI+AOhAkq6W;)$zTHO1XZkIC$d< z6NCEPpH6eTUN2veHeG97z~pR5iILIzA=fSFUUyMhsalI(;hy48o0#S5L*lApa+8a$vS<2{2vj| z`R$C^9-Q-X@DxLPfb>m-TGTJC1)BlSXWx&)ihHGX{)f&(70 zR8maAdBpM+Bo}cZYWVD}_@H?yX^lxi3kITRd4$jiBwHs$@;s4CEFw4$!-PMNdHoQ^ z%ZnQa!fCPpScoZMFuj?{e77Nd(tLS?+Fxse#nES3)C0DOI4VpFkdK6NylF=$45*Em zjA4jVQORaRSZM+xg_bfk<78U^EMX?hIQhcg848{rlKE=G)*KTfDrpN7I)V+t5EL+5 zXAq1JylPsv@MTfsIs%qClX2udwemY)&tcSDhJ+*KO)CE4uLvbe9ReOnUa8l!VGW*n zt8?(C2li|(U1&FW@u*!vPh9HA(?_2omf-Leg`w|kU8R>7ggglQ^*6-60SG~RLo<5y zR%_#%Gxs)XOY^q_gY2}&pw*yy;jQ*x$J8NQ{=evT^Ise9Wdp*=7;=W%4#>^$DEOK? zRixw!#Jm;C$=Py=xWzEJ(I8+m+o(L!U5`R!pl6Rj=!=wKu>Vtgxu`4Xlb{lSc7>$d zY^5P?ukXvAFoNUt=;y z20-l^X_Rh@C71*rzMWjiO9rnyiRlmJ5lT_+U-4(hO* zGMi_s+J0%v1%jrI5#H0iE?v`yti4D>D)-4 zS$l=2d@E(G&LCQG&!j1Uip8K17VtBRe7M4_7w-t&NJW)t^E{Cq&=h9St14W@9#ss{O$+$>QYACs z5m{Tyk+*!dgg@&O9yf_QIdBgBpDqMuy7k*j@_Y0(hXos<+&4_U9C%4{MXasVHqP2( zZ&OZfK-~Z)X#`?=k&QlMGLS?{#6WjtTfl}^fMQ6$>^u^J=CDV241iM@lOyv7@7aF= zEuaf500{bMwL_^8Qq|3%|L7TR0ANr6TBfvmwf*RXV2`S{@lx_ zgwq4yjAd2?GI7hK(&Ow~xQ->fL}MO<`Ls=vL(vxqN~BV?fh0iW#!rj}%8Bjw)yXR4)J#(6yy5uh9I?sCa+ z+E(m#i;yRN@I{s-*TG`5y(SQxU+*UPP zvzk~;uqpQHAi|A2fpj-Q$DFy!_4BkRw-5n1o+;`k;{lft3dn&`#y}?99;E3zeZG8U zz^FA2pQ{~`;QquF5MIl2*RNCsg3<1TUdi?JVfta5y$D*vU7vD}$P#z&VBbF;)is}|vi z*-NJ0(uY?!3SA7G5(bX16ih3BLsLRqdZm~R+lOUsAX;}m_5iG%OKQx1a|^{rC<_J| z8X4ICa~h`!(Mnc^w*B&daTp}obP9rw$?-GyTTT{Pa{qb%xx%jqq1O2_aj%6++gM$a z(UxPPv>6dloE2X)U4lw4_4R_F@)#bldgPLL?42>|8ozW$nD~H&T9ZiaHe$8*Q&Had z=p(w}ju?<_<+0N31_@fFoz!yUCF86y{x1g(?pTDUvR}&vhq=XWUoZsd`gP}Kmj6^y zMC*>)S7b#YpGuWK@NF~l+wDfk2fjjrF#AS?mUT>7@p{sIMrz;W#M!a#&P2~5NM9<> zXnk@*I|>3PpUVN~==fe8lw$s`0XerRrspyzV}mlYE!?bQqzjqocY`rC-OhU35_wod zO?Mb9Ws6(j<+~CbPFZSuHm1b#i$WL5G-uW`>7rI!-?(5bXDrXMecSq0u#a!fy#obU zJr7u0nb#VB^q(?7>*p_lkr;w|x=R9#7pAs`5wg^qV0MfDjxy7BL$cx=@jVN12xtWo zMcsEb-f_bAt+zQ3lf;YQm7z62i$EDRgzT8yKF+fCdp}zmCR31#3Pu%?XRS!x#{mxy z9)m87WDhmB`;b~pT`vYS^peD02pk0$u5_~ldQ^Q6N9mw8QA>4fCrp@|I!+~HE5dvX*+?HP*E>fMX+{w) z`_uVVlx!)Ve&0aG*#2zGBy&ysp&cbI$)0rpU-nbglYn-Cr1uJ!7f3CIwae0s62d@8 zkpma73s4+|6D652;UdT7b=_6GmFan4zb2rp76(AssPzKMTjQUf0DHBFcGrZxg29yU-Gy(K>K81>XmP%S4sN_6m+@xb;JmLZ!isi$r`ImTMtqk6sq&Yj^ z;Z|gTLE5XJ2=rMDy7r^2S-rDLm({RgNO%V@mnhz463s!=4Y-C2ZYG=ZutY1} zgPSup{OF9}z=S7pdtwN@y%{Nr9f2(Z8R;GV6jG>@UVALq+@RLAZA_cl zbWs>P|)(esC5LEq;bZ@LOAK~^6kp6__5 z`zJt|7?@BWc991DS2Lwd!0)o(!|F^80loyb!=i;ilYkGnHQmm5N zq&ecY?3Lz6(om--bsX(>C8v0RX`hPI5r5~FZT7KvxpJfq7$MYVzp{!l#2@Y*%almS zK~EFAk!4JB^6&UbFCrm<#{^ni88KcU%N#ZKVMK$U$C}(ntT}R4MIlngYw&f#ozZRf zUXh(d>bYiY)lN`yj``z7sxi|Hyp&Ks^3efE|0r=KbYo=ipa)Z(;b8_3@U_7>%mXbL zI39{yw-yM*C^T->{k8e<@l?cP64Yf{Z0=a9dIbG-q)&`8KALzr00zu&1qF|ac^#5{yxIHSa&m9Fp zj=q^`Qalka84KsaM~1Y&A=R}xxv_QRWL zpSVBlLLPxd8U|Eak7rrxLAcaFES?4DZPy&ua%<_f{k*u;P=Gq9AZ(Q8PFM(Io`H@` z3z5+JnQO4)Ht88mL*@XRoA(Bhz&Om$fDQ(qe;oArUVzc%B1s7&DSaH6Kvu?KCcq?O zKe$!d@E!#M)J+ihd!Rjx%_r?Vh8Kw48h)D(C^(;4k#7p{vz>tTufk+Jlx&{V#*(A9 z=Q#$qA~cCINk`(-5vIr?#b%uU!pr5vK7XcwBmUYb1M4GRT3RTB+9}{lCy-+?g-Z1X ziNw*d`v2BRhuRg|=TympQv_0iL98T1=HkuhUjstMF(NRcx@?zq-paX4D#o4bXYT%t zNq2RK0qhVk62qh{^zaV!k=-#RLh?e4#^xuryCHnkPtpO8$mau(`0+Ffbw)F976ipG zW@cv)U-ssl>n5vS7@!|I83!Hu?6{bGxVG1XNy zV(hPD^{a9*I}9W0&lFQXkxbgd8c!*urXkA8SwpFLhjz~zSbA2HVI~Y`j8V01jd|A0 zig$Jx0^8LchQYW&HDPq#kp9w~@P^~^F3X`Sw!Hb5%qNTBBK*kYT|`f~3wK((Leod` zvNc=lP$F=5dr&mi?Q|5hmoJT5mnYtUO=56Q0FpP(QZ_Pir`i~`Eb(Sj8!YLH5LOF9 zU!f?XBGI^8V5+5oU00C~#0=tNjh~#2?JWwQlLJJ_%cnu%$}#6mD^BR4imaJRRU)9Hle2fi zXJ}5c*NJ-_&r()Zd(DWWoEZ!b`-eVT@5yn6Z=*_3MUmMQXI60JvgnaGPT8hvuhg{u zrV*_JcT4~GfKmR@n+bcM1_wBLI-R&PEARr+ecUXTtUlQBxzTu#B2UW zmF9s7AA7KwM@=>!5&?Pe#>Og{#7v)beVEFsTZUeu)*sOZ;(1eT!RVI;W7slyCM_~x zO_oA~Sf5plH>bnOgmWrx4JtvN0BBgL{uPPfEQrDC*jBp#?-Xvm<{G9L zrGN2bvl~oj`IIxYAyho(-AKT9?3e*le0`rTT;)gArsMP+VDV2yr@UmFJELfKLn-q3 z%Zq%^vX%d@g9`{+f0ZsztFwX1Bv&ZlIWr5oN4YB)C9uZ{bRmy8ETsUHk^`#gm<43Z zbnmSbRk)Ggk<+oLQ|ADg{-#R->CVkj&efU9s%Ow2WjJF=<0U5rmn3r!6=3a5W>>kK&3 zgHO=;((^j!gJfyYdmIjcy!fu|IodbOn#B?MHPliG;=OrV z3H0w;p?HJZPAXCKeJ8hltz!aDL3{LmaB^9K?lN=(pbz38dz>kQ@{W5wOv3oTII-)f zaY?-aFzIVZc3@hI-A*Z`JC}=a#}tOvVXF%U?Kf`Ou@|FIB5f3B!^&0+GtvNcRrrP&!N~mmks;JIT znaL{a<0QkP?84GDdm7XCM!R{)BUsQ@C@sujgq|Aj+7^4AH!a&sbgM#YePaaa(dJn&Kgq}-kjD6_O~43Wq9e%pG(q_@{f(0RoO9H!_r<@O?*>?tFSgq_Y*`{SNoO6? z|5zOJ)*HyT*p%wTmNv~Lm#W(tECZt$m9m22a}5{(nM^?C{i?ne3bY;d)zAk4pA0Q> zRRY2Q*WXvMaqB(^8}4b3ML1u0*ilPpO%C1sY<$o;Gp~cz&LK`kMcUoUr>Xit8uhP37=#3($ z%M6u6Nivv=9&hoMiKatmZtX`VuH=lu#3JEh)gK7uPq+A8&RCGj-cIS$n+k=8`2N9& zICVwmG~yT_i$P>+6q?%Xdm_4-dPSc#B^X7e0)pMM-xS0zkPZ+)-nKW81xU9=g|t54 zD6$Ye#VOCU60JZ~WU87_F!Mn>)6ML; zruR#eQkqmo^8g;+RawvYl@KAw+A6TbAb{ncvq96JhJ4eSbOW8R4EM9#9k!`~Y zxnm3JLKqs>bD-Ak=RGuiSw0J7CJnG^z%mAh@TZ{qn;Rqrc+E zjD=AsOm$Qy{`oe~NOa~Ez%oh(_PmpKD-S0I^2aVX6x7XQ727vajc^Mxb)f=^l%_v6 zK7~U&pjrj|s3&^ynkRrqZ67z)&s4%`2PO2SC}DP}eG<*10}inxTqSPpiqoyPdG@Du z8sqJ$C2_D4l2)%G77&(#;DcQ!q`(P+<2(&GbjKU?)ZAb_kJrnKbec@==2(i8G0m@M zQXV)0ldmbNOEYb%d-;gM+o+^ieP_#x$qG(`dDojpke6V`s6RBLufl%#Si}Udp`A$!Nx(m95GV~>nn1#-Db9Q)io2gU*0|OY|IG4SW z2g#J{S^Z^DHu@LFbULRp?MMgQ)O6!sN}}NiBKFpU{(hShR^-jDR#o|+Fz zW?35pFv>*+4PY58=Ie$jR=^l1VWI0O3t5pox@<0rUL#Y+-~93-VgN_O9LD{|MX@t8 zucJP9BXxMzjlu|^#9s0khqR-I17+ZlE8`_cJ`S8g$}!5y}7x z#{0AvXByI6X+da6RE1K&3&T{#F=bPORIlu3Y;=T-V6(3He%|QQiq4)-lkKYjGbiPT zru7MJ#=|W}7D5>@-=n2EjZQW5INw3D2fG+cz0g=kSv3z)c@t(We{@f{o2VOzm^G`e zhUd-KWJ~=_l$3?OE3G|W4ti^j+h=SniT+d zszSPzZ-2UU#i1#~Bi*9l9LyBa!!irwak3@KxM9@?7?~`{IEROD5V@DAAeW{4w=0Vi z_QlLLKyR6>BYyo9?H4+{jR|=WVn>RbhFzo&??f;OuK>M`t8SQo?cf*#sufU3O)Mle zYjlMPPH0Kzbd|N&&|y5MD%)HCFR-*SOL}?!u2io|kVqEs(Ijqrz$W0zt#(f@UU2+o zBCnX_K$wuDMfAKcvf93|xD<8_mX0eu49dn-?v#&$U;Qw~*BG3A-ekM8PyI2>_TDQ7 zhGJ(q_`0*`UL2c)vxfp3mb1SvZBNXV299k8Nsp^TwIOAI$4y@}oM%wsCwFLB*(oE9 z#&maonpwwXtaKw)=$-2gQ1-lMA?u6)i?snzdd^oHj9{9aw|6Kp0W`s|-al6iTs;)I z_^&-*JT_;2eA;QgQ!46r7O1DzH{yu!c2iC?P3;dOxw_;0CvAsrjnZ7%28<667Lb+6 z%P-y|RAgCAY0F(Ps;(= z#Z9)o*!AfBXtiMJ?}?o(;bs$JCswV9NCbVFGxiZO41o*{VU1gu%LNW_1S&2R z{lV_(8u335up9w1q883|*gCW#Fk5aYt4M?FoJ4ydx~C_d)@bBOSh);4&SpYae)cMh z=RSO5I*HfbMd#>rKsmpcvHF*=Z(tEIc86SnEZhV=Dlg&Ot~(m(#(v3f@pkCfa?)UE zTxcguKwW<$s-y3>I&dX%$iZfJXrhp=psEJ2%vlV@w@W^r_5w9{!V*TZ7g6<@73ST! zWOLwDy&ZTMpDgCTEv3o#-37mzUkrql5BjlxfOq1BkqgF*q|h@-ti+ivKr!nJPd}_( z+i*#(`9|<*M+g`&59b6>`9e%VM6x=(`|5&wzRIbS1%!jOlI}597boc~m;mZFw9Ybq zF0FNbr)IcU%3-Id7cL4#8Lu0U8G#Q5N=f#Os4=H>`Vs{)&RY9jW*M0*+Z>sYf^?cP zGWh{Sm`jwIAqMANf%=kQqS!Busz)2p;~ z!m4l;-T@G!vGp-@#?X(=gHTK99qXed5b2wyL_I&O>^aMN6*y-6s2Ysd5bvu-iU1a; zfpmBTDXj3|LSl6qCfA^$fS84~qtzlqk=X(ut;y}nTj>1KZSQwPYfEs9JXINAwq`U7 z3547ovRYZ+wfrK5=k^QdipVh=pe9+g-ag`N?qjcLB5Ek9a`q_w*yLgZbEGzNUs^$j zE*i>J3H!zMRGgR)gKm0Vo7#rJSZF6vfxwYyh!b^o`#5RV+&)j?y>DJ4!Az%s!&Rid z=0nh#dXI@Otdo0j;+Pxjl(t^gZ2(N!mY%#EK9Ma(*K%t+aNyzwTnImPVbr z+pN-g^U6Q}y=1~fE#~B(YeizUt)E@+o+{Src;_;=)a!(_1@)E(yhI5x2AwSd@ma&^ zclrofu990ws)2x{I0^m$LUX0c;rW$R9M=|9cyal%T2<6sdV&$+#eS7_EE;Ft$Req- znBT)#zuXxp$V%o@lR+6pdvF{w(tqjwdJj{eKJ8v|-*hc0g$ES45TXP*G_b_+aTEs? zIba^H2#Mvp;mKSUAx&l%5snRLJnqT<0R%2hlln_?PNPdfMhU5aOIM@wI)P6XEdIUn z9`q|EH%tGb%X5PCtfmbluqY=h*e$}-T%rYK8GtNUJX;gs1q$D7JHz|s8Y;vlej2Rb zB(5-`%^lnfz|N*%Qg{U>NC8^$v2QCSd`1d_6H(Ep|6r$}&5_QKl)A&5eH9aY+)&f| zZ)#gh%i30kj&AMWk%49O zyvDHD8_ahUb`$a@Wo4S^a`Vu%#VMmGSs%CA^5soI_#x#heoelhM|9kWgWI?Yk&9Sh zHjf`!4;fMv$6eioWj^*{NKWeEGmFzZ+7c0Vjh%-E%&wjl7A-gMfZuxS39ge)wddEqv+Xsln-_p$K$fbx7Ha#wDvi+*KYgNaZbO2MdQj z*v6bvJb($Sc_ZfOGFDhHGwaAT$a2Fv=sEY{i!611tw731^L$}BcusoAKN|k5Zw#CF$mA-?{ z*XO!=kzx|}r31XtiO$|v{Ipn{stXCYgos0{-hM|R+VR-{Q__DXZ6P`v8 z>#FsGTrWGxLs;>)T2l$pdxr;TS0h?9ixSP1_23txP9qyTsLIXg%tx&8x_;9@I#z<` zT(Sh8m09UpxslrnSTFp4fiAnv3Sru;K}1*32WECgyU=TbpxCE@dC=XtJNF5vhC@BP ze(u}9P7@>6Z0tmUE}`D)pfSWHw0Fi~+@s?&6u28mt9~wSmWSWulGy&M--5;+(z)SF zggCSovgTwCQe4g)>Sa?w48HK_M#PFdbjvl+^k>nsF`NqdJP}*22%Ng1 zec`Sk0VuNoF}J2lqzoB_6(ds+7AxQw_oE>KTS>C|#t!!eDm3+;E;t4CNm8OON{<>` zNuErtz06InUNhZZCJk@l-6^;Kd4NwQlr}uPq7M%r%lGMr2}@kHzBym5NPIo- z5A(E~fRY`kt2E==eD*BA;V);SPiSR%G?5WM({6TnwsrGFYI(kvqmT!K*Cs!64E)#5lws@1#T-pGl>&kDKVWWsW-U&u+7FyjB$0Dfx+yI# z%sk6q?i7hO=?uq>fN&Ol>>lW*cJ~D@WUf2+Aau=%n?vg4{%K3|`eh)+8^=~sr7pY& zyloqiB09t^jPlEDDc5j@4z|4xEnY-|Ejp@ZfKO1(S?$8D88FhX@f!j@=&TZ%{Qvt*{|6sCj=XTl;+SI+7p_;gg# zl_Z?~rjq)keTAV3IVkgq5cNK;;ZHxd9fwvPrWd!2+x|d_Ip>sX~iNIpZ^5FlkXGU>^gxeYZW(GV~baso1y4hoB) zVNQX7^?tiVAv9n;N6ny9z|jdmNQX$o64#lwT-}J5d!Z666!+%^u-E+Kt4!@Llwe(Q+rseMHckh^ER%=5&`5~2~Fi82urBtW==+jWyhCC zKuZv)X>z_%FVP@hg9bi!4QHUP;JP|N4pp9g%OS`8wA#Z_`G9C>_VV;C?AfU6rzkK@flDwbMyMuVk#PME2tJvUHDQ7KL zYT*QkPJ*r4usBKhArlrtJLJYn2MoLI%Z67GeLMO}Qa4$`8v7;#oulkZ_7U5ffAK>t02%DpDiV|55C-V31Kpcu|voY&P_OpI<-n7 z!g-T0Id?y|wbadrlT3guxwQ}{S^B7Y{m>1_`GyX~07EJMMDQXA?4Zc}mZDYkwUt=6 z>>;^M<5K+<`1vXwr62=|7i%Um_eNEKJF;?VEAW*Q+$h~)XyyFumDDx6w$g!iELY6) z+8DMbm+LSKqAP`()d58X`Jt+|%{GeSTT#|*+19scF{Ev5y(8q&sG#n))&nDa$B zZiU~qMne%}xZ&%Cz--(EiX>5@B8|zK0AA=|PKFMwi@u2EeaR5X6=QYgvu$_bVC6lh zfc;geR5WnvMcV$$+ulJkUWbMZjxB!P}B-zl)#YfSQPPU%M_r`QyU zG>s$!*d^yu&AFZlX#Yw}Vrd}Rdwiy4OGhTysU0^6Zh60+{0VOfo?~;aK#nSIOmP#^x39lX}3Td@7nTd{AYLnl<0B9)-erbDn5|Pc8 z*L~Cmqi44w`LC=S0Wo67cT$bk4Aww9`LYIX>#82wVeyWGRnFRI$8_c!Z<~f*~4M_rsQ80~FU6uTNRnEBc$0W~ISEZY2edav5{B0eT4(;|#SVia~~c z3c@5qFM(h_p~0;rWP`${ugNd$YUE?2digq~vVm<9ifvjPRppi>kz_27w4A`7Q+FuW z_*4LHV0{@9O1i|DX5`ES+kRm+faFVL>jZca4z6GiFo+O!EOxx1A}spol7lswjig0J zwj{k!wHz<*nj{TGa<6&fWknb-CPD30pVTVZ7f0!&tULq(qbm%WBC~>F_?;@CA)LaM zu!htud!~kyDCWh8Ad6DaAH*go1E|8ixze5)Yh5IvE{`biZqC%57f~d6p%TY$gk0h= zONIB|8F=JS`oR@PGZqAy;Ao}-5ayeucxyL@)|6K;d?mvO^icmk)eW$#f0VK77rhS!vNjdGEil0GMNwD1G z3!FxXt>+Y7I{U`AudUL_l0w7Kt_j~J9MV;hscGJ+D2>}Y9gdGj2VlRjH)YXad~cK+ z1ALXlU5a&SUvGZ?zhw#iAzXGDgS9@etyZ$xCZP2`L9i> z>o+sY+1Mo0Qy$lDd*rnv0(L#LW}Jc(7{x(>70EXXmIm)|ZwrhAPY&5L*HC*R|H&4W z$IQRnQr+>vF^(3R(DrM%3I4}cbv$F{+!eIitQTMuWcV$V@xP`Z&|O1_NOhiLtz39R zk!(5X51NG9L)1X9T;JQy>x7t~J?qP1!(J&_d?S9s3}W5gXAAt~h_*6TI?N`+7mB+SRj5Tf1ea)B;@PJawBk*mYK+DEuPbT zQ2YP+;qqBcXZI1%sXcP@q=nvTHgykv=9^<45M;`@Qbm3AT3~c@lyxSLs5_366@}8k z@sS+BPVnVhZdAZHD%9fW%+JDNogf|!6MmxV1ZQ%v*G5lYXs<&SnU-YE!ee!ZrSv`t z>;k?_D`4>1c@;=3TL=e$9(tdIEfP#d}vn86FjA4&yNw_f@{oVYCgT4KK zQ7=w+f$3^?ElfVyxg4?MuMf=7dqVJ?P??GDqGxj8BDytF)PI*K5Zc_3{VnZLKJco= z10QlQig_^T*LgCV?j)o8?qHbBWM&07pw$=y<@fZ z`F~m=7BtywD**JTx^xP0M-oU0UzKh4k1CX6zOd4)q#4}_+AmZAO6&DTlU;d@ zxPmxR8;?&47o-HZ$w|dC5ruYx646kMbp1`S^mGIOKKIM?-!fdmZ?S@K+KOAlk~yQ6 z-!l#f+nqe*k)4QA?~A&YhvHcGkV3;*6B)^;pv0yc6wDxWZET1P)<}U`@0~p_bd>Kq z$WP%!j5p7n*L=IR+jc;sb{Ht}j}uK0_#%#~f~ap%p?yMQoO2bSHW>UVC!)Pb z*fH@$F!UWVYZ)P4QH?_vM%X>az4+>*Z1DZzFyI(lk}Lhxglp#xwoV}fhuhGYQPWw6 zPO0THDYW+ICB;-*uoFBm3rm7qZ9f3b+*E0T5tz1#+m6T#?0^%BH3RHUq>a1%4oh1! z^Il2O?w7{|d>e$zRMw)04!;qe_LE@HXNmn#DUrEPF0fjyAb)TIYTXh)f+Fa4XP39_ z7vX976;r*Zs>?uxMb59{b^@C^ajrFK=;o&65`Dx`)q;h$*~oz2Lcoocnpv`DyPY7g z>c2A&J6oDz%A_Ct;h zenZ4Q>wmc`lO>;@d5+sbTGUtf1qrVQ-Za zACM2^?puHF6w;Pyg?X6#5*K-+wuLCw9XtPOQQN zpD8E4`wu1sbI$Wo{B>YvsN9<@^6jR*Y9~K5lIb8!$SgpmH&$^}za+h~5Vl+PtxkDH z^FQnOPSCA?G>Qi8{qV=@YvRm-3-0QM*^Mg!}om;>$s5?qD0C4-%^xiiL5Cv7-4>z6h*3!o zEbEY3-NwAeIHwDNclkuH^3k+~*d6K_P3?pQLXl+Ce4q(jrU9Kd z0R^meA%RPdY|Jl?;;Dn~`3ifdC!;)kLK*eqFBB z`LM0~sI-)bAh}AVK3_%SS@j*#&}u9VR3B3zvNdECEqWaFB1*-vHCn&fhz0_Tlr!q7 zYh?`l4*HX)Aa<@`LHV=JOVs-?-I7aSDv&3Ri@5&GW?@R&8Uf7qiHMh*%?~)2*ar|c zBWM-f-VE6JhKMI>3BZqhMkR87>DI0%G{xqZ0hJ zA#rtS7a@b6u$r|h2j)5)5J6C!=x|v|0&l|iP*YBwU=AmkA#iaK zx8%^qBaZp{&Z9A9N~#Iwdz=DDD~yZmQH&sS!G`z%ku_oH%s{CY8}_mcd!?IY=971h z@!Y4pW+KSe-3~)_;*XSve<*th{g~Jp?9QCfqwpfQ2F(S5&?>eOjYKn5 zII5sLHKWT<@ZC&vKf0Si}oRI zY(*xETeMx%(lPke-P34VLf6WGvcBxJM#_B@u858fpwTpGH664!Qii8-2@4j|mxhKA zK*+wwkmPqE4C$GEE!6fTxXXLV>SnDV_srznl7ddB$veeMm5t;fwyIb`5`GeTc+_N< zUMy2Z_6S;YdKx_?-P;J4H+*%BMCJvYNrZ?xl>~GCW&h&Yw_N|de04Ua*b`0Nsk&f@ zhzUd8g@u6efm;#OS_#QOuO0T#x`2B08M!`b z)&*YF_^`fwY?eB6$+1hVy)H^dFSk3|L&Lc!l)sm+sM-ubV@!ya<)PIZ{J+hX>{(>{ z^GxXkc{X;EQGw1;ZGfrfJBbXCi~vGZ^_phBez!%>T?CQt>A+jKIUWvqnt{){r6LQu zY|+Y4ni#oY0SSKe!D3#?PyT@ntz>a_n*ZNa(`gnbpchmX3D zvI0ijR$M4D=Mr&DHg?56w;i>(O#7+V=X!S)WCqX*4i(3XaKOUTuMF?=4QIWmIWdLh>1wK7?4l(_j&=vtH_;JsVswPnOKkK%Jqr+f zJROK@P!F|-(5nRn6d8mDy0}q78H|oqy@cDz-fOdUFFI12@HW7vq6L=l>3JI8qCqBN zRC8!L-054lPaYmum@Yvz6|f6EC0;B_2y1Fw9S-HsIcTLMAeW3>^v)#t=9s9Mqcd zhZr%(UjK6esu2L_^7 zfY`y3=yLJbhD=w3A!)O3LF0Hx5jm}=`YF(_nbAmx)zOc%C1&0slxE&1Max^DU)bdZ z+}8&N*{9o-XeFdB1!R?mD`bYn2+mOejO8wV#Lbw^yAC+{2n>&>tDGIIU-QrgSLy_M zN^0EXOULdAV~)by5^7=iD;JRY9U9k~S@!TljCKf>crf_0?@h#^o{$~KLz{T-t(YUX zB(f~$jM>14Q;k)`bDW5@3>F=_wHHKVGFJTw)oq(#1sH3oZ8i$#(#;oLkgnTwI7#H2 zx7-;@_!nMH?EF?5iPw7|;QR+dH--s?tC6NsmahOX!JA7dKI6(W0w*x)h~X3;XTR!v zx_ddmaOTKEv-gIVNZZ!?B>pf_h--;=^6z0=g#v7Q>CEZ56kX*Z7=4&q(X8w&pD`pH zj=-~#?nWEpV9@mKCsM}SPYoIQ?{tp;&hm7C8`{ov?igh;UqltD%*~T=Vd2o~S)8Q-5cL^d6!#p2 zz58F;*H~j-{X+$PDWPLT=b=6+cdlxA3nB~iWL3)KS5m-D`uKs*JDcekR;kUIHX{VY z_|507mq)#IK*=KeLfAUzs>(#XaNm@?7iU5hvWGPmxBZKfX3LHL0TrDQX%7D$>MXi5 z&AG!nUeh?T8OsX+Q-dc>9==Iqzwu)KD{ElM1q4_*PX*s>E5-LZqnINQCVajDBIeo% z$5iLxoJ_AU7dA#chJo?~9oQseGN9MSZS`hgEH>AF=LC3wVLliDve4}9Hq?#YE9})Dp0Jkj7~oBiEVTWQWo9_}wGPW~i&;WyZG-#= zF40xC)$0URF<#Gr7PdszK6%(B#4ZPfKrFEQ>fV+KifxBTY^dVv#-IFn$w z1F=pKo&n3(Wf8{x3Z`Jl%s3?`@N_eAp|;5N_O*h21bpvYQZ?Z+$nOjeam-5k`;<>+ zp1D?zwM1qKWof_^-oeW>BYqpQj}ZF;!}nidNchqS++7s(8VcA0Sx}GXv;rm98k|5R zut&Zy6|(2n&JjXb+6Uz89%p3WIVRCon_%{@$d=eHWo6E8wL?oV(bxFX%;6l^N~G7X zbiFn+H+hXOHR|}l(Ey7!G#>X?QIaBBt*V(V;XF@$6dX)k8y(4DZ4P+=M(#G=HFsPC z6>Of&J3HChMq@XlcpR-kGmE^WkhXkMI}tL!asKoxkfQ=^ltf3}5wjqwg7Jb`VbPYg zJGaBg$>oU$h4|wCN*(aT#K!2(m0RTZG=!ZdPbQ@G1oxo{!6y7D+f;3S9V5GAtPBDn zJr5orl*93LmRWZJ2NP9n#;uT2v4k9b@QR5lvd9}JlSJf`j9$!IXfiuP!GmeGogEGR zKAki6hec&EEk=^W<#bqI&(tr8+hfRbxEMn6b95#cGxxl+ji!Idr6VwO>VctUCnjl<^tZ#_X4b*ah8OO8B;6z^}X6!3Ehqfny#)5>Lkvkpz@C-wGo#fR#Ea$j%Zw{vS7_9{rW1 z(vw@V;qg|p9~?kn2mf@c>uT2;(@OHyUESoQ4amWGlFDIG~b6k z-UgKBTupDRlb+;r_f(y$6&D1;HN^$TvJ*}3htL*dphk`t9oR+Kru&ap_BBxqoe*&~ z)Vj8F;)$fg0hK)FO=54uve3bZc$)t!eRDxI_C)e(3BU+$18hLMU&4_#3YTdB0Z>$& z4IjzDC-la34O;N_=)iC=6;#(4p^8+CX z57Sd7vSj=BGea^J5cY?$3;$gIjN~!-RkNtIEtxj#ZkS4vIN$a&VAT5q1(KLp74C?I zK~#%|l0-@fGIs+yl8?i=c*mG*oLqJ!NfFi%ui@Qst3OI1}O*5`q{6hbVx zf&}-DvA4o04F z)NcP<#wopz2qe|@pM<8%I~u3Nn@M7ji+j%ztxITOX@}BBJ#>xX3>Qds>K7=Kkhdyb z+{^(G*MKRjAjC`ZT+nXXMO%_7OMU@kLseZfbzcK?XH6pD%tF^Bi>}8#@**JvEEqK8 zTSX=rQ!KSdjzf#gkS2Y9*2^xopZYnym!2(6V@|s#k&_5A$o(4!zZEbZutHK~C%5DS z-Ie=>i_eFL&b4*iHCMmXq0<1wO(1X`Kt!SPRk)12n>VIxG5$!9fWP72uS8^Z$-4{7 z{x{ME{C2Hn*pvKR$fI zJITfZC+fK^R_tu7G{mb8j1_W4l*7?ijhSZLNcCRIK{TH8Z49ZO#GswRgxlY$9s6-R z_oxEs^Y`g01z^wFQJ64rcCeQluc2>rO5HU?4iP`2n6^vHcg`z27z(o*QLHuBqqYIc z^zE08*v^zw)A>u{EmDkP@N>q+57Ob3Hbupgghq^{}&>|C} z@uJq59j}}PUliO;Y3B?LMe5%mAhq7VYJ35GVtDB-U>Mh242>*+MZM;9xYm-hyP;&#l4{!S$ZRGMk~L;L%kvtC+_H}=wn@QsaRv8+QSh(&jlK=eQQ7`zH8nHe|H#=gPnY> zI%2`NCRK1B4u^CK0aGmv=uNRU-cHcXB^QGU*3Z%fdc^qO&rZWkNT(lyi27Ni-{e;=HLBw<&e#4YAhRMZ$uOm_<0E~b$9n%!jhQs0u ztIN=|Zz?aWN@z1Nzq8Mh-*HP5%w)>(I==((!^jDNbfJ}~{|($GSiMv4qqo{}pU&SO zNIeuaQ;+Yw{lNQ+{~WyW8iM^YG5#4c);kPfS5Yo0ANIt{XP^Q~#QYli<}4_3SJ+dZ6vIrX$g|s`pT!=LJ{1GKQhzsdYjSi8YG)iP9Zru zL_{K3OF?FX{}Jwj=Jvlk1#amN2Ktslj`w>E4x;AliieOJJVpNqoVy>e<)p?!_fL5n>ctaMWC%BM1+5TZ0cjTdf+?!( zW*vi|W^!BgXmBmiSN{M}VxNj6$#d22Q9Y!ikv#z`O8)+yU^p&Nbd{UXX50X0`q;C`recx3R>k5YG)Wq81`sk~wj?Tq8{D2``3rDdpW%d&+n-7N_)d*L8Pc0`wg zBSeci3DaBC9CIjXYc>2I!;@}Sb@YX&hBz5k>jy|hTZ!LL3I%1MPU=&>ApJH%;@}h( zOMX8Z2D&t+xzwdUYREtrIR#W-jcO;*Mf<(kz)i;c^|Jnz2S`r3s`8va>R)h?n*02s z2|nX;rNB4B6zrq&ZO@E21}Kc~S*`7tQJ|b$iv^5a>I_Z;hI=a9SmiX6*ohsn?y;Dp+98_*1lD2! z8!oC{l8H%_*=Eg-z=zcr_G^j^qw-nPS6wQAyTXr(B$BGHV zif7?q7sy;W@E-I!kkW)S_OQ#e1#;k`FO@#z*oH2o4G;q#zOZy5#wK)m?SL4#_ywhh zJobUh+L3PH!MRwPW{653+lm<5l-IWXwr=0Uj@fR{HreL82nqQEjH^Iv$f4R(-BLiW zy~g7MLW4Ibj?F39m}q_RD41|M5wKAPm?0lH&nD5)=?_e#yAYh!w_&zLKa@Y?I~U{B zs915Vv6ku?vMQ`i9JMQvY*{=o)E(DgocH$cH_RE2 zmTcLV8xTQEu1$P`5F6e5gu_YoPHAoOx-EH|2x=zVCqIy*mThN!%Q%uYgpnvKR>$wL zk~6mAEV-UMMiJ^mN*uc~pT}P!X}vxBu7LnN7Mz4V?mb%7dA+U~b~5SejN|TG$>4WR z(8@bE?~zbq?_>#*p}q zCVTHK*yY&_hZx+OS+C`Qnf1U6{%V+?;Y0YnDv$>8|}LFUk>X=zg_Ro$LP@l z4XAIA%(uSUdr3Dbvb7TJt)x%#ky>K3%yiXqSYuSA(M0M z@h(M!qN3CcxCkoppcu0rJ)Wk>?sBdSL zpUm(?hB7mrC`}Z(q9g~)xO^9B8MTYFjf}gtX`4lqt7;`|L%w&=TlJLcnBiep?aGOh z2_du_TeaGPCWNzAzou2IY5NJRphQtJW7&q%C#i!5?W&se2-+VG171?)OS3uyGs`0= zBW1A#@qo8%7m;eDbWRAn$eP#Dt)wq?z}-YgUe!L*NcvQSugIB(^2AA>s1qkqq?3ly zI2=Rilf=T+kWpyE-ooYJqCSif>Ug1TO%!EL%bIA=wvIwHt#}FFu}Ac(Gkw{a9@ne$ zxNK#GZr3g7RLAQhJmULp8%gglp(*Ki6AG`-dcj#QXnV0*O+*TO4@s+yNlx)DHHkawXq;^zTrx5ww*X@k5wKdli*Xct-_ z?RwiS2&lWLPx8Hmt05n2N9ip3B(Jjut%VCpi)lRB@ zB8iBQG?XgZiIR4rgbkg;95G1rBgF=-$m}Rwj(PbeI)bEeSo|^`M_txh3dFLo7QA7x--l6P@kk^FtToD=-#NKXeT)JaJop_$cNKJZ6k|Fq8}U*S9Gdq zTSrk+=1y2+igm-I=tl0M09 zB6ZyG>Q`k!Sg*s5vQ3>YwCh_(u`aFJLk7{RG6O>BS{4XeSnKpjDtX;x?zlj6QsCgE zz#(-l-%%QelX4}BE8khj-r`Cynz-B< zJiRc^;HhKGy%7Uk4J-43FSI3BLw@S0LEBsu9W`j1iHk^`G-%uD%Kqk3@Edmc4sFjn zJ-v<%f^PTdK)vIe*$v)|uVa}HE#qBV?8fqA^D;i|26t%J(K2e0qhvr!#w{5(NC?ec?*L_7 zhZU1i9cnV^TUn1$#uLx3rEc)DSgls|M+i`7kI8miQsU6Wy?j8s^=D82`gI*ET3;X8 zAn$&gJY9l&U3R8t`q!&tb*3%PuhTly&zEAt8N|i^_}pO(Zx7G1w5(L4(#3UN7Do#XFWz3SC&O zS9OD*5JHBqI%I}e)MQr;EBP3!3U)Q+8%6snCCxqYecihcFJ-rk9Pf@F9WSizIj_f9 zRWr_M#h9JSY)5uoF^e*0@ru`z*?9=vSht|auPYwb=Pw@1PU_w$#wcUFra*{A2(hl4 zrrqe60Vctogkn~Eob7P#pEEPSr41hU~5#z3|gDsDP)!vo1tW)siK|p)4dVAJmzx1OUan4!FM(9g28o2FRMJg z1?nq#j_6A-=XFVWt8PK}(M!&Dyema6yd2`BTp4otFY^J;>zdZRvmI9t(7W}ZSyyEWXQd7UFwM_T&!NT>lSo-MJKIy0~(L)kg_9c2ik)9>tdIxNdE{#`|LRyG6ydvcbD|eeu$`?bI zl6Xf6tvc7qO3<7XHw?M-&;shaSts4HTjoR6gTA76qgMA$5skj7?Wr!`)ANy3nNT3B zs{in(H|1s1`Yjw84wL$WbJc4RXB$eUR%N`lG|s z8Xd}#*7g(C;i+@Kv>W{OST`Xz$_)fU++X~u=40K2F6^21i1+IlW3(~CzfFFI=W;*q z)~6!}?Yiz8ygShNN@;_Y%a@rl+=A+qL1zq_J7z@(I^4}*jAc+f8>5w|at!ETG}CJMk0f7<`1G=LLF~rzHv}yx{U7Ux8ldDCLGqw9|<>43JgB z+E9fRB?#4^N*uVDqJ9xI3XztfZu|nj^>!h$DjJwq|7nBWE<{gSs9nk%X%a=0de2A!Qj06rTaW`xY zJ8)|F!a3(IBmYO^pyIj%c{n~y?uK3W%keWj*NygvbfZodv~7lmk=!Wd-dr6|iWCW*~&F@R*sK-)lS5qtE9plp06cyN%U*(tV*h z_ugxrFSOEw5e@M1^o}?>ZER;qd%r;xcL3L=kT`K?=x~3ajQi6x_lJjO?vH~K3e+_E1YtYw5$sdU z$>+W2PI@ivFWg*z+I-eat&-K?#WS-YeG$q*Y1LCFj`^T7?fy0fe*e5A^i zm)PeuivYUZzkY=LwDSo0>w3(1-nITLpzawMOQ41jR=+YI`m(A$&4b10s%ltaXBC_d zsEqtnOzD{)op+UGUBBr2Y_&;iFy-f7Hz=ff#&)#qtU)nUI+E9}!e%{BWpx9UAwpjCDYx>eP7hNowrrnN9iB&@@0b6U}g zkPS3K0mYQNRoE$=)rg=Zgj^$>s{!;AbSb?)e`ehJ^Dce0hgLm4@K$0ii-3O*0{_lR z^iC128@_JnjCk+8$NjM2gE=ekzzS3NU_cFddT3~92&kp(4B0~CTR}*OIR~7Fu`q_Q zEb9~dt;6fX`ow$)x*M&qiQTF!19O?fL@P#Xv31j9HNnKoSP|yJ{4&?k(PTHiFg8Z( zL{qHnP&f0;p(oBc)Rv09|Z zTlFq~)RK9Rs<(#oNbCyY-mb^YdnS zwwSZX*jg(SnA6lBzB6`HAqELv6Wbout4107(1sb=G#&J=MQc9_v+@~2^>eDl^jy}Cp(>$6T z6KHH1aN|2oXw?49xb&CZaebq~c1)nr(7c9T)Oz5u7Y?H?csm4Yy8@#0IP#0sTBy5ybCf5;tSumGT%eBYndY{_{xz2nY zdml)X z#~b3udof0Syxw~?e#RkwQ1Q_Xq)%{&GiX^4W*)QRYzJT0HALg6u3Oe&kL%3#$N79! z*ZWy@h&~PRqvq1w8ARjgYeW3d3LqU`t3MtN$#$TFm{Dxb5j6KY{b2;e52@6T9^yxo zC_jv%0P(|*wwsH>gJw3PK-foLAVc&C!g$y?4hoPUE*k{3Krs9Ph#;7uTz6dzj$D@O zQZY!ug@F^d=DL&$X5*Mhi32)icw42aYbE0wMX>Kx^ zOhf!|shuV?cY&Bn2Z-=#944)CY**cc?soANEuhA(suj_!9)5fe|MTH=plu+WgZ4hJ z!+FcP=tVD{m5eFW)qEOJbgeU#n^Wb=lo2ql{0*Het@Fsf3SkIlTqAy3e*K5#MzmNE z2;G*q(DQq)me03T%^uOWXQOtThuMzNBeu=I_ukO8Zdqq1j9dmmmDCHGT+0Y6RlNYo zjoh>!y{m8U_Oq!m%#2_)BgS9c%Vo)ORJ*0Buxs8(1tf~Pm^{b!x4m)^TZ zF4xhc(Y5QkTK?Wyez9CFcH@&a{t@z+_`thdZ-(dk`=w<)ES^7G>XTJV=jkUY*&rdM zlWtjR%Y~HA(;vOXj_j7?#Rdr}-SrOdeM#@?F3Z(BY}d8=!>~`IQ^uM<+Aa&!(qe~M z59{x5{_jC|+xpiQbT13^ZnUTAlaxSgk}sa$Z;m>{!epYkPOYlMQI`vfT$$@qEf{iX z#A@Dq_F2e9!UXd}uIqRg5_hZG)*|GM_<2CuEkfRiBectX2I}fiUANeum5Ds;ZrG;? zZ?-^Pjmfm5E6;T~#uy|2G;S^_rIg+Bs@EkU!#nFPQVaB~-*EGdtU}n0W30Le;;7u% zMO?Q}bJM$S+aTACk1VSS&hYTzsf6#x+Bc$Ov_YH{j9hsMq;1!ybs&7Aae`L`gzc&M zw7Z*LOzReO9n#<%zGX3A%4W&jlBLC#l=3lFepepJ55kAEm0(zr>#ifZ&Q<=ZJbjLr zR=T7Oa?WUI5SfG)Udl^KDdntSmC1OL&FLH+2qA>jI$H=~RaLNpK>GA53&_JUJtsPF zpb_KDhqONqt92pzQsXG~>B(z-D#<>*NNo`8vX=T(L745ZtZ7wfNxQLiNol=0g-|}m z7-Reuq4iO9a%5*bjbX`oo}Z8BjHimQ`emK1NB(u$Ak3$~s13ruF1uL=(m3X=Ux{5u zpI%jg_<;d^dOtkj>4@Bn+ zjeg7Fi#7)25g{+c%W7Zyqpt^vhu3wycv-Jkp35E)L>^vA4W(|E;Btk<%EMhKFJ+96 zKHNBN2+JJM!-Z#;8tUTmu{z|%WefCfm*DnIG;imaImq=M4^W_ZVYcJy@j!pZ9g1=j zaGex64CUl-ypE@%aYP+qR6gi!PtWxDJpx|-h#r3b(jmXa>-0%S{FakLEno6=$cjYL z&T`UO?2tyXNigxiv|9x)1JeOR>vIvdCw|7ue3)^g^+2D(V6yUGvL5kUv_O2mNA!50 zl<~kEDOU_#B{Y{qlkqqxu&Vd~dO(H0${_Fdcz_QSFMM0bw`F;kd`IYE=*jU7-G%ar=E@7KEH+Mu<}z#3TX^ zm4p!Nb_iqAr%5pJfD#eKgjRYO{Am+Sz^Bjq3bn^(Nf6kdP)s#)XdT_&T& zBOfnW%6RFVb%Q#Uv1zXy>%?Itadr0`LQk*Y&w5U6iQIp;~5R(**cP}(cI zK?P`2p7cH|$`W$v$jWxmUlph?wKF{L9mC#ZS%I3m*V3aotyyOzk7+F{bgPa$@bO1( zKZ3EuZWF@Sqd(=VZoafYEu@969-ZK(ar95y4JhNQ?t9Y2rf)&;{qNJ2Fqs|>hD91a zw>jHUfE%FFs8QXeQH5>+s?Uu}fC0SgX1W8oj%QO(r#k?vHO`AW)z~5c_dyx=T>$mE z8vOuVar-p@uuHgIqs9yuMMj^dKNF)bV~T;H!tK9kar>nz+`dbT6>gv93b(IGxqZ?o z%fjtrlnb{7F5Ld?!ebU0IHJ*)6Ld$5p!b8Bxu;ZdRIWSS;exia1#Q#G*-p0xUI|W= zV1&w*xh|!ID3?AgUV&C#mG;05ZK`M@_;cFS(vIlGnIwTj(}o>bw; zIqaGBDP8x?hewY*yw3Jq?oQjocfYP}SJkVXE@(Sl(B5feW@Z>4N!V3Yqw1WEwQ*JP z7bIl4LssW04#G1PdfDmd4Gfn9J5<1MpY0(7%}u%d>abcK{sP;8QQDt(cSML0fu-At zqLF2Fe}SK6JV?z<1C~h%~a;pv>ra`^4j>4-WR;IGCw2rtBeQfTD9Ial1TjP zBW9lGxs`5aH=ojIWM`^dk3Y4S{kwd;E2qR?;4iR^c*{C}fq8H{EGqnk%d#xXm$xWo z{(_JTmyRT13X~|4P?Q84TqsUBx!9GL(25d^3Kj-85~+ZYEO(!wh^!o%(6w4J^kihR6r zvv1IPPv!%2H#eu#@2>_!!7G>tcd@v$szh+-70g4NCU$+}(i^vjUVihr;dA5i zEqcW{;jN^FSFnvJG{ZATkPPDyjDQ3pm@JS$MHG;5gegD)3Zw{Ugb>0fRpyBXghpr* zqr+khml`T}1Fa=!L5;A5>&8u;BWOmD0-WyVJ?Y=biQjIn8wicy1o9obCtbu`mwM9V z#_Li~rnsBQIznAdkea*IT*ol#^o=5TL4+&ri4!h5IZM!NIJzoNlE9LNrzDk<8CJ_@M&Ck?Y+lQTt1(O9dk3c4?jHGZM#+RjUdApqkE$ykOGZ@HYf?y zP7*YC$3+W>E<}S8lu*Om+yag7Zu1cpgi`WotWUFoSQW8KVpSzCtirG=!>SQhk+4eB z;zu{ms^O@Dky0aqAEpQ z6iq2g6%}nWBhAsAF*`CDa~YGxSR$D^pG^_dbu?FbI4_82lXG(=Ra8{OM{1u)qa{%4 zb(lK3sXo+vpHtI{Ohxl1h=;>a+UEU+hfY^s#ngp1ZF%ShjpWo?I=n4@^Xr0J6<}@c&U7QmS78uHhQ&#q*)&tcl0Xj5rYFORNT?XvJ*w7 zdF^Dnc}~&BMfb_T%1Yk3$ipdeb1HJ_%y!W0q8E~#E3}QFMBt%J)(K4va~XuwNgL(5 zjHiMpW)x^HMT9QyCUj#}IXHzb6PimAA$4aPF#&<1rn}oTQxGrbP3Hn{{VsExYPCN1Win|K4cs4urF3+K1jReT$zOFF_-zf_HbIx zl0@k&kC_lIf4R$oDAAUhM2s^LBF0;o2vIuBV`hU~x9!A*?D_(UVST zEmaZ`Gi@%UkSrbE^y8&2+PQ zrHQ4Qd~$B}j4>JGg|1b%(zQ09TOF(Ks;WMvds)oIm9pfDE}^WmIJh|Bx>HDV8zc*uj8OA4cW$8k`jwckEm(YXM{dFlSj`SePy}2&c z0~uT@nrL#dTRPE&SMCnirJ6vwO^n>rb*Ub7aho8y^m2D`A+7q=r4~aeywq-)4~jX* zvWskoykvc+btE5)gp^X+VmG178?-FiVtcGpA1wyvq4dpV+O03WOLuYm%(i{7&8L}p z+8zsIrnbc}?ach);oQ7Da{v!to?pqgrBYTO)hy#ty2MIVgt33IFD2Pl`{gogOC&3= zJuBWR@7zRidua&z|D#RPSvU*ct9{5#zakpoG-re|Gl)H<&Rezh^x(oWY z@-?+R@}s+a<0+<=f6*k*wdJWiXFlSUAHAl+Hsoc-WAy8IE>*j!#=NCgA2}H{j7s-# zSlYUW!}IP^FIbqFWP7e#XJ(6qzrkDmhi4NXwY%L|m)K>}v&yG*ne@>&c&n54m;_v5%mdr()m_yEyrR5w6T!X2z&vdH ztiQkcSfA3hY|l5JQd8=H>KEL6N^&E?^_TI)d-2d)*%kxakW*yRumlHF(jdA3Ek}0k*MHY9vDVk5DrXT|3AR5QThLOpUB|Nw;NkN9Y)x0aBghrUc2z2uE29*?D(1K+(#Sjmgkb;Xxa}y3sCLL0wAOoTf zlN45XG}{giGRx8{Kd>lM&){6?{pa?7#^*S6-%)SiyNHc^a7flor~Z z8cZFoOC`C&y{=0o$)by{sGi8|y3`JOz|w7T`Lzzbh~moC!PSz=YSNNS%{?1Pj)(Ha zCz;y3wu2`wJk4DWS99VWBF#b3N^MiRF13RtF1;?L12FEUT}VU*J~cE>)Ig=iMbX98 zu1iH>gL|&&lrbb)pLryCuB{PYM^mmcAXo|NAP?;Fnw*kWzZk{!nV#;(Q;5FGBH%>YsYvrgTIhXhA-FnBK{KQ@rbBd`yfDG{iNYyTN z^W#SLspX%vv*Mc=nUf>O9D;3VVDw@TPp>jL+b1BV7;9yqrG{`dVq)wNE`{X~af*qt z8fzt!7Q=((p$_3{WFX~IJ^bh)ez;VVmzGfi>T2j{L;;2`Y)u*wha=-``i`5Bk&%(P zW-^&fcQ2VtrYn(yGTj{j4hKeUI2_iDJuHBS!{KuG9u7y#-F-M5EET|j!!f%126%{h z$nMT2U>-_$=OHu>hoQVE&Ovbp;&5(gT)_hkw$VJC*v4kB6QW-%l$Yu*Mgk7UWP#eI zZ-yA#Rts0&jf<=tX(FO#A|V`;^5?BUVYqDdO4i=sM;cINW{^ zBVZG-jT*2`e;Y+Rx|^%=VxVo4X{{*9#l^Up8LkHZ#PKA#x-bxl%?XJ#@+_d_1zfAE z;|tAUfeI{8f#lxb_aYicLm5*{Wg-}sG7=$Ca{M7@Iv$q_~(`AOUJ&ivwK zm>2PIV64U573Lz*;S>RLc@xBAW|*^!1B@ksvpE4DaW(oyJRF9?+4Nl)7Y5okZ%0w3 z)HGC3S2MBEXf#SflVw@9okSv$Xe80u9F)yD;ks9ER#uK>XJxy_)qs=Yh&G6m5H!{w z^zkmYAH>6<*2THgHdEtjbjRGjI}HA8`q@l)lXKhj;5X#mA+LMqN+dMtI8&c@gy_X(LcNy%Qogz2E3H& zjXw2V>P?^eJ7m!KIW6z^s=sHqmK%LK-Q+ZmL%|;!M`gLlowWCx1}?`tL&2T2k9Z1K zJLw5myF5R^)zIikTR-8$srybpAI=Y#Wh2VuaAL%WaV2t4F)Wkn2Pdseb!~$rrYRaq z2$(?@V<NlsNaug#k*Z05M?v$|H@RN1Y%8A%&dKyAcU?@%-5JL z)NE%;gb>2>O~){17h{Yu#w(G7ia4j&98OhLRaI42A_rBS-sEtO zS$a3AH7gn6YoRA(c7=lZ9WS)0gNNo*S7s{ZicY7SoB1tg_MG!3P1Cf;YmH-mx_Qmb zo7}CcJsW;jP4m^K!=aSYQ%dQpYp%M<%{k{ZIUFT&P?pvw9&SEbOq+8aS|rbgkI@Up zs;VkCXSf{l^UhVLRTV2cfuG=N@BubX!euDh8oJ5pI$hT_qxGFLG~seQ9$9VV%3~e8 zF%dtbeC#`B&^9Jwq9)=xi`{ar>$(o@X40;WiB4`ixs>Z-W1=hKnBj83m-=L4!o1d} zCc12^E#_V`Tn@{+o_508Ot>2Sr?EAIJ_1J(!$^@E`Yk7OMV2c;&0PzHRaZ^PLk{Iq zTBNQ^RwY11ks7#I^5h99P*}a55FrdKpyEgjjDWhT6N3%W%=A{!E zorud{h-4?ya+njrPK4z#MCgfBHxao`L|*1ZtP_ckaU%0Xw9njWG3093hLx*b15mlz zt+B<`E)6WMb_-C&)h+>|xZ1UG;%fIqg&|kF1F&+nD*!52y8+nZYPSZ9t6cz8akXoU zqPW_vS~zjF+u4ra6k~%-rkEHTrptKDXDUp|2Fb8NrOSXZ!1*vWU_LW*9Uh}rFDy1l z2OGq49bU<>Ox&P|RG0A=8t1bJ?3xqln1AyypBDpmzaqevph09g>Za0d8ow zhQ%@;+NEKAXtw~?hjs~It;~mZZLAONo~q1;b_d`?y8^I2v>SjLt6czCAKJB+bgT6t z!O#tI-S=O|qp75qI)bTLOvPSZ3JOu&M^j0ksq-zt_(xo zkVP0!u)zgIP%c%d2tY7HQECS~kU|kqEmcPdPtecOpt{ZT!Do* zq-=nib>@9W627nk30Y7A4rV|BIRX<;fTDvp5OD$}qzRd6YzpY2>?lM{h@y3v_yE2f zFT4cYche4@z=MZ+r{R;Md4Y$XaO7gwrJi8qZZ%*~SMz4T$(c+hm&3Uq4B%`!%M5Va zIh-Hw2bV)uzCT{7Z&gVH7{Jx&FTmC4?_fdOoDvLx(}ROMSkU;J0q*9UaQO#UgC!GF zIyHqx3=XXHfX0-Z_uhM!tE!TZJ|FTCzCS7d=7rBWcz*5)5DVw(Pj%Z>$5g0LVJbUQ z*eQC~@gNN-+c+v{cdlpn&RHJr#whRWJ11AuJuB3?j+fY+5KcJZnM%W$YJw9fEVhX6 zDtStGcXwC$u$DQ9f=VLV#!D-LqeCun)d=BOBfL0AG6 zEU2_|{hoX6xJbKx4@jSSh%IRRoh@kZ&Q;MTcXzU&F@Glu+OwOZa+?oidj~?}`p~%X z6-b}>J7Cb>qwR?&W`SnJG6w~T@8>j*?4$P?@BoDVg-(@ZcAzTh4c(^O$efJ+go=-KS z!;H_+K}HqA)o`b&GZl$GxyPtLeR7wnMfAztRDCKDeR7AX9q5z$OD)wQYD*2GPwp&L zt3UL~om3gnC+D73oj$o^^@ek|>g&9Wj!^i}SMG43ZKn(Sr2qx68y|oI^Vzr`;4Ty5 z<_EAr&I;!MgTB55owE~OWk7?Vtl85$Wn%y_i`sJRP(0D8ngJ48VU2T-vf zzz1-fx(QvIbGF0glmO6%jnk+bUjw{r0qO?CEx>Ekjc<)p8;dlDu>F$_ z8#V&00;setb+k!NIyEBz000mG0~7!NC=d*XgrebKKq^u+wf7W&44kG+a#ELwQ4&)K z8Db1EL;wH)0000)gb@K>h#MKP8rJVaTYVT41A9@qpIUa>eJ*ZlG`s8qkaG*NVCh6GRB~)6u!2#Ik3)$Xx1uKXd&SGNy~}m=mSc?N(c-8w z8K*UpOZg~WUb^FCEHGk==`K2E@WbfH6+^L1<@$9nTdVdMctz~FmIrDPDS^dxse<@| zb@)nA|Lg4lV54#)0h% z_Twbfli7;eSs>8&?*_u@mK%Iz3$8Qpw!D?=yZV?p(7qPp;JD3y*WMFdcb|o9%rE`r zUqNDWurd-;C(+8`=ilH`Bfy@|z#Nz?SfiYJ{`sG-29IU!X?sRANRu>Yz9#UgcqAN( z*@j-EUy^d7@J#E|P7n`zloSwL*l=}R90f1Elb`ka_VD7hE$XAa+J`Yi#d*)NX6V z47zW*^La&cB}h5Yz3A9pZAJG&oFYiR(qa}2kawb^PmGAlUz8w>6?|o7gav>OJb=7J zn=)W<^H1b0jCT&v?iVoalVM&!o>Mg^N1Za2!*t-=-frc|k2$L^li4W4mwP;FU?vYD zkNB?p9?vp(;a$-5nE*9livj}8_U!4+b*m4}z75>No?qMlG99nA*+#H=Z#oeE zJywm5)}^LL;~nvfDc-!8QCTWmng;Y%hHCl6Y*eEP4FyoX0KgSw{m5FbShb7Eayeek zGz05iIl#VIQ!5^|Xgqa$_^O1kU~nN)zrtQ#pl5JpT2-TQtaAhY7&CW-B~~C`WG&!G z(Jk*`^FL6g74^`^+$Nt;dN;aNih6lHo$%x&K;^dHCz&Hc7t8&g5;NEu5<4C1@;F_D zU;(JgcNDtV>25|ZMo-90jX-!(=7BYmtpcP=^4OlEa2Eo|+WvkO*iJotM>R-WJ0J?~ zWiN}K5*P@Z;LxT$nw9e9R$kh8S-(F&+*_>%Nw$R53*_seO4>2%YV8zVbCO3f9(G{tiiLFg8bONntX4 zM}EI@fTGx72N@T;^8VZW`k0%JIVHp#Nb`aHFBvYDRbqD5?$9pGY4$2oGf}4gv(7-#ah;g?I%c_K|Jm>x5PO5Q5i`16DN3{{tsg< z>Ua3yF_dE8x5Q7Ym?JA*wo@7k=(YYBttuI(lUeaKW3@JiRofLW*A`lq;TxHS5oKTZ zGlL>%m58;s%NOD~Fy@xC+&*BBH# zC=ar-m|iDL4?M!$SrNIqIU0lM)Me|qcm^^nhUj-^#Y}l;&Qhlq58;hhfgJ^fqZDm& z|8%f8MM4Xmacd~>NJq|6Qfj6)T&5BsDRw_OA5kKf3#vZy6I9gZG zI=Ov|IUOz_#82g0&=|XWg)HL?-}au!r-jh!#%-89E?&u=h=kV`u9xJ2>LKUU% z$SY-^g|eJT?Wg8WY#^xZ){71TS#iKItZb`XM6f7k6^71) zW=tC2M)-*9dpl#i80hz#ZWRrLBzIk zu}BfaDhFBv{fyPRd;jNcWho^*XtP*UzImG2CzMK4U*95IqF>xZr+{tmB%Xaiy^u6T zoiux$hz(L<)%e=E>hV$!CD<#Q8-rQJ+wE9fUDDc0nR-ilW>9+n?u1}G?0lrfhRZ#& zah6=DrqFzQe6Yuy+Rljf1X8`mkU~>Mpub_KbI>g0X(|mz)y69BELxA5V zlm0{L{|jBF!xcH88G>Nv^CIfQ6ZQb#-wKThwu@nwUV{W0X?qw=?T4xF=;<8S$X-wb z0K#{I`o2RC2l;Z4ss5ptSWxcVtpe61ZJHC&QNYx;X;l6}n3chb;a7v)yhzC>vTVs` zGZY+(9;K#R>$`U!^j*2PyP6;Wg#E(o&E0?gANB~A)55a`a9Xk%dJ4nVC>aBEU$OS| zbb+Rkcv&KGI0`oDT}gn;-TnY6YjnA%*lKm~B!>0%;+BT)&EE5eSZ^tof-8;66A~mK z5piCE1`hUO=ISAew5yR*Y?TG*Gmnd#P7@ntCG#DC!2P|p9uRn$IKR3? zwllD~c@A4Mz7sOf8^OVos z{k#MRV$%mA$(44M4?!b0aa8cqFFg`HTF|8X>goCI{&6Im0;%8+lY(?Ri>R|l9o>SR zbB!jFRN2mw#3A=a27%+er->i_;)=%CPDE~pZZHCjaKfb4FSyhKvKhjeXzbL7SuupO zCxZg&9qA`Wy3!}GrT7ss2W@KN-m6mGF_4ZW<0&h(opR@eMsC+_ZQ{?-QB7dz6h@C@;`jM;n#h!CI)I0x;w} z(!COoK26giamZQsldOWbiDa1{dc?}LNWn<_a|tXri6CTx{051W)Om*1F6+=!wY3Rd z9&6F!PS$~#Q-2-E6sT=qXhFf$lfTKBE-91V-Y55!^=EcuL%w#!({&`_5yvu(Hb1mU z>H=Wc;E){r-KYGm@u+ri=FH*aCBjQ~SV2wzEYQ~qEt4kP^n zjmNs7MPC$g=#?l^)GM3HIkC7~Juf#}aD!jQbMAP3bEgWUo5{G)bnJ)QR8gB2z}P{W z+%kIYyGX=yRSpp#<$i9o2bonS)W!&?Q(yjzRlivLL`Ibk-vtQ?nGO5_od@q_?`#%E zL6q9kvfFa7!Fd2pbsELVsD4I)mbsw=TDTyX5N=`SSK<7GPshtkp1pc?|NXI{>d{pa zjtJce@2)5ATPu$2?^rpABhx0&j6UUD zbZ9BtZmledWs`pO4Nul(+% zPfn`;Qc(;=KGe7EwXj!A-~;mDB*g~?Eif0~OHTx^xB=mg=F%&{fatcO3>wyLZpDUb z?y0M5=6+rr)qjW~bTT^4$I za`GpUkyoDYz8owLGQ!>9|4s`@MS*;z9W2jo>M?KHslDOXKXTGcsV*9YoTnK<2Exn~ zZh29A3R33e{%3XN>89l`9--F1h_Q1*dn~aTh)J;waVwR|7kPZV&Y18_fio}#LjF1( z@F$#{uyeOV>dnZ{J+JwZ(m{N&#%o85ZMY+nG?>*3qWEogEseaKJ3KT3p|z8^ptJ+}CHmmTL)bz~FL6W= z)f>PL!8f=S53CbelAWyWI+Qd_s8}XBAn_h0eUd_*k_L4B%CzeFy08ekPezW6;}m1= z<{lU#1VOzpNRU(NvXXR{=-L*@s){qZhxnh+P_#}J&+Q(C4zjduu+K4*>?!=ZhYj&Gl1>!gf!DNtr_A%$}TP~ zb`lIt*u9YZGocE7lMVP_X@lL_h8AP3Z%tm>mdoC&~ z2_DrlSg^Sgv-4uIkT=(EL>Mm{0r71l4v2=gYEx?r$|LepbB`fXL??Mf!6{iIj_ zSbprFpL7mler(`5!)g$^=qlN8iE>tD8&gB81Mfn>JHVxX8u~#D7GD z-YTG+8yr3*KmrlQamYFN!W5ojaP9rfWgRrTCzGUa;)JV*_|Xt&Q_OEXGZaPZA)ywVeulZMru>Yu>arl4Ij!zU={BQm z+J(Q8#Gd9Dk)OtS2ndpve^QBBxMB{ZE`XNM%mwGQ|DMnTqEyZz7juHw$17xYJBw5) z)~Zz&kgS=hK#vw}iz@@Q)vN>=yU0l8@N9c%lPqzAX2*ZjuEA02*8;#lXU-ASp^+I} z@VbcqC9J=Ud_UC0WvWl6JTm`Ht7?$~E7}8y{TV7lU?~RCV=JP&c^+fwm&0^v(Cr!k`a*T1I%DX5IzE!k>cy1_4|`!)7dE+W`RyKs+Q3|`p(kC zrpqu0YstZvlW=+6Q2FVDM6>V5!KZbh1SiZ&uJ%h~fT{ONEf%F!OOI%y9@%lwq6$UoES4m$3%Q{_BkarwT+%@ife#2VX zIU6(b68kyf^4c$&2KATvX3UiG&kt;2aDyeK-lhhhoxPBXIO8VLj}$X{oL4ZI%;u zpM38D1S}9VikB7AW!D9UGQYIakl-d^CeCW5mj{(f0iPfBJ%cgpcF(vaJhlHSe>D4EOiULz;kx#ThdXn<|r~^ zR~)u{j0N@_$*!16tZiZ{0Fbo@2^|G^*s!HWsg6l2<!WA;uuNTa#CN)g-qP_0g(3^_%!7;ZXSB=kG~XKVpzM{2&LPAvTy8 zuGJvjplOHSdw^Dn;tTr8x{^-C1*6!zBmUp@)P*M0jp2#X1bZxj{vI5MKl9rcf6Lvo^1<=!qFB2|WBj3ineED#y$8cptPEGu>Spz^S=^(ej7b?+Hiq{T^jpf(6 z9~0>22U}m0Pcg^($hGV)gq3vF1hUhHjqWzvscc3Tls^Uk!g~^F^7Y81!64+*)z66L z6<1KqLx!f|TpwgV){)j~SvUgSRg}Hz*UHmsVw2c?7HvJqN1;oE8GF!q^4Q@oa?v3n z6waTFMHF#~-WUSy?A~)+7Se}gMIhvhn5+UK-K$=~1coQCg`2zG+)}U_>$bNZG(@g2 zL42}XDIX&WAq6WO31H10B!F^E=f~O9%TEJ(86qWh;MNk=7w)fN-a~1tal=jyH2Z3L zUtB~_Z4}RN9+zoW$V1Hg_Yw15^W}Ky1)%FB(0^3xnfc5G&l1P+Uzm=t7Zm64)r=Y8 z0W5BSY{QyQ?|{Du@)8zi=^tNn>q^ExPS-4BFL6K(>1gi*Iu`P8S0cf8Jam(u z>W%0Ecd6I3zczMhKT@%Unk83kRsGct)MGB6M5<(!Ul7B319u^SJ;8qkmfFwS*_AQc z6hVYIi(oA0zn;s!T3U1cxLz#(udrgtHs%{J`1kt*5UY5u%km$1C8GlnG<*YIITg%) zF3M-9UfY7fX)4a*zsw+*lcOqNLX#oUhJHg0%wf8X)u9`j+f}eWt0Z5# za8od7e_AE!gU8$)AbsoF1#dnM%TZJWnF1S83Ea0WRlExoK*jXK zy(tHQ5eH;?4;+iVJ=#IL{azBYbpVFFZwBm(KTs$kNPZ_FV|-bWbFR@te*55A(N)ZuvmC?Sm5phmU}km_(1obbt1?p zl~QTiVq&T_{(aMVa8gzvrsjg4okN8H)@#}6iO zhr2%m*M9OY_J`;GnES%1^$M`!j_7Ibkdh|Fj!YX0%#m~?3j}uAGks;+%Lw8~Lab|c z!vY$0_X8)D-A!B3-(2faGTwcaA$}e zDtS;ppSkAsqr6!t@jE?&TU9h1`x>a7*myz^k(x$rw{HN)uI0Vus*~d0eRonJaJKD7JFi487=VtY7V4Oq$X*ZEzyf+H zJC-vRQu|5;H#f-!9!!-jiIbUO2UNTR;hnMb0OH!EgT@wf4TiJVVa`>QK_3`SiiHkk z6bnU+o|i=M6Jf$z?ENPR{J4r|4=g1~R6KrE6!uePylm!eD;$TZ`WT2YmiDB<2J+P! zS~v$-c?^`;++n#`DV2ZA_DnY5(N%(7;oAkuU?*{L&?Ca=esEY9Z*oKDDnebFUKZQI zE&KQ3RQMsXy-#dsM+SMqhd@u?h`9cPzSq(ou5qy|b!7GL(C(KL$H{2*Y}FVsP`#Vh z5)XBHo+0?D8tL*uR0JqKXCb7Fd2>zBpz1{j%%hC!4t2q(oH|>O1YKtVwECw}{(zn? z-xm#acQLK5DM>d~T}7#Cy)?C1=@h3{b*1!pcD$teOx}~on)|H=J?=it1i|2em!+Lb zhC%9cVnX;NH+w!BJ#=fa622zywb)_#;hYNe2vaF$@G3(TRzVGUT(Jw4QpEV^Ush@b z_-cc*NYJ-%{(BC0GQ+2s2h`X10@aAa@T6PW{)*6j=76L;Bhb0iT&3Ex9+7x)yeB@+ z4Xw=zB@YCVgJT|QDTdzzfi#k>C3#N@Hf-)C$V z)MPc6{}H?nyBIc5Xc%43pnZ(EkQ@)Q$e{SqI!Z|!Z5*+BOcHW;jA3rQ1f=eGUScV0 zlh^2i(Ju?B=t>lmzR4IwqkhIgeCmkf={Mt@;4V_W=PQhn0WrbikaGgsl^8r%=;?gC z9m*QkwWS|bWEqraJTzc~ZNlSW@lyGa0!rtOEBGC%9sGj;uRRV_W(Z3zHSY61bo148 z5q=yRgJ)>GhwyBvF^W$+B0LN~IHkiwk;ZEL9cC*D6ya6PrTG7{hVGaFijjI3nDzZz z2_l8y&3XCm9(`Z62xNpzjg`NRJtzZa-Fx94D|t~aTD;7aigVOnIlIO*GbfR5L5-62 zg9dwlZ=MQI0MoOZkY7i6Pw*AH6TKFd4FGlVD|Bmf`UZSBP@?H}N)zVOqs?NU3U)`19)%9$+~h(ogP#NiUU zH;ZuXDRr9@0+R6{_LoOeY$}eSVczHB6VN}BGeLHl8lI9Cz|k^vYU)yu>ax+94Z5se zs^+2wB$)HkNRxS3SY?3pHPmhfXGo;8C^!)`9=HiD$zfB;H>O^jthX*m9`U%4Asmkv z`Hj|hJdXPs3$IE#@pp{qFk9ehq=|0#@jABy2WLM&Rrxcq=53w5pYmf2FyY?arI+ne znozx+CeVew00zj7BLhh6q;gAh@)glK+u8VLFag*sz{^oAkQIIX3N92OqAwq^Ct4jN zq*OyxYbImS5p*Ms6*7}eU=rtthKRdy;HM3aW)=y;B+7vYNsC@9L<1k`As(iw8=4xc zL61aGE}g{_dKrh=Fkwj|YGh0gt{};r!3(XYX$V?;wspeA(?YEWvkzHfRWRF?dT2f+ z$^`+p!#Ud^9E&kKne2djbl|U8+`1YSHc^RPS%rEQ1T>$knZFaBqlJkQ0a?<@k1788 z()K!q$!6nBc8qDR`bTty6BBvviwtolG2yLGVmNHwDh+}j6`tVB%@tY?TCl&xSd8i@ zoNb|GDX~S<#W`#ntIiqGlJ*c|=I%xShxJF@){3 zEJ3J35i^axw1CLNUphU0`9lDkvs?Z3l=X@z0iIoJA`*{LiJ(%odk-D{H8}m_q=(7H z%+KVeZ+GV7Yp8JTCG zF@~E{?lZZqa0i^>xdo5E67C5t#FbzOSPRRI%#;8tP*g}9i|@I4 zQ~~p94~D_8Huh^m9tnAg7<{yUAt;|A=yx@`Su7M1ev?_@=OaA1l8U_h$r`Da*>Hxy z_#K4cUNs3>&nI~xsFFs_~jjWgP1ja`Y1p;#AK#P6JTjzZf00cxGF$iF7T!#oFp(_%76G%u1 zmv7{oU{H$UX=l@56{Ft->tc-rN$QgP^i7b_5GoAc>)ZU_gx=c;xO7^*G=?CU=0lb+ zq4G3W96=NYF?^`VVnYYQ$%4KCD3L$T%N21D**iw`+%;P0!i)W^N!PSlYSZL%7$BW$ zgzB^9+Yq+t5@tD*rZzmeOQ8F!9U8T{g*-2R9ylQL!6c<;b-(q7nALgC8j3FADi2cB z{6Pzvmy9Y9-pZlZ2NoM63WiBs{_$aR=%!^sW|q=b1a$qe!UVMK!H`ZOm3Mt4q4NXp zoIGUi<(t&)q{_vCkn;;Ue@fUxw;&&xj4OQ>L*Sin61&p7uB^Avp{fU&@(*rU)r0z$ z^g#SaXz30ZDDM7x{1~FAV2gMAILH2XUy?Y#hfyzf6lo0*Ia3{Ux$9j$z5k{Y?~}{I zL(diyzJOz52P6kDz~$ryq=Z@%5lelR0?aG<87)J$Mh9ux7Y={93PRNcX*=Jx*7Bu4gmDzNe44`s!6R&;U0JLtR{%>q#S@RU6 z{4t+_P&K5&DNiKwX2dNKD-amuJrl%ADhN2~j*J)sSESYgY~tx9~e3NjaaArF?Z-jO%lNLCm;>+O9d>r5g;xCw3k6~@n zW+h>Q)u|h(*b9Po)=R+(XFN$yd46*`X|aD`E1i-%>HYzO{9IBn1dCA$!p?JQo5{65 zjj#p?V$~4vgk&MqcAHLiwLfca7Y*L20x5q=Vh4-v^4W@-zuVml?h$2 zVX!SwX6+s^M#qbh)qyjdx5m~C!F)4hZ*rOMhREU{Xbz8WM`ptN_nR@k;d=uE7aNw% zSe0q>n-{jmj*>KEZ!0>?HHTMx2)TEETU6t7IH4OJiRp0Q1xdfWCIWid12M~gs)uY5 zO5@J5K6w$oQmA6nHr;91FM9s7^7QVGOn&wOkP1p zD=8UUbW{f+{|bc7lS2|(C~DP3HtjT)xlBvQ%h5-P8Tj+EhtE-HQKX1M@F2n zEQRj^?q%w5y&P_#df3usPMU|*Wr$xpFa{m*B&}*L6*{Zva|W_tqVf~s_SX<$&dogz zi^$%_&gB{^d4=ec$n|B@@n$21w+oq@sn?qVGYZ`+6*D7aZj*f~C7NvH3hn9e>|>&A zg2hvDi>A+iv-gRgl=z^OMJcgjDEI{&Goq#%@GZ%d_9+L^y1n(~L(ifpu)aW`eper>|$em}z3X+dhydxB6X zf?{VqJ0aY=B=PcKd8nr-1G}lN14fp0pK-z{cl-zo8jDCIA?P#)rI8KN(R^N5ze*p zI6r=bKp|R$TmU2j?KGAQ&QXA>d^jj>snqzgV|ohe4tDHTaEQ#<(US$b8GxIp-@FX$SOT^g-nvQr}&%tZK;QbXZysCIb=}Hs~R^(~w5f za1e&-M(p{2`Hp>9G#(6iCHvn66)GtP0^d)K>ZJHw&ZOjNayy}Yd|E5=XY{Yj+fsAA z=i<7wV^@`~K38Gx511dkiVT1q6f)`$Y%XKht3U7EXXYJ`eJo_7PEZTg-@&1szPx|? z?Yu*~5vmXgRqGlQ+?6kHVDj{cSk;Pz($Lqo$@I`9)2pnLp2`T2=4MgvkR9x}j#Svm zC@S#JMS5eZzvBINWggRxtHjy826Lvu{;|}@E=r%|fm!Q=DEn1Mto^^FFHeQX@<4Ht zyI{Z0M_1+fv}UmU&)cyR&c~>me~hiQnu&~2JvnaHngjO_eeGEHwN#(2j~xU_c`=Av{lsPX3}AT&06)k*JuV4R7UJp{*cg zuV~?2;z>r2?ZOB$?GhIE~PLFYF#&& zV$@w~2nzK^4q+jD8TKha&1_^Xj&gmOGTL$yk>yE`s^&?H`Q!Ao2DJObE6Nf&r;G0m zJhrE%`Yacs>Vt^>Fh!i38E1ptG1f=5o1mzH>Fa~&afkP0N(l&2kftD0GLNT1o&CAg zl9@$nA!Q(W{8ikk9J=08?g?N5NN1R;r?XLz^HNq;j3~?axLdHs6d0)I<~o+>s>3X% z?_5!LM^Wk_8SM+#C@%x)&62_TS2n@mxEiA$4I9e{s`Zabw7y(^eh63f)6f@IRqvBj zNW9WH&+eJg4G_{Q2h7|M_g?`pb^tr8-}E^pN8-JSnVhko70*Rs(v_m!Cu)k^Z1AsY z8r)^CVh$qBu>-5Y%pgbrOc;X5XYJ6MO2byJge}b9OLCi{CPF6eF5UF}b zWGRmD(rnv61@Qi~y$2Xi4Hpd)J3hs~);NK|X3+iTi#$O|xaXyBWsjGAQX=IfBSh^6 z<9D9sKMNc8RcFUaE(*k00fZ;hC`6Ql=>$nxa1)Yj^CNT zdLY--B3yt-9o1ovVgv0*A3ih9RWDM2N$~)HHW9z-EcS~5;tlO8Os=wYvo8QNHUE2l z-A!8=-_)j1R-t(ND)u4fGR*}-Y)0;fJOIavb(^b zBRMDkK{>2IWE@9jRp;o>XOEo>4WMtSurhHw|Pfi0>~ z+dwYuAT;Mltq$cSIu%kal)>b3{IlREBS->hC|YK@+up>p5tkkeW(wRoCGnJFR6rT@ z+f-Uz`gGNsE6<>bW->$}jeb*bk67eoVVgo~X_2irjt$RrZj|?Hi(V;|io%BqcKsQZ zfrg%L=AW&&KzRU2-w}-TR+gp;@PZ_5i(uUSr6pq5H++)sX?9Xw8Vl)?DXJ zgbo$fVx4JMe7BgZ7ix-?`O!fIeFF zoD>9LK=id{RKPev=eo#1=$`_lPy;bo_`cSOCFyjOj#6@^LiD3gek(G3t}8@519OW~ zO@}0ILs=GsxRJgoo(3TsTy&hpAOt`h2`-JXWHBV~76&B2P6+73+QsX;en1|j2xm=P zT9tO@E-8+R{#j8T2bhYQ68Y++UMFF+OP-yQ7V*V>p4Y>NA;J?vzDDBA;r?sMwl>aK z5lNs83DSVV`5kyA&BetoZJbucStx;Aae1mI$rd|1_nEdev+4G-ND>XJvWX^v0|3fo zo{M&6Lg#lae2>_=(VrjIrvtwt(i`%jGF{G3*-8c_gqV2^u%R9}`ppVBSFrjZKksM& z3FL`Ic4r!Igq+ZLJH0e&rpE@1OwgXTEe5<1bmFxXKTCu1??JZE-=X5rh)ZnjOA_O1 z!BTn+ftp892^ni8uw{e);ojzPJD{&)2_&|$M}e{T>o_2?@;hjn%e5XZO`^E;gDvNL zEF>#i=g(A|x3Kt-QS6abG~Bgc$1YM%0j(?e`z4T7(`f?ZVt5Z4|Ec+UZ@IIFQGPi# zG>qbU7r0aB;5n0nyCdKg6RXA00)DEGC~R0Fb?lzlTvDN8=Aqkyw{~vjSKFDhV{k_L zy&1jjfbLYByk7~CdAE5AY;80s+jhW}U~OTq8r9C(vqo@^txtpTaj%*-T;5zJEnR6) zLv8LN{({j3CNDXyOmlwpyu59G)L$EkiSQQ}%& zAs37)xJP$$b2Vxj5UBEZ`vt}Xf?z+Ui-%y>(}z3_vTf z##}m;5|bVn7r9c6n7fU~~8y5vx-C_4h2KM2|vxUQD z!~7iDF&c)k$K`76k-b{CHTl8StPx>hR-`D+UV%%@DR05 zMjaA26?AiNj55nIU!xc&x*S!y8bq#WhA7F&yh)yEdoSW3R4tG%u+C05V=7csJ@spH z?1tH^))Nu5iy$J54%Rzl%~SrA^Mpq)}#g3UEvh%~*&En`#;{ zKDI;%t!HTj#cbDbwshB^HHXR|6G>B>XhsbUh#)_bh48dx1rYI|T1g1Sc^qua3XwmO zhblPg;8_1`oDS$7I_3tCVOulQn|ZI)g0L@-NJwqdIUxfEJ?II`cWT96Y#Dd<3M>yk zK+5tT_5U}l$fukZLU1QgLUL5K@r%mRUgl|xkiAH*dDnE(I4Cpt8{TzModxaF)M6~I7fw-j>zTWKMqDgx4HEFqMz$HE z?Cou1b-JIe7-Qksp}qrSg7N&AJMo(8iZ}#bzZsD z-I8WORaN?=WJ12sV-hsU0(I|;Kh5HXI;XF@nm;2p5fMSXEowmN8Hh7vL0!QBpns#Z z;3wW2mFJ5I{!Q;^oW-$@ldG53#7f8&%Y@|)GQnj#z(uADszDVStO8w0Ytgt{|4HK| z#?;4#88#e4I#K`ZV~-5x`N;S|VcFwX6-BJkGak3Rp4KnDEPy%$_fAc_<6NGy0*DM*HcfjY@d*1pi&l1T9`#@JWWL^yiF zM(4iMaWOb}!y1hmh>?@?7F4Qy4^L;f)`}bd3Ll->JD6RApGeQ+y94^suQRqkW|<(< z9xx2-Aur}g(nT@^+fdV*Pm;i~jV8&QU8PXj9CM8MgZB)Lbe)@##HQ^3Ly`YDq^&g0 zZ@^JFdQH0^lHb%x<^An_#B?JJ(Gz4Z&@sjgjk1@?M)lMekLPKLK-}s#$1+Nfu;DeaV{Km_?GIvRt#PMPt*S1PO!uAtMoO( z!X8`-vVU39_CPShpYzkW-`DSIOSmqRV!HKbGw(H!!Y5@KAOcU2RQh#6IK*w)uy9LN zcD%W5@OXm*D!^ zrFLKh=_r#=wux>%7WBJOu~*?oE}XsQlC_jreU>otMP1{5*x4N$OnQCxgZdUaQ`Gj= z2#Si<>g7x)X}V;@cscQB=JR2JdEs=#3MzKs;2vfxVXv_G(}w^o7k#4_wwQ~sNeM8- zn+HI3Za8Qv2|)!kR&B%gNg}f2Z~*JI?<&`Vra^JKk6&Tynt>JA0#_&sO~D=EuTki# z>Tq6>v&QpE1~)Pxqhx6yJA{vN_L@;(^U4&jWL3S{!G{6XQdSF+F_W{W40#Pk&QF=f zqrfHin>FiC=@Wg34f$C}*4hj*yM9w^4Ar1^AM)Fw#$pN{S!3rj77o77ulE=;f(=~>8Nw4tIqRTzfWV({4#*bR=imA`FrlBCi_$>plI zV6ZEU`t)8YX$)QCD-m3h2A)rxt!MeF%RJL;+BsG%>#wU`7s1~u6jE~2ciLCoEQ|(0 z+emf(9hfPw(tX8DxZEdwvyZW@pkxI8Da>8%Z{1QJs<9rmTWOm-D`YQpn_nT?a+QA; z$rZ<^Jiz{SGMk8$%OE7hUJ;fW7kR5!((AIumM-l@@0jpS#7bAV(#qG_3p@p47)-H;!0TjR>3IHL|`?D2M`l+Jb!L?GDKhVvx61 z7UNQMufkZY8Cc|2b{Xx5s8=4$MPne>1&V4d6*jRQxnJlQ|;ib0@HXish#K zZy&XD1ZbKnU_b-;NI)_GwPtsy#zeJ{U_e{Vm}nz6qSjDUt5N{cKoeHLu%9#w8G)?8W zQ@w_FiiJ8-d3H3Ft5Y zmePh$?vIw>e0|MDR5=bR#7Y|Swe;al?{#;Cm8E-%m=$?EK%NF;ypB~4Esb+hztal+ zfwHRrjc3D{T@-u=vLsmE7pYoP9b6|_(Pt<_D$!4DDeQKLt8#@8YQQr}DT;5oX%z~P z(I#2q`RnA8&oUs@v0AWEtL13A47+XSrt*}jH{&Sa)Gqh4c+4hY)r4pu5#92f)-BJH zDt$s3#AF}ug&a#BgkK4f=nK@*iuM%M`%SogDUHWEKV6}>31_0Eq@o3*7v-!BoDnTt zI)#G>i8!@n=GBwlP+CDTnhB0M(x*ox_A=#uQ4Hk=52>T$+L>Y8L$G1(qz8j!)7Mv4 zDyV+aNuBY~Xl2v*yZ+F^obzm&mZMz}j}7O&I|i|LJR`^B`Gko^TbT?l7TtzI-i24` z3cd}fM!c{dXEL{0mCZ`_Z<*L%95c$juL&Nb>Tij7^x>W>>w#$2#6{YWRCDX3a5+pL zNUDJKMOeW5&0&10ny;_XfS=cz+)!egOq%tr$+q$w{TjpYu$Vt{qmQYFRYxPi5`L2+ zr{1QKbQWG?KS}(JLV3vt`Le6C(}8=hv(K+XQRIh1O-l)BC_2w5v2PQn%4Y{c#2F3| zqS(-A6-LCdI*p@ppWdt1xSBn0+k1U1m)SS#Xi#g-Hy1fYym)q-D&paJW-3vJ zI$eA=N~9Wh5#?!M!rji`WOSV|7ZtWa2SMQxrkYm@b7??mbiEnob^R%hJ^gU_Z;m*; z^;J0}Fx%r!lEGLf)>F|5;ZkMOgJ$G)S* zWC3Wb1f0*+xNLC2wMa@5fkTI=&IdP5sUoU#aqixb8|K_9ppQyny>01Nm zkqvCUh3IXcG3@HM#N}2DXzspZnnt*tyV_Y8^xHJliANA~T|(ZEmtu^w%J-U5P352D zn?;=-`t-Ah8+No61249wr)THLMI}J3vPaCe2L!26X&1@cQ*Ka~$D?TaT?{ z5PCq;b1*7UPDFZM$#MUdKUd4Ps|+E|Y=d_^wk6%p%Q&~1Vyzf5Q}J#jYcUGn{T%Q5u*HD1PaFc`kSYRC=3wAm;VN-~ZiQ4Hl{l9Iu7&Mw z+*#=7&Bv{~U+CQvz+px8OS;X1(PU!0p*5P~EP4{4ehV1^>UYhnp$Lb_v*!0MSjgI4pFZsNMKe6o>0@!thzTTFG+;8sqy*Ucme(XNqqD5>5b`^V56ZjNJLmx=AD!xT7QtFck_;bc5K3 z&MlL?L5D#MdjHr4V+r={WnejX+ThGgl9qSS_ASN&?0@4^Ev!G!gT>a5j9gH}DaHPY zLFt!l9!kKYheeH~LvIT9S@m++!Q>nU=|1%%+Rq5OX|+_zZFDjmS$X1JCUON?+$#*2 zXh}v9Pp=4d2jN<|??@;&e&qBlSnSjifSR)};xw_rd|+bSZHZVi5Id4rR!6$rHfPui z5>uex5r~Zo-e44Pvi&|xl7}1h*)kho)8dukqegWT*HaWgQ(_Oe0fTygg<#O;lkK0y zPRw@H2v`y%o(F#6+WnHx$u!<99Vlc zMm11*0+~5-?RrvfbVDegH<^$iA|lF9P@BZVtAlnsAoTS=U2Y8AY{B@7aQdBDf`P17 zVu6wRuE4o6+jc)7y#xDRRnp5Pt^8pwf z?n=`6iX)m<4`fz@bgPVT6I-dR1+;0>P8ArGxb=V_?Q;qS5+$+a9_Y_*f&#-nK<&xh zQ&%!!hjOoLZ~N{V&`$)}*H8@i0VqXpdE12$F)rHKH6@kl*&vpIquV+wPgzL5cQ4vN zV>6R^+hCB5EVx-*F>*MfSuy{H!b_lIyc(s43U$cZN1lD~$+W|gk)l6o>g7j2%_Req zw;y3;`gATKfsUhouQ*rU6x|>!D?`dmrbIiVAN)c=T~A;ew1P~5l!uRZPs~D3{A=F& zk*j1AXyRuIU^D>NXmovU zA4a5T@axNWl!4eH=O(E^>w#yXK89-ak4n;%t05=3E}rztrfzLB(&5xY2@-A!!UPFT zjhqA!NCX)9fKA8>0!qj_ME|sMEb(en7x*kvG2HXR4WZ7hqeK~7S1};yscv8%E$ZUP zd99&HhHHi9oX{$bgPjqLI-tDKjd@j{h5QSX`gIUkSNP7tc?FN}6w-`QtF&P4#(|n2 zuZsDV>d}VbZyp*BZ!Q*+vgqN84lO?$ZR{ad+f0;B-$jx3kp7B-<3LbtfdWI zT>lp-1;ByI=2P>pq|SE`h#=by2@)M(PD_ZQ*(?>F{L|rJVHB9^$W;98?azn7cHhq3 zRgFTvQ)U)#KzOE(H2gvv|10sZIwg$(X(!-h_dG*6q8MF&g(!l_v38+I@MBd+8Z&5> zNjrpDm~R(8u%+AJth(r_N!2wVke3h}CAjf^Mn@Rwa2?_RvXR+l{R0Z>-wI37q;fh6%YYX{fAXCX zhT!VZSav_(f3oMEhS=jP|HGbgJg3ZGk@mYh%rTdqaCDA6FI@eBqwkC1AM4@`WR^&Y zwU2ox-A};k=o5OPbBPrfx$Q;Fl_x;CA{(^Ia(3b@qSac~xXkgXnLP_P5u-O?7uY^~ zYi?jFyw0@pOZ1PK4ph>RKdGx6hMMH`!6t%M0H@rg!~q+I;aLHS3ru!JLc^BunRDr8 z$}5+1ImZa|Ok|bE%%*MU1rtD==?T4R4cF)MUc=*6pz-Laa|$pJPFjiFq8CKmDd@n< zS)hqgtJ{DOZ4EE&;4(tcE+)lF9*C;NHcn2HK-s6T)v`BTK1t>8g9Q#_Dw(2s8pWdV zm?l?Vma5{MU=Q#C^o zvl^+&0G5rL>S5h&*q3mgxFv)3a%%aqb-TI9eQ4n`(+{bf-!s6g_Ifu_3{;zzD%8z> z(s_i30B=iP&fSZ7v^?m4x1S(+xu*P0<;W3$8av2do(;zP@2y?6vas*XV;NFQCyOx<4nn_KA?`rt7$3V@Fy-_fKsRr zhL8J8(Yiy<{-qo#0?B{{f&s&yuxX5~93Gxvi3NFRvxh7aabxHiHILQ_JXIICN+yOV zca9E4FJqGb3?)YMPvA)Mo@XHt7%V;1-S@1 z)#M5W%Rq?8h>pCWOee3;yEWlrK%{~?HbVTer}621MP%xsHum?RXU!NN$R)Y%Qp642 zrWG720heScg0ZHSEW`G$p$#qw3NU=W&lof@mBlu*ZMFUr%1c zHYl)w-X!Usi3^@!RRy&GCBKfmK~N$fwr|=c7g!9w6Sr=dtKvduLps{%1W zkZP~J#Uqkp4mERs=ya^o6y$SzKQL*$Ud3DVAES)VunRzEWK?gAw8eGs3X7xJ}h&>tHw+ z?LR_5taK=_V)74b%yRVY@HdomA_41;Y?rS$&o>3l@flFX_tk7DHdWo+O?xqWX~nM5 z7(NHJOSYi8sYm9=!LYBOyf*{Ro8S_oiM&`+i`v*`?mr}RR`sthHMtgk6-GmY zBbT_I`S*%*57gg`0%f8FhZi`pk%Sgc8?qq#<|n+Q5nM6qyGiXmLQV>_7*5_Aj2g2f zjMWWbur(6lhc`%V0O8Qi5av}uVQDs&L9gFv!gCQ;HZ+Yfw*h#oKqf*bCk6eByEObd12TjT<7CtwJ zmeku?!PKVbVQ}mNur_U%zaqg(57JrOv>Q}1Y7+nu9a3sf>Gd4oUW-c@reC#)8qPHk z-Qau)Ab{ugEl_?bh%9s8;J#exB|Esc-nT0+iWym={t_()xu?Y}19DsZkV1_!^gXKn zKO$u4>WI^ss2Ke3iv-;*1prSktQVFbHd78}zxcysQl~#H&yXi^USsx9t1py#pD?1< zC4(z0z_aSg+5<F*;BTm#nT;{5M zHOqt}kFgna(B(gRse)vxrO4S?HJ;T~mf`9dM#y|&=A-z-AoDj5_LH%rLi1V%^uZyr zN_!Cympu6ujJav-PX9Ut7i2@=08;$`*+OgjkkPxyD6N=jAD6_xPQQLC`omdvzW^|@ zcSC6Jo%bZ~*?GC+N+?KT=%s zz(Xh-P5-@5)a($TG0rxs=AvfN^<2Hi)?f>@_5$kw#qOdTRLcDD6iAS6<%Uh`F27I* zzjP%+N)Y7*F)i~M4>C00YGn7oH4^#uGv4(A!2Jt!{NI3ab@hl}RO1Y3vZ>JF5G(Bv zvF&!XYOVNW@Eg%bFJ3>%aSUFmJ4I;l)Devvi@7>1F^Gj-o@=>$ zfV&9*TG0+^vc`56L;Q>!S?`2hvysiFCIKsJuDP}pFVl|Z4!V!SgzO{j;Uj`1}#N-0Fz_tCs~T2U4NzI zMOV|Hs2^6zY4|d$><(?d%7~@hG0zpO*g9xz7y>9!t%#4(ozd``Xw^6B)3(zNX7^b| zy;G0jL|sjodA~&T42NCX{*_j#=N>}6B9*k1m_Kn2!F|8l)M*Ux2}|<)dsA83ry{{C z%q6#=*htey^PWkhCAwjB+ZX4#U;Rm|e1+D873~{%IrU$RD1gnblTX-TsrUQUc; zuyfYD(3gUA6g++tG?VfT99^t)N);y&vgNDEek2!QS2H9{XRIwjJPbDpU^HM_!%U<` zsi&4Yy`KDDW^&QiVUhU}I_WM^O!8NnOCLUfkc?_V5G!k-%j$8ovPvVansi zFN`4kfzsgMOi&X^dOj;)bq)~ltk*xoo}RRkTDP>nkun{Q(X>bTqDxDchiye_^xf&< z48ZXW;qn-3>gmnl``DmpBx9P4V!kDGS&S`-4K>OlnkkedP1@CqMZ;0e1*~A001iGO3wg`ykHmF7lY^LQ9>r1U zvPQ~ZI*@o5KN#S4qUpjn*5*S2?#@L7QZ{W>{*tfDx)6J2n-87=-vkM%9|o2CD_gr| zB`UQ~8GgX^QK8)-qpW&02kRU{uG5#r2X?~3PHxv4f^_FcUv4p-zRo1CZ&^$dm5Omq zB8q!&>#KV)2tUA08?DFu`Cbo5O(#N}+LwsdWQcepq=iAn-34lw$r>7;BiZU{7cSQb z&F~Bj)WxK_YAuo6T&@h|$RU+;7;X9_7kN7tKXBIFC%+Z3@V95xhyY+0c`l5mEyy7t zw;3GaQV&Bt5HNh;rDsIvM|{S2$&d=`W0v-Lt4Zcoc^V^bqHDB;Ivh!vQStSi3`|5$ zLae}{yeYa>b^^NY`AQt00STb4o0>`P2MB^(iC;gJprxJfzH!iH}H;Gl3} zf1XkBk#L62Er#ugYm96A0?_nXTHlVU~p>K-{9;1P!_*965VWGa^;sRU%I0Evf{ z6Tw5QPQI=uiA09?b`k;_1z-okPqztx&W}*)(G;|qCI+JRcG;xG0J2Cyb+#8EU&o~W zEweUD-GJZvh%e9t=V~}#P00F*LHd1wkT}8XF;V}MGTvp3*a)FS?{V3N4*CQ~^`Zne z4s`QD!cK1$COnHG4G`xNcdFjc^I*iq4E=sR*&B>iqF6bIE}E$7(_!n}!rFj-L+yMolPcxinuVxsyw# z@;z4Cy#0+g=u&nRMr&hfBe=lm`1oZb(cK3Lry3%eWTL1sj%xUam`u2EVn`d73hvrV zLf>cflgLrxh4!)*iU)JH_DE*B5IHVnT*NU+b!U8}s*a=2G#5qmliyG!4V2K(M-gZ) zUrvrfc)4?%E2pCdiuaf*^Vy$}XzkUeTLBz#g&0k=xm}6Z15Iwk4m2GpaUzm1?YZ$( z6a;A+O1pxv27(z1!L<4jD_sT}h!0}z&%eEWg6l6KCi5$rGx~_PkFH8yeJ@vvGWM5S zUv{Js#wxn7b$C{e8pqsP5_#Lkt`|@3LZyU@RBkvWns-UI(#d-KUycBpZN!m4sF*-g z^mZ#uCGkM8hhTQEX>M2G#LyJX`b<&gDzCLfz>}3s?tP-kj|xbdtuh}_2JaQ2nbhp; zw|zRx+2P1jc`)7QqWIviIsbj4FOBOBy&09&*ts#BK%mF7X5KPu(4%$;V;NxKoRnxL?)^gP59#|G>0VS zs00jh(SXpoi%ui3%tdi;$cVj)lHf651D=A$ShrfU=*rS!0I&dE>Ht=tEe{FhCl+P> z&N!;hO3^$K=g=XlfUxhkIuWvo{}b8@5Xsx5VADEe=~^YsIw;7yp@BA?g!+q9{phSF zY9=9$!d$q>3o&*{(lBPuFs{zptw<>0-zRM0Q%C_j6yca`oyRoOc^m-M7Ow^CU~v_x z@RMlPQq(N2jJxTz4GZLa1C8(-XW2R2krUZHgAI{o$CjWYs633ec!b^kNs=pFgf}Pw zvk?sNNpB?fdRn4{RN)G)NHe)`@;@RNa8d-e{_|zN4;1f7P<|KsEzv{8uL3YxV!>pj z@xLu-Jb@uH5*tU$b)ETj)tBTDSyMmnsOjT<=kXNO7bMxY3B)IEG29~=s~@;blA<5N!;OvH-7QKTa=4Y@9-A} zE}tyy-ZE5QM)>P2|1bTwl&z z*$FPgz;qShw%Cs70t4ud5HG>dMVkxvv?LK=oykxr$m9$?p5v6AQ?Yo)Yfzxds?7`> zeHdZJtSPhLE)D!QskYZvTBjQ&ffowiy0U_n1?D^$rEkA=+^Ni$M9;NCY`HXVelYah zfg_$ZiypIzUZQ|{*l-$kO-rjV8cka`QOw2gF6jQI7cB~oC(l9>17}VMMF_8;=pH)? zm}tg}7VBL2K34aWIoR!BTxV14Q0&Q^DUR;AP9M)>htdmZ#?W0Ft9pOgc5t~V^iPQ? z*3Rtkq(OiqcIfW`6q1Wvqv9ck>-JH$Ik#AuaXX7^@BbC;VmDU8>E}6L+k?pfY|JXO zqt6$vVnb`OsW#x);2i8E5ARXWo`>6DR7ut#h* z=0WVwZ7#U;)7^guzzuQa*a{+Mn2|V|jnXL9k;~;Hs)(7V$R8plwv{OqSo)ESGizQV zRzyJx;cG{^4KCoreptbBPd%F<;pM@X?+bhuOVArr$r=U&S3*-b;JpxJH)i3LZ?D-d zpgNs1!Dq%ad=OGK@*zQz*)YFdRL>G&<|7WpyD!P=#MkOlXb(|I$?sRcF#M#jK^;`b zkq6Ipnz}cJ5m%; z>{@gr$bJfj!FuCA9PO-)pB#gHX*B-~)w<}Wp#uLscd`OP;ySK9QbG@+90lXr+&lTfOpFuBuAe^_paOW(3r3QjAhu zPm>JfNk?6WOe?u2d$=6wB!GQEBOodH`>E7vV(U9n#-#zUy%C%jKxtimKlkX#IAhPx zG*wl0S$GGf39;C@zM5Lo&PKeWV~98O4;fpFwzu!*C0?j}6RDvZacRz8m%|Vnj`#SO zJ&HqY6f>i>4y7SDD?Q4PtEaS#1|F_bDnOB;sEl+H6F(Y1O&+Mm9C`m&38jj869eSQ zY^65*#=_7|x5_%S9$UA~B#*eeNw=xV?QpzF2_zi(h}&@SEaQ71uL0N zy=lk7BxLgTPRDgl$Xg#GCP8G_Zz(o7SI91c!>XXl z7{mtkuPYK{;!b9f{>_yNi7#EX)Ind`@~R~3*zD#+)_nD|T2ChV%dNS#DuZgTH&A^* z3khZ2i_9L908@0>s`%-;cEY|ew3Xe#elGyB)#*{J_%vj^Er|KEv9hmTfV;WPjuqz4 zS{Q=Gw&|oAp23QQm>eTEa=ZkFUlaDhT%Q5E9pqpnS>bs&gTX{#N52(^afG`!(hkE9 zibGX-{%`gOc&*Xb4x?m9NrHV*&d6^)9Wmmw&OXo&Bsj_SkKTk%2*R)gGh$Mpt$Udy zTHTkIaOgoH8$5HzmV?oxBiReVBiKPo{Q=~De0lXw{7DxD8>AxKv%%0RKz3~69&>2x z-~Jf#u~+OU7b?rFYG<(*A#40rKmK2I@>pe!jj2dnfPuWPiQEAUnx3hf7?7X{fUq;Y za1Za$$YJ!s;R`K^5FcXydcA4sPP3v^7xLCXW~TlTfz+aiUDR-?kErX56`)ZNW-8f> z&aV|cu5JOnISz;02F0AMwGiZb44BgFAhM8IaUFk{4Jiw%3wi0iVWwq>=_AnRzJp3bZ`>kV+`qfpdZkwj56= zo^?@o7wDC0bR=uJOXV2eQ`u^kEe~G$`Vvo1)BFG;q;`v7C~r<69wPAB5Oz*koPL_?Aqa;wR@hXxeInxh93p^Zn|b~6V5d~$C4@*?qQ&RO?K zrQfPr;kG(yoD1NF;H|}43m^+{rRg6M~layB^GJ_w!f6SDL7dOE8NJ<3;qmoxhoGK|iEZC1~ zEk8MNX2vDC?Uc9J87tfp zhicOBV?x%^htSN##n(Hc7P;ZbQ-SsV%)2!d*)sP_R>T>#_Qz zt&wj`j%bLIx9-J-=hGn$g%B)a|r(mF{^_AJRlOwaCfjx}|7{ zwxs>tyoOJViN5Y}g$YWNg5Ta@gf22z!TLoI+L zXLiJm)lm)@pC8s#CESx4nn208x&SikH7GBvMua>oHKjITdvP0SWsLP#=Q) zydzUV$k^MkZJJ;uFy;6fLDUz*k`sk42!Ux%^v9pD5;3B0+{yEr3P&BtlrYU6d>?qf zkU)7KsV~><;_}Yp-Xr-`0vgBw6FmeAWu=1`kUt$Lpz0&t5Zk=HMciZP-FSzTJlOXW z&Ezgd9aBjZ(=yq`MhfcEVR3*Bn}xr$d_wHuclwSA?i)2%;CP^IpEIgi727xGb)Hi_ zqF&1%A<~5}w&z!!P33G44Hj9%rVI=98zw5v#EN?6(QmhJyl{dRR5=#axTM|zFnVd$ z;nxM3{E<{JOw4@i)cjKDD?Z$S%LKSYe_AhwP$w!}aGvg@}La*wBr#!&Gnf zeUY-SEb)*A>qKbOc|%y(87Xs=1OT{WqqOj$Sj4_)X-CT&RbrWR8#-;z7o`Lsz|klV zxtF$RR9cNEyT>Q%0l%&lE2dyrodsft_KmY|SY&d}x}9^ZW(n;)9S$798X2nsf$@JU(oq6?=3IddYo& zPs+gu#S1y=a%ZRP4=*K*Dc0ihwBIhkDZeE%*p-sSC?C&h_|a4=JCGPc;<|8AU@-^< z0HG=6#zvr_HGqAIlo_4JU@6@|@ixmDUne2yCUC_kg<9G1AdSEk$1!3$r1WZ#nPFwJ zlRW3GBtkv`VRz_L=GkMp|K^)pX&=k4stg_qRdRAvB)Vz&+$RB`_O~3t0ZEkgI3i{Y z4Y2?erzj6VlcFQ*^O*77$VVZM`Q%B~D<>KuLu}?Srk`4QE;;;Cp+u6%4cEru6`mKy1Iawp##_H6L06OhOS=CcmNfV==KjvHv45KC7Fui7*Zx;_PCM5kLZz0onRN9=?4m7v32V zTsXr1#4VY#?g9aK!s&=G6p?I9b{(O{JG4q7UIr)Cbq%#uAcC{Tj!B(Ao{r8Q#URK9;KsWea` zUo?qL#I569ZzXTM$arVNzNvFgRwJOQ|d|Os;56LyW^)S_z0r)Mj)49@I z>i$Xyj0kU0K(p1HCZih14$N=2NW?*`p`z8 z6)s`ljRY+;MAPT)fkaO|0O7l+>!wN@;T!IifInaca6vjD5Vlk8$G!>o$%>CD~DaffCtI3i_K^0nphX zI1z;GuiI_W0u_PQ?OMryr|YJTr(ltFqbSjVA=dO-eP5{iOc2%*hiB1V`5{cFoQg33 zpZLhO^d~&MUy10BOf|R4C51-I&!9)$*>DLZrEWg$ zbF#xi5G_nH+iKXpnK`IQSG|y6$mDx__d_o)n90Htz1|hMnt7l4IQ)RTEb7gp^{_Zb zjF&-)PqgwunGvrqNd9BViOgfDncxk!IZ|w@9-O}5j!0&UmR>YoQ4_XsToQ54`ODJ| zsQk0&wzODfkI=}Drj)$MqcYE&>*yVS%1BA|B_CkXN~zgApmUr+!SOE10nd>G{m;o) z33tN2ps}S?XzD5wxt>QZlVuBMIcWHgihg8L{hlN2lkeM zZHgtbZu4Xxcv51oC@Wufw8%$F9k8ApQU4xw+W+0@x?fFHL>dE{{k+eHpTIf=>3`0L zISnzs=L+xGF3pp+-XDiFf&8~S6H38n`2=Rt>GH`9lk*Acx9D|`Q7Tt*qQ1)^RT>Dm zi5=^e_C1y&LJQlZ!G@9>2`t=|I9j9Y+#ETMQR9$q7{K>~7*!}>$DUkR9?thnf?1pK-k%1LVzQp z6+A+!36CvbGlbV7U{l#y5h_B_4Stee}RrJK3?FL|LjFP8MNtDsG>Q&+`&&&7a%j5K+BFM}Hp8d+ulH z0`WFzZ_ONLIT1vTu!?ixOwpD_Wz zb~`@yB|Yrl($x*NW>d)irvqPwX}UAx8sC_qiB@s@YD5L`Q|^34(xs^m7o%cVOj6a| zROr?L!&m@p08j|KH!bRRjU}1PARsRUyc*SGqxZa{@Oo0CCztp`!=#~^(b@7x{muKt zpF%Y2Z>`gL`rs8d1OXfp$@0f*l7z_?C3EPtoe%MT!#Cl|?svVKdcS?IInsw`*<;(9 zI;rhqq__Wx%a)#kGob|9qYiZ95ZA>)v?sV=vaz30C~EB=mVt#KmG$CSB47qo2FPiC0QB}n`Zg#AkuhyqTGzB3Wz9=mbLI{*;d z>Nde(F!H@b)~d#Ws&&+aNCFUFI?zWMAJJ*jd5*8t&fd=dOqj$C6FxUnK;6!alJ)N& zZ@{#;9*IOh9N1 zH>{EW9;3K|+^(n-=odbPA%FHXW7~uH~p6&h=mgPrhmkV`<31FZDG-rO9wWrlIms zZ>PE(XJ&(Mn@@CE!_!Ol;pS@vX3lm4Z^c(y%rkTT?3D*WX5l{2b|G6vHd@X=)cr6$XmS92nzN?EJ<_Gl<= z%+#2w7Ba?Q)m!apNxMR%YPPa5PBO-fkY$;U(Grr2gV@}Cygy=mdlmbL6J2&5pq{sC zIgvsZeyt?!hdgsBS{R^TtuiI6iz~CH?I*;5iFqT2&KRb;qT(s>gqSWKt#Jfd_FA*l zpvv_F8X>S!m^%y>aBsTHxT#H$+CDaQA5F}_krYF&XSE9DwB=ITo|4#1QrZ}x#U|$2 zL^$Z`6P&2_YF4fUSwa@Vi~L?jyrxLm3(L(-=8H3!E%us45$aa!Egp}@8xlf~)Szm` zV<@B4Y*F5N9f->;tH*wYI!1YK%P0eAhTeD$_;YTh@A$H+*6c;|%IunyXn_ zKQC)Cauh`mDgky_z!>AJ)$NO-D2k#ehG7_nVHk4GIp>^@<2a7vIFe=e5)1q4d+Shz zc9na<<|XI1cQ5Gqwz5jjM=|7N$@wUTyaTbYuO(8PkR|7%81f9_S}p4v;tWgT2UJZ zHVd_Hvrv2TFq*^0fknl)sQ5YTTOA;3{|Te^v~gg+CgB)EMcTdXr15e5+}r;BqUnUu ztNi&U-9p)S3Jcl z4&2+t80Y^W0I&ck#hIVyFLRBXUE?^8<2a5onM@{=$z&u+k|arzZ=NZtiw$C+zoE_? z<1L1_HW8lq3-s;HpJQz`1~S8=$$y9BwKt71w*0ZR_)Nd{{7w7=ao*Eod;TUK$d@Qn z<3>Qr^!NU9f9-j>wNXI92!$?LZ;*%8g~)NPsZMta=2RTVlPCe$M6=m-MhM7NA&i87 z==!<&hv4klD|zVO@211uxU-ICnA(Q{|5aS4f)9~0HC_?K*kj2t9$U( z->fb`IID~LDS*PSZ$Whd0szK0H=qGC16AlgH!)ydpbFjJrUi8Epb8mHLFE~&u0c1* z=CRh>5Q-XvPZ$fxVnEG+3Kdx@RN$)6eH1kn)+!9QaeMEaw=#Hf8)t3FExAwHy%zyYr)T!gCG!oA z0_B530|f*s%E*1FnHB!J*ADhH6nj~PuBbD|c#Gk!GZ*n!2xe^}eap2{bIYx@)&K@5 z!b3ddjT|C(`Md6l#Ufs95`W%_;S05!;J{iXhz zu8n3X*1EOMH6RvU#je#MT$1@-U{O>TSZ}R0Q56C&m?eMC860JAbV7OmMY7b-@9m!C zc#2%W(?mYclvjSW*3OG_s@m`F&Y9Bs&IlS$59i^$hx73K{BR$hp4yL53MKv-?WZR# zeRw$M;a@@wM?2zE`yHrZf2ZGjo`yZCe4gsW?`{WpsBWDjVsX2-%JVxM)N|ra6+51j zo*u1@XUfYO_wn)Z;T5a{FE6i}EpbOHBNB{As97^3PukQh zADFH&U)P*Fjz&veTE4C*zOE`?ml0oAlR20NprG9`Nl zTI>8|H4FP;>AqhPows_;(o?b{;7$3ypH#Q@MJ>9)cQ9(k!1}sWWqev+4@|xuhOn_D zHZdkKmQRZ&2KI&ykcvC>Xnq#?X;~U;eFLC-eh-}V{1b+uu=KQMjb1)3GCnRTv!37d ze8(JmzTz^%6~)Cw=XL?>Qie+xt)yOY80+mK)dh#kvmM~a!f)&wE+o9MJuHkdiE&>a z20q&P`W>)Xn3tc=l007u3yY|y7ORucfh+s`KV-uL1i0Bv_P!;^r~R&la{Lrm)vz9} zqTM0diN&IN`0Uvnb$3U&*b=7()t>4lnU;aP z9M9C2b3j+h@JUZ` zIbXSB=xGjjf^wwlX)V_~(o=;kd$jip$ZErl&calrufWpT~K zKOpHTE*EC1r#YM!BR$3CvZQ*N!`TqkQ(R65C?g)skkC_}8_KAeCtQ1)>-KXwFV2Jh z7(hz=_%#Lsx>YQ>)@wgmOZ}2%#bHUeqr9K(*D6c)h3)mH#FykFP=I>2QvuJH2t^+g z_C&5EMha>@+a|+*ThKxPPxO#vjTEsRd{!C2;RI2X?4W`QUF0O$1+a3aijWbes9Z^5 zxpG7b3MX)R69)wa=wMm#Vnl=#q~Q1v_0*;bkR@B-kV+;5DPyEe8ZkCxv7L#E62}B% zIsoxz1kxHFGb8~r#tI7}yxHPvl7t5r9o$f$Bt#Av)szZnNZ^4KCWMzRTR(y*X;aRz zf$2%doI1V~Y($jsqy`BKTqCftO2K7if`^4VX1uhi@>*hAQ^X8yis;e>P8hEM6f0F~ zV#pdJwxvUwIy(@J>BpCuM;p?0j$bPNf1eFC9aoHDIW;e%heW1qiJoQD87L z+Z{0>iwHw-_%aqH4Hzn}Dy}GHfVix(6){&t6uDsx5LF#8!HNbHi1?zCkg?iPDgg-` zBBnS2Vhe_;g zDUpN1LyHLxLl{}3v;vhhGXSXqMM}w!#D4B8`>x=Vw0riwbxh^nd_Uh@ec!OIsjNL; zE39Q?x_Vmfd~cUD;xd`6&StZjQL3WjSdc%HnVQ5kzV+^wG|cr7=b00!LL`S@k=~WX zKml&tc*7y~RO%OuqY)G%C`M0@j^jAu2f9WiNtV~>uMt^m;L+UL=!uxI)grJ_<6dxU zBDlBvHbjsuwz|`3d^~MDg+CY9;5I~%%@AtfA@RkN2or&zhM)@Fw>6UPtqO@}25cD^ zIqYVIWrZ!E3SDbv!MJZDENrZUr^v|AeR^8<(f|S|Q*;}KgKCTL?}N2PZ85eWABkNN zmfwOWNAdnZrsuy^ZhHRw7l|#pUKR-X5qj3q^V_p(P9AfS+#jmY{b9<YPcW_51-{=fAuBL(?flLn&Sd&vc(0 zs!Gg4;h_B74D0!;r#JglUGTpr2)ceh1!1Ru*TLufcXCS1P5Yn;!meN4*!^-1YEK3k z9uBH9$UxP|JmH|)V*n{Dm0mmNoNrlWd&_#ma8UlgVRSAQ9tjx+@SQ!pmB#GwEcFUx+7d&;X zwN^7f2Eq1vgoEyrxEr2X>r*Ox{bvS7F_b9{moZ9S2T!W-!7vQNFbu;GlsTZHH9)YU zRgBm7z2&RN$Qd)|+A5}N*pzI9y*K{48dGM>*A~Z_Ey7>z*H3$FQFv1En5aeI*Auo# zMnNqqzn10(4X`Uh6UH6lIgxJAeLjXuPs`lv&=*BuQTUgiMY6v;XA%E<8ufeLD5=~i z?^$!m!HCfSyW&3IpspApeoA8YY0UtKLT~deQw_1J+xgWBZU33A478jp#qTZZD$4&2h~MbH2!@G)S?-9ruEl(4?k>B zSKJ@X7}N)i;)ba`BTRl1oqgfko|3%XaSZyCQ}Wwn}`ch29Hk~ z`@2!UIlJPfxp%M@<~(0?CAda;5}XoV1eW{NN$XR-GjvsLs;m zj35UH*n;KtWPow5bls~jPL;4SYs9;rRQt?v^+ElsjI-6R9b@}B-wW#R4L;|A=av0^ z-WC>Xi>=LOJKFDnitdwxou~S{PaHQKMD=DjQ`U~7R9r}?sNC)cQ`mmU)f^R zw_i^i1JkfkJw2-5rU8{cb6kCp$$LR9F-gVCv0q8~{WFO8EI8r^$q!$+I)%b3Iue+=&}|Ne{-kKeYz?C&GZ z{?2}%NaI-k>}QlGj&j6VNBcIkq7ALJ;oC zwC$Z2MV=RDAO4K;d0yl>lV&2%&nUy4CwIs@d+~AXJo!8)j@gT(nRHb?DZUMrnMtyp z7k|d=%SR$#yibZ>ik|~j+IjMkc24rdk>kGX$w!)<7D{&V?vwXN(qytdET-Pn_^HJT z|HZ|pZI9sMuuV!R|IlnwLN6McIPO<;G%GsZud)azq49ZmNX&m=pAgTxO%{3a!|Njx=D`1eezfrB*u{2~-Scj(Z3 zqTy+=Dylo7v}k2xl|qll6F;?BRunH5)SbFe7wS%pAAUte6UX=!9mkXDYQK}o^rS=i zJ6SaRYufgUpLB&ZKKW0kZJ!XZq{vMeS*`a8Q=` z_r-IE4!!mZwR+dE*<~na$DHbcEq2GpSB|%Nj#K4 zKa+^SPpgk({FS7HireDJ_dpHQ=zcMQO#7ap$sgfGs=|so#N(=|#7fmapvN{vW z{n~EfARNBaiH7IZJ+s%vGO2DA4$_%W?z4A$I0%1|MVYQX==bl_t%|x*I0%1@F{G^M z2Qy&d@pu)W`khWxpI7(1QXRkUM|pL>q87cEKT(4v1QH>f^l?Yu=U+cb2~D~}%5Tpk z`}wqmVB0|a{4>VKj}(4Blk$h3164Y4lt&|f`~1J;mVf&9ZToYeN~krt<(%8+k7S=) z&QBaW630`VJ?e>XA4mB2$rFe8_S3pW+VJhq5TCTxK51LL$GZie)u!UA3uNir6j2|^v~H1?yZ-TI1N{V|G^`=qitprZNnY1^M4 z2mbsO<)>|*52$E<{5bG$P*JA*_-zYL*cmUD+(%L#-7H}h{r$8c-nt&3G*O!!@ z`q1#si1qtFK-LuT-hJ;AgrvTo+y8)4#~|Pz^@EwFb1K8HJtceiTLT?p1ymaNckLQz z8d?vPGJNtXWZwij9XcIA)`!oFRg@7c!*n9S*ecNjwA%v5g6Is$;@*hBPjNUg8sDfM zdO$|<+MNi$C@qkNBf^oipQtE3A7Bq5TeufeNR}uh6aqsjgoT-qA!H8~6B8wi%feRv z(8?Or)(LBSxNuAmf=0)wFqk05JkLUfGas*ORK*n(({L4KTR zfVh~bfdmFHYHwF2DM721pm^@^K4AnVDmjoIGAK8g_N3xgqm@5EI~`?NdlS9>gnV_M zUVl+OdV1RtVs|@sZug`)#`x;J1LK55AQ+w`2!f!GunvMggy%l?xN&O{$A6!cC>N+=NT6+t4a0df?4nB48Yd;@lItYSl+LUSS!Pq^a zzaP9F)a&oZ@5hgx0L=g;e> z)|&CPc?JUR;HlU^9l$5kkiiu_h;IZragi_QdO9L4?DR zH|HH%zXNP<3VQwZfa*KF{(3C+6o^Nz8Uq+kye1zzp!6(}?I6;#LJ(O2S8i) z^Zn)i8Vh|_?It*lmL!#j8n&qL6C%mjjw>)1mX?%2W~vDrlIcmvObZWNNDXPgifn><=wf@&y>#VgE*%qAl{_v#Tt@R1C*0pSTSwGHldH5$}=41ttg^_~lGQ!x{SPNTQ>%Qo^H1%-8 zTE_$4IxoMbrm?XxB)4wK+Rse|3td*Jf<@QiQ088LOmli#yVc}m6}8`Paqx4De@tOy z*v>ON@#<-9O9!Q_Kc?P~>B*02$xjDUPj8VkzIbe`)>=cb9kg*f6&S?gZQjtG#_p2W zhVGn734VRed*(N6wEMk4OO=%rHl|-hP>dkBMQ33 zFsWLT1q+cWa_J`m*iH>qQ*={o=;!fxHuMyrDMXdTyJn^2z5bTGbX9&!U~VdQufHX( zp5Cqt8*BU%q3gHwMZ*c)yP>4@`ddo!TMA;L_v6hm(Hqh0j|W62(d&=LMa-D7&W6%H zjchB}1;byV*b_Q*#6*x*t(>*a8Gt*3yqEAW%wdMXyToxEvq%Cdi-BdboL(vYO4-@T zPx}2ZD_;`s)0MhUU0q+kFP~jvtLzh7MTd@(lcbLr)WHz}-hM_o; zwxI@lnJ3HkFo}RI%2VdL6!!x3%hend1l^9Euz}J?b(MXgi zVS=og@ELu4@U=cQ(u9eckB{xdSV09SP@u?Wiku<^zBYx;_VXi)fpypC2e6sew7!x5 zAvktE|GKyPK0YT-*la&P6i`q>1t?HFsiUE$fYao&6Bp;MRH^dgIk8>1!dTxANq*At^RJE{+&bf{lc5Yb#+X+j@P}2}P#1$P=bUq` zIOm-6n>%Nn4k^z$=bUM@9wKaW#!}kncI=#6qMSLdSFF-%t-DfI8|2tnfwINAE2ZvA zt+is^6`M0JwETj#;$5rGSa;=Oj4{SxtyR=$YOb{|9%L>#CDxJGu#IG z92CTCwS%#RgQ~`wLB`MW-s~J7GHk`mIy_E9oZ7W20t<7@H4$Gkn@c)km+yOt@MRWN zN(P;&8&rGBF`$D*X9guBzd6&X(sZscsidqu?cA^65f=yn9wYHuYJ#JAQ(6%hfOJQ~@K=yuY|1!7isJ+h6*)`dMUt^~6q`$^F2vUmW z8PHL|J5P!zKKYF*UfVQ`g`*ke!7}A1PRL`s7&_idH_RZq`j%fuW+QN9ny`tP!>kx^ zffh>mtV@##Y7qRLy$zUyltY7_i?YswoGMNFtf(pR+l7ZN5Wc)sbVoTRo6)fonAi*B zOkRF_)%1@S=nXIvJ?|S&GH~4I=_c(ojXM~S2&(Z|h&B;KBXi(jxz|p@JW5Txt>rK% z28DpAg)}nO?vt)OfL8JCPzJ3_mJE+^vSyr$@xBu6fIm~tU$0x#K9b!j`v z+fBuj;g`1Pg!mmWz2m0rNGCEdX>x}l{2<{Jtz^I@GoZnn$JnF7J2e-enFWuE-%_*y zXxcv}T1+K+E#oj)37aS`0LO^@%mVsNeHuwmkU`jSfMV(zExYMaQ2aN77?2(X$-tFN zFwdnmMZSi&Rx3cKfe=F0H8+=hc&9sT$`3ir5jpvynY!^sR7UUVAfMEZ2l*;M8>vTg z;xnj`TeoU_%Gf-mIsBCP;N%BOUuQP*zH^A-dV#|2sB8RIgi0C6WXPK5i_o@csDYM( zPn-6n2IR|g6C9qpQW;HnInXA?Ch3Rts>9&Tw6&!5hi}SDN`a07^8;sVtD-wvanmi9d%$k{P!*wOEj8 zVe<)YuKg>RN!og9P&iWH)3FI$=PS>)cW+2swy;l7T0v*m*hsj7p)DpwjHmDZu2&B8 zqhoquusgNb5_;R}xr7%I;S_uV{cU=Y`-H#8Q(T}LK#Y^zkiZfW- zL^Khm?2-sz`18nOtYCWz91|7Wg2L#)Fr|+1KA)}AJ)gw1Vck*<>?Gc)9|(OLwq^j2 z)iu~x{spqBcq)=!ZHY9oMUtt7t*3*_uD^Gy0`#1*A;{#NX`&3sB);4@d5$C^CJJKf z2kpu~~n~na~^-s3nDPujlA?_2_gX z0Bkn4C=eShbI*oP)d5VPxp+y{gN&Ph#!2tP<+$|enm!XL|GDA?kWm2DA(<)urx3-K z>2`%oHtimvg=4Btl0x1Xr;ME|l2MguJ@TK`HJXQUbK&I~g=61pSbp+Rf13tvW@a=w#ae_=95$>i3C$nnz*JX8Pol+NJH=z4VfD_%;!`Lh*C<)-uaR% z6;8@qt`Mz=G5}Gtf+pto;`;WbiQMdrd(hS*$vUD?)&DRY^$;wu$=f(I7EHZd0PdP* za8F$IMAoX%4BKh(G}2wr_>E6XP1eAvftts=>wxp?;6i*wlK5N$AaX$OnyCxVXEh2X zIbc-gWveXoAw)E*DX7z0l@J5V;brQG7X3+gUt$XiKY^5$2LFRxkS8k3|!!w=W(Ct@@FRq^cD-AV{us%2{EM-#BUULAUwHd>}oZk`vu|vrRd?r&dNtl zN4VT-qB;Tqr|d?igbB=Itgz}n$j9(dXlBWzs;CL5zW)EsK5#fg8bjz_@O4|%E%6H9 z0Sf|UAnoK$k=a8^*=grxcsXLWM~0;9j&Kr~@_&8R~lDWVY0=?~ikU zh>B!wt;OTdyX%;_T;F#&A9aSWBnrT zI)qZGJgI=Xn@l`S(96)PKnsq=V$o%x@V<=K!ng@pTxS~(VCs!-Ny>c=@ zQ_mi~)htCAr9&8ph%|y%OE$EpMVUOfj>GZIp_c^VfAI60t`|HbE@a{zswt;F;N`7B zjQ+4D)ey!%<(<>y5)DG<`^xMZX9(@=5di}XP(MN$PHU)1rgCF_I{P~Q7Y?K(0RQ-B z5eqP3R45|6It?YFgbm=oXiEe#P&bkRtx{Ns5`NKvMpLZpN2Oq#!-*C4w&3I+#!4)) zez!zV$Um_Au&N|PM^+2aST^%&Y7cOdoTZ2wf~-q1CqRW*6CnXa7b z(o@mtB9)6S522dvLI&rmgphH{^1a~}|HHI1oTq!98D&Dr3CLtE#FR@UbzaE!#2cbf z8CeW0`YsRtT3OHcx1I2K3W!`0G|X#`DgP4~=VHh#?ulLoj2U{d`Z{*%xqlY7$Tw+y zBTli@!Q@~Po%Fh}MK?jZ~O7R;~Hwv6V zSNg+>yqo@rMk^wxB_)}HAi2WQ6EiJYDG}`a5jWY4i{(i9T?WF^;3TK)nkGqB(SW$6 z)`cubdOGSO&*A{)=5m|LIQrR&1S?(?aC1$7(6ds@AP|S!*orRCwmyx`1$9z}g+QO` z$Su#clDmMR5u6uW2<&pfh zVWw_E?iJR?ZkydQ5n|pzx3R{E{Gr7jQF@>~V_@)q=?b;wxH`u@yMX=N8RLwktY%ZZqw2%yKG2UgWp4atm zd2`z6kr>q?az`@)D;AU~AS6a?_Q@ve%v11YY6DFSWZI!2S0b)G0ehotnrV#Hz|Csy zS*oN`-pOGLn8d4|xqS1`|Gtk|xRGX}E9G^%G1<7%XHAC8@~qtlmogl1*sYI^fGA|M ze$%U0`K5qd`8|edG*)h}Ryf91pnWE4{Nv4>)UW0@^?3sLobvGm!Ez(jHt;D3^UtS1zQoP8sZ zAk%{(CPif06Cr5NYW@t9Nt*zq&&bj`w0bOAllSQQu-HuK71^HoQ5hsD5IZJ3GL%H$ zln*9Cx7jYuX^#q{m`gO{Whk++(r}u4LF7H%v>cj}V9vo3Y%>P(mVM3~i(*UgZ~irC z0+LfxK6hu3?uJkvdEB`dHib3WPhP}aY-{_aM#^R`dzc-Cw&CnC>W|M^YNNA2IX$B* zb>eXw(@+rD`b!M43W1E+#r=q-PIt9xYqN1G$F_$)(2TV+ze*`N(3oQHsEm9wVLrv@{au#`Z zx+iK9T?EoqQm$vL56}ex)+PhM&Pa_AQ%4*2p}V_F-?mK_@a^D{3{At-t+F@$xi=+9 zn^9P-oPMI97O~BQR=m!u?}g}g{$^oyeRi`KF--H3W|V8vzr_d6q8h}PocH_iQJbTK zp{OP2sHk+E`wPQCw|VD8G)O~vnC8kg?@#yuW}m))H>iD#CeojPd-OYzGy088P_Z>- z&*(SLQlarOvu>>7oV^FkTxy4%T757Ke$IBVNs+aji}k;W!O2a9#KGb!n!It z-Y>HgfGVZ`&{}hkl;NX*I^8kK#8S~G1pG%=XcO{2tuM99PDkI7>Nap2g`m_ryDY>m zN+@heds?xtm1Ttv9!Sc*Q{sz?M#Pe1K1cG@UFt2ZPu+@XRMxghf`CzJywDNLmmEWCr^)QM=LLakY7kQuKTxx2 zo`1RB;#yZmvINmwafu6b1zm@Fu2XYFd@FmpMreeyY8gpxXyUIf?te9#3iy;|N=F>~ zq~|<<7DGw@7apDssrh-4x*3Jyy1bSQP;oI|)IMgsqV?+wn{m5(1}hQ?q_<+TJh*jI zhN$xZKKV1DmrovyF~ldPP?G;l1Vz~^CM6FB>8p}0QUMy6Yjo3W4@i=|&Q?)dxC87* zE{pBd`%-Yd2rW9?3)@|-HR|z>9I3QhWT-4U(dX5uDLW}jfpi2p_0JmxKso6$rZ^UX(PQ2Jl!>jN+Hxflo;Yv! z5tJ?aGvc28#mkpL3mywp0XyJqI5`r~PLH*Dn*aVP=`VET$?5u*RR+{Q#rml>r_AZ% zY0wfhFIpk9!`SYfC(wZXX(AuDh5L;jj%SeD1aA=UUV?X1mQSD}a7`y9v|BPn4!%y_ zkGpXrSO@4MiU<3ULeA+f&%awxP;`Obk=LXgB=qgR7cbcHoZXm{!S3(tf{Nv7F2&RH zj?JCk`2xe7)8-D0MYufz$wnu5V0#!MTa)8BCkF1m5;5E=C*C5!(5yV-$Y-oV`{k^6 zff(0w@@t&%3Bhz`=*!R9QZm7tSP~`L&%tU%Ww;~&mtt6{U`#zCvT}vag*$U!_C3cEy@GL}zXa!D--cSiv zhm~X{8yb?p$26?iZ@j$#E& zx%MCrqnf-#qqIRrOxdLeY%BjD`)!^vncRVq$Q0q73QaP|iQ0>}>q2Bu5hC)yHA0kg z)u}?SfY_4>vU%|+qxgIBkk0}y#-Vppo1Mv1jQ7Jo#^iA(=0#4fE(QTvkgP8B!13@I z*!tp)*AWR5^I+wPmHbakDB#FP*_4gm3JgY`LX?dOb+h(*^XZM1bQ7FojT)E0#LrmGVqTq(e zt!}N$yvR1+Bp6v?Rz^C(zS@gU`U55)>h|D31}67+bA|%X8S$-iM}fJz6h{qD*LdmCDCjPoz+N^sd%wX+f@PWU@23lYj2V>AtyK8)F|r1PV8}Z_5PK z>Ua&-p(!||9z$XQB1B&`WDg^_wZw#}@)jUAknAbfrc5gSQxzoJMQlgZMR|RWeigCf z6Hz`ddl)7D`dEmAbB4MVC_vyKsdIxxM$rg0r|$0F@*Q}-)L|uM29VH2^U0d~n4{%* z0|M;CZA`@6aElA#f+L;d3Ym{h_1zZ<#_zW#n=Kz#92j&Hu!M9s@h2Pmod8Bp5ieF- zX|Y=!R(=EMa07`T-toD>x)zyDAqlcfu_Zg+(sJ8l;@w~J^a*h4rv<&jbPIEr=fKYHI zAALmwVbOp+j(LQ`p)qJ!pIa&J|KJ^_^2Yf0JeN5yfx$-xsy1Se|2RUs%%!i)q(O3L zn^+H{<^EIUmO_X4Ahfo4z~;CmG3iIiNog4P?>=qf|{ zlKxajxWCM4)DgL=Rl@7bZMbQ+!b4(>f$p;##1!*MQHNxN0@(64)gmKv$w8k;xPf~# z${_fMbWNTqzNlH=N=F&=5%3|I+1oM-I^<)TN4(5CG<=sCyMh9YkWSF-F&vZ9nAP~< zE&_paV`>kjX{WT+x2MG0CK%Spqif@qtoNVzVyWcf94wbVW-PIzUeo3^`dx1izRx~r#B6deuSrM%PH^}sF57f>IVO<<66mLG zNB3cpL1C(I<;XQS3+fTduZSi=t^hadNDa)4?S`j&i9*}wS~IhjAa#`n6y%|$KUsce z@W!b7CgpyqbRbu=$$7?7_Te1`$#*szsExO~ZSjo_*Ns8{8N_Yvz!3UpN;aO2O&VHj z-|?JpL^hE(ACyPXIffc@X2GtvvN}~(LY_V5W>G)W%`x1pA-%|GxwYSxknAbkFCg%p zbUSJw4;o>~O|@A-;9zf15+gjKuPA7ahHJl6lj!z$0g(oD^7b{%CH(DyVLXD{!UF~a zotQ!iY%tSaxRF%Ynznbji=FR^NPAAu@WILXAYVIkF_0>BY^*YaUEj8Oa;V_V3+)Kq zJeIqudFnQ|+d)>(&wgW<-BT+rAEl}rZjd!^=0v<^YY!V9;G>4mOLv$M_fUQOXr$36h$dUSPBu82Z!;)P3Zoo??bjYgx92>+o4oc}6Z(M8VkaypUR{peu5#ouu%A zdJDimpR9(OHT5V*p@Jk7>fP5;NR*Cy^IiEUHWK;f!`D< z&3nMCAeV}@5AF=Ma%1hEf_t17_-Z@yoc3fCb)VxLUf@9AX30+$jcY<XslM# ziI58(M_c?$p4W$gGLfUR~!_>dz?(Yk8xwa)O)C>zaFsqW?1K zfGl$04od{wc)xyAnAT%ndB`qpPI5sH08W_rB#Z;p3b58D2idmt0~)Bo6RTvza4Wf{ zRwe{KG?i%IBWiPh(m-DAo!ab-@DLkwWcp%%uI3#T>vzrH#8}v;e=| zvYVh9V!}A=&Z-In)7iXMgTuQv35+jlVWeeV89*VI%&Iv!0Pr7yGzObj zIIuK5!OI)I0Z!!y3Eu{^4x&9Rmj>u19E$8AKtd?umlB7pNIA&f3{gKmIG)krwH;2kDJ0cMcQ?Lc>P#s@8Z;G?;VlY}t)p0%vdWI?@C zi4sfhifHo*Puq%D%PKvS?+sf@?Dao>DtMe8@0?jToPd(K$yb`w^7rCZ3gMx*r4uDy{*`4#YU{D?nK&kgFGa%)11z!a^(u()WLp0N$#P03{8b zk1=tSgTxfG5vCS?Y5&u;jI*ScwK4?NYe^eRcz^ zb{+z8hljG@o94sHx9tVoeorVMaF3QnA&}ep(D#1pknxQfK2cjeeA(s8=vU{=4o7xn z%{?J9f9OQCmMLfnhVqX*(Ma75OTdC?@rvcvvR~FJ=C>EsOyQ~|MW9;8So}C!#1sQ) zMleLnvNvaOW#G4=RfDee-s1EjWJ#USlr#%Dw^xN93%#AQA{Sn_$3q0db1wkux>l}* zH67|-zRgBOikt1I5)E-SDOE79lP1#<;#vT;{vio31jX;9mR@%u1R9Qk|J@1mS}N`s zGV7u5C0zIAqD#vN1L{tVow`&V2){=MByhDCTQOoKeuAh#Yo;zulXhWf4^XbSXB$ zh`mln1kORz8-EADX4<7U1FmqXc=`qs=xIPJ9pb^e1-!2~cd{*}w&oX-#YwV(Ow&sB zuHMEE(PMCBQ`Mr~SzwDKi59Br(i|FuFl6AVF?#K)loA=f&eTj0pvzCv3yDWB<7*>J zMU@$-|8PF9peP!4xoxa)->EG)+eVv{wK%jRPt&iH_>=b7JG`l`00`EuHC<)-SFvP4 zFXbr|#X9pH6iPBZB9K7Kl@dm-5sfDlei(YxpV&Wfp^S3CRCxysbbX{V zJv&C>CGnR)CwwkG6Lf2Py*gqy2UuER{#U&i2#kIA-8;8#-E&HGf(agIzs!5j!tnUE zmU;AC9w%y%P3cm5A<#!0nZxP|IZ}dama}%y(b^*R$tD!yiiK|YV($yCONIq42q4tq zzLQ0RFopL7q)o_30Y1%q{uU`&YUUXT(Anp!8Pv6GlTk+h-22X8X~(MQTcqq4Qc43| zx<6asxGVQrD*UUIy#fm9V3&7KOFVbQ9z&)7+Why}{4<%#IM!shLS&L4XOB-aQ1`Me zMp@Tt(#1Up)^&64o9e^H-KM`UBrww+Xe4{z5hj=KN9a>}Fnhg!*r^bIDp5>_*J^8huc^+g|4Zt9l&Tpw$G2uFR6K$2$l%rR#`M+%(hq zX~@}_#H+D?*)HPwDXZocT+AqkR@4jMy2z(`?YHJhDD;YC3_|hYX3lyw!__JCiP2I-QMIvmE0giK)=(2d2p8rnl!^y}Mg|$$aa( zl~#*CkQf@lVL2$(P;VoVv&wOg&@GSmJLVC)SqRiX_A< zcYEclA`wSfvMM}>YabGyXd+22A;+`_DM~pFPceLLQKaG`O_zf^vU`RbyXS`F&a~)$ z=hA)kPw2x?hQpim6A?kkVpJV{&IH-q8E!$&AU+2{4)lW5M5y(Ue84T1aPaEB`XnDj zmcG?J>r3YIFJfda%!~D|oQ#;M!Z*cY(Q~)>lK&J_i+H2rOEST4TW~U1xVjqOR7THdG4Tjl%d(*0o@zOWks&nXTg1Gw0DlJ`8}Uv}c`;!8+hT@RSxj=^b4m z^a38#l@Ks`<-ZNMv`&Y~cw~A9*zOB$RQ&?3M_w50qHfEVg7^3clBGU%$*>*i-m|!)B+Zi8i>r|t3 zNLGhdB&H7Z;(v1tzEmQ46}h3Z^M*~Cyg8fXF`AuQs za4?avSNan2w8L6!bwRW(9!gw0EDUtCKCj1SSUj?{>=B5XK+RZvpx3Qvw{q8t&6QeU zC9-u;?y)GyY)aT#bJUfc^i@n1F0x9G;63bFsB+thVjLvC0Ai^fFn3W|8sSSL8bh#Z z&bxtVim_&|U(-MK1HtHC+^E3=$K#Bu5`?zX%rFuxaFR(0CpmA82CF%Z=&Flm$j@k? z*(yJ61T~*QUEGzH3tmy+LLEtUstGcz@*>d8Jb6XHbrjmf?7S#6{@{yhXxFbiOff&0 zaGy(d(M#Tya?h|8eJW-lzy3J&YFu55Cmmm4qnDh245|CN75z)vc&PA(6wI~FIrYQe zcwLu>_I<(Awn6y`*|Al zs?g+XM80|D62yc5$I$kyt|jFO+cLAm@#(A&Hsq2t{q#L?XL>@9`(WoGsEIsnmvL2= zvY`&9*h@{)xC#?k!&Rc4EFaOH$Wr`?UWD<^d3$Gg_MbXun4axy$*@kGsJCt)I^+t| zyGgV`*yv9R`dqA1tbjcRm*q=)$Uz;;9VMGCd$cTcmp~-iV{Rq$(N1owSOhI1!NiS( z8mCxF1eXl;g}XEZ@D_zYr#`r^b<1q@4{Rn$SuCC@{l9gY0L}{|L>-@2!uy7 zsHfw&?}2PS1cBsS73BGN=fMeFufC;g7s%9|w4FvO;O&+j^H1g#+Ec*fuW6nPK0=Qm zvPh40#al>tj02siQvG~N1G*e~EfDeu=)zGMk5X-t=+vPC#{2nq1WooOSdk_2myF3x z(09VmHf8E>4!e>Tv^zg3i=bGYK{P!`y~;&Z{pTVf&;^*=hg7Jv&al72WssN+Rkkf# zv-?_;BJWy8PlfhUd2K4>TxDJ#DdqUK>;w{0PNAszUnV&kYcuAU;@6kOcHrr6o^065 z4pnUkCG?dpRbfGLQ|1^Hy`V@Gf`tmwd2fQ}HU}L`_!81QqQoI7<|exUuIS!-za5X| zsV%cuKW$H)8hyKfI;J_BM#w-kz4R|ha!ZsJQet?N9|-YApsh!nYfx%WJuX}TM<`I0hg)u%& zdsE(OI1?4~-f(2i5g<BJjT%8F94$@`;D%(%dr+r-@|s=^e0q!ByMgT-3+W+c6r;-}h50AT zoku~|HB)^#co!**J7Ta~(q*$;o6MaJOTa^R6aMu5nX?4I{~!j6-wU*Uk~u}wn@{Cj+7GgyZC=i-?OI;o{8pUy3%7|q8aG>>2Of8#wlHOdQDu=P$t6pR9SC0i zsz$8Nj_OA!TOa`4X*W9W+6t*!4N4i?>1^K`?SS9PfEw^xRe zs|FL0iL|wdG+J^8QkFlu+-cZrzZQ-KSa>=e0cZJO+~Q4i*vEZLGme5h2*e{GS#Yle z&rKVQPa>+l@P?klvHyT7`jC#E0TQK|gg7d8y#@&PzINCAQ4^s7= z>;X>59)PCX43KFM!7e&Rg@msJxB4J3v7)#=oL4mb6ef3@lD2e7N#PEnF>?(dfh;o` z8G&?P`mBQM7CloPhvw>h#2CxCD**(PVi==WAQS#pGW08uY(9Ar`J^N69M12$Fz3XpJW!u1A$;uvo;T2)K(^-+y>AkoR4N;U25 z4jXfo%|vawMud%vDnQ@TXh+Q(@1iFH}c67Nw=`e)M+WcQMoA zxoPOat1&;D^u4=^r4x|Ju6Oh&Q?Nw~sCCdfG6&KWQP-n?&CwLDC<;v|6a^1oCNo&A z+BpZ({QCBIhOg*Ls`?Yja9SYBJ%2*n?hZjEWMAxsxNTm_yz*rAL#l zBcCgBHSVnzQ8vv%!LQb1TxJy~1d8zQAx#v)vC&-?&tThb8fRoY@Xybzbrr_GICue&c$qEyZRJg~#0 zA2cS+=Y%L|Ok}UgJ&|Mj)heuMtq@FikZOJH(%a*?dz49BUPjzW&yw_g)m;b0dHbrX zsIs37wYyZ{d*<4lhR@z3nvSK5^k&k~E_(?rw}S5B3XGhvDB~v#3_x`M%Zj#=iL(0> zjrPhOYavshf}X%-ls&=O#7tX_tUm)){c=^L-;7EQAv$16opc`p+A<`5WwX?21r|7u zAC9X_f4Acz4Xt`l=pdXD>~jBVs}wt@vuzUuvc$37#TJaFK z*Ai@EZOfL2q9jm&=T}BL8MQ`bR(KF$yhx99<3WpbM{@>Y+DFnAkSD>8K;Ca^r{dp1 zIZoG5H1%>i*+P_4y98g)9w*KddUE~#uo4>t#VQz#9FBXe&%jy(Tx)uNd9BW9!m%tZ z`p5qpA=&a*jQ&kS~&l4Yn2E;A?2h>>^f4E%4Mq*>#NxsA+-NN1{843 zV!b{{Qfn*gndD%tE7429RwK@5pF~QB1OfJY;T74oM7`fwLJOfMG(D1Pmsm!Qb9=lN zg_%qUO>t@}E}&+GBc_%W65TZ|nAKyKgk9lYk46FV%HCl?EaceTd|h96qtoG*gw212 zw_v&Qy?UxoBjHJc&B!Y7TQVc;fSkWXDWArA{Ikcfa;E{CDxbw&+V1s zx?8B@U`Rp2PybIyav-FAS5(x$tuZ}YsN-pL5+`HTAtlNAWE+59zK#BPwjJPeTQ$!z zn!qmKPJfo&2y^h5yW?fcck+x7G)6v)z&xJq7M$6r7%$~Te!nB}MX;w+CazH^H=GbW zKmQhn*NQa^ByJ%hoM(2KK%}_baB+w+G~H<5Po>eZ!}Zzs!59<8u&ce~FoP7{qM&XN z2hwu(f!3ZmjddU0an}8*5?-aT%1=R$iPj{c|9WGh7@`0Zna^3n+w*f#J|+yA{KR%l zpzQboL3l|OKP3M_uKK2w(gmc1q*3`v1bs?#>+FH+{dJl^{Y_`=(pb7HGz776Kia*T zJC=a+H7ZfB18n8U(j*W9cNiYZ&n2S?9r_S6#tfHZX^I>Js#we$gXsV=|F4j5H9IMo zp&)<9*C&l?uf%S%_RzI^{xt2UEdKNhT_T}8L=j7-llt}{@^!)|L)TM7Yb1*=(-*Cw zq^*Q_D@2|wqJ&~j%&0PCv>{ouk_6?P+8{wQQRZBQ2`Mp+L+2z1}zaJUMns7axi$~&G)I(0v82MC4K9!oWig4M-pCBKnBBuHd9Exix zl$~xuJ;JHPmVwFD<we|?D|e#Zci7afI<(VHN`YO_Hv6v#BUp*salR`*C5}Br9#Dt5M^zEg zTx-NszJ-UE?@6TPH?F&&ZIM3ycOCO_ys%APTG7V%?YE=>T?@EDVzI7ZF9C=+FzvTin> zjB|29K!||&SST-*fZVCmlmJ<1oDOby_4~)gt)p|1&l#&tHzq%z64`{RpH*!!)IG=h zF~Y;eNET2H1_!?d7~{RXDEqbnRyt#VXeZSz^IPrJ_Vvcd_eP+7?=xn!Q-R0efcjxW zL^j9HMj`PK7wvc;b)E*Y)JY>NCBXoQeD{Ls0yEBE^1_e_U3W-rI@_AO(q&m!SGJEu zXyRHG;t00)rFuE`i8KP0@p{S;wfu6mXSU$3o*Q7{O1DYi5o zV3bHeX_KQmw=lKwV3s~TZg?tBikQ9`!9IA*I+-!#ayq_-R&KhKie}G_KnJmfgk3TL6)J0CI|0!{0rj2L~#U}qH{_|9p;iXVF5bRY3JU6 zAXKV@;J%h^cztYROza3TL~JwSzeInu-h2j~^T!F1bzniv-}fNs4jm^FmY&&9&>A$x z+32w$CEGC@&IHAgd!^l-5W~}{-5buCD%Q}+qIN^-saNh%_Kq$WB8H^NNO_MHti~>c z5JM>alqB-PH+X9K2ZmEryD@v1oshTOJP{{EKHR!h5u$ z|B&9?-K+^75V+E2Xm24Wi<;{X3n#Qu*gem}Ychv%T4V^D0mOoNqiUrU@*{1pO=b3t8TRNDDg*qe-2hKk zd)e@c&O5jV^y@o)2F+WWb5;?Fy+b2tZ+6>Zu-X6oRGLi6z()bcI1jKAV*|ZX4jd5@ zqLpG44^p|79IqWM}T_*vREQ4Kr8dk;{jMHXL>xn2Zb z+pJ+k(M}#IAR|aO?-x2lXHr9&dyvj*SP4YDErng8@yO9xv-mGzQ?43nurytesN*xyA(6~+?o%{Wn-gjnoj>P@yTNWGM!G|n zbPv>ie;Ae>^_OXA_eAR6$=o2G#{~Tr-V>w-wj_-^wzMht7)Ll|(R)~szbIr!O{}0q zVrGdP+g5Y6W}^6ThEt_4Ji|~9n4?&=ufl_dg00Dn=Nr|r9 z@ejBk-tu$7b)W$&MDLL}_-R9_dlffkH zuYAmm-MnkFa{+jB0fZ#c@uj3Ixd7)uxYNSeg~1l9!L-ZTlfxG;px1u7*FEI*K|$*gpMM$F#N*6du3Y}Rz&STckvt^yjZ zpZPW&U&VZyqOPT5AGo`SJ5+A=On8C{wOc0XArXYy)jxlPoI!`=xKZ&ox)4y;fesx^ zVWlyqeKYWfnrMZM>qlJMXV{}hMUE*9!~RC}cx@~SRR!Sw$ZMh7I@x+JsTH_DL^g%g znb5O#MZ%!FS7nt@)$+k$aVwC?@PxSER$9fP9UK&-EhPY+mUm?4N|hqjs2G5rR>~D1 za@xpf)quEch1;>LT6HH@yIr@|keuZRc_!wV6qTGaHc1(!CkEB3OMMtAc*cXB2@vm; zBrekn-f64XkH?tlJkX~&5AP!AQ!WL0n(3#mU8l((qK1lnAZStK zy`wX%6;@O$T>gy=d3LXU(fnZ3U-&1eLT>CS*;E4vNi1LM2=sus6M9#v#+ad>VI5t; z9y`RSl!|7H+y{==PoLq`^x58n!&FccNg4(1q3JWQBy6rVi5+5O>RL2G4$5PlGvk>j z={Gm!4>@?O+5_uDp#okynl=M^8#H6kO;_Ww)OP3t(?MWjVa`lIP-Q$sAzs`Z#NZ7M zl_{?r=~8l_%ZGG1l6jG78yM~E`;L!dleuo-4m!3UBCH0@;eJo3u$w;)N<_i&JH=PGt%4 zTzl%1?OIw)_MFpt+}(b+C7G(eZ8}E^d_Azj8qV^(`)rfJxx5$LUwVSp>lo1_^4uw^ zd#58Y?d`c}xLWqlSrhoJchgEMYO)MEdgG`*q5`);9cCK^mce{Ok61c?f_+$`xYwb^ zD?an2FRTD4iuH{fs1rgj8#ZZGOwzwBO@`w#)&ed$bO2*>+{2$=DrLpy8yOT2tap6ha`|!>Ox4V*(BIcs5$`;7H zjvTW~Z$ij1ZmKe28<81cS!0Aj8E=o@4FR{^674e+ zgh*%ox^mtDCNaFpnJMQ$#!E-&_nHcLr$KRe-UrR4<rE~XShbatUB$yc zY=i(~O_$^n3IW^{W000J31PQo9e!nn$8V2k!vP{W@KY%VbYC5;rh*NCZ23Hf>YjmN zFNKZ+5u+TKRvz%ThwP`%(n4(xBGTRZlF5O4{+Yz_KmlCCDvE(<+=>bk zln-&>%{ddNy@27rVf8Dy?E)x7nAVUiADGW}8yu7@(S zFc&LKf*^OnFtl>&72{)5d0HFChdnJaR(h5SyV%|j0H2cU@7hp*V9Kc8viMatW8?ca zzq{A*>ZpYf&560JPjr~(L&TfcxcwGMw|yOrrR38t9O0M{x7aJrI&BCJTv+h1o{ss*=~+4rz(ePjDESoev2bZZIXM2QM8&_ryL+`m@+Wu*>N{G#ivJ_(u#;R5G~Ic<$?m-Hu@x@?q;|$fP6oM zeDp-ft|j%j2^bPrG-7LXANpxvvb|?NC&pI-e5J*Hl3<05I|W2;Ae?-vkOAu)5aC*@ zUbWNGv%b1*jpSBHrKC&os~=o^Dkg(6%8^R>q{ISwH2u}X*7Nc)s0Wk3{0Bsc-?{e8 zS2QzCzS-1HX3Q!Ju;Xy2s}vkO19>92rHp;KT?XoGwnpwjo!W!F6}el?J?}!XG+K3^`N}_hUZZBaC>+Xo<7)>UF_1Z%f;Q= zcc0O2|Lu_e9psq_pS^SxJbUU({Rz9Uo3N{dT_ARSK;OAvtV4a_nYr(-VV8FBBs_Pp z%YKAiActKp?%h8RyE^RR@WmnKA;UI2b&7m+M3|wT@LsmE%NBNdu{fmR5a_a%;aguY z+_I&dNpBFHe7B9Wb>Fo*Zksd(Qc4*lyLN-v8SYyU4sSv3>+R^`nc40u&&+mv8Dzs@ zs8tuw1nRBjnW;f$GK|^rhdZeYx*O)Sti^)Sfam2pd{KR_~gKMW|OIbg0@O!tzv+h;4@>Z`8)@Lu;t#(zgz;2wg$U77snC zqoavpATupjeI@`GFI8U&0B%{qu4|v^JIcSKsCIle{k!Q(CXSTLP?a&4y4gQ8_Dmdk zECwiO}&IvfJhK~*ne7tf4%)n6*?ny>nz1V76m06fbgmlh4j zF)xm)&v8b)3cG&ssL_?vLVbR!38*eU2h}q$cT(eJ3so;uQ)7_X!=ngUQF!{)mtVXJ z_r&>!`A*tkozwH%fi zpBuF?(@cC*`yRve7OlLhUQxG^dKF*)byBumsSjb9s?nwT5SIU_(S`aDmbYA#IIj>9 zj~a=HKTeHAM9gDxjSX$zf@OWl)MA>BDyc8^S4j_9+jl|O&{BQn@}@S{+EJI)MMQ;z ztS(#PQ|Bbk6FuEcj{;R2Ls+hwm$LfM8Zzh!CS6ads93z(2$H&7xp*mCE~VQ}CMhAF~FeW^!1$PcKu;1}xR#jm7BIo59ivek8G8H2E)wOXMX20|PAkk!3& zm(|9Q)kQ2T?ja+Ac&em^O1fSgWqsK$?jh@&VGO&)G)GcCJ--~%r!jnl1hT%+BP2i_ zqpGX0SYKY<*-`p*Y9xWIFOvkQck}as!uQoE9M%_~mLCouqKL)%^6F6z3Pr`>mlEfh zSunKUqQ3zG@?tAV!3VG zwr$%c<;65@YB;z84#d!Etrbr}sm^w56GoI?dTY3*3OeZmq&pXcgQBi_b=q?sH+EyT zHoW%Y=(y2lQtN&>mU!y!Ic}WI;T=wGG0n|!J?`D7_uP#j_l`S_w1IhOzIVSD#2yW) zrL2!fhq-%h%wjghK+;%Is-AZay0=Sqh=ElUx8Ab@RWFl{1-vAY~&{Tq<>4TiOIxxYm=IJ1d zLO@?U`C{MQ4F^N=MdEAsbpdx{yBH@9Y;i1}V!rEGout``;KYJ{pvtHG7T%gTS z_7qWAo?@Cht))dSwbVImakZm)l;vF~Zs3Fy)QK;q6HKNPQ?Rv8A=Z~zg)yv1Ef5Vo z@p+0SIX$^aGZ^X7|S^JK%Y?~_J1Q`ZUXFc(!$Oqh#q ztmL6c{OeHLm%3cUkhBrcCMYZXA`Cm|$j;sHjT1C0ZyQ=Xu# zaW+9;sD@{ck|B8`#a1QqMf%7WX@ej6BKrmgYyc!@Skz~6MY7|?4h>9nvK5wkHr*+; zyv4NBjM5`#zyOjVNLV0ikhMf>4s5M;br$RIR~y)=^>D*f7WjBgU;>a=g(;E%lJUW8 z-NCBp+#^P`NJWOq8`hTzGv}O>mAznQ4%#$~=UZ)HUjTiXSTyO$swexfUKbQ0vul6x zu^VO}@Ce8nuHhcEvv^mRGh~WtlG75W2jo+x(NsI4=})1P&ZUx9)ysJWl9o$mfuv_C4GcTq_wq3Dd2VgNVQVY-X!gy&~&9YNAibM#rtj=&k!D84kO2cVIXzK#x zjoS7r88q5H>`|ZLo6bMH#(a(tq(o24pcs77Hd+S7KnW?wP}6YD#+n~mitG!C^fVUm*);}2I*TFD7dkn_43^M2gCukYI+bYh`25HK3H5ZkDsjH~oY49e zDe_b|a$rVO^R-vPc-<6WbQQ4 zWV8q+=E9`GUjXP%Brcy`gCO|t!vS*9qYcCk1U!(N+oa!!9Zp%p_i+3^8nf;1-RFVh z1hJGezHh9@>QJsaKAS9>MK?w4kZ8#UoopPPY?&-%hVTTeWsnj+GFr%J(S$Z&^yEns zCB85jaKDg*7#3N%fIFYGE*5g{z4zWbF?!6#EShspBz&GDly(Za_uhN&_3_DqnQiF{ z1%kuo2=iG^nkGTibarQbWFTf3b{}v95PLE9s@0cyC1f8E29j99H);5(1Z9PI?ocCI zhUJ43rYDQk^K;5v5zaY>YONm5Z2m1>N&rY3CHw&TLQmr23j|~ZbV_SjM$V`~h&|IC zC7RMET8WO7o;q^I7GXXCnO&t%Xu~iJ!!QiP?AF?8=hZSJvJAsO5>LQD5>l8Gqdp!N zYz+_{vRmW~m5NDo@&aNp5FVNi*)^IbSyOZJdUdU5cy+C~N*0wfB+m7owOJTdKmm+t zZN2u|S?evfMK>B1y3uPo|qP$q%|;1V%XI>t8F>|$2nrCBH`?dDg)XR(oF)~A9WQKS$D+n`>v6qP(|q?111!AX9p3MD-+ANrJMQrQ;q1|9=SJCAyLYvFBaL@Q+4j@^joQ7h zzTO+Rc|$D2UO?1Yd;yW57rd|x2c{kSt=M~D@3b9Sc8w;xHqv0P^fdK885m?#ATxwa z3S4Nd6w4m=%Yp3&faJVzkTG={dp*8i4h+lM$#J~&R^pt~gO<+~+fl|zNMrxyxRhnB zjky+EDKSgVQDearIz6@w(!ox5GD`u}2WS~2g%T~rP&bm7E;3ER`JAy+Ofyd<#WYxU z4bx!QVjl?St-Ng-4EInQ1d~R3bI#w0J$r78EvplwKnkK(V8u__>`<&XnF>~jRaX72(RZ2e) z&*(btBljy)w~>ZEr>54pXucg2h#g{Qsg8?==XvhpT&)etZ7Rm$+Mc^d!I`@_-+CJkh`EGMRdggxf{b^)V z%B7FDVZk`u#agnD^`~sQw|OeqmVNm4Ei7OLp6GGQO=tPQl$7z@TQbX0&!>xh`J^df z2U@to=sD&0Ba4Re{2lu~5W6Ln>VYj^mhwG&9(``w2uKRf_&D15EDJtn@Iq%B{I7dX zx#@XipE375vV5me3yap0X)G-%FR`>df4@ihSWeI1XUq59w%pU{)bgseq&)jtMx(QQ zDJdVHTTVwU7#KZZqKVEm-^b?~mgf)SaCvND@lGJvU9O_8HXcVC{lmtyd^BRA&)-o} zjy;dtbIa)ap7PTO<8Ue6=--y|(?{FvYIOywpz(nsArXFTe&M0%BC8vuso-JpKDfBXCXbSR$gKmt-uxW zH07;)Xfnnan5b~L8WomWc~-5gJQbFuPA5H!-!OVrIIpBWmer>E>iP7`J+ojOu2olg zURi-aRH@U&Y~?^s9}t_IUOknC!3s@S0tm}jsn_Qd%Ja%&!QZ@!KGkh4w<;~i8F?DZ zOK%}vHA-oz6w6It$*QBCS2(jAXImYo`&Q4Xb7xt3z2fPj_{?&YXVtOi6$|!73cP?s z=b9RuoIc^a!g=L5+iK#N)NNQycma|%zj9UTI9g|$Q+9eTVHnApE8;VD)$?j39tSj? zp6gAwQ9XsT={R3!n-k6{o6>Der{{asZN!&wRvl;SY;(Fz>Za%HrRNmJ;W~wJxISs8 z@ZN2}594s{ z;oIR5+YO77HLv~ROBcD4ta%!eb&@Q}nx|NXWQ~&mWrzX`pc|*>u*Gj-44Ey&$e1Cd zky@24ZImr6eY%_8NOOb)*=ttqv(dH>4AWQJF@#~_2o+7pCDd9^e;{s<1d1Y3=&Ec} zE;STFT)Z1r4}+qUAMGZjDH5G@$#V5O9)+N6`}Vb|&_6li4y)1T4LYD9BeRq(*kgF8P*xDwQo#sjwyDh`7`Xg~HZ~ zqlhxPcxF&gFqTRof|7blN(H-Ac8r{ioUk4g3S**}8f8nwd@vMhM0^> z$H>XZsYk>ak`j{AWlKCN^FhIx5|R?q$OB|X6h-V3fqq6mqWF<0ibJA^vnAg*@&K7Z zLHP{oDA-C_+%qp^Q8;DB24J1!qm_i^_A>q%T8N#;fUQSR<11tP#;t za14sKW90O#898AXQ%_gy0&l_^5)Fx|gjpWw6Jl4WL{mb-4}mc3!hW=$aD+u{)Vh0E zTT)-Xe>ki!-KY_Hzu0x}VU4K1XheOrCiSKI$h4N0VKT-lNtcWb*?YrK6n_>A z1}4YcpAbk~@*x%xw$lXLL1~)S*mzN-FVO)a@`Js6nkXsiAwn`#Uv{buA_BNwa{J3> z_MuDNv(0XQU-+=2BWFUfj7OnH78G`&s!j_V075);a`qg+F2A6@%s`{^iG<2o#VdVV~%{*D=`HimSDh|HoF_Il|w(b*~5=^?5% zR4DA?nL%CkA?ibc=FlvnFRBxOXS&0Bradpu)JME*4d9sqp-?SHT@+EMXMhep)1e@= zNW}G3Us{f;ue)tcarQFMauk;JCB$_DpM99dJNQjHlR~^lJ$vcK`su3eSN_>90vR+@8)S+sF<#pxtwWx}xApoxjI~qn84Id(a zk^t^TddJ#1i*+#+>$fY$Ya7aHZ;XFq)VT!I@N}~Hw;DbXR%;l z#+-wC0J2?Dy1&cEZ!D+bCj6Fn7r*ill{x^f4PiRf#t;F-G-)}d3=1Y^sD~^QI|Z3v zvaF=88ZY0ZhzO|h3j%SgMkuHD$0Li*^8t{7#Lc0#Mh}03#P_c@pbCMsxURCzPuV6 zLZLLUpp!A0j26P|oxCWNfC7mPqIlxwRPlo$hJ?`t4|<5SvMh)p23$0;L=u>wLPm^} z3o8dN9wUNyggU!`(aB2}3B*&R>Fo_dn);c0_Ix*WxN#z>FH+tcr;+-y=@5cygF8$g z0iP=m=|yMh1t=2~=BdNAQf&+et%JEx&s zJBjoXo<1b((l+e6o%fl0>|p8OM|c8_ZZbUu<%C@(5Y)l@9lb;fv1=4}JCGV1TI-}& z>${W@JIaU^p`h1#uE#zcDzD?|*yv$Bv>u%4cQlD zH!P(Ln|U@9`*3JCUz`=Or01o5#WFR!a!A`Ubbd8H2sr@|ua=S}Pdh1PV6QU*^A^{* zI@fuTc21_C!~A%lEV_Zx<)8-6563pSf1T!X?z`5FHS_y1LvMgVm}MBDEZRtf@>%|z z)zo6!1i6mmx^J8fj(vn)ejlCEOJAm#Z?MjAT-(`gYZ#>@Cqj9hL=j3MB8UjJz^6$q zg<24WPz!c6U~LZxbJ!>da~O&*BZ#2K-3OcI+tLPH3@>d>$EyU!(JCa2&^R++iqp zj{9(M81-n_8`>A!F(ziO=;ZuxNXeosscE&|&5p7$?NiI@=yE%c(V9uEoe~3GylvVs zjJ62dDJ*Rw>a0yfC1OF7wy)F4!+Cai+C5+K&N*jz?CpY3HJ{Tn{3-vSA%AKKXCJy` zBGvj*iBuxxoF=ui&5>~*vK1=x)C=T zVXvca2f@(@-_-tYKOS;4$_790#BHOU^w?M}J*5D9vFUdZTXtP%M{6kydk-NjV1a}foInAJ)+U5p!VR)WLXj>65dlTT9<~+BA81ZS z=T8?w=d4kW)qC=WO=^b@IMmtli=OvUgO1tK*jI~XWGD;6c7XCm&3sa~SKOJ#dKX%w zex;xGUWt0UibwtSlh6v5^mhAPPZR#i8QN<-%5(k2QF2~F2oWg_ zkYXB1FO4~JI%T{xAU@~e>&Y8)1|gI}D`?X8)sr`DW^W%3IaX{Rj*3+~tnJ$J+Y!EK z-+9OGwL8aczsVX1_nWMT4&6PsU4A%78QUFc>Ti%~DP`pPEXVBx>%5#XpM(A|b53+i za<6?7b=gRI=W+LDl22Z&3CTU zgL?^Q+TUfU9Z#71ZmnkRckb3kfSVdtfw#|geA;u|y(rJZ(ff4V&u(Uvlhv-Z^MvzE zqC-2)#a6@C^E@LT2#&J9Q1-Yqj?0+_a@_2(+N~IqX4>$YeFmQ6@W*}l8N@fVwfS%+ z2|qtD%(QEtj_};Gao#j~FO8$qG39ksxi)5(sbM&KD2v498`7K~1|tb~WBX!m^4L!L zJPE7r!)MyF2`1?f^Ee{RH@3lN_pUOAPZ{k!YpoS`pdI7;bew7?duBzn#_Yh0Bk9=)z8g;$RZ_CrSe<@3 zZa8rkS)mof$wX}%mX+lbMeP_<0jSTEy7IbGL|IJ!g@|k2^87&~|DZwZbDb=h;%s|j z73$i-Po2whlv?Xl9n^jr^QU7ztDhRmS#V~JzJl{tIExf#2U99sD~a1?MX6y;;S6KP zAb}U#L7}i(D|O8|opc6ot9C2KR6w;~0H^(WbU0I6)EU$czI&#h$JrJ&`0X-WRwr@7 zG^ld%4LyB6Q@n%;&=)^k%*(t0nEHaj&>AYA&rYu!zM&xM1YQhqte2_cNV>{cddk=+ z<7oWGa6HLSG<|+LWVMlJZ#S`?FNzq9$&N8=Fqw3~&SL$d7!D1A;YUw_;b&=-l$Emy zo+bo8b*c;{E1(=*g2-mje<{p0v6gg23uXY9Ksp zXUDF}q4E*LY}HJFdv{L(+46GGY@-o3eqaY~v z?zFLyhXFbt`TiqEi9XVO|IUrz!*TSQLpVBzUvdg9u=WumHng}55WztPh#-+Q$gZ+> zT{pVA3z5?b!qY>0Jvfu3#c@8o%g`R$FMt3fxM+3w2MAPQ3M9Cw!W2jxq1ENI{B+P9 z=`Q<+3HrzjYjr(RbQmQ}efhAflRhCGg(Hl4u%7{)docA6xy22ohLuiY`s`~Ci?(6k> zVIzQ`QUW3E#UZChAofkRb52^9 zSgB)L&Ppk*wAOw(<_E$W0UG;DZ><5+=LVT3dfIC#bc7~4yX2q-jq9C!MmAohslC$; zTStTo&`zUXF9&p9vNmLHG|7QUc`DWp(DizU1+t^h&~q=@1L zO&Idywt{E@;nF%m49(PFR6H^CPDF&+J9!$6cUl<%i_R`C;35c`Rz-tRTcqgn zuvntbj@{|{9-*vDU5lRcng<)vxKAua-=GsjoL$XDa&n zy3snrG&m@(kx!bw2dyd2IVk8Jp=`+(_G;BJ^t>cP(`R6dAIXv#*un_X2y+ZAJ4-M6 z1!5@Tr&TXj8}+X?>RHuBeN44cFSB!Z&=S&3?)4$`!$e4nD6fRbRq+tHrKsPk*z!+(|1@r`c{k2zT(^7=&kr!xGeZX0{E_e6QFw z|Gm3M@$5SKl&d_vi)RMq^z)<7%#TK&-!S%pT|6@>pV$RcU$m!O1*c$_jP{UX*XxUR z6fEm^Z|ty(M>PR^?lX3~tGoS%XX-y~;tsobs4v>-If`BLg>_s!GxKy#?CS3FPPHkA zre?Zqd82HNMtd+{&4&rQW^45DrI9oS;hE|1+k7PMML5A4=b=n5pAS)obFjD{*))y4vi8&cLhT_&PX1~BO8KngAGx7x^of(JTb z46#H8SwPX!JS|!i$|8v-hRBj3p2C%jOekJR2ugISrO*({(6^<~5WLWt1++thXcL&D zc5N&mTiSL_2o%`R(!R~sb|G?dUiUtPY}m!)L;H3OyJkxhGS8`e%;$hZH36QP?%C&O zGVBUswz7Aa$ZTcjEVbb4OMS85#?acZ?N8 z218_JqYNP{bgZyJXDx-SpaD;Z5rigGw4E4MD^_czmeNYCXDRLKQP#b)hIu(_rS)1# zrKD1xT1sbQO>2GDZJxEZR%vCmR$6PVlo%#4+>&A(c0?p)&3Y<^lu}A5rIb=qBy@6m zb>`3?aMAX(<>^#Fp1-l3x#yeP_wsbs?Oo-t%5j&Pc8tSQv){g9nzotBVzYB$9Cp=) zU8P}HRczL{CdD!;#AprYnbj`>^wwr%@PU)YZaeN?I6oX*mT6k1X_}U4^wgV~rfFX9 zz>^8Bpz{ll&IBTfhtf4j`EFw!Zn^~N?W|HJ7(cTElM%rjJ zx}$A08gV0U)Q!FwFmu48*saRQX4Z0?awJD(qf0ueIK5YTJ1(2bN5_ zyWN4k!1I{^ZlArvNp0)9a~D^ElxtLYKxo!*Sa|Pd&wKcjbl|j?x8`!-G>5azvOVcCH3jFbG19n=G}v*v8#8vggZuaHG+HB?yNZW>cEJv1*_3aj$xajg ze#?<^hP|~IjlI3;8CIp>963F@YRBo}PY)mJ0PkUytDu;03{~*}A0B*&M;xXBKb*oL z$BG|t$jNE#gFucI+ObQ_x;n^qJN{tDoUUIEi3PP>_nWMN)Y#D8Z?dk@Tzx+F z6HT-f%E3=(Q78vG4I{#M;S@%i{=lb+5b8i{Wa$HenK%6pd80NCnzRf;Ct0EoS_f0; z+R9#*(L@L*j1H8nS_82#O^0iBN1Q1cef*1`0<~R7pWOnMx#74?212 z$r`PMPC^wzJXpwjn?=`CY6E-4dW(?WngIKHX+kMN=3wX-Yq#BaqNqL5u4a-FzY>b+tZm1QkN^)jPdQ1x9p2MhMaKohQW$icI;7zc5}g0oChSQVAg6jl3wr?WKftF&GFL zp#;68umrkh&ZJopAs2vFPAg>hgi^=_KP^;*7)>wxw1&L##zBj)X0}aEV;Bc5!kT&< zv9Y@ApUA(avbEkYb}x<$$mDuRguXk6}g;K+lK;c-+9qcmJ~9XM+3 zv9KP|;Emf;AC8Z5Jm&Uo*fwT8aI7CVQq2R$IRyBP+jvzFW>!}hIinsUJ>UL5oawcb z#!Fu?uhZ_~kB1HP*td<+OQnnLqLV{elTu1~GkXVF)ZXQob9CkoG40`eLsv}Goksh8 zjEin_ABK_@vOgDM(5iUd(zr5x>-dyNiN-W ztrK=#_YS)V3A0Pr7gmR}*tXi}W|Hp1(Vc1o>g{O*=cKI^7x0`;TkKo9=A z5cHo7Z)|Tp+K8`@wL*uz2FLwY(*e$hhVzs&s=Z8|qZO%~LxZm0a>yuLobNWy#zvc* zzB=Xur*xTF01TF@N^DM>h*^@t z5JJchLJT1U004jhfWQoC1tbGxNCHd~mIVSQU+OI+H?z@7L5a_T3zJr?0D9LvxuzdV zws9f398tSfMz& zGykvUb_10ga(-m_%cE?geC}uq2NU#;D^Edi&FB^ayJE(SDA)N?^TGS` zn3uMPO&pPX(g?wj=23z&YN%J>aRMtPE== zNk&n~Q-YBq9pQS#lCwGv0yVZD#^k!TS;LwCmGpj@6U74It}$9@{>mi%T!j?kR6!6o z==(<l1}GF z&OCJ$GeEN{WTGOD#nqZShD&w{Jz7ge`;o>GEMfPu)xMLaai`TZm#QVl=Tmn8)Dy;T zgUBW>)hro6j_N`&RB+Lh7F<(9({HAjFkG(La#9qn2Ir`ojCPOqBAp^7Evz2;hX2^- zjp|BS?KF5=(T8Ut&*PyFueo%v<_LYL)qy_1LzsP#=h+9IqBE7LeW*cCK7hF!F>bP) zZ~=z03#3nb8|ct!f{J~rm`5^;_fMl{T{_JsslYgx0))XNXS^cM)X0IkMglLs794A) z&1`o5tS?LY)3~TIU4*wfR$6NQ9D>Fx&UH|X_eAM<}Tc_V8nv=k>ifOR}s*XmW6c+&>mme#SM9^XkETUh4oS+ z01w8YG}jeAs%LX{%n++RRnE53OHw99d?KT8u$9v8sViwf-yRO?4u#Gd^~Q;E)(k%- z%zHQ%9Fgu)TmT?yrY?z*S+l`j!ja9b_7@Y2bXdX6x@bSb`D*tiWt064PPGY1eZF>r zL4S4Vrm%L0Jx9h9-F>a6C2ywrVyH~qa!&PBh4If{$H~+)aK_iQN4eWwZ3rZHeqKwe z9JDOH{Pkxpe}#JrLu}aDfkEXOy4G;4-8ZgW|St_+Po-y7L(0f7P{YC)==f zM2btc>add+g^z#e+VO;v$wGGzPTK-A7Pq?wKz&Wgc|#P>5>Jd{MLSf{+hblheYoTr z^(_?I*K$Y9?1_l0R_)`Io1U1M!H&c1y?_{J7io zwwt5iSm=GB+(qSeCuS{+4T3V`cgP!~tRoKfed9VGJGdY@>q#o!-KuX_EVlyyKyNjT zED)#rCMhrkFMtt_e8my|84Pl*`P4g_N+eZjM@PfPR2JW)97}!znyR#3Mr>#r)+LuR zJ=oYdS}}xdS0?twrgg&@mmxj-vTd=6eB&{c2&$+68v^0q6elT#{)+CD1qm70CT6Im z2n;LH>j7HnFmu?EDjOoEU&+M|{DCA0%I=a2g0pd`0Sxr_n{b)u2Hh|K$eMblNtR1{ zMnWsL8zeS$hpc!rATQ(5+pXnk@ye_bu)Z0@rUiy{7f^xB2SX8?seu6~3C(&To$B}y z!@ju{Es?ptM)FG;Yo3xBIz_oaW z$2KC0IF9~#q;|wol_)$;W9?4x154=fbJY^*&L>a2RCYYm7=+>%`%5JEB;=?Pgz!M^k{9ItV8{-1`4!x%lYBLqv)n2G zq#(^A1P%cPF?=)(7Jbn^Ty4HBuE!v6%c^wGDqXp?m1$JTJamegQ3kRCL9i4cktQO1 z$$D+lVSG`B5v6B8W?g3XT8*7^G>h0)^U)j>x=Qo>Z$FPQQ|+~^PVHFns{Vxf$a52# z?`)^N(o*B+(%=?#30IdXQ^?CVgJ6ex5~F2UXZua{>4mY-i#F(Jj8+~wOVZ_=oZzT> zFRgx?c;MMc*OmrPhdGH_nSyl~e53|cT&@#1v7C(6Kog=e+GWD+efo(3EE>8{6Ro(; z>I=hvc*n}!+z8o5f%(K^j)sy3>LwoxT|y8&HwZ%>HUWL8v6ikgumNZdqJI=^MT zBS=h9?A0m%i!V837LJlQnH0CVH_r!PJPg|fVX|<<8{m&2U!ZIt`CC$(WbVU3i@<7(CFC zptbYl#fq*PSJ+KMtOzKm8!%6D0^q0b?##G5GpD$E?;gjo8bM}E9eATX*#Tm!R`(c0 zR>J|mv;};nTa-!7*`!h^kd)`TzW7w3swk?SZlcFT)(YOw#4Tsyl3+Um27-_FZ`uA0(V7+W=s~`oLoW8B=qLyYzlt z_~(Kb7Tn7jD?a+oTZD;4G*pPuL*wn#KLp_t6z(pLA!Esc{Fl3+bB(T^)>0F+`IJRu z;#SpzVoksaHVbmZC+rO`o(!N0`>#OoLqT_Iqx22)pDZQ7HYjVWkO01|#Hove%Pgx`gaINq)*MDWk*1kvk85`5tGti=$+^m54gx{@7_A-c(4ICdWfUX>pZ_tV{S1On!S_rcMAGvqo z%`})k!}Ov)8H?Xo5y#&8rIL307GeJt6h?ULQtE+#RJh#r)-Aw|hh0%#>?ndG8ChvC z=l)zdnvAJzN5J<713F^mb72!uP%)Lp*QL7X;wvn0DSJBMb0F9Q>HD~B?XNUIzHHHz z8Iq2c-8K7v#k|AMZS{!J!7$R7D`Eg!NwQh)a(Ag-Zd%LRnTAvx3T&gDD-EKUQf)Ju zSpCpWQoS_=MW9uF&TiEcyG}w@cX`OU>T{b$`2@i#rGsGph&hYJ&Y-Z58ebYI&Md6s z^~R#R78?OL%naX;+^^6AE{sLWg@evahoY8pnl5jZf;YUs zb(OQRkdwC^i3N|MXcx0`7?is3|NGpeLkx<80v*;iTfPmR15bHYPs#y%EQS7q@iOq5cE4CIZxU3XAuvtw>&Q~L_4GNJRql3pr7<2gy|rknU6G#a zWQ{fjDf?>;J%T4Qw1qgozu-78QzuB$4^C;w@(3@U&_STjUTy7pdNh@D#gfqbvocWy zzflOS(dt`)iL+yqxX zPv;@$2r*UC4z%zHHcDeihDtWDkB8_0`ZfWa1md9`q7VGz&B|{nV3aU*+q?qSjp2ed zlDOmWiVFgWX>O#8#U~<1#)Q{Jr|$3L<%ik2EXfY0uI9+b5Y%FX|L4)MD4=XsjJ8Kd zTpeSjHfMMfem)t;4tvQ4^}2t0Z>5riC1d6G9m000{?^*kJ)T!dHnqhF@@7wYN{dwM*D}+PZ9l!uk+MDrDQxAH}8yg4}i|~wYzF-F#BkBgdHmdqq&;lE>@|wQt z^|UZ2Zw?lKvkVeF!${7Nef`0Xp#nd6Djvzp-%@a2=KHJi-YbsD(IEUyl9!Wt7fM(s z2(Ubfu2%=mDnUH-H-`%Z8&&&Xa0_>=f*`>7VZ?CLF%o!sbW4Y*sYSOK1VS?o&SFU2 z^>%j2LX&9VLk7gDWzJ2a^s=B#15;{T+$Euv-lMekW_^{6r4~T}FO22@IGk-xhko>{ zm(8`!0whD|gBiJjP$Ruv!IilP_!#^rLSkm~+=8XO1_RtzZk2MBOW0QZ$z2|vCDJ|O z1`K`(p<70slLEEdd$2FS8d-rn?m7mZe71C>?h64e^Y?F|_>OT%YgZ)?39TRAmR?VQ zKlo6+_w+d@{%0mfsoir$Nn@fcc0&N0McOKj*WJz#37!VFbeqL z-Yh`*ssI?L_n=!P`EP)PbaZgFak%CVWX{BDAN+Nqci`bWvCJI0L7Gyz8$r@{s9?tE zB|^?6^IWKCH@cL<;B}59r|k2Nm{hu^23A9Y{kYqfb}eFb`d{I~pF&xG^tUeal%Vu# zr5=Ijh7n#bruV>HKS`lI-~qJQkXlO~=tS!%$gEwONk0vueSMzU=5QrYe8gQ##|R*f zp8RRz;IHC-)9-&3?jv>gs&k)dx9N)j4{2U0NLAU**rg%adg?PH^pgw+sx>r=sXgxc z;F5H#WU^B=9TP!Z{$mhja1(J#2elh|~lg(&|kxVfthH2(&nxJ}3 z1IvU)zSZuF*V%oqZ(q3xzAtU(NUjvLE8tXT3N%87ax0)#O@znKn_YwKgqIBF6KR(}7t1;E4TG@9SCaJ#fWziAk zqIhZ%59V^xJ%IDQWFU5B(q;#O5OuUv48OJReOHM#F$#F1Zs^$AX4&JgF}M?(Ni7;g z2US?0+6uXHGVh%6&ob-bbT@xyw+d>j0R>e(Zqp2MflO!tGP@E7HvJ%$uGsBJC^#Gw#010GHE;S!wdw$nvvFkFScb8d?cD6#>@q*Oiu%Thi-2G< zVp+iQ^9FOp-!MMj7j){CSx<9e%}@j+NfFU=r!iX+>B%Y40r#oiFTn`A$5371Ocggq zO`2CUDR=9B569vP&nt(?Rcwk0j!nP}mOR8|r$7?{k3R#KiHI}IS;ZNcZg+}QeoBn$ zU@vby(V`frpGvsMur$40V%sd?L)O>^1p;96@f6c3%J^cMx>=g-Q>r;IersmJK8~AS zw{|h-)41-gy$NyTCIP4NK)0BS;Wm*zw$E@8KT7v{=ceS`brqe8`7zJepsw5K6+5tE zs9fcgysMaFHjqx^lGTOcY*lm!rNGMB*EgP?Bl5C>fZGmZ)#wsy#E`+HGNR(Tc2ohjhM9nY!26tx;EfcZe439dS$L15i64UO zkuz+{vvvYNbaj4iqgSe5S4b!f^w>BIUH@w*7F8Y#RKM%rd_K*N2vG15pe6#Qle5FK zMfTaBZ8_55Xd@4-9QqI^g@fKC&JsgT2T_<5mr)*16`I3vCE$%r=y&QRRTXQ6bpgXU zlj3&KM#Qcq;+C>PR8ux$juC(2ClUNu@UN>DvE@uwI++4Sn#Jm+v*Y5x)dLnmOJh$* zdc|+{0jp#6wNMybC$+lf1pYicg!Mg#A&U6W48eG*CVO{%hd0)RfDoM+u@~Y4xkvL3 zYvTQMY^d>XK6 z=NueFq=6E4YKCLvDtstvG|1^coSoW}_!hoCdwQ6Olirxe2dbvs-oxqVPNcQw? z%hsxW8M4`enn*O#RojO8)gT$tP59sgi8gYA>iN}urHnb*$D? z&ub(pfEjKOJIJC)b7BLd*J;Rg*vrfQ^FZYFpSW_}71ZV?VPRrgaB3YI3AQUV7vGUP zPDEVhfl>oq;!<7Lc|{1cImgbd=>X?5!Ks2tbsoYz@(bW^Y4Lc*Ad4G}Aig%G%~U!2 zuCM8<`tgK#XQovfRYKu99|`oQuknUeBtBedifs?KHG6+!=bmI#nQ`{QH*e9;3tCzv zwzn0MXo`KYs4e?{>jiRmXRP3-WUN4Ob*0LuK8`q)=%K#LWEmAr+3~oxY?4eUy?K7Z z&-~?eMdJr(9nl2!Y4PY*P2o!bmC<#?5sIQ_u@|gcSHw+6^2%q-8Bre)qJF`e`Xt3b z<8!>TQ5=YTW`k6FL7L;wQg+*Z;k$P0teUqhfG-fYicA0Xc~WH0AhjBX)@@hx8{}d8 zDL;;R{6}o^bOq_?7jwot_O=ZCwTqA4b_yebs|^R+X_^ zbXO{=wl9nhE2m*lu43o|`%_>0;1sv>RZr1+N2iNBxrvWp*^X4|JCkI`Cxf_qyUd4_}>!9NK(@BreDz#0BVNO_>??vy3J| zkVeFPvPY>v5;sel;{hm#TEbyg@I7DL8~Bl^%996w{Xim)cb0oxS(Zc7%EnPn@hKAI3|y#f z6d8k#8{5_HUUWQi@;T>IV!<~FUwr+wkwuf>%&iXZ=0=GnwVzO7m^ipzsImzc6o;a6 z5vju4BTiERn3N!aVIG9P+(a1I6b`5GhEd4}6!3;?(N>2Y%{w&Xw(5OGvfeY$2Cej= zLzECcfBey&#=yw*(?zl|A^=HUNK>S5C2$iMWlPGa^Hom!!<~@wcJrRz`LZC>eKrif zqd94jH0|0#)|xZr3y(S;GPmb-VmU$NjqE&C?BFTn^?hkfKzX`HAad!y^4w$*c1n*2 zdOwuqD$lKh1MJ`(gRaI}IP!oUv-`N=QB2_f|4)@5#TMVM*WSqLOlxO-{UyWr`a0VQ zz7+bm{bi-WM$P^fLh}OfTAPMSQyjWKO}lxLY=nB_Z-o6}SRFlQueIHsGU5Om`f8WB z;tp5J(ZK&QUSnt0ge8+$hK5oQ!UiYOOPWdrv&10dIMC+a++w%zz2v_Z8}`uyr(@^O#5gdKM~=b zlnjXagCF^H{x*#Fkmnkmzm%R#?dc9sh5*8-KO`_vaXc#iuH>oVvVy`oZZ{dLx&iQZ zil?X$9|R-AJOPtB#H#7%44a4>?(W5)Y*wBl*^(v-h!tC4AERB zRP-L*uJ)u(-F`?bH#4MtnMpDc@riZB)JFIp5M_64>Yx+7!#0k?Hr`7Q5jSsh@$vzZ z(Ju_3NvFybI|NV=>NnQ4d}CY5@ByOQB%qyc9I17Nu-YocXaPh{g27(v(SJ(Z;l9yB zjZ&Qp*<#YZL=YO-*PM`L+-DSV)Om)wT}Sus;%y%{Ew3sDtaXEZ;;cNcvg4%Fq@C!z zmuU^i%#BTofSDa84*N(5fCQLD7`h)-)>9S))((It12H6^vAT`ev@Q1&V?XTQ^KAMT z;#_aOUzTiX$^>NwsQqhHYU`%_I^RVg@}nA%Z>AoCd0<9gaoi}~cuHRh_)n0P4wp`J zsa^%*=_dHf@&7|mr{)~R3N5Akue0;Z>9&ZEpb|Stt#to@vl=2G4s1L1A!SYrDV*Ox zO%7sW{lZ6r+xDq#(vP{9_JnZyO;&wHCt^qzotMXSSKkpPH0`cU&t)O*L{n0SyeS<# z*lPDOQD-i3E8or5`{aX$+DbP5w@RbR?D_3}Hvu`XuP8oU_YjxdJq)d}I76NZtWKM( zEN46+9^||IR|&j4t|sqATbGWh9$oMg>w=rifxcjd4#6Y-^YOCDR*YPl_oyi0D>RpP zq-!J5Bp}zJ#+w!)tVPZJ1|bbTtFF9iWonex=nQMYTD&dxscomlCA8Z9y$r}D zDZzPY-^?&ybo$5hMos~G)rW9l%XYm{NsKHL<>B&9Nn!**`HE*itt=t;?SxQ5OoUj< zIWg$dR{V1tI9_qYKs^Xe-y$qL=6zAT4MT1x}?O7h&K z3nupWs8ygmK%u_$(NwI%W{KpKOc16R8Pg8!yM_!kz^GjWpfbHU!vDAH%3*ji*lM*hIeo@2u$*tcJ)>GjqzBXI+{w#a~|$~m%mm@ zI4G|81wp^+mO4lfY;OgIaC=NaMJfiB?SCsw_5{Od&Qj;@jxv7vzEbT$2JysDsH@ zB|5sFA9>*C_JBZ0yz@7+3lsnt2d1%I_?u9*nt3|DuP(&b+Oce9P*$N>FAwO zeu0K5E<%P59uxv1lq>-nD!b?X_tT#uRRh#{TtL<5&)w~MIP>;jR<>^!i)|quZAOy? z{UFc|<~Kvaj=E&`LrXVqjK)yd4qqNja*H2Gw<_M)dAwZKZ+!(YFPe-q#!5vd#c3KC z4-h~_jTz4};YDA`p&3wIY23_w@R7(TUvxKaC$4;AK)UekKOy*c_#E|A@s@hCFiYu8 zK-~B!;!g~gl=b4X<`!7U>{+kOBnwA$|DfxQ4CM>Bz_?_+N8&`r|B{cZ9#n8knV0?e zzRYqy8?pG|6eQcX1+OeAwH}NNojKCG0UMPEU_i>Xx!HRaged>cJCF7$QNKmUMx|Y) z5yh3FY-m8s_2}NwRxzS~qe;%v>xuL~=wDuXO=RxP&6} z#{eNgrRbO{VG*pt^w>|^LvF9=mAT>u6&zfa%v3o{)$JVa9*5pToP`$`-a87#9lt*Q z$}H;*MakGC@^x65e17Oy8PVvLA9E=6GVU(YhTwD0kv`~=lw`TPw2MM6o)D&P;dB{E zm-9<-RMGN3+1$aBQ*6Cmu^VS*jU>Ur2;o=kpeR+?g^5TBB%b@OjIXl3NI|DKWhbMr zPzZo?VR94%$|;OV`1?e%PT=M!s#tNnWpfI+=)-1*IMoanUk)1Aik@#cs%)3ge*kx&?ngeFpflAzD*cI0l`icSV6|zAIQ%ZEj!#{380^U3b zBw*ilmp+5_MSI`k({)f5^76e97)&Aw6GsnVhoU{P7~O9;RXbGyLW_5-cSro%3$#PU`t2JtdCE+o#s3QIpT~FRQ{8s?*rSstsndJ6bh+P;)Q|XA z4@yX&3M0KQS<`#9V*N>QM*C)qS)OFGGDfABbOU&AQ><2Z9u;?bx3R{qYuoG>kyE;>5$!0J<+<* zDX}dEXe3KC4;WtYAZv$|kp%7D)d?aB!eUKya(HlCS&%->PX}~Di;2g;hsUTH8uTZI zEJ3sHA?|Tgfri1>`?*N3KU{(R?SR=H0)bbVrjaq8@DWfJvZD9I`}nK%DZF4A!WCaf zAC3a)l#OlL*6{}@?TzY)VB-03(ZL|a>m8`E1g}5dRVe$rwN~Gd?r&QO$7e$mOdFJZ zWcU~W#%VV@h5)qLLqW+!msVlABcvE8zR3a-rV12`3*s()=OP-&1E3c%m~{gHf_}9h*_a_LzL@>WrjqkS66{^on^C%x8Zz%>aN@K|d zL8`w`8VI-49Oq`v0hOs6XF?yHv^GvulEy7!32`sobr9FA5nu$UE%^0|DFMb7Ry+&E zbp2a_0H#ii(~4oKFdu<%OByEvATQy2IGylIOURZW?cWYkw(mS@PIf@GBvDZj+dfbV z{a0m-3!GV4^_f1yg`s-a5znPKU*(II{ufjNHnHAFw*wyjB(59IW0~SxbD`R^!!bP@ z3=zsZlUW~*r+hdkqjA==ZQ%OloU_wutjCcuHb8xIG>}5^Gg&yn-k*tHxj2efE#m1o z>|(9l?;g8f|8r&CRrCKvU84rzL$E(;fO?i$S>TyL&UD*03#(TgH2{y-l9^{3$-~9Z zGE1wl`A5iR6_Ka`!I_wMfdt0DZr<+2XGcV)aE(PApt1JN>Qc=G7I~)ox*5Q9xqrh% zzXH$hh0Ks%NE{W{3Z1s6=F4q0%yl)3VRrMvfnSBdA=t8oyf6vlK&Vf!V zMHAI+#&1gSaBV3ggZ@o)O?Fwn+*LW1%$WDV2(KT$xS=Bh^un@eariwl0K6KFz|wVn zk%%n}czjFtX^qTvEA)VoKlsRi=HLxb(Y&!Nv0I)SspCkZbLjOsq3hJ3svJ%u*WFw>U3`FAh&}j59h3;IwEROM3^_ z0>;+PU6E5w6UAYBHWq|JWY~zU6j1L&cGbfe>_E5VivdN1i_S$-f~%PK6=f*W4rlQl zo@odtt8hh3!>yCLIX|+`hBz3|@5MZcR{+5=iUpTuwYZZ-w%Jgir$vn-#9I+*=gWe~ z0^8x+KXKNfRBNL7Nw~dR?Yn+^d!##*YfTBmlER#dx-OuBV3fLnZLNrOoDbzHpbroG zA|-vHl)oa-{bKpZg_E7!sOaDwN)l9tHz@n?PmG5;f+$6|!VdB@W{wqLSt*zm1X>xR z3X|_2N^Q%5`L3HDRZAlGqeaypyjz&h4;fKDVHOa7{UzGuYVJcp0x7>mJv+SJAFYeF z-?RPDcmSn2Z+JV2B^xXMoCylIlX{BpKn!!mvHw3cCs_eW4R4n`#e)ox)cXf?)f-T} z#G~Jf^9lLoa$;#Rt7t$V5daM`GFVf2Azy@03VJ2OSH2A)`hIrs=tn3Vaj=&RUq%T4 zzFpKwxBP!=wVym$yBN=4pmo!ARO~+d9lGnt1$Hodz2EPawe1qx=&^kOgO|BZW#u$l zfuta#5wMTC(+rGP9idx&&*;631TdW3=z~Q}5z*m+y!J`}^Rxe@@TL?(HXap#*=Tzsj zc1ebT3ZUWty$V`T!gYl@Jks&i?Vba>i~$~EVk32c@F;*rjrq2;aF80x%`$f-bV0dq@hQy~ zo$Wm6j-9hRQ3@Yj(3oaY+&|IQyBFIof_xC%Sr4|{mW4#6b@YA8q_*&G4&OUp03O3% zM>7)Let`IsM=kx+X8d%?KH9ePRHiH=yX~H}Q8((Sdjc|q{j~G>YCDL?M^E^um%|y+ zPL$lBzLTAzG3qQ~avWjS^NSfkKq2)ffd_{LrIcQx-y!j%`knM%wI4iMwp)vbyC!?5 zOUOJ4YNgJff@fW!vK1bbru1K_wC60+H~@C=n&-^u?GI*d*f#1ArjDnz^n3^^toWXw6O!T)sXKoPj`Mi&`A*U=sa0vWr2 z*R>?M@b@*`hSlPHEv|IloS@odn&{pf^-k&2WT40W!SLd7>MEHvfPlDuU$o>6oGeOQ zo%rHoZYeF=-tbiFtfjt-Dd{vfbYgIdSiIL8-JRWj7&nblwxc* zZzN&!(|`xP7$zfbD@7H3yx^j?M%Oc2$modtR<*i=Hr8H zMH;uhcvjLF{;garK~>?oAh|3wbmd*Wpo~7;Pc z)myF=C3XDx=leW1F}KW|jn$FsKPX@`s@C^Xj2olrEmzIQhJVfRu+YuOTm$j{sW# z?~dnzLN~u^8&;V;x&#%wf|a(RFy=;{Xe-;3i6b#>l0`pdW)bUe=PS#j7Rvm#lktal zKqvR*)N05pY8F8cPdmlVNvD#B8#lB5ZD6!kfEdFeA)uHg zhvOzg4w*;oyxCVmq|pDsl7U(fO4u6HQtsmnR!FQrz@krbI!l-)v#e?rG8$xA&;$f~ z?^Pm8_67p83+VwIhwRHeEw>F2U3ne6KaV@GbgD)}BA<`OR-n0{64qZmq0$&tGJ2HC zfVl~S{Yyp$x2gektTup>z6~= z`pnb{re*DIi&3jpwk|4VXR1_N(Fyl9d3hH8BmU!cCRy$B z*YW7Xn(=!c360wvG7?D=mc-uZ#vw$cy~If3XljlnmUuniPQ~*2YftXMng?1m(=FiR20}>{twv_8bVxn zQjk`oQYVrj(_AAi!dVOBO(o{cN&$NNX6Hl~WIE9D19Kk6n&m@np2^puyoX8~nwfVT zbW1p@F#+gS+R!V8UirIvW&rf4J_)3u;3OvF%|_f=T$MG055r)v-i=?h9BVPqxhF4B zlmPP7{i+18eppNu_@nxIZ#VAs1j)`tQ*`c23n?_v97Y};VtxiTI@1Es1}=l^7(Vs2F_Nfrfb&eFlyE5ovb6myWPkkt#p`$ zd;h^w2q~ATGSLbE7GwmtZ&+{`9J%O?5jj@_>i_irz^6Z}4~*hM0S*Fp7EmWbf>=KZ zy$qt@GEOe~l^y9)-ZUtuhe_ZpWx#Y(I|#9C6AKC-!_G&3vV%7SaY9)Ks9y7a0Q5bz zKw<(piUgEU(V9(|B{l?Ck(=t%q2w}-&2-N0PbcvEm6jL%SI~xxo{mQCSHMV%e{l_0 zrojPyv#5xg{8uJDs449{iT5jngnJ;v8Oqi5SEQE?XRL037vvNk&;lLc-W;^$ZJRF^gt7S^I+Emw&x$PvwGeLgDRmyH~4^Qoj=Wi7Z}`JXMUhd*MaIQuvpPA&WqRWk6 zu11#=1wwnkni)`qm>`Nr_o~(Zr%7;#@GJtL;h(Ux6bZ=5EEtra~S_n z0ir=H$AzI1blE!lnFx3@{>RSei}v){7cru9 zYtsLz#ks*p&q4F5y@o=BOf$de-)z8cz=|O%jILc!ErNgLTvU}5B@%+L6%_g`=6+en ze+b5JhM$i%9mpRP$r2Wr7C|-NKU|7*Ze%R9m8$WIJq4XqHuQ8_gH_8cyg4roo6`dY zmmC@s>&wq&A(slNiCuq~J4^>ZaA)XGyA$<8{Z|^L68cGs+YtKsbUY>s04p0cd zD|exK=eqJq-+yj#W#M)$GFoAS3zFC-6^qZF6YTX6*)DIGAVrO zsoZkvS7?ZZ)c1d(*b%btl;|x@*gWY%DX$px7ntu5*miJwRQP6nQ!f_Os2q6{E24Ny?a+xD+3YKK5+N%wd$jVgtK+4dY%jDQCAB z=>8$N!99hh^6@**d<`mehgA6Yr-EdaMnBiKnz9IYLOZ-?QUVSkhY3*0aNKKE0s%(f zE}aTwK{tpa=~wy!^I|mz!t;?G52EO9E7erU15QbBL!z*zfS{5u9#2SQ@5@{jY31Ja zDdDk3`Ozk^4C~Qg{%vNkj_DLye=xmbLL$y`3UDg&CJe~}#H~%&#VSw+PhT_)=rupd zY7fjhvmta+1~5RIwh5zj00(D-e9aRmQL;JUYwf>SG18v_2MO{`;q*7Ef;nw)gHre} z&+oT_5D>6oK<~Thp0LnlsT%L{zc40=hOd(>aA{rCk!s@HqjYF6HnC74dJsrd9bt-c z*Q41K6guCi1Whi80d1r3a~4|cl4OARy#nV!Cqb1)y$f3+sTxyi(1;>7VA@Y7%3_ED z(;iormLggIMN;#D)}<)q}XQ9%?yAkJGwS)3h`yg zAUSq;0u(zh-04qn1)+)np`&viilQP6?I#L%wGRPBaW*~nv9@E1ptQk6WgQ?x{E!ia znY+-5rz9C1@e*sE>Jo~YDGgL3f|na*u&5bMRtO2YMU&Dzf1-?L4hN-FC923TltlK1 zq1FuuNx=M16f9Bt#bZf=0nZOfMM(*VCqa^tQFSLON=bJIlakBA2}b>HvJeF;-eF=5!-$H`+egB_F?CYFh(r>SvK5q2&M@(Uq9f+tqCQGj zW1)yAUZP*}Lr-LXI0}vNl%SaZ9)>jvAO033=;Qe$sF*ZvdIAj7t5NldqSWr#6E(jB zWB{^h<+(xl?~N#^I+j*VtuazeM+FT9Axe|rp$7=eh-x3`CZW2Ra)~w~s3N9PkBKN4 zE>fs;^>Mz}NeC%VuFfc;-1}~^OFTPo(1fm|#gj=W z6n={$zRuZrbw~qX;g_k}>xi{t+xJ0j+nm`=!#cYMkkW!+MuG43*aPGCN9jO~ z0jr0l7ER-_wHrtxy$3tz9>6vhVC9>gn#ry^v{$CzQDM8|8 z0m#OB)DbMIE=2J#*hEkCBTEfASV#C4;N_okgdKq!au9CKy+&a8q2Y=Dy(9SU&Yf@~ zs2Na>jSXw$IuDYt?g$@%^;MuF2w$LS2kDV`_+zh~t;BBnxHh`14gbfAnY>8HZMoMG zqAmpK-w{OYIcyY1dZ<8Xu`-C;#NTodkFsV@zK4%Gn{fv06DSh6y z&8TVPlcflpzf%O9VHAP#jEVsD_`q;E>blrEr}+rO4bc=Q5Yh`W*z-7EmP>Do>I+(!&SV1G8?2DRG3+$Vjo5n-VrbggblH|n*2w6)LEMpg8xm!i=fk-1C z!sSB6J^Tlmi<;7}8lP;V8wdz?`X8_PR_&qa;{^To|W6o441qIsn z?G^@B#YEBttp8-|$2S!fq-b+zWf<9L(CLG2ZX)$T1C80AKZf@{@&q-*Q4@bIZwvFk zgZDAHG(o!71US2NZGCmQRaC7cxTdFFT#{_Rvl8&)nQjv$tFPmEk=k6^@d#?O4a0#qRf?0Uq_q!)Je( z^^rYi;Iz~_G@pH(5!`cWFs$V5a_KV_=ITLSxDFSmqq9`cz37WNh6E}cewFC_v`a_6 zqB>HC180FS3FE`Epx-aI+ptAXjxxV~n|y!X8e49cZZ|J+l~mOt_#cV_%o`om{5_Gm z5-scxdO&dr%puOe+^LN-)5$Qt&!U)nR|?6rv{bhlIzK#93{`km;T#f-49in`gN`2M znMoSL`D}CodLmWIGz5bZ{9D^g@Uhu%(;7n%`$)#8FQ(yhbFB0(5GN1l zKwq>hfccCX#gR9MvrCbIzpnd@W3nn*9NZOdl!%2y$lXY?rH!+51a0rZtz6dN5^;8# zsa)$=XDw|LU;((~=Uh^a-Mo){Xm#UVQ+90?I*R?pbxT3V&k^m$JX08qD_@u%b z2UTD>W6?4jo#1A;66>G#5D|ef(%auEnDsSx(J(U2S$&V>Cu`;NEUwE>>EtFE@s1<| zXl&@Z7qJ7Q7&wPEODudTiz9QMGa9^iifKh3xOmmkz)?u&*R;!gRqpsoQ)r)vM=DN= zQGXfK5{QtVfOGiSc((|30yP{!yeYrL?JrdhD7Ff4pYM?eAc@g8J#I-O==#!sH!{#u zQ`^=o>Zt6$kJ=+F6oR?K@P&(3N>d5m z`D+bi_&$lfhHzm)4#_MK^2M2kOPiU+dl&w5M|5V`K;C7JO!u_8YHH86dWBk|?)4$+ zbUsnc?uXuB*7wIcYU8lViN8BcU<+mshvMyDB{1X7E&A3$yp6f7=)({ma3svv2M^lc zT?|6?O)wgLMJ)0vwsUopA2=xPNdU(Om0XT`xk8Ryhx*F->PAo$v0{4MM35|iNlUq2 z%<=M;^Wf!NhuIM4Hxap?L2_PCV;*@yq-_Jp{(2h;zd z7|rGX5M-K&6UbytS+Mt#&oKYWEoF)8Xi?Pgby2|C-dd`z0A*IO%GMTcJg_}5@Re}@ zr&f+XM%#p`Cs}q-bZ^7Xs(6OQf5&(+!L?83Zl=!?4g0#fH%iDHxUc5bsPNwRo^(bW z_(d;Vs^Eln%$@DLb@D%=ve^r!)yJmOfF{9BGl9E2#)Q3yr&+&Us~UH7dmX(TcM^<+ zXouTXWtf(OOHD2W(#C=GbvgYQ2X)%^Jp4x+w0CM3kNh6f7C)>V>SBcF?&X;~e4^Mp zo?g?`QQG`rz?OO6IxF|>XtNO;Ay^6*BFIpp57e&$9ezZiZctv_70_xR1{QywXz+tyHXzA~w1P}EZ&`kh=C`j%PhaPvx&p~q! zzU*EM=O0j?s0c*~>w)=P6R?+x{HBd1TrwPxlzji7yo^ZzwQ7QH^$&!RRd#|O2EEM7 zrxU}vPClvNY_c4&#f33Ex8m2!WqwAmyF4qqDC<4`IcfCPo#({Hc~ECi zqw@S&8)}1p&)UcDUQ^BPj<^F18g{5mHqyc?tGgM|$#bzbsg#tEs?z^o@lAI7DJabsjJj_D6q!gY&&dx2(S&j**HG3Gr z7VqI0V>}vrt~$R!JJh%=)DL>xMk&MhvovQ^0ic=9xa99^@tV_TAcM^tDxY%7$l#Pt zh%Ppd5=Ekailowek49#6pDCWUZHScX>AM9k49Sd+| zQG&kz@Ir$S4Mc6L=v%A>06}u5%ohcVYV!~PCBQNV)n;b187n*+JB<@0yMsOXfe;(p z^#{%Y%%28?Ce!5?J|jBq-3-qF8y22_E~@|+uk(06%dKiC+35%_4W6 zojjrSvg)E~#>UB3+3lBLzlO{q@;k>ivKd_CMZ}H}m=#^SP!`Jn)`R|EnYu;Y>4!_z zwsCR^KbXiFW5RjVjhtQ@9h<@-&~U&>>9mZxq)RN|v?WsbMmlVAR}1Wq{@o z2%9Cn>WX?{ur6Q{zY6xl&~$x*+~Ha+5kS^vr7GGTTY%k-oWuUZF(7p#Esk~ZPwgzq z>0q0*v)%swgnp0Iw!;`BgEZN24u(wdY1#hJt>s)Im>Mg-N4o>^wd%i)RGD1gL{iVN zv5k#1Vunlv4$x!zrW*YmOxvBT>IGYY^SurxrkGGg&3NPv0y=%*3!2L*vhaQ|Y4(B> z<63TRK3fn-Ob>9-}!=C_=rMeS2i+6Eu?N!A}jswBV@SWM4 zh6T4jJ3S)S7Fo9L!sB8U+Q7apZh}o}>Uwyli7s#lU+}?M)1VOfjSQ=vQ#E&rQlG!I$Iiifm_B*#^hP-xuBg>snC zg`2ITFKqLoXmWQZX&A*CEbPU-3>^`j09e^KqW8npt6N$T&~SjqOc{2KGX<&+ArV>3 z;M)t@+BlRwpkW*O4g9)Z=a7eCCZ_^id&Qp#r3VA^as#74*VHcf6X74L(H(TcQbH8% z0s~5tSp^y*g*@TiWr8Ofv}yA!kSu(G^Gw@R?cfzOij)Tn?C0*P{43mutYbfMBZ#F^ z{@;Sg$l+{nK=MsBTaPL)3Kb>@No!yCr?o*lywp*pU=Vh3m1tYbW~V(MsXhgC8=wvf z4A@yWC_X^2ex~;43?Q1x3%~(APAzjdYQ#tkGpVqz8{}<}!sA(UH%zpu-|ZOvDH^8- zM8s1_?f@oezzB9Dv^Ad1JtNk4{)3D(J`Dgw$w#JBY4!6Z%n zjv2#fdroOY^Q2B)v!S>kurRQBi%bQuSXGR!RD6*X57P zMeZAqU>`8AAQhqcp;nHC+lxYDw^)aNm$7$dQUW zFGG28T{mlsSpPkMR&xULVsVZyg15zbbH*BY?{1Qn+J*B)K+W}w?yg;7VIo#5-w%Tu zb0d$7FrlT_Dqk~RGH0#*k@S zc@@R;HXW9C^G^Y9|wqLhZ4?yxv({1y?lWpcH&gWr4LYA zaVzIP^s{PXSdh#N>a-%XMnF<%)q&ncYgB772kGsYcBHT@>6!o^%wJ3#lD zny;>YeIfv2SIj8u(}Ncenv?BDffM3D5Ub8(Kme+{?;Cg-N1EjIGWy61JhKYDi$H0jsi( zU-sPpa;Np$lli9-Ncxra(jTb=YAXakplN2u%)OVD;|^p9#=%eA@{y924a0|uZd@Y2 zU+s2dPvz#DXblINOMbu6yADvj`cp%dl%u2nM!6H)>*R}8E=FEp8$h?M=S5Vo1LcFc zhP>+IhyOa^5eb05DcT?}C-FUPKU8YWuGK}Ly+fYNmf$7=Z08OCnYn}od%Fg>iWt5v z$d2kS1Ks-V{~sQ^Ww_f7;v87l=8&k7Uvc$7;1DNw8d0&xS?X7AIzHdfQG6+yXb>1M z{Iq6H{38A~bMP4}FJ%2tjG%XVq+qoB<4PSb}MWo~BtX%pb6CEp$UGhw~z_6H<9 zLtx7yxbu#FP;hlcJLXS>W(lq1jO0P{V+PZOINWy{+Jf@i>J$Nc7OT(|amCfz68m*< z0hh^WcfLNucPiwC8X-<4Ui~H+?mb}WWLsJ`!=wp>mV1V)hgnI&=?;h-SnJ)wT@mB@6Do1@V~syl8`F+p(LwS} z%%|mZO?9-eKEN5Qusm;j!Z$)4-~c__zsojL?|q>r4K|9d5rE|W?}}alP|=^REon~S z&kIVil1(=n0oDCBVwaiINcP#GuoMuFcWd!_foxG-+8c7NEOh$Fa$_quN{f(qjJ<>p zy6uY9lVItz587p=`@0MfF0CMc7_oBK{%|b%2!zM309Nn%0wTcD+fO~P9xiTMn-IC` zV_865R=3bPiy95EJ{CuHNc@%G{Kn{&Xib8+zc_e+ctGezdh7sC`t(Qi#GMun`sn`hV)hMurEI7Y z!}4f|^%}FHH(Qj-F*mU_kGY4V!%a`+o0hnbGB_KXsS4ygsuP%^aR7J4X43X|eS@N3&sON9m>s##b&nFlnH!^|mWyZSYvB1Bpfe1U6*BdLiWrk!CZF3`r^k9Vapt z(*M#f1whA3H_#yG#$d!5sW7Dhjew(llW*zj=fC`hUR+h_opNf^)$;Au0z^K8flQ}# zz3nCsIRfTfXDk?wM?imnwP{(4rf9JSH{c<|H@F|g%VrQq2r(GWNxN+l?_kQ|MmZWha>_pEn3fA&xsi5UrG z5~TRL34tL%pLxLmVTXsM2M~f|&!I^WL0bb&-riT)zxOP2X=lBGQn@V6Pd;+OJ z^_B48I7EAK0yX~+)Goebw>R*!&o5CBtpkb`Pgt7xw%Ix+@4N7r4kUtIln}@h!ppr6 zQXi4Ss}tx{J9PP2GdFMK6YlBm+b2vzZLa!>YKLrluT(1(IwbY7C;onDJ+f*OXl+w3 z$p)a%F@G*@VNe#&$GXOzmTDvgI2NqK=`wHCfL}BLKL|l`_d-dKaO}MAF0|?NJ@J`WV5D7nUl4hk zI3vTYzF^udeuuPnACHnifHtd94sDOya`wOPTLe2k%kSIw&!1IEY{n^~Vn&HRsHKPs zda9`gNJN(=RR6mXaFh>Xh=US^X+3V7zzp{=n$6wxys!9Bh-%30r@#MaD$ar<0UUWj zPd{i6zypsT`@K=+_F*=SUt2u3o7`nsV;PW)_<|vTs6fLq02;%R0uHE5Ax3g}RM+;lpGV7P~G~B3+va-ED6gJS@kx0F63n6oU41K^={n zFDpvX$>a&(A@uQ}1J%?#V_Asy9RYh`fYZT!m|RIzS^#a6jp;`%GQc+T2@dQZDE>x> zyDJw5AypLPIhKU3+?>hmpS`UCpnT-izcIg^W@cZ*vT~C0!M;dqVmUJ@(VJY%!5|A+ zq0?}VW}-EGgylUvlZk+ElNUM9@J+sOv#TM-&F0(~T^jRfb&;HQT&dFu2I?!G zV-}YcFGR~6_Ne4=Eg(TbAnT>ah=3@Jir*a|#3APx1^BbVx0Ygr;Kg)4P0nZVd=;V{oZC%R}` zm{ViFF=&Nqf^Tn(Xs{%#Q7AcZfqzO|(3UpvsXJ2D*x0Bl9aH8qXj-jN-AduXFIE(G zwo?fkRgQ5h6oiHH4v;aATby2f$g(yJIKCKS;`MzGM@CVEfxGA3q!q_-ez{h!wNoI5 zHN=2BQ<#x6WMH}|ob^$>&>SJC;9kZidG);!t>S=7d?@~aoVJ4|(}hrwUob)^OT=*2 zl+wjA8)Fj`kwxFmZQh}GJWJFeD1k+@*kHj#lwsR16IMy`xMHb0-@yh8ozCwiI()sJ znZ?f7Q3icH#y?m2Ftnuphxf#bsjMEn5?Hi4jbPad>`qVeohG-%j^Nz#KMyaS3pb<5l0^-G9&X_fG!{>7O-GmkEqg zSFRLq;leK<_Px7@!n>R5`MCimz4GatGBA|PSdTW<|EU{K!Vsx9MFuCd?v?U*8#h`~ zESr7`0!0*BNLY{e?}mPQ`I9OrR$<@U1Opj#Aj4_v1|(`%nzo8QPZHS6SnvAuTC(>N zXbkia{+@2!+Ehc3N~NgTmYY!ynaHWDa$JU8y9@2~v%2^ZA0w`?rC`p3<5r;Q375=( zA{sm7z(_oAXRV~T>TMd4o*T&(GM6_ETM02)1(T<}YmPY1%u=#_sRe*=k}x|X9M9sf z(Q*u8Rjym~ypsEgaZ-%og0CRaP2?ohH_lQ13$p$Um^3+Vgc;iKB>G8pRpBHJ6D2Z9 z8+ReGN}%|Y2==%O@R;jX&~eAx7miEsPBJnl7zX`Yy46eTIDgyPAEul$%7fH7>>1< z3A8=Pa)yX8kN1u$+qRsOcaz{7ak{}H@)u(Y#gd}skh2nHeQX!reybjh) zs>*iT8XhR2P(Szr%;m~nhhXz^3{_(>>(QZr`(I=uWf)9KwNJE8)t@EBWeA6*! zk79a~Fw`{sk)>g~7#1AErqQ4^+m@gz+|$=tw&g&QE;kaw#Vt=I6G@7+X{~=fgFT(c+L89mIB?mxx}?0%ra&RE#GLMVuxW#U80XC>;WGb zvwX;uby+?=S2Tzv_mdH3#OtGjbtf$A?M5D_RSW(~0kvA`H&-ZK7#hFE=0|VCwn}JAgn#JZo zN;SSla(LAGDHm@60*gJ_kiv?Vwb`SmbUM#OChzbRSE>L&wAj zEMmt&#YqrLI~b zXjJ|6)r(1VU$G(B37`IwazFtv&>cKjfEeV;umVnhGqP-x4L;iy;sqxV;z%3PR4duu zcYktFy@0|XEysfbavcED>h4Mh1Sk*4Awx$up8^OqM@;#RqNj0!0u*mT5l+m;gR%mSCx>DmmafjoECCOWO!s6 zBYJ0j;ogKCqTSZi?`9rR2DEIV;zB%L3CW(Hj@=4~n=SFEGMr6OgDbpc3>MoBI zC&d$Hg^q3FzWeAW8bL>Mg#c{Q6|vs#0nr<10^GFxO#<#aOH+I7b@9-NSTkoGmTw=BA-jAGXT^$ml)^raXc&E+jvWuuy|g9vcuNqeqV>{H515ro zzyXt7ta}*pR>f6cAt=s$XPe*lQ+jGsdHllKE$~oAq|AM~3aFO6r1puy>3s z^UZnaM3XJ)banpwlLh#*IKA=wZlK-tz?TLc)LAmSe=qeTumLy$C5_MANEkrRa*^v` zA^BjtN^(01p(1qRjwTZT{afM!{S1tb15-c)cxU{U$@;8wyhX!o*SwTFUpgq#+t`Sd zl~Kly&XaZCuH~)Myn3gzi$oo>rE42%WJ~?LvS~~YC5d9>OljUtv_JhrD(0#N>J_qp zZs`{{F*94j>h_s^U1UKBgb?j{i>#Ao7@(Bk*ROw8Gl%w%y8+4v-j zacKv6SEeiu`q3Pl^=yN{J?mi#0`Iv>#SPxzrrHp=L6ZEv`S-|}w`cE}7rLI%CB$qyVkoWRdRF43XC-t&Fmo?Agl~?h%nSIb_LWT z0#FMPpcW#S2L7wNf}~%d6($h<0;`bqi_1Xl9#CN3A94bdT_HjG!6bUxF1}ah3iNZC z`PuLZd36hPT>+2B>%CyIyb?TK1V5<{aA$M(3WfGLbM8ujVuPL(2cSs61>x)G(O*J< zM3TVWgQ;KV{^ZPeX8s*99Z%ikVeWKH!{;I&aG(M6{uN1G2ea41Ol>xs7Pk|Ln)}ln z<}iIzV?bVA-i?39@BJ_VVDcAr;{q7Cy8ZWeeeZU7?(%Mb&x^_1kqI!_-R?uaK>R(H zImCW5FJML)AxYrQvt#4m>tXJgL{GOTZ%>XW?xgrPa^E(`M@SC9EMR(5u#c#(2h0;u zfdmb(3#@42I=N9Kw<4oNiP8b%&uKb4h9VAV2S2OR?_V>cHwuO$B7ncM9+Jqf0Rz&m zKSlUjI53M6FpCn&jW+1c2{b5>bJjUQ<}_y#J>dy5eI!+tz!oHFk|@AmWL-Ts~r z^W@q4bz0QfmU5HmY5dz0J>j>J;{AL4KmA`yt4CGtLG`MPqB? zs*ZnT9e<83(wfk3NZuR*C2z(!V~lY~!o+{^ij46RO!k^gTxQT~YJW_?-xlzv)i3Zz zn5{!m|X)TnfdOT~%6e3JeCv16XAXQ+9Rg6lWKTi{CNc=Ow zf8=ilEj)iHOyv3nR$;OgMqgWbnq`iP$&?h1p3=+}1*=%GP_{ynuO8Q6XhxYbBur(P zdK^oqq6(>g4d9>;NLE%(G_Ds{YXBb!S~!P`HrV1Z9^WOqg5ks&rZ8GlK}M{m(4^AF z_((!UsK%8UC*S=N*4m)aL8J|U1_^v;YA_483{I-RhqtcQ5&mK3o?$|PFG|a!?Qx}; zK3`O8qa{FA>m>qT39Zj}!MM~JsxfF~sJ5UGL<&?H zFKTF5fjK$g6Kc`4cq;YXvnngsNeZ`$Z|p{uDbX^+N&BVsnR#MMQPlP1h87oVQOKO4 zxKKsKI8x&XYlR#qQ53~76h#@_N$QHNxnhRormptpV_*f}1Z3K#s=p0z?uO?`l?*uLu;wDIv-bSfiJ`Oyfs2+B5ez0q%(!}D3@a9HPFm7XwP3#cGm?aqL8dK$ z&*y}%sC+M4jHPXJ1HAZtX)~ngSn7#qF{lX>rgg?QrY8ciUYJd3M8H^OM)VD7TMvxMo*?j!KO_=r{i6vctBI6o_zoYz>%R&>kiLi4pLgtyLRnt# zfthS}($V#2BwF8Ie=fqo&A*B(qWlNmfp6e-uWdf-UDsa>Jo{bq@Gk*m^CQYp8=LQq zg}{3Xo{2oTS+izMKVN@O%w%&>*H7l79Ad-kCpVxei=RUnQ{=!gJ9Z8!d)4&kqN5xl zDTg>;f6fu6Adsba>_jyvfbM=!U>LYZ-r>i=_$u%4+n^YS;w}7z-f#pEpdQd2T0(ok z|9}H1ZUDay#U0WGcu;)5$nvu~spnJ!9A*ycxHJ<*&N!BfxmB-Fp)#-fAJ>e zoO8}^ZXWj}Zk{c1ld`;i^SIA3|K^)_Ud*8L8vbgZ^iOVc?xZYF7e8}ISzQ-5q$rAx zUDQe0vx^yc(5pS;fKI`ihMt#7%fGtt&ln;>tT5By}^Ca zd+)tt`1jXC6Cm)eKVQ5;#JUK1b))#2Bum@vcDvnfY)=pK&X(>F_U+m4d>l<~v-JW^ zYmFT$*kDrhrEEwlt%WivVrr4snk5TMmC@AdgQ5m4QDs1_FoZM#Vzsn#ArUDPqo-D8 zNbQogj!?!#Om*^FV`Qx_s?@ZpAyCLHIf6P9qSgSyW621K2ALRD$PBGp($+L(sv5B~ zul0qjs;VDTsud_|(vqGUC?z3JfP5{fN|06|WHH9bhSU_&Ry1W$VqCm{WT{ zvZ?`Dk1Rz&DnU#P5yT9sRnk-#W$O*G9bR5pDO9yn>k3fRAm+G4{bG(#UWOzES;y=U z!;$7_Eg_5uy|pkbI(vVrkF?Hy*BUeX9~;EkYngBVO`7arcIO80oPtO3ZkIqEd zaSliHbY4%0=Jd=v48nq(dol`wmv=d5pcqrnIj0~p%FEC8^yHKm#@syCGiJD?Vu{u0 ztga`C7>w?7qj)?00>i?Dd3E+I!g#zlM8h#}9qRCLZs%~yi=1Iv+;#;wwqWuwBw`p5 zaqF-jWf*p&)IVp~2qoAWm>Bb`#fW!@Q^#{YkM8^}HaI;+mQHRY=NwE)=bUrSxfn1Z zU8Mr^(b-cy0Za#2ktv?12qr{s&UuimbIv*ETuU%4$Yl#^DTBZLbN&uY5O*bG3NYBD zEO$Dc$DT6BlOv?Fx+of)6WKs4938BhI_G((bFjycIEtKem4x6@XU%mFDh4XG6-5 zdVN4l73nbCV(Su~LZ+#L?McowjpR-t(+qzMaa`Tl!4nF94Bsm4YA6H};#wMia3PIc zM*HM?!Ff&)JtNMU&h~7jT<&VPK5O=Xf7Ck)0QC7kISY6$#`KlSRH zJDWozxsYkNJDA6UyyN8^h&2YYNe0tMiGDzLTRb|u3!nTl&cH2WKrLy2WQ1WD>a82L z+xfFKl);wKl;ino&=mUxb|G_~TR7qsoGoPxpKKj65pxm_>|!LuQtLv4%bL#ils-tF zofGLeY7f{03~t}uzSG?kHruc0-Ph^(>vTN)c{(op{z+>M^URO@-XE07qAs$U(@RM^X#@`}KpzqAQ) z8JIyGKQ4uk_{Il7FMwPC5%E^|$kMcQB?iSwl8rHjjj13gG)hW18DSWPKt8lG7Eq8b z2Ncvon+4xEf$fu>?@kebZ{sdSt*^B)1S!bc7+RJzJy8KLsGxDeMC}Bvo|tsymE&}$ zu$9k+7Dx-iC;CwEg=vGnTAPpW$~C)N)UH|^Lpvll`F>zcEMsU7p4|B z@!%WNM!_Rs6K(`v@W4WXhRP5YVOU+ir>ht(hyrDoE_uG)_}gfBk<`F5gi_*{`8Dvg ze4I@~8A@f2(;0C zZrS|pOB20$92DnmbWo|jKZmlp&f*+w&SuQ{?39CXnu9TB&z#RmcgDwg@hCe{_5E6j z5}ZRT>HEtrJc2cG(rxo0f0NBlIEVHLOPj})Ws3U}_ZkO;E5A6msTFlr#Z|j%y|i7m zjz5d#?RI+=r;V3gm;x~kw>Bg(TcafCtM~Mq6$I7SI8pVo=a1@P7K@}TA+0Q-Az4C1 zSwc+6{N(5T7~{t&n^P9!N*o3{zxU@O5(l(JoKN)TH_HEp>bwS2{0xutq&9Oo<=*>t z)3GyVRj=k2nmnNZxQj z8r(4Tr~KM*Hb~OSySt{;HI4+nJN)?W?%#0wNm7U6n63LWk$?|9%(_1mCM@9H--!)) zbT02etg-02U!a;bojrTl8C59EdcxPbm8Aj}HOCYcOVnBwR+N9qe3sONDNKD9c65+In;`PYC}kAR4`=JE5Wtx zVrGkaRfS8GC`(onj;v`u^+pdKI99SWBXuaPg&DPVt!z!0y2Pc9aJ6P#S-oCZYocaB zvO~zq;s*>QG)Z$bmga@(WKEr7W)(BG{_t`EsE&a_EtAsG!WtBaJpGtfrloa8jW0A2 zdT3}t>KQa@V%9J(CTOWpRZFPIaMGj%>jbrk2`iEk%p~>B&SLb=oUu?sTg%AQ9$>b( zOleVxs9=DyhFPJ>h|0og?ZLyx4Rs2QjMWAjqBTjH8l#L#18j9+3yPI0Wkrn(>k^Z7 z2vo03tGe*9PRZePW`@}r7e#8A%*@14=vt|;aQsvwQgpDeK1p(9NDmDVbp<7Liy0a# zkr@~(m^JE*Gb)rY>($rVC97A4MSYs0z7Q3Z!Vr-lK~@uVbRlV(jqqe9qyjlxSr}vG z3s?+mFpG*dCH6##3aXGIP6Cgjs5Hx(QBvp3lm-Mq023DgAQ%h?2804hlEP@Js`3F8 z00~{rGDB_%Z0UZjT)W>QM7%Y&_%>S)%0Y1~NwZ4Zgi<>V|_33zj0J33E#`4916X+MC&P|k4 zNV+G-*`JdG@lX%PkQ>FLHLkCLnO6OVr@v z;-(1n*q{V_SqPSzTu04zMb!I?XX_0<5mpW*?Cw4S>}-{4@8x(_7=$RPZFr&Ec=C$m z!xNZe_RL}#9(kIwix-E-Jbz;c$x?X_({|x^`qa?LNH>G9iz2i!9@51ctw*}!_+*$+ zz2o%25bXqy4Yoyxme1%f^QGVedCsf9HCxlUe7Z^xRn}WPNocWR4bHaXHn3*r(Gdp7 zGFz?nv5z++O(A0*LR=+`Tg0jD=q)KXZ(+hJMQ=@>XD&n*fN;!mcVInu0u|Z*J zj!wOU7lPv=YO|^3oM;a4!zHGvQ%;svbORP%d7ZV8UH;BAH;kN>VL5R)6UI3CBkR6DMm~335HI^DOyq zY)7dB!x_n97eT+)7dJI^>iHwWqW|an??I5zA~T+Aw%6E8&Bk3p@^T;p;-^F~UZ6#! z5^l)Wv9#JAXW<3qsL`;kIrRN&uC!;GkY^^})#gA<#X?UWT5Y8bS$}*vGzIRoe)`cOR zyk8Ookb&`V1+JGVa8q{Le2}mQN?~!^blCY(J_==9S-^hBYweG3&j@b!aD}j#p~Yz) zc26i@L=0Hx8d1saV)s+h9|-syM(r#(1efw%(#Gu|g>)e|!)!Y%JC|h{&{dSy-BZrbf&-mv z0;#f7FaPeW7M?u%diW) zqjrXFdT;QBs6og@-Bd;MszqJ*d-=GLWI4CCYjx_!4o^&tid!s)+y;_wDWVoJBNgr< z_uPBkik}h9z0U;J#dIw|y8~XLfE|=%Z{2PWv)=-*mnz>9E`#rr z!orK2I;W7Kh9D$q4vU-+kZw+JlWwIJs6YaXEEAhT#{USBqL4W~g)FcayshzK$}WI% zLM9$M=upVb=ZyLn!Xq>xn{6LXsC%L>Rk#>-AG=e~&k>MxyJa>eYA*fTlAP#g;}7={ z3*aXI-1R1qS$zWPQLk4vLn!iao`Xg^mxG9fWw-63;mPtui0fxg%gW0^T_VFjc5ZNv zlZ4Q0Q0w(U_4MLSvM8i`2R87pvAc*k3Gv7wBuuNXYDEKZ<{U1X7uv!}8{$omlwzTi2Rp;I+f?k=}%7?#_tP1kp%aK*aF5cTsjvuMOxW*G4)oFo9E zfc6N@d8;PIl7ukP{{&h^*2F3`rbZz+C{hX0waQq{~wN_&LD>i_S`O!VI;7`~F z-Zdk3yW;iR91*CF_q5Z=is_js!K?28_X?n#RXz9s8Q_l(zmMzcP0v1ZFv6Wv@dUMOy7 zM*-{z-{eC#j?&OWAxHl|6zpzBIAab~MCNFpfSujX&(lY?I$u20dAV)OnfFyU7?PXi z=Bvih>nT{`ez@EtXVpG@>(XT1dpD|;TEn3?>|8ZUh+^LSlq0#JXeJ%Od_*{7O^%Tz9AzCNiERw@U! z<>xm9yu!@1Lq4E2O^?@#(8ggD1Jg`Wp3JB}+?FUU6eh}TH`j}4QmT}WAX65+PXO2` zteC^ENv##|en^SJlLvBzwd9FR42`?4UE`zul8#iB7V?Aw{*5WM5>6&5lK@#-ni6aK z8oX1J;07wO=xlV8AhpgSYLx`FPodfR3Pw>NwU|sie$2UaO6c zbi=i2X=3D7K*^O>M@l(7EFD%46E(=Vay0$MRh(fJEztU_IOoeN{zl83=a%u3X37JK zoAokTG1IpUpjyCcXH-5ow^E0$@QDX*7 zbC@Yb)I%OqXz~ulp^C+6+UqIB})-WjM-HK%|0p z1sZ{K_h~>P{2+#Z9tyBBwPk`}wa9%M8Rl0NZ3xod;=3#D&*2BxyHlHTuO3RdSZte|DbMc}+$EdUtv7+B&H& zWiML|wtwXg5x+|ili8^1O`wV?LhH>S-fZT)s~TM2!pa7meaLd-k`!Uq{DClo8*uUo zfZxhq=S|u|ETq{IrtuN zO!_9k^%~951b>UrRb%J}W6G=Q%O)-CPa5KzB)E;7uQ6R6(<+U5mEu}VX)^Fz9(9Nm zJWt9GwbMOSPJ)O4Va@G-%mv4Aq9JH#Xe_~25*{2n^Cn4li}2#FqX&}z6a@*(4G1~7 zjp-oR&F^vC?6D;GP)No49a+lV&eYYHO2)7O%h3d=7;Pj7kCI5r!MdaYF>tF&KZl}4KB)G2K6kcD;o|zq;~VgqShaaGXg^}`{|JgSXaE~1 zTrO2=7U@DWEUi11OWcm4K?F%)vNCHba*Imj#AG3{-~|IgtqrxmALCQ}G}rtS%l@H< zLOt0&u$L%&cP!|?=UtBGQ!~O*BC^ONxbUV%HrY&|jeAxR-ah~sO|(x8xALT`BpvKA znPY^W;u$_@9@I-N6PS3Y8eq@TAY_8>dhe=rqqr{IT@K}$i(d?$yXh16P1X-O1^1f%v+%>(vC+78ewqiXvqx!(W!0X>jnRD8^J{;XT(+jewdvT z*3tJ`ejJ^}`Qr>eMC~U>t^8#JK%?N-9bFjJaBSoOkG~7(l=}Yc9AZw#nw`sLVd|6i zH6gSQxiYZO@LhC41?ZIriiigBJCKR!;gzn)bMmj*=Z7x&;u)OC0K(U!nXU+N?0Go~U>a}VwAU6RlYpx53?J%$jUT~IVBg%+$P)78J@n4& zeaR2UyEIWP;9qFOZO5!%Ox$n2$fBCkMz`_}YSXquE_km&1SMNk9^ui5`khNmn2Q7AQ(` zg^_Li#Cc=Yo`Dpc5x~7wL^7T|T-~rIUn{z5WAc+ltjb^Fw)wNiK}-Xo3t!Hsnov(- zWA2eJDlleL<+~uTNfztb0jN!4Y=lbV5#Z}Vz45*npY&IoMZI~6+9HC)z}l)srin7T zAnXz_HoYw*)tJ-D2rZ|P`kK5k(|;w0zL&=IwGX@ zk9xp6c0mltGJ+<*_tK|}bc^%9=Q!w25?SfaMji*8^iP@R@)S@frPD`i%ANj3i};Vf zN{X6d!ylNWJ)1Q%nkms8PU$($EAap=Iur-TB|3f^&;jl^^Ap-A-{TumaefAQK`7aK z^nF&an=r+UhH+~404yG7f3Ew6@t!mi1Oy=jl{PNg)@g9#o#tkxmVv!Ry_N(1K$Q%S zbWg6uJ;05RhF9~tJditeF-INEow=@Z!W1ABWw}y`D(}F?@;HdqP$ce`&z$7TOj{mk zzTP#@*WXJ3WkCKuFTOQL!e}K8)h9$ZjWI(&ioj+VvHsF?ux;B*z^oA7Im2y0Gyba7 zxtbdaZ$)bi^^on6w`Gplw!qyp{pS7JIKQVQk^NEHHR&B*T!0`JwsHaxPkF!5+y34Zke9KfwCkkwI3#l^QuQ?s{bJsRWg> zsatV3WHC9>9qX-^{m3=}^{Q}GSqXz;Io~Gg33xJvrHZU-k5WwZ%HCm1^)#Uz`#@zu zODIl-EV;y5wMC%2DU&D9NsjCc<4|#auDeq`ooMOOF{bOE6lJZmr7=Hs;at+PqQp|w zsVTDbio#16Nwphj;Pe)=yx^8PEiv~PO3Eh&M``d}b?l~I&UA=Yg%!HwlM9QEVJQ}4 zoz@kE-SWJ1o5cJR?&(Q%BmlY>s4X*{n^IGhSl+rOCGW(grS7IooIIV3P)wX;ZBOSf zW||5Mm`+OSri;|)q@Inw<&YJpsX%qfii*QCU9Vc7sB)q|aW5IHO7FABWKbQ0T0S{Y6os!kX-_UE9lBCcLZ9RnWs6cL zY09utr!SFpqD6(SMzW%`D3SY&q9?ooy&U{geIIrWWx>Qn8LQt{= z1>uDbofan5#7{;Llj3*>I5yhD0RGIK}q36kMg33P{I`D@J6RT z>7A6HpaYm!&ca_v2gA(7Bw4yTc&jZS9h8(|N*#jqxDzd|?nMGe$)jXEfuc}7IUR|k zNKecyu-54+-jf1K4h4$>iBd(uy?;rPX{v7uI9xkeX?(CqU6qQMgHhdt5}+tg-ej6! z6|RuqBl)&)r&B1Ih|JLHe{tRR0%mgvk~`eot%|g|bkd+eKG77E?qTbd!sqcP?6=GO$Xp;VQoKil86ZaU@ z8s)$!FBTo!s={HCxJa9XO7dX$CU?5|It_`BVnIIF z{-lC}_9Re*=}D|`H682K3#W6Jf>0E0INNx3owCreK{QA~_d1C#EU-t@%9rDIe+ ziZ#jt#T}Fvkxp<*vnUBKb!fGqWVmGK3r@H$3+h;!3=4HPlAWW-;?}Jux%71aN`!KH zl$UN@TLOL*!&V*KlFLb#HVLKO%bfBaqdmsH?lCN^w3UI3r@{s@U59h^(g=q%SuUQF zjVeRaDLskaVhh-T^7tgHSnhns<1{2jRY3oEU(}O71nbAzX0e`-r1sY2i~uh60m>if z<=z&fW*MY+K_e$02Q;)kZew?ZzeSr-2y`*?zSNib4ZES(^za#;om26?PLcvx%rj;UAD;}^Ffo??`TLGR{;sje6XDfHs3i0v? zY_)?53V+TM+Tr`B2lz0wjoYIUA%Ra2r!qjmgXVpL-(IpH1mfI5j+>*t+eAKcdaK_- zw`Tuk3AQUv{r9y`?X2Y`Bi`g?v`j56BW$nN7T?%g2)h!NE`KCC}SnPh4qeaHQlWjhRFl2*Z9S7e#i$UO_fXdE81P_REA^n_+mm}l`C^3z@ ztNHV?>vD$uc5w@eHe!Xql8tqZ-EoM3q{$oJm3KMMb9yB9KJb98wKMieC?2MvVjv9W zjS`BD4#y{k9e+=67SK@&1iBqv4@bjR1IYxZeE)^+&(LZD8*8@=+NvQcbp&>Jov64a z>@;LDuc6ARuTEup)&r4H^FXX_;w^)7TCwzm@q~_Hh3>rbL){GMsh+5ibVg!^ z%A2`Wh*J>d8n%f3j-Q4Nx@ucpF^W)4Bod8lm$F^lRhtyeDV`INz*5xQTw)ZHWT@fZ zhQ%zjvPs6_?#NBt5ltwW3&7gMO_!Xmt}Ixbgt%V1=)>S=$vAjci66|V#gz46bMdui7HJe~97)-1|GUanS1WumN~e>Dp;+I^Fz^uRBuHdlI=i`! z*y%pB@@R&%Sx-$a`H_(BslibCKfBbAIlBem7Z%GN-Se}g+ics5(;dMxLoA2|oJczN z7)9|j^F~gj{|<8<{V1|7cr~(u031pvixp{9AA|H3AgUIkL#d)GToLTPZ5QT}18^UtsOFqkFLyS%-ETxR3@yW}@d7vZW6?@FecYico48Mzm22?VZ zhkX0KqKwL%xNu!c$t>xSnO@CzP36*<^%!n}*{!->xe>{*nE?rGw|8xACTDt(hbyJ( z)rKRkU1&9v4!K*U^5uQ{PV?GvTmXjo#A?0j<$I+eZ{^KNcxkOQBXrs3%U9`|=75!~ z0Gtx5lOBjJO!O`dr2-)i9sv`ei3k76d%;`7fG^;EMEPYGV+gkW3a3ZcWn_;sfY8Rz zz?9wqwnkr}5wNOScJ@vAn(1L%qiUTi%f;Bh78Af?97(%0RqWI#+N)II9?R4bDMYlu z+FlU?Dv0+fK#;Q)Ql-|m`wi#s^_t}$l$AlxIvjd zIxrjf>_yNa>kc~?aPeFYUjJxt_L?^TOm>(3#LtqObmli9Z0iwi7?8mpT7ogupNc_(3JCW+ig3qrC}FIXy81tmapI?(mPkeuk_4Q59BDHrumN&&A?2v>DiMk>v zm(1bjVD%bYV{mS-L?&5ytqYcEsgeB8kP8mzRI;jJzJK#O;{1rt$PQsQ&TY6wm;w}w z1aE_#vB=LTXcs@SRwjb!<)U{0-9m}O%i*X-emD)_2cdl`u}&YJr%p-w!SN|3H9XD&LWt^Cp=ji&#d!SsF;745B18%E_H;RMe-h-7is{wD9Y{= ztOiy?ZrI;P1O81{go?%UNQ$%Lbv3nsqJ2NG%$#=l8fe)isMa8sCE-CXf$Y1sgaS<* z5LZ~9dM0@#b_aBourDa82T))byEuL3<$h#M7ve8l4hpg_9=-dDAF=pOmF`Q*T7Qk%MM4^1SJi7gi#Zp-kCd*v%^|v+}HUBlivY zZS87Z4o2SNNsAE&W86uJ0$yJT9}Rq=8y<yrt!WSY^WIw*_08E10Y>~P6nIMqXNvijGDspPY1 zE3g5ocjQ&w9!7wn{`%amJ=0^R^h)|x)(Xkn9W#jI0`JQ7<+@-%Jxcs<0ATGPx}8xmO@?({|Z9Kz!T@^`W_U?^1#tFeY+Fg#C^2J7Yt;`FNrzJ zVj|GAbUmM4!=vv|O!bl6AxfwHG1+f%pj}=9ry0RkIi{#o)3AW?6)TLIoS?4)b9`9Y zjk#!aG&}T;6bqP$H^ouWlYphhnz&>RBuACIT{t-on6BIJXB- zx+*SJqL~&*@^J*B9QHGybYwbNMjL#>HVixm!hfpg@eGFepvrZ`<2t`l3L5r{kQw!T z3;l0Br+##>kCU1q?{buk`i-n5j8S9I(4H+Ou6^n3jitm@9(Kp;Qq z_de-hjqM(?+m*qu<8!kcVbl#=rNDtd7)T(u;SkVz%X1nYZ6XFOFANI?{bP~*A-`6PPt*OW{!CGeLnf7l z-Ed&2wUU=;T+@ATV@6op6QKUFC52|>hLEy7o`O-a(y&wa$yGq>9jF;LJLI|641fe6 z*CNtzn!p-X_kWc^5t=b$Ng{^T0oYcJd)v-y4Q#|MG+*hKk0@L8Hyo+xtN_++Fzc{O zrr9!Y`24!o@c1t5F&H__jv&IL{t)wI8!U5l>x*0y7?}v8H3r<;eUyBRL16QsuXaDJ zbsM2?nRdjLyF=;HiA^orZ)DqMSSCaV{OH>^Y{cVJXw%9y$!1RD>>X|JmmD^x%FEih z9#G6%+#KAWJM-KW*9rkiOsz2>faA3cYO$j0$-MYBhVnbcUO<{f7zTMAU5T?tM5QWX zI9dOfoK%9-f0^f}e9iU-KS+f;AIGHUWjLH@1Dzjbp)dTIpqZxb2HcOwv#FmpOYeKN z!m{I&zB#0}No>7u$s&pdIu=3iY>P`j(f$8JI9Hs2fslz#Ql4g0D%%20^6v^n$o(M% zX#E&-D!zna!?ge?eU#RKqa?3@*cZN;CHszewz4*6Ui+NecuX36=5ZSGlEfxz0t(6#d<$&C_~E_0|C6w{rW8-}ctu60b^D|3XLN#C<%fDiv_66iP~`j4JbLEEpa`%Hn=6OhZYRB4Z@xg zV9>;xnhM_#RBSeBa6QQMAd{=oN7N>y=|9?9yiNI9-+6V>q#4~}um5O&vDn*>+5PDm zlYOpVgsnvidZXN6jlOR^`W}6I&x6OlU`rg2s{Mf==-YLXuH8nd-@XPlk<~T1U5`|X z*=^r@HM+st2rlZD66n6wo_lVb4l3_IE4J_~)!u_rNN&%!SMx1*^$pf$*sdldIa03Q zf1(I8%!KWImO%4Cs`bQ7Q}ms>w{Q~Me}v!o6@YW58IjojBzBun%vquQ+lXC7qBLQp zu}Hx7A3EX4(ww4@2S%Y-7f+_$=21bf~JirCYw5V5d{#C&n0FKavr$ApDry4n)Q zRJFInF)i75OB_?wI|*+&Y}$@vdfM*eeJ?>|72=osR-%M$0}ra%+dclCpAk9NT63Qz zaHZmuw)!>&Mzy;5u_DkgFx-tTaY%|I*msfl+*5Ys_3A4D1Dp-7EpaxqHUYN8*=XX! zmQy8o5PdTHx5V9OvOhVQp6+(59pA9AXItWIeC;oT`0wBCU>l25`K6vx`k^eE@H6D3 z>Z1DhE6u(YSy+GiG$Y^jNdUp^NbcJdOK>F%x@}rq45X$e95!4Dhc`9ZCAb<_xEi<` zRU22M0z^-UqUc#aWk-hk$Rk8RNsZ?5bPUm&MB7QHZO#qEx&tk)`+r% zo_y~mO};Lo$+w#(MHXMXZck2|H)|yjSqWY28?Af!;D-S2?BSLrxXtrEk=BVU?C!o3 z!Q5HUt9ilVHv2?X;q3%g6_#zucu<~crqIu{8-w=m zn_vxJuLcEZ*VbIsesB2ocH6AUGpK?mm-{>Tl2 z;Cv0%=6nCiPlB_?b#V$IecJ{eFNR zKRc_(Fz$tyE!+HnwJYv~tzErp7CyrK_q(rpw4eXOK0Q`6_pG^=!D~-kF`v`h5z(yO zz&&rRBf9q1T3C_J=kkML7GQgo(Yo(!-QPdjwB}+T?OEqjit{GN0e0mt&#&gyZa?(D zSZ$O$27xNZzJ5%+c|U32w}}1yPh{aEq{YPi^^dmq-Rs&8;b-TXYxL-w?nZ>>0d`fc zZFw|)eFM9$cnjf2kFj|{IAE6tIsQKI*1%Z}e^K^(ulFFAmz%kB%>&%0;tYf{4-o#G zIepJXyo(UQu04N#SpQB}pM9DRiloDQ)Mm-REzfkL~X@c>;Xi{|iOD zOvKN4#1J(SNC-*z*;bqqA=)+4#2RTsBW>>Zw^aAZoS^ zPtD?HHM9J3vugH?1oH1{wgrnu0{MRz$M6Hr1nV`c;qfc0|LMeT>-a zpPJ@D__7Bf6lEa9^f=y4@7{v_hwpDxU3d5Qr=h9)j7RaI0{U*L4L0H>vK7>q?%5GM<1hAviE zMkugF2g|Dmj5bfyh9gd5Q?myw9kjrVbUDLC3x*RKJzP;z)ds3Zr-Vu}Sx!Bwyx<`P z9Ar5%Dxmox4%i$vP%Pk~3UM!;s`naU!AC`poG`268Zj+^*%C)=3g;6bv3ZR2jNTcBZtDh7A}N z8o47^IwkUct~WHr8H>DA^L}=LNf8--sPaQ;$_$Q`8nVE7ZZEikPn^UeM?&H&7fpYqxY%g^VUS z7Tjd{LPG^E1R0Zt#t$ht3xf@avCyz2j1w$dbfiE)g9w=#JFvWn=oXC7;OPL6J3D?{ zop43903;?Gu&NMYVa=J?)Vwp>@RC__Z}y6&O${(&2ttK|3N2T3JW)~urZseHkA02E z08)7bYBWV@b(zA_(Ss8iJ${4*v7ts5R27eO`euk2JE~l;!G>v$4PER&apOfukfB>! zSW=%1>9Sv_eKONDImsdE%L> zM<)bX;=#$B7&H*Ufux2PbZ})^(kwuw;mIJF9c7+&DDp*zP8}{dT~*-ZI78;?NPS8o zBa4MBMS^rq4cR3*(76gTGo{Fwr>A>HUMRRc@6AT$%!*`CLCKaTY;2$@K#nRhs_cLU zDUFyXEp4aRsv{muGO)lA;sobr$VT9f4>B?^`2oqvkPWk~wX!laoB^vL4h~>yhHMC} zAu~kH@mhh-kj2{8S}Z>(Y#f)ZX7$Jp5Qljy098_+oS2bvB?Q-ygeC?kGfH@X8GaKwv@ ziXK5DoA-(msq(V5M4~`iwU;L>d0HrJ9H(VA05wTh;C%VQ`f9+IRSr&ghysyBy$QZgnm{5rtBSxx8cM$^iRAKTFlOtPfcv%8cC&~$OYnUuqv!sibdV|}m z7_1kyn$?g?*9J?~4o~DH+2UpbQe8bPZOv#>2dtx#liAj>0#Rv4~<79^-EsSZw(5=y>goYbgO-w_# zy0EX2DEqFlQLYO6K6$|-6`mMlj4{R-hZtjwanDZ}N@}Iol@eB$Dm6BohVTbUW|+Z+ z%9z{^LwL%@7-NiUmLbL%V|+y!);9C#$qQ0hZrmg_!Fge5XtBZO%^Ei;JjJ0ymSkYM zVp!q9&6ym24A~L@ks&II%ZiqqAuB})8-J1kpOGkD$U#n0mm5<)OaR5S0vHn)8BO%g z(-=MF0Fa`gN(?78=u9DjP8T&xF<4-xh>kL(hN5^homQ*CZ{8T-e?Rqu5Yym?F~%6b zl~PJ6OF%+Gy0J6OevAC~?FR1dlu}Bo*Yv8jS}SYsRGLZ`Yt{L@d~J7Ym%qF3eNnzO z|H9Zi2W>9PgQNxfI_`0@XKiqQ*5=#4HT$lKsGUyj-BMq?rN+7QK2XPG;cQDiDgxFGt@Yz!Ph}cq#_}NnbT(G6S0D~x3`lILNz^ph zQfnZAep@eY!k6xF|bNQFC(mCg)6)3qdtRK7?bAM16_sLcORdGN6zhiUxqO!vhU9 zR&AgRVX7NllD=xVsiHK5U)Xn|mh77?YT6u*=m~$Sptv2ZpegR19$Bi)te^wZQIr{= zo}y$(!J=abZ*5HFd>G^LOjH?+F_j!(qL%QMxF{f3vg^Yk*~%xto)Jjy$eS_7T*9yG z1SDHK5cbc1%P#v-vb7ELkxq9*)# zG}bIC&(J=!jVT8~+eoy>mOi%gGRsK;;iS?$%Cfjk-np+_qNqd>%>dh{5=I+TwdXPQN4 z<@7pra*mYql694JHF?aY2{oH$PIBco@Yxy*iek??s}!v`PN&s6t@c_B-ivdGbLV~F z2YR0dK~TqJb;e{fFbrorAPAlx5EoR7fgYs~NUPQQ%>Q`63Zh4|ptbo_Kj8BLMfhkI z-L@hL!rCp|_2-BB{J|i{Xn9-vw~Fzku^SEx3%g-kO-5=gw~=w1#=@HAc#u5kW@ouN zv#%MLwOCR}-tkIU@eiBljB4A8-Iv>ZjBNiKXlMKE3v1`7i7fg+b-7s%%t;`(;1%e_ zQ+OH*gTepvCIL`_|>Ma@&edo7^_vC%1yg8q9TTwo6>Q)+(hk*BPs_ z{qxQ>PYH`LD<glA2)Cw_TRYc3G|^3FPl7c}^a5vrF5RJcxP_{U9D5 zv?PTjxbJ+j#0`X0s%(6k;I56f+2JS?}xa@+srVQqgIk_YAL#J*x+HVZ_q>Z2LSw?E2H zHqy6$wC8lEAUM{yM%B7FsV=IL`m8kjQc_C0&bqbM+U=gR(OAWv8VMR~`}8*3^4;b1 z*zIUrF_b{^!%C}IlR)#WSd&0jkC)~F{`(+wpFc)-^=OYa)?<}2cb?~cUFT&zf`I@2 z2Ut|0f|}?&`~CcUAYjpgU1zPQjr{FrYpvF+6|)4AUpsoj)Bd#f!PFz3U>Jh>0}!z2 zdYrqCa)sQM>RM}^GRNwui@u_d1mm~EzHP-%k8{(ErdZu}w7;y2IxVw~S<%RwyNWay z+r{c(jqj6v_kPjcQUc+ktq_a1@9_$`$8m;vf2&%uvzl|xNxi6*mwU}lUX)U+M_aMi zYQL<#w@W2LQ4FCT9oLFt2=jLn#F_=(;C~o@-WY!k{Jg;t{O_qY0!2@2`%~*FZMRz6 z#oM*t0oB@7L_yXL!B%ZY`etVaiwZ3FZ_E^Sm!s(_rX3L=T9Yd1k(MSc_?}CMA&9g(Up!D^7_JL+m+|98CKnYCbi4 zxpYlb?5%tJ@{rudhjHyjog2DaVZ-QDx)b58f^?(XjH)90M- z(|Nf22Hf4qi=L01hpJrxsCq5H5g7_ z%&;LRwMtNHrX+>@>Cd#J(0poU#&rX=Hl1-*pQZ^Gb-RvGzDebz9N3`;StSP{gKUl4 z1)ENaa}L9wpMRTe#^ps9&9r7)Gd6kzu|O;eVr}}MtpR%3^eMg$;IX`nMU^ zreABI7P#dm=wlaWN)m|TD=qIz0#V9=?c$e{K=^9Y|1fxQ?mY18ybsi|3W7Q&3um%$ zHUk0j@PO#4JRo{P_=pJMBjV=*3_uzNBQnUqX9h8UPy-Eo)@rRreb&52qt!ZMMD+}6 zbrLy7Gul#wh@YPeF2Dc-8g0ag3^E`Au5ckFA+N1J9N4w0N($8|_2KehPL#0dN>S2O zRi26>aR5m`w!c(S+lAA%irUTER=f#sdD|&cyGO7)1X?9+jnRy%2e#8ES)uztbVKMp zOf`i~LEZ4J*b(L|F`oCjwY1hssdc})h_2WX&V9?bTtwwhf9Xpj4oWMndaSuxty^oa z9`C*P&c`E;@K&q#l%KgaZSpI>%H<~1gu)@h3=?mR6DR0=uX_Bp%REq_f?A^SMp*Q1 zJ$_q+88&B40_AS}Ks>*!M=5Q$nN8|(h7!nw&eI=wwfjH^K@bG1C#UDR*jJSI1rI)O zIw!@o)>?h$Sd-IAZLQZ@Ywx{8GqxJmK^iIEuEnE8S8QUV*oNN04IF>}X_7#Oe=>Yh{?BuSW( z%=m)bkoqFRK`NI7Dd$WyM@mYHNGSC~Du+}JDH%~dNLfj#k-|zMXU=-8)aQKqWQkkM zY2S)My1Ref{EMQXDbgTqDRni)*{!a@O)Sb@J-}dx?l2Z5Pw~$l7!?ydjNQcm0hww&~+@DU^i8orc@#Bw{zs2|6 z=kL4!M6Qh=|JKI%yDz^dN-3rM=GVsf=bUp+$J!XbyStBqJvrN-3q3 z-b*R9_gZUh-L=b2_{XV}E!e}j<;!FH-&EY_m1wz&atLp>eLXp!{|ACpjvmyW9{Tg+ zwd%3bTB`(L#E{g443rgtb()2buzuE~+9pF5yO@1DZJF;jZU3S<;e2Yt zZB@x_bxwGrO1o;g?dIm36W<()DCc$M?(R-rSCmq(E23Jhh^)OyE+TrbCZZs%73~mW zOm8-dKZ`^xe1vtJx`-l4p!!nN$D;Hv43vCSk;RXYD((4x@$9yI{-3PK2RnOCs6UCS ze|`Vy>5)^u^+IpFb4nWdV|?$uYY@8pdA_vo(^{!gkFLL>)>`X~54z89H3(N%2v|A8 z@y-c?SXZo9$X!Jm{ucEm#aNH`KUoB>NHeM=z#`44(oT<)Mcy@ca&|HMSgb#HrJ|hM zgnD$nlk-(t{T2b2*Qk`OmPI|ukisDW00CnbKmaHZ3=6~|kt|5UFcjSf6aWlvph#Xu zD3b;w(J&5!7=~jY2x1_>0KgE0kTC=?sMM7LK!9NKUYue}>YzUY1I(|B5VGSST8S%0 zh0Y~hHcQuijyAsNOx4SJb)?On&-it;l&~J~4U`pC-KX55{uLl@0PQ}Vx@mshR{*)B z5{43R+I_AaIn5cgvq9-F4Zz~~b>)*ARLs@BVs8=BdK=i^xrOcquAcyd8AyKsCw3xL6*n#Vn>yCseP ziQ3(CcS{Nj0TTN|h_Gg3#ORk#9VrNj8yw5Lv5qX2Q*eOvE8R2V?;N`Nz@%CSHn;aK zYDk;We0?Pn=YwG1vH*z<)Qh*1BHYwUO7`*@Q)UFnEPPvG{fOK6W6_ewo|YDwG+kUA zviwwm{Zx8os0wc@k8O-5XS4KHGzLu(^k=e6Xc}onVVe0{&}usrLCNL6Gc1*$_uyZv5(0rNWnw$mU=ln!IliY>4FiID!yXO?u1c`2KC{w}CBHsO zA|Sy5)#v0SN&j%;x?9T-(33+q3g>D|7>h;m>~3*iEaP>Ry| zlXF&E1D0G$cO`Y{QGtlacevSo7AOEku;YRMOZ2jGb=>xN;}9oLBRlD4sWYwF%QeHM z34qD8<`!oD*T>??wm%^NmNMkC2sHBo7kv*8Uu&I9iPEacX_v10N;{BO{u)~y>w~P+&im`frSWtTH1j~F9y(FDIz!RnTgDk$FCWFm$DTzlReMe z3L$Ubh;8NM!Qymi)^l*xYw~ZUER0Zt#l)T1nT-)7QSX-UO>UqBcTKY5O8fnG@|{?W zlw=Iw_`M$RND!)R{$3QP(w9`o>Ga%A*pDJ3wU8!({MsFE@Yv400;=<)?Q}SAAcG%b z*VYq$Jl5L;xqi;(zDSSRoxdi7Dj!QU~;FwFEJfO+q)8CTQ>zdSjq;))Ml_ptK@rQ6D z@2@UjvYk}xX(b3zX?po-bEr5(y!1V1$!2AEYG(Vl%Vr#Ec3Oy~5r@PHAy&T#VT$)l zY3Pc_7tZxEMG(9K>7~{=a#1>nEJti5X}S_OVL~cfc6CxzFv-plN-eHCf^k>n?5V1O z68n=$aelCg*=7-C2;Nh+?`d|>#@IlWr6`;8%`IpnY%p8kZiDHQPOdZv-$$_B+hmgP z=J)6dWwi??o%LFdz(%>>t15TTZWySzphGDPT!iq?M&S|;P7d^RCef}?DSNXPcq=#PR8kT2pRFF(+K$j{E__#Y%b}oowe`)68IM2Z ztzE9oP+Bm1m5!-&#thu560@0QhRq8$+oV=3WeFPvv)FOTP4am!YT_jjj#9Ft<@l%M zx{k>MTs-V~)hWq>gba;qIFZ&s=@~KDvRRs^HahU&*N;qU_mP!!<(q*SM~@< z>8iMJ_13vi>H`f_y69DCF~C=md=28}v1JDyk$qWhMuI}-wk|x0TcWnv@I&AQ6EIEV zi8b!y(9oc&ZHYfal{6z$FN*);L$;eVh>M%oK-)!EodkK9v8rIhV~4j=p&Mo zIiky09tba!7KgM|C-xp!9UY6^m38OfanEa?;??<-6e*Mh!7Nd$P6pggI4^*cj-gqU zoW(QEGDG?KolQ4l?mu3;a3G^nQ7=V#)Af?GzyiCpe2!Ys->p5!=6JzcX0E7&`k}T# z*}{0=Cy7!f?^j0#_7rrh;^)}tScN|ugL;q6!FAsd*i6e(pKQioK;-961I=_DJz>P< z$iq`1Vsf6F80Na+h?rc#f+FG~U4g2tS{=t=iV8r%CE`7Vccp{q4>0qAl3n$1^ZUk- zGd7c}$Abh@2EYZRtngj~JvG_idSEKmyw2!oqg)Il_9w77lTPe;Y5pJnYgv-&6PgQd z9+uE)dRD^PJ(Yf5N=)9-e(X%im;me=%A(q85w|sqJ3bPlc1Y@z8-Sy1k{dUqUyt2G za?mTUtW)OqCFRZM#k_dx(D8Dq=p(O^NR*XR?)n82VG6o8l55K_G9X3zq1>*0O>ZW+ z?SXb_!Hg}Fb8+`R2x0Xeh+frY%^D#Y=$Hv_+yrAPI(mmtk8wmvKe+4eirF&e%=*#{ z(>2(P?UmIfeh`>(^q3w3Hcs*(KdkoOf0nj~>0afm((@s9I1(M9ad#l7j1>oW{afPM zkIh|EvX%|3ldn2V9Xx6Ebvc^n{TD=VbhI;_y~yjUd01cqy3uBi?h4U>g1-Q+1PQ-( z&tEC<%pu7oCP6BUJKgw(<3(-vyjaC-WoxAiQ^+c}-Iji}#eu{y$REo@A7mybHP=C3B=P;erWWh<;dAyciSFKKoXSXkQnYvhV;b*hNB|R>Mf!Q zg#Wi6Y#(g$tgZZmjhLqG6_+P6CCg~~=@M3OuP8*|{NX+ynyMQOkWA$_{>9s}R)yZy z_f4?gs?~oaGu$Wxg?qQT$MlQt)CvjD9<@ji&j={?!+R<_i<0Ao5%6clUYia`;4iV% z07^}uq8O>Op6KyzP$;WL%jwGib-ODu1$1UW^fe#$O$gDwrt#*^3aDG`4KgA~k|8fY z1Dk&)+3nuNoB;O1c@1NknrD@O^&SCl9C0YQ*9wHUTV^k{oPrLJb68dV=q*H3lmg20 zEF8n36oJ^THtly(2+lKq9U8Q)QIG&D@JSZ7+jOc*S?5R9`$REf~w7Y<0=3kBcR-d1v;OC5uhqitQ|sd2%_tuo!j)A)L$QaUd)9DDTm?$ zB_kJ=dV2QE5;ANsyil}a3kPDG65N|)^ z`@=+k-LA^g1_QUGm;&?xY}yMX+^258IYgRzdlq_2zH4tRkjI*M@+TchHUuy{$S~Z+ zQi~amnqpi%tWoqIP?st^r$C}CXqFookTwblEI8#pAyP;i_@`B4+>x~?xcw$dX{^C* z&NtE{qA%2|uKGp=t2mIsQS-;Ajx7Q3{R6==EmPiLKFQ{hGCOJwkbJ&ILrF!X0fou= z_#D)c4R)wBr206z&yiZ1bh9eL1-1?)1*}ThSS9B1kKmDokOz4#kC1NU{HK|z5Elu* zX5Ggyx4|b4FK}Sm5_hBiW8I_FsYeD-cRBF)nEhd)ram2GCZC&xVAcipYK%JCvDv%Q~t+DkqtLe8*q` z#xESj{hJS38T6@Zv>a5RO%9^IaNN!g$@h~;4`{rbSW0NNr6%klRLf#axv#(;@ssIb z|H?I;9VFhzHVuSvm`%Atnai_-;OQdfauL_91c{Syk%eq zzKGXLsr_hLARkALSf0-j1l=NbuwF5zht8`lJh$%~_ZodTuySl*$vm`NII(Vl2K#;> ze0ASPo|dT$f`91?RaIRw;aIIIr!#686)<1j;O$lj9b(ncf0Zf9{enwRq>(20kNj7= zL;h(Rw}c`>_3jAfW&;$K^BGUmW#7X?1RFbUHgzHmv-C{y2hYhQO+9KKKqewe#Vk27 zdN3#of_u`kYysWW1%PXSh+CZ_Jn$^3EV>pza8qo6PiTyO_7i>`CWD!eZDy|sO|5lC z;Jrrv+OAG6@|KFBhqzyT2CT{`yB5RA3)i}bznlR=b!SGSs}DW%ef4T){GH2KXt8hW z55f?UTYJ$@^V^Q8!HhNRnotXpj9~(BvhBTJP9`;4R5_x$!HLe}}2gL1A zN_vHV+QTLou4kJM8s)$9fP|kCndw$#j?>EXep~K=L)nUQGWJq!8!v0ao=_)1rN=gy zk!~2gLh6YqPj@&1Fs?)P(n#7sgbl6+nTAd`|;TgcAFL$QK5owZ{R zt;uxEtFBz*H)giDJ8T9`DbS(cxob$SybV*OU>{Si+ll}7yFzI?Ocp9ab&b%f+ZE{@ zBTTn_5HY%JhR?Mtiq?1zi+mvPXh)#Jaucdz;p~=TStb{5V(0DK8C?53(HKm4%^f_< zvSO4EL*n3?aGWahN%a*;zbG348xuYk+Exe&Uh%~=i0V4R#`}Y>r4C3DXM#L5TrA)o z5Y#y8Pyk~AP^o|h?S~$UfLJLfwg;U~N8nyRl)M|#r6<`QJn95tfs}!hEK4NyDdn4N zMvkhhY>K_mZ-!Tdr#KIq(f!&C=d+=}ZBwpV*N^Vf?Osu%^gp>&@7~kgSJnPph?h1K z6s|eA`&laL&o0wzO^LyIJb%bd?VV`~u_-FGGhmtUdPZ7==^RuC;3f(AVLGobbAg^m z4Z)BV(%l`S{V-Ukk#B$nui7MXZZ#PsiDQqQk}-}s1! z?3s!HI6P*UL1YNlwNLB4lwLNlCJ8#2Ey?)k#C#ZgMWSy%G_D3k4FhW>Y%0!+WlU8H zE&$!MX!Q9+BQ?)>;2U#AP~jVB#Y0y6HjItJUHE%lBYYuw>@x^|B$D*y%+3baC&VFGto zZ^F;^GN=0i;4dkrIq6y3F7(YsrdN|5HLX^XM8-O*5L^#TRw#+~>>2ikv&?^`pn0e* z^-yyB6nw`2TBZJHA63GNA*rh*pp2iMJsEb0l!THJBne1=NuYv5GJz!7-9e}hj~94YrSlS7~h zekzF}EcQv^0_m0mk_2b41lrL+aj-t|fmFG(EuP|U&Hpt3;k(ToguS5j+&W(DL9mmm z;3#%XDdZuLE;rmzm!dv-S_BmSH}MEgmD)~DELV1R-6=4Lz(ZkiksyzIBNA+)J!4O? zgjr4m+TDNW{Nz^94uP;i@$`B;WZ@+I;Kg@QVF*Ae{?Ciy!V00`i<`Ff+1&v?$9k0J z@|J`Qv@*P4+4p5ZMJri+ztD3^W>(s|&zt)=!F^2t)fzuvhR!6Y4v_u>Cv*^q0o zhzs@x^^^ThqXv!O0{1WkcU9eL__=TNI#*;@A1I6mhh+!UP4MlYDq^<9fH7+ru@RHa z+aBKW9P%9pARakD#PS_}+8ko(I~Jn)jt4aR4tMRo!;r-9K*IAoW?B0kCp3QtAN22l zc%_|UN@=D|QF`gqkXnipG+(tUc19yGTLSEOob%ebo##9OnaLS4wcWoUL6caEmLRR-X7`6E=Al0SZBmYb=y%__OzA)daFyM z-moRy47_$Gm+s8~OaG1QB10!%BCo6WOZGHlXXf<0?W>73xdVqDJ3MZt_-^Kk>@vg+v>$-@N7F}xueOnpBSx|-GSFv_5L?)3 zuP~?ajgE(2t2)la87+Y#ID{T9slJfja2n%{eVil3vtMZE%G8{O=Hm5(2(^$Dp5BU( z6R3@q9OO)fo}(YzLKZQyyKyqp=+zf6+?0%j>l4f`eiBc~TU6bpppww0Yr7aW@{iCw!l7KioS`w z3x^9aQ80ibYw?4gefHPp86AT9K~~%AO}FNtFvVKxDN61Pq#F%uDdLBL)HAjqikTo|VLp671GIuPU>$MXh5SCU&o!SxrYawsE zahbyV+_kP8tw){0gl2jWU!(;TWw}9W22Q&m$rcJOn=(gEy%3&epk_;w=KP$#E6QU_ z+F>g(Q*;9&(v59Klv(Dyt%OKAI!dPL?*HI(ru=s`mV-_12tRk=GFftd)RM zQY2((fqM0nw}|>7-zxQEjigX5ADoh+>L;j0s+Y{PrBP&bBaQJ{)VXIbxdqSm+gdbR zF77~)jw-b`M+;Ok$`t?b0O19bCyJ{8rhUR1^m^E?7)s;Dy#GSIyS2frzF13qmZye1ECDVi!U zju`-IRn+P>v!Nbk+S9xeTS~JE%wYxy`YIhTKcQ7rQ$=uB8^hAZ{Yw>#{Tkjw(8nxZ zj(gV+8~wq8pbjmNBC85!3uQ=Pp39epy|i0NUW2cd^J9s^UERr`4FSi7ev&&;>7&|nR$GB=?cFv;A>swuf`gB4w+hx;j35zo z%~{k`$b96ix*&50>B~p@$SB014xN?Vz6ra}S_fCt5x@Mq1`=AA^4*W~G(APb7<=!t zUT7Kav4aK^E9{JaXtJ-f`M&QhUMx8D;Nj7zOeyexAv1SyAP9{27aX@dXNX5yvxPdF z2Id@P1P&Sd&+If~LXo5}2Od4HpvNjflJG;#BmVY}?|Pnl+Qqs07H^)gsK8Mxd#QIH z_8_=G4><$KvX0>ltOstsIH4NCMN77Difhp1-X~eEROJSh3zRbn^HLC;2sJMthv=u~F2OEjZOzgd7Gm(&;hx1UiaW7&p<1nPF2 z_kyo5`&PkBr&@8CW<+2SKE?iJ3&GIC*xZV#C&+}G3!z}@;2G8aQy<&Gi9F~N`accj(%a&Q&FMDMD0K2J(zO=-$_{PcXy>y(5TfD3gCq=8?6~V}* zxWk)8f?{&35G_R>CZEX;jjhLnw{@}0E%h@FEVoHd;9B@0=Y&y#fNHT)Ap1+vrJHzF zLclUe_M(*s^;O;q8kqla0fN2wRc7~;m&Ukys)y1*4neqm|t)> z*WlmZ=h!5w+7z$Hu4dtr*mo5)x`-Kg>60Tb>Y8!VBzM%qLt_Px)q7asd@_RA=JxUO z2I_V~@Dp+wgD*88;8WsS1rT_D+qiAf3kNsq#o=bxK~DL%$jaLM?cv%f0fn23kIeL9z<+c zk(=|0@9}LTtxA}vH5|FWV8%9hPe%SInuyg`H5-z}2<@Z!uCv-%jIjJlvwcp~=;z%u z3%d(C0zVrxFw=3!_cUJNKSn~aI)TMb$8^4TAS+6#|7$x2#TC!Af4=O36tcmA*!SZm z*g>`h(E<9T&WT1A_rR5rQ|qzNb)v&x)KEpQQ4NN&s5(^ttlOr`#W&`Pt(=A zw1;Pbqqw;Vg%B;ooyPI&P99|v`Ttc+B@T-G0L^qTC+8rAq36(bggX!XKK?v^OZy7s z;K|_f->07H@wt&Hif-WkV0N}6VyeYrFrq5}d1gxZK=2dMJkbj)+U=@k-oz}se9a|JPVxg_{H*&(YtaA<{thWh z%012~gxg9RNw`S;pwsyWPFz;l;no;PPl4jr;cbovbEu8!VuH2=CIxuPP9dh%SZ9Oe zQo8l7su9MplwYN#erQXiH})w2ucRN5FP9&Xt?E@!bYHI_YS zb<|5kQ3@y$co9?oIb^i`#iCm191S(mff8$`@i$`JzHyE(aVpjWSYsjKfpz6>Lkix; zcm!)j6;=wy;(!vD@G1Fmd#Vo!*~IYmCy4SFfdStZ$4Ny~MSa7O5-U%#Obt@(;bj z&1HH%f=Oqs*o?_du&9cNq68>6${mlbWI90`V-W%^gg@ah?vDsqgj|5B-Z8BLgJ{S9 zXi2DLuqd-s^rbde>G*hs3$}~$=Q0`*WJeg|f>Ox^ty2K5V^3S!Y*6ddm9;ZS6i*x) z@ys~$y@G(dcdGR^)P%SB)E}VYiK*P3eNSArMxFeuMez&a5d-`ytX}(Ath~Pl`qOC# z>92eJY&SS6_bwz(uv8k$i_>I>4v?0Msg408a3dtB^?~Z_E%H256ZuAw^kO4;WP<6U zBHwTyfxF0EVB;ZXG7Z>YbB){)WT)8fRw=4cFGN=w@sOh;k3a&UlDmyEtLfwM?k^ll z(Ce`IPp0uqh$tCo;T)k@?|xUR&$6za=rzZhMs@Z;#w*5J?}C(HL$BrBrW`q_${~M4 zxkn8Kud+)6L!f+_HrcKdvN`uA@|u{ z1;8nmE*S})3`-Y?-&*qDlI%+~ik?&|0=`T!0`&Tn7B^nI^($^n*wQ}ti8dTzUMjL+ zR9#BnK+Ra?UOQN3_dM^5N8VRrfgyuj@;5h=GZ@VzwUUVTRt4tB59*WTIT?ss&{gY5 zcbq73Z}=7>2<#XH9-urUs<<`Lw^OKYp=JM6xZ^cGcJUQs zdykt>Rc8JMeTu?jL3<*(U+zx^&pcKKEeQ=7^1p9p!7>DoJ-S)DQQlKlF)UxEa;}F zEY$THVuDGIu$!+G#9Wny;tQLo+w9I9eVqvKlU262#nl(=Cu-2>YlHkzLA%4Kkm!y0 zMNl;*(wEpu`8XoUBng}bN_m!`n!Ka_!u&MVFgDc@HvccjXXgB~q(+>zte6 zJF)C~0)t?NfzKNNBUP43l5*D(9`Zy8{0k0p$OpLmX@O(5(FZ~}HpFA9*oZ(RP7>}N zU<4DR0Axdi#IgXzR%J(1%+$!K`K$t$(@)$)8Id@WoO2%6&;`}Q{jhdH{!*;O!70jx zVBBLFz5{EbR;@hWmDH0spE##|iUzlTDl*qC`Osk3JIq3B%x%QjHxCrzEE}H$9f#8t z+0C-DkWDqQMk)v~swa;iq{YJS{b!~Gj?CLt=#8mfm)69YByL!Zx(&=^qXZi;wPp}FK2PGWBFDtww zDLRaplRyghq<>GDx-3?zWO=B)5bN#S-suD;?2Fe$XkAA>;}X&zu?wtpEuG(URW69C zHS0x6xykCR-=SCfqb)w^%bAcgylFOK?}Vm{}Do?bygY zA5FL7TZp13JQcLpousj@I8I)Og&Qs*pKzD!aNtdj_~{-pkY7l~o?v!Q*gm0%2{?58}>3SmcpqV5liALW(@C)nx>e0*$&8%(CD?6z+ zT#M5V`2nAJi(h8{_vsxEE$b5z-5K!grVZgznGCJd=yuK6S2PX<=7M8--tmF=M-+Z` znkoH8V@r~;8$TA=5F87Od!?JrMKpvYqoS_%Q`^@mv!V#$+yZP2d=uT}=--epr1FSe2XmFQwehDY*!MxOt#W1XJx7>L%TJ|ey+$_=G!|TFBg@o;^x)Or<#?rh4W0aS^z;T!PW5 zG3>2LKPn1xVI8r(2p7ikCV$0KWVjon@3mii@~qdx`c%@{!k>)Uz?pSRbK`rV@6K>~9ZEoqHXnjcq$7g`;7 z9Ts!R{ULTHCdOMJog^wX!P(?@@A#Ewsdw%#gn zh0)J7jp#LfQ>`xU<_5*f1bs(U)VHFI%aTv46U!&(hJ%b=INEhU$v!zTZiXr98hqE@ zld20xd2Ae=(10MVRcy9!g@6lRCp%-AtGE4N+SwjG18B~NZ>;s0P$~p|v7Xb0Nya7p zS|T$SpfBe&G%}0nOnpYv;jdSpeqU={5&dkrS^+)yPqGFDKy0pbGy99LE7urlSx@EjU&U$561#^k zSw>h;(;3MUZZKiV594CO4c$jc=(m7=AQ%)ju06_}a!zQk6vSej>)>m;Mp`a|eg3a? zbR^WUl;|0GoBo!)^ba@mk)bK!G`O+S>Z|8NC~>)fFd>way6%zj(odcb?~Mlna$>tS zx_g+5&oYsL>actfH*Q2%O@)<%CQNtum2`RikE>}Md4gxC3^-NdnrX< zr0UH@~!uIk*4DqvfX`4$&H1(ReSGS8^O_tZUf~*lv=Fl3;e0 zK9=@eqH}ImkWbe$pK<6anAqTn3=YEEpAafG1>ZMFKBAwqTFzqa^_hiNQP1eGSKMAD ze;$`{^b`Y6#P;wGC-A*dnZe`06S?K0u+Q<9ZC)5r6oQoY)Z4dJH+-AIE1j*8ZeCH zhXFi_AddxL+wM-=AS~P)c!a~kXc%RH<}71yH>>jNWI*l2qM(+=v}p+Sv0Fhx--h~e z&Z1=+knk3{B^Mf03sHCgPhJffFrPZA#9y)un_5S91ON1)5KDaM%s(I$Q{F~b+G6#W zLX^wElr773BJCipoWrH`YHHQ|S%7)1c;SW6i;jHqZXV`TcfZqw!kor!7b#B*CblWR zJ-!*Qdgkys(Z&M(lr}>-HX&@#r-ANmDiL;rsB_!+1zw-n6&6jDTG1T{cyJO4ag&xCc`)~r6&@GN9F#EefFE`;@B+?7 zH0<4i{o{=qg*lEg$=%SOJCHsyx0*b31ko7ZJhKS6%`oQ+s6>q5C8J*PfOm>Q zXmlBP>|TkW?emk}S9n;~hU(aNHT;b!v=gFlKK&|fG=dtY9{VnP(D@DKYF>3$Af{F{ z3Qc;8O_oE_gC$Ch7vOQp)#|3|>?$_m*9#P8_UM1Hs^-|N|C3Xci+(L0 zA-?lpk9g6l5tGu+K$LcHKTnY>Af7V}-a}$QR-!DBg-af9Ab_{Ui}&7^RK0NLNO+K| zf|oyopMP7skANolj3~3h$G?A%8S4Z)A@TF-DAyu;S3cT|w+Nwash{hB{yv}w7TJQu zZ(ry&(4zPe#kbXQp>zucKzq3+$591Znw#Z1L*e5;ZeA{mxcVdS@GZOQA;p--GdPM2 z2z!EWd)%FXf7g<@&qdr*0~n;YjKIT^RgiH|ggNIHJVmG(?^i9c2KjV6f|v5mf+;)h zZvyu77)x%9h3)y{>SrCzDkkKg|V1L(@B$cbGNSCJ2PU5%I*wlMED>Iw2$1p0~1O@Ll5 zQPu&DD~CPy0!Bd(ukh?H%rMYdMk9>ED2x)YQ{rqQGnYJm9({ZNKWN=<;&On)%tN+dGl zlgoHRj0B~Fi2o=L;d})y&@Nm#MOoJYlxz%MA`%aFtI54qDRjUIl4>!Zv;NBxQxO() ztaxyxxA6mpm!S(vL04Ae*jc=0^s7A9kOZ6JEp>9?vgu5RX?goXw0Gg?zMu=&Ma{Ci z#V1D*)YDpl5Qyt}QytrwSio4`Ds=3g6ZF*;xkk zX$4-7jPz{Pjr&!!;Xx#eK3zS0heAogr|hIzgrA;xg3nG0hQ9Wje$M0KlEt?7s4JMX zGfegC>Zy#RuwM_~o!GY?VK*Dz39E<%VX%e=JVQl`;K4>=4dE7FTt(R_)Aj=%my{)o zKMQpog4sAD<9{2m>vV0k7emQBs%fehD+&dn1v>cs>0{M&QP(&2x;bBHS4u|d#@E&@{V?EWAV+|eG)xP!=U4mEVs|e$+CH`MxFcTo zuJW@>Lr4^jf+0D&*0E*=h5^YEd{}IHSdkV^@OZ8r2G?Gp{~ye_s3H8@&=RCUpQH8$ zb^z2_u2lkG#xwq8Zy;4y649m?LlWRln~5M|W&rJ(Jl7ygD~CHZ=56WT#DtS)K|h2^w`^@QXSAcbb!$G0lF=sBZ^wuWN*Oo;pP}v zO$JrW0pVxA@mGsUhfGr4+&X{?~p?*nEnrk(J1n4!K((?y{u7mb}I@1e*XiBIB_F zQW{z>-3i{eb8GF;rpEqz+V&qA4&A1$;~oYHMOO^IK`G9X>06ECo@oG`2*(GWolL+< zC1iJXY@Jl5aQzTumE|nqBMIO>z^(8==$OUkHo?o6{=6`=I%&MJIQk zwFncS&Rhy2?MhhG*|_`a_;XZ!Q(9wC1ol-p<4i8e(H4QIM*+AFupY@JL58XfzWHs| ze?A~hCtwtVUAV%vA00VBb{qw(ztOqh&fqR)Bs{r80j-5O9wc_DJTv{nNnWNXyqE@J zw$A$|*I6pd8p+ao{i4@3wD@2^z;`dW6Pn}du*G;fN0F8;bJ0+N9W7(CXhxP12j(@( zN-yFS?VNo3mqw@v1rljj_6y82U#%3H56GpI6-(Bl)*0g8m>cKH^EyCBevcFi=u<@dFJsd^xU$#F<1_7 zb9s!=7jO7F9@*SvSAw#@=d|f=( zgK_&+#8C?n2v5K7uux~A#bx*rk}}US;r6PyuZe()7G_=O$YQ%5bx8nRrR>c`)$sx_ zWA5c^(<>~o*{dypLx{bktt8DJLlch+&LH?x-#pXSpv99OgEVm9#YApqSR-ne*^&_T zumuyCNcS0SBG6m$=lX=#hjibn5^bO17nPLktY6EbH$g{*s0jxaN+JBR@bij7jMsE~ zg%XA~)7pTTqa=raX*?Y83$Bo7i6^qR%0P#5&TS@-lOJJV$8yv^8Y+?s7{4N%9fc1<&t{TI4PhY{45|~-5p}(7$r`_# zSZuq5m_hXep>|P@J*jtls@?;0A`<7I_Aca3&;2z>tstMu$#Q|AQm6$}qiE7dU`Zmy z;kU{!(Y@=022ldb`qZ<#9<1w+GiB9{EE&prPAlwc-MZ`LvjH2tOZ4NR*X5VT(wWdT zGXIi*3c%W^%_b1rA!embPn+bKFB*zAUEy>)!njd^j8l z80;&txEZr&t41)K{p1}l0ZmzK+$x-uL%8ehwAXz*w_a%NNT=g@DIu!XO;2$WvX7%H zV5G3S5m>0o5vgvH?85bE$#g~g1WR%OJ)&V5gG`>VU&RD2ij>_pE4^XpV1kvOJ=xBf z1*8zUROE=l$y`cUY$?>KohnILX2BzhY*DQZddGZjlj%|fpO6_Y9D!W-m6b3A9uzkQ zL6#wB?sB{0nopmhU$xMs$c4SslL&j(O%mo8ikl#nsi7d-+lhp3BhH!3A;{1>&KeXq zWhb_3Tqe<1`LFUQ`g)+Q8t-a>R4?{;>M3%$45=esRA7JqzoL?KgDkkp>OAon@)F=J z%P&*eh*yc+bc<`ycguXDIDzU9fO}0==Skis{s2|?-Og@lJH8}`Zx83_fr6wvJ}Ql# zLwZ&G2KEGjp>H_J=3V!UGf-3{$QXzV}|{$~^l9 zW-uRMo{x z)&5)|j;#7t6bj||7~)!}p*)mI9%{peobvPxJN=NVbv5r~tWQTM3u)W+Y(-65@hGL# zr>82Vl!_o#HxZ=1h19n{y2T7<$-SI{(V^eq+$+teSC3wOv=fbMp;z_ERo6>Kmr_cd zy`auPOjB|i^t8m?aB(y5BN4x*(;nRx05_flY@j6 zi)Zh81-a0U5N=oU+4+*svvcL)6z}NJPELLD!n!}tZex~l*6$B4e9Jr?sw&hp_;8z; z!@yoxokT*##T7x#vmk3!^)Dx1y^}~h`^DMS4HdV;f_9iDsAaA9qEJ|n4W6mn3-CL; zvOYZDAIo%!wGYDA4PQ5W-4MQR_`2cihOhfQ2;YP6!S^0~4?Y|!$Q@<-ZMeN=)8pcM z(R?&a_QI!UQ5g&jsbqRNopew&Q3D7yFi4dXC6FwPU`rE5q{zXM9q?#MNI(}YESe;t zB?mUoUpJ)73`DL_;)^7XXi2C^Fu{T)ihzNXE?PJO3k~%Ah2S{_YU=aH0?g_^ZY!)# zKQO4b2oV#e$cK;ZJ2@KrUBCgK3k%y1fUx1$uU-JUlzkA3Qs6F_@r$<_uIq ziA2ES*_&BSInt^l5uUwc4$t24<7QfNJJQOu!+k_^&@}M?fkr>Gk9hXTjO5v4+%hG% zBdvU%4k$$o&tA%TIwWaTV&d85=%>AdQarnq&B;h#6dzp!3g{WR*)e*20X|cXw35Mv z-jP<%4YT@}0+0)yxTrFRMxOb@g^TPWk$WHqO`z6_fFw)t1r5oXk+b0x)$2vYnxT= z+~~Y{fK$=o)`1*c_QypTf}$Zr*2gG;EJ8^nqxXl)!#m#(jNSpbf~%aIt=Xqx5Ib-D zcIP8U?;T68)>5HI)<+* z!?LpENDE1k77`pH_%&=t7q>LoW0#)~fM{%u-4zBdd_O zU3}PE^fVEJBSM&&<;VV5A@{b8|yRklgE;|M6HhvC6Om`5q5)^#}Xf=lMG9C(*l9g_Pk-`K+(z`T2WK z9?g3YHMwf*h1pCCiDb?>Fv6MH%PPZQ7&9FC-&e1zP!!*6(6w~yR zm*Vdyk4DO)sq$!`GnL)0H$dF7%g^^KRI1 zp|>}LOso}9fK5P$0e85s^+T5LvM12_`4#)%)6veI^K`I^1$Wg12p_zG5;F6Sj2yK9 ziV-rLlOcr6keQj8Yh?%_GvopFLVZH*qIx0H zZg#y`EQY&UaJ}H!FB%>K7|IKE5qbKqo#!2&4|+PFzX1OQ_+1TZ)@A*BI8rq@n#vhH z1{GR`s)UY&czTIG;?1y!syv!D;)QsardgcgC7zCu4|<^G>Clu&;_0}Mcsj72BSJ?y zM~Kxk%!3_tmZt;8h^J#z#M42<(@_eAj&u|K#Iv^#4Y5L$Qrh(A_EIraf&zpkOLnlt zhb1()*|MYsOJ?BVMnOpztt1N`Jk*c`BmhCh6BhuP;Rq6p7=om=MF$$tju1>q7anM+ z;mQyobjjh03*Hhs)IiCV7AV0*lO^=Xe=Q|fEV078D8&I3>W+)@A0<_kJW;{~6iTWn zd7^{|N@!3bLlQ5NG$9EVNw_58qQnMDbfVuNl{&O9P1gYZbz>51r7-fdiQDBdI2D6a z9D|3eB*o#^!MG}o$0&Vn{uw= z;X>zBjfO4TBZu2HK(pPoo_dSpZH3`z#wV`B@!ZwCwVCRPi*g~aXJSO&CJVeb1H)V6 zQNsM>QR6{+aXUx8gJE0*!&&Jl2V!%woJ<8`m{>;v%44|uC%4=W7#;(}#&TW#lS7zy z<8))S%PWK$kIN}vKKpVRFOTx_o|iMlx#7aU9LB45Qys=bzJqOO{y5d8RGFW+&UzGy zL?Rz;ce|M{;@-Ofy-u1l;Hy{X!AC)d@?FKVTf=WHosjH)QR zRXv$i{By(6xlnaYx7fSEvcvfnYM#AW%0R`%jsBpNG6gB6yi&T9Qp!nh4X0ALu2cdj zz;-J+j7^5iY%?6&NFHOO;WdW_dWK(E00ES72;Bzfh~dyzK+)7xxMfUS$Z@86;=-RD z33wD>)?_#g7c#?TJmlAHXHv5OMDk|XU3fD{UW(m?hw>OlIfOCXeAN?IW|M&~!-3eq z*km9lQvn!G!+*eV8V;QXhXN*$`yt~pI26oq8ApK(hv7hMcEEW1N#z18p*WcB2O56b zeu&{F8V;M_95kFA#+c#U)s&l{bI5pCU(@5D9A5Fbzz=bZlFJQ`2K?Hh5;b%ybynS1#2fhugs= zJUhSmCJ+>BG$3(Vk%?4_X>i2&yD}BUDb%LIn_-XH1n_23cqw*Qp#V2*5MTf^DFHkk z0RTXarvt{>Q{Xm#I!qPi-3lo0Xc&Mpl}IBP`KOm^u`AQAD1_Q!Dv?I%7`IsUt8zcYpx&b{oi9~D+%5(E#FYtKD~=K_ zdp~g-3AgJU(M_C+j+2BNJxUc1mz`Vi7HYQwQM-}!HABfRJ^ByH{eT*)qPVFW>;oIG zN-@7&NOkH^yDFV?&RHv@l;>s>E_p^-d{A!7#YASejq<;11nfE_RnadeIpxaR5M6w|a4kG<01x_W1D-Ic+0sE@&Q zF2i-HZR;(*H5EMF!!+%~DJ33F^KA1Q2#;pVqk(buZppZ<8V?yrp$wG&E{qR^;)3yk zFg_4wOQquej7a{T0$j#-Fbw_8uMGEKY$uP|US3Y~^m5`Jr($rr)_Z%ZcTbD<=_VSA zm~HO#+!w!G)pKJuRS$IQF`KF<^O#N5b2X3IR6QY&*;GAOxTDh5 zM4_7E6cga3*lYfBD+-|qfD(l?D`{sn0vY76j7xFq^2@R9a+$G=0@5%utS;1eT~4Wg zNcIqEqCHP@amS69q|>9Xo}?949!# z-leb_4(7O*Q#zX%190;(YhX?4i7;R{B)o#xwgD7s^o`EWK{LwGF)tcS8mCxn(n*3ORDTnFc(&Q+WT{;=2Le-fWkRotfP#wXrp` z+qAJ)W;bbLvCMAK#@ftoZDTWZWU74n7 znhMiY7Rxj(3u!zk5JZR&n`I(RMP2g1E)of|&{}Kly;nBkft57rCCvgV2t%PzDD=37 zMw+TRRyh}7mXTDF@|Yq`bu*JjO_~Mn2#!Xh(dcmvP2a(oPbXqgaxI_L(d=-DGwb3mhzxMnzM86fIG9z@9@H^Si&-c{t79(G zdekiIp<$GYBBoJJ26O5_-eOxw`$1KdibR^Gf>`zL!rY2jBoc{4@YN8e(rUeWXpTAE zR9bb+mVm}%POEn#NHcn|dbJ)}bxhM#^Jet@7~PPjlB0KnMtYer?B&H~Fw3$mD_xmM z%lx{Us;$NYbF01F8^YX%PAJr=TGfU3-g_~Vrn(%%{6))L(=-jcI2T~X-Pp%CJHmKm zZbuomowOe$O-0Hu%we!fH~7WFXdzBzf+my6WO`gfnZIZ%%rmE%?_kYG8kSv|Q;d6> z#@*P@NSX?&upSsKX{Jg|8fULcvO!Q>{j?6VfZz@j$-zE;Vv7)}+iD?%%(Z4&N3BPV zQ3mJ5??!)lH+t%pEA5CvSwQ5W4O~~$to0piy-lXJvV(Plzim%dB$0<)$jGlxO{M}O z5BdFZxjLFu>jB}^RF_sNs#)DEAo7r3+K&)dt17gqGPjOtJ>sRQvRYLyq6uW&yP>H} zk6FuAoE6;5sawrjj-giRl<_qd(%d!91^7i~9lqr{7#`!Mv%3JlKAGsMcIZG}My^L= zY)SuGJTkx$7QE{6uO(#)DN#saqP7z$TBPhi3hUtyJUllGcm)gL#E7pFg>WLo5g~H$ zLe$`D38C|^B}5LCETD9Gc(Dk@=b=aLwV<#nl^|4d{Tz6AxWpt{uIOKjN)M(GVagOd zx=i7jvICD7JhtEo!VL{PN#KA-2Ru7O$wI{nl^$Zq;_5sRA_SD& zT2F@9@n|>8Ip+^|&N=A=aOO=E7b^k}E~M~63+r}qt=u8^UX(leaRLPr-ot6#EG_;)L zw3-05niL^6&u9NyO{92Op@g(V*~CgqiJ6i+nH-Tuy4z|}q}7B-t4WZ5EhbvDm~?3| z8A6LmPm2i@MeuoF!g}aGSoE4E6r|3~%*?C<>zSECu8Z-|`vDQyfx|=ylOfLxfPbwe zKTB5MrJPVfc@SKbVt^=0ic1m#2cbmiw1aP$2;zt;nTbis2A34X3qqqHX2`A+FcHud zlH#Q8;3a!PvOb6~AYSlt0U?7{nINJ^xTX&bIm9R$iRpF$s zO386?h2%z;+)++i;khN~+tz#`A%}0x%;2ro#m!KdnR(g7PpbfA{Zw#k^9l88#uIJTTZ?s+)mSI`e z3^UATAq~?)qMMB_2_uo3A?c1trOZ^qOj)U9dO2aI6Dos&iOEo?7}ywZosE|vqv4E( zp3Ruikc%AG3^^Fu4fN4A{`qJKWn?on74&gE`qdV8`z6?jFKR z3`|Cpv?%F-^aN=I@nr}vF)$hN?XaZ9x5JVSz8#XD_;yHI!M8)%Eu*{pO<_ks+$!!3 zqAZ~;LPlbY(cRq*m0;QyjYu}d9>MA$rA&7>e8Pokxu9@0sZ`7f<1Os&W+W;lVrD^U z++w;3I(ulMR#f+C^=`CFAr}lO=lit!?$b&Jw>zz1a=x9E<0lxO89(;b=wf`HVM`gM zlu}M9TS_^lq*7KXqnvTldSMa6njt2$u(GgNK0d6e1&|g%K&Bj14iKf3Qc9_mR{T&a zeku^q^@IJ)IAXdX!JEfhHPJ~%llxAU3 zN?DY$D5aEAN~d4h6~qR4A!;g_6OvL#=Q)Q{tf@{fp{$^+SgaL`wc?c3R40u(j8;I> zPi)dpBmt3tNIw+fpo4?X&W_H`jt;y^Sy(g6oRjrDXUV7JQ(|3S(xL>ElT!l9$teNF zxj{I2_KekDbiVlhk+S#kJnXPhcYcIkTRQi;=+M zpF^Ohqx$nDAP@f>?(`K*{BsIC9n)WwM*#s-1Ev_;5>w7fF{;#P5Qc=pMmEkZ_k=g5kO)x%=3 zSS*&#YPDLe=sRgXnmUZ;qo3}?pfn%XQrY>GXC)d4Db z_J{##Tb{iymX=L4)?~`XT+0P?^jHg{uh_@Cna; zK^CUv+3y8~XBS;fo*h;ySUo;a{BU8hSS%JxM@L6TM~6lR<8>$zGYdwdLY-Ktca(@{ zm!aIu0_wmbM^-#67K_DV(a2`ZaF5&;X%Ej$K>B`W4^uV)WZDTb?U;5-KsA+hdr(~o z=xruwlF%f5^v<)}6tWsAm{y!JaVFFY=__W3ol_> zkc2xjJ%GscfI8gn`QYeqGq~aCaG&G?OOPvCTmkymy7F_yi7Q&J^!#gG;kgpTl_OV* zT(QB57hT|-qM^vNP%AP@SFIeeQp5@l|5{dpRCz*`B~&Sb4yp*Dicb|Jst{2nN);wm ze5is$6&t8{K}8EHKvaIHL_x&~A0}E!te}9G2w!3(F2IEHh|fxuItTPvG&z4UpwCGn{!Vr47{$hX%Kc zvb(waZfq~5ge0Kx6vk83Q4MmZ=E%>V!Z6aiBfKmZsN4v2&zfgFqCP;K%76o3qCo;F%iEEUOP zksL>nB!p2Mq>v#95JQkLWQK-@C?Ehb>TF>20bqg(;h!PQIhh*1vPZiHo?5icLYn%- zhpA&+k8egDPdDHW1(#!?h(!}GhZE!nT@EqE^SagGbXYW&DtmwI^f&Vv9+%R(YfZvg^K&m?Wj}2Ac$fmAz5%a0+mz+Rew@reL^0m>TOT&Ks`jR*uYgFKK3 zj^~*LTE?8-PHi1AKn(LXhdUOxDyaK|o)Bg+T1@@Xcy}yKpjZ7qGJ}CZKat(+Gy&w`qeY_4F9zhj!%uBT6#n~!ags=*&w31n3Ax<>FShvqrwM>G(T?IEcWn<4Yg*BQ=_`? z(l+F6$CFryVq4|`nsz##=_5$1zbB72m<#@k}S!)APr@e2w^>|&AGhZ1O z+_3_^tGAiN=9D11jQ|DDs)-?a04u(wI7BC011IX6@TRHEAr za09@v5LG`?Ll2ENq8PG4jJTW^t<}u4J4djEmJsW~%SE(q23MclJ|*)333bbaz3B#7 zE1l}8qYFf@L{-3xcl65Mn8Mew>I3;<+>qgC~P&SP00pDegMlp+k-zfr$y8?9h>NHfle_qXhx$ z+#I9}MIr!u+u$We6JV|B*ESY5^E=ya0R6J!=i4aJ2V$H45A|ZqbGiX4@l!Ef5io~! zb#3xkqrN1(1={d>)81e)g)TZR*Q$6zA=E?G7|6(odw|ikpj#x$GZ5o9WD>74IYNM? z$4rN~lZA03a0F=z%ugTt`m^9a#vs`M#_$cWd3l2IiWk{ zv!F8XV`Wt=o&3<@%7pZ#y)NTfV-~uI5{_EMNkq# zo+B6#Th@iHp)xCoA47TU-;7n?PiFNI?uJaGbDqP#@oPXB*gJccak z?QyRN8|dqt_qM6p7!!scG*z)zqeQo)S zIsN}}5JHhyZqlYdAr)%eR!Z&#o0*a;&#UeaBlN>HN9#%(@!?8TQp*l!5pRN(nViy3TD69vjh64xRtyTm`?| zOK+W{ykL0~p)LS)D8~B^R9Q+zsA0y;b|WXm669YF1nqa$VzpuNpor%8qLP^GP>G zsc#sCF!Qrw7DFb*T#McCWQ>t$GU_jp;QnNt;8t2);2xI5zd3$Ql_nEKTQ{UeK4;dG zq8i;OdNRosA^9I6I9XUtg@fzU?w%53#h6wzQs)`X+d{+F}W1-GzB93*q0 z-s|bI>9d2E!4=Qt?vPU1gdO^x=589-tfSBt=A)PB9gr(m4(RQ<0Q{LnvQE{@^ zvdB09AVErxN-q03BY3{Eh}H6eo$-8R@^i7f@U5809A zkgBM{;Py1BI?hmgI=V`loT4en4T`auP$bXKb4%ejBacp%4~5eaUx_s+Nn2&BsP**e zBJyhk>p^pT0!A7QAY}_QI8Y@-8+5Rk7CKlV+QPwI_5Hx7ds9z61URS?nk8 z0_N3&86!eDKdF$OHvG;fFhD=ihKxLoQ4ZKU{ zb8-KcUn3s)UsSd)wTs*H6Xx zlE86d5=vD8KNL(&2X)0w(rwybt!fXJlmJ1GELYT{@m~*#0kX^l=PRIPsfV0AEf#ya zJfvF%57L%nB{bJGsq=RWJm%~(c_*#QKVCYqzWrV4@&{%yrDRhja&V-2!ypNNDOw#) zMW3!hsn}fSsI7t*?T6Btjm@`wk=lYY(JlwQWL>z?32+%WKPxD633#DSf_c+w2*R<) z?(@K9l_ylj$C$T0J)M1LKE~piHHj0R0%AET zcg!-f2DE&JYBLXcCwO-Kc11y#p&M{q{kEc@>+lsgufAKMkX=9yw}A&*m-|H&#eP)f zxFW`pUk@LznZu3>xd%7ggf#GSCu8Mp0q(l%y^UzO^^YS-7hMES8DZp3Cfk1wid&Co z#_*c-K&FI+PjSmB;XIVcaei?-9PWZifuSwip-rs;-PZ21)_|I(<{o%-o6ORz=Y`O^ zk&Lavss;VZZY^*Ba8iEkUIcoZA2{d(fFw*1MS!WJ;BeMJ^()+CU@t3GzN9CVh{4Xw zZ_7ei1sD=WfgTkSW})C|T!nO-`ds>?w4P73QqDVnjm>57f>jvMCJY1#!M` zp~T^jLDDj5L+|1RI+1gMDGQ@Lh~A_FLTQ7T7dT6<9k~}>g(_;ZPfL5&vd9^WEMh`D zdMW&D3GP?P$$pq1&)278v8s9!yc~O_h)=4jy>z|ClNoGhigCrL>t z({{-qzVRw`_l-Bqy10*MOR*3y>yHmjCLyqvC6=cov>04pg4HULm(^R%#=7ghY>pM{J!U91>M&}U#u9$N zpwXFRu1k|BUCg)J{rdO;-{*i+4YI(c7+^}w9hAhT{POaJ9>f3oksmqrYiO(I^_5f| z4Q><7CpzpmkdQ*DJb2PQKK3gcxW5GHZC~1VQ;^38pM$%&y)JtnyNfs>(f94UI@>lK9I_VMBR^)&Y3Zl;bN;Q+wb|8HL#|G@6kfvofJ<_@$;iIW+gRBiIv8YD+Q0jXnjQdTG z^eI)Mm!XGahyaL*Aqpfa`P%=gfx?2D2_MlhsS*}bQP?8_>Jzc7&O7q7zx=d|e{%H) zL6kPyLAvXorE&+RQ3y0B(SB9obm72RhnwqJ%pqG5M3y<0 zL+GwmW6T5<{qglq@WFxJh#GmyX#@b;j3T-Y-)Hv!J8tfx^lu>Z`JH=4y47k6KMU|1 z;=qA;{nv@v=?{`yFfXAfqFvQFPnw8&8`mzYQYj8eJ$9{FHO;~^vc(7`q3@KKEuMCe zPh-rVa{ti?tk&k;m4_Pnpc?4y7`~aKi_%Xowc8NqglI)2xY6SbKnazF1GE0@m!V%` zov$n;Yc^90&rFX1F9AEuN;HOJpKMPKMs>zyH*V@l4)=%U95uf5sNe6mql`n5wZo9)^@qw=v zPFz_UlSdHFibMU65z9R%F(V2jL>N*HLlKoTM*D`%OIL4H0^F?3F=)?Qp*bfA2^1y z4mh3|v2H075x5D6TTlpFSS%r%UA z@J#_NQTox3aQ3QY@nHo}xdR2RemRP@H=hxQhy^KTMd&|G?Ur%fAt(j`F9iQ*^2m+&va}4JxrxBuECvZ@HX0 zj-n<`Hs_g^a8r7?OGs*86f+YXL|C_K3}xfQ#%5SW^F~!K^kl*#Z7hv(xAlw8(sPfS zrbh+D?c6KtBFx5GkU_9i79%jUB$ES-(;qWf)$s8ONE>T$`-((O31e%F`0*qt_GkMHdnp2K;1R~&%3T&$qdKic3K zyQrNt`0F?!8{)*3yZn;YpV;&xJ9t54#AIa6EKIDqnJ#oi9)y`BAo$nw3}`=Us~Y$k z;mxf5;uGQiUB~=HIHZ#(oh7>Qq5|c&iw+`t*0n9qPt=AyY5cOU-CnnmJZP=SJV`zg z72J~nr^643;X+)uG7@VHMhR}C-f&N^j?U~)f*DkVx-pG?EM-38f4GztR-$_m?7iCf z(W0z-5-Lps&9+UDVEJYX7Gb>^z@gAdo_#AB&U5N{Ar7-foA$BOaM0TuDWU&_jLny3 zNRTw|LvNs@#|+nv-R&tStb{d8HS<>abyPzx*kvWl8Ah8bM5O9dQ zb$0~0pUVXDw~k`NWW(4l!u&^Y3&#h-FY#-^p_s7$q_wnPMbHJC3I2{#TEc`94ugfPCKr_ z=~YnLyj$MUGDe?MEEP1&pX6tyM}*zyH5s@Guu27dpFNS2rOX$LWVS#zXnvR-z^&`m zPzAT49~~ThWJRTVA59e>2-2u=C(u`)r;u|7AG21y7BG%nr3z_6bD+@9+~=nFbE=6G zyG+M94caj!sSKAw(DPw2gaiVLomRUMP3DH~{r&K=>X(VAasFEX?3WCxlB&{ghwjt& zvd}cD9tmBek`8-fk{+v5TS1992r9B$T&I}eY1jizBLpeDFbly6o=&8UeC0!ym!AbeOWP1bd=LhVwS=@Z;z((BLRa1BW>HsYoV!MjGEHVmcFVm6Hq}=6GT{=!= z-ZlK*o1E$qnV_x*(M?7a`vTONV1QsY=)Md%wEQ6V%SoG>CtBxQbfTYpYmt)-~aR539)QdPEquvSkaV$k~}wY7&(+k{K)2zwXC7(Y~eN2_)D>G zHdmZyRAo+r*R9FDZI5(xeSKvcsmGQYB4d@j zOam}qbEzjrRDSts_#h^f96FfNMdju;uiXzbgOq3@?SEcZwIxY9yN(;D%H)@Iq&zil z3i`K>#BnX2p9%ptmnhMZXvMLD-!8G?1?`BQL z5~{FNr(o5M9fBbpt}TDjTMcmD(@VmuBIo$QySv3G6yG=3MotgH>sLo1fJ2P(wFVe< z%?7d8ySQUBC}1q(z=Gp4b0%$u-(z4V-U_udUSYQWZ_Enh%(8f|=3PCVM6_OE{vmyd zj5lN-D6_Cq;OWWj4Q|rm>e)*kW$)GN1HOjgcK_R+0E3KCPrD;bB~1V+f!0~PEbUDn zPHly_BuAbT>uM_K20NR+SYP|jwQ<3~^Cd&X#EIIU-lEP_sxe082)!mk(5@IQBCTD_ zH)0r411guxFgAZ*>}WTX?iq`J4Fi1FvnuMB)qzGmTLP|FoA_jXPCjvqu(hD8MWGWF zZ^BYy01r+N5Ubq-GsHw80E`X+ z>>G9i+7z%k4=zvu;*BBg^p8JICXCOQunYNAHvYt|uUwHm?Y7k}X{ z*SY8yNXT!{u(in%Nb@xxADX~D2~EPW`0MKuM7G=fSYES31+O|Zv~~PbgjX15 z_W|C{3d|jH%jnir5>^=_JB9U0X_ZyKcqHG|ou)_pf<6P^KravXUgJ}p971UeTPF3{ZuGafwSUXT~XQXP^hp{oxP za6BHv5qWq6l)3>0?0A?VTu)Uep{uDN+|H+XrDa5MXh1xM%Lf_wO3PvkjAfl)KH3I zAS21?0A4!w{gCZYeuUdHc7EAs8VBvA1G$elKs60xVN-eFa|ZA^pu@HBi1GS(p2=pU zbSoN_>!RrhJxk@HH-Jk;$Q62692T&#?Dq(HBmg-sGoqW(wQfOONP$IjVsK288-ECM z{@C5HhY_FGC%PT`T@0N5k(L{K8;+Wv$-EM;nF2kZN$vjMKfP=6F6e{`?3V@#7I3*c z)=2~IFRfV!EUD7Trm*<_zD<{-R5^`=LOIx_S6whJ3w? zVAS-ggrs_tJ zrbtj=a4|x<^t0~8Fx?8E)QX(jEkC+dNNru67~9nfkY|0RPC=KdS+rXz6t0LYy1QA} z+qfI=A{^hMIk|yw{DfjZs_0b`WhjG{IWrhT@o}j7s|nPA4lao1OZq*UY=4ESi?;Q( z0pLAOEP{1|z8vyhx`8BS?8Uz6>uS%Uiaqk;axaER_ z^~B0qi}dbm5G43jHEjCAv&hdi|vgry@U+hgT` z@q8?-Z~jshi%0$4B(Gxh!PgusZ3;k4__SEmcR3u`#|Oe#dixHY53aNWZ}E-|*Bp8> zYv5+?0H~s4|EU&Ibr^ELG+^Ca&|9>?qt&P%l>YWm%bt9b$y4T3ovRJEZ=!FDrs(d! ze?o041LHa@Wn{~w%5e>>SQ4;5ZVMG?o5wPSWzE~DOn#2#+QzXrPCTxFqB49M+U3CN6P&Y00Q8(=$%9FxtzZLF92K-Gr*Kx+Y;;4qV6v3I zq?iYQIcv?v+A7^6Wf2<{<*@+)N2}pJBxUIkAe)Z2-8xRi%Qxw1@G_>mG3ySwVp(F^ zukSNVE6K(b&F{n#)g&-gd`VqbqOp@(hywapyXQ4z&oP%hKFkAGxT9L;n4W$u&;UjN z?TJ3Ed@LFIPvMLGv?n$frS@?niuv`Q+Ch7K`t*|yTo9&(Ly>&;G{S{qNyX%z4rdve zqbXGqoIF#3&VVp#8Ja_tftacc>8NE8QzZkPs*J=?Wk5$EBVnvEY>rY!F_bdWxyVpV zMaFd2GM;YWLLPkmLfVc)vlR8)9TEWgj+yw$tINY2GQ0~iJJw)yA6IBIbHe+D>YEm8 zP-v6vA2lMVLBXGffOS0izH|*po(z?7wsk(eckh(hYc-a>?ZuOHFS(C|B{{UZq{eB; z3*KmnQ2c1T4TG34hIg?KT~0L=;VOjMuk*94bN}KeFIG_H-K!LBo{*cGO%^i(!klQZ zjLUsSk?2i)_?-Iz^7qnFqB?*PvfhGY2(?Pawyk*7NhwJC@L_@#%<|@>xi|h=B;Q=9 ziy)|AiG>XN=w>2)zOq1{UX}WectUkm7`42xFz!3zup*bz)gkX*ecYZ)^n0b>t)j0A zZOp~mPQWe^qTx^!!Hi#OYA0iO30o0r?q6yy=CA4+eA_WMb*&-+q{6wW+@tjG9N4!` zriSah2S&bsc@x?N>N;(RIb71twGAFQQh-IsFf*hkklwfDZL9Tdw94n4w6%E!-%-tM zs(?qE%Dn2=bt*9@^16nth^*bJx%#s);IRQwYP;;&s)#TWoG#J!7u?Y(RMEM@wQGnN ziPm*)i?@)t@T4>OyYhBY7TppehsI_tltJ7qr;Pg%@FtT2(JSEj&H z+8{LeO{2q5Td1w>vLbhZ0UnU|)<>0!S^*V-ayUhU^nauW0KkW;R1r4VQTLN5v3qW$ z13geFd8JB};lbjNy*r`P$)08)NF-;Es0zFzy2@I^5Jpt5MHR87p5}AD*NO%f(PK!r zQMwysLcb7ueV9W@8`0?{()1ly^i)s;_hd+Cbf@C4zxi60HVd%ycrbMHY=Uv*i{T^0 z%c0D-aIS+1k5%}x{K$=s2z)dI zDYhh!-mw%4)B#13LlI?BxX=yhBU{(=&k{z0KU{B_3*lI94fW5+dZ#FYo=9WoNHr}Y zG4+j9!PgSDWpM(p57v#`Llt{3-P-fjB(ZAn(FoV!l0T|M=y^qzS4_pQ7~o5<#b{EV zo{XR>a`{c9&X8mnPVx_ter)VZ>t>>hS7k`u4H1y~t?lVcwA>6CQKe%J2^;{b5ve^> z2~^^VUzg(|olw@V;&Q{{+b1`gqoyd_piMuChWeeS^9Lt>QPS|^>1!3jNx~nH64MA(pm`7{z3>Czbv{eD20)~~RrwZMTn>AHW>#c_qHW13GlvZ7!F;%{**L+B zo(ZG8r)$%!6n;6cYIGeY{?sK0(#OX+G%;mGyugFXg$Rjs(BukXQ<`WJDCsyip{%sY z8`2s>0H0fh?LFzH$9^XqB4UxCmm<9-lEAtADP&#}@mJ~zH+zLXGS3t}oi*l132dMCmK z^+p0{zeRUdI$UMBe*^&t2Rd$A0(GCU(uInG53)v~TUiLQA`mzjodYqKUx~5zF)+E}y0J-nPN9Sk1^K2PnH+ zxVBeMh!7!BgBzgFzR7&yLYADX+`DvR$twgck7O_jvE+b3`r(qGE|wg=w;v)2s$$9E zz5Q_hc`=q8n5G5tFl!G>9y-$x)FZQW6WgkVbo)XfFy}i321rWZKX{9TLwMpjToR`E z@sCyWkp5mRMbwBuZr4Ew?a9o!OHj)ki(f*ZHu^6kc-obG2$UI)djVbwPgS~#7Ill} zoWgq9JGj~~qP1`mRw2_Hd3`0(>WIRZJTTD;x)^P2Rqx1$?%#PK<-E3LVoRb$6&7}& zSDAVCYh>GWuYO${DzaQrc9YKc&?3H{Dm;=m_p%%pwc`=h<5PL5@o9qGO%gRKHu5Pb z0?y<~RBSg%kt9(uknokdG4F~saNbDuYmd|u4Vq!`iQBzoHwS7^CE=B?{jdDy z6HTzO8?<^~Qa1ytNvJv!t&&Ky>v4n3*Dd%n1T^^*iVCvnShsr!inP86J@;rlf|4UGQ&`>mDhf7t3b4z63SgdfZB0^Of z0%&w{VfAeXx?bD^&UPNJz9mz=9G=O@%_*Eoyyk542T!Cj@7LQ7v=ZFs5Y6dt)cXH? zKM?`~-VUJ(k!CIHZxv{wRTE-!+=e6A_UG2(0^g%VT|AJ2I*_TyLAyPv4DCWx_iXi+Yh4m$G%N&|5m#1<<+`$#rOTc;H#f4@f^qzGOD@z` z*PbRk!Up!aeU4^+1bIZ3WXGwIC|qM(;kr++j2m$U;Q*|;K1nuL=(GEX)ke%e z3$tt0D&{SFOM<`R$%xJl{$p9LJ6S=D=w){a`3&>X%?g;5`-o zX>}F51_6FI&Kem9Gpv#pmK5gFJfG1U?&}uiF#x$hM!%u)2(oyCPgw*c@R48+L@r*o zrkUvDSlnDA^m{&?4M3k6NKOV4|6MtXU6{ZU_OQBb+BhoDpLq`MW#^Mm6N~3LPBy+3 zZ-g^ob#FF@G7(-(y_y+U$Bhul=R88Ih;fdaR_=-w{!+pyKGrTs_Qp1d9J0rl>+c87 zJhSP+;8IZr(g^nGG?1%t_mMwg)}_fj0u0f#h7l<9Yc5+kD_{F^cUvcf!8VLjC$_-@ zt)d2F8lV;gQ3Cro{o~-Y$Y$sm*{HKz;XADgE|Ra78Qw+B@QIRGbmv2>IP*U?81UxY z5x#R_{8o0Pd+rYtqm;tiLj8zHKKX0`-in5T3Q5S%EfULQcj7Et1g|W!3A*P4Lf#ZZ zIG05<1o+u`i>e@wW@3^iUMWXmwfYlF=f_%k%q61vnb2Q~>ec&+?$hlTw#9bX8wtZL zh}!h`AMDeih;ex^R``{>hUcu7@i8$wK5BE*FP)NVrdpLX{o=A#DyRsv*E_U_$_#a! z=vTT-KqS%n`=Q72t?i*QqsIB%{LSzI@%h=XXAm$myV8#7p^_G@X1gj!^C$u*(}wL@ zzuI?ECVi~&pDCIgDZa|Y%Ud0yB~1_ib2kMOl9csG|0NPR$2(e59`cHEXPq&C_|!_( z18^8SJSspztL1x-mhg?z#Lc87Wi8JN(%jZN*Q6w3I3gV2qxyw&ZV&TBAOzXK?7)n! z6QM9wA6A>yHi6Un+z=~3PMMbCs>;wLBJof9Q~9m_)pwRi3u84idEf_)3 z4jmtz_}reT;)o)uw2dl57I@jF3F8(K)*H%v$~AMrB)!u3G#PR-N3R|MwDe4GPuq2D z0Bh*uH50Vg^Ca7PNZ&tW0Sd3eQQ&I?Ud9|#)$tnPC`6j%tQ9B1>*7=y(vwKt`95ka zwDBr_$|nLayi!M?!7|_BA!4cSlM@X%M!9;t7XGmf3<5+jqFn_z=9-x@&BjnGF9IxN zFzx#|R#wL6EkrCQ;8?hg`$pyLFtM5DaL`1&c_jqQ`I)KJ__ew{q2xYjT+s7h0kS28 z8fVskdWzIG6_nGaVi#dJ;@4vRB_QgMHczXg{pQttNO4K>OSg8 zkk#`C4gh?C;sY}t6plII+(5IOqZ-5`w}qIA6+)W&2SV9-{3F`GfRjQYX|laJKm5)e4IWPgJDW4nrSq3@{w8rm5@@_JwY%>zzRZ|t40-W z*O^6daWt-{D9xkfF~FmqrAb10(M6h^futU%odZfTYU;+v9JisVpbB7?+(w;sVMn1Db|jF^|}7I#mOTR0+xcRS9u~rzHuT-=M-5doHg~ z%oFW}<>D~YcOq>?nw|7)fk|erKQmMr#+g^}3d`6sz||L$u{$b-Gx?$JGiG8Hu$85UKoL+U zPYI$LSyZ7@ERX`&g-I~LY~x#PM3U?2itYJrgv=1<2oMgybs(LCBV=t3wG$Uc91aaVwbKuKZFuibHk9d8Tw&m597{yVcOW5@8=>9Wz$47V02uw2(4O_kw znXgHmzWI@oAxu3GH8*ot^Lg5f*cU%ZiCaH9?9KdFaLaO6{OMk7r zdvb#01O|k37WJ`aJp`swlE*W>xw{->5%1KOrNKs(Sa826F_qvs1h;u5BT|8zF#1YiTwTr}sZ`6Q1#5yYB*h|%U! z@wH1GL48Y{^EJQoQrz8nk&<{qly`V&%zMJAWxJ17@ry3~CibYme!)LZh~mJI_~6g6 zQ>ABh!!9NkizK3WkpcD3F}doG4bi>Huz*y_DU!Mt_?g&a$66|Rdp{$W44NS;G$DlF zc0=i%e&SZ?C4l@|D%CVWQS4~`w~h$7(P`@dG{{d#*Qn+AtOgGhRXkDdC>_s`;`aBB zHjVPZP|1>NsT1glY#rvR5Re~(1yF0!U6lZFJ937vHHJ6A2%8ey=sUKn*|0%Sc$&d9 z-;$1$6EJ?qDE^U%Fp~M~N*Pqi#z(42Piec0s;$&Xzc%?(;+JnfiV$*Qj_^+&S3}*` zO6mEt?&ot?mDGNXwF?>2RonwefaWQI5T#2c#zVrp3%j%lRJT624zvE@PSgPlF9@0XQ!YuQ^Kz2P6B*hwnKMZ+h;r4@Ks0o*zm5|f>yN=7t zF8Day6?xQ~@vaBPov%y4T|!rp)_aq>EUhNIN_?(fXxHoYKT&L*ns(>?r?;am^0TQ) z_D7Kv%2df_mB0P~g&`}PH*2@mLbovQ!Hrcrf`h^=#j*Ed&&Qz5RrtfT|51aA1u6gt z3~|3~hAu+kdn;9zK&>NA5yxHk;ZP`3)3#2_6dA)T(?43OnqA#E*XyTrPx>}<05kD{E)>04F;`TT_;!v&e-Cpt zYgG)ZqiO=v{6y9(o>LZR)2y)<9NGSK`&lO9i%R2&nD|0cu!=f@(bxl2J2&aTRIp!l zKiwt!jnKKMPwO917#Dbw3q(SNs^@MxN9@|YsH~2@z1-hVGz$y$E=z{?g5$*b$`>og zA@aN||4F)>?Ed~DqvG|>fEOJ2FF zsxnc?1b9#hcOD_Dw10*@j(0Et`9Pm{>+(lf-w}Li3?#-gFLyJBZJCeP9A3<(A_vu6 zd#i?s&@Z5RrVLB3!M$tfHmoI<42Ul=rWM@u0b$WKe&#O11-*aLG~&s1(}{!prZ>fP zMLJ$j?#$nJiUAJD-%x6gYRT*chMF%Yce4dGZh`c}Q$+2JBnO7_pdZdAFjFR5pz+3$ zSI{PpoYqNq-&N7$F*GgBYj>?afgezzdTeivaW~PI0}#IsF;b5p_usX!y*m932^1q<(RV+IaO3-9@r^Q=?^q{OXfkRz+fTJ?<&iVfnXjHd9(kmE^G*z_sv}NW`~* z;;}e?1zAkVMj0_t>?v2XL$@KGn+2W-%|PBI#=YRJSamk4R4u$3_M~?(w5aU=h*pAEueds5{O!aU#4p8&V@mhE_C^#q-41#O{}Sv#mlkG4!7${ z%o*8>Q~E4{mDlOOY5ovyH!jINhh!mFhfGkayskEII?WNdU5EC|o1}_6y2m{q>Wikz zdK7P$qJ$ITiB5D3DgnsrrtL2CYe=`-+%7jmoQhE&Jx84=@sO&_mQ)y3)N;TAbM92# zuwJ;+&)Xs_DfQ;eR)#oqvK?cRJLKPj){{=a1*~E{?4R+kC8ZT!xN1A012I}*PDWfo z*BArDXQ-T^nh6VwQ4px30+mG*!y)JV&wsafJY(kBt4p7gIt23`-_}Z>ksJUSj^(P&pfIXdZVl2r4YV-UJ{*m-6$t_%v z(?Jc$f!lVjhquB(nox$%z;-&_UsWpB(_|R{K$zH$^`8M!i&!wetIQldDV?;M4`f*Z zah@D-;EFKFl%bXL0=BW`QuaZq!}pM~Ci&91%2EK6%qWyuIm6R$;rGD)waa40mZKxBiS3wLRYh~?$3WcZe_Y_hEWYInsP~C)NuR)t) zbvFBn%MI&uc2bsNHI2@4Nz?5Qd)%Mf!En4j;CqM)6CdC>B`x{>j;g{a4j>7-J zGw`bvsWt94SkPesf_#W5KRXQ$C_;w+g>pYv#Iv{>f@_!{%QuMZ zrHLVux$UWJZW8hwjoZ_+e;*!EK-o2G^)<72(lUpkv$ohfSMFB_bx%xZ$`3Awn=w{;?!vUFg^@673d@LC4^X1pSDD zS5Glk5_waw{7AhQ6%i=sB_p0r{2wX$JKPJAU_LrG`J0VDmAp@jnU+9rcT&YL+I^^Q z6^o>8hWrZ#f?R7)KOhejKBQh;>@#KHWKtYXo_vj-Z@a1a!%Zgtb%8Eu9>kHm5hqL#WsmR=wm0G^PrYHzkM`wGrMNK0DV{!&Qe>F`2^Ku+J* zR;(;a{5c^EUB&hjq2QfAMLvR6qBq^EVgx+N6f@b{{;mTU#G!Jc`$A8f>~I9~_hTuc zsTCqDH6M}FstwWyUQvRrIgX61hZ+p~Og{?`w3?NRrGP??v$32H+4iXFIE0QcZCf|s6@d3QE zcWAQ*cGq5$(Qr=`7M5ci*&WdRLNBqG{0VjCipau19Aq3dXyTBMG5a+n=6Dm=c`aa< zhm+T1Qm`jy@R1Q)UPk9G(s)eui}7lV`&i_qf$|57;5_ow+Pila8(GnooI+-C(gC|X z0dMI3qtTByKyTO~Ahxgzg5GMbXg*K^S)zAv9UQEP7@YNTBe}k69}08|$SFV6dXD46 z54wj2c6cge2Sc)9!i^4A}F>0ho zOdoOPxe<{+^r;DKq1dXrJ=+ATm6gUAkJI5BbkX5{Y)s67FP7d5>)?Hah7h8#Bq|>( z`t!GlzVS{=9kIsq9dU4C-pXD_a2h#`mzDirfFh;i|F4)oWs}xJ%u+}{bL39Vz0=N)BVfonilZyS??x)eHE%0G5P z4Cu6zRfVhy&(sS(p)=^pU062(fhF160qEpT3^k47JkP$KqhD*VdgmPKhc*;aI!0;* zM`{4tIm304!UnUCLv!^)h??ku7NNMLPqZC~F%|OlrBz~77F*J0wc%R^bxAV$cjZ?+ z>wU0bE|v`vH5G9ppilxcqhbPz=Lr0N7hC4pmLs;?tR8#ScsYCn(Ow9Tl0Dj(gnvBv zq%q_tPVizp-3rE+5r>h1u&8C3v%R?OiQGx-@Guhd1oRO1hM*h}HF*S)gdT~<=ys|T zP~O7sZsk4aky(QfY<{S_!RULNXp*Ht#()-Q7b2+}jZp4Et1wuWKGq=b*Ms&TRI70o z3zDvItzt?#RSE4kohxbyOy`O~$ZJTF#c8~w5y^;njG+p7`150?cOCab3jt*>t^j;H zl|=bslT5#BA6#4>qB|4)=PBwVTDq;WYSz??%?7ZCOy31^_|A2$zfQGl>lE^-bB5JM z%lN|w$6!)L76>BR>Df_#W!^qsb=%&JFvdwW>LFMXmtlg5HPj!Fz2997JyDGc$Y!;~D=-Wn)`?u5ob+6SrMA zJXzPS=}#h{g<>}JM*%GJ|JYIeC?YP2dE#*eU#j8qlrBnC>*%Yt_m=sw+RU7_KM!kAc_0j|Jn9C1fK*~44Id3 z{tQ~z-Lct9dx~HWKFBB zHd|`FAT&-w)1 zDd)dU(_P>rCupgvCTmiQd2UoE2^~ok)`nj6v7z3F%EH8#PE3!7AUpn2!3A0k>0ufq z4M6v)+5^)R|7V-iPM`YdJ{j(FME+u@I<$C0c15j=or8X>H0P)CR}8YE`!qg3ynf(A zO3OXtwkVIRj_18t^?qI2C%OE(yCJ&`(XM#C@DibjPztZ2A@?Mcfd9%Jh zA&m3odztxZ4?gu=uEDn-J=c9O{GyD5q2B=W_g#p8c8~LJ>F#AF*nR!)!5iL}b=>#D z-Q^uEeY5?DwcV|nnT+meX$(j$T_-J{#c>a<_%Vn9P$1*S6qvB3G(0~@-x&^v^FwQZ zgK;P<&T#+PwJ={=p*NOTZY-zhjb+A~W*2gKKvE`4c9y(gi4aSASOR3p4obXGas;b{ z2uhwvC0Z!CLP^k#5+ERs6fr^siXV6i3!>Vp>p<1q8St!W2W0 z!H^`DK!c#3?u{u1Y|_VARr}xkN^?_gaZTw3#U}mEZ2S4 z{rx~ZB9*!mDy33cxzSDfC)d znN3(&rVtDmGd5!|f%y7%*NjV&vq+kT4hw27|p`uh(l@hgH{LJ}?*z27A4N zyk4)@D}-tP6Hf4n5hDgH3@H!=3S}$?!zx&nF|C_-vs{!|EEc0M>T@Y-yHKy&r4Qn}|$ zTenB<21?^aMuc~r&D&&ZX>oCpp?4D9!#SWJfJG)i%C$=Cb zk{nfz3Mk955r&2)ni^pF8|UbVf<^KK$rLwyKmrAlCXnpRI6*Q4Br!muMFfgW8bE<4 zPlgCW6Ec8uMQqZ8oEIb^iW>}R0=+>+f?E|SM_@;EjttQ;=*SO8OmO6fk0^?wXcEPe zD1M^gi9$#eI46kW14Lp`bYNQ}QH(S(BBW!G5g;Q!Ms#3ghs)+Bp?E@wCrt1}2%hMG z6G?EQ$O$3%G;zWSC!Ba8!sOIK9%!|08ppx5Ey$%F6JsYkIp0@GuK%nl!qP;y*~5(& z>>NgBRcF0}JSzV>lax@|PO5q+h3G&iF;oA2H5 zD1FN~&Zsll{4ma_-V8o?;33YKFXN2r&D@QDue+oL{}MD!0dIavA+HaiZD_j8CXyy*E=iy_*t^S|K@ zQgh+nbTWs@rj0GIxNw{iLzWlnYp>;~{cZPy<9LqM8^;;*Szgeh-ZrzmkbV7{b!gcZ z;eGV7jb&c=O!1N86XnRzkt=iziXzI9Dvlsw01_|&LIy*401GZAuq22ph;Rf5DSUur z1xQTb?rvjFJQN{0!WAgsKoXGPV1q5DqyPy} zlOSIZGw{j6M++Y&e0WsfR&|^g^z?Oim(f>W7KQ4IY%x+nMpZ;f2>@S2rSc+1YOS?G zQKYAc5(++ixkw4Pu*eSGd$GlcaVI#@U|8|BB)Kd)Fs(olgOUmqL3Fj&TA_Hk6p>Lu zaf69GArb^4Nr)^#1PLNV5CMWnke?>}bn#Qg&(9AMKQH*{;fDlIDB<)3l7|Wf=`> zVu!2jE-g-Ay z(Db+I(X2Fe8(M$Se!kb-`3l=Cv%J8YprVN$Gy&5ws0p1WhBQG$6G56NK@&fk*g;ZJ z#T7LqkiiIWaBy&jpy2{nGVuWsE*~`|z@+Qqfe6lz6d^jk|KOrdOEc*acmWTrC=vrB zh9LSvYd+|J1Tmq<@V#(j9WZYR zW)DhG=Iwn}y_|vBgI?7(?l}(xL6G}E(DS(OI__=l#9EJMLGy(RX0?qY!uA zb5+a!>pqz`4&Ucqwq1{8fy>e6t!oexsb)397~_oOKG!=TY^ke{0pYaO!+wV;7ml-N=9D2y7 z(xe*6Y#)Q2zIk(7)@YGr!4A<abd` zh+Xk>1&=0xjzL%WsG0r@H@@}nytPI>HM`}F9@^3xY2H)Uk4F5*C-3|6-mjI`r!@1J z@#Aav-cSqgyfiv$-g5i;HE$a)?+<%lvfA_h6vp}DeHDMj_(yLVVerc_jK11RBre-f zy_q`f_6E{nQp!B#+bQ2_YNwUi#y))Tu*PnEx~oTX>pEH3Y8>AJl}vwP^+vdn(ktVNy0_mfu`n5xG}{-kQRw6xJ!$gO5-c02zei?Ru?`LzcHY96#swH`kJOD?s;JYoobq&6Z+xpgK4*dGt=D~Ms zJ$nymL2IRymd5n5TIuZ_CX>WCTese0Jue1=;OFi2;%S* zQhx!x$9trX_s9c8?ZGyDlSy|8AB9l+{}?Ac3>K9W`0-C@Sy7>! zdrCA#ra*@rM!xryh(?hqa4Eb*!8vz%cX7FC$k;9{rWo#?Q}CYqopCa=q#%U=;8j?? zJZXh51>m#0fA(}p(pbo4*ONi}`~k?DwL*-&l21EviK+q>#D0 z4pK@wg}T!rr%_}WzS9^jlEK6UsO6^>zI+-&GMKouY*XvA-#c32dkSGC3ZMHL`pZn0 z5PTFu@53ShIGhR+2?IF%`o!DEP1O`^8QrbE4^EqqVg$kmfkJXOOIyLVCi40 zq|7Fh4KqdxnJ@GyYemX?^{>Ktt8kZF+WWnuB|Yz@kV%tF#UAkmx*=n^~awS`saIXS_P(ToKc2v4gOgCx0PK{<6ovsyN|J~x+g@gU6mKp&~ zu+$sW9#wIM{942WS1_S>Mzx)`#s^HF(_789EX%tyX&YzAya6qX3uZy6%xQ9Crk;)! zxOP&P?o|ZQ0?;vtiYBd*HZ_&DSDI#bjn1saSf%=3t+bcfQ_@@QIqg3!8)YzWoNwN8 zoiEvEFTLaMXldU)v_I&S2~zY0T|Ho_V~|=-F{G(jLd6g5$spgV{1!^R@`4Z8X6lVY zk8QQ;RiNQSAgk9FXLD1!0`L%EkJ71%lP-*(-=m7{|k4G{$BH9 z=zaq~@B=^a13&OLOMhTy!GH5+p^;x`@cx!J3(hy>7aGjFM&FORMsL6IYu{&Hjnt;U z;Rb({U+4jYSq9U8S%>LISx4%>mvJ2KXzA~_aD#bAOPg}^mFm0H3-Z5r&y~v5SE~Fg zIr<9q)K{n&PBEOm6z&b^Qup8AFVv;KS+~Wo!T)mTJExXj47+>qzo}1oYe1J`a9#Q> zhVH>^Gj(aJuB`JOt={V(tDzwm_~aQ5GGHdJr#>H)L7AT{_>gWqNE z-E-ZynZ+f)d-+}7oW45l+rOX;qQXbZ&@qS#9DSu1!?ocJI0j7-G=>KkL45xAga2 zxNCIRsk{nhDg_qs)!aUB=W;sVc5b}j{ODq})0m8}{A+-tR?&aoXs}=30XAm`*!dFk zwxOM8bubYZlO*6yyHAsj-?^&5ELRkGV{KBkWSZzAgGIw(T+sAm-YreLjQ(&j!MoEf zGPuuOc2$8}y7#}F^%ciu-66p@@6H9}ZCU)tf%Ml4b$Fkx4R!FS+J4j<>7&P^YEsrQ zy&3PnTIKg%xY_!>4Y#Ph%<_HIqu;z4{P%+QKF5I^_xIin=qWeH)p{$B%7xwJVu_X> ztutAT-VFDV%RIo|U+zucqlU(178*)#dK{%Um9o{~o3=0I9yLH1j=s7dy|;13<-QBG z$Kmdw@ykqa3%3oWU$}h@zgmCWYN(^u?PX@IHtKEkUk$%e_kH&@{JyL1&3v_fSL;@L z=x+OMdl|psmOFay==A+A{JQSH&->ejI=c71s68H4d;j&g_q&k$8#+%oy%{b`9ba|Y z-;m?J>$I+WE}WtE-OW6zp81iFfVg896r4SkpUHf^$6jWkf%N!skRE3pjPPCu{G{yV z(UWqI8Z>Y3o#g%KJ%ZdvFk9;q0&kCh^gBk;p$70_K)C~g8hj80!IyCv-Ur?<)WOBZ zSEX>}FRmjV7|QUK3kmG~{vt^Kkv@7}w#mU`NbeuL(QeVaim(A_|Jj|kVV7xdxv5LI zxNvd7;_{zQ;}7~@TWi%cEz2@W>73KO36|2{hz{ktlEB=J{`KR2Ed|!TezY$HgTri= z%#6w5FY{qJ;u4`48#1t}{ruO$$%44Tv8D)T*Odg`Ej?XH@Qy#ah8iqIPyARlX1I(@+ylZxi z#ve(TgmDgLTstk-j%x=TY7%P#i_yjw?$-^>p)tpCU%kA0+|l2Wjc;V*8`=0qHolRK zZ)D>e+4x2_^ysDjp8Fdui9}O!m1^|pbLi1);g->(EHiOP9}K1bc8}A~tV4w{zG!)d zb_%!nqP;29!kTvut-Y2b4Q;X?xyHlwziw;Qv@D}^PIu51gr$s;_L$Obpv4j#XyMaD zM~fyWPvuouUiGP!Pi=p<(DYx}xk%rQzI*p%u*tUX`$l;C?!Uj*%3591W|mP(vpF^Q z?YphBamMyI+c=}!o)jv8%rZ)8HmBxZyBoTKaQ70>;9q-3kN=jQ^rOe4QpTjb zb7=6t&@yui_uW_?G-VlB9%mgZzx@rnaD&+<(=0jqN+r`Pu9f^*Dus#x_1?=k%0qdc z=b=2$JDpBAXp*Bv6fJyw4&B9g(+OW9bunxyZ+rr2^f1CWUq&r9*}v-sZOXtIn_ZO&QU zT}`mloIijui9{mh8G_;UpK@aA(NJnhAx+ez&%BzbNuzg7LVf9ZIK2t=rN@EFqc1&< zQy#tPtKDA4NnzCX9qW;`vR2o$nPrsHY);KxXQa)2HF_G51m;o2p$E<#E$!XNwEY|2 zm|L#dNY7sZ$8|G2n?N!VIKPTcAIO*7^_szV$oRX=SRzRAN{z_au#S&B05BiY7nx31&4)FRqX#`q`jH%k-g_UtQKm$g4uMnFjKfzCz)`~k97c;- zZ9!J6iwLa!j!PckFk8BEu=IYu1$H)m8 zRjU8hD)Y)!>9M-i{U2GgEUT_3SpM8(evgn+N||MM%X}uw=JaMVDW#0vO=g*lyQ;uD z8qxDzlSoER6HTZu5({Z^L}emzG^f!1K3!{pgur=mAUX+!J%o`IHvXSjl)7 zRSP!BAM+*q`Zd!bT0~=XXwpbyv}jJ6caYez|Z`UEx*$*wB7R?;+ z1w8aQPI@wQpXABvOC6rw!+SF7uo$J4J`KMv7GNFPXL>#sKZJ;MLo1=yjA^m*?yk!S zc>a~zp8;MY(ziEI?bJUW*FTdJJGGjoX}e`L?Y?~;xZm#E$8odGTdvWv>j-$aTGv{P zRjU6Y?7NEKBG|o#ExLgsMaLj0Lr}1Q;)5X!VF*JgDk>@}Dk>@}Dk>@}!ok`oYn85P zKC^66N@+G{rn%nshU`3aae;4y?&E)@$AfCV$j2|F0Bby{#vTJk@x?WcaW#JwXnAIE%DZr$_y^sYl^IVG{mPXf4M7(glaXFSEy+34iO-Xr zCqz66^5oU&81%$Pjgl2@>qN+j5gmh^DB-2V6Wj{<1pC_4kPPl znI=9!0uEE3MgH%w!6pYCZhpY9WJ9#b%GVT+CYKPbYPsMrHXLT#WYh+DtK1dP0lZb# zVyw~*6oQLqjAxzqIFHnkIx@H{)@t>yQq8VbJ7={uqg*t>LW*`#>M*nO>E2BC4wDUK z*_<@y&+LA4rY@sA*3m>np{XCscr_gu7xCXcGCho}ESIpjlA@B8Ta(?orG zE@U}nEn8DIbu7%fxNDtGemb3c)bNw(hma6G`RQc()9G|Nok}Jz!T9Vqo27lsObU@a zu?3$JHUdc#Bt3Q=+3}Se0>f`gVbp#zJ=dTT=9n+@RpF1^5dwQ3e`c(cF&2$^a_Xgb zSG~L3kwP4%^z-GA=`k(g3`2Z1OSxvVUz|NHf=gmkV@kiFc zFhgvi^z&6KERiKtg|c(;E``|vfOaZm-Ae0TJQ!9meat7COC^*kltbi>Cxw*q_x7GadSR+j$O^zj!9K(s3fyj89xc&qeWP5dnSS9T`) z@@MeDgZA6=P~U36i0oba?Qv+oWgPWwZc!nD=~FGEPC0O+%XT9$_)C=11;y`6|9fXA zJ(~NTZwi%ac@%2pQL^P%eoLJbj}$510z>M^9mykgBn+t|<&eM7Pom{l{<@UlEr(d< z*N}RZuR--F4H$uA4E z27UQslfbSeSpLiy)vr8#sk0+tv4#0vXMbh1g1Dj*$5)hx`~nrq@RYl2c_mjsas27_ zHk=yFd(?$qxJM<@xBYc7anIo^>OmaF>C>;lS5!*vaY&hGfWdQgsAJF%rsyj>`Vw%M z8KZhSf2fCQhW^7>j^mmE-g4+i-0>Gmb&$|*po!YLlE7W&Z5_<$>Ej{E0{t7RoFc_n z^he))^k_aEf5jQ}N1+25!g;$>pIfI%xsrOE;c>>GVp1RFr^3!(q$zf@_a8t!2KDq` zN~vQl#wyjLLI>h6w9`7*e-yzs*yNzYjl;}L6SWWdLjsX6hhg!LdUo!r!X*Vped<|U z_ID0nMI$!M7^#yAC2YRXM}<+xWd!30ahNN$19=5;m>(P_$6<(Y7%iOI4Kdi?u7#U& z3b?^5hw+aw#vi`pFZAON&0Rgf`!#PqH(fgYw7)gFYnjEBcLucfTI=Y;fJ4Y(BzMW; z#tWKCB-Ly1r?n=GODYxVADl5$220Nk27k>0HHbqq+}jSv7P_BXH6n!|h)Y>#I(aal zzK_?-x7)s(sbd`1##i%q1fmqERIQd~Imr~w0000`0K*jk05BK|hl3)qNEpUpqPY(g z01khoPGCrz$HPgIq$r9q2pMFE0RRvK1OQ}aW{Lu8xZ=@AG|t2dUEO+SER;)#Og@V2 z^~{6)q_T$+%FJX_+4zxO-e4k3W1f=a)W6`X{2uOT{l94~p0fVpmH7#@BBbP93U3k8 zL8+&~2vEi6A@qDI#OkZ>S4s5`qU$VgC@V~a)Y*WYa?h*@oF7f0Ex<-JI5&%|E$CkM zNP&5Pqkm_CFqHZ&t+&etcdE zDnuCiP3?q*<$WNsrc%w-Pvx1Z>>#p)%dO?u@u-h)1O7(XZijGJ_?s!bIy#z{k=bFZ z#gprq4QQwDtMcyP^jsjRv^U}ksn8A}C%xgG%nwIH>l?)pTlN!u#akxCZ(*crW{jV* z)7nul<|lBMTt<4)IQLSS4lH|M*$JB-*mlFZ4^~}Ro0ZVAZ!0*>Nt9cn@SJ(4>V*h_tTl(h7`B9@p=v3~c*0z#qJC_>F!2YeBB+_mdpB|NilXsos#5 ze!1Cu4;h*q9P<>h0`1bk{qu7wZ^prgIA^TgfnMu@=F(fnhj+o2>EPHT7Y3$y6N}`( z6F`5`3dVnkZaCGZ_qb5`Pxzg&?f`YQ8T3qr0l4W%$%4WbFvN&82Ejkg0c=HBoi199 zu+7&8ZZ8wjktwah%gVU_gf*R^tGzEPd$i%*rpU5FxU(s#&f(N&ZR?KN{4A$@_P4i} zs5Y

    {sR*NKeJ0a%>I1F3U!F!xzbl^lq(|t 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