@layerzerolabs/protocol-stellar-v2 0.2.18 → 0.2.20
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 +303 -253
- package/.turbo/turbo-lint.log +66 -65
- package/.turbo/turbo-test.log +1312 -1282
- package/Cargo.lock +21 -8
- package/Cargo.toml +2 -0
- package/contracts/ERROR_SPEC.md +9 -2
- package/contracts/common-macros/src/contract_ttl.rs +18 -7
- package/contracts/common-macros/src/lib.rs +4 -4
- package/contracts/common-macros/src/tests/contract_ttl.rs +1 -1
- 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__upgradeable__snapshot_generated_upgradeable_code.snap +7 -12
- package/contracts/common-macros/src/upgradeable.rs +15 -21
- package/contracts/message-libs/uln-302/src/events.rs +4 -0
- package/contracts/message-libs/uln-302/src/send_uln.rs +23 -7
- package/contracts/message-libs/uln-302/src/tests/send_uln302/send.rs +38 -64
- package/contracts/oapps/counter/Cargo.toml +1 -0
- package/contracts/oapps/counter/integration_tests/setup_uln.rs +1 -1
- package/contracts/oapps/oapp/src/oapp_receiver.rs +1 -1
- package/contracts/oapps/oapp/src/tests/test_oapp_core.rs +113 -65
- package/contracts/oapps/oapp/src/tests/test_oapp_options_type3.rs +111 -82
- package/contracts/oapps/oapp/src/tests/test_oapp_receiver.rs +293 -65
- package/contracts/oapps/oapp/src/tests/test_oapp_sender.rs +331 -56
- package/contracts/oapps/oft/Cargo.toml +10 -7
- package/contracts/oapps/{oft-std → oft}/integration-tests/extensions/test_oft_fee.rs +3 -4
- package/contracts/oapps/{oft-std → oft}/integration-tests/extensions/test_pausable.rs +2 -3
- package/contracts/oapps/{oft-std → oft}/integration-tests/extensions/test_rate_limiter.rs +1 -1
- package/contracts/oapps/oft/integration-tests/mod.rs +1 -1
- package/contracts/oapps/oft/integration-tests/setup.rs +28 -127
- package/contracts/oapps/oft/integration-tests/utils.rs +254 -21
- package/contracts/oapps/oft/src/extensions/oft_fee.rs +23 -8
- package/contracts/oapps/oft/src/extensions/pausable.rs +19 -4
- package/contracts/oapps/oft/src/extensions/rate_limiter.rs +52 -28
- package/contracts/oapps/oft/src/lib.rs +10 -14
- package/contracts/oapps/oft/src/oft.rs +143 -193
- package/contracts/oapps/oft/src/oft_types/lock_unlock.rs +9 -11
- package/contracts/oapps/oft/src/oft_types/mint_burn.rs +12 -14
- package/contracts/oapps/oft/src/oft_types/mod.rs +13 -0
- package/contracts/oapps/{oft-std → oft-core}/Cargo.toml +6 -4
- package/contracts/oapps/{oft-std → oft-core}/integration-tests/mod.rs +1 -1
- package/contracts/oapps/{oft-std → oft-core}/integration-tests/setup.rs +126 -29
- package/contracts/oapps/{oft → oft-core}/integration-tests/test_with_sml.rs +3 -3
- package/contracts/oapps/oft-core/integration-tests/utils.rs +201 -0
- package/contracts/oapps/oft-core/src/lib.rs +18 -0
- package/contracts/oapps/oft-core/src/oft_core.rs +479 -0
- package/contracts/oapps/{oft → oft-core}/src/tests/mod.rs +0 -2
- package/contracts/oapps/{oft → oft-core}/src/tests/test_lz_receive.rs +7 -7
- package/contracts/oapps/{oft → oft-core}/src/tests/test_oft_msg_codec.rs +4 -4
- package/contracts/oapps/{oft → oft-core}/src/tests/test_resolve_address.rs +3 -3
- package/contracts/oapps/{oft → oft-core}/src/tests/test_utils.rs +46 -27
- package/contracts/oapps/{oft → oft-core}/src/utils.rs +1 -1
- 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/src/buffer_reader.rs +1 -0
- package/contracts/utils/src/errors.rs +8 -2
- package/contracts/utils/src/ownable.rs +125 -3
- package/contracts/utils/src/tests/option_ext.rs +1 -1
- package/contracts/utils/src/tests/ownable.rs +445 -7
- package/contracts/utils/src/tests/ttl_configurable.rs +2 -2
- package/contracts/utils/src/tests/upgradeable.rs +372 -175
- package/contracts/utils/src/ttl_configurable.rs +3 -3
- package/contracts/utils/src/upgradeable.rs +48 -23
- package/contracts/workers/dvn/Cargo.toml +1 -0
- package/contracts/workers/dvn/src/auth.rs +12 -42
- package/contracts/workers/dvn/src/dvn.rs +16 -31
- 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 +1 -1
- package/contracts/workers/dvn-fee-lib/src/dvn_fee_lib.rs +3 -5
- package/contracts/workers/dvn-fee-lib/src/tests/dvn_fee_lib.rs +2 -3
- package/contracts/workers/executor/Cargo.toml +1 -0
- package/contracts/workers/executor/src/executor.rs +15 -26
- package/contracts/workers/executor-fee-lib/Cargo.toml +2 -1
- package/contracts/workers/executor-fee-lib/src/executor_fee_lib.rs +63 -5
- package/contracts/workers/executor-fee-lib/src/executor_option.rs +28 -1
- package/contracts/workers/executor-fee-lib/src/lib.rs +3 -0
- 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/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 +2 -1
- package/contracts/workers/price-feed/src/events.rs +1 -1
- package/contracts/workers/price-feed/src/lib.rs +3 -0
- package/contracts/workers/price-feed/src/price_feed.rs +6 -12
- 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 +0 -3
- 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 +1 -7
- package/contracts/workers/worker/src/tests/worker.rs +50 -42
- package/contracts/workers/worker/src/worker.rs +49 -58
- package/package.json +4 -5
- package/sdk/.turbo/turbo-test.log +229 -217
- package/sdk/dist/generated/bml.d.ts +39 -1
- package/sdk/dist/generated/bml.js +33 -8
- package/sdk/dist/generated/counter.d.ts +131 -3
- package/sdk/dist/generated/counter.js +41 -10
- package/sdk/dist/generated/dvn.d.ts +431 -362
- package/sdk/dist/generated/dvn.js +80 -55
- package/sdk/dist/generated/dvn_fee_lib.d.ts +327 -251
- package/sdk/dist/generated/dvn_fee_lib.js +55 -57
- package/sdk/dist/generated/endpoint.d.ts +131 -3
- package/sdk/dist/generated/endpoint.js +41 -10
- package/sdk/dist/generated/executor.d.ts +503 -339
- package/sdk/dist/generated/executor.js +80 -48
- package/sdk/dist/generated/executor_fee_lib.d.ts +395 -319
- package/sdk/dist/generated/executor_fee_lib.js +54 -56
- package/sdk/dist/generated/executor_helper.d.ts +53 -187
- package/sdk/dist/generated/executor_helper.js +47 -29
- 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 +1851 -0
- package/sdk/dist/generated/oft.js +347 -0
- package/sdk/dist/generated/price_feed.d.ts +329 -253
- package/sdk/dist/generated/price_feed.js +55 -57
- package/sdk/dist/generated/sml.d.ts +131 -3
- package/sdk/dist/generated/sml.js +41 -10
- package/sdk/dist/generated/treasury.d.ts +131 -3
- package/sdk/dist/generated/treasury.js +41 -10
- package/sdk/dist/generated/uln302.d.ts +131 -3
- package/sdk/dist/generated/uln302.js +43 -12
- package/sdk/dist/generated/upgrader.d.ts +201 -15
- package/sdk/dist/generated/upgrader.js +99 -1
- package/sdk/dist/index.d.ts +2 -2
- package/sdk/dist/index.js +3 -3
- package/sdk/package.json +3 -2
- package/sdk/src/index.ts +3 -3
- package/sdk/test/oft-sml.test.ts +20 -20
- package/sdk/test/upgrader.test.ts +2 -3
- package/sdk/turbo.json +8 -0
- package/tools/ts-bindings-gen/Cargo.toml +2 -0
- package/tools/ts-bindings-gen/src/main.rs +53 -5
- package/turbo.json +0 -2
- package/contracts/oapps/oft/src/interfaces/mint_burn_token.rs +0 -23
- package/contracts/oapps/oft/src/interfaces/mod.rs +0 -3
- package/contracts/oapps/oft/src/oft_impl.rs +0 -201
- package/contracts/oapps/oft/src/tests/extensions/mod.rs +0 -11
- package/contracts/oapps/oft/src/tests/extensions/setup.rs +0 -917
- package/contracts/oapps/oft/src/tests/extensions/test_oft_fee.rs +0 -751
- package/contracts/oapps/oft/src/tests/extensions/test_pausable.rs +0 -434
- package/contracts/oapps/oft/src/tests/extensions/test_rate_limiter.rs +0 -1080
- package/contracts/oapps/oft-std/integration-tests/utils.rs +0 -427
- package/contracts/oapps/oft-std/src/lib.rs +0 -16
- package/contracts/oapps/oft-std/src/oft.rs +0 -174
- package/sdk/dist/generated/oft_std.d.ts +0 -1722
- package/sdk/dist/generated/oft_std.js +0 -316
- package/sdk/dist/wasm/blocked-message-lib.d.ts +0 -1
- package/sdk/dist/wasm/blocked-message-lib.js +0 -2
- package/sdk/dist/wasm/counter.d.ts +0 -1
- package/sdk/dist/wasm/counter.js +0 -2
- package/sdk/dist/wasm/dvn-fee-lib.d.ts +0 -1
- package/sdk/dist/wasm/dvn-fee-lib.js +0 -2
- package/sdk/dist/wasm/dvn.d.ts +0 -1
- package/sdk/dist/wasm/dvn.js +0 -2
- package/sdk/dist/wasm/endpoint-v2.d.ts +0 -1
- package/sdk/dist/wasm/endpoint-v2.js +0 -2
- package/sdk/dist/wasm/executor-fee-lib.d.ts +0 -1
- package/sdk/dist/wasm/executor-fee-lib.js +0 -2
- package/sdk/dist/wasm/executor-helper.d.ts +0 -1
- package/sdk/dist/wasm/executor-helper.js +0 -2
- package/sdk/dist/wasm/executor.d.ts +0 -1
- package/sdk/dist/wasm/executor.js +0 -2
- package/sdk/dist/wasm/layerzero-views.d.ts +0 -1
- package/sdk/dist/wasm/layerzero-views.js +0 -2
- package/sdk/dist/wasm/oft-std.d.ts +0 -1
- package/sdk/dist/wasm/oft-std.js +0 -2
- package/sdk/dist/wasm/price-feed.d.ts +0 -1
- package/sdk/dist/wasm/price-feed.js +0 -2
- package/sdk/dist/wasm/simple-message-lib.d.ts +0 -1
- package/sdk/dist/wasm/simple-message-lib.js +0 -2
- package/sdk/dist/wasm/treasury.d.ts +0 -1
- package/sdk/dist/wasm/treasury.js +0 -2
- package/sdk/dist/wasm/uln302.d.ts +0 -1
- package/sdk/dist/wasm/uln302.js +0 -2
- package/sdk/dist/wasm/upgrader.d.ts +0 -1
- package/sdk/dist/wasm/upgrader.js +0 -2
- package/sdk/dist/wasm.d.ts +0 -15
- package/sdk/dist/wasm.js +0 -15
- /package/contracts/oapps/{oft-std → oft}/integration-tests/extensions/mod.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/codec/mod.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/codec/oft_compose_msg_codec.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/codec/oft_msg_codec.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/errors.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/events.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/storage.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/tests/test_decimals.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/tests/test_oft_compose_msg_codec.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/tests/test_oft_version.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/tests/test_quote_oft.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/tests/test_quote_send.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/tests/test_send.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/tests/test_token.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/types.rs +0 -0
- /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,7 +4,21 @@ 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
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Embedded WASM bytecode (base64-encoded)
|
|
9
|
+
* Size: 33881 bytes (33.09 KB)
|
|
10
|
+
*/
|
|
11
|
+
export declare const WASM_BASE64 = "AGFzbQEAAAABiQEYYAJ+fgF+YAF+AX5gAAF+YAN+fn4BfmAEfn5+fgF+YAABf2ABfwBgAn9/AGABfwF/YAF/AX5gAn5+AX9gAABgAn5/AGABfgBgA39+fgBgBX5/f39/AGACf34AYAJ/fwF+YAN+f38AYAR/f39/AX5gAn5+AGADf39/AGAEf35+fwBgBX9+fn5+AAK7AR8BbAExAAABYQEwAAEBYgE4AAEBYgEzAAABeAE3AAIBaQEzAAABZAFfAAMBaQE4AAEBaQE3AAEBaQE2AAABbAEyAAABeAExAAABbAFfAAMBeAEwAAABbAE3AAQBbAE2AAEBYgEwAAEBaQEwAAEBaQE1AAEBaQE0AAEBYgFqAAABYgExAAQBbQE5AAMBbQFhAAQBdgFnAAABeAEzAAIBeAE4AAIBbAEwAAABbAE4AAABeAE1AAEBYgFmAAMDUE8FBgcIBQkKCwICBgwLBg0JBg4CAQcHDQAPEBAICBEHEhERCwsCABAFAQkTAgcHAgIAAgACARQACw4CCwIBBgECBwILFRUQFRAJFRYWFxcXBQMBABEGIQR/AUGAgMAAC38AQduCwAALfwBB/4TAAAt/AEGAhcAACwfYAhcGbWVtb3J5AgAKYXV0aG9yaXplcgAxDV9fY29uc3RydWN0b3IAMgdnZXRfZmVlADYHdmVyc2lvbgBDD3NldF90dGxfY29uZmlncwBEC3R0bF9jb25maWdzAEoSZnJlZXplX3R0bF9jb25maWdzAE0VaXNfdHRsX2NvbmZpZ3NfZnJvemVuAE4TZXh0ZW5kX2luc3RhbmNlX3R0bABPBW93bmVyAFANcGVuZGluZ19vd25lcgBSEnRyYW5zZmVyX293bmVyc2hpcABTGnByb3Bvc2Vfb3duZXJzaGlwX3RyYW5zZmVyAFUQYWNjZXB0X293bmVyc2hpcABYEnJlbm91bmNlX293bmVyc2hpcABaB3VwZ3JhZGUAWwdtaWdyYXRlAF0GZnJlZXplAF4JaXNfZnJvemVuAGABXwMBCl9fZGF0YV9lbmQDAgtfX2hlYXBfYmFzZQMDCrpdT1gBAn8jgICAgABBEGsiACSAgICAACAAQQRqEKCAgIAAAkAgACgCBEEBRw0AIAAoAgggACgCDBChgICAAAtBABCigICAACEBIABBEGokgICAgAAgAUH9AXELDAAgAEEBEMuAgIAACxsAIACtQiCGQgSEIAGtQiCGQgSEEJyAgIAAGgtHAgF/AX5BAiEBAkAgABDngICAACICQgIQpYCAgABFDQBBASEBAkACQCACQgIQgICAgACnQf8BcQ4CAQIACwALQQAhAQsgAQuLAQICfwF+I4CAgIAAQRBrIgAkgICAgAAgAEEEahCggICAAAJAIAAoAgRBAUcNACAAKAIIIAAoAgwQoYCAgAALQQAhAQJAQQAQpICAgAAiAkICEKWAgIAARQ0AQQEhAQJAAkAgAkICEICAgIAAp0H/AXEOAgECAAsAC0EAIQELIABBEGokgICAgAAgAQvCAQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQAJAAkAgAEH/AXEOAwABAgALIAFB3oTAgABBBhDjgICAACABKAIADQMgASABKQMIEOaAgIAADAILIAFB5ITAgABBCBDjgICAACABKAIADQIgASABKQMIEOaAgIAADAELIAFB7ITAgABBChDjgICAACABKAIADQEgASABKQMIEOaAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILDwAgACABEJuAgIAAQgFRCw8AEKeAgIAAEIGAgIAAGgtmAgF/AX4jgICAgABBEGsiACSAgICAACAAEKCAgIAAAkAgACgCAEEBRw0AIAAoAgQgACgCCBChgICAAAsgABCpgICAACAAKQMIIQEgACkDAEGKCBCqgICAACAAQRBqJICAgIAAIAELSgIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABCpgICAACAAKQMIIQEgACkDAEGKCBCqgICAACABEIGAgIAAGiAAQRBqJICAgIAAIAELUAEBfyOAgICAAEEQayIBJICAgIAAIAFBBGoQoICAgAACQCABKAIEQQFHDQAgASgCCCABKAIMEKGAgIAACyAAEK+AgIAAIAFBEGokgICAgAALKQACQCAAp0EBcUUNAA8LIAFB+ndqrUIghkKDgICA4IABfBCtgICAAAALQgEBfyOAgICAAEEQayIAJICAgIAAIAAQrICAgAACQCAAKQMAUA0AQoOAgICwgQEQrYCAgAAACyAAQRBqJICAgIAAC5MBAgF/An4jgICAgABBEGsiASSAgICAACABQQRqEKCAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBChgICAAAtCACECAkACQEEBEK6AgIAAIgNCABClgICAAEUNACADQgAQgICAgAAiAkL/AYNCzQBSDQEgACACNwMIQgEhAgsgACACNwMAIAFBEGokgICAgAAPCwALCwAgABCdgICAABoLkgECAX8BfiOAgICAAEEQayIBJICAgIAAAkACQAJAAkAgAEEBcUUNACABQfGDwIAAQQwQ44CAgAAgASgCAA0CIAEgASkDCBDmgICAAAwBCyABQeyDwIAAQQUQ44CAgAAgASgCAA0BIAEgASkDCBDmgICAAAsgASkDCCECIAEpAwBQDQELAAsgAUEQaiSAgICAACACC00BAn5CACEBAkACQEEAEK6AgIAAIgJCAhClgICAAEUNACACQgIQgICAgAAiAUL/AYNCzQBSDQEgACABNwMIQgEhAQsgACABNwMADwsACygAAkAgAkJ/VQ0AQoOAgICQARCtgICAAAALIAAgATcDACAAIAI3AwgLCAAQp4CAgAALXQACQAJAIABC/wGDQs0AUg0AQYDLHkGA0h8Qs4CAgABBgMseQYDSHxC0gICAAEEAEK6AgIAAQgIQpYCAgAANASAAELWAgIAAQgIPCwALQoOAgICQgQEQrYCAgAAACw4AQQEgACABEOiAgIAACw4AQQIgACABEOiAgIAACw4AQQAgAEICENeAgIAAC7YcBQJ/Dn4BfwF+Bn8jgICAgABBsARrIgIkgICAgAACQAJAIABC/wGDQs0AUg0AQQAhAwJAA0AgA0HYAEYNASACQbADaiADakICNwMAIANBCGohAwwACwsgAUL/AYNCzABSDQAgAUGQgcCAAEELIAJBsANqQQsQt4CAgAAgAikDsAMiAUL/AYNCBFINACACKQO4AyIAQv8Bg0IEUg0AIAIpA8ADIgRC/wGDQgRSDQAgAkGQAmogAikDyAMQuICAgAAgAigCkAJBAUYNACACKQOoAiEFIAIpA6ACIQYgAkGQAmogAikD0AMQuYCAgAAgAigCkAINACACKQOYAiEHIAJBkAJqIAIpA9gDELmAgIAAIAIoApACDQAgAikD4AMiCEL/AYNCBFINACACKQOYAiEJIAJBkAJqIAIpA+gDELiAgIAAIAIoApACQQFGDQAgAikD8AMiCkL/AYNCyABSDQAgAikD+AMiC0L/AYNCzQBSDQAgAikD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ASACQbADaiADaiACQZAEaiADaikDADcDACADQQhqIQMMAAsLIAUgCiACQbADakEEEMCAgIAAEIaAgIAAIQRBACEDAkADQCADQSBGDQEgAkGQBGogA2pCAjcDACADQQhqIQMMAAsLIARC/wGDQswAUg0QIARBqILAgABBBCACQZAEakEEELeAgIAAIAJBsANqIAIpA5AEELiAgIAAIAIoArADQQFGDRAgAikDyAMhCyACKQPAAyEMIAJBsANqIAIpA5gEELiAgIAAIAIoArADQQFGDRAgAikDyAMhDSACKQPAAyETIAJBsANqIAIpA6AEELiAgIAAIAIoArADQQFGDRAgAikDyAMhDyACKQPAAyEOAkACQCACKQOoBCIEp0H/AXEiA0HFAEYNACADQQtHDRIgBEI/hyEGIARCCIchCAwBCyAEEIeAgIAAIQYgBBCIgICAACEICyAGQn9XDQIgAikDmAIhCSACKQOQAiEKIAJBsAFqIAZCACACKALkAiIDIAIoAuACIAMbrSIHQgAQ7YCAgAAgAkHAAWogCEIAIAdCABDtgICAACACKQO4AUIAUiACKQPIASIEIAIpA7ABfCIFIARUcg0QIAJBoAFqIAIpA8ABIAVCkM4AQgAQ7ICAgAAgAkGwA2ogAikDoAEgAikDqAEQsICAgAAgAikDuAMhBCACKQOwAyEFAkAgCiAJhFANACAMIAuEUA0AIAJBgAFqIAlCAEKAreIEQgAQ7YCAgAAgAkGQAWogCkIAQoCt4gRCABDtgICAACACKQOIAUIAUiACKQOYASIJIAIpA4ABfCIKIAlUckEBRg0RIAJB8ABqIAIpA5ABIAogDCALEOyAgIAAIAJBsANqIAIpA3AgAikDeBCwgICAACACKQO4AyIJIAaFQn+FIAkgCSAGfCACKQOwAyIGIAh8IgggBlStfCIGhYNCAFMNESAEIAYgBSAIViAEIAZVIAQgBlEbIgMbIQQgBSAIIAMbIQULAkACQCAAIAGEUEUNAEIAIQBCACEBDAELIAJBwABqIAFCACATQgAQ7YCAgAAgAkHQAGogDUIAIABCABDtgICAACACQeAAaiAAQgAgE0IAEO2AgIAAIAFCAFIgDUIAUnEgAikDSEIAUnIgAikDWEIAUnIgAikDaCIBIAIpA0AgAikDUHx8IgAgAVRyDREgDiAPhFANESACQTBqIAIpA2AgACAOIA8Q7ICAgAAgAkEQaiACKQM4QgAgB0IAEO2AgIAAIAJBIGogAikDMEIAIAdCABDtgICAACACKQMYQgBSIAIpAygiASACKQMQfCIAIAFUcg0RIAIgAikDICAAQpDOAEIAEOyAgIAAIAJBsANqIAIpAwAgAikDCBCwgICAACACKQO4AyEBIAIpA7ADIQALIAQgAYVCf4UgBCAEIAF8IAUgAHwiASAFVK18IgCFg0J/Vw0QAkACQCABQoCAgICAgIDAAHxC//////////8AVg0AIAEgAYUgACABQj+HhYRCAFINACABQgiGQguEIQEMAQsgACABEImAgIAAIQELIAJBsARqJICAgIAAIAEPCyACQbADaiADakICNwMAIANBCGohAwwACwtCg4CAgDAQrYCAgAAAC0KDgICAsAEQrYCAgAAAC0KDgICAoAEQrYCAgAAAC0KDgICAwAAQrYCAgAAACxDBgICAAAALQoOAgICAggEQrYCAgAAAC0KDgICA4AAQrYCAgAAAC0KDgICAwAEQrYCAgAAACyAHIA18Ig0gB1QiAyAGIAt8IAOtfCIEIAZUIAQgBlEbDQUgACAJfCILIABUIgMgASAKfCADrXwiCSABVCAJIAFRGw0FIA0hByAEIQYgGSEYIAshACAJIQELIAIoAvQCIQMgAigC8AIhEgwACwtCg4CAgIABEK2AgIAAAAtCg4CAgBAQrYCAgAAACwALEMKAgIAAAAsxAAJAIAIgBEYNAAALIAAgAa1CIIZCBIQgA61CIIZCBIQgAq1CIIZCBIQQl4CAgAAaC3sCAX8BfgJAAkACQCABp0H/AXEiAkHEAEYNACACQQpHDQFCACEDIABCADcDGCAAIAFCCIg3AxAMAgsgARCSgICAACEDIAEQk4CAgAAhASAAIAM3AxggACABNwMQQgAhAwwBCyAAQoOQgICAATcDCEIBIQMLIAAgAzcDAAtdAgF/AX4CQAJAIAGnQf8BcSICQcAARg0AAkAgAkEGRg0AQgEhA0KDkICAgAEhAQwCCyABQgiIIQFCACEDDAELQgAhAyABEJGAgIAAIQELIAAgAzcDACAAIAE3AwgLmAECAX8BfiOAgICAAEEQayIBJICAgIAAAkACQCAAQQEQvICAgAAiAhCCgICAAEKAgICAcINCgICAgBBSDQAgAUEAOgAPIAIQgoCAgABCgICAgHCDQoCAgIAQUg0BIAIgAUEPakEBEL6AgIAAIAEtAA8hACABQRBqJICAgIAAIAAPC0KDgICAgIIBEK2AgIAAAAsQwYCAgAAAC6EBAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkAgAEECELyAgIAAIgIQgoCAgABCgICAgHCDQoCAgIAgUg0AIAFBADsBDiACEIKAgIAAQoCAgIBwg0KAgICAIFINASACIAFBDmpBAhC+gICAACABLwEOIQAgAUEQaiSAgICAACAAQQh0IABBCHZyDwtCg4CAgICCARCtgICAAAALEMGAgIAAAAt1AgJ/AX4CQAJAIAAoAgQiAiABaiIBIAJJDQAgASAAKAIAIgMpAwAQgoCAgABCIIinSw0BIAMpAwAgAq1CIIZCBIQgAa1CIIZCBIQQnoCAgAAhBCAAIAE2AgQgBA8LEMKAgIAAAAtCg4CAgID9ABCtgICAAAAL0QICAX8CfiOAgICAAEEQayICJICAgIAAAkACQCABQRAQvICAgAAiAxCCgICAAEKAgICAcINCgICAgIACUg0AIAJCADcDCCACQgA3AwAgAxCCgICAAEKAgICAcINCgICAgIACUg0BIAMgAkEQEL6AgIAAIAIpAwghAyAAIAIpAwAiBEI4hiAEQoD+A4NCKIaEIARCgID8B4NCGIYgBEKAgID4D4NCCIaEhCAEQgiIQoCAgPgPgyAEQhiIQoCA/AeDhCAEQiiIQoD+A4MgBEI4iISEhDcDCCAAIANCOIYgA0KA/gODQiiGhCADQoCA/AeDQhiGIANCgICA+A+DQgiGhIQgA0IIiEKAgID4D4MgA0IYiEKAgPwHg4QgA0IoiEKA/gODIANCOIiEhIQ3AwAgAkEQaiSAgICAAA8LQoOAgICAggEQrYCAgAAACxDBgICAAAALHwAgAEIEIAGtQiCGQgSEIAKtQiCGQgSEEJWAgIAAGgtFAgF/AX4jgICAgABBEGsiAiSAgICAACACIAAgARDigICAAAJAIAIoAgBBAUcNAAALIAIpAwghAyACQRBqJICAgIAAIAMLGgAgAK1CIIZCBIQgAa1CIIZCBIQQmICAgAALCQAQwoCAgAAACwkAEOGAgIAAAAtoAgF/AX4jgICAgABBEGsiACSAgICAACAAEKCAgIAAAkAgACgCAEEBRw0AIAAoAgQgACgCCBChgICAAAsgAEKEgICAEDcDCCAAQoYCNwMAIABBAhDAgICAACEBIABBEGokgICAgAAgAQveBAEFfyOAgICAAEHQAGsiAiSAgICAACACQShqIAAQxYCAgAACQCACKAIoQQJGDQAgAkEIakEIaiACQShqQQhqIgMoAgA2AgAgAiACKQIoNwMIIAJBKGogARDFgICAACACKAIoQQJGDQAgAkEYakEIaiADKAIANgIAIAIgAikCKDcDGCACQShqEKCAgIAAAkAgAigCKEEBRw0AIAIoAiwgAigCMBChgICAAAsQpoCAgAACQAJAAkAQo4CAgAANABDGgICAACIDQYD7gAMgA0GA+4ADSRshBCACIAJBGGo2AiwgAiACQQhqNgIoQQAhAwNAIANBCEYNAwJAIAJBKGogA2ooAgAiBSgCAEEBcUUNACAFKAIIIgYgBEsNAyAFKAIEIAZLDQMLIANBBGohAwwACwtCg4CAgND/ABCtgICAAAALQoOAgIDA/wAQrYCAgAAACwJAAkAgAigCCEEBRw0AIAIoAgwgAigCEBCzgICAAAwBC0EBEKSAgIAAQgIQioCAgAAaCwJAAkAgAigCGEEBRw0AIAIoAhwgAigCIBC0gICAAAwBC0ECEKSAgIAAQgIQioCAgAAaCyACQShqQQhqIAJBCGpBCGooAgA2AgAgAkE8aiACQRhqQQhqKAIANgIAIAIgAikDCDcDKCACIAIpAxg3AjRBmITAgABBDxC/gICAABDHgICAACEAIAJBKGoQyICAgAAhASACIAJBNGoQyICAgAA3A0ggAiABNwNAIABBvITAgABBAiACQcAAakECEMmAgIAAEIuAgIAAGiACQdAAaiSAgICAAEICDwsAC2gBAX8jgICAgABBEGsiAiSAgICAAAJAAkAgAUICUQ0AIAJBBGogARDkgICAAAJAIAIoAgRFDQAgAEECNgIADAILIAAgAikCCDcCBCAAQQE2AgAMAQsgAEEANgIACyACQRBqJICAgIAACzMBAn4QmYCAgAAhAAJAEJqAgIAAQiCIIgEgAEIgiCIAVA0AIAGnIACnaw8LEMKAgIAAAAtjAwF/AX4BfyOAgICAAEEQayIBJICAgIAAIAEgADcDAEICIQJBASEDAkADQCADRQ0BIANBf2ohAyAAIQIMAAsLIAEgAjcDCCABQQhqQQEQwICAgAAhACABQRBqJICAgIAAIAALQwIBfwF+I4CAgIAAQRBrIgEkgICAgAAgASAAEMyAgIAAAkAgASgCAEEBRw0AAAsgASkDCCECIAFBEGokgICAgAAgAgsuAAJAIAEgA0YNAAALIACtQiCGQgSEIAKtQiCGQgSEIAGtQiCGQgSEEJaAgIAAC8QBAgJ/AX4jgICAgABBwABrIgAkgICAgAAgAEEIahCggICAAAJAIAAoAghBAUcNACAAKAIMIAAoAhAQoYCAgAALIABBCGoQoICAgAAgAEEUaiIBQQIQy4CAgAAgAEEwaiAAQQhqEMyAgIAAAkACQCAAKAIwDQAgACkDOCECIABBMGogARDMgICAACAAKAIwQQFHDQELAAsgACAAKQM4NwMoIAAgAjcDICAAQSBqQQIQwICAgAAhAiAAQcAAaiSAgICAACACC3cCAn8BfiOAgICAAEEQayICJICAgIAAQQAhAwJAAkAgARCkgICAACIEQgIQpYCAgABFDQAgAkEEaiAEQgIQgICAgAAQ5ICAgABBASEDIAIoAgRBAUYNASAAIAIpAgg3AgQLIAAgAzYCACACQRBqJICAgIAADwsACzAAAkAgASgCAEEBRw0AIAAgASgCBCABKAIIEOWAgIAADwsgAEIANwMAIABCAjcDCAuqAQEBfyOAgICAAEEgayIAJICAgIAAIABBDGoQoICAgAACQCAAKAIMQQFHDQAgACgCECAAKAIUEKGAgIAACxCmgICAAAJAEKOAgIAARQ0AQoOAgIDg/wAQrYCAgAAAC0EAEKSAgIAAQgFCAhCMgICAABpBzITAgABBEhC/gICAABDHgICAAEEEQQAgAEEYakEAEMmAgIAAEIuAgIAAGiAAQSBqJICAgIAAQgILCQAQo4CAgACtCzEAAkAgAEL/AYNCBFINACABQv8Bg0IEUg0AIABCIIinIAFCIIinEKGAgIAAQgIPCwALPgIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABCpgICAACAAKQMAIAApAwgQ0YCAgAAhASAAQRBqJICAgIAAIAELDQAgAUICIACnQQFxGws+AgF/AX4jgICAgABBEGsiACSAgICAACAAEKyAgIAAIAApAwAgACkDCBDRgICAACEBIABBEGokgICAgAAgAQt9AgF/AX4jgICAgABBEGsiASSAgICAAAJAIABC/wGDQs0AUg0AIAFBBGoQoICAgAACQCABKAIEQQFHDQAgASgCCCABKAIMEKGAgIAACxCogICAACECEKuAgIAAIAAQtYCAgAAgAiAAENSAgIAAIAFBEGokgICAgABCAg8LAAthAgF/AX4jgICAgABBEGsiAiSAgICAAEHkgsCAAEEVEL+AgIAAEMeAgIAAIQMgAiAANwMIIAIgATcDACADQYyDwIAAQQIgAkECEMmAgIAAEIuAgIAAGiACQRBqJICAgIAAC90CAgF/An4jgICAgABBIGsiAiSAgICAAAJAAkACQCAAQv8Bg0LNAFINACABQv8Bg0IEUg0AIAJBCGoQoICAgAACQCACKAIIQQFHDQAgAigCDCACKAIQEKGAgIAACxCogICAACEDAkACQCABQv////8PVg0AIAJBCGoQrICAgAAgAikDECEBIAIpAwhBiAgQqoCAgAAgASAAEI2AgIAAUEUNAxDWgICAAAwBCxDGgICAACABQiCIp0kNA0EBIABCABDXgICAAEEBEK6AgIAAQgAgAUKEgICAcIMiASABEI6AgIAAGkGcg8CAAEEWEL+AgIAAEMeAgIAAIQQgAiABNwMYIAIgAzcDECACIAA3AwggBEG4g8CAAEEDIAJBCGpBAxDJgICAABCLgICAABoLIAJBIGokgICAgABCAg8LAAtCg4CAgOCAARCtgICAAAALQoOAgIDwgAEQrYCAgAAACxMAQQEQroCAgABCABCKgICAABoLFQAgABCugICAACABIAIQjICAgAAaC6cBAgF/An4jgICAgABBEGsiACSAgICAACAAEKCAgIAAAkAgACgCAEEBRw0AIAAoAgQgACgCCBChgICAAAsgABCsgICAACAAKQMIIQEgACkDAEGICBCqgICAACABEIGAgIAAGiAAEK+AgIAAAkAgACgCAA0AENmAgIAAAAsgACkDCCECENaAgIAAIAEQtYCAgAAgAiABENSAgIAAIABBEGokgICAgABCAgsJABDCgICAAAALoAECAX8CfiOAgICAAEEQayIAJICAgIAAIAAQoICAgAACQCAAKAIAQQFHDQAgACgCBCAAKAIIEKGAgIAACxCogICAACEBEKuAgIAAQQAQroCAgABCAhCKgICAABpB0IPAgABBExC/gICAABDHgICAACECIAAgATcDACACQeSDwIAAQQEgAEEBEMmAgIAAEIuAgIAAGiAAQRBqJICAgIAAQgILpQEBAX8jgICAgABBEGsiASSAgICAAAJAAkAgAEL/AYNCyABSDQAgABCCgICAAEKAgICAcINCgICAgIAEUg0AIAFBBGoQoICAgAACQCABKAIEQQFHDQAgASgCCCABKAIMEKGAgIAACxCmgICAABCfgICAAA0BQQEQ3ICAgAAgABCPgICAABogAUEQaiSAgICAAEICDwsAC0KDgICAwIMBEK2AgIAAAAsMAEEBIAAQ34CAgAALrQEBAX8jgICAgABBEGsiASSAgICAAAJAAkACQCAAQv8Bg0LIAFINACABQQRqEKCAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBChgICAAAsQpoCAgABBARCigICAAEH9AXFFDQEgABCQgICAAEL/AYNCAlINAkEAENyAgIAAIAFBEGokgICAgABCAg8LAAtCg4CAgLCDARCtgICAAAALQoOAgICggwEQrYCAgAAAC1oBAX8jgICAgABBEGsiACSAgICAACAAQQRqEKCAgIAAAkAgACgCBEEBRw0AIAAoAgggACgCDBChgICAAAsQpoCAgABBAEEBEN+AgIAAIABBEGokgICAgABCAgsaACAAEOeAgIAAIAGtQv8Bg0ICEIyAgIAAGgsJABCfgICAAK0LAwAAC9sBAgF+BH8CQAJAIAJBCUsNAEIAIQMgAiEEIAEhBQNAAkAgBA0AIANCCIZCDoQhAwwDC0EBIQYCQCAFLQAAIgdB3wBGDQACQCAHQVBqQf8BcUEKSQ0AAkAgB0G/f2pB/wFxQRpJDQAgB0Gff2pB/wFxQRlLDQQgB0FFaiEGDAILIAdBS2ohBgwBCyAHQVJqIQYLIANCBoYgBq1C/wGDhCEDIARBf2ohBCAFQQFqIQUMAAsLIAGtQiCGQgSEIAKtQiCGQgSEEJSAgIAAIQMLIABCADcDACAAIAM3AwgLUQIBfwF+I4CAgIAAQRBrIgMkgICAgAAgAyABIAIQ4oCAgABCASEEAkAgAygCAA0AIAAgAykDCDcDCEIAIQQLIAAgBDcDACADQRBqJICAgIAAC60BAgJ/AX4jgICAgABBEGsiAiSAgICAAEEAIQMCQANAIANBEEYNASACIANqQgI3AwAgA0EIaiEDDAALC0EBIQMCQCABQv8Bg0LMAFINACABQYiEwIAAQQIgAkECELeAgIAAIAIpAwAiAUL/AYNCBFINACACKQMIIgRC/wGDQgRSDQAgACABQiCIpzYCCCAAIARCIIg+AgRBACEDCyAAIAM2AgAgAkEQaiSAgICAAAtgAgF/AX4jgICAgABBEGsiAySAgICAACADIAGtQiCGQgSENwMIIAMgAq1CIIZCBIQ3AwBBiITAgABBAiADQQIQyYCAgAAhBCAAQgA3AwAgACAENwMIIANBEGokgICAgAALRAEBfyOAgICAAEEQayICJICAgIAAIAIgATcDCCACQQhqQQEQwICAgAAhASAAQgA3AwAgACABNwMIIAJBEGokgICAgAALkgECAX8BfiOAgICAAEEQayIBJICAgIAAAkACQAJAAkAgAEEBcUUNACABQfaEwIAAQQkQ44CAgAAgASgCAA0CIAEgASkDCBDmgICAAAwBCyABQd6EwIAAQQYQ44CAgAAgASgCAA0BIAEgASkDCBDmgICAAAsgASkDCCECIAEpAwBQDQELAAsgAUEQaiSAgICAACACC1YCAX8BfiOAgICAAEEQayIDJICAgIAAIAAQpICAgAAhBCADIAEgAhDlgICAAAJAIAMoAgBBAUcNAAALIAQgAykDCEICEIyAgIAAGiADQRBqJICAgIAAC1cBAX4CQAJAIANBwABxDQAgA0UNASACQQAgA2tBP3GthiABIANBP3GtIgSIhCEBIAIgBIghAgwBCyACIANBP3GtiCEBQgAhAgsgACABNwMAIAAgAjcDCAtXAQF+AkACQCADQcAAcQ0AIANFDQEgAiADQT9xrSIEhiABQQAgA2tBP3GtiIQhAiABIASGIQEMAQsgASADQT9xrYYhAkIAIQELIAAgATcDACAAIAI3AwgL0QgEAX8BfgN/BH4jgICAgABBsAFrIgUkgICAgABCACEGAkACQAJAAkACQCAEeSADeULAAHwgBEIAUhunIgcgAnkgAXlCwAB8IAJCAFIbpyIITQ0AIAhBP0sNASAHQd8ASw0CIAcgCGtBIEkNAyAFQaABaiADIARB4AAgB2siCRDpgICAACAFNQKgAUIBfCEKQgAhC0IAIQYCQAJAAkACQANAIAVBkAFqIAEgAkHAACAIayIIEOmAgIAAIAUpA5ABIQwCQCAIIAlPDQAgBUHQAGogAyAEIAgQ6YCAgAACQAJAIAUpA1AiClBFDQAMAQsgDCAKgCEMCyAFQcAAaiADIAQgDEIAEO2AgIAAAkAgASAFKQNAIg1UIgggAiAFKQNIIgpUIAIgClEbDQAgAiAKfSAIrX0hAiABIA19IQEgBiALIAx8IgwgC1StfCEGDAsLIAIgBHwgASADfCIEIAFUrXwgCn0gBCANVK19IQIgBCANfSEBIAYgDCALfEJ/fCIMIAtUrXwhBgwKCyAFQYABaiAMIAqAIgxCACAIIAlrIggQ6oCAgAAgBUHwAGogAyAEIAxCABDtgICAACAFQeAAaiAFKQNwIAUpA3ggCBDqgICAACAFKQOIASAGfCAFKQOAASIGIAt8IgsgBlStfCEGIAcgAiAFKQNofSABIAUpA2AiDFStfSICeSABIAx9IgF5QsAAfCACQgBSG6ciCE0NASAIQT9NDQALIANQRQ0BDAILIAEgA1QiCCACIARUIAIgBFEbRQ0CIAshDAwHCyABIAOAIQILIAEgA4IhASAGIAsgAnwiDCALVK18IQZCACECDAULIAIgBH0gCK19IQIgASADfSEBIAYgC0IBfCIMUK18IQYMBAsgAiAEQgAgASADWiACIARaIAIgBFEbIggbfSABIANCACAIGyIEVK19IQIgASAEfSEBIAitIQwMAwsgASABIAOAIgwgA359IQFCACEGQgAhAgwCCyACIAIgA0L/////D4MiBIAiBiADfn1CIIYgAUIgiCIMhCAEgCICQiCGIAwgAiADfn1CIIYgAUL/////D4OEIgEgBIAiA4QhDCABIAMgBH59IQEgAkIgiCAGhCEGQgAhAgwBCyAFQTBqIAMgBEHAACAIayIIEOmAgIAAIAVBIGogASACIAgQ6YCAgABCACEGIAVBEGogA0IAIAUpAyAgBSkDMIAiDEIAEO2AgIAAIAUgBEIAIAxCABDtgICAACAFKQMQIQoCQAJAIAUpAwggBSkDGCINIAUpAwB8IgsgDVStfEIAUg0AIAEgClQiCCACIAtUIAIgC1EbRQ0BCyAEIAJ8IAMgAXwiASADVK18IAt9IAEgClStfSECIAxCf3whDCABIAp9IQEMAQsgAiALfSAIrX0hAiABIAp9IQFCACEGCyAAIAE3AxAgACAMNwMAIAAgAjcDGCAAIAY3AwggBUGwAWokgICAgAALSAEBfyOAgICAAEEgayIFJICAgIAAIAUgASACIAMgBBDrgICAACAFKQMAIQQgACAFKQMINwMIIAAgBDcDACAFQSBqJICAgIAAC24BBn4gACADQv////8PgyIFIAFC/////w+DIgZ+IgcgA0IgiCIIIAZ+IgYgBSABQiCIIgl+fCIFQiCGfCIKNwMAIAAgCCAJfiAFIAZUrUIghiAFQiCIhHwgCiAHVK18IAQgAX4gAyACfnx8NwMICwuJBQEAQYCAwAAL/wRkZWZhdWx0X211bHRpcGxpZXJfYnBzZHN0X2VpZGZsb29yX21hcmdpbl91c2RtdWx0aXBsaWVyX2Jwc29wdGlvbnNwcmljZV9mZWVkc2VuZGVyY2FsbGRhdGFfc2l6ZWx6X2NvbXBvc2VfYmFzZV9nYXNsel9yZWNlaXZlX2Jhc2VfZ2FzbmF0aXZlX2NhcABSABAADQAAAAAAEAAWAAAAFgAQAAcAAAAdABAAEAAAAF8AEAATAAAAcgAQABMAAAAtABAADgAAAIUAEAAKAAAAOwAQAAcAAABCABAACgAAAEwAEAAGAAAAcHJpY2VfcmF0aW9uYXRpdmVfcHJpY2VfdXNkcHJpY2VfcmF0aW9fZGVub21pbmF0b3J0b3RhbF9nYXNfZmVlAPMAEAAQAAAA6AAQAAsAAAADARAAFwAAABoBEAANAAAAZXN0aW1hdGVfZmVlX2J5X2VpZHRocmVzaG9sZG93bmVyc2hpcF90cmFuc2ZlcnJlZG5ld19vd25lcm9sZF9vd25lcgB5ARAACQAAAIIBEAAJAAAAb3duZXJzaGlwX3RyYW5zZmVycmluZ3R0bAAAAHkBEAAJAAAAggEQAAkAAACyARAAAwAAAG93bmVyc2hpcF9yZW5vdW5jZWQAggEQAAkAAABPd25lclBlbmRpbmdPd25lcmV4dGVuZF90bwAA/QEQAAkAAABbARAACQAAAHR0bF9jb25maWdzX3NldGluc3RhbmNlcGVyc2lzdGVudAAAACcCEAAIAAAALwIQAAoAAAB0dGxfY29uZmlnc19mcm96ZW5Gcm96ZW5JbnN0YW5jZVBlcnNpc3RlbnRNaWdyYXRpbmcAt54BDmNvbnRyYWN0c3BlY3YwAAAABAAAAAAAAAAAAAAAE0V4ZWN1dG9yRmVlTGliRXJyb3IAAAAADAAAAAAAAAAPRWlkTm90U3VwcG9ydGVkAAAAAAEAAAAAAAAAFkludmFsaWRFeGVjdXRvck9wdGlvbnMAAAAAAAIAAAAAAAAACkludmFsaWRGZWUAAAAAAAMAAAAAAAAAFkludmFsaWRMekNvbXBvc2VPcHRpb24AAAAAAAQAAAAAAAAAFkludmFsaWRMelJlY2VpdmVPcHRpb24AAAAAAAUAAAAAAAAAF0ludmFsaWROYXRpdmVEcm9wT3B0aW9uAAAAAAYAAAAAAAAAFk5hdGl2ZUFtb3VudEV4Y2VlZHNDYXAAAAAAAAcAAAAAAAAACU5vT3B0aW9ucwAAAAAAAAgAAAAAAAAACE92ZXJmbG93AAAACQAAAAAAAAAVVW5zdXBwb3J0ZWRPcHRpb25UeXBlAAAAAAAACgAAAAAAAAAYWmVyb0x6Q29tcG9zZUdhc1Byb3ZpZGVkAAAACwAAAAAAAAAYWmVyb0x6UmVjZWl2ZUdhc1Byb3ZpZGVkAAAADAAAAAAAAAAAAAAACmF1dGhvcml6ZXIAAAAAAAAAAAABAAAAEwAAAAAAAAAAAAAADV9fY29uc3RydWN0b3IAAAAAAAABAAAAAAAAAAVvd25lcgAAAAAAABMAAAAAAAAAAAAAAlFDYWxjdWxhdGVzIHRoZSB0b3RhbCBleGVjdXRpb24gZmVlIGZvciBhIGNyb3NzLWNoYWluIG1lc3NhZ2UuCgpEZWNvZGVzIGV4ZWN1dG9yIG9wdGlvbnMsIGVzdGltYXRlcyBnYXMgZmVlcyBmcm9tIHRoZSBwcmljZSBmZWVkLCBhcHBsaWVzCm11bHRpcGxpZXJzIGFuZCBtYXJnaW5zLCBhbmQgY29udmVydHMgbmF0aXZlIHRva2VuIHZhbHVlcy4gUmV0dXJucyB0aGUKdG90YWwgZmVlIGluIG5hdGl2ZSB0b2tlbnMuCgojIEFyZ3VtZW50cwoqIGBleGVjdXRvcmAgLSBFeGVjdXRvciBjb250cmFjdCBhZGRyZXNzICh1bnVzZWQsIGtlcHQgZm9yIGludGVyZmFjZSBjb21wYXRpYmlsaXR5KQoqIGBwYXJhbXNgIC0gRmVlIGNhbGN1bGF0aW9uIHBhcmFtZXRlcnMKCiMgUmV0dXJucwpUb3RhbCBleGVjdXRpb24gZmVlIGluIG5hdGl2ZSB0b2tlbnMuCgojIEVycm9ycwoqIGBFaWROb3RTdXBwb3J0ZWRgIC0gSWYgZGVzdGluYXRpb24gZW5kcG9pbnQgaXMgbm90IHN1cHBvcnRlZCAobHpfcmVjZWl2ZV9iYXNlX2dhcyBpcyAwKQoqIFZhcmlvdXMgZXhlY3V0b3Igb3B0aW9uIHBhcnNpbmcgZXJyb3JzIChzZWUgYHBhcnNlX2V4ZWN1dG9yX29wdGlvbnNgKQAAAAAAAAdnZXRfZmVlAAAAAAIAAAAAAAAACGV4ZWN1dG9yAAAAEwAAAAAAAAAGcGFyYW1zAAAAAAfQAAAACUZlZVBhcmFtcwAAAAAAAAEAAAALAAAAAAAAAFtSZXR1cm5zIHRoZSB2ZXJzaW9uIG9mIHRoZSBmZWUgbGlicmFyeS4KCiMgUmV0dXJucwpUdXBsZSBvZiAobWFqb3JfdmVyc2lvbiwgbWlub3JfdmVyc2lvbikuAAAAAAd2ZXJzaW9uAAAAAAAAAAABAAAD7QAAAAIAAAAGAAAABAAAAAAAAAGPU2V0cyBUVEwgY29uZmlncyBmb3IgaW5zdGFuY2UgYW5kIHBlcnNpc3RlbnQgc3RvcmFnZS4KCi0gYE5vbmVgIHZhbHVlcyByZW1vdmUgdGhlIGNvcnJlc3BvbmRpbmcgY29uZmlnIChkaXNhYmxlcyBhdXRvLWV4dGVuc2lvbiBmb3IgdGhhdCB0eXBlKQotIFZhbGlkYXRlcyB0aGF0IGB0aHJlc2hvbGQgPD0gZXh0ZW5kX3RvIDw9IE1BWF9UVExgCgojIEFyZ3VtZW50cwotIGBpbnN0YW5jZWAgLSBUVEwgY29uZmlnIGZvciBpbnN0YW5jZSBzdG9yYWdlCi0gYHBlcnNpc3RlbnRgIC0gVFRMIGNvbmZpZyBmb3IgcGVyc2lzdGVudCBzdG9yYWdlCgojIFBhbmljcwotIGBUdGxDb25maWdGcm96ZW5gIGlmIGNvbmZpZ3MgYXJlIGZyb3plbgotIGBJbnZhbGlkVHRsQ29uZmlnYCBpZiB2YWxpZGF0aW9uIGZhaWxzAAAAAA9zZXRfdHRsX2NvbmZpZ3MAAAAAAgAAAAAAAAAIaW5zdGFuY2UAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAACnBlcnNpc3RlbnQAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAAAAAAASFJldHVybnMgdGhlIGN1cnJlbnQgVFRMIGNvbmZpZ3MgYXMgKGluc3RhbmNlX2NvbmZpZywgcGVyc2lzdGVudF9jb25maWcpLgAAAAt0dGxfY29uZmlncwAAAAAAAAAAAQAAA+0AAAACAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAOFQZXJtYW5lbnRseSBmcmVlemVzIFRUTCBjb25maWdzLCBwcmV2ZW50aW5nIGFueSBmdXR1cmUgbW9kaWZpY2F0aW9ucy4KClRoaXMgaXMgaXJyZXZlcnNpYmxlIGFuZCBwcm92aWRlcyBpbW11dGFiaWxpdHkgZ3VhcmFudGVlcyB0byB1c2Vycy4KRW1pdHMgYFR0bENvbmZpZ3NGcm96ZW5gIGV2ZW50LgoKIyBQYW5pY3MKLSBgVHRsQ29uZmlnQWxyZWFkeUZyb3plbmAgaWYgYWxyZWFkeSBmcm96ZW4AAAAAAAASZnJlZXplX3R0bF9jb25maWdzAAAAAAAAAAAAAAAAAAAAAAAnUmV0dXJucyB3aGV0aGVyIFRUTCBjb25maWdzIGFyZSBmcm96ZW4uAAAAABVpc190dGxfY29uZmlnc19mcm96ZW4AAAAAAAAAAAAAAQAAAAEAAAAAAAAApUV4dGVuZHMgdGhlIGluc3RhbmNlIFRUTC4KCiMgQXJndW1lbnRzCgoqIGB0aHJlc2hvbGRgIC0gVGhlIHRocmVzaG9sZCB0byBleHRlbmQgdGhlIFRUTCAoaWYgY3VycmVudCBUVEwgaXMgYmVsb3cgdGhpcywgZXh0ZW5kKS4KKiBgZXh0ZW5kX3RvYCAtIFRoZSBUVEwgdG8gZXh0ZW5kIHRvLgAAAAAAABNleHRlbmRfaW5zdGFuY2VfdHRsAAAAAAIAAAAAAAAACXRocmVzaG9sZAAAAAAAAAQAAAAAAAAACWV4dGVuZF90bwAAAAAAAAQAAAAAAAAAAAAAAD5SZXR1cm5zIHRoZSBjdXJyZW50IG93bmVyIGFkZHJlc3MsIG9yIE5vbmUgaWYgbm8gb3duZXIgaXMgc2V0LgAAAAAABW93bmVyAAAAAAAAAAAAAAEAAAPoAAAAEwAAAAAAAABZUmV0dXJucyB0aGUgcGVuZGluZyBvd25lciBhZGRyZXNzIGZvciAyLXN0ZXAgdHJhbnNmZXIsIG9yIE5vbmUgaWYgbm8gdHJhbnNmZXIgaXMgcGVuZGluZy4AAAAAAAANcGVuZGluZ19vd25lcgAAAAAAAAAAAAABAAAD6AAAABMAAAAAAAABK1RyYW5zZmVycyBvd25lcnNoaXAgaW1tZWRpYXRlbHkgdG8gYSBuZXcgYWRkcmVzcy4KClVzZSB3aXRoIGNhdXRpb24gLSBpZiB5b3UgdHJhbnNmZXIgdG8gYSB3cm9uZyBhZGRyZXNzLCBvd25lcnNoaXAgaXMgbG9zdCBmb3JldmVyLgpDb25zaWRlciB1c2luZyBgcHJvcG9zZV9vd25lcnNoaXBfdHJhbnNmZXJgIGluc3RlYWQuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBUcmFuc2ZlckluUHJvZ3Jlc3NgIGlmIGEgMi1zdGVwIHRyYW5zZmVyIGlzIGluIHByb2dyZXNzAAAAABJ0cmFuc2Zlcl9vd25lcnNoaXAAAAAAAAEAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAAAAAlxQcm9wb3NlcyBhbiBvd25lcnNoaXAgdHJhbnNmZXIgdG8gYSBuZXcgYWRkcmVzcy4KClRoZSBuZXcgb3duZXIgbXVzdCBjYWxsIGBhY2NlcHRfb3duZXJzaGlwKClgIHdpdGhpbiBgdHRsYCBsZWRnZXJzCnRvIGNvbXBsZXRlIHRoZSB0cmFuc2Zlci4gVGhlIHBlbmRpbmcgdHJhbnNmZXIgd2lsbCBhdXRvbWF0aWNhbGx5IGV4cGlyZSBhZnRlci4KCiMgQXJndW1lbnRzCi0gYG5ld19vd25lcmAgLSBUaGUgcHJvcG9zZWQgbmV3IG93bmVyCi0gYHR0bGAgLSBOdW1iZXIgb2YgbGVkZ2VycyB0aGUgbmV3IG93bmVyIGhhcyB0byBhY2NlcHQuClVzZSBgMGAgdG8gY2FuY2VsIGEgcGVuZGluZyB0cmFuc2ZlciAobmV3X293bmVyIG11c3QgbWF0Y2ggcGVuZGluZykuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBOb1BlbmRpbmdUcmFuc2ZlcmAgd2hlbiBjYW5jZWxsaW5nIGFuZCBubyBwZW5kaW5nIHRyYW5zZmVyIGV4aXN0cwotIGBJbnZhbGlkVHRsYCBpZiB0dGwgZXhjZWVkcyBtYXggVFRMCi0gYEludmFsaWRQZW5kaW5nT3duZXJgIHdoZW4gY2FuY2VsbGluZyB3aXRoIHdyb25nIG5ld19vd25lciBhZGRyZXNzAAAAGnByb3Bvc2Vfb3duZXJzaGlwX3RyYW5zZmVyAAAAAAACAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAN0dGwAAAAABAAAAAAAAAAAAAAAuUFjY2VwdHMgYSBwZW5kaW5nIDItc3RlcCBvd25lcnNoaXAgdHJhbnNmZXIuCgpNdXN0IGJlIGNhbGxlZCBieSB0aGUgcGVuZGluZyBvd25lciBiZWZvcmUgdGhlIFRUTCBleHBpcmVzLgoKIyBQYW5pY3MKLSBgTm9QZW5kaW5nVHJhbnNmZXJgIGlmIHRoZXJlIGlzIG5vIHBlbmRpbmcgdHJhbnNmZXIgKG9yIGl0IGV4cGlyZWQpAAAAAAAAEGFjY2VwdF9vd25lcnNoaXAAAAAAAAAAAAAAAAAAAACkUGVybWFuZW50bHkgcmVub3VuY2VzIG93bmVyc2hpcC4KCiMgUGFuaWNzCi0gYE93bmVyTm90U2V0YCBpZiBubyBvd25lciBpcyBjdXJyZW50bHkgc2V0Ci0gYFRyYW5zZmVySW5Qcm9ncmVzc2AgaWYgYSAyLXN0ZXAgdHJhbnNmZXIgaXMgaW4gcHJvZ3Jlc3MgKGNhbmNlbCBpdCBmaXJzdCkAAAAScmVub3VuY2Vfb3duZXJzaGlwAAAAAAAAAAAAAAAAAAAAAACVVGhlIHR5cGUgb2YgZGF0YSByZXF1aXJlZCBmb3IgbWlncmF0aW9uLgpVcGdyYWRlcyB0aGUgY29udHJhY3QgdG8gbmV3IFdBU00gYnl0ZWNvZGUuClNldHMgYSBtaWdyYXRpb24gZmxhZyB0aGF0IG11c3QgYmUgY2xlYXJlZCBieSBjYWxsaW5nIGBtaWdyYXRlYC4AAAAAAAAHdXBncmFkZQAAAAABAAAAAAAAAA1uZXdfd2FzbV9oYXNoAAAAAAAD7gAAACAAAAAAAAAAAAAAAHZSdW5zIG1pZ3JhdGlvbiBsb2dpYyBhZnRlciBhbiB1cGdyYWRlLgpDYW4gb25seSBiZSBjYWxsZWQgd2hlbiB0aGUgbWlncmF0aW9uIGZsYWcgaXMgc2V0IGJ5IGEgcHJldmlvdXMgYHVwZ3JhZGVgIGNhbGwuAAAAAAAHbWlncmF0ZQAAAAABAAAAAAAAAA5taWdyYXRpb25fZGF0YQAAAAAADgAAAAAAAAAAAAAAXlBlcm1hbmVudGx5IGZyZWV6ZXMgdGhlIGNvbnRyYWN0LCBwcmV2ZW50aW5nIGFueSBmdXR1cmUgdXBncmFkZXMuClRoaXMgYWN0aW9uIGlzIGlycmV2ZXJzaWJsZS4AAAAAAAZmcmVlemUAAAAAAAAAAAAAAAAAAAAAADtSZXR1cm5zIHdoZXRoZXIgdGhlIGNvbnRyYWN0IGlzIGZyb3plbiAodXBncmFkZXMgZGlzYWJsZWQpLgAAAAAJaXNfZnJvemVuAAAAAAAAAAAAAAEAAAABAAAABAAAAAAAAAAAAAAADUVuZHBvaW50RXJyb3IAAAAAAAAZAAAAAAAAABFBbHJlYWR5UmVnaXN0ZXJlZAAAAAAAAAEAAAAAAAAADUNvbXBvc2VFeGlzdHMAAAAAAAACAAAAAAAAAA9Db21wb3NlTm90Rm91bmQAAAAAAwAAAAAAAAAcRGVmYXVsdFJlY2VpdmVMaWJVbmF2YWlsYWJsZQAAAAQAAAAAAAAAGURlZmF1bHRTZW5kTGliVW5hdmFpbGFibGUAAAAAAAAFAAAAAAAAABVJbnN1ZmZpY2llbnROYXRpdmVGZWUAAAAAAAAGAAAAAAAAABJJbnN1ZmZpY2llbnRacm9GZWUAAAAAAAcAAAAAAAAAEEludmFsaWRGZWVBbW91bnQAAAAIAAAAAAAAAA1JbnZhbGlkRXhwaXJ5AAAAAAAACQAAAAAAAAAMSW52YWxpZEluZGV4AAAACgAAAAAAAAAMSW52YWxpZE5vbmNlAAAACwAAAAAAAAASSW52YWxpZFBheWxvYWRIYXNoAAAAAAAMAAAAAAAAABVJbnZhbGlkUmVjZWl2ZUxpYnJhcnkAAAAAAAANAAAAAAAAABFPbmx5Tm9uRGVmYXVsdExpYgAAAAAAAA4AAAAAAAAADk9ubHlSZWNlaXZlTGliAAAA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TyB0b2tlbiBpbnN0ZWFkIG9mIG5hdGl2ZSB0b2tlbi4AAAAAAAAKcGF5X2luX3pybwAAAAAAAQAAADVSZWNlaXZlciBhZGRyZXNzIG9uIHRoZSBkZXN0aW5hdGlvbiBjaGFpbiAoMzIgYnl0ZXMpLgAAAAAAAAhyZWNlaXZlcgAAA+4AAAAgAAAAAQAAAE1Tb3VyY2UgbWVzc2FnZSBpbmZvcm1hdGlvbiBpZGVudGlmeWluZyB3aGVyZSBhIGNyb3NzLWNoYWluIG1lc3NhZ2UgY2FtZSBmcm9tLgAAAAAAAAAAAAAGT3JpZ2luAAAAAAADAAAAF05vbmNlIGZvciB0aGlzIHBhdGh3YXkuAAAAAAVub25jZQAAAAAAAAYAAAAuU2VuZGVyIGFkZHJlc3Mgb24gdGhlIHNvdXJjZSBjaGFpbiAoMzIgYnl0ZXMpLgAAAAAABnNlbmRlcgAAAAAD7gAAACAAAAAmU291cmNlIGVuZHBvaW50IElEIChjaGFpbiBpZGVudGlmaWVyKS4AAAAAAAdzcmNfZWlkAAAAAAQAAAABAAAAKEZlZSBzdHJ1Y3R1cmUgZm9yIGNyb3NzLWNoYWluIG1lc3NhZ2luZy4AAAAAAAAADE1lc3NhZ2luZ0ZlZQAAAAIAAAAfRmVlIHBhaWQgaW4gbmF0aXZlIHRva2VuIChYTE0pLgAAAAAKbmF0aXZlX2ZlZQAAAAAACwAAAChGZWUgcGFpZCBpbiBaUk8gdG9rZW4gKExheWVyWmVybyB0b2tlbikuAAAAB3pyb19mZWUAAAAACwAAAAEAAABCUmVjZWlwdCByZXR1cm5lZCBhZnRlciBzdWNjZXNzZnVsbHkgc2VuZGluZyBhIGNyb3NzLWNoYWluIG1lc3NhZ2UuAAAAAAAAAAAAEE1lc3NhZ2luZ1JlY2VpcHQAAAADAAAAKVRoZSBmZWVzIGNoYXJnZWQgZm9yIHNlbmRpbmcgdGhlIG1lc3NhZ2UuAAAAAAAAA2ZlZQAAAAfQAAAADE1lc3NhZ2luZ0ZlZQAAACtHbG9iYWxseSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIG1lc3NhZ2UuAAAAAARndWlkAAAD7gAAACAAAAAkVGhlIG91dGJvdW5kIG5vbmNlIGZvciB0aGlzIHBhdGh3YXkuAAAABW5vbmNlAAAAAAAABgAAAAIAAAA4VHlwZSBvZiBtZXNzYWdlIGxpYnJhcnkgaW5kaWNhdGluZyBzdXBwb3J0ZWQgb3BlcmF0aW9ucy4AAAAAAAAADk1lc3NhZ2VMaWJUeXBlAAAAAAADAAAAAAAAAB9TdXBwb3J0cyBvbmx5IHNlbmRpbmcgbWVzc2FnZXMuAAAAAARTZW5kAAAAAAAAACFTdXBwb3J0cyBvbmx5IHJlY2VpdmluZyBtZXNzYWdlcy4AAAAAAAAHUmVjZWl2ZQAAAAAAAAAALVN1cHBvcnRzIGJvdGggc2VuZGluZyBhbmQgcmVjZWl2aW5nIG1lc3NhZ2VzLgAAAAAAAA5TZW5kQW5kUmVjZWl2ZQAAAAAAAQAAALdWZXJzaW9uIGluZm9ybWF0aW9uIGZvciBhIG1lc3NhZ2UgbGlicmFyeS4KCk5vdGU6IGBtaW5vcmAgYW5kIGBlbmRwb2ludF92ZXJzaW9uYCB1c2UgYHUzMmAgaW5zdGVhZCBvZiBgdThgIGJlY2F1c2UgU3RlbGxhciBkb2VzIG5vdApzdXBwb3J0IGB1OGAgdHlwZXMgaW4gY29udHJhY3QgaW50ZXJmYWNlIGZ1bmN0aW9ucy4AAAAAAAAAABFNZXNzYWdlTGliVmVyc2lvbgAAAAAAAAMAAAAzRW5kcG9pbnQgdmVyc2lvbiAoc2hvdWxkIG5vdCBleGNlZWQgdTg6Ok1BWCA9IDI1NSkuAAAAABBlbmRwb2ludF92ZXJzaW9uAAAABAAAABVNYWpvciB2ZXJzaW9uIG51bWJlci4AAAAAAAAFbWFqb3IAAAAAAAAGAAAAN01pbm9yIHZlcnNpb24gbnVtYmVyIChzaG91bGQgbm90IGV4Y2VlZCB1ODo6TUFYID0gMjU1KS4AAAAABW1pbm9yAAAAAAAABAAAAAEAAAA2VGltZW91dCBjb25maWd1cmF0aW9uIGZvciByZWNlaXZlIGxpYnJhcnkgdHJhbnNpdGlvbnMuAAAAAAAAAAAAB1RpbWVvdXQAAAAAAgAAAChVbml4IHRpbWVzdGFtcCB3aGVuIHRoZSB0aW1lb3V0IGV4cGlyZXMuAAAABmV4cGlyeQAAAAAABgAAAClUaGUgbmV3IGxpYnJhcnkgYWRkcmVzcyB0byB0cmFuc2l0aW9uIHRvLgAAAAAAAANsaWIAAAAAEwAAAAEAAAA1UGFyYW1ldGVycyBmb3Igc2V0dGluZyBtZXNzYWdlIGxpYnJhcnkgY29uZmlndXJhdGlvbi4AAAAAAAAAAAAADlNldENvbmZpZ1BhcmFtAAAAAAADAAAAH1hEUi1lbmNvZGVkIGNvbmZpZ3VyYXRpb24gZGF0YS4AAAAABmNvbmZpZwAAAAAADgAAADBUaGUgdHlwZSBvZiBjb25maWd1cmF0aW9uIChlLmcuLCBleGVjdXRvciwgVUxOKS4AAAALY29uZmlnX3R5cGUAAAAABAAAACdUaGUgZW5kcG9pbnQgSUQgdGhpcyBjb25maWcgYXBwbGllcyB0by4AAAAAA2VpZAAAAAAEAAAAAQAAADFSZXNvbHZlZCBsaWJyYXJ5IGluZm9ybWF0aW9uIHdpdGggZGVmYXVsdCBzdGF0dXMuAAAAAAAAAAAAAA9SZXNvbHZlZExpYnJhcnkAAAAAAgAAAERXaGV0aGVyIHRoaXMgaXMgdGhlIGRlZmF1bHQgbGlicmFyeSAodHJ1ZSkgb3IgT0FwcC1zcGVjaWZpYyAoZmFsc2UpLgAAAAppc19kZWZhdWx0AAAAAAABAAAAHVRoZSByZXNvbHZlZCBsaWJyYXJ5IGFkZHJlc3MuAAAAAAAAA2xpYgAAAAATAAAAAQAAAEhPdXRib3VuZCBwYWNrZXQgY29udGFpbmluZyBhbGwgaW5mb3JtYXRpb24gZm9yIGNyb3NzLWNoYWluIHRyYW5zbWlzc2lvbi4AAAAAAAAADk91dGJvdW5kUGFja2V0AAAAAAAHAAAAGERlc3RpbmF0aW9uIGVuZHBvaW50IElELgAAAAdkc3RfZWlkAAAAAAQAAAAsR2xvYmFsbHkgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgbWVzc2FnZS4AAAAEZ3VpZAAAA+4AAAAgAAAAFFRoZSBtZXNzYWdlIHBheWxvYWQuAAAAB21lc3NhZ2UAAAAADgAAACBPdXRib3VuZCBub25jZSBmb3IgdGhpcyBwYXRod2F5LgAAAAVub25jZQAAAAAAAAYAAAAxUmVjZWl2ZXIgYWRkcmVzcyBvbiBkZXN0aW5hdGlvbiBjaGFpbiAoMzIgYnl0ZXMpLgAAAAAAAAhyZWNlaXZlcgAAA+4AAAAgAAAAH1NlbmRlciBhZGRyZXNzIG9uIHNvdXJjZSBjaGFpbi4AAAAABnNlbmRlcgAAAAAAEwAAABNTb3VyY2UgZW5kcG9pbnQgSUQuAAAAAAdzcmNfZWlkAAAAAAQAAAABAAAAK0EgZmVlIHJlY2lwaWVudCB3aXRoIHRoZSBhbW91bnQgdG8gYmUgcGFpZC4AAAAAAAAAAAxGZWVSZWNpcGllbnQAAAACAAAAFUFtb3VudCBvZiBmZWUgdG8gcGF5LgAAAAAAAAZhbW91bnQAAAAAAAsAAAAfVGhlIGFkZHJlc3MgdG8gc2VuZCB0aGUgZmVlIHRvLgAAAAACdG8AAAAAABMAAAABAAAAPFJlc3VsdCBvZiBzZW5kIG9wZXJhdGlvbiBjb250YWluaW5nIGZlZXMgYW5kIGVuY29kZWQgcGFja2V0LgAAAAAAAAANRmVlc0FuZFBhY2tldAAAAAAAAAMAAAAqVGhlIGVuY29kZWQgcGFja2V0IHJlYWR5IGZvciB0cmFuc21pc3Npb24uAAAAAAAOZW5jb2RlZF9wYWNrZXQAAAAAAA4AAAA/TGlzdCBvZiBuYXRpdmUgdG9rZW4gZmVlIHJlY2lwaWVudHMgKGV4ZWN1dG9yLCBEVk5zLCB0cmVhc3VyeSkuAAAAABVuYXRpdmVfZmVlX3JlY2lwaWVudHMAAAAAAAPqAAAH0AAAAAxGZWVSZWNpcGllbnQAAAAsTGlzdCBvZiBaUk8gdG9rZW4gZmVlIHJlY2lwaWVudHMgKHRyZWFzdXJ5KS4AAAASenJvX2ZlZV9yZWNpcGllbnRzAAAAAAPqAAAH0AAAAAxGZWVSZWNpcGllbnQAAAABAAAA4VBhcmFtZXRlcnMgZm9yIERWTiBmZWUgY2FsY3VsYXRpb24uCgpDb250YWlucyBhbGwgaW5wdXRzIG5lZWRlZCBieSB0aGUgZmVlIGxpYnJhcnkgdG8gY2FsY3VsYXRlIHZlcmlmaWNhdGlvbiBmZWVzCmZvciBjcm9zcy1jaGFpbiBtZXNzYWdlcy4gSW5jbHVkZXMgbWVzc2FnZSBwYXJhbWV0ZXJzLCBjb21tb24gY29uZmlndXJhdGlvbiwKYW5kIGRlc3RpbmF0aW9uLXNwZWNpZmljIHNldHRpbmdzLgAAAAAAAAAAAAAMRHZuRmVlUGFyYW1zAAAACgAAACdOdW1iZXIgb2YgYmxvY2sgY29uZmlybWF0aW9ucyByZXF1aXJlZC4AAAAADWNvbmZpcm1hdGlvbnMAAAAAAAAGAAAATERlZmF1bHQgZmVlIG11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzICh1c2VkIGlmIG5vIGRzdC1zcGVjaWZpYyBtdWx0aXBsaWVyKS4AAAAWZGVmYXVsdF9tdWx0aXBsaWVyX2JwcwAAAAAABAAAACtEZXN0aW5hdGlvbiBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikuAAAAAAdkc3RfZWlkAAAAAAQAAAAjTWluaW11bSBmZWUgbWFyZ2luIGluIFVTRCAoc2NhbGVkKS4AAAAAEGZsb29yX21hcmdpbl91c2QAAAAKAAABED09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkRlc3RpbmF0aW9uLVNwZWNpZmljIENvbmZpZ3VyYXRpb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KR2FzIGVzdGltYXRlIGZvciB2ZXJpZmljYXRpb24gb24gZGVzdGluYXRpb24gY2hhaW4uAAAAA2dhcwAAAAAKAAAARkRlc3RpbmF0aW9uLXNwZWNpZmljIGZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cyAoMCA9IHVzZSBkZWZhdWx0KS4AAAAAAA5tdWx0aXBsaWVyX2JwcwAAAAAABAAAAAtEVk4gb3B0aW9ucwAAAAAHb3B0aW9ucwAAAAAOAAABED09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNvbW1vbiBDb25maWd1cmF0aW9uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClByaWNlIGZlZWQgY29udHJhY3QgYWRkcmVzcyBmb3IgZ2FzIHByaWNlIGFuZCBleGNoYW5nZSByYXRlIGRhdGEuAAAACnByaWNlX2ZlZWQAAAAAABMAAAAnTnVtYmVyIG9mIHJlcXVpcmVkIHNpZ25hdHVyZXMgKHF1b3J1bSkuAAAAAAZxdW9ydW0AAAAAAAQAAADlPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KTWVzc2FnZSBQYXJhbWV0ZXJzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClRoZSBPQXBwIHNlbmRlciBhZGRyZXNzLgAAAAAAAAZzZW5kZXIAAAAAABMAAAABAAAA41BhcmFtZXRlcnMgZm9yIGV4ZWN1dG9yIGZlZSBjYWxjdWxhdGlvbi4KCkNvbnRhaW5zIGFsbCBpbnB1dHMgbmVlZGVkIGJ5IHRoZSBmZWUgbGlicmFyeSB0byBjYWxjdWxhdGUgZXhlY3V0aW9uIGZlZXMKZm9yIGNyb3NzLWNoYWluIG1lc3NhZ2VzLiBJbmNsdWRlcyBtZXNzYWdlIHBhcmFtZXRlcnMsIGNvbW1vbiBjb25maWd1cmF0aW9uLAphbmQgZGVzdGluYXRpb24tc3BlY2lmaWMgc2V0dGluZ3MuAAAAAAAAAAAJRmVlUGFyYW1zAAAAAAAACwAAACZTaXplIG9mIHRoZSBtZXNzYWdlIGNhbGxkYXRhIGluIGJ5dGVzLgAAAAAADWNhbGxkYXRhX3NpemUAAAAAAAAEAAAATERlZmF1bHQgZmVlIG11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzICh1c2VkIGlmIG5vIGRzdC1zcGVjaWZpYyBtdWx0aXBsaWVyKS4AAAAWZGVmYXVsdF9tdWx0aXBsaWVyX2JwcwAAAAAABAAAACtEZXN0aW5hdGlvbiBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikuAAAAAAdkc3RfZWlkAAAAAAQAAAAjTWluaW11bSBmZWUgbWFyZ2luIGluIFVTRCAoc2NhbGVkKS4AAAAAEGZsb29yX21hcmdpbl91c2QAAAAKAAAANkJhc2UgZ2FzIGZvciBlYWNoIGx6Q29tcG9zZSBjYWxsIG9uIGRlc3RpbmF0aW9uIGNoYWluLgAAAAAAE2x6X2NvbXBvc2VfYmFzZV9nYXMAAAAABgAAARM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpEZXN0aW5hdGlvbi1TcGVjaWZpYyBDb25maWd1cmF0aW9uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkJhc2UgZ2FzIGZvciBselJlY2VpdmUgZXhlY3V0aW9uIG9uIGRlc3RpbmF0aW9uIGNoYWluLgAAAAATbHpfcmVjZWl2ZV9iYXNlX2dhcwAAAAAGAAAARkRlc3RpbmF0aW9uLXNwZWNpZmljIGZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cyAoMCA9IHVzZSBkZWZhdWx0KS4AAAAAAA5tdWx0aXBsaWVyX2JwcwAAAAAABAAAACxNYXhpbXVtIG5hdGl2ZSB0b2tlbiB2YWx1ZSB0aGF0IGNhbiBiZSBzZW50LgAAAApuYXRpdmVfY2FwAAAAAAAKAAAARkVuY29kZWQgZXhlY3V0b3Igb3B0aW9ucyAobHpSZWNlaXZlIGdhcywgbHpDb21wb3NlLCBuYXRpdmVEcm9wLCBldGMuKS4AAAAAAAdvcHRpb25zAAAAAA4AAAEQPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ29tbW9uIENvbmZpZ3VyYXRpb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUHJpY2UgZmVlZCBjb250cmFjdCBhZGRyZXNzIGZvciBnYXMgcHJpY2UgYW5kIGV4Y2hhbmdlIHJhdGUgZGF0YS4AAAAKcHJpY2VfZmVlZAAAAAAAEwAAAOU9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpNZXNzYWdlIFBhcmFtZXRlcnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KVGhlIE9BcHAgc2VuZGVyIGFkZHJlc3MuAAAAAAAABnNlbmRlcgAAAAAAEwAAAAEAAACER2FzIHByaWNlIGluZm9ybWF0aW9uIGZvciBhIGRlc3RpbmF0aW9uIGVuZHBvaW50LgoKQ29udGFpbnMgdGhlIGV4Y2hhbmdlIHJhdGUgYW5kIGdhcyBjb3N0cyBuZWVkZWQgZm9yIGNyb3NzLWNoYWluIGZlZSBjYWxjdWxhdGlvbnMuAAAAAAAAAAVQcmljZQAAAAAAAAMAAAA3R2FzIGNvc3QgcGVyIGJ5dGUgb2YgY2FsbGRhdGEgb24gdGhlIGRlc3RpbmF0aW9uIGNoYWluLgAAAAAMZ2FzX3Blcl9ieXRlAAAABAAAAEJHYXMgcHJpY2UgaW4gdGhlIHNtYWxsZXN0IHVuaXQgKHdlaSBmb3IgRVZNLCBzdHJvb3BzIGZvciBTdGVsbGFyKS4AAAAAABFnYXNfcHJpY2VfaW5fdW5pdAAAAAAAAAYAAACpUHJpY2UgcmF0aW8gPSAocmVtb3RlIG5hdGl2ZSB0b2tlbiBwcmljZSAvIGxvY2FsIG5hdGl2ZSB0b2tlbiBwcmljZSkgKiBQUklDRV9SQVRJT19ERU5PTUlOQVRPUi4KVXNlZCB0byBjb252ZXJ0IGRlc3RpbmF0aW9uIGNoYWluIGdhcyBjb3N0cyB0byBzb3VyY2UgY2hhaW4gbmF0aXZlIHRva2VuLgAAAAAAAAtwcmljZV9yYXRpbwAAAAAKAAAAAQAAAIBGZWUgZXN0aW1hdGlvbiByZXN1bHQgd2l0aCBkZXRhaWxlZCBicmVha2Rvd24uCgpDb250YWlucyB0aGUgY2FsY3VsYXRlZCBmZWUgYW5kIGFsbCBpbnRlcm1lZGlhdGUgdmFsdWVzIHVzZWQgaW4gdGhlIGNhbGN1bGF0aW9uLgAAAAAAAAALRmVlRXN0aW1hdGUAAAAABAAAADBTb3VyY2UgY2hhaW4gbmF0aXZlIHRva2VuIHByaWNlIGluIFVTRCAoc2NhbGVkKS4AAAAQbmF0aXZlX3ByaWNlX3VzZAAAAAoAAAAlUHJpY2UgcmF0aW8gdXNlZCBmb3IgdGhlIGNhbGN1bGF0aW9uLgAAAAAAAAtwcmljZV9yYXRpbwAAAAAKAAAAMkRlbm9taW5hdG9yIGZvciB0aGUgcHJpY2UgcmF0aW8gKHR5cGljYWxseSAxMF4yMCkuAAAAAAAXcHJpY2VfcmF0aW9fZGVub21pbmF0b3IAAAAACgAAADFUb3RhbCBnYXMgZmVlIGluIHNvdXJjZSBjaGFpbiBuYXRpdmUgdG9rZW4gdW5pdHMuAAAAAAAADXRvdGFsX2dhc19mZWUAAAAAAAALAAAABAAAAB1QYWNrZXRDb2RlY1YxRXJyb3I6IDExMDAtMTEwOQAAAAAAAAAAAAASUGFja2V0Q29kZWNWMUVycm9yAAAAAAACAAAAAAAAABNJbnZhbGlkUGFja2V0SGVhZGVyAAAABEwAAAAAAAAAFEludmFsaWRQYWNrZXRWZXJzaW9uAAAETQAAAAQAAAAdV29ya2VyT3B0aW9uc0Vycm9yOiAxMTEwLTExMTkAAAAAAAAAAAAAEldvcmtlck9wdGlvbnNFcnJvcgAAAAAACQAAAAAAAAASSW52YWxpZEJ5dGVzTGVuZ3RoAAAAAARWAAAAAAAAABlJbnZhbGlkTGVnYWN5T3B0aW9uc1R5cGUxAAAAAAAEVwAAAAAAAAAZSW52YWxpZExlZ2FjeU9wdGlvbnNUeXBlMgAAAAAABFgAAAAAAAAAEUludmFsaWRPcHRpb25UeXBlAAAAAAAEWQAAAAAAAAAOSW52YWxpZE9wdGlvbnMAAAAABFoAAAAAAAAAD0ludmFsaWRXb3JrZXJJZAAAAARbAAAAAAAAAB1MZWdhY3lPcHRpb25zVHlwZTFHYXNPdmVyZmxvdwAAAAAABFwAAAAAAAAAIExlZ2FjeU9wdGlvbnNUeXBlMkFtb3VudE92ZXJmbG93AAAEXQAAAAAAAAAdTGVnYWN5T3B0aW9uc1R5cGUyR2FzT3ZlcmZsb3cAAAAAAAReAAAABAAAABxCdWZmZXJSZWFkZXJFcnJvcjogMTAwMC0xMDA5AAAAAAAAABFCdWZmZXJSZWFkZXJFcnJvcgAAAAAAAAIAAAAAAAAADUludmFsaWRMZW5ndGgAAAAAAAPoAAAAAAAAABVJbnZhbGlkQWRkcmVzc1BheWxvYWQAAAAAAAPpAAAABAAAABxCdWZmZXJXcml0ZXJFcnJvcjogMTAxMC0xMDE5AAAAAAAAABFCdWZmZXJXcml0ZXJFcnJvcgAAAAAAAAEAAAAAAAAAFUludmFsaWRBZGRyZXNzUGF5bG9hZAAAAAAAA/IAAAAEAAAAH1R0bENvbmZpZ3VyYWJsZUVycm9yOiAxMDIwLTEwMjkAAAAAAAAAABRUdGxDb25maWd1cmFibGVFcnJvcgAAAAMAAAAAAAAAEEludmFsaWRUdGxDb25maWcAAAP8AAAAAAAAAA9UdGxDb25maWdGcm96ZW4AAAAD/QAAAAAAAAAWVHRsQ29uZmlnQWxyZWFkeUZyb3plbgAAAAAD/gAAAAQAAAAXT3duYWJsZUVycm9yOiAxMDMwLTEwMzkAAAAAAAAAAAxPd25hYmxlRXJyb3IAAAAGAAAAAAAAABNJbnZhbGlkUGVuZGluZ093bmVyAAAABAYAAAAAAAAACkludmFsaWRUdGwAAAAABAcAAAAAAAAAEU5vUGVuZGluZ1RyYW5zZmVyAAAAAAAECAAAAAAAAAAPT3duZXJBbHJlYWR5U2V0AAAABAkAAAAAAAAAC093bmVyTm90U2V0AAAABAoAAAAAAAAAElRyYW5zZmVySW5Qcm9ncmVzcwAAAAAECwAAAAQAAAAYQnl0ZXNFeHRFcnJvcjogMTA0MC0xMDQ5AAAAAAAAAA1CeXRlc0V4dEVycm9yAAAAAAAAAQAAAAAAAAAOTGVuZ3RoTWlzbWF0Y2gAAAAABBAAAAAEAAAAG1VwZ3JhZGVhYmxlRXJyb3I6IDEwNTAtMTA1OQAAAAAAAAAAEFVwZ3JhZGVhYmxlRXJyb3IAAAADAAAAAAAAABRJbnZhbGlkTWlncmF0aW9uRGF0YQAABBoAAAAAAAAAE01pZ3JhdGlvbk5vdEFsbG93ZWQAAAAEGwAAAAAAAAAOVXBncmFkZXNGcm96ZW4AAAAABBwAAAAEAAAAGE11bHRpc2lnRXJyb3I6IDEwNjAtMTA2OQAAAAAAAAANTXVsdGlzaWdFcnJvcgAAAAAAAAgAAAAAAAAAEkFscmVhZHlJbml0aWFsaXplZAAAAAAEJAAAAAAAAAANSW52YWxpZFNpZ25lcgAAAAAABCUAAAAAAAAADlNpZ25hdHVyZUVycm9yAAAAAAQmAAAAAAAAABNTaWduZXJBbHJlYWR5RXhpc3RzAAAABCcAAAAAAAAADlNpZ25lck5vdEZvdW5kAAAAAAQoAAAAAAAAAB1Ub3RhbFNpZ25lcnNMZXNzVGhhblRocmVzaG9sZAAAAAAABCkAAAAAAAAAD1Vuc29ydGVkU2lnbmVycwAAAAQqAAAAAAAAAA1aZXJvVGhyZXNob2xkAAAAAAAEKwAAAAUAAAAwRXZlbnQgZW1pdHRlZCB3aGVuIGEgc2lnbmVyIGlzIGFkZGVkIG9yIHJlbW92ZWQuAAAAAAAAAAlTaWduZXJTZXQAAAAAAAABAAAACnNpZ25lcl9zZXQAAAAAAAIAAAAAAAAABnNpZ25lcgAAAAAD7gAAABQAAAABAAAAAAAAAAZhY3RpdmUAAAAAAAEAAAAAAAAAAgAAAAUAAAA2RXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBzaWduYXR1cmUgdGhyZXNob2xkIGlzIGNoYW5nZWQuAAAAAAAAAAAADFRocmVzaG9sZFNldAAAAAEAAAANdGhyZXNob2xkX3NldAAAAAAAAAEAAAAAAAAACXRocmVzaG9sZAAAAAAAAAQAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAA9NdWx0aXNpZ1N0b3JhZ2UAAAAAAgAAAAAAAAAAAAAAB1NpZ25lcnMAAAAAAAAAAAAAAAAJVGhyZXNob2xkAAAAAAAABQAAAFdFdmVudCBlbWl0dGVkIHdoZW4gb3duZXJzaGlwIGlzIHRyYW5zZmVycmVkIChib3RoIHNpbmdsZS1zdGVwIGFuZCB0d28tc3RlcCBjb21wbGV0aW9uKS4AAAAAAAAAABRPd25lcnNoaXBUcmFuc2ZlcnJlZAAAAAEAAAAVb3duZXJzaGlwX3RyYW5zZmVycmVkAAAAAAAAAgAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAgAAAAUAAAA7RXZlbnQgZW1pdHRlZCB3aGVuIGEgMi1zdGVwIG93bmVyc2hpcCB0cmFuc2ZlciBpcyBwcm9wb3NlZC4AAAAAAAAAABVPd25lcnNoaXBUcmFuc2ZlcnJpbmcAAAAAAAABAAAAFm93bmVyc2hpcF90cmFuc2ZlcnJpbmcAAAAAAAMAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAAAAAADdHRsAAAAAAQAAAAAAAAAAgAAAAUAAAAqRXZlbnQgZW1pdHRlZCB3aGVuIG93bmVyc2hpcCBpcyByZW5vdW5jZWQuAAAAAAAAAAAAEk93bmVyc2hpcFJlbm91bmNlZAAAAAAAAQAAABNvd25lcnNoaXBfcmVub3VuY2VkAAAAAAEAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAA5Pd25hYmxlU3RvcmFnZQAAAAAAAgAAAAAAAAAAAAAABU93bmVyAAAAAAAAAAAAAAAAAAAMUGVuZGluZ093bmVyAAAAAQAAAElUVEwgY29uZmlndXJhdGlvbjogdGhyZXNob2xkICh3aGVuIHRvIGV4dGVuZCkgYW5kIGV4dGVuZF90byAodGFyZ2V0IFRUTCkuAAAAAAAAAAAAAAlUdGxDb25maWcAAAAAAAACAAAAKFRhcmdldCBUVEwgYWZ0ZXIgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAJZXh0ZW5kX3RvAAAAAAAABAAAADNUVEwgdGhyZXNob2xkIHRoYXQgdHJpZ2dlcnMgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAACXRocmVzaG9sZAAAAAAAAAQAAAAFAAAAJ0V2ZW50IGVtaXR0ZWQgd2hlbiBUVEwgY29uZmlncyBhcmUgc2V0LgAAAAAAAAAADVR0bENvbmZpZ3NTZXQAAAAAAAABAAAAD3R0bF9jb25maWdzX3NldAAAAAACAAAAAAAAAAhpbnN0YW5jZQAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAAAAAAACnBlcnNpc3RlbnQAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAACAAAABQAAACpFdmVudCBlbWl0dGVkIHdoZW4gVFRMIGNvbmZpZ3MgYXJlIGZyb3plbi4AAAAAAAAAAAAQVHRsQ29uZmlnc0Zyb3plbgAAAAEAAAASdHRsX2NvbmZpZ3NfZnJvemVuAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAABBUdGxDb25maWdTdG9yYWdlAAAAAwAAAAAAAAAAAAAABkZyb3plbgAAAAAAAAAAAAAAAAAISW5zdGFuY2UAAAAAAAAAAAAAAApQZXJzaXN0ZW50AAAAAAACAAAAAAAAAAAAAAASVXBncmFkZWFibGVTdG9yYWdlAAAAAAACAAAAAAAAAAAAAAAGRnJvemVuAAAAAAAAAAAAAAAAAAlNaWdyYXRpbmcAAAAAiwEOY29udHJhY3RtZXRhdjAAAAAAAAAABmJpbnZlcgAAAAAABTAuMC4xAAAAAAAAAAAAAAVyc3ZlcgAAAAAAAAYxLjkwLjAAAAAAAAAAAAAIcnNzZGt2ZXIAAAAvMjMuNC4wIzY3M2Q2YzRmMjM2OGQyODJkMjVkYTI5YmRhNTVjMjFiOGJlNjljYTYAAB4RY29udHJhY3RlbnZtZXRhdjAAAAAAAAAAFwAAAAA=";
|
|
12
|
+
/**
|
|
13
|
+
* Pre-computed WASM hash (SHA-256)
|
|
14
|
+
* Use this when the WASM is already uploaded on-chain
|
|
15
|
+
*/
|
|
16
|
+
export declare const WASM_HASH = "cd7e67ffb0c0df7c74799d98f380733f77370f7f989df944d2ba0937982f4b4c";
|
|
17
|
+
/**
|
|
18
|
+
* Get the WASM bytecode as a Buffer
|
|
19
|
+
* Use this to upload the WASM to the network
|
|
20
|
+
*/
|
|
21
|
+
export declare function getWasmBuffer(): Buffer;
|
|
8
22
|
export declare const ExecutorFeeLibError: {
|
|
9
23
|
1: {
|
|
10
24
|
message: string;
|
|
@@ -331,6 +345,169 @@ export interface FeesAndPacket {
|
|
|
331
345
|
*/
|
|
332
346
|
zro_fee_recipients: Array<FeeRecipient>;
|
|
333
347
|
}
|
|
348
|
+
/**
|
|
349
|
+
* Parameters for DVN fee calculation.
|
|
350
|
+
*
|
|
351
|
+
* Contains all inputs needed by the fee library to calculate verification fees
|
|
352
|
+
* for cross-chain messages. Includes message parameters, common configuration,
|
|
353
|
+
* and destination-specific settings.
|
|
354
|
+
*/
|
|
355
|
+
export interface DvnFeeParams {
|
|
356
|
+
/**
|
|
357
|
+
* Number of block confirmations required.
|
|
358
|
+
*/
|
|
359
|
+
confirmations: u64;
|
|
360
|
+
/**
|
|
361
|
+
* Default fee multiplier in basis points (used if no dst-specific multiplier).
|
|
362
|
+
*/
|
|
363
|
+
default_multiplier_bps: u32;
|
|
364
|
+
/**
|
|
365
|
+
* Destination endpoint ID (chain identifier).
|
|
366
|
+
*/
|
|
367
|
+
dst_eid: u32;
|
|
368
|
+
/**
|
|
369
|
+
* Minimum fee margin in USD (scaled).
|
|
370
|
+
*/
|
|
371
|
+
floor_margin_usd: u128;
|
|
372
|
+
/**
|
|
373
|
+
* ============================================================================================
|
|
374
|
+
* Destination-Specific Configuration
|
|
375
|
+
* ============================================================================================
|
|
376
|
+
* Gas estimate for verification on destination chain.
|
|
377
|
+
*/
|
|
378
|
+
gas: u128;
|
|
379
|
+
/**
|
|
380
|
+
* Destination-specific fee multiplier in basis points (0 = use default).
|
|
381
|
+
*/
|
|
382
|
+
multiplier_bps: u32;
|
|
383
|
+
/**
|
|
384
|
+
* DVN options
|
|
385
|
+
*/
|
|
386
|
+
options: Buffer;
|
|
387
|
+
/**
|
|
388
|
+
* ============================================================================================
|
|
389
|
+
* Common Configuration
|
|
390
|
+
* ============================================================================================
|
|
391
|
+
* Price feed contract address for gas price and exchange rate data.
|
|
392
|
+
*/
|
|
393
|
+
price_feed: string;
|
|
394
|
+
/**
|
|
395
|
+
* Number of required signatures (quorum).
|
|
396
|
+
*/
|
|
397
|
+
quorum: u32;
|
|
398
|
+
/**
|
|
399
|
+
* ============================================================================================
|
|
400
|
+
* Message Parameters
|
|
401
|
+
* ============================================================================================
|
|
402
|
+
* The OApp sender address.
|
|
403
|
+
*/
|
|
404
|
+
sender: string;
|
|
405
|
+
}
|
|
406
|
+
/**
|
|
407
|
+
* Parameters for executor fee calculation.
|
|
408
|
+
*
|
|
409
|
+
* Contains all inputs needed by the fee library to calculate execution fees
|
|
410
|
+
* for cross-chain messages. Includes message parameters, common configuration,
|
|
411
|
+
* and destination-specific settings.
|
|
412
|
+
*/
|
|
413
|
+
export interface FeeParams {
|
|
414
|
+
/**
|
|
415
|
+
* Size of the message calldata in bytes.
|
|
416
|
+
*/
|
|
417
|
+
calldata_size: u32;
|
|
418
|
+
/**
|
|
419
|
+
* Default fee multiplier in basis points (used if no dst-specific multiplier).
|
|
420
|
+
*/
|
|
421
|
+
default_multiplier_bps: u32;
|
|
422
|
+
/**
|
|
423
|
+
* Destination endpoint ID (chain identifier).
|
|
424
|
+
*/
|
|
425
|
+
dst_eid: u32;
|
|
426
|
+
/**
|
|
427
|
+
* Minimum fee margin in USD (scaled).
|
|
428
|
+
*/
|
|
429
|
+
floor_margin_usd: u128;
|
|
430
|
+
/**
|
|
431
|
+
* Base gas for each lzCompose call on destination chain.
|
|
432
|
+
*/
|
|
433
|
+
lz_compose_base_gas: u64;
|
|
434
|
+
/**
|
|
435
|
+
* ============================================================================================
|
|
436
|
+
* Destination-Specific Configuration
|
|
437
|
+
* ============================================================================================
|
|
438
|
+
* Base gas for lzReceive execution on destination chain.
|
|
439
|
+
*/
|
|
440
|
+
lz_receive_base_gas: u64;
|
|
441
|
+
/**
|
|
442
|
+
* Destination-specific fee multiplier in basis points (0 = use default).
|
|
443
|
+
*/
|
|
444
|
+
multiplier_bps: u32;
|
|
445
|
+
/**
|
|
446
|
+
* Maximum native token value that can be sent.
|
|
447
|
+
*/
|
|
448
|
+
native_cap: u128;
|
|
449
|
+
/**
|
|
450
|
+
* Encoded executor options (lzReceive gas, lzCompose, nativeDrop, etc.).
|
|
451
|
+
*/
|
|
452
|
+
options: Buffer;
|
|
453
|
+
/**
|
|
454
|
+
* ============================================================================================
|
|
455
|
+
* Common Configuration
|
|
456
|
+
* ============================================================================================
|
|
457
|
+
* Price feed contract address for gas price and exchange rate data.
|
|
458
|
+
*/
|
|
459
|
+
price_feed: string;
|
|
460
|
+
/**
|
|
461
|
+
* ============================================================================================
|
|
462
|
+
* Message Parameters
|
|
463
|
+
* ============================================================================================
|
|
464
|
+
* The OApp sender address.
|
|
465
|
+
*/
|
|
466
|
+
sender: string;
|
|
467
|
+
}
|
|
468
|
+
/**
|
|
469
|
+
* Gas price information for a destination endpoint.
|
|
470
|
+
*
|
|
471
|
+
* Contains the exchange rate and gas costs needed for cross-chain fee calculations.
|
|
472
|
+
*/
|
|
473
|
+
export interface Price {
|
|
474
|
+
/**
|
|
475
|
+
* Gas cost per byte of calldata on the destination chain.
|
|
476
|
+
*/
|
|
477
|
+
gas_per_byte: u32;
|
|
478
|
+
/**
|
|
479
|
+
* Gas price in the smallest unit (wei for EVM, stroops for Stellar).
|
|
480
|
+
*/
|
|
481
|
+
gas_price_in_unit: u64;
|
|
482
|
+
/**
|
|
483
|
+
* Price ratio = (remote native token price / local native token price) * PRICE_RATIO_DENOMINATOR.
|
|
484
|
+
* Used to convert destination chain gas costs to source chain native token.
|
|
485
|
+
*/
|
|
486
|
+
price_ratio: u128;
|
|
487
|
+
}
|
|
488
|
+
/**
|
|
489
|
+
* Fee estimation result with detailed breakdown.
|
|
490
|
+
*
|
|
491
|
+
* Contains the calculated fee and all intermediate values used in the calculation.
|
|
492
|
+
*/
|
|
493
|
+
export interface FeeEstimate {
|
|
494
|
+
/**
|
|
495
|
+
* Source chain native token price in USD (scaled).
|
|
496
|
+
*/
|
|
497
|
+
native_price_usd: u128;
|
|
498
|
+
/**
|
|
499
|
+
* Price ratio used for the calculation.
|
|
500
|
+
*/
|
|
501
|
+
price_ratio: u128;
|
|
502
|
+
/**
|
|
503
|
+
* Denominator for the price ratio (typically 10^20).
|
|
504
|
+
*/
|
|
505
|
+
price_ratio_denominator: u128;
|
|
506
|
+
/**
|
|
507
|
+
* Total gas fee in source chain native token units.
|
|
508
|
+
*/
|
|
509
|
+
total_gas_fee: i128;
|
|
510
|
+
}
|
|
334
511
|
/**
|
|
335
512
|
* PacketCodecV1Error: 1100-1109
|
|
336
513
|
*/
|
|
@@ -417,6 +594,18 @@ export declare const OwnableError: {
|
|
|
417
594
|
1031: {
|
|
418
595
|
message: string;
|
|
419
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
|
+
};
|
|
420
609
|
};
|
|
421
610
|
/**
|
|
422
611
|
* BytesExtError: 1040-1049
|
|
@@ -433,6 +622,12 @@ export declare const UpgradeableError: {
|
|
|
433
622
|
1050: {
|
|
434
623
|
message: string;
|
|
435
624
|
};
|
|
625
|
+
1051: {
|
|
626
|
+
message: string;
|
|
627
|
+
};
|
|
628
|
+
1052: {
|
|
629
|
+
message: string;
|
|
630
|
+
};
|
|
436
631
|
};
|
|
437
632
|
/**
|
|
438
633
|
* MultisigError: 1060-1069
|
|
@@ -473,6 +668,9 @@ export type MultisigStorage = {
|
|
|
473
668
|
export type OwnableStorage = {
|
|
474
669
|
tag: "Owner";
|
|
475
670
|
values: void;
|
|
671
|
+
} | {
|
|
672
|
+
tag: "PendingOwner";
|
|
673
|
+
values: void;
|
|
476
674
|
};
|
|
477
675
|
/**
|
|
478
676
|
* TTL configuration: threshold (when to extend) and extend_to (target TTL).
|
|
@@ -498,324 +696,30 @@ export type TtlConfigStorage = {
|
|
|
498
696
|
values: void;
|
|
499
697
|
};
|
|
500
698
|
export type UpgradeableStorage = {
|
|
699
|
+
tag: "Frozen";
|
|
700
|
+
values: void;
|
|
701
|
+
} | {
|
|
501
702
|
tag: "Migrating";
|
|
502
703
|
values: void;
|
|
503
704
|
};
|
|
504
|
-
|
|
505
|
-
* WorkerError: 1200-1299
|
|
506
|
-
*/
|
|
507
|
-
export declare const WorkerError: {
|
|
508
|
-
1200: {
|
|
509
|
-
message: string;
|
|
510
|
-
};
|
|
511
|
-
1201: {
|
|
512
|
-
message: string;
|
|
513
|
-
};
|
|
514
|
-
1202: {
|
|
515
|
-
message: string;
|
|
516
|
-
};
|
|
517
|
-
1203: {
|
|
518
|
-
message: string;
|
|
519
|
-
};
|
|
520
|
-
1204: {
|
|
521
|
-
message: string;
|
|
522
|
-
};
|
|
523
|
-
1205: {
|
|
524
|
-
message: string;
|
|
525
|
-
};
|
|
526
|
-
1206: {
|
|
527
|
-
message: string;
|
|
528
|
-
};
|
|
529
|
-
1207: {
|
|
530
|
-
message: string;
|
|
531
|
-
};
|
|
532
|
-
1208: {
|
|
533
|
-
message: string;
|
|
534
|
-
};
|
|
535
|
-
1209: {
|
|
536
|
-
message: string;
|
|
537
|
-
};
|
|
538
|
-
1210: {
|
|
539
|
-
message: string;
|
|
540
|
-
};
|
|
541
|
-
1211: {
|
|
542
|
-
message: string;
|
|
543
|
-
};
|
|
544
|
-
1212: {
|
|
545
|
-
message: string;
|
|
546
|
-
};
|
|
547
|
-
1213: {
|
|
548
|
-
message: string;
|
|
549
|
-
};
|
|
550
|
-
1214: {
|
|
551
|
-
message: string;
|
|
552
|
-
};
|
|
553
|
-
1215: {
|
|
554
|
-
message: string;
|
|
555
|
-
};
|
|
556
|
-
1216: {
|
|
557
|
-
message: string;
|
|
558
|
-
};
|
|
559
|
-
1217: {
|
|
560
|
-
message: string;
|
|
561
|
-
};
|
|
562
|
-
1218: {
|
|
563
|
-
message: string;
|
|
564
|
-
};
|
|
565
|
-
};
|
|
566
|
-
/**
|
|
567
|
-
* Parameters for DVN fee calculation.
|
|
568
|
-
*
|
|
569
|
-
* Contains all inputs needed by the fee library to calculate verification fees
|
|
570
|
-
* for cross-chain messages. Includes message parameters, common configuration,
|
|
571
|
-
* and destination-specific settings.
|
|
572
|
-
*/
|
|
573
|
-
export interface DvnFeeParams {
|
|
705
|
+
export interface Client {
|
|
574
706
|
/**
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
* ============================================================================================
|
|
592
|
-
* Destination-Specific Configuration
|
|
593
|
-
* ============================================================================================
|
|
594
|
-
* Gas estimate for verification on destination chain.
|
|
595
|
-
*/
|
|
596
|
-
gas: u128;
|
|
597
|
-
/**
|
|
598
|
-
* Destination-specific fee multiplier in basis points (0 = use default).
|
|
599
|
-
*/
|
|
600
|
-
multiplier_bps: u32;
|
|
601
|
-
/**
|
|
602
|
-
* DVN options
|
|
603
|
-
*/
|
|
604
|
-
options: Buffer;
|
|
605
|
-
/**
|
|
606
|
-
* ============================================================================================
|
|
607
|
-
* Common Configuration
|
|
608
|
-
* ============================================================================================
|
|
609
|
-
* Price feed contract address for gas price and exchange rate data.
|
|
610
|
-
*/
|
|
611
|
-
price_feed: string;
|
|
612
|
-
/**
|
|
613
|
-
* Number of required signatures (quorum).
|
|
614
|
-
*/
|
|
615
|
-
quorum: u32;
|
|
616
|
-
/**
|
|
617
|
-
* ============================================================================================
|
|
618
|
-
* Message Parameters
|
|
619
|
-
* ============================================================================================
|
|
620
|
-
* The OApp sender address.
|
|
621
|
-
*/
|
|
622
|
-
sender: string;
|
|
623
|
-
}
|
|
624
|
-
/**
|
|
625
|
-
* Parameters for executor fee calculation.
|
|
626
|
-
*
|
|
627
|
-
* Contains all inputs needed by the fee library to calculate execution fees
|
|
628
|
-
* for cross-chain messages. Includes message parameters, common configuration,
|
|
629
|
-
* and destination-specific settings.
|
|
630
|
-
*/
|
|
631
|
-
export interface FeeParams {
|
|
632
|
-
/**
|
|
633
|
-
* Size of the message calldata in bytes.
|
|
634
|
-
*/
|
|
635
|
-
calldata_size: u32;
|
|
636
|
-
/**
|
|
637
|
-
* Default fee multiplier in basis points (used if no dst-specific multiplier).
|
|
638
|
-
*/
|
|
639
|
-
default_multiplier_bps: u32;
|
|
640
|
-
/**
|
|
641
|
-
* Destination endpoint ID (chain identifier).
|
|
642
|
-
*/
|
|
643
|
-
dst_eid: u32;
|
|
644
|
-
/**
|
|
645
|
-
* Minimum fee margin in USD (scaled).
|
|
646
|
-
*/
|
|
647
|
-
floor_margin_usd: u128;
|
|
648
|
-
/**
|
|
649
|
-
* Base gas for each lzCompose call on destination chain.
|
|
650
|
-
*/
|
|
651
|
-
lz_compose_base_gas: u64;
|
|
652
|
-
/**
|
|
653
|
-
* ============================================================================================
|
|
654
|
-
* Destination-Specific Configuration
|
|
655
|
-
* ============================================================================================
|
|
656
|
-
* Base gas for lzReceive execution on destination chain.
|
|
657
|
-
*/
|
|
658
|
-
lz_receive_base_gas: u64;
|
|
659
|
-
/**
|
|
660
|
-
* Destination-specific fee multiplier in basis points (0 = use default).
|
|
661
|
-
*/
|
|
662
|
-
multiplier_bps: u32;
|
|
663
|
-
/**
|
|
664
|
-
* Maximum native token value that can be sent.
|
|
665
|
-
*/
|
|
666
|
-
native_cap: u128;
|
|
667
|
-
/**
|
|
668
|
-
* Encoded executor options (lzReceive gas, lzCompose, nativeDrop, etc.).
|
|
669
|
-
*/
|
|
670
|
-
options: Buffer;
|
|
671
|
-
/**
|
|
672
|
-
* ============================================================================================
|
|
673
|
-
* Common Configuration
|
|
674
|
-
* ============================================================================================
|
|
675
|
-
* Price feed contract address for gas price and exchange rate data.
|
|
676
|
-
*/
|
|
677
|
-
price_feed: string;
|
|
678
|
-
/**
|
|
679
|
-
* ============================================================================================
|
|
680
|
-
* Message Parameters
|
|
681
|
-
* ============================================================================================
|
|
682
|
-
* The OApp sender address.
|
|
683
|
-
*/
|
|
684
|
-
sender: string;
|
|
685
|
-
}
|
|
686
|
-
/**
|
|
687
|
-
* Gas price information for a destination endpoint.
|
|
688
|
-
*
|
|
689
|
-
* Contains the exchange rate and gas costs needed for cross-chain fee calculations.
|
|
690
|
-
*/
|
|
691
|
-
export interface Price {
|
|
692
|
-
/**
|
|
693
|
-
* Gas cost per byte of calldata on the destination chain.
|
|
694
|
-
*/
|
|
695
|
-
gas_per_byte: u32;
|
|
696
|
-
/**
|
|
697
|
-
* Gas price in the smallest unit (wei for EVM, stroops for Stellar).
|
|
698
|
-
*/
|
|
699
|
-
gas_price_in_unit: u64;
|
|
700
|
-
/**
|
|
701
|
-
* Price ratio = (remote native token price / local native token price) * PRICE_RATIO_DENOMINATOR.
|
|
702
|
-
* Used to convert destination chain gas costs to source chain native token.
|
|
703
|
-
*/
|
|
704
|
-
price_ratio: u128;
|
|
705
|
-
}
|
|
706
|
-
/**
|
|
707
|
-
* Fee estimation result with detailed breakdown.
|
|
708
|
-
*
|
|
709
|
-
* Contains the calculated fee and all intermediate values used in the calculation.
|
|
710
|
-
*/
|
|
711
|
-
export interface FeeEstimate {
|
|
712
|
-
/**
|
|
713
|
-
* Source chain native token price in USD (scaled).
|
|
714
|
-
*/
|
|
715
|
-
native_price_usd: u128;
|
|
716
|
-
/**
|
|
717
|
-
* Price ratio used for the calculation.
|
|
718
|
-
*/
|
|
719
|
-
price_ratio: u128;
|
|
720
|
-
/**
|
|
721
|
-
* Denominator for the price ratio (typically 10^20).
|
|
722
|
-
*/
|
|
723
|
-
price_ratio_denominator: u128;
|
|
724
|
-
/**
|
|
725
|
-
* Total gas fee in source chain native token units.
|
|
726
|
-
*/
|
|
727
|
-
total_gas_fee: i128;
|
|
728
|
-
}
|
|
729
|
-
export type WorkerStorage = {
|
|
730
|
-
tag: "Paused";
|
|
731
|
-
values: void;
|
|
732
|
-
} | {
|
|
733
|
-
tag: "DepositAddress";
|
|
734
|
-
values: void;
|
|
735
|
-
} | {
|
|
736
|
-
tag: "PriceFeed";
|
|
737
|
-
values: void;
|
|
738
|
-
} | {
|
|
739
|
-
tag: "WorkerFeeLib";
|
|
740
|
-
values: void;
|
|
741
|
-
} | {
|
|
742
|
-
tag: "DefaultMultiplierBps";
|
|
743
|
-
values: void;
|
|
744
|
-
} | {
|
|
745
|
-
tag: "SupportedOptionTypes";
|
|
746
|
-
values: readonly [u32];
|
|
747
|
-
} | {
|
|
748
|
-
tag: "MessageLibs";
|
|
749
|
-
values: void;
|
|
750
|
-
} | {
|
|
751
|
-
tag: "Allowlist";
|
|
752
|
-
values: readonly [string];
|
|
753
|
-
} | {
|
|
754
|
-
tag: "Denylist";
|
|
755
|
-
values: readonly [string];
|
|
756
|
-
} | {
|
|
757
|
-
tag: "AllowlistSize";
|
|
758
|
-
values: void;
|
|
759
|
-
} | {
|
|
760
|
-
tag: "Admins";
|
|
761
|
-
values: void;
|
|
762
|
-
};
|
|
763
|
-
export interface Client {
|
|
764
|
-
/**
|
|
765
|
-
* 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.
|
|
766
|
-
*/
|
|
767
|
-
upgrade: ({ new_wasm_hash }: {
|
|
768
|
-
new_wasm_hash: Buffer;
|
|
769
|
-
}, txnOptions?: {
|
|
770
|
-
/**
|
|
771
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
772
|
-
*/
|
|
773
|
-
fee?: number;
|
|
774
|
-
/**
|
|
775
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
776
|
-
*/
|
|
777
|
-
timeoutInSeconds?: number;
|
|
778
|
-
/**
|
|
779
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
780
|
-
*/
|
|
781
|
-
simulate?: boolean;
|
|
782
|
-
}) => Promise<AssembledTransaction<null>>;
|
|
783
|
-
/**
|
|
784
|
-
* 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.
|
|
785
|
-
*/
|
|
786
|
-
migrate: ({ migration_data }: {
|
|
787
|
-
migration_data: MigrationData;
|
|
788
|
-
}, txnOptions?: {
|
|
789
|
-
/**
|
|
790
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
791
|
-
*/
|
|
792
|
-
fee?: number;
|
|
793
|
-
/**
|
|
794
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
795
|
-
*/
|
|
796
|
-
timeoutInSeconds?: number;
|
|
797
|
-
/**
|
|
798
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
799
|
-
*/
|
|
800
|
-
simulate?: boolean;
|
|
801
|
-
}) => Promise<AssembledTransaction<null>>;
|
|
802
|
-
/**
|
|
803
|
-
* 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.
|
|
804
|
-
*/
|
|
805
|
-
authorizer: (txnOptions?: {
|
|
806
|
-
/**
|
|
807
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
808
|
-
*/
|
|
809
|
-
fee?: number;
|
|
810
|
-
/**
|
|
811
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
812
|
-
*/
|
|
813
|
-
timeoutInSeconds?: number;
|
|
814
|
-
/**
|
|
815
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
816
|
-
*/
|
|
817
|
-
simulate?: boolean;
|
|
818
|
-
}) => Promise<AssembledTransaction<string>>;
|
|
707
|
+
* 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.
|
|
708
|
+
*/
|
|
709
|
+
authorizer: (txnOptions?: {
|
|
710
|
+
/**
|
|
711
|
+
* The fee to pay for the transaction. Default: BASE_FEE
|
|
712
|
+
*/
|
|
713
|
+
fee?: number;
|
|
714
|
+
/**
|
|
715
|
+
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
716
|
+
*/
|
|
717
|
+
timeoutInSeconds?: number;
|
|
718
|
+
/**
|
|
719
|
+
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
720
|
+
*/
|
|
721
|
+
simulate?: boolean;
|
|
722
|
+
}) => Promise<AssembledTransaction<string>>;
|
|
819
723
|
/**
|
|
820
724
|
* 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.
|
|
821
725
|
* Calculates the total execution fee for a cross-chain message.
|
|
@@ -1009,9 +913,34 @@ export interface Client {
|
|
|
1009
913
|
*/
|
|
1010
914
|
simulate?: boolean;
|
|
1011
915
|
}) => Promise<AssembledTransaction<Option<string>>>;
|
|
916
|
+
/**
|
|
917
|
+
* Construct and simulate a pending_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.
|
|
918
|
+
* Returns the pending owner address for 2-step transfer, or None if no transfer is pending.
|
|
919
|
+
*/
|
|
920
|
+
pending_owner: (txnOptions?: {
|
|
921
|
+
/**
|
|
922
|
+
* The fee to pay for the transaction. Default: BASE_FEE
|
|
923
|
+
*/
|
|
924
|
+
fee?: number;
|
|
925
|
+
/**
|
|
926
|
+
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
927
|
+
*/
|
|
928
|
+
timeoutInSeconds?: number;
|
|
929
|
+
/**
|
|
930
|
+
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
931
|
+
*/
|
|
932
|
+
simulate?: boolean;
|
|
933
|
+
}) => Promise<AssembledTransaction<Option<string>>>;
|
|
1012
934
|
/**
|
|
1013
935
|
* Construct and simulate a transfer_ownership 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.
|
|
1014
|
-
* Transfers ownership to a new address.
|
|
936
|
+
* Transfers ownership immediately to a new address.
|
|
937
|
+
*
|
|
938
|
+
* Use with caution - if you transfer to a wrong address, ownership is lost forever.
|
|
939
|
+
* Consider using `propose_ownership_transfer` instead.
|
|
940
|
+
*
|
|
941
|
+
* # Panics
|
|
942
|
+
* - `OwnerNotSet` if no owner is currently set
|
|
943
|
+
* - `TransferInProgress` if a 2-step transfer is in progress
|
|
1015
944
|
*/
|
|
1016
945
|
transfer_ownership: ({ new_owner }: {
|
|
1017
946
|
new_owner: string;
|
|
@@ -1029,9 +958,71 @@ export interface Client {
|
|
|
1029
958
|
*/
|
|
1030
959
|
simulate?: boolean;
|
|
1031
960
|
}) => Promise<AssembledTransaction<null>>;
|
|
961
|
+
/**
|
|
962
|
+
* Construct and simulate a propose_ownership_transfer 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.
|
|
963
|
+
* Proposes an ownership transfer to a new address.
|
|
964
|
+
*
|
|
965
|
+
* The new owner must call `accept_ownership()` within `ttl` ledgers
|
|
966
|
+
* to complete the transfer. The pending transfer will automatically expire after.
|
|
967
|
+
*
|
|
968
|
+
* # Arguments
|
|
969
|
+
* - `new_owner` - The proposed new owner
|
|
970
|
+
* - `ttl` - Number of ledgers the new owner has to accept.
|
|
971
|
+
* Use `0` to cancel a pending transfer (new_owner must match pending).
|
|
972
|
+
*
|
|
973
|
+
* # Panics
|
|
974
|
+
* - `OwnerNotSet` if no owner is currently set
|
|
975
|
+
* - `NoPendingTransfer` when cancelling and no pending transfer exists
|
|
976
|
+
* - `InvalidTtl` if ttl exceeds max TTL
|
|
977
|
+
* - `InvalidPendingOwner` when cancelling with wrong new_owner address
|
|
978
|
+
*/
|
|
979
|
+
propose_ownership_transfer: ({ new_owner, ttl }: {
|
|
980
|
+
new_owner: string;
|
|
981
|
+
ttl: u32;
|
|
982
|
+
}, txnOptions?: {
|
|
983
|
+
/**
|
|
984
|
+
* The fee to pay for the transaction. Default: BASE_FEE
|
|
985
|
+
*/
|
|
986
|
+
fee?: number;
|
|
987
|
+
/**
|
|
988
|
+
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
989
|
+
*/
|
|
990
|
+
timeoutInSeconds?: number;
|
|
991
|
+
/**
|
|
992
|
+
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
993
|
+
*/
|
|
994
|
+
simulate?: boolean;
|
|
995
|
+
}) => Promise<AssembledTransaction<null>>;
|
|
996
|
+
/**
|
|
997
|
+
* Construct and simulate a accept_ownership 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.
|
|
998
|
+
* Accepts a pending 2-step ownership transfer.
|
|
999
|
+
*
|
|
1000
|
+
* Must be called by the pending owner before the TTL expires.
|
|
1001
|
+
*
|
|
1002
|
+
* # Panics
|
|
1003
|
+
* - `NoPendingTransfer` if there is no pending transfer (or it expired)
|
|
1004
|
+
*/
|
|
1005
|
+
accept_ownership: (txnOptions?: {
|
|
1006
|
+
/**
|
|
1007
|
+
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1008
|
+
*/
|
|
1009
|
+
fee?: number;
|
|
1010
|
+
/**
|
|
1011
|
+
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1012
|
+
*/
|
|
1013
|
+
timeoutInSeconds?: number;
|
|
1014
|
+
/**
|
|
1015
|
+
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1016
|
+
*/
|
|
1017
|
+
simulate?: boolean;
|
|
1018
|
+
}) => Promise<AssembledTransaction<null>>;
|
|
1032
1019
|
/**
|
|
1033
1020
|
* Construct and simulate a renounce_ownership 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.
|
|
1034
|
-
* Permanently renounces ownership.
|
|
1021
|
+
* Permanently renounces ownership.
|
|
1022
|
+
*
|
|
1023
|
+
* # Panics
|
|
1024
|
+
* - `OwnerNotSet` if no owner is currently set
|
|
1025
|
+
* - `TransferInProgress` if a 2-step transfer is in progress (cancel it first)
|
|
1035
1026
|
*/
|
|
1036
1027
|
renounce_ownership: (txnOptions?: {
|
|
1037
1028
|
/**
|
|
@@ -1047,6 +1038,86 @@ export interface Client {
|
|
|
1047
1038
|
*/
|
|
1048
1039
|
simulate?: boolean;
|
|
1049
1040
|
}) => Promise<AssembledTransaction<null>>;
|
|
1041
|
+
/**
|
|
1042
|
+
* 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.
|
|
1043
|
+
* The type of data required for migration.
|
|
1044
|
+
* Upgrades the contract to new WASM bytecode.
|
|
1045
|
+
* Sets a migration flag that must be cleared by calling `migrate`.
|
|
1046
|
+
*/
|
|
1047
|
+
upgrade: ({ new_wasm_hash }: {
|
|
1048
|
+
new_wasm_hash: Buffer;
|
|
1049
|
+
}, txnOptions?: {
|
|
1050
|
+
/**
|
|
1051
|
+
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1052
|
+
*/
|
|
1053
|
+
fee?: number;
|
|
1054
|
+
/**
|
|
1055
|
+
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1056
|
+
*/
|
|
1057
|
+
timeoutInSeconds?: number;
|
|
1058
|
+
/**
|
|
1059
|
+
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1060
|
+
*/
|
|
1061
|
+
simulate?: boolean;
|
|
1062
|
+
}) => Promise<AssembledTransaction<null>>;
|
|
1063
|
+
/**
|
|
1064
|
+
* 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.
|
|
1065
|
+
* Runs migration logic after an upgrade.
|
|
1066
|
+
* Can only be called when the migration flag is set by a previous `upgrade` call.
|
|
1067
|
+
*/
|
|
1068
|
+
migrate: ({ migration_data }: {
|
|
1069
|
+
migration_data: Buffer;
|
|
1070
|
+
}, txnOptions?: {
|
|
1071
|
+
/**
|
|
1072
|
+
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1073
|
+
*/
|
|
1074
|
+
fee?: number;
|
|
1075
|
+
/**
|
|
1076
|
+
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1077
|
+
*/
|
|
1078
|
+
timeoutInSeconds?: number;
|
|
1079
|
+
/**
|
|
1080
|
+
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1081
|
+
*/
|
|
1082
|
+
simulate?: boolean;
|
|
1083
|
+
}) => Promise<AssembledTransaction<null>>;
|
|
1084
|
+
/**
|
|
1085
|
+
* 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.
|
|
1086
|
+
* Permanently freezes the contract, preventing any future upgrades.
|
|
1087
|
+
* This action is irreversible.
|
|
1088
|
+
*/
|
|
1089
|
+
freeze: (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_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 the contract is frozen (upgrades disabled).
|
|
1106
|
+
*/
|
|
1107
|
+
is_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>>;
|
|
1050
1121
|
}
|
|
1051
1122
|
export declare class Client extends ContractClient {
|
|
1052
1123
|
readonly options: ContractClientOptions;
|
|
@@ -1066,8 +1137,6 @@ export declare class Client extends ContractClient {
|
|
|
1066
1137
|
}): Promise<AssembledTransaction<T>>;
|
|
1067
1138
|
constructor(options: ContractClientOptions);
|
|
1068
1139
|
readonly fromJSON: {
|
|
1069
|
-
upgrade: (json: string) => AssembledTransaction<null>;
|
|
1070
|
-
migrate: (json: string) => AssembledTransaction<null>;
|
|
1071
1140
|
authorizer: (json: string) => AssembledTransaction<string>;
|
|
1072
1141
|
get_fee: (json: string) => AssembledTransaction<bigint>;
|
|
1073
1142
|
version: (json: string) => AssembledTransaction<readonly [bigint, number]>;
|
|
@@ -1077,7 +1146,14 @@ export declare class Client extends ContractClient {
|
|
|
1077
1146
|
is_ttl_configs_frozen: (json: string) => AssembledTransaction<boolean>;
|
|
1078
1147
|
extend_instance_ttl: (json: string) => AssembledTransaction<null>;
|
|
1079
1148
|
owner: (json: string) => AssembledTransaction<Option<string>>;
|
|
1149
|
+
pending_owner: (json: string) => AssembledTransaction<Option<string>>;
|
|
1080
1150
|
transfer_ownership: (json: string) => AssembledTransaction<null>;
|
|
1151
|
+
propose_ownership_transfer: (json: string) => AssembledTransaction<null>;
|
|
1152
|
+
accept_ownership: (json: string) => AssembledTransaction<null>;
|
|
1081
1153
|
renounce_ownership: (json: string) => AssembledTransaction<null>;
|
|
1154
|
+
upgrade: (json: string) => AssembledTransaction<null>;
|
|
1155
|
+
migrate: (json: string) => AssembledTransaction<null>;
|
|
1156
|
+
freeze: (json: string) => AssembledTransaction<null>;
|
|
1157
|
+
is_frozen: (json: string) => AssembledTransaction<boolean>;
|
|
1082
1158
|
};
|
|
1083
1159
|
}
|