@layerzerolabs/protocol-stellar-v2 0.2.19 → 0.2.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +795 -791
- package/.turbo/turbo-lint.log +325 -155
- package/.turbo/turbo-test.log +1398 -1277
- package/Cargo.lock +122 -111
- package/Cargo.toml +32 -16
- package/contracts/common-macros/Cargo.toml +7 -7
- package/contracts/common-macros/src/auth.rs +18 -37
- package/contracts/common-macros/src/contract_ttl.rs +18 -7
- package/contracts/common-macros/src/lib.rs +31 -14
- package/contracts/common-macros/src/lz_contract.rs +38 -7
- package/contracts/common-macros/src/storage.rs +251 -292
- package/contracts/common-macros/src/tests/contract_ttl.rs +1 -1
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__auth__snapshot_generated_multisig_code.snap +6 -12
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__auth__snapshot_generated_ownable_code.snap +12 -17
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__contract_ttl__snapshot_generated_contractimpl_code.snap +2 -1
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__ttl_configurable__snapshot_generated_ttl_configurable_code.snap +2 -7
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__upgradeable__snapshot_generated_upgradeable_code.snap +20 -14
- package/contracts/common-macros/src/tests/upgradeable.rs +26 -4
- package/contracts/common-macros/src/ttl_configurable.rs +2 -10
- package/contracts/common-macros/src/ttl_extendable.rs +2 -10
- package/contracts/common-macros/src/upgradeable.rs +61 -26
- package/contracts/common-macros/src/utils.rs +0 -9
- package/contracts/endpoint-v2/src/lib.rs +3 -2
- package/contracts/endpoint-v2/src/tests/endpoint_v2/clear.rs +2 -2
- package/contracts/endpoint-v2/src/tests/endpoint_v2/lz_receive_alert.rs +3 -3
- package/contracts/endpoint-v2/src/tests/endpoint_v2/send.rs +4 -4
- package/contracts/endpoint-v2/src/tests/endpoint_v2/set_delegate.rs +17 -5
- package/contracts/endpoint-v2/src/tests/endpoint_v2/set_zro.rs +4 -4
- package/contracts/endpoint-v2/src/tests/endpoint_v2/verify.rs +2 -2
- package/contracts/endpoint-v2/src/tests/message_lib_manager/register_library.rs +2 -2
- package/contracts/endpoint-v2/src/tests/message_lib_manager/set_default_receive_lib_timeout.rs +6 -6
- package/contracts/endpoint-v2/src/tests/message_lib_manager/set_default_receive_library.rs +67 -37
- package/contracts/endpoint-v2/src/tests/message_lib_manager/set_default_send_library.rs +5 -5
- package/contracts/endpoint-v2/src/tests/message_lib_manager/set_receive_library.rs +44 -54
- package/contracts/endpoint-v2/src/tests/message_lib_manager/set_receive_library_timeout.rs +7 -7
- package/contracts/endpoint-v2/src/tests/message_lib_manager/set_send_library.rs +8 -8
- package/contracts/endpoint-v2/src/tests/messaging_channel/burn.rs +3 -3
- package/contracts/endpoint-v2/src/tests/messaging_channel/nilify.rs +4 -4
- package/contracts/endpoint-v2/src/tests/messaging_channel/skip.rs +3 -3
- package/contracts/endpoint-v2/src/tests/messaging_composer/clear_compose.rs +2 -2
- package/contracts/endpoint-v2/src/tests/messaging_composer/lz_compose_alert.rs +3 -3
- package/contracts/endpoint-v2/src/tests/messaging_composer/send_compose.rs +2 -2
- package/contracts/layerzero-views/Cargo.toml +0 -1
- package/contracts/layerzero-views/src/layerzero_view.rs +1 -13
- package/contracts/macro-integration-tests/Cargo.toml +5 -15
- package/contracts/macro-integration-tests/tests/runtime/oapp/mod.rs +48 -0
- package/contracts/macro-integration-tests/tests/runtime/oapp/oapp_core.rs +170 -0
- package/contracts/macro-integration-tests/tests/runtime/oapp/options_type3.rs +154 -0
- package/contracts/macro-integration-tests/tests/runtime/oapp/receiver.rs +338 -0
- package/contracts/macro-integration-tests/tests/runtime/oapp/sender.rs +435 -0
- package/contracts/macro-integration-tests/tests/runtime.rs +1 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/custom_wrong_value.rs +8 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/custom_wrong_value.stderr +5 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/missing_lz_receive_internal.rs +8 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/missing_lz_receive_internal.stderr +71 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/non_struct_input.rs +10 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/non_struct_input.stderr +5 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/unknown_custom_option.rs +8 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/unknown_custom_option.stderr +5 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/wrong_key.rs +8 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/wrong_key.stderr +5 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/pass/custom_all.rs +38 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/pass/custom_single_trait.rs +96 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/pass/minimal_contract.rs +64 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/pass/struct_with_fields.rs +46 -0
- package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_env.stderr +8 -0
- package/contracts/macro-integration-tests/tests/ui/ownable/pass/namespacing_and_imports.rs +1 -1
- package/contracts/macro-integration-tests/tests/ui/ownable/pass/only_auth_env_param_variants.rs +1 -1
- package/contracts/macro-integration-tests/tests/ui_oapp.rs +11 -0
- package/contracts/message-libs/message-lib-common/Cargo.toml +0 -1
- package/contracts/message-libs/message-lib-common/src/errors.rs +1 -1
- package/contracts/message-libs/treasury/Cargo.toml +0 -2
- package/contracts/message-libs/treasury/src/tests/treasury_tests.rs +2 -2
- package/contracts/message-libs/uln-302/src/events.rs +4 -0
- package/contracts/message-libs/uln-302/src/send_uln.rs +22 -6
- package/contracts/message-libs/uln-302/src/tests/receive_uln302/effective_receive_uln_config.rs +2 -2
- package/contracts/message-libs/uln-302/src/tests/receive_uln302/set_default_receive_uln_configs.rs +2 -2
- package/contracts/message-libs/uln-302/src/tests/receive_uln302/verify.rs +2 -2
- package/contracts/message-libs/uln-302/src/tests/send_uln302/effective_executor_config.rs +2 -2
- package/contracts/message-libs/uln-302/src/tests/send_uln302/effective_send_uln_config.rs +2 -2
- package/contracts/message-libs/uln-302/src/tests/send_uln302/send.rs +21 -67
- package/contracts/message-libs/uln-302/src/tests/send_uln302/set_default_executor_configs.rs +2 -2
- package/contracts/message-libs/uln-302/src/tests/send_uln302/set_default_send_uln_configs.rs +2 -2
- package/contracts/oapps/counter/Cargo.toml +5 -6
- package/contracts/oapps/counter/integration_tests/setup_uln.rs +1 -1
- package/contracts/oapps/counter/integration_tests/utils.rs +19 -12
- package/contracts/oapps/oapp/src/errors.rs +1 -1
- package/contracts/oapps/oapp/src/interfaces/mod.rs +3 -0
- package/contracts/oapps/oapp/src/interfaces/oapp_msg_inspector.rs +47 -0
- package/contracts/oapps/oapp/src/lib.rs +1 -0
- package/contracts/oapps/oapp/src/macro_tests/test_macros.rs +4 -4
- package/contracts/oapps/oapp/src/oapp_core.rs +5 -5
- package/contracts/oapps/oapp/src/oapp_options_type3.rs +12 -4
- package/contracts/oapps/oapp/src/oapp_receiver.rs +14 -9
- package/contracts/oapps/oapp/src/tests/mod.rs +4 -4
- package/contracts/oapps/oapp/src/tests/oapp_core.rs +223 -0
- package/contracts/oapps/oapp/src/tests/oapp_options_type3.rs +240 -0
- package/contracts/oapps/oapp/src/tests/oapp_receiver.rs +381 -0
- package/contracts/oapps/oapp/src/tests/oapp_sender.rs +569 -0
- package/contracts/oapps/oapp-macros/Cargo.toml +8 -4
- package/contracts/oapps/oapp-macros/src/generators.rs +9 -34
- package/contracts/oapps/oapp-macros/src/lib.rs +3 -0
- package/contracts/oapps/oapp-macros/src/tests/mod.rs +2 -0
- package/contracts/oapps/oapp-macros/src/tests/oapp.rs +88 -0
- package/contracts/oapps/oapp-macros/src/tests/parse_custom_impls.rs +86 -0
- package/contracts/oapps/oapp-macros/src/tests/snapshots/oapp_macros__tests__oapp__snapshot_generate_oapp.snap +103 -0
- package/contracts/oapps/oft/integration-tests/utils.rs +28 -8
- package/contracts/oapps/oft/src/extensions/oft_fee.rs +153 -75
- package/contracts/oapps/oft/src/extensions/pausable.rs +61 -12
- package/contracts/oapps/oft/src/extensions/rate_limiter.rs +198 -134
- package/contracts/oapps/oft/src/oft.rs +45 -50
- package/contracts/oapps/oft/src/oft_types/lock_unlock.rs +1 -1
- package/contracts/oapps/oft/src/oft_types/mint_burn.rs +4 -26
- package/contracts/oapps/oft-core/Cargo.toml +1 -4
- package/contracts/oapps/oft-core/integration-tests/setup.rs +3 -3
- package/contracts/oapps/oft-core/integration-tests/utils.rs +21 -3
- package/contracts/oapps/oft-core/src/errors.rs +3 -2
- package/contracts/oapps/oft-core/src/events.rs +6 -0
- package/contracts/oapps/oft-core/src/lib.rs +1 -1
- package/contracts/oapps/oft-core/src/oft_core.rs +341 -246
- package/contracts/oapps/oft-core/src/storage.rs +7 -3
- package/contracts/oapps/oft-core/src/tests/mod.rs +1 -0
- package/contracts/oapps/oft-core/src/tests/test_decimals.rs +37 -2
- package/contracts/oapps/oft-core/src/tests/test_lz_receive.rs +2 -2
- package/contracts/oapps/oft-core/src/tests/test_msg_inspector.rs +323 -0
- package/contracts/oapps/oft-core/src/tests/test_send.rs +2 -2
- package/contracts/oapps/oft-core/src/tests/test_utils.rs +61 -16
- package/contracts/upgrader/src/lib.rs +30 -57
- package/contracts/upgrader/src/tests/test_data/test_upgradeable_contract1.wasm +0 -0
- package/contracts/upgrader/src/tests/test_data/test_upgradeable_contract2.wasm +0 -0
- package/contracts/upgrader/src/tests/test_upgrader.rs +44 -35
- package/contracts/utils/Cargo.toml +0 -1
- package/contracts/utils/src/buffer_reader.rs +1 -0
- package/contracts/utils/src/errors.rs +4 -2
- package/contracts/utils/src/multisig.rs +17 -8
- package/contracts/utils/src/ownable.rs +6 -6
- package/contracts/utils/src/testing_utils.rs +124 -54
- package/contracts/utils/src/tests/multisig.rs +12 -12
- package/contracts/utils/src/tests/ownable.rs +6 -6
- package/contracts/utils/src/tests/testing_utils.rs +50 -167
- package/contracts/utils/src/tests/ttl_configurable.rs +5 -5
- package/contracts/utils/src/tests/upgradeable.rs +372 -175
- package/contracts/utils/src/ttl_configurable.rs +13 -7
- package/contracts/utils/src/upgradeable.rs +48 -23
- package/contracts/workers/dvn/Cargo.toml +6 -6
- package/contracts/workers/dvn/src/auth.rs +12 -42
- package/contracts/workers/dvn/src/dvn.rs +15 -40
- package/contracts/workers/dvn/src/errors.rs +0 -1
- package/contracts/workers/dvn/src/interfaces/dvn.rs +35 -0
- package/contracts/workers/dvn/src/lib.rs +4 -3
- package/contracts/workers/dvn/src/tests/auth.rs +1 -1
- package/contracts/workers/dvn/src/tests/dvn.rs +19 -15
- package/contracts/workers/dvn/src/tests/multisig/set_threshold.rs +2 -4
- package/contracts/workers/dvn/src/tests/multisig/verify_signatures.rs +1 -3
- package/contracts/workers/dvn/src/tests/setup.rs +5 -9
- package/contracts/workers/dvn-fee-lib/Cargo.toml +2 -2
- package/contracts/workers/dvn-fee-lib/src/dvn_fee_lib.rs +38 -22
- package/contracts/workers/dvn-fee-lib/src/lib.rs +12 -2
- package/contracts/workers/dvn-fee-lib/src/tests/dvn_fee_lib.rs +17 -16
- package/contracts/workers/executor/Cargo.toml +4 -0
- package/contracts/workers/executor/src/executor.rs +15 -36
- package/contracts/workers/executor/src/lib.rs +2 -2
- package/contracts/workers/executor/src/tests/auth.rs +394 -0
- package/contracts/workers/executor/src/tests/executor.rs +410 -0
- package/contracts/workers/executor/src/tests/mod.rs +3 -0
- package/contracts/workers/executor/src/tests/setup.rs +250 -0
- package/contracts/workers/executor-fee-lib/Cargo.toml +7 -1
- package/contracts/workers/executor-fee-lib/src/executor_fee_lib.rs +62 -15
- package/contracts/workers/executor-fee-lib/src/executor_option.rs +28 -1
- package/contracts/workers/executor-fee-lib/src/lib.rs +11 -2
- package/contracts/workers/executor-fee-lib/src/tests/executor_fee_lib.rs +701 -0
- package/contracts/workers/executor-fee-lib/src/tests/executor_option.rs +370 -0
- package/contracts/workers/executor-fee-lib/src/tests/mod.rs +4 -0
- package/contracts/workers/executor-fee-lib/src/tests/setup.rs +60 -0
- package/contracts/workers/executor-helper/Cargo.toml +0 -1
- package/contracts/workers/executor-helper/src/lib.rs +3 -0
- package/contracts/workers/executor-helper/src/tests/executor_helper.rs +184 -0
- package/contracts/workers/executor-helper/src/tests/mod.rs +2 -0
- package/contracts/workers/executor-helper/src/tests/setup.rs +366 -0
- package/contracts/workers/fee-lib-interfaces/Cargo.toml +14 -0
- package/contracts/workers/{worker/src/interfaces/mod.rs → fee-lib-interfaces/src/lib.rs} +4 -3
- package/contracts/workers/price-feed/Cargo.toml +7 -1
- package/contracts/workers/price-feed/src/events.rs +1 -1
- package/contracts/workers/price-feed/src/lib.rs +12 -4
- package/contracts/workers/price-feed/src/price_feed.rs +5 -21
- package/contracts/workers/price-feed/src/storage.rs +1 -1
- package/contracts/workers/price-feed/src/tests/mod.rs +2 -0
- package/contracts/workers/price-feed/src/tests/price_feed.rs +869 -0
- package/contracts/workers/price-feed/src/tests/setup.rs +70 -0
- package/contracts/workers/price-feed/src/types.rs +1 -1
- package/contracts/workers/worker/src/errors.rs +1 -4
- package/contracts/workers/worker/src/lib.rs +0 -2
- package/contracts/workers/worker/src/storage.rs +32 -29
- package/contracts/workers/worker/src/tests/setup.rs +2 -8
- package/contracts/workers/worker/src/tests/worker.rs +96 -74
- package/contracts/workers/worker/src/worker.rs +75 -75
- package/docs/error-spec.md +55 -0
- package/docs/layerzero-v2-on-stellar.md +447 -0
- package/docs/oapp-guide.md +212 -0
- package/docs/oft-guide.md +314 -0
- package/package.json +3 -3
- package/sdk/.turbo/turbo-test.log +268 -263
- package/sdk/dist/generated/bml.d.ts +12 -4
- package/sdk/dist/generated/bml.js +9 -7
- package/sdk/dist/generated/counter.d.ts +306 -298
- package/sdk/dist/generated/counter.js +48 -46
- package/sdk/dist/generated/dvn.d.ts +450 -411
- package/sdk/dist/generated/dvn.js +66 -64
- package/sdk/dist/generated/dvn_fee_lib.d.ts +294 -338
- package/sdk/dist/generated/dvn_fee_lib.js +33 -64
- package/sdk/dist/generated/endpoint.d.ts +108 -100
- package/sdk/dist/generated/endpoint.js +21 -19
- package/sdk/dist/generated/executor.d.ts +414 -370
- package/sdk/dist/generated/executor.js +58 -55
- package/sdk/dist/generated/executor_fee_lib.d.ts +333 -377
- package/sdk/dist/generated/executor_fee_lib.js +34 -65
- package/sdk/dist/generated/executor_helper.d.ts +26 -190
- package/sdk/dist/generated/executor_helper.js +23 -28
- package/sdk/dist/generated/layerzero_view.d.ts +1271 -0
- package/sdk/dist/generated/layerzero_view.js +294 -0
- package/sdk/dist/generated/oft.d.ts +408 -385
- package/sdk/dist/generated/oft.js +89 -92
- package/sdk/dist/generated/price_feed.d.ts +385 -429
- package/sdk/dist/generated/price_feed.js +50 -81
- package/sdk/dist/generated/sml.d.ts +108 -100
- package/sdk/dist/generated/sml.js +21 -19
- package/sdk/dist/generated/treasury.d.ts +108 -100
- package/sdk/dist/generated/treasury.js +21 -19
- package/sdk/dist/generated/uln302.d.ts +108 -100
- package/sdk/dist/generated/uln302.js +23 -21
- package/sdk/dist/generated/upgrader.d.ts +189 -18
- package/sdk/dist/generated/upgrader.js +84 -4
- package/sdk/dist/index.d.ts +1 -0
- package/sdk/dist/index.js +2 -0
- package/sdk/package.json +1 -1
- package/sdk/src/index.ts +3 -0
- package/sdk/test/oft-sml.test.ts +4 -4
- package/sdk/test/suites/localnet.ts +84 -20
- package/sdk/test/upgrader.test.ts +2 -3
- package/tools/ts-bindings-gen/src/main.rs +2 -1
- package/contracts/ERROR_SPEC.md +0 -44
- package/contracts/endpoint-v2/ARCHITECTURE.md +0 -233
- package/contracts/oapps/oapp/src/tests/test_oapp_core.rs +0 -175
- package/contracts/oapps/oapp/src/tests/test_oapp_options_type3.rs +0 -212
- package/contracts/oapps/oapp/src/tests/test_oapp_receiver.rs +0 -153
- package/contracts/oapps/oapp/src/tests/test_oapp_sender.rs +0 -294
- /package/contracts/workers/{worker/src/interfaces → fee-lib-interfaces/src}/dvn_fee_lib.rs +0 -0
- /package/contracts/workers/{worker/src/interfaces → fee-lib-interfaces/src}/executor_fee_lib.rs +0 -0
- /package/contracts/workers/{worker/src/interfaces → fee-lib-interfaces/src}/price_feed.rs +0 -0
|
@@ -4,17 +4,16 @@ import type { u32, u64, u128, i128, Option } from '@stellar/stellar-sdk/contract
|
|
|
4
4
|
export * from '@stellar/stellar-sdk';
|
|
5
5
|
export * as contract from '@stellar/stellar-sdk/contract';
|
|
6
6
|
export * as rpc from '@stellar/stellar-sdk/rpc';
|
|
7
|
-
export type MigrationData = void;
|
|
8
7
|
/**
|
|
9
8
|
* Embedded WASM bytecode (base64-encoded)
|
|
10
|
-
* Size:
|
|
9
|
+
* Size: 33966 bytes (33.17 KB)
|
|
11
10
|
*/
|
|
12
|
-
export declare const WASM_BASE64 = "AGFzbQEAAAABiQEYYAJ+fgF+YAF+AX5gAAF+YAN+fn4BfmAEfn5+fgF+YAABf2ABfwBgAn9/AGABfwF+YAJ+fgF/YAAAYAJ+fwBgAX4AYAN/fn4AYAV+f39/fwBgAn9+AGABfwF/YAJ/fwF+YAN+f38AYAN/f38AYAR/f39/AX5gAn5+AGAEf35+fwBgBX9+fn5+AAK1AR4BbAExAAABYQEwAAEBYgE4AAEBbAE2AAEBYgEzAAABeAE3AAIBaQEzAAABZAFfAAMBaQE4AAEBaQE3AAEBaQE2AAABbAEyAAABeAExAAABbAFfAAMBeAEwAAABbAE3AAQBYgFqAAABYgExAAQBbQE5AAMBbQFhAAQBdgFnAAABeAEzAAIBeAE4AAIBbAEwAAABbAE4AAABeAE1AAEBYgFmAAMBaQEwAAEBaQE1AAEBaQE0AAEDSUgFBgcICQoCAgYLCgYMCAYNAQYBAgIBDAAODw8QEBEHEhERCgoCAA8FEwEIFAIHBwICAAIAAgEVAAoNAgoCChMTDxMPFhYXFxcFAwEAEQYhBH8BQYCAwAALfwBBgIDAAAt/AEH/hMAAC38AQYCFwAALB8MCFQZtZW1vcnkCAAd1cGdyYWRlAC4HbWlncmF0ZQAwCmF1dGhvcml6ZXIAMg1fX2NvbnN0cnVjdG9yADMHZ2V0X2ZlZQA1B3ZlcnNpb24AQg9zZXRfdHRsX2NvbmZpZ3MAQwt0dGxfY29uZmlncwBKEmZyZWV6ZV90dGxfY29uZmlncwBNFWlzX3R0bF9jb25maWdzX2Zyb3plbgBOE2V4dGVuZF9pbnN0YW5jZV90dGwATwVvd25lcgBQDXBlbmRpbmdfb3duZXIAUhJ0cmFuc2Zlcl9vd25lcnNoaXAAUxpwcm9wb3NlX293bmVyc2hpcF90cmFuc2ZlcgBVEGFjY2VwdF9vd25lcnNoaXAAWBJyZW5vdW5jZV9vd25lcnNoaXAAWgFfAwEKX19kYXRhX2VuZAMCC19faGVhcF9iYXNlAwMKr1pIiwECAn8BfiOAgICAAEEQayIAJICAgIAAIABBBGoQn4CAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMEKCAgIAAC0EAIQECQEEAEKGAgIAAIgJCAhCigICAAEUNAEEBIQECQAJAIAJCAhCAgICAAKdB/wFxDgIBAgALAAtBACEBCyAAQRBqJICAgIAAIAELDAAgAEEBEMuAgIAACxsAIACtQiCGQgSEIAGtQiCGQgSEEJiAgIAAGgvCAQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQAJAAkAgAEH/AXEOAwABAgALIAFBgoLAgABBBhDdgICAACABKAIADQMgASABKQMIEOCAgIAADAILIAFBiILAgABBCBDdgICAACABKAIADQIgASABKQMIEOCAgIAADAELIAFBkILAgABBChDdgICAACABKAIADQEgASABKQMIEOCAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILDwAgACABEJeAgIAAQgFRCw8AEKSAgIAAEIGAgIAAGgtmAgF/AX4jgICAgABBEGsiACSAgICAACAAEJ+AgIAAAkAgACgCAEEBRw0AIAAoAgQgACgCCBCggICAAAsgABCmgICAACAAKQMIIQEgACkDAEGKCBCngICAACAAQRBqJICAgIAAIAELSgIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABCmgICAACAAKQMIIQEgACkDAEGKCBCngICAACABEIGAgIAAGiAAQRBqJICAgIAAIAELUAEBfyOAgICAAEEQayIBJICAgIAAIAFBBGoQn4CAgAACQCABKAIEQQFHDQAgASgCCCABKAIMEKCAgIAACyAAEKyAgIAAIAFBEGokgICAgAALKQACQCAAp0EBcUUNAA8LIAFB+ndqrUIghkKDgICA4IABfBCqgICAAAALQgEBfyOAgICAAEEQayIAJICAgIAAIAAQqYCAgAACQCAAKQMAUA0AQoOAgICwgQEQqoCAgAAACyAAQRBqJICAgIAAC5MBAgF/An4jgICAgABBEGsiASSAgICAACABQQRqEJ+AgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBCggICAAAtCACECAkACQEEBEKuAgIAAIgNCABCigICAAEUNACADQgAQgICAgAAiAkL/AYNCzQBSDQEgACACNwMIQgEhAgsgACACNwMAIAFBEGokgICAgAAPCwALCwAgABCZgICAABoLkgECAX8BfiOAgICAAEEQayIBJICAgIAAAkACQAJAAkAgAEEBcUUNACABQZWBwIAAQQwQ3YCAgAAgASgCAA0CIAEgASkDCBDggICAAAwBCyABQZCBwIAAQQUQ3YCAgAAgASgCAA0BIAEgASkDCBDggICAAAsgASkDCCECIAEpAwBQDQELAAsgAUEQaiSAgICAACACC00BAn5CACEBAkACQEEAEKuAgIAAIgJCAhCigICAAEUNACACQgIQgICAgAAiAUL/AYNCzQBSDQEgACABNwMIQgEhAQsgACABNwMADwsACygAAkAgAkJ/VQ0AQoOAgICQARCqgICAAAALIAAgATcDACAAIAI3AwgLiwEBAX8jgICAgABBEGsiASSAgICAAAJAIABC/wGDQsgAUg0AIAAQgoCAgABCgICAgHCDQoCAgICABFINABCjgICAACABQQRqEJ+AgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBCggICAAAtBARCvgICAACAAEIOAgIAAGiABQRBqJICAgIAAQgIPCwALGAAQsYCAgAAgAK1C/wGDQgIQjYCAgAAaC6QBAQF/I4CAgIAAQRBrIgEkgICAgAACQCAAQv8Bg0ICUg0AEKOAgIAAIAFBBGoQn4CAgAACQCABKAIEQQFHDQAgASgCCCABKAIMEKCAgIAACwJAAkAQsYCAgAAiAEICEKKAgIAARQ0AIABCAhCAgICAAKdB/wFxDgIAAQILQoOAgICggwEQqoCAgAAAC0EAEK+AgIAAIAFBEGokgICAgABCAg8LAAtgAgF/AX4jgICAgABBEGsiACSAgICAACAAQZqCwIAAQQkQ3YCAgAACQAJAIAAoAgANACAAIAApAwgQ4ICAgAAgACgCAEEBRw0BCwALIAApAwghASAAQRBqJICAgIAAIAELCAAQpICAgAALQQACQAJAIABC/wGDQs0AUg0AQQAQq4CAgABCAhCigICAAA0BIAAQtICAgABCAg8LAAtCg4CAgJCBARCqgICAAAALDgBBACAAQgIQ14CAgAALzBwFAn8OfgF/AX4FfyOAgICAAEGwBGsiAiSAgICAAAJAAkAgAEL/AYNCzQBSDQBBACEDAkADQCADQdgARg0BIAJBsANqIANqQgI3AwAgA0EIaiEDDAALCyABQv8Bg0LMAFINACABQbSDwIAAQQsgAkGwA2pBCxC2gICAACACKQOwAyIBQv8Bg0IEUg0AIAIpA7gDIgBC/wGDQgRSDQAgAikDwAMiBEL/AYNCBFINACACQZACaiACKQPIAxC3gICAACACKAKQ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gICAAAALHwAgAEIEIAGtQiCGQgSEIAKtQiCGQgSEEJGAgIAAGgtFAgF/AX4jgICAgABBEGsiAiSAgICAACACIAAgARDcgICAAAJAIAIoAgBBAUcNAAALIAIpAwghAyACQRBqJICAgIAAIAMLGgAgAK1CIIZCBIQgAa1CIIZCBIQQlICAgAALCQAQwYCAgAAACwkAENuAgIAAAAtoAgF/AX4jgICAgABBEGsiACSAgICAACAAEJ+AgIAAAkAgACgCAEEBRw0AIAAoAgQgACgCCBCggICAAAsgAEKEgICAEDcDCCAAQoYCNwMAIABBAhC/gICAACEBIABBEGokgICAgAAgAQviBAEFfyOAgICAAEHQAGsiAiSAgICAACACQShqIAAQxICAgAACQCACKAIoQQJGDQAgAkEIakEIaiACQShqQQhqIgMoAgA2AgAgAiACKQIoNwMIIAJBKGogARDEgICAACACKAIoQQJGDQAgAkEYakEIaiADKAIANgIAIAIgAikCKDcDGCACQShqEJ+AgIAAAkAgAigCKEEBRw0AIAIoAiwgAigCMBCggICAAAsQo4CAgAACQAJAAkAQnoCAgAANABDFgICAACIDQYD7gAMgA0GA+4ADSRshBCACIAJBGGo2AiwgAiACQQhqNgIoQQAhAwNAIANBCEYNAwJAIAJBKGogA2ooAgAiBSgCAEEBcUUNACAFKAIIIgYgBEsNAyAFKAIEIAZLDQMLIANBBGohAwwACwtCg4CAgND/ABCqgICAAAALQoOAgIDA/wAQqoCAgAAACwJAAkAgAigCCEEBRw0AQQEgAigCDCACKAIQEMaAgIAADAELQQEQoYCAgABCAhCLgICAABoLAkACQCACKAIYQQFHDQBBAiACKAIcIAIoAiAQxoCAgAAMAQtBAhChgICAAEICEIuAgIAAGgsgAkEoakEIaiACQQhqQQhqKAIANgIAIAJBPGogAkEYakEIaigCADYCACACIAIpAwg3AyggAiACKQMYNwI0QbyBwIAAQQ8QvoCAgAAQx4CAgAAhACACQShqEMiAgIAAIQEgAiACQTRqEMiAgIAANwNIIAIgATcDQCAAQeCBwIAAQQIgAkHAAGpBAhDJgICAABCMgICAABogAkHQAGokgICAgABCAg8LAAtoAQF/I4CAgIAAQRBrIgIkgICAgAACQAJAIAFCAlENACACQQRqIAEQ3oCAgAACQCACKAIERQ0AIABBAjYCAAwCCyAAIAIpAgg3AgQgAEEBNgIADAELIABBADYCAAsgAkEQaiSAgICAAAszAQJ+EJWAgIAAIQACQBCWgICAAEIgiCIBIABCIIgiAFQNACABpyAAp2sPCxDBgICAAAALVgIBfwF+I4CAgIAAQRBrIgMkgICAgAAgABChgICAACEEIAMgASACEN+AgIAAAkAgAygCAEEBRw0AAAsgBCADKQMIQgIQjYCAgAAaIANBEGokgICAgAALYwMBfwF+AX8jgICAgABBEGsiASSAgICAACABIAA3AwBCAiECQQEhAwJAA0AgA0UNASADQX9qIQMgACECDAALCyABIAI3AwggAUEIakEBEL+AgIAAIQAgAUEQaiSAgICAACAAC0MCAX8BfiOAgICAAEEQayIBJICAgIAAIAEgABDMgICAAAJAIAEoAgBBAUcNAAALIAEpAwghAiABQRBqJICAgIAAIAILLgACQCABIANGDQAACyAArUIghkIEhCACrUIghkIEhCABrUIghkIEhBCSgICAAAvEAQICfwF+I4CAgIAAQcAAayIAJICAgIAAIABBCGoQn4CAgAACQCAAKAIIQQFHDQAgACgCDCAAKAIQEKCAgIAACyAAQQhqEJ+AgIAAIABBFGoiAUECEMuAgIAAIABBMGogAEEIahDMgICAAAJAAkAgACgCMA0AIAApAzghAiAAQTBqIAEQzICAgAAgACgCMEEBRw0BCwALIAAgACkDODcDKCAAIAI3AyAgAEEgakECEL+AgIAAIQIgAEHAAGokgICAgAAgAgt3AgJ/AX4jgICAgABBEGsiAiSAgICAAEEAIQMCQAJAIAEQoYCAgAAiBEICEKKAgIAARQ0AIAJBBGogBEICEICAgIAAEN6AgIAAQQEhAyACKAIEQQFGDQEgACACKQIINwIECyAAIAM2AgAgAkEQaiSAgICAAA8LAAswAAJAIAEoAgBBAUcNACAAIAEoAgQgASgCCBDfgICAAA8LIABCADcDACAAQgI3AwgLqgEBAX8jgICAgABBIGsiACSAgICAACAAQQxqEJ+AgIAAAkAgACgCDEEBRw0AIAAoAhAgACgCFBCggICAAAsQo4CAgAACQBCegICAAEUNAEKDgICA4P8AEKqAgIAAAAtBABChgICAAEIBQgIQjYCAgAAaQfCBwIAAQRIQvoCAgAAQx4CAgABBBEEAIABBGGpBABDJgICAABCMgICAABogAEEgaiSAgICAAEICCwkAEJ6AgIAArQsxAAJAIABC/wGDQgRSDQAgAUL/AYNCBFINACAAQiCIpyABQiCIpxCggICAAEICDwsACz4CAX8BfiOAgICAAEEQayIAJICAgIAAIAAQpoCAgAAgACkDACAAKQMIENGAgIAAIQEgAEEQaiSAgICAACABCw0AIAFCAiAAp0EBcRsLPgIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABCpgICAACAAKQMAIAApAwgQ0YCAgAAhASAAQRBqJICAgIAAIAELfQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQCAAQv8Bg0LNAFINACABQQRqEJ+AgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBCggICAAAsQpYCAgAAhAhCogICAACAAELSAgIAAIAIgABDUgICAACABQRBqJICAgIAAQgIPCwALYQIBfwF+I4CAgIAAQRBrIgIkgICAgABBiYDAgABBFRC+gICAABDHgICAACEDIAIgADcDCCACIAE3AwAgA0GwgMCAAEECIAJBAhDJgICAABCMgICAABogAkEQaiSAgICAAAvdAgIBfwJ+I4CAgIAAQSBrIgIkgICAgAACQAJAAkAgAEL/AYNCzQBSDQAgAUL/AYNCBFINACACQQhqEJ+AgIAAAkAgAigCCEEBRw0AIAIoAgwgAigCEBCggICAAAsQpYCAgAAhAwJAAkAgAUL/////D1YNACACQQhqEKmAgIAAIAIpAxAhASACKQMIQYgIEKeAgIAAIAEgABCOgICAAFBFDQMQ1oCAgAAMAQsQxYCAgAAgAUIgiKdJDQNBASAAQgAQ14CAgABBARCrgICAAEIAIAFChICAgHCDIgEgARCPgICAABpBwIDAgABBFhC+gICAABDHgICAACEEIAIgATcDGCACIAM3AxAgAiAANwMIIARB3IDAgABBAyACQQhqQQMQyYCAgAAQjICAgAAaCyACQSBqJICAgIAAQgIPCwALQoOAgIDggAEQqoCAgAAAC0KDgICA8IABEKqAgIAAAAsTAEEBEKuAgIAAQgAQi4CAgAAaCxUAIAAQq4CAgAAgASACEI2AgIAAGgunAQIBfwJ+I4CAgIAAQRBrIgAkgICAgAAgABCfgICAAAJAIAAoAgBBAUcNACAAKAIEIAAoAggQoICAgAALIAAQqYCAgAAgACkDCCEBIAApAwBBiAgQp4CAgAAgARCBgICAABogABCsgICAAAJAIAAoAgANABDZgICAAAALIAApAwghAhDWgICAACABELSAgIAAIAIgARDUgICAACAAQRBqJICAgIAAQgILCQAQwYCAgAAAC6ABAgF/An4jgICAgABBEGsiACSAgICAACAAEJ+AgIAAAkAgACgCAEEBRw0AIAAoAgQgACgCCBCggICAAAsQpYCAgAAhARCogICAAEEAEKuAgIAAQgIQi4CAgAAaQfSAwIAAQRMQvoCAgAAQx4CAgAAhAiAAIAE3AwAgAkGIgcCAAEEBIABBARDJgICAABCMgICAABogAEEQaiSAgICAAEICCwMAAAvbAQIBfgR/AkACQCACQQlLDQBCACEDIAIhBCABIQUDQAJAIAQNACADQgiGQg6EIQMMAwtBASEGAkAgBS0AACIHQd8ARg0AAkAgB0FQakH/AXFBCkkNAAJAIAdBv39qQf8BcUEaSQ0AIAdBn39qQf8BcUEZSw0EIAdBRWohBgwCCyAHQUtqIQYMAQsgB0FSaiEGCyADQgaGIAatQv8Bg4QhAyAEQX9qIQQgBUEBaiEFDAALCyABrUIghkIEhCACrUIghkIEhBCQgICAACEDCyAAQgA3AwAgACADNwMIC1ECAX8BfiOAgICAAEEQayIDJICAgIAAIAMgASACENyAgIAAQgEhBAJAIAMoAgANACAAIAMpAwg3AwhCACEECyAAIAQ3AwAgA0EQaiSAgICAAAutAQICfwF+I4CAgIAAQRBrIgIkgICAgABBACEDAkADQCADQRBGDQEgAiADakICNwMAIANBCGohAwwACwtBASEDAkAgAUL/AYNCzABSDQAgAUGsgcCAAEECIAJBAhC2gICAACACKQMAIgFC/wGDQgRSDQAgAikDCCIEQv8Bg0IEUg0AIAAgAUIgiKc2AgggACAEQiCIPgIEQQAhAwsgACADNgIAIAJBEGokgICAgAALYAIBfwF+I4CAgIAAQRBrIgMkgICAgAAgAyABrUIghkIEhDcDCCADIAKtQiCGQgSENwMAQayBwIAAQQIgA0ECEMmAgIAAIQQgAEIANwMAIAAgBDcDCCADQRBq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Y29uZmlnc19mcm96ZW5Gcm96ZW5JbnN0YW5jZVBlcnNpc3RlbnRNaWdyYXRpbmdtdWx0aXBsaWVyX2Jwc3ByaWNlX2ZlZWRkc3RfZWlkZGVmYXVsdF9tdWx0aXBsaWVyX2Jwc2Zsb29yX21hcmdpbl91c2RvcHRpb25zc2VuZGVyY2FsbGRhdGFfc2l6ZWx6X2NvbXBvc2VfYmFzZV9nYXNsel9yZWNlaXZlX2Jhc2VfZ2FzbmF0aXZlX2NhcAAAdQEQAA0AAABCARAAFgAAADsBEAAHAAAAWAEQABAAAACCARAAEwAAAJUBEAATAAAAIwEQAA4AAACoARAACgAAAGgBEAAHAAAAMQEQAAoAAABvARAABgAAAHByaWNlX3JhdGlvbmF0aXZlX3ByaWNlX3VzZHByaWNlX3JhdGlvX2Rlbm9taW5hdG9ydG90YWxfZ2FzX2ZlZQAXAhAAEAAAAAwCEAALAAAAJwIQABcAAAA+AhAADQAAAGVzdGltYXRlX2ZlZV9ieV9laWQAw6oBDmNvbnRyYWN0c3BlY3YwAAAABAAAAAAAAAAAAAAAE0V4ZWN1dG9yRmVlTGliRXJyb3IAAAAADAAAAAAAAAAPRWlkTm90U3VwcG9ydGVkAAAAAAEAAAAAAAAAFkludmFsaWRFeGVjdXRvck9wdGlvbnMAAAAAAAIAAAAAAAAACkludmFsaWRGZWUAAAAAAAMAAAAAAAAAFkludmFsaWRMekNvbXBvc2VPcHRpb24AAAAAAAQAAAAAAAAAFkludmFsaWRMelJlY2VpdmVPcHRpb24AAAAAAAUAAAAAAAAAF0ludmFsaWROYXRpdmVEcm9wT3B0aW9uAAAAAAYAAAAAAAAAFk5hdGl2ZUFtb3VudEV4Y2VlZHNDYXAAAAAAAAcAAAAAAAAACU5vT3B0aW9ucwAAAAAAAAgAAAAAAAAACE92ZXJmbG93AAAACQAAAAAAAAAVVW5zdXBwb3J0ZWRPcHRpb25UeXBlAAAAAAAACgAAAAAAAAAYWmVyb0x6Q29tcG9zZUdhc1Byb3ZpZGVkAAAACwAAAAAAAAAYWmVyb0x6UmVjZWl2ZUdhc1Byb3ZpZGVkAAAADAAAAAAAAAAAAAAAB3VwZ3JhZGUAAAAAAQAAAAAAAAANbmV3X3dhc21faGFzaAAAAAAAA+4AAAAgAAAAAAAAAAAAAAAAAAAAB21pZ3JhdGUAAAAAAQAAAAAAAAAObWlncmF0aW9uX2RhdGEAAAAAB9AAAAANTWlncmF0aW9uRGF0YQAAAAAAAAAAAAAAAAAAAAAAAAphdXRob3JpemVyAAAAAAAAAAAAAQAAABMAAAAAAAAAAAAAAA1fX2NvbnN0cnVjdG9yAAAAAAAAAQAAAAAAAAAFb3duZXIAAAAAAAATAAAAAAAAAAAAAAJRQ2FsY3VsYXRlcyB0aGUgdG90YWwgZXhlY3V0aW9uIGZlZSBmb3IgYSBjcm9zcy1jaGFpbiBtZXNzYWdlLgoKRGVjb2RlcyBleGVjdXRvciBvcHRpb25zLCBlc3RpbWF0ZXMgZ2FzIGZlZXMgZnJvbSB0aGUgcHJpY2UgZmVlZCwgYXBwbGllcwptdWx0aXBsaWVycyBhbmQgbWFyZ2lucywgYW5kIGNvbnZlcnRzIG5hdGl2ZSB0b2tlbiB2YWx1ZXMuIFJldHVybnMgdGhlCnRvdGFsIGZlZSBpbiBuYXRpdmUgdG9rZW5zLgoKIyBBcmd1bWVudHMKKiBgZXhlY3V0b3JgIC0gRXhlY3V0b3IgY29udHJhY3QgYWRkcmVzcyAodW51c2VkLCBrZXB0IGZvciBpbnRlcmZhY2UgY29tcGF0aWJpbGl0eSkKKiBgcGFyYW1zYCAtIEZlZSBjYWxjdWxhdGlvbiBwYXJhbWV0ZXJzCgojIFJldHVybnMKVG90YWwgZXhlY3V0aW9uIGZlZSBpbiBuYXRpdmUgdG9rZW5zLgoKIyBFcnJvcnMKKiBgRWlkTm90U3VwcG9ydGVkYCAtIElmIGRlc3RpbmF0aW9uIGVuZHBvaW50IGlzIG5vdCBzdXBwb3J0ZWQgKGx6X3JlY2VpdmVfYmFzZV9nYXMgaXMgMCkKKiBWYXJpb3VzIGV4ZWN1dG9yIG9wdGlvbiBwYXJzaW5nIGVycm9ycyAoc2VlIGBwYXJzZV9leGVjdXRvcl9vcHRpb25zYCkAAAAAAAAHZ2V0X2ZlZQAAAAACAAAAAAAAAAhleGVjdXRvcgAAABMAAAAAAAAABnBhcmFtcwAAAAAH0AAAAAlGZWVQYXJhbXMAAAAAAAABAAAACwAAAAAAAABbUmV0dXJucyB0aGUgdmVyc2lvbiBvZiB0aGUgZmVlIGxpYnJhcnkuCgojIFJldHVybnMKVHVwbGUgb2YgKG1ham9yX3ZlcnNpb24sIG1pbm9yX3ZlcnNpb24pLgAAAAAHdmVyc2lvbgAAAAAAAAAAAQAAA+0AAAACAAAABgAAAAQAAAAAAAABj1NldHMgVFRMIGNvbmZpZ3MgZm9yIGluc3RhbmNlIGFuZCBwZXJzaXN0ZW50IHN0b3JhZ2UuCgotIGBOb25lYCB2YWx1ZXMgcmVtb3ZlIHRoZSBjb3JyZXNwb25kaW5nIGNvbmZpZyAoZGlzYWJsZXMgYXV0by1leHRlbnNpb24gZm9yIHRoYXQgdHlwZSkKLSBWYWxpZGF0ZXMgdGhhdCBgdGhyZXNob2xkIDw9IGV4dGVuZF90byA8PSBNQVhfVFRMYAoKIyBBcmd1bWVudHMKLSBgaW5zdGFuY2VgIC0gVFRMIGNvbmZpZyBmb3IgaW5zdGFuY2Ugc3RvcmFnZQotIGBwZXJzaXN0ZW50YCAtIFRUTCBjb25maWcgZm9yIHBlcnNpc3RlbnQgc3RvcmFnZQoKIyBQYW5pY3MKLSBgVHRsQ29uZmlnRnJvemVuYCBpZiBjb25maWdzIGFyZSBmcm96ZW4KLSBgSW52YWxpZFR0bENvbmZpZ2AgaWYgdmFsaWRhdGlvbiBmYWlscwAAAAAPc2V0X3R0bF9jb25maWdzAAAAAAIAAAAAAAAACGluc3RhbmNlAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAApwZXJzaXN0ZW50AAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAAAAAEhSZXR1cm5zIHRoZSBjdXJyZW50IFRUTCBjb25maWdzIGFzIChpbnN0YW5jZV9jb25maWcsIHBlcnNpc3RlbnRfY29uZmlnKS4AAAALdHRsX2NvbmZpZ3MAAAAAAAAAAAEAAAPtAAAAAgAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAADhUGVybWFuZW50bHkgZnJlZXplcyBUVEwgY29uZmlncywgcHJldmVudGluZyBhbnkgZnV0dXJlIG1vZGlmaWNhdGlvbnMuCgpUaGlzIGlzIGlycmV2ZXJzaWJsZSBhbmQgcHJvdmlkZXMgaW1tdXRhYmlsaXR5IGd1YXJhbnRlZXMgdG8gdXNlcnMuCkVtaXRzIGBUdGxDb25maWdzRnJvemVuYCBldmVudC4KCiMgUGFuaWNzCi0gYFR0bENvbmZpZ0FscmVhZHlGcm96ZW5gIGlmIGFscmVhZHkgZnJvemVuAAAAAAAAEmZyZWV6ZV90dGxfY29uZmlncwAAAAAAAAAAAAAAAAAAAAAAJ1JldHVybnMgd2hldGhlciBUVEwgY29uZmlncyBhcmUgZnJvemVuLgAAAAAVaXNfdHRsX2NvbmZpZ3NfZnJvemVuAAAAAAAAAAAAAAEAAAABAAAAAAAAAKVFeHRlbmRzIHRoZSBpbnN0YW5jZSBUVEwuCgojIEFyZ3VtZW50cwoKKiBgdGhyZXNob2xkYCAtIFRoZSB0aHJlc2hvbGQgdG8gZXh0ZW5kIHRoZSBUVEwgKGlmIGN1cnJlbnQgVFRMIGlzIGJlbG93IHRoaXMsIGV4dGVuZCkuCiogYGV4dGVuZF90b2AgLSBUaGUgVFRMIHRvIGV4dGVuZCB0by4AAAAAAAATZXh0ZW5kX2luc3RhbmNlX3R0bAAAAAACAAAAAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAAAAAAAAlleHRlbmRfdG8AAAAAAAAEAAAAAAAAAAAAAAA+UmV0dXJucyB0aGUgY3VycmVudCBvd25lciBhZGRyZXNzLCBvciBOb25lIGlmIG5vIG93bmVyIGlzIHNldC4AAAAAAAVvd25lcgAAAAAAAAAAAAABAAAD6AAAABMAAAAAAAAAWVJldHVybnMgdGhlIHBlbmRpbmcgb3duZXIgYWRkcmVzcyBmb3IgMi1zdGVwIHRyYW5zZmVyLCBvciBOb25lIGlmIG5vIHRyYW5zZmVyIGlzIHBlbmRpbmcuAAAAAAAADXBlbmRpbmdfb3duZXIAAAAAAAAAAAAAAQAAA+gAAAATAAAAAAAAAStUcmFuc2ZlcnMgb3duZXJzaGlwIGltbWVkaWF0ZWx5IHRvIGEgbmV3IGFkZHJlc3MuCgpVc2Ugd2l0aCBjYXV0aW9uIC0gaWYgeW91IHRyYW5zZmVyIHRvIGEgd3JvbmcgYWRkcmVzcywgb3duZXJzaGlwIGlzIGxvc3QgZm9yZXZlci4KQ29uc2lkZXIgdXNpbmcgYHByb3Bvc2Vfb3duZXJzaGlwX3RyYW5zZmVyYCBpbnN0ZWFkLgoKIyBQYW5pY3MKLSBgT3duZXJOb3RTZXRgIGlmIG5vIG93bmVyIGlzIGN1cnJlbnRseSBzZXQKLSBgVHJhbnNmZXJJblByb2dyZXNzYCBpZiBhIDItc3RlcCB0cmFuc2ZlciBpcyBpbiBwcm9ncmVzcwAAAAASdHJhbnNmZXJfb3duZXJzaGlwAAAAAAABAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAAAAAJcUHJvcG9zZXMgYW4gb3duZXJzaGlwIHRyYW5zZmVyIHRvIGEgbmV3IGFkZHJlc3MuCgpUaGUgbmV3IG93bmVyIG11c3QgY2FsbCBgYWNjZXB0X293bmVyc2hpcCgpYCB3aXRoaW4gYHR0bGAgbGVkZ2Vycwp0byBjb21wbGV0ZSB0aGUgdHJhbnNmZXIuIFRoZSBwZW5kaW5nIHRyYW5zZmVyIHdpbGwgYXV0b21hdGljYWxseSBleHBpcmUgYWZ0ZXIuCgojIEFyZ3VtZW50cwotIGBuZXdfb3duZXJgIC0gVGhlIHByb3Bvc2VkIG5ldyBvd25lcgotIGB0dGxgIC0gTnVtYmVyIG9mIGxlZGdlcnMgdGhlIG5ldyBvd25lciBoYXMgdG8gYWNjZXB0LgpVc2UgYDBgIHRvIGNhbmNlbCBhIHBlbmRpbmcgdHJhbnNmZXIgKG5ld19vd25lciBtdXN0IG1hdGNoIHBlbmRpbmcpLgoKIyBQYW5pY3MKLSBgT3duZXJOb3RTZXRgIGlmIG5vIG93bmVyIGlzIGN1cnJlbnRseSBzZXQKLSBgTm9QZW5kaW5nVHJhbnNmZXJgIHdoZW4gY2FuY2VsbGluZyBhbmQgbm8gcGVuZGluZyB0cmFuc2ZlciBleGlzdHMKLSBgSW52YWxpZFR0bGAgaWYgdHRsIGV4Y2VlZHMgbWF4IFRUTAotIGBJbnZhbGlkUGVuZGluZ093bmVyYCB3aGVuIGNhbmNlbGxpbmcgd2l0aCB3cm9uZyBuZXdfb3duZXIgYWRkcmVzcwAAABpwcm9wb3NlX293bmVyc2hpcF90cmFuc2ZlcgAAAAAAAgAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAADdHRsAAAAAAQAAAAAAAAAAAAAALlBY2NlcHRzIGEgcGVuZGluZyAyLXN0ZXAgb3duZXJzaGlwIHRyYW5zZmVyLgoKTXVzdCBiZSBjYWxsZWQgYnkgdGhlIHBlbmRpbmcgb3duZXIgYmVmb3JlIHRoZSBUVEwgZXhwaXJlcy4KCiMgUGFuaWNzCi0gYE5vUGVuZGluZ1RyYW5zZmVyYCBpZiB0aGVyZSBpcyBubyBwZW5kaW5nIHRyYW5zZmVyIChvciBpdCBleHBpcmVkKQAAAAAAABBhY2NlcHRfb3duZXJzaGlwAAAAAAAAAAAAAAAAAAAApFBlcm1hbmVudGx5IHJlbm91bmNlcyBvd25lcnNoaXAuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBUcmFuc2ZlckluUHJvZ3Jlc3NgIGlmIGEgMi1zdGVwIHRyYW5zZmVyIGlzIGluIHByb2dyZXNzIChjYW5jZWwgaXQgZmlyc3QpAAAAEnJlbm91bmNlX293bmVyc2hpcAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAANRW5kcG9pbnRFcnJvcgAAAAAAABkAAAAAAAAAEUFscmVhZHlSZWdpc3RlcmVkAAAAAAAAAQAAAAAAAAANQ29tcG9zZUV4aXN0cwAAAAAAAAIAAAAAAAAAD0NvbXBvc2VOb3RGb3VuZAAAAAADAAAAAAAAABxEZWZhdWx0UmVjZWl2ZUxpYlVuYXZhaWxhYmxlAAAABAAAAAAAAAAZRGVmYXVsdFNlbmRMaWJVbmF2YWlsYWJsZQAAAAAAAAUAAAAAAAAAFUluc3VmZmljaWVudE5hdGl2ZUZlZQAAAAAAAAYAAAAAAAAAEkluc3VmZmljaWVudFpyb0ZlZQAAAAAABwAAAAAAAAAQSW52YWxpZEZlZUFtb3VudAAAAAgAAAAAAAAADUludmFsaWRFeHBpcnkAAAAAAAAJAAAAAAAAAAxJbnZhbGlkSW5kZXgAAAAKAAAAAAAAAAxJbnZhbGlkTm9uY2UAAAALAAAAAAAAABJJbnZhbGlkUGF5bG9hZEhhc2gAAAAAAAwAAAAAAAAAFUludmFsaWRSZWNlaXZlTGlicmFyeQAAAAAAAA0AAAAAAAAAEU9ubHlOb25EZWZhdWx0TGliAAAAAAAADgAAAAAAAAAOT25seVJlY2VpdmVMaWIAAAAA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IHRva2VuIGluc3RlYWQgb2YgbmF0aXZlIHRva2VuLgAAAAAAAApwYXlfaW5fenJvAAAAAAABAAAANVJlY2VpdmVyIGFkZHJlc3Mgb24gdGhlIGRlc3RpbmF0aW9uIGNoYWluICgzMiBieXRlcykuAAAAAAAACHJlY2VpdmVyAAAD7gAAACAAAAABAAAATVNvdXJjZSBtZXNzYWdlIGluZm9ybWF0aW9uIGlkZW50aWZ5aW5nIHdoZXJlIGEgY3Jvc3MtY2hhaW4gbWVzc2FnZSBjYW1lIGZyb20uAAAAAAAAAAAAAAZPcmlnaW4AAAAAAAMAAAAXTm9uY2UgZm9yIHRoaXMgcGF0aHdheS4AAAAABW5vbmNlAAAAAAAABgAAAC5TZW5kZXIgYWRkcmVzcyBvbiB0aGUgc291cmNlIGNoYWluICgzMiBieXRlcykuAAAAAAAGc2VuZGVyAAAAAAPuAAAAIAAAACZTb3VyY2UgZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpLgAAAAAAB3NyY19laWQAAAAABAAAAAEAAAAoRmVlIHN0cnVjdHVyZSBmb3IgY3Jvc3MtY2hhaW4gbWVzc2FnaW5nLgAAAAAAAAAMTWVzc2FnaW5nRmVlAAAAAgAAAB9GZWUgcGFpZCBpbiBuYXRpdmUgdG9rZW4gKFhMTSkuAAAAAApuYXRpdmVfZmVlAAAAAAALAAAAKEZlZSBwYWlkIGluIFpSTyB0b2tlbiAoTGF5ZXJaZXJvIHRva2VuKS4AAAAHenJvX2ZlZQAAAAALAAAAAQAAAEJSZWNlaXB0IHJldHVybmVkIGFmdGVyIHN1Y2Nlc3NmdWxseSBzZW5kaW5nIGEgY3Jvc3MtY2hhaW4gbWVzc2FnZS4AAAAAAAAAAAAQTWVzc2FnaW5nUmVjZWlwdAAAAAMAAAApVGhlIGZlZXMgY2hhcmdlZCBmb3Igc2VuZGluZyB0aGUgbWVzc2FnZS4AAAAAAAADZmVlAAAAB9AAAAAMTWVzc2FnaW5nRmVlAAAAK0dsb2JhbGx5IHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgbWVzc2FnZS4AAAAABGd1aWQAAAPuAAAAIAAAACRUaGUgb3V0Ym91bmQgbm9uY2UgZm9yIHRoaXMgcGF0aHdheS4AAAAFbm9uY2UAAAAAAAAGAAAAAgAAADhUeXBlIG9mIG1lc3NhZ2UgbGlicmFyeSBpbmRpY2F0aW5nIHN1cHBvcnRlZCBvcGVyYXRpb25zLgAAAAAAAAAOTWVzc2FnZUxpYlR5cGUAAAAAAAMAAAAAAAAAH1N1cHBvcnRzIG9ubHkgc2VuZGluZyBtZXNzYWdlcy4AAAAABFNlbmQAAAAAAAAAIVN1cHBvcnRzIG9ubHkgcmVjZWl2aW5nIG1lc3NhZ2VzLgAAAAAAAAdSZWNlaXZlAAAAAAAAAAAtU3VwcG9ydHMgYm90aCBzZW5kaW5nIGFuZCByZWNlaXZpbmcgbWVzc2FnZXMuAAAAAAAADlNlbmRBbmRSZWNlaXZlAAAAAAABAAAAt1ZlcnNpb24gaW5mb3JtYXRpb24gZm9yIGEgbWVzc2FnZSBsaWJyYXJ5LgoKTm90ZTogYG1pbm9yYCBhbmQgYGVuZHBvaW50X3ZlcnNpb25gIHVzZSBgdTMyYCBpbnN0ZWFkIG9mIGB1OGAgYmVjYXVzZSBTdGVsbGFyIGRvZXMgbm90CnN1cHBvcnQgYHU4YCB0eXBlcyBpbiBjb250cmFjdCBpbnRlcmZhY2UgZnVuY3Rpb25zLgAAAAAAAAAAEU1lc3NhZ2VMaWJWZXJzaW9uAAAAAAAAAwAAADNFbmRwb2ludCB2ZXJzaW9uIChzaG91bGQgbm90IGV4Y2VlZCB1ODo6TUFYID0gMjU1KS4AAAAAEGVuZHBvaW50X3ZlcnNpb24AAAAEAAAAFU1ham9yIHZlcnNpb24gbnVtYmVyLgAAAAAAAAVtYWpvcgAAAAAAAAYAAAA3TWlub3IgdmVyc2lvbiBudW1iZXIgKHNob3VsZCBub3QgZXhjZWVkIHU4OjpNQVggPSAyNTUpLgAAAAAFbWlub3IAAAAAAAAEAAAAAQAAADZUaW1lb3V0IGNvbmZpZ3VyYXRpb24gZm9yIHJlY2VpdmUgbGlicmFyeSB0cmFuc2l0aW9ucy4AAAAAAAAAAAAHVGltZW91dAAAAAACAAAAKFVuaXggdGltZXN0YW1wIHdoZW4gdGhlIHRpbWVvdXQgZXhwaXJlcy4AAAAGZXhwaXJ5AAAAAAAGAAAAKVRoZSBuZXcgbGlicmFyeSBhZGRyZXNzIHRvIHRyYW5zaXRpb24gdG8uAAAAAAAAA2xpYgAAAAATAAAAAQAAADVQYXJhbWV0ZXJzIGZvciBzZXR0aW5nIG1lc3NhZ2UgbGlicmFyeSBjb25maWd1cmF0aW9uLgAAAAAAAAAAAAAOU2V0Q29uZmlnUGFyYW0AAAAAAAMAAAAfWERSLWVuY29kZWQgY29uZmlndXJhdGlvbiBkYXRhLgAAAAAGY29uZmlnAAAAAAAOAAAAMFRoZSB0eXBlIG9mIGNvbmZpZ3VyYXRpb24gKGUuZy4sIGV4ZWN1dG9yLCBVTE4pLgAAAAtjb25maWdfdHlwZQAAAAAEAAAAJ1RoZSBlbmRwb2ludCBJRCB0aGlzIGNvbmZpZyBhcHBsaWVzIHRvLgAAAAADZWlkAAAAAAQAAAABAAAAMVJlc29sdmVkIGxpYnJhcnkgaW5mb3JtYXRpb24gd2l0aCBkZWZhdWx0IHN0YXR1cy4AAAAAAAAAAAAAD1Jlc29sdmVkTGlicmFyeQAAAAACAAAARFdoZXRoZXIgdGhpcyBpcyB0aGUgZGVmYXVsdCBsaWJyYXJ5ICh0cnVlKSBvciBPQXBwLXNwZWNpZmljIChmYWxzZSkuAAAACmlzX2RlZmF1bHQAAAAAAAEAAAAdVGhlIHJlc29sdmVkIGxpYnJhcnkgYWRkcmVzcy4AAAAAAAADbGliAAAAABMAAAABAAAASE91dGJvdW5kIHBhY2tldCBjb250YWluaW5nIGFsbCBpbmZvcm1hdGlvbiBmb3IgY3Jvc3MtY2hhaW4gdHJhbnNtaXNzaW9uLgAAAAAAAAAOT3V0Ym91bmRQYWNrZXQAAAAAAAcAAAAYRGVzdGluYXRpb24gZW5kcG9pbnQgSUQuAAAAB2RzdF9laWQAAAAABAAAACxHbG9iYWxseSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBtZXNzYWdlLgAAAARndWlkAAAD7gAAACAAAAAUVGhlIG1lc3NhZ2UgcGF5bG9hZC4AAAAHbWVzc2FnZQAAAAAOAAAAIE91dGJvdW5kIG5vbmNlIGZvciB0aGlzIHBhdGh3YXkuAAAABW5vbmNlAAAAAAAABgAAADFSZWNlaXZlciBhZGRyZXNzIG9uIGRlc3RpbmF0aW9uIGNoYWluICgzMiBieXRlcykuAAAAAAAACHJlY2VpdmVyAAAD7gAAACAAAAAfU2VuZGVyIGFkZHJlc3Mgb24gc291cmNlIGNoYWluLgAAAAAGc2VuZGVyAAAAAAATAAAAE1NvdXJjZSBlbmRwb2ludCBJRC4AAAAAB3NyY19laWQAAAAABAAAAAEAAAArQSBmZWUgcmVjaXBpZW50IHdpdGggdGhlIGFtb3VudCB0byBiZSBwYWlkLgAAAAAAAAAADEZlZVJlY2lwaWVudAAAAAIAAAAVQW1vdW50IG9mIGZlZSB0byBwYXkuAAAAAAAABmFtb3VudAAAAAAACwAAAB9UaGUgYWRkcmVzcyB0byBzZW5kIHRoZSBmZWUgdG8uAAAAAAJ0bwAAAAAAEwAAAAEAAAA8UmVzdWx0IG9mIHNlbmQgb3BlcmF0aW9uIGNvbnRhaW5pbmcgZmVlcyBhbmQgZW5jb2RlZCBwYWNrZXQuAAAAAAAAAA1GZWVzQW5kUGFja2V0AAAAAAAAAwAAACpUaGUgZW5jb2RlZCBwYWNrZXQgcmVhZHkgZm9yIHRyYW5zbWlzc2lvbi4AAAAAAA5lbmNvZGVkX3BhY2tldAAAAAAADgAAAD9MaXN0IG9mIG5hdGl2ZSB0b2tlbiBmZWUgcmVjaXBpZW50cyAoZXhlY3V0b3IsIERWTnMsIHRyZWFzdXJ5KS4AAAAAFW5hdGl2ZV9mZWVfcmVjaXBpZW50cwAAAAAAA+oAAAfQAAAADEZlZVJlY2lwaWVudAAAACxMaXN0IG9mIFpSTyB0b2tlbiBmZWUgcmVjaXBpZW50cyAodHJlYXN1cnkpLgAAABJ6cm9fZmVlX3JlY2lwaWVudHMAAAAAA+oAAAfQAAAADEZlZVJlY2lwaWVudAAAAAQAAAAdUGFja2V0Q29kZWNWMUVycm9yOiAxMTAwLTExMDkAAAAAAAAAAAAAElBhY2tldENvZGVjVjFFcnJvcgAAAAAAAgAAAAAAAAATSW52YWxpZFBhY2tldEhlYWRlcgAAAARMAAAAAAAAABRJbnZhbGlkUGFja2V0VmVyc2lvbgAABE0AAAAEAAAAHVdvcmtlck9wdGlvbnNFcnJvcjogMTExMC0xMTE5AAAAAAAAAAAAABJXb3JrZXJPcHRpb25zRXJyb3IAAAAAAAkAAAAAAAAAEkludmFsaWRCeXRlc0xlbmd0aAAAAAAEVgAAAAAAAAAZSW52YWxpZExlZ2FjeU9wdGlvbnNUeXBlMQAAAAAABFcAAAAAAAAAGUludmFsaWRMZWdhY3lPcHRpb25zVHlwZTIAAAAAAARYAAAAAAAAABFJbnZhbGlkT3B0aW9uVHlwZQAAAAAABFkAAAAAAAAADkludmFsaWRPcHRpb25zAAAAAARaAAAAAAAAAA9JbnZhbGlkV29ya2VySWQAAAAEWwAAAAAAAAAdTGVnYWN5T3B0aW9uc1R5cGUxR2FzT3ZlcmZsb3cAAAAAAARcAAAAAAAAACBMZWdhY3lPcHRpb25zVHlwZTJBbW91bnRPdmVyZmxvdwAABF0AAAAAAAAAHUxlZ2FjeU9wdGlvbnNUeXBlMkdhc092ZXJmbG93AAAAAAAEXgAAAAQAAAAcQnVmZmVyUmVhZGVyRXJyb3I6IDEwMDAtMTAwOQAAAAAAAAARQnVmZmVyUmVhZGVyRXJyb3IAAAAAAAACAAAAAAAAAA1JbnZhbGlkTGVuZ3RoAAAAAAAD6AAAAAAAAAAVSW52YWxpZEFkZHJlc3NQYXlsb2FkAAAAAAAD6QAAAAQAAAAcQnVmZmVyV3JpdGVyRXJyb3I6IDEwMTAtMTAxOQAAAAAAAAARQnVmZmVyV3JpdGVyRXJyb3IAAAAAAAABAAAAAAAAABVJbnZhbGlkQWRkcmVzc1BheWxvYWQAAAAAAAPyAAAABAAAAB9UdGxDb25maWd1cmFibGVFcnJvcjogMTAyMC0xMDI5AAAAAAAAAAAUVHRsQ29uZmlndXJhYmxlRXJyb3IAAAADAAAAAAAAABBJbnZhbGlkVHRsQ29uZmlnAAAD/AAAAAAAAAAPVHRsQ29uZmlnRnJvemVuAAAAA/0AAAAAAAAAFlR0bENvbmZpZ0FscmVhZHlGcm96ZW4AAAAAA/4AAAAEAAAAF093bmFibGVFcnJvcjogMTAzMC0xMDM5AAAAAAAAAAAMT3duYWJsZUVycm9yAAAABgAAAAAAAAATSW52YWxpZFBlbmRpbmdPd25lcgAAAAQGAAAAAAAAAApJbnZhbGlkVHRsAAAAAAQHAAAAAAAAABFOb1BlbmRpbmdUcmFuc2ZlcgAAAAAABAgAAAAAAAAAD093bmVyQWxyZWFkeVNldAAAAAQJAAAAAAAAAAtPd25lck5vdFNldAAAAAQKAAAAAAAAABJUcmFuc2ZlckluUHJvZ3Jlc3MAAAAABAsAAAAEAAAAGEJ5dGVzRXh0RXJyb3I6IDEwNDAtMTA0OQAAAAAAAAANQnl0ZXNFeHRFcnJvcgAAAAAAAAEAAAAAAAAADkxlbmd0aE1pc21hdGNoAAAAAAQQAAAABAAAABtVcGdyYWRlYWJsZUVycm9yOiAxMDUwLTEwNTkAAAAAAAAAABBVcGdyYWRlYWJsZUVycm9yAAAAAQAAAAAAAAATTWlncmF0aW9uTm90QWxsb3dlZAAAAAQaAAAABAAAABhNdWx0aXNpZ0Vycm9yOiAxMDYwLTEwNjkAAAAAAAAADU11bHRpc2lnRXJyb3IAAAAAAAAIAAAAAAAAABJBbHJlYWR5SW5pdGlhbGl6ZWQAAAAABCQAAAAAAAAADUludmFsaWRTaWduZXIAAAAAAAQlAAAAAAAAAA5TaWduYXR1cmVFcnJvcgAAAAAEJgAAAAAAAAATU2lnbmVyQWxyZWFkeUV4aXN0cwAAAAQnAAAAAAAAAA5TaWduZXJOb3RGb3VuZAAAAAAEKAAAAAAAAAAdVG90YWxTaWduZXJzTGVzc1RoYW5UaHJlc2hvbGQAAAAAAAQpAAAAAAAAAA9VbnNvcnRlZFNpZ25lcnMAAAAEKgAAAAAAAAANWmVyb1RocmVzaG9sZAAAAAAABCsAAAAFAAAAMEV2ZW50IGVtaXR0ZWQgd2hlbiBhIHNpZ25lciBpcyBhZGRlZCBvciByZW1vdmVkLgAAAAAAAAAJU2lnbmVyU2V0AAAAAAAAAQAAAApzaWduZXJfc2V0AAAAAAACAAAAAAAAAAZzaWduZXIAAAAAA+4AAAAUAAAAAQAAAAAAAAAGYWN0aXZlAAAAAAABAAAAAAAAAAIAAAAFAAAANkV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgc2lnbmF0dXJlIHRocmVzaG9sZCBpcyBjaGFuZ2VkLgAAAAAAAAAAAAxUaHJlc2hvbGRTZXQAAAABAAAADXRocmVzaG9sZF9zZXQAAAAAAAABAAAAAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAPTXVsdGlzaWdTdG9yYWdlAAAAAAIAAAAAAAAAAAAAAAdTaWduZXJzAAAAAAAAAAAAAAAACVRocmVzaG9sZAAAAAAAAAUAAABXRXZlbnQgZW1pdHRlZCB3aGVuIG93bmVyc2hpcCBpcyB0cmFuc2ZlcnJlZCAoYm90aCBzaW5nbGUtc3RlcCBhbmQgdHdvLXN0ZXAgY29tcGxldGlvbikuAAAAAAAAAAAUT3duZXJzaGlwVHJhbnNmZXJyZWQAAAABAAAAFW93bmVyc2hpcF90cmFuc2ZlcnJlZAAAAAAAAAIAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAIAAAAFAAAAO0V2ZW50IGVtaXR0ZWQgd2hlbiBhIDItc3RlcCBvd25lcnNoaXAgdHJhbnNmZXIgaXMgcHJvcG9zZWQuAAAAAAAAAAAVT3duZXJzaGlwVHJhbnNmZXJyaW5nAAAAAAAAAQAAABZvd25lcnNoaXBfdHJhbnNmZXJyaW5nAAAAAAADAAAAAAAAAAlvbGRfb3duZXIAAAAAAAATAAAAAAAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAAAAAAAA3R0bAAAAAAEAAAAAAAAAAIAAAAFAAAAKkV2ZW50IGVtaXR0ZWQgd2hlbiBvd25lcnNoaXAgaXMgcmVub3VuY2VkLgAAAAAAAAAAABJPd25lcnNoaXBSZW5vdW5jZWQAAAAAAAEAAAATb3duZXJzaGlwX3Jlbm91bmNlZAAAAAABAAAAAAAAAAlvbGRfb3duZXIAAAAAAAATAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAOT3duYWJsZVN0b3JhZ2UAAAAAAAIAAAAAAAAAAAAAAAVPd25lcgAAAAAAAAAAAAAAAAAADFBlbmRpbmdPd25lcgAAAAEAAABJVFRMIGNvbmZpZ3VyYXRpb246IHRocmVzaG9sZCAod2hlbiB0byBleHRlbmQpIGFuZCBleHRlbmRfdG8gKHRhcmdldCBUVEwpLgAAAAAAAAAAAAAJVHRsQ29uZmlnAAAAAAAAAgAAAChUYXJnZXQgVFRMIGFmdGVyIGV4dGVuc2lvbiAoaW4gbGVkZ2VycykuAAAACWV4dGVuZF90bwAAAAAAAAQAAAAzVFRMIHRocmVzaG9sZCB0aGF0IHRyaWdnZXJzIGV4dGVuc2lvbiAoaW4gbGVkZ2VycykuAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAABQAAACdFdmVudCBlbWl0dGVkIHdoZW4gVFRMIGNvbmZpZ3MgYXJlIHNldC4AAAAAAAAAAA1UdGxDb25maWdzU2V0AAAAAAAAAQAAAA90dGxfY29uZmlnc19zZXQAAAAAAgAAAAAAAAAIaW5zdGFuY2UAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAAAAAApwZXJzaXN0ZW50AAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAgAAAAUAAAAqRXZlbnQgZW1pdHRlZCB3aGVuIFRUTCBjb25maWdzIGFyZSBmcm96ZW4uAAAAAAAAAAAAEFR0bENvbmZpZ3NGcm96ZW4AAAABAAAAEnR0bF9jb25maWdzX2Zyb3plbgAAAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAQVHRsQ29uZmlnU3RvcmFnZQAAAAMAAAAAAAAAAAAAAAZGcm96ZW4AAAAAAAAAAAAAAAAACEluc3RhbmNlAAAAAAAAAAAAAAAKUGVyc2lzdGVudAAAAAAAAgAAAAAAAAAAAAAAElVwZ3JhZGVhYmxlU3RvcmFnZQAAAAAAAQAAAAAAAAAAAAAACU1pZ3JhdGluZwAAAAAAAAQAAAAWV29ya2VyRXJyb3I6IDEyMDAtMTI5OQAAAAAAAAAAAAtXb3JrZXJFcnJvcgAAAAATAAAAAAAAABJBZG1pbkFscmVhZHlFeGlzdHMAAAAABLAAAAAAAAAADUFkbWluTm90Rm91bmQAAAAAAASxAAAAAAAAABJBbHJlYWR5T25BbGxvd2xpc3QAAAAABLIAAAAAAAAAEUFscmVhZHlPbkRlbnlsaXN0AAAAAAAEswAAAAAAAAAbQXR0ZW1wdGluZ1RvUmVtb3ZlT25seUFkbWluAAAABLQAAAAAAAAAFERlcG9zaXRBZGRyZXNzTm90U2V0AAAEtQAAAAAAAAAaTWVzc2FnZUxpYkFscmVhZHlTdXBwb3J0ZWQAAAAABLYAAAAAAAAAFk1lc3NhZ2VMaWJOb3RTdXBwb3J0ZWQAAAAABLcAAAAAAAAAEE5vQWRtaW5zUHJvdmlkZWQAAAS4AAAAAAAAAApOb3RBbGxvd2VkAAAAAAS5AAAAAAAAAA5Ob3RPbkFsbG93bGlzdAAAAAAEugAAAAAAAAANTm90T25EZW55bGlzdAAAAAAABLsAAAAAAAAAFFBhdXNlU3RhdHVzVW5jaGFuZ2VkAAAEvAAAAAAAAAAPUHJpY2VGZWVkTm90U2V0AAAABL0AAAAAAAAADFJlSW5pdGlhbGl6ZQAABL4AAAAAAAAADFVuYXV0aG9yaXplZAAABL8AAAAAAAAAFVVuc3VwcG9ydGVkTWVzc2FnZUxpYgAAAAAABMAAAAAAAAAAEldvcmtlckZlZUxpYk5vdFNldAAAAAAEwQAAAAAAAAAOV29ya2VySXNQYXVzZWQAAAAABMIAAAAFAAAAAAAAAAAAAAAIU2V0QWRtaW4AAAABAAAACXNldF9hZG1pbgAAAAAAAAIAAAAAAAAABWFkbWluAAAAAAAAEwAAAAAAAAAAAAAABmFjdGl2ZQAAAAAAAQAAAAAAAAACAAAABQAAAAAAAAAAAAAAFlNldFN1cHBvcnRlZE1lc3NhZ2VMaWIAAAAAAAEAAAAZc2V0X3N1cHBvcnRlZF9tZXNzYWdlX2xpYgAAAAAAAAIAAAAAAAAAC21lc3NhZ2VfbGliAAAAABMAAAAAAAAAAAAAAAlzdXBwb3J0ZWQAAAAAAAABAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAMU2V0QWxsb3dsaXN0AAAAAQAAAA1zZXRfYWxsb3dsaXN0AAAAAAAAAgAAAAAAAAAEb2FwcAAAABMAAAAAAAAAAAAAAAdhbGxvd2VkAAAAAAEAAAAAAAAAAgAAAAUAAAAAAAAAAAAAAAtTZXREZW55bGlzdAAAAAABAAAADHNldF9kZW55bGlzdAAAAAIAAAAAAAAABG9hcHAAAAATAAAAAAAAAAAAAAAGZGVuaWVkAAAAAAABAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAGUGF1c2VkAAAAAAABAAAABnBhdXNlZAAAAAAAAQAAAAAAAAAGcGF1c2VyAAAAAAATAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAIVW5wYXVzZWQAAAABAAAACHVucGF1c2VkAAAAAQAAAAAAAAAIdW5wYXVzZXIAAAATAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAXU2V0RGVmYXVsdE11bHRpcGxpZXJCcHMAAAAAAQAAABpzZXRfZGVmYXVsdF9tdWx0aXBsaWVyX2JwcwAAAAAAAQAAAAAAAAAObXVsdGlwbGllcl9icHMAAAAAAAQAAAAAAAAAAgAAAAUAAAAAAAAAAAAAABFTZXREZXBvc2l0QWRkcmVzcwAAAAAAAAEAAAATc2V0X2RlcG9zaXRfYWRkcmVzcwAAAAABAAAAAAAAAA9kZXBvc2l0X2FkZHJlc3MAAAAAEwAAAAAAAAACAAAABQAAAAAAAAAAAAAADFNldFByaWNlRmVlZAAAAAEAAAAOc2V0X3ByaWNlX2ZlZWQAAAAAAAEAAAAAAAAACnByaWNlX2ZlZWQAAAAAABMAAAAAAAAAAgAAAAUAAAAAAAAAAAAAABdTZXRTdXBwb3J0ZWRPcHRpb25UeXBlcwAAAAABAAAAGnNldF9zdXBwb3J0ZWRfb3B0aW9uX3R5cGVzAAAAAAACAAAAAAAAAAdkc3RfZWlkAAAAAAQAAAAAAAAAAAAAAAxvcHRpb25fdHlwZXMAAAAOAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAPU2V0V29ya2VyRmVlTGliAAAAAAEAAAASc2V0X3dvcmtlcl9mZWVfbGliAAAAAAABAAAAAAAAAAdmZWVfbGliAAAAABMAAAAAAAAAAgAAAAEAAADhUGFyYW1ldGVycyBmb3IgRFZOIGZlZSBjYWxjdWxhdGlvbi4KCkNvbnRhaW5zIGFsbCBpbnB1dHMgbmVlZGVkIGJ5IHRoZSBmZWUgbGlicmFyeSB0byBjYWxjdWxhdGUgdmVyaWZpY2F0aW9uIGZlZXMKZm9yIGNyb3NzLWNoYWluIG1lc3NhZ2VzLiBJbmNsdWRlcyBtZXNzYWdlIHBhcmFtZXRlcnMsIGNvbW1vbiBjb25maWd1cmF0aW9uLAphbmQgZGVzdGluYXRpb24tc3BlY2lmaWMgc2V0dGluZ3MuAAAAAAAAAAAAAAxEdm5GZWVQYXJhbXMAAAAKAAAAJ051bWJlciBvZiBibG9jayBjb25maXJtYXRpb25zIHJlcXVpcmVkLgAAAAANY29uZmlybWF0aW9ucwAAAAAAAAYAAABMRGVmYXVsdCBmZWUgbXVsdGlwbGllciBpbiBiYXNpcyBwb2ludHMgKHVzZWQgaWYgbm8gZHN0LXNwZWNpZmljIG11bHRpcGxpZXIpLgAAABZkZWZhdWx0X211bHRpcGxpZXJfYnBzAAAAAAAEAAAAK0Rlc3RpbmF0aW9uIGVuZHBvaW50IElEIChjaGFpbiBpZGVudGlmaWVyKS4AAAAAB2RzdF9laWQAAAAABAAAACNNaW5pbXVtIGZlZSBtYXJnaW4gaW4gVVNEIChzY2FsZWQpLgAAAAAQZmxvb3JfbWFyZ2luX3VzZAAAAAoAAAEQPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KRGVzdGluYXRpb24tU3BlY2lmaWMgQ29uZmlndXJhdGlvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpHYXMgZXN0aW1hdGUgZm9yIHZlcmlmaWNhdGlvbiBvbiBkZXN0aW5hdGlvbiBjaGFpbi4AAAADZ2FzAAAAAAoAAABGRGVzdGluYXRpb24tc3BlY2lmaWMgZmVlIG11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzICgwID0gdXNlIGRlZmF1bHQpLgAAAAAADm11bHRpcGxpZXJfYnBzAAAAAAAEAAAAC0RWTiBvcHRpb25zAAAAAAdvcHRpb25zAAAAAA4AAAEQPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ29tbW9uIENvbmZpZ3VyYXRpb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUHJpY2UgZmVlZCBjb250cmFjdCBhZGRyZXNzIGZvciBnYXMgcHJpY2UgYW5kIGV4Y2hhbmdlIHJhdGUgZGF0YS4AAAAKcHJpY2VfZmVlZAAAAAAAEwAAACdOdW1iZXIgb2YgcmVxdWlyZWQgc2lnbmF0dXJlcyAocXVvcnVtKS4AAAAABnF1b3J1bQAAAAAABAAAAOU9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpNZXNzYWdlIFBhcmFtZXRlcnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KVGhlIE9BcHAgc2VuZGVyIGFkZHJlc3MuAAAAAAAABnNlbmRlcgAAAAAAEwAAAAEAAADjUGFyYW1ldGVycyBmb3IgZXhlY3V0b3IgZmVlIGNhbGN1bGF0aW9uLgoKQ29udGFpbnMgYWxsIGlucHV0cyBuZWVkZWQgYnkgdGhlIGZlZSBsaWJyYXJ5IHRvIGNhbGN1bGF0ZSBleGVjdXRpb24gZmVlcwpmb3IgY3Jvc3MtY2hhaW4gbWVzc2FnZXMuIEluY2x1ZGVzIG1lc3NhZ2UgcGFyYW1ldGVycywgY29tbW9uIGNvbmZpZ3VyYXRpb24sCmFuZCBkZXN0aW5hdGlvbi1zcGVjaWZpYyBzZXR0aW5ncy4AAAAAAAAAAAlGZWVQYXJhbXMAAAAAAAALAAAAJlNpemUgb2YgdGhlIG1lc3NhZ2UgY2FsbGRhdGEgaW4gYnl0ZXMuAAAAAAANY2FsbGRhdGFfc2l6ZQAAAAAAAAQAAABMRGVmYXVsdCBmZWUgbXVsdGlwbGllciBpbiBiYXNpcyBwb2ludHMgKHVzZWQgaWYgbm8gZHN0LXNwZWNpZmljIG11bHRpcGxpZXIpLgAAABZkZWZhdWx0X211bHRpcGxpZXJfYnBzAAAAAAAEAAAAK0Rlc3RpbmF0aW9uIGVuZHBvaW50IElEIChjaGFpbiBpZGVudGlmaWVyKS4AAAAAB2RzdF9laWQAAAAABAAAACNNaW5pbXVtIGZlZSBtYXJnaW4gaW4gVVNEIChzY2FsZWQpLgAAAAAQZmxvb3JfbWFyZ2luX3VzZAAAAAoAAAA2QmFzZSBnYXMgZm9yIGVhY2ggbHpDb21wb3NlIGNhbGwgb24gZGVzdGluYXRpb24gY2hhaW4uAAAAAAATbHpfY29tcG9zZV9iYXNlX2dhcwAAAAAGAAABEz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkRlc3RpbmF0aW9uLVNwZWNpZmljIENvbmZpZ3VyYXRpb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQmFzZSBnYXMgZm9yIGx6UmVjZWl2ZSBleGVjdXRpb24gb24gZGVzdGluYXRpb24gY2hhaW4uAAAAABNsel9yZWNlaXZlX2Jhc2VfZ2FzAAAAAAYAAABGRGVzdGluYXRpb24tc3BlY2lmaWMgZmVlIG11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzICgwID0gdXNlIGRlZmF1bHQpLgAAAAAADm11bHRpcGxpZXJfYnBzAAAAAAAEAAAALE1heGltdW0gbmF0aXZlIHRva2VuIHZhbHVlIHRoYXQgY2FuIGJlIHNlbnQuAAAACm5hdGl2ZV9jYXAAAAAAAAoAAABGRW5jb2RlZCBleGVjdXRvciBvcHRpb25zIChselJlY2VpdmUgZ2FzLCBsekNvbXBvc2UsIG5hdGl2ZURyb3AsIGV0Yy4pLgAAAAAAB29wdGlvbnMAAAAADgAAARA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpDb21tb24gQ29uZmlndXJhdGlvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpQcmljZSBmZWVkIGNvbnRyYWN0IGFkZHJlc3MgZm9yIGdhcyBwcmljZSBhbmQgZXhjaGFuZ2UgcmF0ZSBkYXRhLgAAAApwcmljZV9mZWVkAAAAAAATAAAA5T09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ck1lc3NhZ2UgUGFyYW1ldGVycwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpUaGUgT0FwcCBzZW5kZXIgYWRkcmVzcy4AAAAAAAAGc2VuZGVyAAAAAAATAAAAAQAAAIRHYXMgcHJpY2UgaW5mb3JtYXRpb24gZm9yIGEgZGVzdGluYXRpb24gZW5kcG9pbnQuCgpDb250YWlucyB0aGUgZXhjaGFuZ2UgcmF0ZSBhbmQgZ2FzIGNvc3RzIG5lZWRlZCBmb3IgY3Jvc3MtY2hhaW4gZmVlIGNhbGN1bGF0aW9ucy4AAAAAAAAABVByaWNlAAAAAAAAAwAAADdHYXMgY29zdCBwZXIgYnl0ZSBvZiBjYWxsZGF0YSBvbiB0aGUgZGVzdGluYXRpb24gY2hhaW4uAAAAAAxnYXNfcGVyX2J5dGUAAAAEAAAAQkdhcyBwcmljZSBpbiB0aGUgc21hbGxlc3QgdW5pdCAod2VpIGZvciBFVk0sIHN0cm9vcHMgZm9yIFN0ZWxsYXIpLgAAAAAAEWdhc19wcmljZV9pbl91bml0AAAAAAAABgAAAKlQcmljZSByYXRpbyA9IChyZW1vdGUgbmF0aXZlIHRva2VuIHByaWNlIC8gbG9jYWwgbmF0aXZlIHRva2VuIHByaWNlKSAqIFBSSUNFX1JBVElPX0RFTk9NSU5BVE9SLgpVc2VkIHRvIGNvbnZlcnQgZGVzdGluYXRpb24gY2hhaW4gZ2FzIGNvc3RzIHRvIHNvdXJjZSBjaGFpbiBuYXRpdmUgdG9rZW4uAAAAAAAAC3ByaWNlX3JhdGlvAAAAAAoAAAABAAAAgEZlZSBlc3RpbWF0aW9uIHJlc3VsdCB3aXRoIGRldGFpbGVkIGJyZWFrZG93bi4KCkNvbnRhaW5zIHRoZSBjYWxjdWxhdGVkIGZlZSBhbmQgYWxsIGludGVybWVkaWF0ZSB2YWx1ZXMgdXNlZCBpbiB0aGUgY2FsY3VsYXRpb24uAAAAAAAAAAtGZWVFc3RpbWF0ZQAAAAAEAAAAMFNvdXJjZSBjaGFpbiBuYXRpdmUgdG9rZW4gcHJpY2UgaW4gVVNEIChzY2FsZWQpLgAAABBuYXRpdmVfcHJpY2VfdXNkAAAACgAAACVQcmljZSByYXRpbyB1c2VkIGZvciB0aGUgY2FsY3VsYXRpb24uAAAAAAAAC3ByaWNlX3JhdGlvAAAAAAoAAAAyRGVub21pbmF0b3IgZm9yIHRoZSBwcmljZSByYXRpbyAodHlwaWNhbGx5IDEwXjIwKS4AAAAAABdwcmljZV9yYXRpb19kZW5vbWluYXRvcgAAAAAKAAAAMVRvdGFsIGdhcyBmZWUgaW4gc291cmNlIGNoYWluIG5hdGl2ZSB0b2tlbiB1bml0cy4AAAAAAAANdG90YWxfZ2FzX2ZlZQAAAAAAAAsAAAACAAAAAAAAAAAAAAANV29ya2VyU3RvcmFnZQAAAAAAAAsAAAAAAAAAAAAAAAZQYXVzZWQAAAAAAAAAAAAAAAAADkRlcG9zaXRBZGRyZXNzAAAAAAAAAAAAAAAAAAlQcmljZUZlZWQAAAAAAAAAAAAAAAAAAAxXb3JrZXJGZWVMaWIAAAAAAAAAAAAAABREZWZhdWx0TXVsdGlwbGllckJwcwAAAAEAAAAAAAAAFFN1cHBvcnRlZE9wdGlvblR5cGVzAAAAAQAAAAQAAAAAAAAAAAAAAAtNZXNzYWdlTGlicwAAAAABAAAAAAAAAAlBbGxvd2xpc3QAAAAAAAABAAAAEwAAAAEAAAAAAAAACERlbnlsaXN0AAAAAQAAABMAAAAAAAAAAAAAAA1BbGxvd2xpc3RTaXplAAAAAAAAAAAAAAAAAAAGQWRtaW5zAAAAiwEOY29udHJhY3RtZXRhdjAAAAAAAAAABmJpbnZlcgAAAAAABTAuMC4xAAAAAAAAAAAAAAVyc3ZlcgAAAAAAAAYxLjkwLjAAAAAAAAAAAAAIcnNzZGt2ZXIAAAAvMjMuNC4wIzY3M2Q2YzRmMjM2OGQyODJkMjVkYTI5YmRhNTVjMjFiOGJlNjljYTYAAB4RY29udHJhY3RlbnZtZXRhdjAAAAAAAAAAFwAAAAA=";
|
|
11
|
+
export declare const WASM_BASE64 = "AGFzbQEAAAABiQEYYAJ+fgF+YAF+AX5gAAF+YAN+fn4BfmAEfn5+fgF+YAABf2ABfwBgAn9/AGABfwF/YAF/AX5gAn5+AX9gAABgAn5/AGABfgBgA39+fgBgBX5/f39/AGACf34AYAJ/fwF+YAN+f38AYAJ+fgBgBH9/f38BfmADf39/AGAEf35+fwBgBX9+fn5+AAK7AR8BbAExAAABYQEwAAEBYgE4AAEBYgEzAAABeAE3AAIBaQEzAAABZAFfAAMBaQE4AAEBaQE3AAEBaQE2AAABbAE2AAEBYgEwAAEBeAEwAAABbAE3AAQBeAExAAABbAEyAAABbAFfAAMBaQEwAAEBaQE1AAEBaQE0AAEBYgFqAAABYgExAAQBbQE5AAMBbQFhAAQBdgFnAAABeAEzAAIBeAE4AAIBbAEwAAABbAE4AAABeAE1AAEBYgFmAAMDUE8FBgcIBQkKCwICBgwLBg0JBg4ADxAQCAgRBxIREQsLAgEHBw0BBgECBwICAgACARMACwUOARQCCwIAABAJAgcHAgILFRUQFRAJFRYWFxcXBQMBABEGIQR/AUGAgMAAC38AQduCwAALfwBB/4TAAAt/AEGAhcAACwfYAhcGbWVtb3J5AgAHZ2V0X2ZlZQAxB3ZlcnNpb24APg1fX2NvbnN0cnVjdG9yAD8HdXBncmFkZQBDB21pZ3JhdGUARQZmcmVlemUARglpc19mcm96ZW4ASAphdXRob3JpemVyAEkFb3duZXIASg1wZW5kaW5nX293bmVyAEwSdHJhbnNmZXJfb3duZXJzaGlwAE0acHJvcG9zZV9vd25lcnNoaXBfdHJhbnNmZXIATxBhY2NlcHRfb3duZXJzaGlwAFUScmVub3VuY2Vfb3duZXJzaGlwAFcTZXh0ZW5kX2luc3RhbmNlX3R0bABYD3NldF90dGxfY29uZmlncwBZC3R0bF9jb25maWdzAFwSZnJlZXplX3R0bF9jb25maWdzAF8VaXNfdHRsX2NvbmZpZ3NfZnJvemVuAGABXwMBCl9fZGF0YV9lbmQDAgtfX2hlYXBfYmFzZQMDCrpdT1gBAn8jgICAgABBEGsiACSAgICAACAAQQRqEKCAgIAAAkAgACgCBEEBRw0AIAAoAgggACgCDBChgICAAAtBABCigICAACEBIABBEGokgICAgAAgAUH9AXELDAAgAEEBEN2AgIAACxsAIACtQiCGQgSEIAGtQiCGQgSEEJyAgIAAGgtHAgF/AX5BAiEBAkAgABDngICAACICQgIQpYCAgABFDQBBASEBAkACQCACQgIQgICAgACnQf8BcQ4CAQIACwALQQAhAQsgAQuLAQICfwF+I4CAgIAAQRBrIgAkgICAgAAgAEEEahCggICAAAJAIAAoAgRBAUcNACAAKAIIIAAoAgwQoYCAgAALQQAhAQJAQQAQpICAgAAiAkICEKWAgIAARQ0AQQEhAQJAAkAgAkICEICAgIAAp0H/AXEOAgECAAsAC0EAIQELIABBEGokgICAgAAgAQvCAQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQAJAAkAgAEH/AXEOAwABAgALIAFB3oTAgABBBhDjgICAACABKAIADQMgASABKQMIEOaAgIAADAILIAFB5ITAgABBCBDjgICAACABKAIADQIgASABKQMIEOaAgIAADAELIAFB7ITAgABBChDjgICAACABKAIADQEgASABKQMIEOaAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILDwAgACABEJuAgIAAQgFRCw8AEKeAgIAAEIGAgIAAGgtmAgF/AX4jgICAgABBEGsiACSAgICAACAAEKCAgIAAAkAgACgCAEEBRw0AIAAoAgQgACgCCBChgICAAAsgABCpgICAACAAKQMIIQEgACkDAEGKCBCqgICAACAAQRBqJICAgIAAIAELSgIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABCpgICAACAAKQMIIQEgACkDAEGKCBCqgICAACABEIGAgIAAGiAAQRBqJICAgIAAIAELUAEBfyOAgICAAEEQayIBJICAgIAAIAFBBGoQoICAgAACQCABKAIEQQFHDQAgASgCCCABKAIMEKGAgIAACyAAEK+AgIAAIAFBEGokgICAgAALKQACQCAAp0EBcUUNAA8LIAFB+ndqrUIghkKDgICA4IABfBCtgICAAAALQgEBfyOAgICAAEEQayIAJICAgIAAIAAQrICAgAACQCAAKQMAUA0AQoOAgICwgQEQrYCAgAAACyAAQRBqJICAgIAAC5MBAgF/An4jgICAgABBEGsiASSAgICAACABQQRqEKCAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBChgICAAAtCACECAkACQEEBEK6AgIAAIgNCABClgICAAEUNACADQgAQgICAgAAiAkL/AYNCzQBSDQEgACACNwMIQgEhAgsgACACNwMAIAFBEGokgICAgAAPCwALCwAgABCdgICAABoLkgECAX8BfiOAgICAAEEQayIBJICAgIAAAkACQAJAAkAgAEEBcUUNACABQfGDwIAAQQwQ44CAgAAgASgCAA0CIAEgASkDCBDmgICAAAwBCyABQeyDwIAAQQUQ44CAgAAgASgCAA0BIAEgASkDCBDmgICAAAsgASkDCCECIAEpAwBQDQELAAsgAUEQaiSAgICAACACC00BAn5CACEBAkACQEEAEK6AgIAAIgJCAhClgICAAEUNACACQgIQgICAgAAiAUL/AYNCzQBSDQEgACABNwMIQgEhAQsgACABNwMADwsACygAAkAgAkJ/VQ0AQoOAgICQARCtgICAAAALIAAgATcDACAAIAI3AwgLthwFAn8OfgF/AX4GfyOAgICAAEGwBGsiAiSAgICAAAJAAkAgAEL/AYNCzQBSDQBBACEDAkADQCADQdgARg0BIAJBsANqIANqQgI3AwAgA0EIaiEDDAALCyABQv8Bg0LMAFINACABQZCBwIAAQQsgAkGwA2pBCxCygICAACACKQOwAyIBQv8Bg0IEUg0AIAIpA7gDIgBC/wGDQgRSDQAgAikDwAMiBEL/AYNCBFINACACQZACaiACKQPIAxCzgICAACACKAKQAkEBRg0AIAIpA6gCIQUgAikDoAIhBiACQZACaiACKQPQAxC0gICAACACKAKQAg0AIAIpA5gCIQcgAkGQAmogAikD2AMQtICAgAAgAigCkAINACACKQPgAyIIQv8Bg0IEUg0AIAIpA5gCIQkgAkGQAmogAikD6AMQs4CAgAAgAigCkAJBAUYNACACKQPwAyIKQv8Bg0LIAFINACACKQP4AyILQv8Bg0LNAFINACACKQOABCIMQv8Bg0LNAFINACACKQOoAiENIAIgAikDoAI3A6ACIAIgBjcDkAIgAiAIQiCIpzYC5AIgAiAAQiCIpzYC4AIgAiABQiCIpzYC3AIgAiAEQiCIpzYC2AIgAiAHNwPQAiACIAk3A8gCIAIgCzcDwAIgAiAKNwO4AiACIAw3A7ACIAIgDTcDqAIgAiAFNwOYAiACQbADahCggICAAAJAIAIoArADQQFHDQAgAigCtAMgAigCuAMQoYCAgAALAkAgAikDyAIiDkIAUQ0AIAIpA6gCIQ8gAikDoAIhECACKQPQAiERIAIoAtgCIQMCQCACKQO4AhCCgICAAEKAgICAEFQNACACQQA2AvQCIAIgAkG4AmoiEjYC8AIgAkGQBGqtQiCGQgSEIRMgA0Gv6gFLIRQgAkGwA2pBGGohFSACQbADakEIaiEWIANBsOoBSSEXQQAhA0IAIQdCACEGQQAhGEIAIQxCACEIQgAhBUIAIQBCACEBA0AgGCEZIAMgEikDABCCgICAAEIgiKciGEsNBAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAMgGEcNACAAIBBWIAEgD1YgASAPURtFDQFCg4CAgPAAEK2AgIAAAAsgAkHwAmoQtYCAgAAaIAJB8AJqELaAgIAAIQMgAkHwAmoQtYCAgAAhEiADQf//A3FFDRMgAiACQfACaiADQX9qQf//A3EQt4CAgAAiBDcD+AJBASEYIBJB/wFxQX9qDgQCAwQOAQsgByAGhEIAUQ0LIAggB3wiByAIVCIDIAUgBnwgA618IgQgBVQgBCAFURtBAUcNBAwSC0KDgICAoAEQrYCAgAAACwJAAkACQCAEEIKAgIAAQiCIIgSnIgNBIEYNACADQRBHDQELIAJBADYClAQgAiACQfgCajYCkAQgAkGwA2ogAkGQBGoQuICAgAAgAikDuAMhCyACKQOwAyENIARCIFENAUIAIQlCACEKDAwLQoOAgIDQABCtgICAAAALIAJBsANqIAJBkARqELiAgIAAIAIpA7gDIQogAikDsAMhCSAUDQogCSAKhEIAUQ0KQoOAgICgARCtgICAAAALIAQQgoCAgABCgICAgHCDQoCAgICABlINByACQQA2AqwDIAIgAkH4Amo2AqgDIAJBgANqIAJBqANqELiAgIAAIAJBqANqQSAQt4CAgAAiBBCCgICAAEKAgICAcINCgICAgIAEUg0GIBVCADcDACACQbADakEQaiIDQgA3AwAgFkIANwMAIAJCADcDsAMgBBCCgICAAEKAgICAcINCgICAgIAEUg0FIAQgAkGwA2pBIBC5gICAACACQZAEakEYaiAVKQMANwMAIAJBkARqQRBqIAMpAwA3AwAgAkGQBGpB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sAMhAAsgBCABhUJ/hSAEIAQgAXwgBSAAfCIBIAVUrXwiAIWDQn9XDRACQAJAIAFCgICAgICAgMAAfEL//////////wBWDQAgASABhSAAIAFCP4eFhEIAUg0AIAFCCIZCC4QhAQwBCyAAIAEQiYCAgAAhAQsgAkGwBGokgICAgAAgAQ8LIAJBsANqIANqQgI3AwAgA0EIaiEDDAALC0KDgICAMBCtgICAAAALQoOAgICwARCtgICAAAALQoOAgICgARCtgICAAAALQoOAgIDAABCtgICAAAALELyAgIAAAAtCg4CAgICCARCtgICAAAALQoOAgIDgABCtgICAAAALQoOAgIDAARCtgICAAAALIAcgDXwiDSAHVCIDIAYgC3wgA618IgQgBlQgBCAGURsNBSAAIAl8IgsgAFQiAyABIAp8IAOtfCIJIAFUIAkgAVEbDQUgDSEHIAQhBiAZIRggCyEAIAkhAQsgAigC9AIhAyACKALwAiESDAALC0KDgICAgAEQrYCAgAAAC0KDgICAEBCtgICAAAALAAsQvYCAgAAACzEAAkAgAiAERg0AAAsgACABrUIghkIEhCADrUIghkIEhCACrUIghkIEhBCXgICAABoLewIBfwF+AkACQAJAIAGnQf8BcSICQcQARg0AIAJBCkcNAUIAIQMgAEIANwMYIAAgAUIIiDcDEAwCCyABEJKAgIAAIQMgARCTgICAACEBIAAgAzcDGCAAIAE3AxBCACEDDAELIABCg5CAgIABNwMIQgEhAwsgACADNwMAC10CAX8BfgJAAkAgAadB/wFxIgJBwABGDQACQCACQQZGDQBCASEDQoOQgICAASEBDAILIAFCCIghAUIAIQMMAQtCACEDIAEQkYCAgAAhAQsgACADNwMAIAAgATcDCAuYAQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAIABBARC3gICAACICEIKAgIAAQoCAgIBwg0KAgICAEFINACABQQA6AA8gAhCCgICAAEKAgICAcINCgICAgBBSDQEgAiABQQ9qQQEQuYCAgAAgAS0ADyEAIAFBEGokgICAgAAgAA8LQoOAgICAggEQrYCAgAAACxC8gICAAAALoQECAX8BfiOAgICAAEEQayIBJICAgIAAAkACQCAAQQIQt4CAgAAiAhCCgICAAEKAgICAcINCgICAgCBSDQAgAUEAOwEOIAIQgoCAgABCgICAgHCDQoCAgIAgUg0BIAIgAUEOakECELmAgIAAIAEvAQ4hACABQRBqJICAgIAAIABBCHQgAEEIdnIPC0KDgICAgIIBEK2AgIAAAAsQvICAgAAAC3UCAn8BfgJAAkAgACgCBCICIAFqIgEgAkkNACABIAAoAgAiAykDABCCgICAAEIgiKdLDQEgAykDACACrUIghkIEhCABrUIghkIEhBCegICAACEEIAAgATYCBCAEDwsQvYCAgAAAC0KDgICAgP0AEK2AgIAAAAvRAgIBfwJ+I4CAgIAAQRBrIgIkgICAgAACQAJAIAFBEBC3gICAACIDEIKAgIAAQoCAgIBwg0KAgICAgAJSDQAgAkIANwMIIAJCADcDACADEIKAgIAAQoCAgIBwg0KAgICAgAJSDQEgAyACQRAQuYCAgAAgAikDCCEDIAAgAikDACIEQjiGIARCgP4Dg0IohoQgBEKAgPwHg0IYhiAEQoCAgPgPg0IIhoSEIARCCIhCgICA+A+DIARCGIhCgID8B4OEIARCKIhCgP4DgyAEQjiIhISENwMIIAAgA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhDcDACACQRBqJICAgIAADwtCg4CAgICCARCtgICAAAALELyAgIAAAAsfACAAQgQgAa1CIIZCBIQgAq1CIIZCBIQQlYCAgAAaC0UCAX8BfiOAgICAAEEQayICJICAgIAAIAIgACABEOKAgIAAAkAgAigCAEEBRw0AAAsgAikDCCEDIAJBEGokgICAgAAgAwsaACAArUIghkIEhCABrUIghkIEhBCYgICAAAsJABC9gICAAAALCQAQ4YCAgAAAC2gCAX8BfiOAgICAAEEQayIAJICAgIAAIAAQoICAgAACQCAAKAIAQQFHDQAgACgCBCAAKAIIEKGAgIAACyAAQoSAgIAQNwMIIABChgI3AwAgAEECELuAgIAAIQEgAEEQaiSAgICAACABC10AAkACQCAAQv8Bg0LNAFINAEGAyx5BgNIfEMCAgIAAQYDLHkGA0h8QwYCAgABBABCugICAAEICEKWAgIAADQEgABDCgICAAEICDwsAC0KDgICAkIEBEK2AgIAAAAsOAEEBIAAgARDogICAAAsOAEECIAAgARDogICAAAsOAEEAIABCAhDSgICAAAulAQEBfyOAgICAAEEQayIBJICAgIAAAkACQCAAQv8Bg0LIAFINACAAEIKAgIAAQoCAgIBwg0KAgICAgARSDQAgAUEEahCggICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQoYCAgAALEKaAgIAAEJ+AgIAADQFBARDEgICAACAAEIqAgIAAGiABQRBqJICAgIAAQgIPCwALQoOAgIDAgwEQrYCAgAAACwwAQQEgABDHgICAAAutAQEBfyOAgICAAEEQayIBJICAgIAAAkACQAJAIABC/wGDQsgAUg0AIAFBBGoQoICAgAACQCABKAIEQQFHDQAgASgCCCABKAIMEKGAgIAACxCmgICAAEEBEKKAgIAAQf0BcUUNASAAEIuAgIAAQv8Bg0ICUg0CQQAQxICAgAAgAUEQaiSAgICAAEICDwsAC0KDgICAsIMBEK2AgIAAAAtCg4CAgKCDARCtgICAAAALWgEBfyOAgICAAEEQayIAJICAgIAAIABBBGoQoICAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMEKGAgIAACxCmgICAAEEAQQEQx4CAgAAgAEEQaiSAgICAAEICCxoAIAAQ54CAgAAgAa1C/wGDQgIQkICAgAAaCwkAEJ+AgIAArQsIABCngICAAAs+AgF/AX4jgICAgABBEGsiACSAgICAACAAEKmAgIAAIAApAwAgACkDCBDLgICAACEBIABBEGokgICAgAAgAQsNACABQgIgAKdBAXEbCz4CAX8BfiOAgICAAEEQayIAJICAgIAAIAAQrICAgAAgACkDACAAKQMIEMuAgIAAIQEgAEEQaiSAgICAACABC30CAX8BfiOAgICAAEEQayIBJICAgIAAAkAgAEL/AYNCzQBSDQAgAUEEahCggICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQoYCAgAALEKiAgIAAIQIQq4CAgAAgABDCgICAACACIAAQzoCAgAAgAUEQaiSAgICAAEICDwsAC2ECAX8BfiOAgICAAEEQayICJICAgIAAQeSCwIAAQRUQuoCAgAAQ04CAgAAhAyACIAA3AwggAiABNwMAIANBjIPAgABBAiACQQIQ1ICAgAAQjoCAgAAaIAJBEGokgICAgAAL3QICAX8CfiOAgICAAEEgayICJICAgIAAAkACQAJAIABC/wGDQs0AUg0AIAFC/wGDQgRSDQAgAkEIahCggICAAAJAIAIoAghBAUcNACACKAIMIAIoAhAQoYCAgAALEKiAgIAAIQMCQAJAIAFC/////w9WDQAgAkEIahCsgICAACACKQMQIQEgAikDCEGICBCqgICAACABIAAQjICAgABQRQ0DENCAgIAADAELENGAgIAAIAFCIIinSQ0DQQEgAEIAENKAgIAAQQEQroCAgABCACABQoSAgIBwgyIBIAEQjYCAgAAaQZyDwIAAQRYQuoCAgAAQ04CAgAAhBCACIAE3AxggAiADNwMQIAIgADcDCCAEQbiDwIAAQQMgAkEIakEDENSAgIAAEI6AgIAAGgsgAkEgaiSAgICAAEICDwsAC0KDgICA4IABEK2AgIAAAAtCg4CAgPCAARCtgICAAAALEwBBARCugICAAEIAEI+AgIAAGgszAQJ+EJmAgIAAIQACQBCagICAAEIgiCIBIABCIIgiAFQNACABpyAAp2sPCxC9gICAAAALFQAgABCugICAACABIAIQkICAgAAaC2MDAX8BfgF/I4CAgIAAQRBrIgEkgICAgAAgASAANwMAQgIhAkEBIQMCQANAIANFDQEgA0F/aiEDIAAhAgwACwsgASACNwMIIAFBCGpBARC7gICAACEAIAFBEGokgICAgAAgAAsuAAJAIAEgA0YNAAALIACtQiCGQgSEIAKtQiCGQgSEIAGtQiCGQgSEEJaAgIAAC6cBAgF/An4jgICAgABBEGsiACSAgICAACAAEKCAgIAAAkAgACgCAEEBRw0AIAAoAgQgACgCCBChgICAAAsgABCsgICAACAAKQMIIQEgACkDAEGICBCqgICAACABEIGAgIAAGiAAEK+AgIAAAkAgACgCAA0AENaAgIAAAAsgACkDCCECENCAgIAAIAEQwoCAgAAgAiABEM6AgIAAIABBEGokgICAgABCAgsJABC9gICAAAALoAECAX8CfiOAgICAAEEQayIAJICAgIAAIAAQoICAgAACQCAAKAIAQQFHDQAgACgCBCAAKAIIEKGAgIAACxCogICAACEBEKuAgIAAQQAQroCAgABCAhCPgICAABpB0IPAgABBExC6gICAABDTgICAACECIAAgATcDACACQeSDwIAAQQEgAEEBENSAgIAAEI6AgIAAGiAAQRBqJICAgIAAQgILMQACQCAAQv8Bg0IEUg0AIAFC/wGDQgRSDQAgAEIgiKcgAUIgiKcQoYCAgABCAg8LAAveBAEFfyOAgICAAEHQAGsiAiSAgICAACACQShqIAAQ2oCAgAACQCACKAIoQQJGDQAgAkEIakEIaiACQShqQQhqIgMoAgA2AgAgAiACKQIoNwMIIAJBKGogARDagICAACACKAIoQQJGDQAgAkEYakEIaiADKAIANgIAIAIgAikCKDcDGCACQShqEKCAgIAAAkAgAigCKEEBRw0AIAIoAiwgAigCMBChgICAAAsQpoCAgAACQAJAAkAQo4CAgAANABDRgICAACIDQYD7gAMgA0GA+4ADSRshBCACIAJBGGo2AiwgAiACQQhqNgIoQQAhAwNAIANBCEYNAwJAIAJBKGogA2ooAgAiBSgCAEEBcUUNACAFKAIIIgYgBEsNAyAFKAIEIAZLDQMLIANBBGohAwwACwtCg4CAgND/ABCtgICAAAALQoOAgIDA/wAQrYCAgAAACwJAAkAgAigCCEEBRw0AIAIoAgwgAigCEBDAgICAAAwBC0EBEKSAgIAAQgIQj4CAgAAaCwJAAkAgAigCGEEBRw0AIAIoAhwgAigCIBDBgICAAAwBC0ECEKSAgIAAQgIQj4CAgAAaCyACQShqQQhqIAJBCGpBCGooAgA2AgAgAkE8aiACQRhqQQhqKAIANgIAIAIgAikDCDcDKCACIAIpAxg3AjRBmITAgABBDxC6gICAABDTgICAACEAIAJBKGoQ24CAgAAhASACIAJBNGoQ24CAgAA3A0ggAiABNwNAIABBvITAgABBAiACQcAAakECENSAgIAAEI6AgIAAGiACQdAAaiSAgICAAEICDwsAC2gBAX8jgICAgABBEGsiAiSAgICAAAJAAkAgAUICUQ0AIAJBBGogARDkgICAAAJAIAIoAgRFDQAgAEECNgIADAILIAAgAikCCDcCBCAAQQE2AgAMAQsgAEEANgIACyACQRBqJICAgIAAC0MCAX8BfiOAgICAAEEQayIBJICAgIAAIAEgABDegICAAAJAIAEoAgBBAUcNAAALIAEpAwghAiABQRBqJICAgIAAIAILxAECAn8BfiOAgICAAEHAAGsiACSAgICAACAAQQhqEKCAgIAAAkAgACgCCEEBRw0AIAAoAgwgACgCEBChgICAAAsgAEEIahCggICAACAAQRRqIgFBAhDdgICAACAAQTBqIABBCGoQ3oCAgAACQAJAIAAoAjANACAAKQM4IQIgAEEwaiABEN6AgIAAIAAoAjBBAUcNAQsACyAAIAApAzg3AyggACACNwMgIABBIGpBAhC7gICAACECIABBwABqJICAgIAAIAILdwICfwF+I4CAgIAAQRBrIgIkgICAgABBACEDAkACQCABEKSAgIAAIgRCAhClgICAAEUNACACQQRqIARCAhCAgICAABDkgICAAEEBIQMgAigCBEEBRg0BIAAgAikCCDcCBAsgACADNgIAIAJBEGokgICAgAAPCwALMAACQCABKAIAQQFHDQAgACABKAIEIAEoAggQ5YCAgAAPCyAAQgA3AwAgAEICNwMIC6oBAQF/I4CAgIAAQSBrIgAkgICAgAAgAEEMahCggICAAAJAIAAoAgxBAUcNACAAKAIQIAAoAhQQoYCAgAALEKaAgIAAAkAQo4CAgABFDQBCg4CAgOD/ABCtgICAAAALQQAQpICAgABCAUICEJCAgIAAGkHMhMCAAEESELqAgIAAENOAgIAAQQRBACAAQRhqQQAQ1ICAgAAQjoCAgAAaIABBIGokgICAgABCAgsJABCjgICAAK0LAwAAC9sBAgF+BH8CQAJAIAJBCUsNAEIAIQMgAiEEIAEhBQNAAkAgBA0AIANCCIZCDoQhAwwDC0EBIQYCQCAFLQAAIgdB3wBGDQACQCAHQVBqQf8BcUEKSQ0AAkAgB0G/f2pB/wFxQRpJDQAgB0Gff2pB/wFxQRlLDQQgB0FFaiEGDAILIAdBS2ohBgwBCyAHQVJqIQYLIANCBoYgBq1C/wGDhCEDIARBf2ohBCAFQQFqIQUMAAsLIAGtQiCGQgSEIAKtQiCGQgSEEJSAgIAAIQMLIABCADcDACAAIAM3AwgLUQIBfwF+I4CAgIAAQRBrIgMkgICAgAAgAyABIAIQ4oCAgABCASEEAkAgAygCAA0AIAAgAykDCDcDCEIAIQQLIAAgBDcDACADQRBqJICAgIAAC60BAgJ/AX4jgICAgABBEGsiAiSAgICAAEEAIQMCQANAIANBEEYNASACIANqQgI3AwAgA0EIaiEDDAALC0EBIQMCQCABQv8Bg0LMAFINACABQYiEwIAAQQIgAkECELKAgIAAIAIpAwAiAUL/AYNCBFINACACKQMIIgRC/wGDQgRSDQAgACABQiCIpzYCCCAAIARCIIg+AgRBACEDCyAAIAM2AgAgAkEQaiSAgICAAAtgAgF/AX4jgICAgABBEGsiAySAgICAACADIAGtQiCGQgSENwMIIAMgAq1CIIZCBIQ3AwBBiITAgABBAiADQQIQ1ICAgAAhBCAAQgA3AwAgACAENwMIIANBEGokgICAgAALRAEBfyOAgICAAEEQayICJICAgIAAIAIgATcDCCACQQhqQQEQu4CAgAAhASAAQgA3AwAgACABNwMIIAJBEGokgICAgAALkgECAX8BfiOAgICAAEEQayIBJICAgIAAAkACQAJAAkAgAEEBcUUNACABQfaEwIAAQQkQ44CAgAAgASgCAA0CIAEgASkDCBDmgICAAAwBCyABQd6EwIAAQQYQ44CAgAAgASgCAA0BIAEgASkDCBDmgICAAAsgASkDCCECIAEpAwBQDQELAAsgAUEQaiSAgICAACACC1YCAX8BfiOAgICAAEEQayIDJICAgIAAIAAQpICAgAAhBCADIAEgAhDlgICAAAJAIAMoAgBBAUcNAAALIAQgAykDCEICEJCAgIAAGiADQRBqJICAgIAAC1cBAX4CQAJAIANBwABxDQAgA0UNASACQQAgA2tBP3GthiABIANBP3GtIgSIhCEBIAIgBIghAgwBCyACIANBP3GtiCEBQgAhAgsgACABNwMAIAAgAjcDCAtXAQF+AkACQCADQcAAcQ0AIANFDQEgAiADQT9xrSIEhiABQQAgA2tBP3GtiIQhAiABIASGIQEMAQsgASADQT9xrYYhAkIAIQELIAAgATcDACAAIAI3AwgL0QgEAX8BfgN/BH4jgICAgABBsAFrIgUkgICAgABCACEGAkACQAJAAkACQCAEeSADeULAAHwgBEIAUhunIgcgAnkgAXlCwAB8IAJCAFIbpyIITQ0AIAhBP0sNASAHQd8ASw0CIAcgCGtBIEkNAyAFQaABaiADIARB4AAgB2siCRDpgICAACAFNQKgAUIBfCEKQgAhC0IAIQYCQAJAAkACQANAIAVBkAFqIAEgAkHAACAIayIIEOmAgIAAIAUpA5ABIQwCQCAIIAlPDQAgBUHQAGogAyAEIAgQ6YCAgAACQAJAIAUpA1AiClBFDQAMAQsgDCAKgCEMCyAFQcAAaiADIAQgDEIAEO2AgIAAAkAgASAFKQNAIg1UIgggAiAFKQNIIgpUIAIgClEbDQAgAiAKfSAIrX0hAiABIA19IQEgBiALIAx8IgwgC1StfCEGDAsLIAIgBHwgASADfCIEIAFUrXwgCn0gBCANVK19IQIgBCANfSEBIAYgDCALfEJ/fCIMIAtUrXwhBgwKCyAFQYABaiAMIAqAIgxCACAIIAlrIggQ6oCAgAAgBUHwAGogAyAEIAxCABDtgICAACAFQeAAaiAFKQNwIAUpA3ggCBDqgICAACAFKQOIASAGfCAFKQOAASIGIAt8IgsgBlStfCEGIAcgAiAFKQNofSABIAUpA2AiDFStfSICeSABIAx9IgF5QsAAfCACQgBSG6ciCE0NASAIQT9NDQALIANQRQ0BDAILIAEgA1QiCCACIARUIAIgBFEbRQ0CIAshDAwHCyABIAOAIQILIAEgA4IhASAGIAsgAnwiDCALVK18IQZCACECDAULIAIgBH0gCK19IQIgASADfSEBIAYgC0IBfCIMUK18IQYMBAsgAiAEQgAgASADWiACIARaIAIgBFEbIggbfSABIANCACAIGyIEVK19IQIgASAEfSEBIAitIQwMAwsgASABIAOAIgwgA359IQFCACEGQgAhAgwCCyACIAIgA0L/////D4MiBIAiBiADfn1CIIYgAUIgiCIMhCAEgCICQiCGIAwgAiADfn1CIIYgAUL/////D4OEIgEgBIAiA4QhDCABIAMgBH59IQEgAkIgiCAGhCEGQgAhAgwBCyAFQTBqIAMgBEHAACAIayIIEOmAgIAAIAVBIGogASACIAgQ6YCAgABCACEGIAVBEGogA0IAIAUpAyAgBSkDMIAiDEIAEO2AgIAAIAUgBEIAIAxCABDtgICAACAFKQMQIQoCQAJAIAUpAwggBSkDGCINIAUpAwB8IgsgDVStfEIAUg0AIAEgClQiCCACIAtUIAIgC1EbRQ0BCyAEIAJ8IAMgAXwiASADVK18IAt9IAEgClStfSECIAxCf3whDCABIAp9IQEMAQsgAiALfSAIrX0hAiABIAp9IQFCACEGCyAAIAE3AxAgACAMNwMAIAAgAjcDGCAAIAY3AwggBUGwAWokgICAgAALSAEBfyOAgICAAEEgayIFJICAgIAAIAUgASACIAMgBBDrgICAACAFKQMAIQQgACAFKQMINwMIIAAgBDcDACAFQSBqJICAgIAAC24BBn4gACADQv////8PgyIFIAFC/////w+DIgZ+IgcgA0IgiCIIIAZ+IgYgBSABQiCIIgl+fCIFQiCGfCIKNwMAIAAgCCAJfiAFIAZUrUIghiAFQiCIhHwgCiAHVK18IAQgAX4gAyACfnx8NwMICwuJBQEAQYCAwAAL/wRkZWZhdWx0X211bHRpcGxpZXJfYnBzZHN0X2VpZGZsb29yX21hcmdpbl91c2RtdWx0aXBsaWVyX2Jwc29wdGlvbnNwcmljZV9mZWVkc2VuZGVyY2FsbGRhdGFfc2l6ZWx6X2NvbXBvc2VfYmFzZV9nYXNsel9yZWNlaXZlX2Jhc2VfZ2FzbmF0aXZlX2NhcABSABAADQAAAAAAEAAWAAAAFgAQAAcAAAAdABAAEAAAAF8AEAATAAAAcgAQABMAAAAtABAADgAAAIUAEAAKAAAAOwAQAAcAAABCABAACgAAAEwAEAAGAAAAcHJpY2VfcmF0aW9uYXRpdmVfcHJpY2VfdXNkcHJpY2VfcmF0aW9fZGVub21pbmF0b3J0b3RhbF9nYXNfZmVlAPMAEAAQAAAA6AAQAAsAAAADARAAFwAAABoBEAANAAAAZXN0aW1hdGVfZmVlX2J5X2VpZHRocmVzaG9sZG93bmVyc2hpcF90cmFuc2ZlcnJlZG5ld19vd25lcm9sZF9vd25lcgB5ARAACQAAAIIBEAAJAAAAb3duZXJzaGlwX3RyYW5zZmVycmluZ3R0bAAAAHkBEAAJAAAAggEQAAkAAACyARAAAwAAAG93bmVyc2hpcF9yZW5vdW5jZWQAggEQAAkAAABPd25lclBlbmRpbmdPd25lcmV4dGVuZF90bwAA/QEQAAkAAABbARAACQAAAHR0bF9jb25maWdzX3NldGluc3RhbmNlcGVyc2lzdGVudAAAACcCEAAIAAAALwIQAAoAAAB0dGxfY29uZmlnc19mcm96ZW5Gcm96ZW5JbnN0YW5jZVBlcnNpc3RlbnRNaWdyYXRpbmcAt54BDmNvbnRyYWN0c3BlY3YwAAAABAAAAAAAAAAAAAAAE0V4ZWN1dG9yRmVlTGliRXJyb3IAAAAADAAAAAAAAAAPRWlkTm90U3VwcG9ydGVkAAAAAAEAAAAAAAAAFkludmFsaWRFeGVjdXRvck9wdGlvbnMAAAAAAAIAAAAAAAAACkludmFsaWRGZWUAAAAAAAMAAAAAAAAAFkludmFsaWRMekNvbXBvc2VPcHRpb24AAAAAAAQAAAAAAAAAFkludmFsaWRMelJlY2VpdmVPcHRpb24AAAAAAAUAAAAAAAAAF0ludmFsaWROYXRpdmVEcm9wT3B0aW9uAAAAAAYAAAAAAAAAFk5hdGl2ZUFtb3VudEV4Y2VlZHNDYXAAAAAAAAcAAAAAAAAACU5vT3B0aW9ucwAAAAAAAAgAAAAAAAAACE92ZXJmbG93AAAACQAAAAAAAAAVVW5zdXBwb3J0ZWRPcHRpb25UeXBlAAAAAAAACgAAAAAAAAAYWmVyb0x6Q29tcG9zZUdhc1Byb3ZpZGVkAAAACwAAAAAAAAAYWmVyb0x6UmVjZWl2ZUdhc1Byb3ZpZGVkAAAADAAAAAAAAAJRQ2FsY3VsYXRlcyB0aGUgdG90YWwgZXhlY3V0aW9uIGZlZSBmb3IgYSBjcm9zcy1jaGFpbiBtZXNzYWdlLgoKRGVjb2RlcyBleGVjdXRvciBvcHRpb25zLCBlc3RpbWF0ZXMgZ2FzIGZlZXMgZnJvbSB0aGUgcHJpY2UgZmVlZCwgYXBwbGllcwptdWx0aXBsaWVycyBhbmQgbWFyZ2lucywgYW5kIGNvbnZlcnRzIG5hdGl2ZSB0b2tlbiB2YWx1ZXMuIFJldHVybnMgdGhlCnRvdGFsIGZlZSBpbiBuYXRpdmUgdG9rZW5zLgoKIyBBcmd1bWVudHMKKiBgZXhlY3V0b3JgIC0gRXhlY3V0b3IgY29udHJhY3QgYWRkcmVzcyAodW51c2VkLCBrZXB0IGZvciBpbnRlcmZhY2UgY29tcGF0aWJpbGl0eSkKKiBgcGFyYW1zYCAtIEZlZSBjYWxjdWxhdGlvbiBwYXJhbWV0ZXJzCgojIFJldHVybnMKVG90YWwgZXhlY3V0aW9uIGZlZSBpbiBuYXRpdmUgdG9rZW5zLgoKIyBFcnJvcnMKKiBgRWlkTm90U3VwcG9ydGVkYCAtIElmIGRlc3RpbmF0aW9uIGVuZHBvaW50IGlzIG5vdCBzdXBwb3J0ZWQgKGx6X3JlY2VpdmVfYmFzZV9nYXMgaXMgMCkKKiBWYXJpb3VzIGV4ZWN1dG9yIG9wdGlvbiBwYXJzaW5nIGVycm9ycyAoc2VlIGBwYXJzZV9leGVjdXRvcl9vcHRpb25zYCkAAAAAAAAHZ2V0X2ZlZQAAAAACAAAAAAAAAAhleGVjdXRvcgAAABMAAAAAAAAABnBhcmFtcwAAAAAH0AAAAAlGZWVQYXJhbXMAAAAAAAABAAAACwAAAAAAAABbUmV0dXJucyB0aGUgdmVyc2lvbiBvZiB0aGUgZmVlIGxpYnJhcnkuCgojIFJldHVybnMKVHVwbGUgb2YgKG1ham9yX3ZlcnNpb24sIG1pbm9yX3ZlcnNpb24pLgAAAAAHdmVyc2lvbgAAAAAAAAAAAQAAA+0AAAACAAAABgAAAAQAAAAAAAAAAAAAAA1fX2NvbnN0cnVjdG9yAAAAAAAAAQAAAAAAAAAFb3duZXIAAAAAAAATAAAAAAAAAAAAAACVVGhlIHR5cGUgb2YgZGF0YSByZXF1aXJlZCBmb3IgbWlncmF0aW9uLgpVcGdyYWRlcyB0aGUgY29udHJhY3QgdG8gbmV3IFdBU00gYnl0ZWNvZGUuClNldHMgYSBtaWdyYXRpb24gZmxhZyB0aGF0IG11c3QgYmUgY2xlYXJlZCBieSBjYWxsaW5nIGBtaWdyYXRlYC4AAAAAAAAHdXBncmFkZQAAAAABAAAAAAAAAA1uZXdfd2FzbV9oYXNoAAAAAAAD7gAAACAAAAAAAAAAAAAAAHZSdW5zIG1pZ3JhdGlvbiBsb2dpYyBhZnRlciBhbiB1cGdyYWRlLgpDYW4gb25seSBiZSBjYWxsZWQgd2hlbiB0aGUgbWlncmF0aW9uIGZsYWcgaXMgc2V0IGJ5IGEgcHJldmlvdXMgYHVwZ3JhZGVgIGNhbGwuAAAAAAAHbWlncmF0ZQAAAAABAAAAAAAAAA5taWdyYXRpb25fZGF0YQAAAAAADgAAAAAAAAAAAAAAXlBlcm1hbmVudGx5IGZyZWV6ZXMgdGhlIGNvbnRyYWN0LCBwcmV2ZW50aW5nIGFueSBmdXR1cmUgdXBncmFkZXMuClRoaXMgYWN0aW9uIGlzIGlycmV2ZXJzaWJsZS4AAAAAAAZmcmVlemUAAAAAAAAAAAAAAAAAAAAAADtSZXR1cm5zIHdoZXRoZXIgdGhlIGNvbnRyYWN0IGlzIGZyb3plbiAodXBncmFkZXMgZGlzYWJsZWQpLgAAAAAJaXNfZnJvemVuAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAKYXV0aG9yaXplcgAAAAAAAAAAAAEAAAATAAAAAAAAAD5SZXR1cm5zIHRoZSBjdXJyZW50IG93bmVyIGFkZHJlc3MsIG9yIE5vbmUgaWYgbm8gb3duZXIgaXMgc2V0LgAAAAAABW93bmVyAAAAAAAAAAAAAAEAAAPoAAAAEwAAAAAAAABZUmV0dXJucyB0aGUgcGVuZGluZyBvd25lciBhZGRyZXNzIGZvciAyLXN0ZXAgdHJhbnNmZXIsIG9yIE5vbmUgaWYgbm8gdHJhbnNmZXIgaXMgcGVuZGluZy4AAAAAAAANcGVuZGluZ19vd25lcgAAAAAAAAAAAAABAAAD6AAAABMAAAAAAAABK1RyYW5zZmVycyBvd25lcnNoaXAgaW1tZWRpYXRlbHkgdG8gYSBuZXcgYWRkcmVzcy4KClVzZSB3aXRoIGNhdXRpb24gLSBpZiB5b3UgdHJhbnNmZXIgdG8gYSB3cm9uZyBhZGRyZXNzLCBvd25lcnNoaXAgaXMgbG9zdCBmb3JldmVyLgpDb25zaWRlciB1c2luZyBgcHJvcG9zZV9vd25lcnNoaXBfdHJhbnNmZXJgIGluc3RlYWQuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBUcmFuc2ZlckluUHJvZ3Jlc3NgIGlmIGEgMi1zdGVwIHRyYW5zZmVyIGlzIGluIHByb2dyZXNzAAAAABJ0cmFuc2Zlcl9vd25lcnNoaXAAAAAAAAEAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAAAAAlxQcm9wb3NlcyBhbiBvd25lcnNoaXAgdHJhbnNmZXIgdG8gYSBuZXcgYWRkcmVzcy4KClRoZSBuZXcgb3duZXIgbXVzdCBjYWxsIGBhY2NlcHRfb3duZXJzaGlwKClgIHdpdGhpbiBgdHRsYCBsZWRnZXJzCnRvIGNvbXBsZXRlIHRoZSB0cmFuc2Zlci4gVGhlIHBlbmRpbmcgdHJhbnNmZXIgd2lsbCBhdXRvbWF0aWNhbGx5IGV4cGlyZSBhZnRlci4KCiMgQXJndW1lbnRzCi0gYG5ld19vd25lcmAgLSBUaGUgcHJvcG9zZWQgbmV3IG93bmVyCi0gYHR0bGAgLSBOdW1iZXIgb2YgbGVkZ2VycyB0aGUgbmV3IG93bmVyIGhhcyB0byBhY2NlcHQuClVzZSBgMGAgdG8gY2FuY2VsIGEgcGVuZGluZyB0cmFuc2ZlciAobmV3X293bmVyIG11c3QgbWF0Y2ggcGVuZGluZykuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBOb1BlbmRpbmdUcmFuc2ZlcmAgd2hlbiBjYW5jZWxsaW5nIGFuZCBubyBwZW5kaW5nIHRyYW5zZmVyIGV4aXN0cwotIGBJbnZhbGlkVHRsYCBpZiB0dGwgZXhjZWVkcyBtYXggVFRMCi0gYEludmFsaWRQZW5kaW5nT3duZXJgIHdoZW4gY2FuY2VsbGluZyB3aXRoIHdyb25nIG5ld19vd25lciBhZGRyZXNzAAAAGnByb3Bvc2Vfb3duZXJzaGlwX3RyYW5zZmVyAAAAAAACAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAN0dGwAAAAABAAAAAAAAAAAAAAAuUFjY2VwdHMgYSBwZW5kaW5nIDItc3RlcCBvd25lcnNoaXAgdHJhbnNmZXIuCgpNdXN0IGJlIGNhbGxlZCBieSB0aGUgcGVuZGluZyBvd25lciBiZWZvcmUgdGhlIFRUTCBleHBpcmVzLgoKIyBQYW5pY3MKLSBgTm9QZW5kaW5nVHJhbnNmZXJgIGlmIHRoZXJlIGlzIG5vIHBlbmRpbmcgdHJhbnNmZXIgKG9yIGl0IGV4cGlyZWQpAAAAAAAAEGFjY2VwdF9vd25lcnNoaXAAAAAAAAAAAAAAAAAAAACkUGVybWFuZW50bHkgcmVub3VuY2VzIG93bmVyc2hpcC4KCiMgUGFuaWNzCi0gYE93bmVyTm90U2V0YCBpZiBubyBvd25lciBpcyBjdXJyZW50bHkgc2V0Ci0gYFRyYW5zZmVySW5Qcm9ncmVzc2AgaWYgYSAyLXN0ZXAgdHJhbnNmZXIgaXMgaW4gcHJvZ3Jlc3MgKGNhbmNlbCBpdCBmaXJzdCkAAAAScmVub3VuY2Vfb3duZXJzaGlwAAAAAAAAAAAAAAAAAAAAAAClRXh0ZW5kcyB0aGUgaW5zdGFuY2UgVFRMLgoKIyBBcmd1bWVudHMKCiogYHRocmVzaG9sZGAgLSBUaGUgdGhyZXNob2xkIHRvIGV4dGVuZCB0aGUgVFRMIChpZiBjdXJyZW50IFRUTCBpcyBiZWxvdyB0aGlzLCBleHRlbmQpLgoqIGBleHRlbmRfdG9gIC0gVGhlIFRUTCB0byBleHRlbmQgdG8uAAAAAAAAE2V4dGVuZF9pbnN0YW5jZV90dGwAAAAAAgAAAAAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAAAAAAJZXh0ZW5kX3RvAAAAAAAABAAAAAAAAAAAAAABj1NldHMgVFRMIGNvbmZpZ3MgZm9yIGluc3RhbmNlIGFuZCBwZXJzaXN0ZW50IHN0b3JhZ2UuCgotIGBOb25lYCB2YWx1ZXMgcmVtb3ZlIHRoZSBjb3JyZXNwb25kaW5nIGNvbmZpZyAoZGlzYWJsZXMgYXV0by1leHRlbnNpb24gZm9yIHRoYXQgdHlwZSkKLSBWYWxpZGF0ZXMgdGhhdCBgdGhyZXNob2xkIDw9IGV4dGVuZF90byA8PSBNQVhfVFRMYAoKIyBBcmd1bWVudHMKLSBgaW5zdGFuY2VgIC0gVFRMIGNvbmZpZyBmb3IgaW5zdGFuY2Ugc3RvcmFnZQotIGBwZXJzaXN0ZW50YCAtIFRUTCBjb25maWcgZm9yIHBlcnNpc3RlbnQgc3RvcmFnZQoKIyBQYW5pY3MKLSBgVHRsQ29uZmlnRnJvemVuYCBpZiBjb25maWdzIGFyZSBmcm96ZW4KLSBgSW52YWxpZFR0bENvbmZpZ2AgaWYgdmFsaWRhdGlvbiBmYWlscwAAAAAPc2V0X3R0bF9jb25maWdzAAAAAAIAAAAAAAAACGluc3RhbmNlAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAApwZXJzaXN0ZW50AAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAAAAAEhSZXR1cm5zIHRoZSBjdXJyZW50IFRUTCBjb25maWdzIGFzIChpbnN0YW5jZV9jb25maWcsIHBlcnNpc3RlbnRfY29uZmlnKS4AAAALdHRsX2NvbmZpZ3MAAAAAAAAAAAEAAAPtAAAAAgAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAADhUGVybWFuZW50bHkgZnJlZXplcyBUVEwgY29uZmlncywgcHJldmVudGluZyBhbnkgZnV0dXJlIG1vZGlmaWNhdGlvbnMuCgpUaGlzIGlzIGlycmV2ZXJzaWJsZSBhbmQgcHJvdmlkZXMgaW1tdXRhYmlsaXR5IGd1YXJhbnRlZXMgdG8gdXNlcnMuCkVtaXRzIGBUdGxDb25maWdzRnJvemVuYCBldmVudC4KCiMgUGFuaWNzCi0gYFR0bENvbmZpZ0FscmVhZHlGcm96ZW5gIGlmIGFscmVhZHkgZnJvemVuAAAAAAAAEmZyZWV6ZV90dGxfY29uZmlncwAAAAAAAAAAAAAAAAAAAAAAJ1JldHVybnMgd2hldGhlciBUVEwgY29uZmlncyBhcmUgZnJvemVuLgAAAAAVaXNfdHRsX2NvbmZpZ3NfZnJvemVuAAAAAAAAAAAAAAEAAAABAAAABQAAAAAAAAAAAAAAClBhY2tldFNlbnQAAAAAAAEAAAALcGFja2V0X3NlbnQAAAAAAwAAAAAAAAAOZW5jb2RlZF9wYWNrZXQAAAAAAA4AAAAAAAAAAAAAAAdvcHRpb25zAAAAAA4AAAAAAAAAAAAAAAxzZW5kX2xpYnJhcnkAAAATAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAOUGFja2V0VmVyaWZpZWQAAAAAAAEAAAAPcGFja2V0X3ZlcmlmaWVkAAAAAAMAAAAAAAAABm9yaWdpbgAAAAAH0AAAAAZPcmlnaW4AAAAAAAEAAAAAAAAACHJlY2VpdmVyAAAAEwAAAAEAAAAAAAAADHBheWxvYWRfaGFzaAAAA+4AAAAgAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAPUGFja2V0RGVsaXZlcmVkAAAAAAEAAAAQcGFja2V0X2RlbGl2ZXJlZAAAAAIAAAAAAAAABm9yaWdpbgAAAAAH0AAAAAZPcmlnaW4AAAAAAAEAAAAAAAAACHJlY2VpdmVyAAAAEwAAAAEAAAACAAAABQAAAAAAAAAAAAAADkx6UmVjZWl2ZUFsZXJ0AAAAAAABAAAAEGx6X3JlY2VpdmVfYWxlcnQAAAAJAAAAAAAAAAhyZWNlaXZlcgAAABMA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AAAAAAAAGURlZmF1bHRTZW5kTGliVW5hdmFpbGFibGUAAAAAAAAFAAAAAAAAABVJbnN1ZmZpY2llbnROYXRpdmVGZWUAAAAAAAAGAAAAAAAAABJJbnN1ZmZpY2llbnRacm9GZWUAAAAAAAcAAAAAAAAAEEludmFsaWRGZWVBbW91bnQAAAAIAAAAAAAAAA1JbnZhbGlkRXhwaXJ5AAAAAAAACQAAAAAAAAAMSW52YWxpZEluZGV4AAAACgAAAAAAAAAMSW52YWxpZE5vbmNlAAAACwAAAAAAAAASSW52YWxpZFBheWxvYWRIYXNoAAAAAAAMAAAAAAAAABVJbnZhbGlkUmVjZWl2ZUxpYnJhcnkAAAAAAAANAAAAAAAAABFPbmx5Tm9uRGVmYXVsdExpYgAAAAAAAA4AAAAAAAAADk9ubHlSZWNlaXZlTGliAAAAAAAPAAAAAAAAABFPbmx5UmVnaXN0ZXJlZExpYgAAAAAAABAAAAAAAAAAC09ubHlTZW5kTGliAAAAABEAAAAAAAAAFFBhdGhOb3RJbml0aWFsaXphYmxlAAAAEgAAAAAAAAARUGF0aE5vdFZlcmlmaWFibGUAAAAAAAATAAAAAAAAABNQYXlsb2FkSGFzaE5vdEZvdW5kAAAAABQAAAAAAAAACVNhbWVWYWx1ZQAAAAAAABUAAAAAAAAADFVuYXV0aG9yaXplZAAAABYAAAAAAAAADlVuc3VwcG9ydGVkRWlkAAAAAAAXAAAAAAAAAApaZXJvWnJvRmVlAAAAAAAYAAAAAAAAAA5acm9VbmF2YWlsYWJsZQAAAAAAGQAAAAEAAAAtUGFyYW1ldGVycyBmb3Igc2VuZGluZyBhIGNyb3NzLWNoYWluIG1lc3NhZ2UuAAAAAAAAAAAAAA9NZXNzYWdpbmdQYXJhbXMAAAAABQAAACtEZXN0aW5hdGlvbiBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikuAAAAAAdkc3RfZWlkAAAAAAQAAAAcVGhlIG1lc3NhZ2UgcGF5bG9hZCB0byBzZW5kLgAAAAdtZXNzYWdlAAAAAA4AAAAhRW5jb2RlZCBleGVjdXRvciBhbmQgRFZOIG9wdGlvbnMuAAAAAAAAB29wdGlvbnMAAAAADgAAADlXaGV0aGVyIHRvIHBheSBmZWVzIGluIFpSTyB0b2tlbiBpbnN0ZWFkIG9mIG5hdGl2ZSB0b2tlbi4AAAAAAAAKcGF5X2luX3pybwAAAAAAAQAAADVSZWNlaXZlciBhZGRyZXNzIG9uIHRoZSBkZXN0aW5hdGlvbiBjaGFpbiAoMzIgYnl0ZXMpLgAAAAAAAAhyZWNlaXZlcgAAA+4AAAAgAAAAAQAAAE1Tb3VyY2UgbWVzc2FnZSBpbmZvcm1hdGlvbiBpZGVudGlmeWluZyB3aGVyZSBhIGNyb3NzLWNoYWluIG1lc3NhZ2UgY2FtZSBmcm9tLgAAAAAAAAAAAAAGT3JpZ2luAAAAAAADAAAAF05vbmNlIGZvciB0aGlzIHBhdGh3YXkuAAAAAAVub25jZQAAAAAAAAYAAAAuU2VuZGVyIGFkZHJlc3Mgb24gdGhlIHNvdXJjZSBjaGFpbiAoMzIgYnl0ZXMpLgAAAAAABnNlbmRlcgAAAAAD7gAAACAAAAAmU291cmNlIGVuZHBvaW50IElEIChjaGFpbiBpZGVudGlmaWVyKS4AAAAAAAdzcmNfZWlkAAAAAAQAAAABAAAAKEZlZSBzdHJ1Y3R1cmUgZm9yIGNyb3NzLWNoYWluIG1lc3NhZ2luZy4AAAAAAAAADE1lc3NhZ2luZ0ZlZQAAAAIAAAAfRmVlIHBhaWQgaW4gbmF0aXZlIHRva2VuIChYTE0pLgAAAAAKbmF0aXZlX2ZlZQAAAAAACwAAAChGZWUgcGFpZCBpbiBaUk8gdG9rZW4gKExheWVyWmVybyB0b2tlbikuAAAAB3pyb19mZWUAAAAACwAAAAEAAABCUmVjZWlwdCByZXR1cm5lZCBhZnRlciBzdWNjZXNzZnVsbHkgc2VuZGluZyBhIGNyb3NzLWNoYWluIG1lc3NhZ2UuAAAAAAAAAAAAEE1lc3NhZ2luZ1JlY2VpcHQAAAADAAAAKVRoZSBmZWVzIGNoYXJnZWQgZm9yIHNlbmRpbmcgdGhlIG1lc3NhZ2UuAAAAAAAAA2ZlZQAAAAfQAAAADE1lc3NhZ2luZ0ZlZQAAACtHbG9iYWxseSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIG1lc3NhZ2UuAAAAAARndWlkAAAD7gAAACAAAAAkVGhlIG91dGJvdW5kIG5vbmNlIGZvciB0aGlzIHBhdGh3YXkuAAAABW5vbmNlAAAAAAAABgAAAAIAAAA4VHlwZSBvZiBtZXNzYWdlIGxpYnJhcnkgaW5kaWNhdGluZyBzdXBwb3J0ZWQgb3BlcmF0aW9ucy4AAAAAAAAADk1lc3NhZ2VMaWJUeXBlAAAAAAADAAAAAAAAAB9TdXBwb3J0cyBvbmx5IHNlbmRpbmcgbWVzc2FnZXMuAAAAAARTZW5kAAAAAAAAACFTdXBwb3J0cyBvbmx5IHJlY2VpdmluZyBtZXNzYWdlcy4AAAAAAAAHUmVjZWl2ZQAAAAAAAAAALVN1cHBvcnRzIGJvdGggc2VuZGluZyBhbmQgcmVjZWl2aW5nIG1lc3NhZ2VzLgAAAAAAAA5TZW5kQW5kUmVjZWl2ZQAAAAAAAQAAALdWZXJzaW9uIGluZm9ybWF0aW9uIGZvciBhIG1lc3NhZ2UgbGlicmFyeS4KCk5vdGU6IGBtaW5vcmAgYW5kIGBlbmRwb2ludF92ZXJzaW9uYCB1c2UgYHUzMmAgaW5zdGVhZCBvZiBgdThgIGJlY2F1c2UgU3RlbGxhciBkb2VzIG5vdApzdXBwb3J0IGB1OGAgdHlwZXMgaW4gY29udHJhY3QgaW50ZXJmYWNlIGZ1bmN0aW9ucy4AAAAAAAAAABFNZXNzYWdlTGliVmVyc2lvbgAAAAAAAAMAAAAzRW5kcG9pbnQgdmVyc2lvbiAoc2hvdWxkIG5vdCBleGNlZWQgdTg6Ok1BWCA9IDI1NSkuAAAAABBlbmRwb2ludF92ZXJzaW9uAAAABAAAABVNYWpvciB2ZXJzaW9uIG51bWJlci4AAAAAAAAFbWFqb3IAAAAAAAAGAAAAN01pbm9yIHZlcnNpb24gbnVtYmVyIChzaG91bGQgbm90IGV4Y2VlZCB1ODo6TUFYID0gMjU1KS4AAAAABW1pbm9yAAAAAAAABAAAAAEAAAA2VGltZW91dCBjb25maWd1cmF0aW9uIGZvciByZWNlaXZlIGxpYnJhcnkgdHJhbnNpdGlvbnMuAAAAAAAAAAAAB1RpbWVvdXQAAAAAAgAAAChVbml4IHRpbWVzdGFtcCB3aGVuIHRoZSB0aW1lb3V0IGV4cGlyZXMuAAAABmV4cGlyeQAAAAAABgAAAClUaGUgbmV3IGxpYnJhcnkgYWRkcmVzcyB0byB0cmFuc2l0aW9uIHRvLgAAAAAAAANsaWIAAAAAEwAAAAEAAAA1UGFyYW1ldGVycyBmb3Igc2V0dGluZyBtZXNzYWdlIGxpYnJhcnkgY29uZmlndXJhdGlvbi4AAAAAAAAAAAAADlNldENvbmZpZ1BhcmFtAAAAAAADAAAAH1hEUi1lbmNvZGVkIGNvbmZpZ3VyYXRpb24gZGF0YS4AAAAABmNvbmZpZwAAAAAADgAAADBUaGUgdHlwZSBvZiBjb25maWd1cmF0aW9uIChlLmcuLCBleGVjdXRvciwgVUxOKS4AAAALY29uZmlnX3R5cGUAAAAABAAAACdUaGUgZW5kcG9pbnQgSUQgdGhpcyBjb25maWcgYXBwbGllcyB0by4AAAAAA2VpZAAAAAAEAAAAAQAAADFSZXNvbHZlZCBsaWJyYXJ5IGluZm9ybWF0aW9uIHdpdGggZGVmYXVsdCBzdGF0dXMuAAAAAAAAAAAAAA9SZXNvbHZlZExpYnJhcnkAAAAAAgAAAERXaGV0aGVyIHRoaXMgaXMgdGhlIGRlZmF1bHQgbGlicmFyeSAodHJ1ZSkgb3IgT0FwcC1zcGVjaWZpYyAoZmFsc2UpLgAAAAppc19kZWZhdWx0AAAAAAABAAAAHVRoZSByZXNvbHZlZCBsaWJyYXJ5IGFkZHJlc3MuAAAAAAAAA2xpYgAAAAATAAAAAQAAAEhPdXRib3VuZCBwYWNrZXQgY29udGFpbmluZyBhbGwgaW5mb3JtYXRpb24gZm9yIGNyb3NzLWNoYWluIHRyYW5zbWlzc2lvbi4AAAAAAAAADk91dGJvdW5kUGFja2V0AAAAAAAHAAAAGERlc3RpbmF0aW9uIGVuZHBvaW50IElELgAAAAdkc3RfZWlkAAAAAAQAAAAsR2xvYmFsbHkgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgbWVzc2FnZS4AAAAEZ3VpZAAAA+4AAAAgAAAAFFRoZSBtZXNzYWdlIHBheWxvYWQuAAAAB21lc3NhZ2UAAAAADgAAACBPdXRib3VuZCBub25jZSBmb3IgdGhpcyBwYXRod2F5LgAAAAVub25jZQAAAAAAAAYAAAAxUmVjZWl2ZXIgYWRkcmVzcyBvbiBkZXN0aW5hdGlvbiBjaGFpbiAoMzIgYnl0ZXMpLgAAAAAAAAhyZWNlaXZlcgAAA+4AAAAgAAAAH1NlbmRlciBhZGRyZXNzIG9uIHNvdXJjZSBjaGFpbi4AAAAABnNlbmRlcgAAAAAAEwAAABNTb3VyY2UgZW5kcG9pbnQgSUQuAAAAAAdzcmNfZWlkAAAAAAQAAAABAAAAK0EgZmVlIHJlY2lwaWVudCB3aXRoIHRoZSBhbW91bnQgdG8gYmUgcGFpZC4AAAAAAAAAAAxGZWVSZWNpcGllbnQAAAACAAAAFUFtb3VudCBvZiBmZWUgdG8gcGF5LgAAAAAAAAZhbW91bnQAAAAAAAsAAAAfVGhlIGFkZHJlc3MgdG8gc2VuZCB0aGUgZmVlIHRvLgAAAAACdG8AAAAAABMAAAABAAAAPFJlc3VsdCBvZiBzZW5kIG9wZXJhdGlvbiBjb250YWluaW5nIGZlZXMgYW5kIGVuY29kZWQgcGFja2V0LgAAAAAAAAANRmVlc0FuZFBhY2tldAAAAAAAAAMAAAAqVGhlIGVuY29kZWQgcGFja2V0IHJlYWR5IGZvciB0cmFuc21pc3Npb24uAAAAAAAOZW5jb2RlZF9wYWNrZXQAAAAAAA4AAAA/TGlzdCBvZiBuYXRpdmUgdG9rZW4gZmVlIHJlY2lwaWVudHMgKGV4ZWN1dG9yLCBEVk5zLCB0cmVhc3VyeSkuAAAAABVuYXRpdmVfZmVlX3JlY2lwaWVudHMAAAAAAAPqAAAH0AAAAAxGZWVSZWNpcGllbnQAAAAsTGlzdCBvZiBaUk8gdG9rZW4gZmVlIHJlY2lwaWVudHMgKHRyZWFzdXJ5KS4AAAASenJvX2ZlZV9yZWNpcGllbnRzAAAAAAPqAAAH0AAAAAxGZWVSZWNpcGllbnQAAAABAAAA4VBhcmFtZXRlcnMgZm9yIERWTiBmZWUgY2FsY3VsYXRpb24uCgpDb250YWlucyBhbGwgaW5wdXRzIG5lZWRlZCBieSB0aGUgZmVlIGxpYnJhcnkgdG8gY2FsY3VsYXRlIHZlcmlmaWNhdGlvbiBmZWVzCmZvciBjcm9zcy1jaGFpbiBtZXNzYWdlcy4gSW5jbHVkZXMgbWVzc2FnZSBwYXJhbWV0ZXJzLCBjb21tb24gY29uZmlndXJhdGlvbiwKYW5kIGRlc3RpbmF0aW9uLXNwZWNpZmljIHNldHRpbmdzLgAAAAAAAAAAAAAMRHZuRmVlUGFyYW1zAAAACgAAACdOdW1iZXIgb2YgYmxvY2sgY29uZmlybWF0aW9ucyByZXF1aXJlZC4AAAAADWNvbmZpcm1hdGlvbnMAAAAAAAAGAAAATERlZmF1bHQgZmVlIG11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzICh1c2VkIGlmIG5vIGRzdC1zcGVjaWZpYyBtdWx0aXBsaWVyKS4AAAAWZGVmYXVsdF9tdWx0aXBsaWVyX2JwcwAAAAAABAAAACtEZXN0aW5hdGlvbiBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikuAAAAAAdkc3RfZWlkAAAAAAQAAAAjTWluaW11bSBmZWUgbWFyZ2luIGluIFVTRCAoc2NhbGVkKS4AAAAAEGZsb29yX21hcmdpbl91c2QAAAAKAAABED09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkRlc3RpbmF0aW9uLVNwZWNpZmljIENvbmZpZ3VyYXRpb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KR2FzIGVzdGltYXRlIGZvciB2ZXJpZmljYXRpb24gb24gZGVzdGluYXRpb24gY2hhaW4uAAAAA2dhcwAAAAAKAAAARkRlc3RpbmF0aW9uLXNwZWNpZmljIGZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cyAoMCA9IHVzZSBkZWZhdWx0KS4AAAAAAA5tdWx0aXBsaWVyX2JwcwAAAAAABAAAAAtEVk4gb3B0aW9ucwAAAAAHb3B0aW9ucwAAAAAOAAABED09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNvbW1vbiBDb25maWd1cmF0aW9uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClByaWNlIGZlZWQgY29udHJhY3QgYWRkcmVzcyBmb3IgZ2FzIHByaWNlIGFuZCBleGNoYW5nZSByYXRlIGRhdGEuAAAACnByaWNlX2ZlZWQAAAAAABMAAAAnTnVtYmVyIG9mIHJlcXVpcmVkIHNpZ25hdHVyZXMgKHF1b3J1bSkuAAAAAAZxdW9ydW0AAAAAAAQAAADlPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KTWVzc2FnZSBQYXJhbWV0ZXJzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClRoZSBPQXBwIHNlbmRlciBhZGRyZXNzLgAAAAAAAAZzZW5kZXIAAAAAABMAAAABAAAA41BhcmFtZXRlcnMgZm9yIGV4ZWN1dG9yIGZlZSBjYWxjdWxhdGlvbi4KCkNvbnRhaW5zIGFsbCBpbnB1dHMgbmVlZGVkIGJ5IHRoZSBmZWUgbGlicmFyeSB0byBjYWxjdWxhdGUgZXhlY3V0aW9uIGZlZXMKZm9yIGNyb3NzLWNoYWluIG1lc3NhZ2VzLiBJbmNsdWRlcyBtZXNzYWdlIHBhcmFtZXRlcnMsIGNvbW1vbiBjb25maWd1cmF0aW9uLAphbmQgZGVzdGluYXRpb24tc3BlY2lmaWMgc2V0dGluZ3MuAAAAAAAAAAAJRmVlUGFyYW1zAAAAAAAACwAAACZTaXplIG9mIHRoZSBtZXNzYWdlIGNhbGxkYXRhIGluIGJ5dGVzLgAAAAAADWNhbGxkYXRhX3NpemUAAAAAAAAEAAAATERlZmF1bHQgZmVlIG11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzICh1c2VkIGlmIG5vIGRzdC1zcGVjaWZpYyBtdWx0aXBsaWVyKS4AAAAWZGVmYXVsdF9tdWx0aXBsaWVyX2JwcwAAAAAABAAAACtEZXN0aW5hdGlvbiBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikuAAAAAAdkc3RfZWlkAAAAAAQAAAAjTWluaW11bSBmZWUgbWFyZ2luIGluIFVTRCAoc2NhbGVkKS4AAAAAEGZsb29yX21hcmdpbl91c2QAAAAKAAAANkJhc2UgZ2FzIGZvciBlYWNoIGx6Q29tcG9zZSBjYWxsIG9uIGRlc3RpbmF0aW9uIGNoYWluLgAAAAAAE2x6X2NvbXBvc2VfYmFzZV9nYXMAAAAABgAAARM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpEZXN0aW5hdGlvbi1TcGVjaWZpYyBDb25maWd1cmF0aW9uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkJhc2UgZ2FzIGZvciBselJlY2VpdmUgZXhlY3V0aW9uIG9uIGRlc3RpbmF0aW9uIGNoYWluLgAAAAATbHpfcmVjZWl2ZV9iYXNlX2dhcwAAAAAGAAAARkRlc3RpbmF0aW9uLXNwZWNpZmljIGZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cyAoMCA9IHVzZSBkZWZhdWx0KS4AAAAAAA5tdWx0aXBsaWVyX2JwcwAAAAAABAAAACxNYXhpbXVtIG5hdGl2ZSB0b2tlbiB2YWx1ZSB0aGF0IGNhbiBiZSBzZW50LgAAAApuYXRpdmVfY2FwAAAAAAAKAAAARkVuY29kZWQgZXhlY3V0b3Igb3B0aW9ucyAobHpSZWNlaXZlIGdhcywgbHpDb21wb3NlLCBuYXRpdmVEcm9wLCBldGMuKS4AAAAAAAdvcHRpb25zAAAAAA4AAAEQPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ29tbW9uIENvbmZpZ3VyYXRpb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUHJpY2UgZmVlZCBjb250cmFjdCBhZGRyZXNzIGZvciBnYXMgcHJpY2UgYW5kIGV4Y2hhbmdlIHJhdGUgZGF0YS4AAAAKcHJpY2VfZmVlZAAAAAAAEwAAAOU9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpNZXNzYWdlIFBhcmFtZXRlcnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KVGhlIE9BcHAgc2VuZGVyIGFkZHJlc3MuAAAAAAAABnNlbmRlcgAAAAAAEwAAAAEAAACER2FzIHByaWNlIGluZm9ybWF0aW9uIGZvciBhIGRlc3RpbmF0aW9uIGVuZHBvaW50LgoKQ29udGFpbnMgdGhlIGV4Y2hhbmdlIHJhdGUgYW5kIGdhcyBjb3N0cyBuZWVkZWQgZm9yIGNyb3NzLWNoYWluIGZlZSBjYWxjdWxhdGlvbnMuAAAAAAAAAAVQcmljZQAAAAAAAAMAAAA3R2FzIGNvc3QgcGVyIGJ5dGUgb2YgY2FsbGRhdGEgb24gdGhlIGRlc3RpbmF0aW9uIGNoYWluLgAAAAAMZ2FzX3Blcl9ieXRlAAAABAAAAEJHYXMgcHJpY2UgaW4gdGhlIHNtYWxsZXN0IHVuaXQgKHdlaSBmb3IgRVZNLCBzdHJvb3BzIGZvciBTdGVsbGFyKS4AAAAAABFnYXNfcHJpY2VfaW5fdW5pdAAAAAAAAAYAAACpUHJpY2UgcmF0aW8gPSAocmVtb3RlIG5hdGl2ZSB0b2tlbiBwcmljZSAvIGxvY2FsIG5hdGl2ZSB0b2tlbiBwcmljZSkgKiBQUklDRV9SQVRJT19ERU5PTUlOQVRPUi4KVXNlZCB0byBjb252ZXJ0IGRlc3RpbmF0aW9uIGNoYWluIGdhcyBjb3N0cyB0byBzb3VyY2UgY2hhaW4gbmF0aXZlIHRva2VuLgAAAAAAAAtwcmljZV9yYXRpbwAAAAAKAAAAAQAAAIBGZWUgZXN0aW1hdGlvbiByZXN1bHQgd2l0aCBkZXRhaWxlZCBicmVha2Rvd24uCgpDb250YWlucyB0aGUgY2FsY3VsYXRlZCBmZWUgYW5kIGFsbCBpbnRlcm1lZGlhdGUgdmFsdWVzIHVzZWQgaW4gdGhlIGNhbGN1bGF0aW9uLgAAAAAAAAALRmVlRXN0aW1hdGUAAAAABAAAADBTb3VyY2UgY2hhaW4gbmF0aXZlIHRva2VuIHByaWNlIGluIFVTRCAoc2NhbGVkKS4AAAAQbmF0aXZlX3ByaWNlX3VzZAAAAAoAAAAlUHJpY2UgcmF0aW8gdXNlZCBmb3IgdGhlIGNhbGN1bGF0aW9uLgAAAAAAAAtwcmljZV9yYXRpbwAAAAAKAAAAMkRlbm9taW5hdG9yIGZvciB0aGUgcHJpY2UgcmF0aW8gKHR5cGljYWxseSAxMF4yMCkuAAAAAAAXcHJpY2VfcmF0aW9fZGVub21pbmF0b3IAAAAACgAAADFUb3RhbCBnYXMgZmVlIGluIHNvdXJjZSBjaGFpbiBuYXRpdmUgdG9rZW4gdW5pdHMuAAAAAAAADXRvdGFsX2dhc19mZWUAAAAAAAALAAAABAAAAB1QYWNrZXRDb2RlY1YxRXJyb3I6IDExMDAtMTEwOQAAAAAAAAAAAAASUGFja2V0Q29kZWNWMUVycm9yAAAAAAACAAAAAAAAABNJbnZhbGlkUGFja2V0SGVhZGVyAAAABEwAAAAAAAAAFEludmFsaWRQYWNrZXRWZXJzaW9uAAAETQAAAAQAAAAdV29ya2VyT3B0aW9uc0Vycm9yOiAxMTEwLTExMTkAAAAAAAAAAAAAEldvcmtlck9wdGlvbnNFcnJvcgAAAAAACQAAAAAAAAASSW52YWxpZEJ5dGVzTGVuZ3RoAAAAAARWAAAAAAAAABlJbnZhbGlkTGVnYWN5T3B0aW9uc1R5cGUxAAAAAAAEVwAAAAAAAAAZSW52YWxpZExlZ2FjeU9wdGlvbnNUeXBlMgAAAAAABFgAAAAAAAAAEUludmFsaWRPcHRpb25UeXBlAAAAAAAEWQAAAAAAAAAOSW52YWxpZE9wdGlvbnMAAAAABFoAAAAAAAAAD0ludmFsaWRXb3JrZXJJZAAAAARbAAAAAAAAAB1MZWdhY3lPcHRpb25zVHlwZTFHYXNPdmVyZmxvdwAAAAAABFwAAAAAAAAAIExlZ2FjeU9wdGlvbnNUeXBlMkFtb3VudE92ZXJmbG93AAAEXQAAAAAAAAAdTGVnYWN5T3B0aW9uc1R5cGUyR2FzT3ZlcmZsb3cAAAAAAAReAAAABAAAABxCdWZmZXJSZWFkZXJFcnJvcjogMTAwMC0xMDA5AAAAAAAAABFCdWZmZXJSZWFkZXJFcnJvcgAAAAAAAAIAAAAAAAAADUludmFsaWRMZW5ndGgAAAAAAAPoAAAAAAAAABVJbnZhbGlkQWRkcmVzc1BheWxvYWQAAAAAAAPpAAAABAAAABxCdWZmZXJXcml0ZXJFcnJvcjogMTAxMC0xMDE5AAAAAAAAABFCdWZmZXJXcml0ZXJFcnJvcgAAAAAAAAEAAAAAAAAAFUludmFsaWRBZGRyZXNzUGF5bG9hZAAAAAAAA/IAAAAEAAAAH1R0bENvbmZpZ3VyYWJsZUVycm9yOiAxMDIwLTEwMjkAAAAAAAAAABRUdGxDb25maWd1cmFibGVFcnJvcgAAAAMAAAAAAAAAEEludmFsaWRUdGxDb25maWcAAAP8AAAAAAAAAA9UdGxDb25maWdGcm96ZW4AAAAD/QAAAAAAAAAWVHRsQ29uZmlnQWxyZWFkeUZyb3plbgAAAAAD/gAAAAQAAAAXT3duYWJsZUVycm9yOiAxMDMwLTEwMzkAAAAAAAAAAAxPd25hYmxlRXJyb3IAAAAGAAAAAAAAABNJbnZhbGlkUGVuZGluZ093bmVyAAAABAYAAAAAAAAACkludmFsaWRUdGwAAAAABAcAAAAAAAAAEU5vUGVuZGluZ1RyYW5zZmVyAAAAAAAECAAAAAAAAAAPT3duZXJBbHJlYWR5U2V0AAAABAkAAAAAAAAAC093bmVyTm90U2V0AAAABAoAAAAAAAAAElRyYW5zZmVySW5Qcm9ncmVzcwAAAAAECwAAAAQAAAAYQnl0ZXNFeHRFcnJvcjogMTA0MC0xMDQ5AAAAAAAAAA1CeXRlc0V4dEVycm9yAAAAAAAAAQAAAAAAAAAOTGVuZ3RoTWlzbWF0Y2gAAAAABBAAAAAEAAAAG1VwZ3JhZGVhYmxlRXJyb3I6IDEwNTAtMTA1OQAAAAAAAAAAEFVwZ3JhZGVhYmxlRXJyb3IAAAADAAAAAAAAABRJbnZhbGlkTWlncmF0aW9uRGF0YQAABBoAAAAAAAAAE01pZ3JhdGlvbk5vdEFsbG93ZWQAAAAEGwAAAAAAAAAOVXBncmFkZXNGcm96ZW4AAAAABBwAAAAEAAAAGE11bHRpc2lnRXJyb3I6IDEwNjAtMTA2OQAAAAAAAAANTXVsdGlzaWdFcnJvcgAAAAAAAAgAAAAAAAAAEkFscmVhZHlJbml0aWFsaXplZAAAAAAEJAAAAAAAAAANSW52YWxpZFNpZ25lcgAAAAAABCUAAAAAAAAADlNpZ25hdHVyZUVycm9yAAAAAAQmAAAAAAAAABNTaWduZXJBbHJlYWR5RXhpc3RzAAAABCcAAAAAAAAADlNpZ25lck5vdEZvdW5kAAAAAAQoAAAAAAAAAB1Ub3RhbFNpZ25lcnNMZXNzVGhhblRocmVzaG9sZAAAAAAABCkAAAAAAAAAD1Vuc29ydGVkU2lnbmVycwAAAAQqAAAAAAAAAA1aZXJvVGhyZXNob2xkAAAAAAAEKwAAAAUAAAAwRXZlbnQgZW1pdHRlZCB3aGVuIGEgc2lnbmVyIGlzIGFkZGVkIG9yIHJlbW92ZWQuAAAAAAAAAAlTaWduZXJTZXQAAAAAAAABAAAACnNpZ25lcl9zZXQAAAAAAAIAAAAAAAAABnNpZ25lcgAAAAAD7gAAABQAAAABAAAAAAAAAAZhY3RpdmUAAAAAAAEAAAAAAAAAAgAAAAUAAAA2RXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBzaWduYXR1cmUgdGhyZXNob2xkIGlzIGNoYW5nZWQuAAAAAAAAAAAADFRocmVzaG9sZFNldAAAAAEAAAANdGhyZXNob2xkX3NldAAAAAAAAAEAAAAAAAAACXRocmVzaG9sZAAAAAAAAAQAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAA9NdWx0aXNpZ1N0b3JhZ2UAAAAAAgAAAAAAAAAAAAAAB1NpZ25lcnMAAAAAAAAAAAAAAAAJVGhyZXNob2xkAAAAAAAABQAAAFdFdmVudCBlbWl0dGVkIHdoZW4gb3duZXJzaGlwIGlzIHRyYW5zZmVycmVkIChib3RoIHNpbmdsZS1zdGVwIGFuZCB0d28tc3RlcCBjb21wbGV0aW9uKS4AAAAAAAAAABRPd25lcnNoaXBUcmFuc2ZlcnJlZAAAAAEAAAAVb3duZXJzaGlwX3RyYW5zZmVycmVkAAAAAAAAAgAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAgAAAAUAAAA7RXZlbnQgZW1pdHRlZCB3aGVuIGEgMi1zdGVwIG93bmVyc2hpcCB0cmFuc2ZlciBpcyBwcm9wb3NlZC4AAAAAAAAAABVPd25lcnNoaXBUcmFuc2ZlcnJpbmcAAAAAAAABAAAAFm93bmVyc2hpcF90cmFuc2ZlcnJpbmcAAAAAAAMAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAAAAAADdHRsAAAAAAQAAAAAAAAAAgAAAAUAAAAqRXZlbnQgZW1pdHRlZCB3aGVuIG93bmVyc2hpcCBpcyByZW5vdW5jZWQuAAAAAAAAAAAAEk93bmVyc2hpcFJlbm91bmNlZAAAAAAAAQAAABNvd25lcnNoaXBfcmVub3VuY2VkAAAAAAEAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAA5Pd25hYmxlU3RvcmFnZQAAAAAAAgAAAAAAAAAAAAAABU93bmVyAAAAAAAAAAAAAAAAAAAMUGVuZGluZ093bmVyAAAAAQAAAElUVEwgY29uZmlndXJhdGlvbjogdGhyZXNob2xkICh3aGVuIHRvIGV4dGVuZCkgYW5kIGV4dGVuZF90byAodGFyZ2V0IFRUTCkuAAAAAAAAAAAAAAlUdGxDb25maWcAAAAAAAACAAAAKFRhcmdldCBUVEwgYWZ0ZXIgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAJZXh0ZW5kX3RvAAAAAAAABAAAADNUVEwgdGhyZXNob2xkIHRoYXQgdHJpZ2dlcnMgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAACXRocmVzaG9sZAAAAAAAAAQAAAAFAAAAJ0V2ZW50IGVtaXR0ZWQgd2hlbiBUVEwgY29uZmlncyBhcmUgc2V0LgAAAAAAAAAADVR0bENvbmZpZ3NTZXQAAAAAAAABAAAAD3R0bF9jb25maWdzX3NldAAAAAACAAAAAAAAAAhpbnN0YW5jZQAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAAAAAAACnBlcnNpc3RlbnQAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAACAAAABQAAACpFdmVudCBlbWl0dGVkIHdoZW4gVFRMIGNvbmZpZ3MgYXJlIGZyb3plbi4AAAAAAAAAAAAQVHRsQ29uZmlnc0Zyb3plbgAAAAEAAAASdHRsX2NvbmZpZ3NfZnJvemVuAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAABBUdGxDb25maWdTdG9yYWdlAAAAAwAAAAAAAAAAAAAABkZyb3plbgAAAAAAAAAAAAAAAAAISW5zdGFuY2UAAAAAAAAAAAAAAApQZXJzaXN0ZW50AAAAAAACAAAAAAAAAAAAAAASVXBncmFkZWFibGVTdG9yYWdlAAAAAAACAAAAAAAAAAAAAAAGRnJvemVuAAAAAAAAAAAAAAAAAAlNaWdyYXRpbmcAAAAAiwEOY29udHJhY3RtZXRhdjAAAAAAAAAABmJpbnZlcgAAAAAABTAuMC4xAAAAAAAAAAAAAAVyc3ZlcgAAAAAAAAYxLjkwLjAAAAAAAAAAAAAIcnNzZGt2ZXIAAAAvMjUuMC4xIzk0MTQ0ODA3OWVjY2Y5NTYyN2QyZmZlYTEzYmEyNjhlMzA1YTkwNzcAAB4RY29udHJhY3RlbnZtZXRhdjAAAAAAAAAAGQAAAAAAUw5jb250cmFjdG1ldGF2MAAAAAAAAAAGY2xpdmVyAAAAAAAvMjUuMC4wI2E2NDkyNWU5MzkxYzNkM2IzZWY4ZTUzZGM2MGMyM2RiOWU2YTgyZTQA";
|
|
13
12
|
/**
|
|
14
13
|
* Pre-computed WASM hash (SHA-256)
|
|
15
14
|
* Use this when the WASM is already uploaded on-chain
|
|
16
15
|
*/
|
|
17
|
-
export declare const WASM_HASH = "
|
|
16
|
+
export declare const WASM_HASH = "05a18caf82faa48c7261039b061654cf831092422854a7c1d1b54fd32c459430";
|
|
18
17
|
/**
|
|
19
18
|
* Get the WASM bytecode as a Buffer
|
|
20
19
|
* Use this to upload the WASM to the network
|
|
@@ -346,253 +345,6 @@ export interface FeesAndPacket {
|
|
|
346
345
|
*/
|
|
347
346
|
zro_fee_recipients: Array<FeeRecipient>;
|
|
348
347
|
}
|
|
349
|
-
/**
|
|
350
|
-
* PacketCodecV1Error: 1100-1109
|
|
351
|
-
*/
|
|
352
|
-
export declare const PacketCodecV1Error: {
|
|
353
|
-
1100: {
|
|
354
|
-
message: string;
|
|
355
|
-
};
|
|
356
|
-
1101: {
|
|
357
|
-
message: string;
|
|
358
|
-
};
|
|
359
|
-
};
|
|
360
|
-
/**
|
|
361
|
-
* WorkerOptionsError: 1110-1119
|
|
362
|
-
*/
|
|
363
|
-
export declare const WorkerOptionsError: {
|
|
364
|
-
1110: {
|
|
365
|
-
message: string;
|
|
366
|
-
};
|
|
367
|
-
1111: {
|
|
368
|
-
message: string;
|
|
369
|
-
};
|
|
370
|
-
1112: {
|
|
371
|
-
message: string;
|
|
372
|
-
};
|
|
373
|
-
1113: {
|
|
374
|
-
message: string;
|
|
375
|
-
};
|
|
376
|
-
1114: {
|
|
377
|
-
message: string;
|
|
378
|
-
};
|
|
379
|
-
1115: {
|
|
380
|
-
message: string;
|
|
381
|
-
};
|
|
382
|
-
1116: {
|
|
383
|
-
message: string;
|
|
384
|
-
};
|
|
385
|
-
1117: {
|
|
386
|
-
message: string;
|
|
387
|
-
};
|
|
388
|
-
1118: {
|
|
389
|
-
message: string;
|
|
390
|
-
};
|
|
391
|
-
};
|
|
392
|
-
/**
|
|
393
|
-
* BufferReaderError: 1000-1009
|
|
394
|
-
*/
|
|
395
|
-
export declare const BufferReaderError: {
|
|
396
|
-
1000: {
|
|
397
|
-
message: string;
|
|
398
|
-
};
|
|
399
|
-
1001: {
|
|
400
|
-
message: string;
|
|
401
|
-
};
|
|
402
|
-
};
|
|
403
|
-
/**
|
|
404
|
-
* BufferWriterError: 1010-1019
|
|
405
|
-
*/
|
|
406
|
-
export declare const BufferWriterError: {
|
|
407
|
-
1010: {
|
|
408
|
-
message: string;
|
|
409
|
-
};
|
|
410
|
-
};
|
|
411
|
-
/**
|
|
412
|
-
* TtlConfigurableError: 1020-1029
|
|
413
|
-
*/
|
|
414
|
-
export declare const TtlConfigurableError: {
|
|
415
|
-
1020: {
|
|
416
|
-
message: string;
|
|
417
|
-
};
|
|
418
|
-
1021: {
|
|
419
|
-
message: string;
|
|
420
|
-
};
|
|
421
|
-
1022: {
|
|
422
|
-
message: string;
|
|
423
|
-
};
|
|
424
|
-
};
|
|
425
|
-
/**
|
|
426
|
-
* OwnableError: 1030-1039
|
|
427
|
-
*/
|
|
428
|
-
export declare const OwnableError: {
|
|
429
|
-
1030: {
|
|
430
|
-
message: string;
|
|
431
|
-
};
|
|
432
|
-
1031: {
|
|
433
|
-
message: string;
|
|
434
|
-
};
|
|
435
|
-
1032: {
|
|
436
|
-
message: string;
|
|
437
|
-
};
|
|
438
|
-
1033: {
|
|
439
|
-
message: string;
|
|
440
|
-
};
|
|
441
|
-
1034: {
|
|
442
|
-
message: string;
|
|
443
|
-
};
|
|
444
|
-
1035: {
|
|
445
|
-
message: string;
|
|
446
|
-
};
|
|
447
|
-
};
|
|
448
|
-
/**
|
|
449
|
-
* BytesExtError: 1040-1049
|
|
450
|
-
*/
|
|
451
|
-
export declare const BytesExtError: {
|
|
452
|
-
1040: {
|
|
453
|
-
message: string;
|
|
454
|
-
};
|
|
455
|
-
};
|
|
456
|
-
/**
|
|
457
|
-
* UpgradeableError: 1050-1059
|
|
458
|
-
*/
|
|
459
|
-
export declare const UpgradeableError: {
|
|
460
|
-
1050: {
|
|
461
|
-
message: string;
|
|
462
|
-
};
|
|
463
|
-
};
|
|
464
|
-
/**
|
|
465
|
-
* MultisigError: 1060-1069
|
|
466
|
-
*/
|
|
467
|
-
export declare const MultisigError: {
|
|
468
|
-
1060: {
|
|
469
|
-
message: string;
|
|
470
|
-
};
|
|
471
|
-
1061: {
|
|
472
|
-
message: string;
|
|
473
|
-
};
|
|
474
|
-
1062: {
|
|
475
|
-
message: string;
|
|
476
|
-
};
|
|
477
|
-
1063: {
|
|
478
|
-
message: string;
|
|
479
|
-
};
|
|
480
|
-
1064: {
|
|
481
|
-
message: string;
|
|
482
|
-
};
|
|
483
|
-
1065: {
|
|
484
|
-
message: string;
|
|
485
|
-
};
|
|
486
|
-
1066: {
|
|
487
|
-
message: string;
|
|
488
|
-
};
|
|
489
|
-
1067: {
|
|
490
|
-
message: string;
|
|
491
|
-
};
|
|
492
|
-
};
|
|
493
|
-
export type MultisigStorage = {
|
|
494
|
-
tag: "Signers";
|
|
495
|
-
values: void;
|
|
496
|
-
} | {
|
|
497
|
-
tag: "Threshold";
|
|
498
|
-
values: void;
|
|
499
|
-
};
|
|
500
|
-
export type OwnableStorage = {
|
|
501
|
-
tag: "Owner";
|
|
502
|
-
values: void;
|
|
503
|
-
} | {
|
|
504
|
-
tag: "PendingOwner";
|
|
505
|
-
values: void;
|
|
506
|
-
};
|
|
507
|
-
/**
|
|
508
|
-
* TTL configuration: threshold (when to extend) and extend_to (target TTL).
|
|
509
|
-
*/
|
|
510
|
-
export interface TtlConfig {
|
|
511
|
-
/**
|
|
512
|
-
* Target TTL after extension (in ledgers).
|
|
513
|
-
*/
|
|
514
|
-
extend_to: u32;
|
|
515
|
-
/**
|
|
516
|
-
* TTL threshold that triggers extension (in ledgers).
|
|
517
|
-
*/
|
|
518
|
-
threshold: u32;
|
|
519
|
-
}
|
|
520
|
-
export type TtlConfigStorage = {
|
|
521
|
-
tag: "Frozen";
|
|
522
|
-
values: void;
|
|
523
|
-
} | {
|
|
524
|
-
tag: "Instance";
|
|
525
|
-
values: void;
|
|
526
|
-
} | {
|
|
527
|
-
tag: "Persistent";
|
|
528
|
-
values: void;
|
|
529
|
-
};
|
|
530
|
-
export type UpgradeableStorage = {
|
|
531
|
-
tag: "Migrating";
|
|
532
|
-
values: void;
|
|
533
|
-
};
|
|
534
|
-
/**
|
|
535
|
-
* WorkerError: 1200-1299
|
|
536
|
-
*/
|
|
537
|
-
export declare const WorkerError: {
|
|
538
|
-
1200: {
|
|
539
|
-
message: string;
|
|
540
|
-
};
|
|
541
|
-
1201: {
|
|
542
|
-
message: string;
|
|
543
|
-
};
|
|
544
|
-
1202: {
|
|
545
|
-
message: string;
|
|
546
|
-
};
|
|
547
|
-
1203: {
|
|
548
|
-
message: string;
|
|
549
|
-
};
|
|
550
|
-
1204: {
|
|
551
|
-
message: string;
|
|
552
|
-
};
|
|
553
|
-
1205: {
|
|
554
|
-
message: string;
|
|
555
|
-
};
|
|
556
|
-
1206: {
|
|
557
|
-
message: string;
|
|
558
|
-
};
|
|
559
|
-
1207: {
|
|
560
|
-
message: string;
|
|
561
|
-
};
|
|
562
|
-
1208: {
|
|
563
|
-
message: string;
|
|
564
|
-
};
|
|
565
|
-
1209: {
|
|
566
|
-
message: string;
|
|
567
|
-
};
|
|
568
|
-
1210: {
|
|
569
|
-
message: string;
|
|
570
|
-
};
|
|
571
|
-
1211: {
|
|
572
|
-
message: string;
|
|
573
|
-
};
|
|
574
|
-
1212: {
|
|
575
|
-
message: string;
|
|
576
|
-
};
|
|
577
|
-
1213: {
|
|
578
|
-
message: string;
|
|
579
|
-
};
|
|
580
|
-
1214: {
|
|
581
|
-
message: string;
|
|
582
|
-
};
|
|
583
|
-
1215: {
|
|
584
|
-
message: string;
|
|
585
|
-
};
|
|
586
|
-
1216: {
|
|
587
|
-
message: string;
|
|
588
|
-
};
|
|
589
|
-
1217: {
|
|
590
|
-
message: string;
|
|
591
|
-
};
|
|
592
|
-
1218: {
|
|
593
|
-
message: string;
|
|
594
|
-
};
|
|
595
|
-
};
|
|
596
348
|
/**
|
|
597
349
|
* Parameters for DVN fee calculation.
|
|
598
350
|
*
|
|
@@ -756,96 +508,201 @@ export interface FeeEstimate {
|
|
|
756
508
|
*/
|
|
757
509
|
total_gas_fee: i128;
|
|
758
510
|
}
|
|
759
|
-
|
|
760
|
-
|
|
511
|
+
/**
|
|
512
|
+
* PacketCodecV1Error: 1100-1109
|
|
513
|
+
*/
|
|
514
|
+
export declare const PacketCodecV1Error: {
|
|
515
|
+
1100: {
|
|
516
|
+
message: string;
|
|
517
|
+
};
|
|
518
|
+
1101: {
|
|
519
|
+
message: string;
|
|
520
|
+
};
|
|
521
|
+
};
|
|
522
|
+
/**
|
|
523
|
+
* WorkerOptionsError: 1110-1119
|
|
524
|
+
*/
|
|
525
|
+
export declare const WorkerOptionsError: {
|
|
526
|
+
1110: {
|
|
527
|
+
message: string;
|
|
528
|
+
};
|
|
529
|
+
1111: {
|
|
530
|
+
message: string;
|
|
531
|
+
};
|
|
532
|
+
1112: {
|
|
533
|
+
message: string;
|
|
534
|
+
};
|
|
535
|
+
1113: {
|
|
536
|
+
message: string;
|
|
537
|
+
};
|
|
538
|
+
1114: {
|
|
539
|
+
message: string;
|
|
540
|
+
};
|
|
541
|
+
1115: {
|
|
542
|
+
message: string;
|
|
543
|
+
};
|
|
544
|
+
1116: {
|
|
545
|
+
message: string;
|
|
546
|
+
};
|
|
547
|
+
1117: {
|
|
548
|
+
message: string;
|
|
549
|
+
};
|
|
550
|
+
1118: {
|
|
551
|
+
message: string;
|
|
552
|
+
};
|
|
553
|
+
};
|
|
554
|
+
/**
|
|
555
|
+
* BufferReaderError: 1000-1009
|
|
556
|
+
*/
|
|
557
|
+
export declare const BufferReaderError: {
|
|
558
|
+
1000: {
|
|
559
|
+
message: string;
|
|
560
|
+
};
|
|
561
|
+
1001: {
|
|
562
|
+
message: string;
|
|
563
|
+
};
|
|
564
|
+
};
|
|
565
|
+
/**
|
|
566
|
+
* BufferWriterError: 1010-1019
|
|
567
|
+
*/
|
|
568
|
+
export declare const BufferWriterError: {
|
|
569
|
+
1010: {
|
|
570
|
+
message: string;
|
|
571
|
+
};
|
|
572
|
+
};
|
|
573
|
+
/**
|
|
574
|
+
* TtlConfigurableError: 1020-1029
|
|
575
|
+
*/
|
|
576
|
+
export declare const TtlConfigurableError: {
|
|
577
|
+
1020: {
|
|
578
|
+
message: string;
|
|
579
|
+
};
|
|
580
|
+
1021: {
|
|
581
|
+
message: string;
|
|
582
|
+
};
|
|
583
|
+
1022: {
|
|
584
|
+
message: string;
|
|
585
|
+
};
|
|
586
|
+
};
|
|
587
|
+
/**
|
|
588
|
+
* OwnableError: 1030-1039
|
|
589
|
+
*/
|
|
590
|
+
export declare const OwnableError: {
|
|
591
|
+
1030: {
|
|
592
|
+
message: string;
|
|
593
|
+
};
|
|
594
|
+
1031: {
|
|
595
|
+
message: string;
|
|
596
|
+
};
|
|
597
|
+
1032: {
|
|
598
|
+
message: string;
|
|
599
|
+
};
|
|
600
|
+
1033: {
|
|
601
|
+
message: string;
|
|
602
|
+
};
|
|
603
|
+
1034: {
|
|
604
|
+
message: string;
|
|
605
|
+
};
|
|
606
|
+
1035: {
|
|
607
|
+
message: string;
|
|
608
|
+
};
|
|
609
|
+
};
|
|
610
|
+
/**
|
|
611
|
+
* BytesExtError: 1040-1049
|
|
612
|
+
*/
|
|
613
|
+
export declare const BytesExtError: {
|
|
614
|
+
1040: {
|
|
615
|
+
message: string;
|
|
616
|
+
};
|
|
617
|
+
};
|
|
618
|
+
/**
|
|
619
|
+
* UpgradeableError: 1050-1059
|
|
620
|
+
*/
|
|
621
|
+
export declare const UpgradeableError: {
|
|
622
|
+
1050: {
|
|
623
|
+
message: string;
|
|
624
|
+
};
|
|
625
|
+
1051: {
|
|
626
|
+
message: string;
|
|
627
|
+
};
|
|
628
|
+
1052: {
|
|
629
|
+
message: string;
|
|
630
|
+
};
|
|
631
|
+
};
|
|
632
|
+
/**
|
|
633
|
+
* MultisigError: 1060-1069
|
|
634
|
+
*/
|
|
635
|
+
export declare const MultisigError: {
|
|
636
|
+
1060: {
|
|
637
|
+
message: string;
|
|
638
|
+
};
|
|
639
|
+
1061: {
|
|
640
|
+
message: string;
|
|
641
|
+
};
|
|
642
|
+
1062: {
|
|
643
|
+
message: string;
|
|
644
|
+
};
|
|
645
|
+
1063: {
|
|
646
|
+
message: string;
|
|
647
|
+
};
|
|
648
|
+
1064: {
|
|
649
|
+
message: string;
|
|
650
|
+
};
|
|
651
|
+
1065: {
|
|
652
|
+
message: string;
|
|
653
|
+
};
|
|
654
|
+
1066: {
|
|
655
|
+
message: string;
|
|
656
|
+
};
|
|
657
|
+
1067: {
|
|
658
|
+
message: string;
|
|
659
|
+
};
|
|
660
|
+
};
|
|
661
|
+
export type MultisigStorage = {
|
|
662
|
+
tag: "Signers";
|
|
761
663
|
values: void;
|
|
762
664
|
} | {
|
|
763
|
-
tag: "
|
|
665
|
+
tag: "Threshold";
|
|
764
666
|
values: void;
|
|
765
|
-
}
|
|
766
|
-
|
|
667
|
+
};
|
|
668
|
+
export type OwnableStorage = {
|
|
669
|
+
tag: "Owner";
|
|
767
670
|
values: void;
|
|
768
671
|
} | {
|
|
769
|
-
tag: "
|
|
672
|
+
tag: "PendingOwner";
|
|
673
|
+
values: void;
|
|
674
|
+
};
|
|
675
|
+
/**
|
|
676
|
+
* TTL configuration: threshold (when to extend) and extend_to (target TTL).
|
|
677
|
+
*/
|
|
678
|
+
export interface TtlConfig {
|
|
679
|
+
/**
|
|
680
|
+
* Target TTL after extension (in ledgers).
|
|
681
|
+
*/
|
|
682
|
+
extend_to: u32;
|
|
683
|
+
/**
|
|
684
|
+
* TTL threshold that triggers extension (in ledgers).
|
|
685
|
+
*/
|
|
686
|
+
threshold: u32;
|
|
687
|
+
}
|
|
688
|
+
export type TtlConfigStorage = {
|
|
689
|
+
tag: "Frozen";
|
|
770
690
|
values: void;
|
|
771
691
|
} | {
|
|
772
|
-
tag: "
|
|
692
|
+
tag: "Instance";
|
|
773
693
|
values: void;
|
|
774
694
|
} | {
|
|
775
|
-
tag: "
|
|
776
|
-
values: readonly [u32];
|
|
777
|
-
} | {
|
|
778
|
-
tag: "MessageLibs";
|
|
695
|
+
tag: "Persistent";
|
|
779
696
|
values: void;
|
|
780
|
-
}
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
} | {
|
|
784
|
-
tag: "Denylist";
|
|
785
|
-
values: readonly [string];
|
|
786
|
-
} | {
|
|
787
|
-
tag: "AllowlistSize";
|
|
697
|
+
};
|
|
698
|
+
export type UpgradeableStorage = {
|
|
699
|
+
tag: "Frozen";
|
|
788
700
|
values: void;
|
|
789
701
|
} | {
|
|
790
|
-
tag: "
|
|
702
|
+
tag: "Migrating";
|
|
791
703
|
values: void;
|
|
792
704
|
};
|
|
793
705
|
export interface Client {
|
|
794
|
-
/**
|
|
795
|
-
* Construct and simulate a upgrade transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
796
|
-
*/
|
|
797
|
-
upgrade: ({ new_wasm_hash }: {
|
|
798
|
-
new_wasm_hash: Buffer;
|
|
799
|
-
}, txnOptions?: {
|
|
800
|
-
/**
|
|
801
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
802
|
-
*/
|
|
803
|
-
fee?: number;
|
|
804
|
-
/**
|
|
805
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
806
|
-
*/
|
|
807
|
-
timeoutInSeconds?: number;
|
|
808
|
-
/**
|
|
809
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
810
|
-
*/
|
|
811
|
-
simulate?: boolean;
|
|
812
|
-
}) => Promise<AssembledTransaction<null>>;
|
|
813
|
-
/**
|
|
814
|
-
* Construct and simulate a migrate transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
815
|
-
*/
|
|
816
|
-
migrate: ({ migration_data }: {
|
|
817
|
-
migration_data: MigrationData;
|
|
818
|
-
}, txnOptions?: {
|
|
819
|
-
/**
|
|
820
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
821
|
-
*/
|
|
822
|
-
fee?: number;
|
|
823
|
-
/**
|
|
824
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
825
|
-
*/
|
|
826
|
-
timeoutInSeconds?: number;
|
|
827
|
-
/**
|
|
828
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
829
|
-
*/
|
|
830
|
-
simulate?: boolean;
|
|
831
|
-
}) => Promise<AssembledTransaction<null>>;
|
|
832
|
-
/**
|
|
833
|
-
* Construct and simulate a authorizer transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
834
|
-
*/
|
|
835
|
-
authorizer: (txnOptions?: {
|
|
836
|
-
/**
|
|
837
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
838
|
-
*/
|
|
839
|
-
fee?: number;
|
|
840
|
-
/**
|
|
841
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
842
|
-
*/
|
|
843
|
-
timeoutInSeconds?: number;
|
|
844
|
-
/**
|
|
845
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
846
|
-
*/
|
|
847
|
-
simulate?: boolean;
|
|
848
|
-
}) => Promise<AssembledTransaction<string>>;
|
|
849
706
|
/**
|
|
850
707
|
* Construct and simulate a get_fee transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
851
708
|
* Calculates the total execution fee for a cross-chain message.
|
|
@@ -904,23 +761,13 @@ export interface Client {
|
|
|
904
761
|
simulate?: boolean;
|
|
905
762
|
}) => Promise<AssembledTransaction<readonly [u64, u32]>>;
|
|
906
763
|
/**
|
|
907
|
-
* Construct and simulate a
|
|
908
|
-
*
|
|
909
|
-
*
|
|
910
|
-
*
|
|
911
|
-
* - Validates that `threshold <= extend_to <= MAX_TTL`
|
|
912
|
-
*
|
|
913
|
-
* # Arguments
|
|
914
|
-
* - `instance` - TTL config for instance storage
|
|
915
|
-
* - `persistent` - TTL config for persistent storage
|
|
916
|
-
*
|
|
917
|
-
* # Panics
|
|
918
|
-
* - `TtlConfigFrozen` if configs are frozen
|
|
919
|
-
* - `InvalidTtlConfig` if validation fails
|
|
764
|
+
* Construct and simulate a upgrade transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
765
|
+
* The type of data required for migration.
|
|
766
|
+
* Upgrades the contract to new WASM bytecode.
|
|
767
|
+
* Sets a migration flag that must be cleared by calling `migrate`.
|
|
920
768
|
*/
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
persistent: Option<TtlConfig>;
|
|
769
|
+
upgrade: ({ new_wasm_hash }: {
|
|
770
|
+
new_wasm_hash: Buffer;
|
|
924
771
|
}, txnOptions?: {
|
|
925
772
|
/**
|
|
926
773
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
@@ -936,10 +783,13 @@ export interface Client {
|
|
|
936
783
|
simulate?: boolean;
|
|
937
784
|
}) => Promise<AssembledTransaction<null>>;
|
|
938
785
|
/**
|
|
939
|
-
* Construct and simulate a
|
|
940
|
-
*
|
|
786
|
+
* Construct and simulate a migrate transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
787
|
+
* Runs migration logic after an upgrade.
|
|
788
|
+
* Can only be called when the migration flag is set by a previous `upgrade` call.
|
|
941
789
|
*/
|
|
942
|
-
|
|
790
|
+
migrate: ({ migration_data }: {
|
|
791
|
+
migration_data: Buffer;
|
|
792
|
+
}, txnOptions?: {
|
|
943
793
|
/**
|
|
944
794
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
945
795
|
*/
|
|
@@ -952,18 +802,13 @@ export interface Client {
|
|
|
952
802
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
953
803
|
*/
|
|
954
804
|
simulate?: boolean;
|
|
955
|
-
}) => Promise<AssembledTransaction<
|
|
805
|
+
}) => Promise<AssembledTransaction<null>>;
|
|
956
806
|
/**
|
|
957
|
-
* Construct and simulate a
|
|
958
|
-
* Permanently freezes
|
|
959
|
-
*
|
|
960
|
-
* This is irreversible and provides immutability guarantees to users.
|
|
961
|
-
* Emits `TtlConfigsFrozen` event.
|
|
962
|
-
*
|
|
963
|
-
* # Panics
|
|
964
|
-
* - `TtlConfigAlreadyFrozen` if already frozen
|
|
807
|
+
* Construct and simulate a freeze transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
808
|
+
* Permanently freezes the contract, preventing any future upgrades.
|
|
809
|
+
* This action is irreversible.
|
|
965
810
|
*/
|
|
966
|
-
|
|
811
|
+
freeze: (txnOptions?: {
|
|
967
812
|
/**
|
|
968
813
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
969
814
|
*/
|
|
@@ -978,10 +823,10 @@ export interface Client {
|
|
|
978
823
|
simulate?: boolean;
|
|
979
824
|
}) => Promise<AssembledTransaction<null>>;
|
|
980
825
|
/**
|
|
981
|
-
* Construct and simulate a
|
|
982
|
-
* Returns whether
|
|
826
|
+
* Construct and simulate a is_frozen transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
827
|
+
* Returns whether the contract is frozen (upgrades disabled).
|
|
983
828
|
*/
|
|
984
|
-
|
|
829
|
+
is_frozen: (txnOptions?: {
|
|
985
830
|
/**
|
|
986
831
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
987
832
|
*/
|
|
@@ -996,18 +841,9 @@ export interface Client {
|
|
|
996
841
|
simulate?: boolean;
|
|
997
842
|
}) => Promise<AssembledTransaction<boolean>>;
|
|
998
843
|
/**
|
|
999
|
-
* Construct and simulate a
|
|
1000
|
-
* Extends the instance TTL.
|
|
1001
|
-
*
|
|
1002
|
-
* # Arguments
|
|
1003
|
-
*
|
|
1004
|
-
* * `threshold` - The threshold to extend the TTL (if current TTL is below this, extend).
|
|
1005
|
-
* * `extend_to` - The TTL to extend to.
|
|
844
|
+
* Construct and simulate a authorizer transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1006
845
|
*/
|
|
1007
|
-
|
|
1008
|
-
threshold: u32;
|
|
1009
|
-
extend_to: u32;
|
|
1010
|
-
}, txnOptions?: {
|
|
846
|
+
authorizer: (txnOptions?: {
|
|
1011
847
|
/**
|
|
1012
848
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1013
849
|
*/
|
|
@@ -1020,7 +856,7 @@ export interface Client {
|
|
|
1020
856
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1021
857
|
*/
|
|
1022
858
|
simulate?: boolean;
|
|
1023
|
-
}) => Promise<AssembledTransaction<
|
|
859
|
+
}) => Promise<AssembledTransaction<string>>;
|
|
1024
860
|
/**
|
|
1025
861
|
* Construct and simulate a owner transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1026
862
|
* Returns the current owner address, or None if no owner is set.
|
|
@@ -1164,6 +1000,124 @@ export interface Client {
|
|
|
1164
1000
|
*/
|
|
1165
1001
|
simulate?: boolean;
|
|
1166
1002
|
}) => Promise<AssembledTransaction<null>>;
|
|
1003
|
+
/**
|
|
1004
|
+
* Construct and simulate a extend_instance_ttl transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1005
|
+
* Extends the instance TTL.
|
|
1006
|
+
*
|
|
1007
|
+
* # Arguments
|
|
1008
|
+
*
|
|
1009
|
+
* * `threshold` - The threshold to extend the TTL (if current TTL is below this, extend).
|
|
1010
|
+
* * `extend_to` - The TTL to extend to.
|
|
1011
|
+
*/
|
|
1012
|
+
extend_instance_ttl: ({ threshold, extend_to }: {
|
|
1013
|
+
threshold: u32;
|
|
1014
|
+
extend_to: u32;
|
|
1015
|
+
}, txnOptions?: {
|
|
1016
|
+
/**
|
|
1017
|
+
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1018
|
+
*/
|
|
1019
|
+
fee?: number;
|
|
1020
|
+
/**
|
|
1021
|
+
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1022
|
+
*/
|
|
1023
|
+
timeoutInSeconds?: number;
|
|
1024
|
+
/**
|
|
1025
|
+
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1026
|
+
*/
|
|
1027
|
+
simulate?: boolean;
|
|
1028
|
+
}) => Promise<AssembledTransaction<null>>;
|
|
1029
|
+
/**
|
|
1030
|
+
* Construct and simulate a set_ttl_configs transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1031
|
+
* Sets TTL configs for instance and persistent storage.
|
|
1032
|
+
*
|
|
1033
|
+
* - `None` values remove the corresponding config (disables auto-extension for that type)
|
|
1034
|
+
* - Validates that `threshold <= extend_to <= MAX_TTL`
|
|
1035
|
+
*
|
|
1036
|
+
* # Arguments
|
|
1037
|
+
* - `instance` - TTL config for instance storage
|
|
1038
|
+
* - `persistent` - TTL config for persistent storage
|
|
1039
|
+
*
|
|
1040
|
+
* # Panics
|
|
1041
|
+
* - `TtlConfigFrozen` if configs are frozen
|
|
1042
|
+
* - `InvalidTtlConfig` if validation fails
|
|
1043
|
+
*/
|
|
1044
|
+
set_ttl_configs: ({ instance, persistent }: {
|
|
1045
|
+
instance: Option<TtlConfig>;
|
|
1046
|
+
persistent: Option<TtlConfig>;
|
|
1047
|
+
}, txnOptions?: {
|
|
1048
|
+
/**
|
|
1049
|
+
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1050
|
+
*/
|
|
1051
|
+
fee?: number;
|
|
1052
|
+
/**
|
|
1053
|
+
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1054
|
+
*/
|
|
1055
|
+
timeoutInSeconds?: number;
|
|
1056
|
+
/**
|
|
1057
|
+
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1058
|
+
*/
|
|
1059
|
+
simulate?: boolean;
|
|
1060
|
+
}) => Promise<AssembledTransaction<null>>;
|
|
1061
|
+
/**
|
|
1062
|
+
* Construct and simulate a ttl_configs transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1063
|
+
* Returns the current TTL configs as (instance_config, persistent_config).
|
|
1064
|
+
*/
|
|
1065
|
+
ttl_configs: (txnOptions?: {
|
|
1066
|
+
/**
|
|
1067
|
+
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1068
|
+
*/
|
|
1069
|
+
fee?: number;
|
|
1070
|
+
/**
|
|
1071
|
+
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1072
|
+
*/
|
|
1073
|
+
timeoutInSeconds?: number;
|
|
1074
|
+
/**
|
|
1075
|
+
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1076
|
+
*/
|
|
1077
|
+
simulate?: boolean;
|
|
1078
|
+
}) => Promise<AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>>;
|
|
1079
|
+
/**
|
|
1080
|
+
* Construct and simulate a freeze_ttl_configs transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1081
|
+
* Permanently freezes TTL configs, preventing any future modifications.
|
|
1082
|
+
*
|
|
1083
|
+
* This is irreversible and provides immutability guarantees to users.
|
|
1084
|
+
* Emits `TtlConfigsFrozen` event.
|
|
1085
|
+
*
|
|
1086
|
+
* # Panics
|
|
1087
|
+
* - `TtlConfigAlreadyFrozen` if already frozen
|
|
1088
|
+
*/
|
|
1089
|
+
freeze_ttl_configs: (txnOptions?: {
|
|
1090
|
+
/**
|
|
1091
|
+
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1092
|
+
*/
|
|
1093
|
+
fee?: number;
|
|
1094
|
+
/**
|
|
1095
|
+
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1096
|
+
*/
|
|
1097
|
+
timeoutInSeconds?: number;
|
|
1098
|
+
/**
|
|
1099
|
+
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1100
|
+
*/
|
|
1101
|
+
simulate?: boolean;
|
|
1102
|
+
}) => Promise<AssembledTransaction<null>>;
|
|
1103
|
+
/**
|
|
1104
|
+
* Construct and simulate a is_ttl_configs_frozen transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1105
|
+
* Returns whether TTL configs are frozen.
|
|
1106
|
+
*/
|
|
1107
|
+
is_ttl_configs_frozen: (txnOptions?: {
|
|
1108
|
+
/**
|
|
1109
|
+
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1110
|
+
*/
|
|
1111
|
+
fee?: number;
|
|
1112
|
+
/**
|
|
1113
|
+
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1114
|
+
*/
|
|
1115
|
+
timeoutInSeconds?: number;
|
|
1116
|
+
/**
|
|
1117
|
+
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1118
|
+
*/
|
|
1119
|
+
simulate?: boolean;
|
|
1120
|
+
}) => Promise<AssembledTransaction<boolean>>;
|
|
1167
1121
|
}
|
|
1168
1122
|
export declare class Client extends ContractClient {
|
|
1169
1123
|
readonly options: ContractClientOptions;
|
|
@@ -1183,21 +1137,23 @@ export declare class Client extends ContractClient {
|
|
|
1183
1137
|
}): Promise<AssembledTransaction<T>>;
|
|
1184
1138
|
constructor(options: ContractClientOptions);
|
|
1185
1139
|
readonly fromJSON: {
|
|
1140
|
+
get_fee: (json: string) => AssembledTransaction<bigint>;
|
|
1141
|
+
version: (json: string) => AssembledTransaction<readonly [bigint, number]>;
|
|
1186
1142
|
upgrade: (json: string) => AssembledTransaction<null>;
|
|
1187
1143
|
migrate: (json: string) => AssembledTransaction<null>;
|
|
1144
|
+
freeze: (json: string) => AssembledTransaction<null>;
|
|
1145
|
+
is_frozen: (json: string) => AssembledTransaction<boolean>;
|
|
1188
1146
|
authorizer: (json: string) => AssembledTransaction<string>;
|
|
1189
|
-
get_fee: (json: string) => AssembledTransaction<bigint>;
|
|
1190
|
-
version: (json: string) => AssembledTransaction<readonly [bigint, number]>;
|
|
1191
|
-
set_ttl_configs: (json: string) => AssembledTransaction<null>;
|
|
1192
|
-
ttl_configs: (json: string) => AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>;
|
|
1193
|
-
freeze_ttl_configs: (json: string) => AssembledTransaction<null>;
|
|
1194
|
-
is_ttl_configs_frozen: (json: string) => AssembledTransaction<boolean>;
|
|
1195
|
-
extend_instance_ttl: (json: string) => AssembledTransaction<null>;
|
|
1196
1147
|
owner: (json: string) => AssembledTransaction<Option<string>>;
|
|
1197
1148
|
pending_owner: (json: string) => AssembledTransaction<Option<string>>;
|
|
1198
1149
|
transfer_ownership: (json: string) => AssembledTransaction<null>;
|
|
1199
1150
|
propose_ownership_transfer: (json: string) => AssembledTransaction<null>;
|
|
1200
1151
|
accept_ownership: (json: string) => AssembledTransaction<null>;
|
|
1201
1152
|
renounce_ownership: (json: string) => AssembledTransaction<null>;
|
|
1153
|
+
extend_instance_ttl: (json: string) => AssembledTransaction<null>;
|
|
1154
|
+
set_ttl_configs: (json: string) => AssembledTransaction<null>;
|
|
1155
|
+
ttl_configs: (json: string) => AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>;
|
|
1156
|
+
freeze_ttl_configs: (json: string) => AssembledTransaction<null>;
|
|
1157
|
+
is_ttl_configs_frozen: (json: string) => AssembledTransaction<boolean>;
|
|
1202
1158
|
};
|
|
1203
1159
|
}
|