@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: 57119 bytes (55.78 KB)
|
|
11
10
|
*/
|
|
12
|
-
export declare const WASM_BASE64 = "AGFzbQEAAAABsAEdYAR+fn5+AX5gAn5+AX5gAX4BfmAAAX5gA35+fgF+YAN/f38AYAJ/fwF+YAJ+fgF/YAN/fn4AYAAAYAABf2ABfwBgAn9/AGABfwF+YAJ+fwBgAX4AYAJ/fgBgBH9/f38BfmABfgF/YAF/AX9gBX5/f39/AGACf38Bf2ADf39+AGAFfn5+fn4BfmAFf35/f34AYAh+fn5+fn5+fgF+YAJ+fgBgA35/fwF+YAN/f38BfwL9ASoBbAE3AAABbAExAAEBYQEwAAIBdgEzAAIBdgFkAAEBdgEyAAEBdgE2AAEBeAExAAEBdgFfAAMBdgExAAEBYgE4AAIBYgEzAAEBYgFlAAEBYgEwAAIBYwEwAAQBdgE4AAIBdgE5AAIBbAEyAAEBbAFfAAQBeAE3AAMBZAFfAAQBZAEwAAQBbAE2AAIBaQEwAAIBbQFhAAABdgFnAAEBYgFtAAQBaQE4AAIBaQE3AAIBaQE2AAEBaQFfAAIBYgFqAAEBbQE5AAQBeAEwAAEBeAEzAAMBeAE4AAMBbAEwAAEBbAE4AAEBeAE1AAIBaQEzAAEBaQE1AAIBaQE0AAIDogGgAQUGBwcHBwgJCgsMDQcDAwMLDgkLDw0LBRAIDgMQEAsFAhEPEg4DBgMMDgwKDBITAwMSChIKDRIMEBQQEAwIEAgQBBAMAhUQEBADAgkCFgEBCwsBAQsBDwQBDwEPDwIDAwIDAgICAwMDAwIDFxgIFwEMBgECFwMZDwABAgsCAwMBEAoFDQMMAwMBAwEDAhoBCQgDAwkQExsFEBAFDAwQHBwEBQFwAQEBBQMBABEGIQR/AUGAgMAAC38AQeCDwAALfwBBgI3AAAt/AEGAjcAACwf6BjMGbWVtb3J5AgAMX19jaGVja19hdXRoAGsKc2V0X3BhdXNlZAB2GXNldF9zdXBwb3J0ZWRfbWVzc2FnZV9saWIAeA1zZXRfYWxsb3dsaXN0AHkMc2V0X2RlbnlsaXN0AHwac2V0X2RlZmF1bHRfbXVsdGlwbGllcl9icHMAfRNzZXRfZGVwb3NpdF9hZGRyZXNzAH8ac2V0X3N1cHBvcnRlZF9vcHRpb25fdHlwZXMAgQESc2V0X3dvcmtlcl9mZWVfbGliAIIBDnNldF9wcmljZV9mZWVkAIQBCGlzX2FkbWluAIcBBmFkbWlucwCIAQZwYXVzZWQAiQEYaXNfc3VwcG9ydGVkX21lc3NhZ2VfbGliAIoBDG1lc3NhZ2VfbGlicwCLAQ9pc19vbl9hbGxvd2xpc3QAjAEOaXNfb25fZGVueWxpc3QAjQEHaGFzX2FjbACOAQ5hbGxvd2xpc3Rfc2l6ZQCPARZkZWZhdWx0X211bHRpcGxpZXJfYnBzAJABD2RlcG9zaXRfYWRkcmVzcwCRAQpwcmljZV9mZWVkAJIBGmdldF9zdXBwb3J0ZWRfb3B0aW9uX3R5cGVzAJMBDndvcmtlcl9mZWVfbGliAJQBCmFzc2lnbl9qb2IAlQEHZ2V0X2ZlZQCYAQ5zZXRfZHN0X2NvbmZpZwCcAQpkc3RfY29uZmlnAJ0BC25hdGl2ZV9kcm9wAJ4BCGVuZHBvaW50AJ8BDV9fY29uc3RydWN0b3IAoAEOd2l0aGRyYXdfdG9rZW4AogEJc2V0X2FkbWluAKMBB3VwZ3JhZGUApAEHbWlncmF0ZQCmAQphdXRob3JpemVyAKgBD3NldF90dGxfY29uZmlncwCpAQt0dGxfY29uZmlncwCuARJmcmVlemVfdHRsX2NvbmZpZ3MAsAEVaXNfdHRsX2NvbmZpZ3NfZnJvemVuALEBE2V4dGVuZF9pbnN0YW5jZV90dGwAsgEFb3duZXIAswENcGVuZGluZ19vd25lcgC1ARJ0cmFuc2Zlcl9vd25lcnNoaXAAtgEacHJvcG9zZV9vd25lcnNoaXBfdHJhbnNmZXIAuAEQYWNjZXB0X293bmVyc2hpcAC7ARJyZW5vdW5jZV9vd25lcnNoaXAAvAEBXwMBCl9fZGF0YV9lbmQDAgtfX2hlYXBfYmFzZQMDCr6qAaABJwBBACAAEKuAgIAAQgEgAa1CIIZCBIQgAq1CIIZCBIQQgICAgAAaC5sBAgF/AX4jgICAgABBEGsiAiSAgICAAAJAAkACQAJAIABBAXFFDQAgAkGNg8CAAEEIEMGAgIAAIAIoAgANAiACIAIpAwgQwoCAgAAMAQsgAkGEg8CAAEEJEMGAgIAAIAIoAgANASACIAIpAwggAa1CIIZCBIQQw4CAgAALIAIpAwghAyACKQMAUA0BCwALIAJBEGokgICAgAAgAwsPACAAIAEQrYCAgABBAXMLogEBA38jgICAgABBEGsiAiSAgICAAAJAAkACQCAAQv8Bg0IOUg0AIAFC/wGDQg5RDQELIAAgARChgICAAFAhAwwBCyACIAFCCIg3AwggAiAAQgiINwMAAkADQCACEL+BgIAAIQMgAkEIahC/gYCAACEEIANBgIDEAEYNASADIARGDQALQQAhAwwBCyAEQYCAxABGIQMLIAJBEGokgICAgAAgAwsPACAAIAEQr4CAgABBAXMLDQAgACABEKGAgIAAUAs3AQF+QgAhAwJAAkAgAUICUQ0AIAGnQQFxDQEgACACNwMIQgEhAwsgACADNwMADwsQsYCAgAAACwkAEL2BgIAAAAuLAQICfwF+I4CAgIAAQRBrIgAkgICAgAAgAEEEahCzgICAAAJAIAAoAgRBAUcNACAAKAIIIAAoAgwQtICAgAALQQAhAQJAQQAQtYCAgAAiAkICELaAgIAARQ0AQQEhAQJAAkAgAkICEIGAgIAAp0H/AXEOAgECAAsAC0EAIQELIABBEGokgICAgAAgAQsMACAAQQEQxYGAgAALGwAgAK1CIIZCBIQgAa1CIIZCBIQQpYCAgAAaC8IBAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQAJAAkACQCAAQf8BcQ4DAAECAAsgAUHuhsCAAEEGEMGAgIAAIAEoAgANAyABIAEpAwgQwoCAgAAMAgsgAUH0hsCAAEEIEMGAgIAAIAEoAgANAiABIAEpAwgQwoCAgAAMAQsgAUH8hsCAAEEKEMGAgIAAIAEoAgANASABIAEpAwgQwoCAgAALIAEpAwghAiABKQMAUA0BCwALIAFBEGokgICAgAAgAgsPACAAIAEQpICAgABCAVELFQEBfhC4gICAACIAEIKAgIAAGiAAC2YCAX8BfiOAgICAAEEQayIAJICAgIAAIAAQs4CAgAACQCAAKAIAQQFHDQAgACgCBCAAKAIIELSAgIAACyAAELqAgIAAIAApAwghASAAKQMAQYoIELuAgIAAIABBEGokgICAgAAgAQtKAgF/AX4jgICAgABBEGsiACSAgICAACAAELqAgIAAIAApAwghASAAKQMAQYoIELuAgIAAIAEQgoCAgAAaIABBEGokgICAgAAgAQtQAQF/I4CAgIAAQRBrIgEkgICAgAAgAUEEahCzgICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQtICAgAALIAAQwICAgAAgAUEQaiSAgICAAAspAAJAIACnQQFxRQ0ADwsgAUH6d2qtQiCGQoOAgIDggAF8EL6AgIAAAAtCAQF/I4CAgIAAQRBrIgAkgICAgAAgABC9gICAAAJAIAApAwBQDQBCg4CAgLCBARC+gICAAAALIABBEGokgICAgAALkwECAX8CfiOAgICAAEEQayIBJICAgIAAIAFBBGoQs4CAgAACQCABKAIEQQFHDQAgASgCCCABKAIMELSAgIAAC0IAIQICQAJAQQEQv4CAgAAiA0IAELaAgIAARQ0AIANCABCBgICAACICQv8Bg0LNAFINASAAIAI3AwhCASECCyAAIAI3AwAgAUEQaiSAgICAAA8LAAsLACAAEKaAgIAAGguSAQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQCAAQQFxRQ0AIAFBgYbAgABBDBDBgICAACABKAIADQIgASABKQMIEMKAgIAADAELIAFB/IXAgABBBRDBgICAACABKAIADQEgASABKQMIEMKAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILTQECfkIAIQECQAJAQQAQv4CAgAAiAkICELaAgIAARQ0AIAJCAhCBgICAACIBQv8Bg0LNAFINASAAIAE3AwhCASEBCyAAIAE3AwAPCwALUQIBfwF+I4CAgIAAQRBrIgMkgICAgAAgAyABIAIQwYGAgABCASEEAkAgAygCAA0AIAAgAykDCDcDCEIAIQQLIAAgBDcDACADQRBqJICAgIAAC0QBAX8jgICAgABBEGsiAiSAgICAACACIAE3AwggAkEIakEBEJuBgIAAIQEgAEIANwMAIAAgATcDCCACQRBqJICAgIAAC0gBAX8jgICAgABBEGsiAySAgICAACADIAI3AwggAyABNwMAIANBAhCbgYCAACECIABCADcDACAAIAI3AwggA0EQaiSAgICAAAv2AgMBfwF+AX8jgICAgABBMGsiAiSAgICAABDFgICAACEDAkACQAJAAkACQAJAIAENACADEIOAgIAAQv////8fWA0BIAJBCGogAyAAEISAgIAAEMaAgIAAIAIoAggiBEECRg0CIARBAXFFDQMgAigCDCIEIAMQg4CAgABCIIinTw0FIAMgBK1CIIZCBIQQhYCAgAAhAwwFCyADIAAQhICAgABCAlENA0KDgICAgJYBEL6AgIAAAAtCg4CAgMCWARC+gICAAAALELGAgIAAAAtCg4CAgJCWARC+gICAAAALIAMgABCGgICAACEDCyACQQo2AiAgAkEgaiADEMeAgIAAIAJBFGoQyICAgAACQCACKAIUQQFHDQAgAkEgaiACKAIYIAIoAhwQyYCAgAALQo7mrrnqjOTVOBDKgICAACEDIAIgADcDKCACIAGtNwMgIANBnIfAgABBAiACQSBqQQIQy4CAgAAQh4CAgAAaIAJBMGokgICAgAALrAECAX8DfiOAgICAAEEwayIAJICAgIAAIABBEGoQs4CAgAACQCAAKAIQQQFHDQAgACgCFCAAKAIYELSAgIAACyAAQQo2AhAgACAAQRBqENSAgIAAAkAgACkDACIBUA0AIABBJGoQyICAgAAgACgCJEEBRw0AIABBEGogACgCKCAAKAIsEMmAgIAACyAAKQMIIQIQiICAgAAhAyAAQTBqJICAgIAAIAIgAyABpxsLPQECfwJAAkAgAUICUg0AQQAhAgwBC0EBQQIgAUL/AYNCBFEbIQIgAUIgiKchAwsgACADNgIEIAAgAjYCAAsVACAAEN+AgIAAIAFCARCSgICAABoLDAAgAEECEMWBgIAACyUAIAAQ34CAgABCASABrUIghkIEhCACrUIghkIEhBCAgICAABoLYwMBfwF+AX8jgICAgABBEGsiASSAgICAACABIAA3AwBCAiECQQEhAwJAA0AgA0UNASADQX9qIQMgACECDAALCyABIAI3AwggAUEIakEBEJuBgIAAIQAgAUEQaiSAgICAACAACy4AAkAgASADRg0AAAsgAK1CIIZCBIQgAq1CIIZCBIQgAa1CIIZCBIQQoICAgAALJwAgABCCgICAABoCQCAAEM2AgIAADQBCg4CAgPCXARC+gICAAAALC10BAX8jgICAgABBEGsiASSAgICAACABQQRqELOAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBC0gICAAAsQxYCAgAAgABCEgICAACEAIAFBEGokgICAgAAgAEICUgvRAgMBfwJ+AX8jgICAgABBMGsiAiSAgICAABDPgICAACIDIAAQhICAgAAhBAJAAkACQAJAAkAgAQ0AIAJBCGogBBDGgICAACACKAIIIgVBAkYNASAFQQFxRQ0CIAIoAgwiBSADEIOAgIAAQiCIp08NBCADIAWtQiCGQgSEEIWAgIAAIQMMBAsgBEICUQ0CQoOAgIDglgEQvoCAgAAACxCxgICAAAALQoOAgIDwlgEQvoCAgAAACyADIAAQhoCAgAAhAwsgAkEGNgIgIAJBIGogAxDHgICAACACQRRqEMiAgIAAAkAgAigCFEEBRw0AIAJBIGogAigCGCACKAIcEMmAgIAAC0Gsh8CAAEEZENCAgIAAEMqAgIAAIQMgAiABrTcDKCACIAA3AyAgA0Hch8CAAEECIAJBIGpBAhDLgICAABCHgICAABogAkEwaiSAgICAAAusAQIBfwN+I4CAgIAAQTBrIgAkgICAgAAgAEEQahCzgICAAAJAIAAoAhBBAUcNACAAKAIUIAAoAhgQtICAgAALIABBBjYCECAAIABBEGoQ1ICAgAACQCAAKQMAIgFQDQAgAEEkahDIgICAACAAKAIkQQFHDQAgAEEQaiAAKAIoIAAoAiwQyYCAgAALIAApAwghAhCIgICAACEDIABBMGokgICAgAAgAiADIAGnGwtFAgF/AX4jgICAgABBEGsiAiSAgICAACACIAAgARDBgYCAAAJAIAIoAgBBAUcNAAALIAIpAwghAyACQRBqJICAgIAAIAMLdQIBfwF+I4CAgIAAQSBrIgAkgICAgAAgAEEQahCzgICAAAJAIAAoAhBBAUcNACAAKAIUIAAoAhgQtICAgAALIABBAjYCECAAIABBEGoQ0oCAgAAgACkDCCEBIAApAwBBvQkQ04CAgAAgAEEgaiSAgICAACABC00BAn5CACECAkACQCABEN+AgIAAIgNCAhC2gICAAEUNACADQgIQgYCAgAAiAkL/AYNCzQBSDQEgACACNwMIQgEhAgsgACACNwMADwsACykAAkAgAKdBAXFFDQAPCyABQdB2aq1CIIZCg4CAgICWAXwQvoCAgAAAC00BAn5CACECAkACQCABEN+AgIAAIgNCARC2gICAAEUNACADQgEQgYCAgAAiAkL/AYNCywBSDQEgACACNwMIQgEhAgsgACACNwMADwsAC3cBA38jgICAgABBIGsiACSAgICAACAAQRBqELOAgIAAAkAgACgCEEEBRw0AIAAoAhQgACgCGBC0gICAAAsgAEEJNgIQIABBCGogAEEQahDWgICAACAAKAIIIQEgACgCDCECIABBIGokgICAgAAgAkEAIAFBAXEbC1oCAX4BfwJAAkACQCABEN+AgIAAIgJCAhC2gICAAA0AQQAhAQwBCyACQgIQgYCAgAAiAkL/AYNCBFINASACQiCIpyEDQQEhAQsgACADNgIEIAAgATYCAA8LAAuMAQECfyOAgICAAEEgayIBJICAgIAAIAEQs4CAgAACQCABKAIAQQFHDQAgASgCBCABKAIIELSAgIAACyABQQg2AgAgASAANwMIAkAgARDYgICAACICRQ0AIAFBFGoQyICAgAAgASgCFEEBRw0AIAEgASgCGCABKAIcEMmAgIAACyABQSBqJICAgIAAIAILEgAgABDfgICAAEIBELaAgIAAC3UCAX8BfiOAgICAAEEgayIAJICAgIAAIABBEGoQs4CAgAACQCAAKAIQQQFHDQAgACgCFCAAKAIYELSAgIAACyAAQQM2AhAgACAAQRBqENKAgIAAIAApAwghASAAKQMAQcEJENOAgIAAIABBIGokgICAgAAgAQt1AgF/AX4jgICAgABBIGsiACSAgICAACAAQRBqELOAgIAAAkAgACgCEEEBRw0AIAAoAhQgACgCGBC0gICAAAsgAEEBNgIQIAAgAEEQahDSgICAACAAKQMIIQEgACkDAEG1CRDTgICAACAAQSBqJICAgIAAIAELjAEBAn8jgICAgABBIGsiASSAgICAACABELOAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBC0gICAAAsgAUEHNgIAIAEgADcDCAJAIAEQ2ICAgAAiAkUNACABQRRqEMiAgIAAIAEoAhRBAUcNACABIAEoAhggASgCHBDJgICAAAsgAUEgaiSAgICAACACC3cBA38jgICAgABBIGsiACSAgICAACAAQRBqELOAgIAAAkAgACgCEEEBRw0AIAAoAhQgACgCGBC0gICAAAsgAEEENgIQIABBCGogAEEQahDWgICAACAAKAIIIQEgACgCDCECIABBIGokgICAgAAgAkEAIAFBAXEbC10BAX8jgICAgABBEGsiASSAgICAACABQQRqELOAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBC0gICAAAsQz4CAgAAgABCEgICAACEAIAFBEGokgICAgAAgAEICUguPAQICfwF+I4CAgIAAQRBrIgAkgICAgAAgABCzgICAAAJAIAAoAgBBAUcNACAAKAIEIAAoAggQtICAgAALQQAhASAAQQA2AgACQCAAEN+AgIAAIgJCAhC2gICAAEUNAEEBIQECQAJAIAJCAhCBgICAAKdB/wFxDgIBAgALAAtBACEBCyAAQRBqJICAgIAAIAELpgQCAX8BfiOAgICAAEEQayIBJICAgIAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIADgsAAQIDBAUGBwgJCgALIAFBgIzAgABBBhDBgICAACABKAIADQsgASABKQMIEMKAgIAADAoLIAFBhozAgABBDhDBgICAACABKAIADQogASABKQMIEMKAgIAADAkLIAFBlIzAgABBCRDBgICAACABKAIADQkgASABKQMIEMKAgIAADAgLIAFBnYzAgABBDBDBgICAACABKAIADQggASABKQMIEMKAgIAADAcLIAFBqYzAgABBFBDBgICAACABKAIADQcgASABKQMIEMKAgIAADAYLIAFBvYzAgABBFBDBgICAACABKAIADQYgASABKQMIIAA1AgRCIIZCBIQQw4CAgAAMBQsgAUHRjMCAAEELEMGAgIAAIAEoAgANBSABIAEpAwgQwoCAgAAMBAsgAUHcjMCAAEEJEMGAgIAAIAEoAgANBCABIAEpAwggACkDCBDDgICAAAwDCyABQeWMwIAAQQgQwYCAgAAgASgCAA0DIAEgASkDCCAAKQMIEMOAgIAADAILIAFB7YzAgABBDRDBgICAACABKAIADQIgASABKQMIEMKAgIAADAELIAFB+ozAgABBBhDBgICAACABKAIADQEgASABKQMIEMKAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILfAECfyOAgICAAEEQayIBJICAgIAAIAFBBGoQs4CAgAACQCABKAIEQQFHDQAgASgCCCABKAIMELSAgIAACwJAAkAgABDXgICAAEUNAEEAIQIMAQsCQBDVgICAAA0AQQEhAgwBCyAAENuAgIAAIQILIAFBEGokgICAgAAgAgtpAgF/AX4CQCABKAIIIgIgASgCDEkNACAAQgI3AwAPCyABKQMAIAKtQiCGQgSEEImAgIAAIQMCQCACQQFqIgJFDQAgACADNwMIIAEgAjYCCCAAIANC/wGDQs0AUq03AwAPCxCxgICAAAAL3AICAn8GfiOAgICAAEHQAGsiAiSAgICAAEEAIQMCQANAIANBKEYNASACQQhqIANqQgI3AwAgA0EIaiEDDAALC0IAIQRCASEFAkAgAUL/AYNCzABSDQAgAUHIgcCAAEEFIAJBCGpBBRDjgICAACACQTBqIAIpAwgQ5ICAgAAgAigCMEEBRg0AIAIpA0ghASACKQNAIQYgAkEwaiACKQMQEOWAgIAAIAIoAjANACACKQM4IQcgAkEwaiACKQMYEOWAgIAAIAIoAjANACACKQMgIghC/wGDQgRSDQAgAikDOCEJIAJBMGogAikDKBDkgICAACACKAIwQQFGDQAgAikDQCEEIAAgAikDSDcDKCAAIAQ3AyAgACABNwMYIAAgBjcDECAAIAhCIIinNgJAIAAgBzcDOCAAIAk3AzBCACEFQgAhBAsgACAFNwMAIAAgBDcDCCACQdAAaiSAgICAAAsxAAJAIAIgBEYNAAALIAAgAa1CIIZCBIQgA61CIIZCBIQgAq1CIIZCBIQQmICAgAAaC3sCAX8BfgJAAkACQCABp0H/AXEiAkHEAEYNACACQQpHDQFCACEDIABCADcDGCAAIAFCCIg3AxAMAgsgARCogICAACEDIAEQqYCAgAAhASAAIAM3AxggACABNwMQQgAhAwwBCyAAQoOQgICAATcDCEIBIQMLIAAgAzcDAAtdAgF/AX4CQAJAIAGnQf8BcSICQcAARg0AAkAgAkEGRg0AQgEhA0KDkICAgAEhAQwCCyABQgiIIQFCACEDDAELQgAhAyABEJeAgIAAIQELIAAgAzcDACAAIAE3AwgL/AECAX8FfiOAgICAAEEwayICJICAgIAAIAJBCGogASkDACABKQMIEOeAgIAAQgEhAwJAIAIoAggNACACKQMQIQQgAkEIaiABKQMoEOiAgIAAIAIoAggNACACKQMQIQUgAkEIaiABKQMgEOiAgIAAIAIoAggNACACKQMQIQYgATUCMCEHIAJBCGogASkDECABKQMYEOeAgIAAIAIoAggNACACIAIpAxA3AyggAiAGNwMYIAIgBTcDECACIAQ3AwggAiAHQiCGQgSENwMgIABByIHAgABBBSACQQhqQQUQy4CAgAA3AwhCACEDCyAAIAM3AwAgAkEwaiSAgICAAAtGAAJAAkAgAUL//////////wBWIAJCAFIgAlAbDQAgAUIIhkIKhCECDAELIAIgARCngICAACECCyAAQgA3AwAgACACNwMIC0IBAX8jgICAgABBEGsiAiSAgICAACACIAEQvoGAgAAgAikDCCEBIAAgAikDADcDACAAIAE3AwggAkEQaiSAgICAAAuBAQECfyOAgICAAEEgayIDJICAgIAAAkACQCABp0EBcQ0AIABCgYCAgDA3AwAMAQsgAyACEOqAgIAAAkACQCADKAIAQQFHDQAgAEEDNgIEQQEhBAwBCyAAIAMpAxg3AxggACADKQMQNwMQQQAhBAsgACAENgIACyADQSBqJICAgIAAC30CAX8BfgJAAkACQAJAIAGnQf8BcSICQcUARg0AIAJBC0cNAiAAIAFCP4c3AxggACABQgiHNwMQDAELIAEQm4CAgAAhAyABEJyAgIAAIQEgACADNwMYIAAgATcDEAtCACEBDAELIABCg5CAgIABNwMIQgEhAQsgACABNwMAC64NBQF/AX4BfwN+AX8jgICAgABBwABrIgMkgICAgAAgA0EQaiAAEOyAgIAAAkAgAygCEEEBRg0AIAMpAxghBEEAIQUCQANAIAVBEEYNASADQTBqIAVqQgI3AwAgBUEIaiEFDAALCyABQv8Bg0LMAFINACABQfSCwIAAQQIgA0EwakECEOOAgIAAIANBEGogAykDMBDsgICAACADKAIQDQAgAykDOCIBQv8Bg0LIAFINACADKQMYIQAgARCKgICAAEKAgICAcINCgICAgIAIUg0AIAJC/wGDQssAUg0AIANBEGoQs4CAgAACQCADKAIQQQFHDQAgAygCFCADKAIYELSAgIAAC0Hgg8CAAK1CIIZCBIRChICAgMABEIuAgIAAIAAQjICAgAAQjYCAgAAiBkL/AYNCzQBSDQACQAJAIAYQzYCAgAANAEKDgICAICEBDAELIAAgBCABEI6AgIAAGgJAAkACQAJAIAIQg4CAgABC/////y9WDQAgAhCDgICAAEKAgICAEFQNACACEI+AgIAAIgFC/wGDQssAUg0FIAEQg4CAgAAhACADQQA2AgggAyABNwMAIAMgAEIgiD4CDCADQRBqIAMQ7YCAgAAgAykDECIBQgJRDQUgAadBAXENBQJAIAMpAxgiAadB/wFxIgVBygBGDQAgBUEORw0GCwJAAkACQAJAAkAgARDugICAAEIgiKcOAwABAgoLIAMoAgggAygCDBDvgICAAEEBSw0JIANBMGogAxDtgICAACADKQMwIgFCAlENCSABp0EBcQ0JIANBEGogAykDOBDwgICAACADKAIQQQFGDQkgAykDKCEGIAMpAxghACADKQMgIgFBpILAgABBEBDQgICAABCtgICAAA0DIAFBtILAgABBEBDQgICAABCtgICAAA0DAkAgAUHEgsCAAEEKENCAgIAAEKyAgIAARQ0AIAFBzoLAgABBChDQgICAABCsgICAAA0FCyAGEIOAgIAAQv////8PVg0CIANBAzYCFAwGCyADKAIIIAMoAgwQ74CAgABBAUsNCCADQTBqIAMQ7YCAgAAgAykDMCIBQgJRDQggAadBAXENCCADQRBqIAMpAzgQ8YCAgAAgAygCEEUNAwwICyADKAIIIAMoAgwQ74CAgABBAUsNByADQTBqIAMQ7YCAgAAgAykDMCIBQgJRDQcgAadBAXENByADQRBqIAMpAzgQ8oCAgAAgAygCEA0HDAILIANBEGpCASAGEJCAgIAAEOmAgIAAIAMoAhBBAXENAyADKQMoIQEgAykDICEAIAIQg4CAgABCIIghBgJAIAAgAYRCAFINACAGQgFSDQIMAwsgBkICUg0BAkACQCACEIOAgIAAQoCAgIAgVA0AIAJChICAgBAQiYCAgAAiAkL/AYNCywBSDQggAhCDgICAACEGIANBADYCCCADIAI3AwAgAyAGQiCIPgIMIANBEGogAxDtgICAACADKQMQIgJCAlENCCACp0EBcQ0IAkAgAykDGCICp0H/AXEiBUHKAEYNACAFQQ5HDQkLAkACQAJAIAIQ7oCAgABCIIinDgMAAQILCyADKAIIIAMoAgwQ74CAgABBAUsNCiADQTBqIAMQ7YCAgAAgAykDMCICQgJRDQogAqdBAXENCiADQRBqIAMpAzgQ8ICAgAAgAygCEEEBRg0KIAMpAyAhBiADKQMYIQQgAykDKCECEPOAgIAAEPSAgIAAIQcgAhCDgICAAEL/////L1YNAyADQQM2AhQMBwsgAygCCCADKAIMEO+AgIAAQQFLDQkgA0EwaiADEO2AgIAAIAMpAzAiAUICUQ0JIAGnQQFxDQkgA0EQaiADKQM4EPGAgIAAIAMoAhANCQwECyADKAIIIAMoAgwQ74CAgABBAUsNCCADQTBqIAMQ7YCAgAAgAykDMCIBQgJRDQggAadBAXENCCADQRBqIAMpAzgQ8oCAgAAgAygCEA0IDAMLEPWAgIAAAAsgA0EQakIBIAJChICAgCAQiYCAgAAQ6YCAgAAgAygCEEEBcQ0DIAMpAyghAiADKQMgIQhBAyEFIAZB2ILAgABBCBDQgICAABCsgICAAA0EIAQgBxCugICAACEJIAggAIUgAiABhYRCAFINBCAJRQ0CDAQLIAIQg4CAgABCgICAgHCDQoCAgIAQUg0AIAAQ84CAgAAQroCAgABFDQELQoOAgIAwIQEMAwtCAiEBDAILIAMoAhQhBQsgBUF/aq1CIIZCg4CAgBB8IQELIANBwABqJICAgIAAIAEPCwALQgEBfkIBIQICQCABQv8Bg0LIAFINACABEIqAgIAAQoCAgIBwg0KAgICAgARSDQAgACABNwMIQgAhAgsgACACNwMAC0oCAX4Bf0ICIQICQCABKAIIIgMgASgCDE8NACAAIAEpAwAgA61CIIZCBIQQiYCAgAA3AwggASADQQFqNgIIQgAhAgsgACACNwMACxIAIABBuIDAgABBAxDAgYCAAAsZAAJAIAEgAEkNACABIABrDwsQsYCAgAAAC9MBAgJ/A34jgICAgABBIGsiAiSAgICAAEEAIQMCQANAIANBGEYNASACQQhqIANqQgI3AwAgA0EIaiEDDAALC0IBIQQCQCABQv8Bg0LMAFINACABQYSEwIAAQQMgAkEIakEDEOOAgIAAIAIpAwgiAUL/AYNCywBSDQAgAikDECIFQv8Bg0LNAFINAAJAIAIpAxgiBqdB/wFxIgNBygBGDQAgA0EORw0BCyAAIAE3AxggACAGNwMQIAAgBTcDCEIAIQQLIAAgBDcDACACQSBqJICAgIAAC74BAgJ/AX4jgICAgABBIGsiAiSAgICAAEEAIQMCQANAIANBEEYNASACIANqQgI3AwAgA0EIaiEDDAALC0IBIQQCQCABQv8Bg0LMAFINACABQayEwIAAQQIgAkECEOOAgIAAIAJBEGogAikDABDCgYCAACACKAIQDQAgAikDGCEBIAJBEGogAikDCBDsgICAACACKAIQDQAgACACKQMYNwMQIAAgATcDCEIAIQQLIAAgBDcDACACQSBqJICAgIAAC+ABAgJ/An4jgICAgABBMGsiAiSAgICAAEEAIQMCQANAIANBGEYNASACQQhqIANqQgI3AwAgA0EIaiEDDAALC0IBIQQCQCABQv8Bg0LMAFINACABQcyEwIAAQQMgAkEIakEDEOOAgIAAIAIpAwgiAUL/AYNCywBSDQAgAkEgaiACKQMQEMKBgIAAIAIoAiANACACKQMoIQUgAkEgaiACKQMYEOyAgIAAIAIoAiANACACKQMoIQQgACABNwMYIAAgBDcDECAAIAU3AwhCACEECyAAIAQ3AwAgAkEwaiSAgICAAAuHAQIBfwF+I4CAgIAAQRBrIgAkgICAgAAgAEEEahCzgICAAAJAIAAoAgRBAUcNACAAKAIIIAAoAgwQtICAgAALAkACQEEBIAAQq4CAgAAiAUICELaAgIAARQ0AIAFCAhCBgICAACIBQv8Bg0LNAFENAQALEPWAgIAAAAsgAEEQaiSAgICAACABCzYAAkAgAEG8g8CAAEEMENCAgIAAEIiAgIAAEJSAgIAAIgBC/wGDQs0AUQ0AELGAgIAAAAsgAAsJABCxgICAAAALnQICAn8BfiOAgICAAEEQayIBJICAgIAAAkACQEEBIACnQf8BcSICQQBHQQF0IAJBAUYbIgJBAkYNACABELOAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBC0gICAAAsQt4CAgAAhABDegICAACACc0EBcUUNASABQQA2AgAgASACQgIQ94CAgAACQAJAIAJBAXENAEKO0qrc7qzP9QAQyoCAgAAhAyABIAA3AwAgA0HQiMCAAEEBIAFBARDLgICAABCHgICAABoMAQtCjtKq3O6sAxDKgICAACEDIAEgADcDACADQcCIwIAAQQEgAUEBEMuAgIAAEIeAgIAAGgsgAUEQaiSAgICAAEICDwsAC0KDgICAwJcBEL6AgIAAAAsaACAAEN+AgIAAIAGtQv8BgyACEJKAgIAAGguNAQECfyOAgICAAEEQayICJICAgIAAAkAgAEL/AYNCzQBSDQBBASABp0H/AXEiA0EAR0EBdCADQQFGGyIDQQJGDQAgAkEEahCzgICAAAJAIAIoAgRBAUcNACACKAIIIAIoAgwQtICAgAALELeAgIAAGiAAIANBAXEQzoCAgAAgAkEQaiSAgICAAEICDwsAC6MDAQN/I4CAgIAAQSBrIgIkgICAgAACQAJAAkACQCAAQv8Bg0LNAFINAEEBIAGnQf8BcSIDQQBHQQF0IANBAUYbIgNBAkYNACACQRBqELOAgIAAAkAgAigCEEEBRw0AIAIoAhQgAigCGBC0gICAAAsQt4CAgAAaIAAQ24CAgAAhBAJAAkAgA0EBcQ0AIARFDQMgAkEHNgIQIAIgADcDGCACQRBqEN+AgIAAQgEQkYCAgAAaENWAgIAAIgRFDQUgBEF/aiEEDAELIAQNAyACQQc2AhAgAiAANwMYIAJBEGoQ+oCAgAAgAkEEahDIgICAAAJAIAIoAgRBAUcNACACQRBqIAIoAgggAigCDBDJgICAAAsQ1YCAgABBAWoiBEUNBAsgBBD7gICAAEHsh8CAAEENENCAgIAAEMqAgIAAIQEgAiAANwMYIAIgA603AxAgAUGEiMCAAEECIAJBEGpBAhDLgICAABCHgICAABogAkEgaiSAgICAAEICDwsAC0KDgICAoJcBEL6AgIAAAAtCg4CAgKCWARC+gICAAAALELGAgIAAAAsOACAAQQFCARD3gICAAAsxAQF/I4CAgIAAQRBrIgEkgICAgAAgAUEJNgIAIAEgABDGgYCAACABQRBqJICAgIAAC+4CAQN/I4CAgIAAQSBrIgIkgICAgAACQAJAAkAgAEL/AYNCzQBSDQBBASABp0H/AXEiA0EAR0EBdCADQQFGGyIDQQJGDQAgAkEQahCzgICAAAJAIAIoAhBBAUcNACACKAIUIAIoAhgQtICAgAALELeAgIAAGiAAENeAgIAAIQQCQAJAIANBAXENACAERQ0DIAJBCDYCECACIAA3AxggAkEQahDfgICAAEIBEJGAgIAAGgwBCyAEDQMgAkEINgIQIAIgADcDGCACQRBqEPqAgIAAIAJBBGoQyICAgAAgAigCBEEBRw0AIAJBEGogAigCCCACKAIMEMmAgIAAC0GUiMCAAEEMENCAgIAAEMqAgIAAIQEgAiAANwMYIAIgA603AxAgAUGoiMCAAEECIAJBEGpBAhDLgICAABCHgICAABogAkEgaiSAgICAAEICDwsAC0KDgICAsJcBEL6AgIAAAAtCg4CAgLCWARC+gICAAAALegEBfyOAgICAAEEQayICJICAgIAAAkAgAEL/AYNCzQBSDQAgAUL/AYNCBFINACACQQRqELOAgIAAAkAgAigCBEEBRw0AIAIoAgggAigCDBC0gICAAAsgABDMgICAACABQiCIpxD+gICAACACQRBqJICAgIAAQgIPCwALcgIBfwF+I4CAgIAAQRBrIgEkgICAgAAgAUEENgIAIAEgABDGgYCAAEHYiMCAAEEaENCAgIAAEMqAgIAAIQIgASAArUIghkIEhDcDACACQYCJwIAAQQEgAUEBEMuAgIAAEIeAgIAAGiABQRBqJICAgIAAC6wBAQF/I4CAgIAAQRBrIgIkgICAgAACQCAAQv8Bg0LNAFINACABQv8Bg0LNAFINACACELOAgIAAAkAgAigCAEEBRw0AIAIoAgQgAigCCBC0gICAAAsgABDMgICAACABEICBgIAAQYiJwIAAQRMQ0ICAgAAQyoCAgAAhACACIAE3AwAgAEGsicCAAEEBIAJBARDLgICAABCHgICAABogAkEQaiSAgICAAEICDwsACzEBAX8jgICAgABBEGsiASSAgICAACABQQE2AgAgASAAEMeBgIAAIAFBEGokgICAgAALlwIBAX8jgICAgABBIGsiAySAgICAAAJAIABC/wGDQs0AUg0AIAFC/wGDQgRSDQAgAkL/AYNCyABSDQAgA0EQahCzgICAAAJAIAMoAhBBAUcNACADKAIUIAMoAhgQtICAgAALIAAQzICAgAAgA0EFNgIQIAMgAUIgiD4CFCADQRBqEN+AgIAAIAJCARCSgICAABogA0EEahDIgICAAAJAIAMoAgRBAUcNACADQRBqIAMoAgggAygCDBDJgICAAAtB1InAgABBGhDQgICAABDKgICAACEAIAMgAjcDGCADIAFChICAgHCDNwMQIABBhIrAgABBAiADQRBqQQIQy4CAgAAQh4CAgAAaIANBIGokgICAgABCAg8LAAusAQEBfyOAgICAAEEQayICJICAgIAAAkAgAEL/AYNCzQBSDQAgAUL/AYNCzQBSDQAgAhCzgICAAAJAIAIoAgBBAUcNACACKAIEIAIoAggQtICAgAALIAAQzICAgAAgARCDgYCAAEGUisCAAEESENCAgIAAEMqAgIAAIQAgAiABNwMAIABBsIrAgABBASACQQEQy4CAgAAQh4CAgAAaIAJBEGokgICAgABCAg8LAAsxAQF/I4CAgIAAQRBrIgEkgICAgAAgAUEDNgIAIAEgABDHgYCAACABQRBqJICAgIAAC38BAX8jgICAgABBEGsiAiSAgICAAAJAIABC/wGDQs0AUg0AIAFC/wGDQs0A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IQYCQANAIAZBGEYNASAEIAZqIARBKGogBmopAwA3AwAgBkEIaiEGDAALCyABQo7u6pW+tt7zACAEQQMQm4GAgAAQlICAgABC/wGDQgJSDQIgBEHAAGokgICAgABCAg8LIAQgBmpCAjcDACAGQQhqIQYMAAsLELGAgIAAAAsAC40BAQJ/I4CAgIAAQRBrIgIkgICAgAACQCAAQv8Bg0LNAFINAEEBIAGnQf8BcSIDQQBHQQF0IANBAUYbIgNBAkYNACACQQRqELOAgIAAAkAgAigCBEEBRw0AIAIoAgggAigCDBC0gICAAAsQt4CAgAAaIAAgA0EBcRDEgICAACACQRBqJICAgIAAQgIPCwALfwEBfyOAgICAAEEQayIBJICAgIAAIAEgABDsgICAAAJAIAEoAgBBAUYNACABKQMIIQAQt4CAgAAaIAEQs4CAgAACQCABKAIAQQFHDQAgASgCBCABKAIIELSAgIAAC0EBEKWBgIAAIAAQloCAgAAaIAFBEGokgICAgABCAg8LAAsYABCngYCAACAArUL/AYNCAhCSgICAABoLpQEBAX8jgICAgABBEGsiASSAgICAAAJAIABC/wGDQgJSDQAQt4CAgAAaIAFBBGoQs4CAgAACQCABKAIEQQFHDQAgASgCCCABKAIMELSAgIAACwJAAkAQp4GAgAAiAEICELaAgIAARQ0AIABCAhCBgICAAKdB/wFxDgIAAQILQoOAgICggwEQvoCAgAAAC0EAEKWBgIAAIAFBEGokgICAgABCAg8LAAtgAgF/AX4jgICAgABBEGsiACSAgICAACAAQYaHwIAAQQkQwYCAgAACQAJAIAAoAgANACAAIAApAwgQwoCAgAAgACgCAEEBRw0BCwALIAApAwghASAAQRBqJICAgIAAIAELCAAQuICAgAAL4wQBBX8jgICAgABB0ABrIgIkgICAgAAgAkEoaiAAEKqBgIAAAkAgAigCKEECRg0AIAJBCGpBCGogAkEoakEIaiIDKAIANgIAIAIgAikCKDcDCCACQShqIAEQqoGAgAAgAigCKEECRg0AIAJBGGpBCGogAygCADYCACACIAIpAig3AxggAkEoahCzgICAAAJAIAIoAihBAUcNACACKAIsIAIoAjAQtICAgAALELeAgIAAGgJAAkACQBCygICAAA0AEKuBgIAAIgNBgPuAAyADQYD7gANJGyEEIAIgAkEYajYCLCACIAJBCGo2AihBACEDA0AgA0EIRg0DAkAgAkEoaiADaigCACIFKAIAQQFxRQ0AIAUoAggiBiAESw0DIAUoAgQgBksNAwsgA0EEaiEDDAALC0KDgICA0P8AEL6AgIAAAAtCg4CAgMD/ABC+gICAAAALAkACQCACKAIIQQFHDQBBASACKAIMIAIoAhAQrIGAgAAMAQtBARC1gICAAEICEJGAgIAAGgsCQAJAIAIoAhhBAUcNAEECIAIoAhwgAigCIBCsgYCAAAwBC0ECELWAgIAAQgIQkYCAgAAaCyACQShqQQhqIAJBCGpBCGooAgA2AgAgAkE8aiACQRhqQQhqKAIANgIAIAIgAikDCDcDKCACIAIpAxg3AjRBqIbAgABBDxDQgICAABDKgICAACEAIAJBKGoQrYGAgAAhASACIAJBNGoQrYGAgAA3A0ggAiABNwNAIABBzIbAgABBAiACQcAAakECEMuAgIAAEIeAgIAAGiACQdAAaiSAgICAAEICDwsAC2gBAX8jgICAgABBEGsiAiSAgICAAAJAAkAgAUICUQ0AIAJBBGogARDDgYCAAAJAIAIoAgRFDQAgAEECNgIADAILIAAgAikCCDcCBCAAQQE2AgAMAQsgAEEANgIACyACQRBqJICAgIAACzMBAn4QooCAgAAhAAJAEKOAgIAAQiCIIgEgAEIgiCIAVA0AIAGnIACnaw8LELGAgIAAAAtWAgF/AX4jgICAgABBEGsiAySAgICAACAAELWAgIAAIQQgAyABIAIQxIGAgAACQCADKAIAQQFHDQAACyAEIAMpAwhCAhCSgICAABogA0EQaiSAgICAAAtDAgF/AX4jgICAgABBEGsiASSAgICAACABIAAQr4GAgAACQCABKAIAQQFHDQAACyABKQMIIQIgAUEQaiSAgICAACACC8IBAgJ/AX4jgICAgABBwABrIgAkgICAgAAgAEEIahCzgICAAAJAIAAoAghBAUcNACAAKAIMIAAoAhAQtICAgAALIABBCGoQs4CAgAAgAEEUaiIBEMiAgIAAIABBMGogAEEIahCvgYCAAAJAAkAgACgCMA0AIAApAzghAiAAQTBqIAEQr4GAgAAgACgCMEEBRw0BCwALIAAgACkDODcDKCAAIAI3AyAgAEEgakECEJuBgIAAIQIgAEHAAGokgICAgAAgAgswAAJAIAEoAgBBAUcNACAAIAEoAgQgASgCCBDEgYCAAA8LIABCADcDACAAQgI3AwgLqwEBAX8jgICAgABBIGsiACSAgICAACAAQQxqELOAgIAAAkAgACgCDEEBRw0AIAAoAhAgACgCFBC0gICAAAsQt4CAgAAaAkAQsoCAgABFDQBCg4CAgOD/ABC+gICAAAALQQAQtYCAgABCAUICEJKAgIAAGkHchsCAAEESENCAgIAAEMqAgIAAQQRBACAAQRhqQQAQy4CAgAAQh4CAgAAaIABBIGokgICAgABCAgsJABCygICAAK0LMQACQCAAQv8Bg0IEUg0AIAFC/wGDQgRSDQAgAEIgiKcgAUIgiKcQtICAgABCAg8LAAs+AgF/AX4jgICAgABBEGsiACSAgICAACAAELqAgIAAIAApAwAgACkDCBC0gYCAACEBIABBEGokgICAgAAgAQsNACABQgIgAKdBAXEbCz4CAX8BfiOAgICAAEEQayIAJICAgIAAIAAQvYCAgAAgACkDACAAKQMIELSBgIAAIQEgAEEQaiSAgICAACABC30CAX8BfiOAgICAAEEQayIBJICAgIAAAkAgAEL/AYNCzQBSDQAgAUEEahCzgICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQtICAgAALELmAgIAAIQIQvICAgAAgABChgYCAACACIAAQt4GAgAAgAUEQaiSAgICAAEICDwsAC2ECAX8BfiOAgICAAEEQayICJICAgIAAQfWEwIAAQRUQ0ICAgAAQyoCAgAAhAyACIAA3AwggAiABNwMAIANBnIXAgABBAiACQQIQy4CAgAAQh4CAgAAaIAJBEGokgICAgAAL3AICAX8CfiOAgICAAEEgayICJICAgIAAAkACQAJAIABC/wGDQs0AUg0AIAFC/wGDQgRSDQAgAkEIahCzgICAAAJAIAIoAghBAUcNACACKAIMIAIoAhAQtICAgAALELmAgIAAIQMCQAJAIAFC/////w9WDQAgAkEIahC9gICAACACKQMQIQEgAikDCEGICBC7gICAACABIAAQr4CAgABFDQMQuYGAgAAMAQsQq4GAgAAgAUIgiKdJDQNBASAAQgAQuoGAgABBARC/gICAAEIAIAFChICAgHCDIgEgARCAgICAABpBrIXAgABBFhDQgICAABDKgICAACEEIAIgATcDGCACIAM3AxAgAiAANwMIIARByIXAgABBAyACQQhqQQMQy4CAgAAQh4CAgAAaCyACQSBqJICAgIAAQgIPCwALQoOAgIDggAEQvoCAgAAAC0KDgICA8IABEL6AgIAAAAsTAEEBEL+AgIAAQgAQkYCAgAAaCxUAIAAQv4CAgAAgASACEJKAgIAAGgunAQIBfwJ+I4CAgIAAQRBrIgAkgICAgAAgABCzgICAAAJAIAAoAgBBAUcNACAAKAIEIAAoAggQtICAgAALIAAQvYCAgAAgACkDCCEBIAApAwBBiAgQu4CAgAAgARCCgICAABogABDAgICAAAJAIAAoAgANABD1gICAAAALIAApAwghAhC5gYCAACABEKGBgIAAIAIgARC3gYCAACAAQRBqJICAgIAAQgILoAECAX8CfiOAgICAAEEQayIAJICAgIAAIAAQs4CAgAACQCAAKAIAQQFHDQAgACgCBCAAKAIIELSAgIAACxC5gICAACEBELyAgIAAQQAQv4CAgABCAhCRgICAABpB4IXAgABBExDQgICAABDKgICAACECIAAgATcDACACQfSFwIAAQQEgAEEBEMuAgIAAEIeAgIAAGiAAQRBqJICAgIAAQgILAwAACzsAAkACQCABQv//////////AFYNACABQgiGQgaEIQEMAQsgARCegICAACEBCyAAQgA3AwAgACABNwMIC5YBAgF+An8gACkDACEBA0ACQCABUEUNAEGAgMQADwsCQAJAIAFCMIinQT9xIgJBAUcNAEHfACECDAELAkACQAJAIAJBf2pBC08NAEEuIQMMAQsCQCACQXRqQRpPDQBBNSEDDAELIAJBJU0NAUE7IQMLIAIgA2ohAgwBCyAAIAFCBoYiATcDAAwBCwsgACABQgaGNwMAIAILHAAgACABrUIghkIEhCACrUIghkIEhBCagICAAAvbAQIBfgR/AkACQCACQQlLDQBCACEDIAIhBCABIQUDQAJAIAQNACADQgiGQg6EIQMMAwtBASEGAkAgBS0AACIHQd8ARg0AAkAgB0FQakH/AXFBCkkNAAJAIAdBv39qQf8BcUEaSQ0AIAdBn39qQf8BcUEZSw0EIAdBRWohBgwCCyAHQUtqIQYMAQsgB0FSaiEGCyADQgaGIAatQv8Bg4QhAyAEQX9qIQQgBUEBaiEFDAALCyABrUIghkIEhCACrUIghkIEhBCfgICAACEDCyAAQgA3AwAgACADNwMIC7MCAwF/AX4BfyOAgICAAEEgayICJICAgIAAAkACQCABQv8Bg0LLAFENACAAQgE3AwAMAQsgARCDgICAACEDIAJBADYCCCACIAE3AwAgAiADQiCIPgIMIAJBEGogAhDtgICAAAJAIAIpAxAiAUICUQ0AIAGnQQFxDQACQCACKQMYIgGnQf8BcSIEQcoARg0AIARBDkcNAQsCQCABQeSEwIAAQQEQwIGAgABC/////w9WDQAgAigCCCACKAIMEO+AgIAAQQFLDQAgAkEQaiACEO2AgIAAIAIpAxAiAUICUQ0AIAGnQQFxDQAgAkEQaiACKQMYEOyAgIAAIAIoAhANACACKQMYIQEgAEIANwMAIAAgATcDCAwCCyAAQgE3AwAMAQsgAEIBNwMACyACQSBqJICAgIAAC60BAgJ/AX4jgICAgABBEGsiAiSAgICAAEEAIQMCQANAIANBEEYNASACIANqQgI3AwAgA0EIaiEDDAALC0EBIQMCQCABQv8Bg0LMAFINACABQZiGwIAAQQIgAkECEOOAgIAAIAIpAwAiAUL/AYNCBFINACACKQMIIgRC/wGDQgRSDQAgACABQiCIpzYCCCAAIARCIIg+AgRBACEDCyAAIAM2AgAgAkEQaiSAgICAAAtgAgF/AX4jgICAgABBEGsiAySAgICAACADIAGtQiCGQgSENwMIIAMgAq1CIIZCBIQ3AwBBmIbAgABBAiADQQIQy4CAgAAhBCAAQgA3AwAgACAENwMIIANBEGokgICAgAALdwICfwF+I4CAgIAAQRBrIgIkgICAgABBACEDAkACQCABELWAgIAAIgRCAhC2gICAAEUNACACQQRqIARCAhCBgICAABDDgYCAAEEBIQMgAigCBEEBRg0BIAAgAikCCDcCBAsgACADNgIAIAJBEGokgICAgAAPCwALHAAgABDfgICAACABrUIghkIEhEICEJKAgIAAGgsVACAAEN+AgIAAIAFCAhCSgICAABoLuQcBDH8jgICAgABBEGshAwJAAkAgAkEQTw0AIAAhBAwBCwJAIAAgAEEAIABrQQNxIgVqIgZPDQAgBUF/aiEHIAAhBCABIQgCQCAFRQ0AIAUhCSAAIQQgASEIA0AgBCAILQAAOgAAIAhBAWohCCAEQQFqIQQgCUF/aiIJDQALCyAHQQdJDQADQCAEIAgtAAA6AAAgBEEBaiAIQQFqLQAAOgAAIARBAmogCEECai0AADoAACAEQQNqIAhBA2otAAA6AAAgBEEEaiAIQQRqLQAAOgAAIARBBWogCEEFai0AADoAACAEQQZqIAhBBmotAAA6AAAgBEEHaiAIQQdqLQAAOgAAIAhBCGohCCAEQQhqIgQgBkcNAAsLIAYgAiAFayIJQXxxIgdqIQQCQAJAIAEgBWoiCEEDcSIBDQAgBiAETw0BIAghAQNAIAYgASgCADYCACABQQRqIQEgBkEEaiIGIARJDQAMAgsLQQAhAiADQQA2AgwgA0EMaiABciEFAkBBBCABayIKQQFxRQ0AIAUgCC0AADoAAEEBIQILAkAgCkECcUUNACAFIAJqIAggAmovAQA7AQALIAggAWshAiABQQN0IQsgAygCDCEFAkACQCAGQQRqIARJDQAgBiEMDAELQQAgC2tBGHEhDQNAIAYgBSALdiACQQRqIgIoAgAiBSANdHI2AgAgBkEIaiEKIAZBBGoiDCEGIAogBEkNAAsLQQAhBiADQQA6AAggA0EAOgAGAkACQCABQQFHDQAgA0EIaiENQQAhAUEAIQpBACEODAELIAJBBWotAAAhCiADIAJBBGotAAAiAToACCAKQQh0IQpBAiEOIANBBmohDQsCQCAIQQFxRQ0AIA0gAkEEaiAOai0AADoAACADLQAGQRB0IQYgAy0ACCEBCyAMIAogBnIgAUH/AXFyQQAgC2tBGHF0IAUgC3ZyNgIACyAJQQNxIQIgCCAHaiEBCwJAIAQgBCACaiIGTw0AIAJBf2ohCQJAIAJBB3EiCEUNAANAIAQgAS0AADoAACABQQFqIQEgBEEBaiEEIAhBf2oiCA0ACwsgCUEHSQ0AA0AgBCABLQAAOgAAIARBAWogAUEBai0AADoAACAEQQJqIAFBAmotAAA6AAAgBEEDaiABQQNqLQAAOgAAIARBBGogAUEEai0AADoAACAEQQVqIAFBBWotAAA6AAAgBEEGaiABQQZqLQAAOgAAIARBB2ogAUEHai0AADoAACABQQhqIQEgBEEIaiIEIAZHDQALCyAACw4AIAAgASACEMiBgIAACwuKDQEAQYCAwAALgA1Db250cmFjdENyZWF0ZUNvbnRyYWN0SG9zdEZuQ3JlYXRlQ29udHJhY3RXaXRoQ3Rvckhvc3RGbgAAEAAIAAAACAAQABQAAAAcABAAHAAAAGRzdF9jb25maWdfc2V0cGFyYW1zXgAQAAYAAABuYXRpdmVfZHJvcF9hcHBsaWVkbmF0aXZlX2Ryb3BfcGFyYW1zb3JpZ2luc3VjY2VzcwAA7gQQAAcAAAB/ABAAEgAAAAAEEAAEAAAAkQAQAAYAAACXABAABwAAAE4FEAAQAAAAeAUQABMAAACLBRAAEwAAAHIEEAAOAAAAngUQAAoAAABkc3RfY29uZmlnAADwABAACgAAAO4EEAAHAAAAcmVjZWl2ZXLIARAABgAAAAwBEAAIAAAAbHpfcmVjZWl2ZV9hbGVydGx6X2NvbXBvc2VfYWxlcnRsel9yZWNlaXZlbHpfY29tcG9zZXRyYW5zZmVycHVibGljX2tleXNpZ25hdHVyZQBgARAACgAAAGoBEAAJAAAARHN0Q29uZmlnRW5kcG9pbnRub25jZXNyY19laWQAAACVARAABQAAAGUFEAAGAAAAmgEQAAcAAABuYXRpdmVfdG9rZW5hbW91bnR0b8gBEAAGAAAAzgEQAAIAAAAAAAASAAAAAAAAAABXYXNtYXJnc2NvbnRyYWN0Zm5fbmFtZQDwARAABAAAAPQBEAAIAAAA/AEQAAcAAABleGVjdXRhYmxlc2FsdAAAHAIQAAoAAAAmAhAABAAAAGNvbnN0cnVjdG9yX2FyZ3M8AhAAEAAAABwCEAAKAAAAJgIQAAQAAADsARAABAAAAHRocmVzaG9sZG93bmVyc2hpcF90cmFuc2ZlcnJlZG5ld19vd25lcm9sZF9vd25lcooCEAAJAAAAkwIQAAkAAABvd25lcnNoaXBfdHJhbnNmZXJyaW5ndHRsAAAAigIQAAkAAACTAhAACQAAAMICEAADAAAAb3duZXJzaGlwX3Jlbm91bmNlZACTAhAACQAAAE93bmVyUGVuZGluZ093bmVyZXh0ZW5kX3RvAAANAxAACQAAAGwCEAAJAAAAdHRsX2NvbmZpZ3Nfc2V0aW5zdGFuY2VwZXJzaXN0ZW50AAAANwMQAAgAAAA/AxAACgAAAHR0bF9jb25maWdzX2Zyb3plbkZyb3plbkluc3RhbmNlUGVyc2lzdGVudE1pZ3JhdGluZ2FjdGl2ZWFkbWluAACPAxAABgAAAJUDEAAFAAAAc2V0X3N1cHBvcnRlZF9tZXNzYWdlX2xpYm1lc3NhZ2VfbGlic3VwcG9ydGVkAAAAxQMQAAsAAADQAxAACQAAAHNldF9hbGxvd2xpc3RhbGxvd2Vkb2FwcPkDEAAHAAAAAAQQAAQAAABzZXRfZGVueWxpc3RkZW5pZWQAACAEEAAGAAAAAAQQAAQAAABwYXVzZXIAADgEEAAGAAAAdW5wYXVzZXJIBBAACAAAAHNldF9kZWZhdWx0X211bHRpcGxpZXJfYnBzbXVsdGlwbGllcl9icHNyBBAADgAAAHNldF9kZXBvc2l0X2FkZHJlc3NkZXBvc2l0X2FkZHJlc3MAAJsEEAAPAAAAc2V0X3ByaWNlX2ZlZWRwcmljZV9mZWVkwgQQAAoAAABzZXRfc3VwcG9ydGVkX29wdGlvbl90eXBlc2RzdF9laWRvcHRpb25fdHlwZXMAAADuBBAABwAAAPUEEAAMAAAAc2V0X3dvcmtlcl9mZWVfbGliZmVlX2xpYgAAACYFEAAHAAAAZGVmYXVsdF9tdWx0aXBsaWVyX2Jwc2Zsb29yX21hcmdpbl91c2RvcHRpb25zc2VuZGVyY2FsbGRhdGFfc2l6ZWx6X2NvbXBvc2VfYmFzZV9nYXNsel9yZWNlaXZlX2Jhc2VfZ2FzbmF0aXZlX2NhcGsFEAANAAAAOAUQABYAAADuBBAABwAAAE4FEAAQAAAAeAUQABMAAACLBRAAEwAAAHIEEAAOAAAAngUQAAoAAABeBRAABwAAAMIEEAAKAAAAZQUQAAYAAABQYXVzZWREZXBvc2l0QWRkcmVzc1ByaWNlRmVlZFdvcmtlckZlZUxpYkRlZmF1bHRNdWx0aXBsaWVyQnBzU3VwcG9ydGVkT3B0aW9uVHlwZXNNZXNzYWdlTGlic0FsbG93bGlzdERlbnlsaXN0QWxsb3dsaXN0U2l6ZUFkbWlucwDP8AEOY29udHJhY3RzcGVjdjAAAAAEAAAAAAAAAAAAAAANRXhlY3V0b3JFcnJvcgAAAAAAAAMAAAAAAAAAD0VpZE5vdFN1cHBvcnRlZAAAAAABAAAAAAAAAAxVbmF1dGhvcml6ZWQAAAACAAAAAAAAABNVbmF1dGhvcml6ZWRDb250ZXh0AAAAAAMAAAAFAAAAAAAAAAAAAAAMRHN0Q29uZmlnU2V0AAAAAQAAAA5kc3RfY29uZmlnX3NldAAAAAAAAQAAAAAAAAAGcGFyYW1zAAAAAAPqAAAH0AAAABFTZXREc3RDb25maWdQYXJhbQAAAAAAAAAAAAACAAAABQAAAAAAAAAAAAAAEU5hdGl2ZURyb3BBcHBsaWVkAAAAAAAAAQAAABNuYXRpdmVfZHJvcF9hcHBsaWVkAAAAAAUAAAAAAAAABm9yaWdpbgAAAAAH0AAAAAZPcmlnaW4AAAAAAAAAAAAAAAAAB2RzdF9laWQAAAAABAAAAAAAAAAAAAAABG9hcHAAAAATAAAAAAAAAAAAAAASbmF0aXZlX2Ryb3BfcGFyYW1zAAAAAAPqAAAH0AAAABBOYXRpdmVEcm9wUGFyYW1zAAAAAAAAAAAAAAAHc3VjY2VzcwAAAAPqAAAAAQAAAAAAAAACAAAAAQAAANtEZXN0aW5hdGlvbiBjaGFpbiBjb25maWd1cmF0aW9uIGZvciBleGVjdXRvciBmZWUgY2FsY3VsYXRpb24uCgpDb250YWlucyBnYXMgY29zdHMgYW5kIGZlZSBwYXJhbWV0ZXJzIHNwZWNpZmljIHRvIGVhY2ggZGVzdGluYXRpb24gY2hhaW4uClRoZXNlIHBhcmFtZXRlcnMgYXJlIHVzZWQgYnkgdGhlIGZlZSBsaWJyYXJ5IHRvIGNhbGN1bGF0ZSBhY2N1cmF0ZSBleGVjdXRpb24gZmVlcy4AAAAAAAAAAAlEc3RDb25maWcAAAAAAAAFAAAAO01pbmltdW0gZmVlIG1hcmdpbiBpbiBVU0QgKHNjYWxlZCkgdG8gZW5zdXJlIHByb2ZpdGFiaWxpdHkuAAAAABBmbG9vcl9tYXJnaW5fdXNkAAAACgAAADpCYXNlIGdhcyBjb3N0IHBlciBsekNvbXBvc2UgY2FsbCBvbiB0aGUgZGVzdGluYXRpb24gY2hhaW4uAAAAAAATbHpfY29tcG9zZV9iYXNlX2dhcwAAAAAGAAAAP0Jhc2UgZ2FzIGNvc3QgZm9yIGx6UmVjZWl2ZSBleGVjdXRpb24gb24gdGhlIGRlc3RpbmF0aW9uIGNoYWluLgAAAAATbHpfcmVjZWl2ZV9iYXNlX2dhcwAAAAAGAAAAUUZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cyBmb3IgdGhpcyBkZXN0aW5hdGlvbiAoMCA9IHVzZSBkZWZhdWx0IG11bHRpcGxpZXIpLgAAAAAAAA5tdWx0aXBsaWVyX2JwcwAAAAAABAAAAEZNYXhpbXVtIG5hdGl2ZSB0b2tlbiB2YWx1ZSB0aGF0IGNhbiBiZSB0cmFuc2ZlcnJlZCB0byB0aGUgZGVzdGluYXRpb24uAAAAAAAKbmF0aXZlX2NhcAAAAAAACgAAAAEAAAB8UGFyYW1ldGVycyBmb3Igc2V0dGluZyBkZXN0aW5hdGlvbiBjb25maWd1cmF0aW9uLgoKVXNlZCB3aGVuIGNvbmZpZ3VyaW5nIGV4ZWN1dG9yIHNldHRpbmdzIGZvciBhIHNwZWNpZmljIGRlc3RpbmF0aW9uIGNoYWluLgAAAAAAAAARU2V0RHN0Q29uZmlnUGFyYW0AAAAAAAACAAAAKENvbmZpZ3VyYXRpb24gZm9yIHRoZSBkZXN0aW5hdGlvbiBjaGFpbi4AAAAKZHN0X2NvbmZpZwAAAAAH0AAAAAlEc3RDb25maWcAAAAAAAArRGVzdGluYXRpb24gZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpLgAAAAAHZHN0X2VpZAAAAAAEAAAAAQAAAGhQYXJhbWV0ZXJzIGZvciBhIG5hdGl2ZSB0b2tlbiBkcm9wLgoKVXNlZCB0byBzcGVjaWZ5IG5hdGl2ZSB0b2tlbiB0cmFuc2ZlcnMgYXMgcGFydCBvZiBleGVjdXRvciBvcHRpb25zLgAAAAAAAAAQTmF0aXZlRHJvcFBhcmFtcwAAAAIAAAAkQW1vdW50IG9mIG5hdGl2ZSB0b2tlbnMgdG8gdHJhbnNmZXIuAAAABmFtb3VudAAAAAAACwAAAC9SZWNlaXZlciBhZGRyZXNzIGZvciB0aGUgbmF0aXZlIHRva2VuIHRyYW5zZmVyLgAAAAAIcmVjZWl2ZXIAAAATAAAAAAAAALhWZXJpZmllcyBhdXRob3JpemF0aW9uIGZvciB0aGUgZXhlY3V0b3IgY29udHJhY3QuCgpUaGUgcHVibGljIGtleSBtdXN0IGNvcnJlc3BvbmQgdG8gYSByZWdpc3RlcmVkIGFkbWluIGFuZCBtdXN0IGhhdmUgc2lnbmVkIHRoZSBzaWduYXR1cmVfcGF5bG9hZC4KVXNlcyBFZDI1NTE5IHNpZ25hdHVyZSB2ZXJpZmljYXRpb24uAAAADF9fY2hlY2tfYXV0aAAAAAMAAAAAAAAAEXNpZ25hdHVyZV9wYXlsb2FkAAAAAAAD7gAAACAAAAAAAAAACWF1dGhfZGF0YQAAAAAAB9AAAAARRXhlY3V0b3JTaWduYXR1cmUAAAAAAAAAAAAADWF1dGhfY29udGV4dHMAAAAAAAPqAAAH0AAAAAdDb250ZXh0AAAAAAEAAAPpAAAD7QAAAAAAAAADAAAAAQAAAIxTaWduYXR1cmUgZGF0YSBmb3IgQ3VzdG9tIEFjY291bnQgYXV0aG9yaXphdGlvbi4KQ29udGFpbnMgdGhlIGFkbWluJ3MgcHVibGljIGtleSBhbmQgdGhlaXIgRWQyNTUxOSBzaWduYXR1cmUgb3ZlciB0aGUgYXV0aG9yaXphdGlvbiBwYXlsb2FkLgAAAAAAAAARRXhlY3V0b3JTaWduYXR1cmUAAAAAAAACAAAATUFkbWluJ3MgRWQyNTUxOSBwdWJsaWMga2V5ICgzMiBieXRlcykgLSBtdXN0IGNvcnJlc3BvbmQgdG8gYSByZWdpc3RlcmVkIGFkbWluAAAAAAAACnB1YmxpY19rZXkAAAAAA+4AAAAgAAAAN0VkMjU1MTkgc2lnbmF0dXJlICg2NCBieXRlcykgb3ZlciB0aGUgc2lnbmF0dXJlX3BheWxvYWQAAAAACXNpZ25hdHVyZQAAAAAAA+4AAABAAAAAAAAAAORTZXRzIHRoZSBwYXVzZWQgc3RhdGUgb2YgdGhlIHdvcmtlci4KCldoZW4gcGF1c2VkLCB0aGUgd29ya2VyIHdpbGwgcmVqZWN0IG5ldyBqb2IgYXNzaWdubWVudHMgKGUuZy4sIGFzc2lnbl9qb2IsIGdldF9mZWUpLgpFeGlzdGluZyBqb2JzIGluIHByb2dyZXNzIGFyZSBub3QgYWZmZWN0ZWQuCgojIEFyZ3VtZW50cwoqIGBwYXVzZWRgIC0gYHRydWVgIHRvIHBhdXNlLCBgZmFsc2VgIHRvIHVucGF1c2UAAAAKc2V0X3BhdXNlZAAAAAAAAQAAAAAAAAAGcGF1c2VkAAAAAAABAAAAAAAAAAAAAAE3U2V0cyB3aGV0aGVyIGEgbWVzc2FnZSBsaWJyYXJ5IGlzIHN1cHBvcnRlZCBieSB0aGlzIHdvcmtlci4KCk1lc3NhZ2UgbGlicmFyaWVzIChlLmcuLCBVTE4zMDIpIGNhbGwgd29ya2VycyB0byBhc3NpZ24gam9icy4gT25seSBzdXBwb3J0ZWQKbGlicmFyaWVzIGNhbiBpbnRlcmFjdCB3aXRoIHRoaXMgd29ya2VyLgoKIyBBcmd1bWVudHMKKiBgbWVzc2FnZV9saWJgIC0gVGhlIG1lc3NhZ2UgbGlicmFyeSBjb250cmFjdCBhZGRyZXNzCiogYHN1cHBvcnRlZGAgLSBgdHJ1ZWAgdG8gYWRkIHN1cHBvcnQsIGBmYWxzZWAgdG8gcmVtb3ZlIHN1cHBvcnQAAAAAGXNldF9zdXBwb3J0ZWRfbWVzc2FnZV9saWIAAAAAAAACAAAAAAAAAAttZXNzYWdlX2xpYgAAAAATAAAAAAAAAAlzdXBwb3J0ZWQAAAAAAAABAAAAAAAAAAAAAAFYU2V0cyBhbGxvd2xpc3Qgc3RhdHVzIGZvciBhbiBPQXBwIGFkZHJlc3MuCgpXaGVuIHRoZSBhbGxvd2xpc3QgaXMgZW1wdHksIGFsbCBPQXBwcyBhcmUgYWxsb3dlZCAodW5sZXNzIG9uIGRlbnlsaXN0KS4KV2hlbiB0aGUgYWxsb3dsaXN0IGlzIG5vdCBlbXB0eSwgb25seSBhbGxvd2xpc3RlZCBPQXBwcyBhcmUgYWxsb3dlZC4KRGVueWxpc3QgYWx3YXlzIHRha2VzIHByZWNlZGVuY2Ugb3ZlciBhbGxvd2xpc3QuCgojIEFyZ3VtZW50cwoqIGBvYXBwYCAtIFRoZSBPQXBwIGNvbnRyYWN0IGFkZHJlc3MKKiBgYWxsb3dlZGAgLSBgdHJ1ZWAgdG8gYWRkIHRvIGFsbG93bGlzdCwgYGZhbHNlYCB0byByZW1vdmUAAAANc2V0X2FsbG93bGlzdAAAAAAAAAIAAAAAAAAABG9hcHAAAAATAAAAAAAAAAdhbGxvd2VkAAAAAAEAAAAAAAAAAAAAAQlTZXRzIGRlbnlsaXN0IHN0YXR1cyBmb3IgYW4gT0FwcCBhZGRyZXNzLgoKRGVueWxpc3RlZCBPQXBwcyBhcmUgYmxvY2tlZCBmcm9tIHVzaW5nIHRoaXMgd29ya2VyLCBldmVuIGlmIHRoZXkncmUgb24KdGhlIGFsbG93bGlzdCAoZGVueWxpc3QgdGFrZXMgcHJlY2VkZW5jZSkuCgojIEFyZ3VtZW50cwoqIGBvYXBwYCAtIFRoZSBPQXBwIGNvbnRyYWN0IGFkZHJlc3MKKiBgZGVuaWVkYCAtIGB0cnVlYCB0byBhZGQgdG8gZGVueWxpc3QsIGBmYWxzZWAgdG8gcmVtb3ZlAAAAAAAADHNldF9kZW55bGlzdAAAAAIAAAAAAAAABG9hcHAAAAATAAAAAAAAAAZkZW5pZWQAAAAAAAEAAAAAAAAAAAAAATtTZXRzIHRoZSBkZWZhdWx0IGZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cy4KClRoZSBtdWx0aXBsaWVyIGlzIGFwcGxpZWQgdG8gYmFzZSBmZWVzIGR1cmluZyBmZWUgY2FsY3VsYXRpb24uIFVzZWQgd2hlbgpubyBkZXN0aW5hdGlvbi1zcGVjaWZpYyBtdWx0aXBsaWVyIGlzIGNvbmZpZ3VyZWQuCgojIEFyZ3VtZW50cwoqIGBhZG1pbmAgLSBBZG1pbiBhZGRyZXNzIChtdXN0IHByb3ZpZGUgYXV0aG9yaXphdGlvbikKKiBgbXVsdGlwbGllcl9icHNgIC0gTXVsdGlwbGllciBpbiBiYXNpcyBwb2ludHMgKDEwMDAwID0gMXgsIDEyMDAwID0gMS4yeCkAAAAAGnNldF9kZWZhdWx0X211bHRpcGxpZXJfYnBzAAAAAAACAAAAAAAAAAVhZG1pbgAAAAAAABMAAAAAAAAADm11bHRpcGxpZXJfYnBzAAAAAAAEAAAAAAAAAAAAAADxU2V0cyB0aGUgZGVwb3NpdCBhZGRyZXNzIHdoZXJlIHdvcmtlciBmZWVzIGFyZSBjb2xsZWN0ZWQuCgpXaGVuIGpvYnMgYXJlIGFzc2lnbmVkLCBmZWVzIGFyZSBkaXJlY3RlZCB0byB0aGlzIGFkZHJlc3MuCgojIEFyZ3VtZW50cwoqIGBhZG1pbmAgLSBBZG1pbiBhZGRyZXNzIChtdXN0IHByb3ZpZGUgYXV0aG9yaXphdGlvbikKKiBgZGVwb3NpdF9hZGRyZXNzYCAtIEFkZHJlc3MgdG8gcmVjZWl2ZSBjb2xsZWN0ZWQgZmVlcwAAAAAAABNzZXRfZGVwb3NpdF9hZGRyZXNzAAAAAAIAAAAAAAAABWFkbWluAAAAAAAAEwAAAAAAAAAPZGVwb3NpdF9hZGRyZXNzAAAAABMAAAAAAAAAAAAAAOtTZXRzIHN1cHBvcnRlZCBleGVjdXRvciBvcHRpb24gdHlwZXMgZm9yIGEgZGVzdGluYXRpb24gZW5kcG9pbnQuCgojIEFyZ3VtZW50cwoqIGBhZG1pbmAgLSBBZG1pbiBhZGRyZXNzIChtdXN0IHByb3ZpZGUgYXV0aG9yaXphdGlvbikKKiBgZWlkYCAtIERlc3RpbmF0aW9uIGVuZHBvaW50IElEIChjaGFpbiBpZGVudGlmaWVyKQoqIGBvcHRpb25fdHlwZXNgIC0gRW5jb2RlZCBzdXBwb3J0ZWQgb3B0aW9uIHR5cGVzAAAAABpzZXRfc3VwcG9ydGVkX29wdGlvbl90eXBlcwAAAAAAAwAAAAAAAAAFYWRtaW4AAAAAAAATAAAAAAAAAANlaWQAAAAABAAAAAAAAAAMb3B0aW9uX3R5cGVzAAAADgAAAAAAAAAAAAABElNldHMgdGhlIHdvcmtlciBmZWUgbGlicmFyeSBjb250cmFjdCBhZGRyZXNzLgoKVGhlIGZlZSBsaWJyYXJ5IGNhbGN1bGF0ZXMgZmVlcyBiYXNlZCBvbiBleGVjdXRvciBvcHRpb25zIGFuZCBwcmljZSBmZWVkIGRhdGEuCgojIEFyZ3VtZW50cwoqIGBhZG1pbmAgLSBBZG1pbiBhZGRyZXNzIChtdXN0IHByb3ZpZGUgYXV0aG9yaXphdGlvbikKKiBgd29ya2VyX2ZlZV9saWJgIC0gRmVlIGxpYnJhcnkgY29udHJhY3QgYWRkcmVzcyBpbXBsZW1lbnRpbmcgYElFeGVjdXRvckZlZUxpYmAAAAAAABJzZXRfd29ya2VyX2ZlZV9saWIAAAAAAAIAAAAAAAAABWFkbWluAAAAAAAAEwAAAAAAAAAOd29ya2VyX2ZlZV9saWIAAAAAABMAAAAAAAAAAAAAARJTZXRzIHRoZSBwcmljZSBmZWVkIGNvbnRyYWN0IGFkZHJlc3MuCgpUaGUgcHJpY2UgZmVlZCBwcm92aWRlcyBnYXMgcHJpY2VzIGFuZCBleGNoYW5nZSByYXRlcyBmb3IgY3Jvc3MtY2hhaW4KZmVlIGNhbGN1bGF0aW9ucy4KCiMgQXJndW1lbnRzCiogYGFkbWluYCAtIEFkbWluIGFkZHJlc3MgKG11c3QgcHJvdmlkZSBhdXRob3JpemF0aW9uKQoqIGBwcmljZV9mZWVkYCAtIFByaWNlIGZlZWQgY29udHJhY3QgYWRkcmVzcyBpbXBsZW1lbnRpbmcgYElMYXllclplcm9QcmljZUZlZWRgAAAAAAAOc2V0X3ByaWNlX2ZlZWQAAAAAAAIAAAAAAAAABWFkbWluAAAAAAAAEwAAAAAAAAAKcHJpY2VfZmVlZAAAAAAAEwAAAAAAAAAAAAAAVVJldHVybnMgd2hldGhlciBhbiBhZGRyZXNzIGlzIGFuIGFkbWluLgoKIyBBcmd1bWVudHMKKiBgYWRtaW5gIC0gVGhlIGFkZHJlc3MgdG8gY2hlY2sAAAAAAAAIaXNfYWRtaW4AAAABAAAAAAAAAAVhZG1pbgAAAAAAABMAAAABAAAAAQAAAAAAAAAcUmV0dXJucyBhbGwgYWRtaW4gYWRkcmVzc2VzLgAAAAZhZG1pbnMAAAAAAAAAAAABAAAD6gAAABMAAAAAAAAAJVJldHVybnMgd2hldGhlciB0aGUgd29ya2VyIGlzIHBhdXNlZC4AAAAAAAAGcGF1c2VkAAAAAAAAAAAAAQAAAAEAAAAAAAAAb1JldHVybnMgd2hldGhlciBhIG1lc3NhZ2UgbGlicmFyeSBpcyBzdXBwb3J0ZWQuCgojIEFyZ3VtZW50cwoqIGBtZXNzYWdlX2xpYmAgLSBNZXNzYWdlIGxpYnJhcnkgY29udHJhY3QgYWRkcmVzcwAAAAAYaXNfc3VwcG9ydGVkX21lc3NhZ2VfbGliAAAAAQAAAAAAAAALbWVzc2FnZV9saWIAAAAAEwAAAAEAAAABAAAAAAAAAHNSZXR1cm5zIGFsbCBzdXBwb3J0ZWQgbWVzc2FnZSBsaWJyYXJ5IGFkZHJlc3Nlcy4KCiMgUmV0dXJucwpWZWN0b3Igb2Ygc3VwcG9ydGVkIG1lc3NhZ2UgbGlicmFyeSBjb250cmFjdCBhZGRyZXNzZXMuAAAAAAxtZXNzYWdlX2xpYnMAAAAAAAAAAQAAA+oAAAATAAAAAAAAAFpSZXR1cm5zIHdoZXRoZXIgYW4gT0FwcCBpcyBvbiB0aGUgYWxsb3dsaXN0LgoKIyBBcmd1bWVudHMKKiBgb2FwcGAgLSBPQXBwIGNvbnRyYWN0IGFkZHJlc3MAAAAAAA9pc19vbl9hbGxvd2xpc3QAAAAAAQAAAAAAAAAEb2FwcAAAABMAAAABAAAAAQAAAAAAAABZUmV0dXJucyB3aGV0aGVyIGFuIE9BcHAgaXMgb24gdGhlIGRlbnlsaXN0LgoKIyBBcmd1bWVudHMKKiBgb2FwcGAgLSBPQXBwIGNvbnRyYWN0IGFkZHJlc3MAAAAAAAAOaXNfb25fZGVueWxpc3QAAAAAAAEAAAAAAAAABG9hcHAAAAATAAAAAQAAAAEAAAAAAAAA+1JldHVybnMgd2hldGhlciBhbiBPQXBwIGhhcyBhY2Nlc3MgY29udHJvbCBsaXN0IChBQ0wpIHBlcm1pc3Npb24uCgpBQ0wgZXZhbHVhdGlvbiBvcmRlcjoKMS4gSWYgb24gZGVueWxpc3Qg4oaSIGRlbmllZAoyLiBJZiBhbGxvd2xpc3QgaXMgZW1wdHkgT1Igb24gYWxsb3dsaXN0IOKGkiBhbGxvd2VkCjMuIE90aGVyd2lzZSDihpIgZGVuaWVkCgojIEFyZ3VtZW50cwoqIGBzZW5kZXJgIC0gT0FwcCBjb250cmFjdCBhZGRyZXNzIHRvIGNoZWNrAAAAAAdoYXNfYWNsAAAAAAEAAAAAAAAABnNlbmRlcgAAAAAAEwAAAAEAAAABAAAAAAAAADFSZXR1cm5zIHRoZSBudW1iZXIgb2YgYWRkcmVzc2VzIG9uIHRoZSBhbGxvd2xpc3QuAAAAAAAADmFsbG93bGlzdF9zaXplAAAAAAAAAAAAAQAAAAQAAAAAAAAAM1JldHVybnMgdGhlIGRlZmF1bHQgZmVlIG11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzLgAAAAAWZGVmYXVsdF9tdWx0aXBsaWVyX2JwcwAAAAAAAAAAAAEAAAAEAAAAAAAAADVSZXR1cm5zIHRoZSBkZXBvc2l0IGFkZHJlc3Mgd2hlcmUgZmVlcyBhcmUgY29sbGVjdGVkLgAAAAAAAA9kZXBvc2l0X2FkZHJlc3MAAAAAAAAAAAEAAAATAAAAAAAAAChSZXR1cm5zIHRoZSBwcmljZSBmZWVkIGNvbnRyYWN0IGFkZHJlc3MuAAAACnByaWNlX2ZlZWQAAAAAAAAAAAABAAAAEwAAAAAAAAB8UmV0dXJucyBzdXBwb3J0ZWQgb3B0aW9uIHR5cGVzIGZvciBhIGRlc3RpbmF0aW9uIGVuZHBvaW50LgoKIyBBcmd1bWVudHMKKiBgZWlkYCAtIERlc3RpbmF0aW9uIGVuZHBvaW50IElEIChjaGFpbiBpZGVudGlmaWVyKQAAABpnZXRfc3VwcG9ydGVkX29wdGlvbl90eXBlcwAAAAAAAQAAAAAAAAADZWlkAAAAAAQAAAABAAAD6AAAAA4AAAAAAAAAMFJldHVybnMgdGhlIHdvcmtlciBmZWUgbGlicmFyeSBjb250cmFjdCBhZGRyZXNzLgAAAA53b3JrZXJfZmVlX2xpYgAAAAAAAAAAAAEAAAATAAAAAAAAAERBc3NpZ25zIGEgam9iIHRvIHRoZSBleGVjdXRvciBhbmQgcmV0dXJucyBmZWUgcmVjaXBpZW50IGluZm9ybWF0aW9uLgAAAAphc3NpZ25fam9iAAAAAAAFAAAAAAAAAAhzZW5kX2xpYgAAABMAAAAAAAAABnNlbmRlcgAAAAAAEwAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAAAAAA1jYWxsZGF0YV9zaXplAAAAAAAABAAAAAAAAAAHb3B0aW9ucwAAAAAOAAAAAQAAB9AAAAAMRmVlUmVjaXBpZW50AAAAAAAAADdDYWxjdWxhdGVzIHRoZSBleGVjdXRpb24gZmVlIGZvciBhIGNyb3NzLWNoYWluIG1lc3NhZ2UuAAAAAAdnZXRfZmVlAAAAAAUAAAAAAAAACHNlbmRfbGliAAAAEwAAAAAAAAAGc2VuZGVyAAAAAAATAAAAAAAAAAdkc3RfZWlkAAAAAAQAAAAAAAAADWNhbGxkYXRhX3NpemUAAAAAAAAEAAAAAAAAAAdvcHRpb25zAAAAAA4AAAABAAAACwAAAAAAAABAU2V0cyBkZXN0aW5hdGlvbi1zcGVjaWZpYyBjb25maWd1cmF0aW9ucyBmb3IgbXVsdGlwbGUgZW5kcG9pbnRzLgAAAA5zZXRfZHN0X2NvbmZpZwAAAAAAAgAAAAAAAAAFYWRtaW4AAAAAAAATAAAAAAAAAAZwYXJhbXMAAAAAA+oAAAfQAAAAEVNldERzdENvbmZpZ1BhcmFtAAAAAAAAAAAAAAAAAAA+UmV0dXJucyB0aGUgZGVzdGluYXRpb24gY29uZmlndXJhdGlvbiBmb3IgYSBzcGVjaWZpYyBlbmRwb2ludC4AAAAAAApkc3RfY29uZmlnAAAAAAABAAAAAAAAAAdkc3RfZWlkAAAAAAQAAAABAAAD6AAAB9AAAAAJRHN0Q29uZmlnAAAAAAAAAAAAAJFOYXRpdmUgdG9rZW4gZHJvcHMuCgpUcmFuc2ZlcnMgbmF0aXZlIHRva2VucyB0byBlYWNoIHJlY2VpdmVyIHNwZWNpZmllZCBpbiB0aGUgcGFyYW1ldGVycyBhbmQKdHJhY2tzIHRoZSBzdWNjZXNzL2ZhaWx1cmUgc3RhdHVzIG9mIGVhY2ggdHJhbnNmZXIuAAAAAAAAC25hdGl2ZV9kcm9wAAAAAAUAAAAAAAAABWFkbWluAAAAAAAAEwAAAAAAAAAGb3JpZ2luAAAAAAfQAAAABk9yaWdpbgAAAAAAAAAAAAdkc3RfZWlkAAAAAAQAAAAAAAAABG9hcHAAAAATAAAAAAAAABJuYXRpdmVfZHJvcF9wYXJhbXMAAAAAA+oAAAfQAAAAEE5hdGl2ZURyb3BQYXJhbXMAAAAAAAAAAAAAACpSZXR1cm5zIHRoZSBlbmRwb2ludCBhZGRyZXNzIGZyb20gc3RvcmFnZS4AAAAAAAhlbmRwb2ludAAAAAAAAAABAAAAEwAAAAAAAAJJSW5pdGlhbGl6ZXMgdGhlIGV4ZWN1dG9yIGNvbnRyYWN0LgoKU2V0cyB1cCBvd25lcnNoaXAsIHdvcmtlciBjb25maWd1cmF0aW9uLCBhbmQgZW5kcG9pbnQgYWRkcmVzcy4KCiMgQXJndW1lbnRzCiogYGVuZHBvaW50YCAtIExheWVyWmVybyBFbmRwb2ludCBWMiBjb250cmFjdCBhZGRyZXNzCiogYG93bmVyYCAtIENvbnRyYWN0IG93bmVyIGFkZHJlc3MKKiBgYWRtaW5zYCAtIEluaXRpYWwgYWRtaW4gYWRkcmVzc2VzIChtdXN0IG5vdCBiZSBlbXB0eSkKKiBgbWVzc2FnZV9saWJzYCAtIFN1cHBvcnRlZCBtZXNzYWdlIGxpYnJhcnkgYWRkcmVzc2VzIChlLmcuLCBVTE4zMDIpCiogYHByaWNlX2ZlZWRgIC0gUHJpY2UgZmVlZCBjb250cmFjdCBhZGRyZXNzIGZvciBmZWUgY2FsY3VsYXRpb25zCiogYGRlZmF1bHRfbXVsdGlwbGllcl9icHNgIC0gRGVmYXVsdCBmZWUgbXVsdGlwbGllciBpbiBiYXNpcyBwb2ludHMgKDEwMDAwID0gMXgpCiogYHdvcmtlcl9mZWVfbGliYCAtIFdvcmtlciBmZWUgbGlicmFyeSBjb250cmFjdCBhZGRyZXNzCiogYGRlcG9zaXRfYWRkcmVzc2AgLSBBZGRyZXNzIHRvIHJlY2VpdmUgZmVlIHBheW1lbnRzAAAAAAAADV9fY29uc3RydWN0b3IAAAAAAAAIAAAAAAAAAAhlbmRwb2ludAAAABMAAAAAAAAABW93bmVyAAAAAAAAEwAAAAAAAAAGYWRtaW5zAAAAAAPqAAAAEwAAAAAAAAAMbWVzc2FnZV9saWJzAAAD6gAAABMAAAAAAAAACnByaWNlX2ZlZWQAAAAAABMAAAAAAAAAFmRlZmF1bHRfbXVsdGlwbGllcl9icHMAAAAAAAQAAAAAAAAADndvcmtlcl9mZWVfbGliAAAAAAATAAAAAAAAAA9kZXBvc2l0X2FkZHJlc3MAAAAAEwAAAAAAAAAAAAAAsldpdGhkcmF3cyBhIHRva2VuIGZyb20gdGhlIGNvbnRyYWN0IHRvIGEgc3BlY2lmaWVkIGFkZHJlc3MuCgojIEFyZ3VtZW50cwoqIGB0b2tlbmAgLSBUaGUgdG9rZW4gY29udHJhY3QgYWRkcmVzcwoqIGB0b2AgLSBUaGUgcmVjaXBpZW50IGFkZHJlc3MKKiBgYW1vdW50YCAtIFRoZSBhbW91bnQgdG8gd2l0aGRyYXcAAAAAAA53aXRoZHJhd190b2tlbgAAAAAABAAAAAAAAAAFYWRtaW4AAAAAAAATAAAAAAAAAAV0b2tlbgAAAAAAABMAAAAAAAAAAnRvAAAAAAATAAAAAAAAAAZhbW91bnQAAAAAAAsAAAAAAAAAAAAAAOhTZXRzIGFkbWluIHN0YXR1cyBmb3IgYW4gYWRkcmVzcy4gUmVxdWlyZXMgb3duZXIgYXV0aG9yaXphdGlvbi4KClRoaXMgaXMgdGhlIG11bHRpc2lnL3F1b3J1bSBwYXRoIGZvciBhZG1pbiBtYW5hZ2VtZW50LgoKIyBBcmd1bWVudHMKKiBgYWRtaW5gIC0gVGhlIGFkZHJlc3MgdG8gc2V0IGFkbWluIHN0YXR1cyBmb3IKKiBgYWN0aXZlYCAtIFdoZXRoZXIgdGhlIGFkZHJlc3Mgc2hvdWxkIGJlIGFuIGFkbWluAAAACXNldF9hZG1pbgAAAAAAAAIAAAAAAAAABWFkbWluAAAAAAAAEwAAAAAAAAAGYWN0aXZlAAAAAAABAAAAAAAAAAAAAAAAAAAAB3VwZ3JhZGUAAAAAAQAAAAAAAAANbmV3X3dhc21faGFzaAAAAAAAA+4AAAAgAAAAAAAAAAAAAAAAAAAAB21pZ3JhdGUAAAAAAQAAAAAAAAAObWlncmF0aW9uX2RhdGEAAAAAB9AAAAANTWlncmF0aW9uRGF0YQAAAAAAAAAAAAAAAAAAAAAAAAphdXRob3JpemVyAAAAAAAAAAAAAQAAABMAAAACAAAAAAAAAAAAAAAPRXhlY3V0b3JTdG9yYWdlAAAAAAIAAAABAAAAAAAAAAlEc3RDb25maWcAAAAAAAABAAAABAAAAAAAAAAAAAAACEVuZHBvaW50AAAAAAAAAY9TZXRzIFRUTCBjb25maWdzIGZvciBpbnN0YW5jZSBhbmQgcGVyc2lzdGVudCBzdG9yYWdlLgoKLSBgTm9uZWAgdmFsdWVzIHJlbW92ZSB0aGUgY29ycmVzcG9uZGluZyBjb25maWcgKGRpc2FibGVzIGF1dG8tZXh0ZW5zaW9uIGZvciB0aGF0IHR5cGUpCi0gVmFsaWRhdGVzIHRoYXQgYHRocmVzaG9sZCA8PSBleHRlbmRfdG8gPD0gTUFYX1RUTGAKCiMgQXJndW1lbnRzCi0gYGluc3RhbmNlYCAtIFRUTCBjb25maWcgZm9yIGluc3RhbmNlIHN0b3JhZ2UKLSBgcGVyc2lzdGVudGAgLSBUVEwgY29uZmlnIGZvciBwZXJzaXN0ZW50IHN0b3JhZ2UKCiMgUGFuaWNzCi0gYFR0bENvbmZpZ0Zyb3plbmAgaWYgY29uZmlncyBhcmUgZnJvemVuCi0gYEludmFsaWRUdGxDb25maWdgIGlmIHZhbGlkYXRpb24gZmFpbHMAAAAAD3NldF90dGxfY29uZmlncwAAAAACAAAAAAAAAAhpbnN0YW5jZQAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAAKcGVyc2lzdGVudAAAAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAAAAAABIUmV0dXJucyB0aGUgY3VycmVudCBUVEwgY29uZmlncyBhcyAoaW5zdGFuY2VfY29uZmlnLCBwZXJzaXN0ZW50X2NvbmZpZykuAAAAC3R0bF9jb25maWdzAAAAAAAAAAABAAAD7QAAAAIAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAA4VBlcm1hbmVudGx5IGZyZWV6ZXMgVFRMIGNvbmZpZ3MsIHByZXZlbnRpbmcgYW55IGZ1dHVyZSBtb2RpZmljYXRpb25zLgoKVGhpcyBpcyBpcnJldmVyc2libGUgYW5kIHByb3ZpZGVzIGltbXV0YWJpbGl0eSBndWFyYW50ZWVzIHRvIHVzZXJzLgpFbWl0cyBgVHRsQ29uZmlnc0Zyb3plbmAgZXZlbnQuCgojIFBhbmljcwotIGBUdGxDb25maWdBbHJlYWR5RnJvemVuYCBpZiBhbHJlYWR5IGZyb3plbgAAAAAAABJmcmVlemVfdHRsX2NvbmZpZ3MAAAAAAAAAAAAAAAAAAAAAACdSZXR1cm5zIHdoZXRoZXIgVFRMIGNvbmZpZ3MgYXJlIGZyb3plbi4AAAAAFWlzX3R0bF9jb25maWdzX2Zyb3plbgAAAAAAAAAAAAABAAAAAQAAAAAAAAClRXh0ZW5kcyB0aGUgaW5zdGFuY2UgVFRMLgoKIyBBcmd1bWVudHMKCiogYHRocmVzaG9sZGAgLSBUaGUgdGhyZXNob2xkIHRvIGV4dGVuZCB0aGUgVFRMIChpZiBjdXJyZW50IFRUTCBpcyBiZWxvdyB0aGlzLCBleHRlbmQpLgoqIGBleHRlbmRfdG9gIC0gVGhlIFRUTCB0byBleHRlbmQgdG8uAAAAAAAAE2V4dGVuZF9pbnN0YW5jZV90dGwAAAAAAgAAAAAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAAAAAAJZXh0ZW5kX3RvAAAAAAAABAAAAAAAAAAAAAAAPlJldHVybnMgdGhlIGN1cnJlbnQgb3duZXIgYWRkcmVzcywgb3IgTm9uZSBpZiBubyBvd25lciBpcyBzZXQuAAAAAAAFb3duZXIAAAAAAAAAAAAAAQAAA+gAAAATAAAAAAAAAFlSZXR1cm5zIHRoZSBwZW5kaW5nIG93bmVyIGFkZHJlc3MgZm9yIDItc3RlcCB0cmFuc2Zlciwgb3IgTm9uZSBpZiBubyB0cmFuc2ZlciBpcyBwZW5kaW5nLgAAAAAAAA1wZW5kaW5nX293bmVyAAAAAAAAAAAAAAEAAAPoAAAAEwAAAAAAAAErVHJhbnNmZXJzIG93bmVyc2hpcCBpbW1lZGlhdGVseSB0byBhIG5ldyBhZGRyZXNzLgoKVXNlIHdpdGggY2F1dGlvbiAtIGlmIHlvdSB0cmFuc2ZlciB0byBhIHdyb25nIGFkZHJlc3MsIG93bmVyc2hpcCBpcyBsb3N0IGZvcmV2ZXIuCkNvbnNpZGVyIHVzaW5nIGBwcm9wb3NlX293bmVyc2hpcF90cmFuc2ZlcmAgaW5zdGVhZC4KCiMgUGFuaWNzCi0gYE93bmVyTm90U2V0YCBpZiBubyBvd25lciBpcyBjdXJyZW50bHkgc2V0Ci0gYFRyYW5zZmVySW5Qcm9ncmVzc2AgaWYgYSAyLXN0ZXAgdHJhbnNmZXIgaXMgaW4gcHJvZ3Jlc3MAAAAAEnRyYW5zZmVyX293bmVyc2hpcAAAAAAAAQAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAAAAAACXFByb3Bvc2VzIGFuIG93bmVyc2hpcCB0cmFuc2ZlciB0byBhIG5ldyBhZGRyZXNzLgoKVGhlIG5ldyBvd25lciBtdXN0IGNhbGwgYGFjY2VwdF9vd25lcnNoaXAoKWAgd2l0aGluIGB0dGxgIGxlZGdlcnMKdG8gY29tcGxldGUgdGhlIHRyYW5zZmVyLiBUaGUgcGVuZGluZyB0cmFuc2ZlciB3aWxsIGF1dG9tYXRpY2FsbHkgZXhwaXJlIGFmdGVyLgoKIyBBcmd1bWVudHMKLSBgbmV3X293bmVyYCAtIFRoZSBwcm9wb3NlZCBuZXcgb3duZXIKLSBgdHRsYCAtIE51bWJlciBvZiBsZWRnZXJzIHRoZSBuZXcgb3duZXIgaGFzIHRvIGFjY2VwdC4KVXNlIGAwYCB0byBjYW5jZWwgYSBwZW5kaW5nIHRyYW5zZmVyIChuZXdfb3duZXIgbXVzdCBtYXRjaCBwZW5kaW5nKS4KCiMgUGFuaWNzCi0gYE93bmVyTm90U2V0YCBpZiBubyBvd25lciBpcyBjdXJyZW50bHkgc2V0Ci0gYE5vUGVuZGluZ1RyYW5zZmVyYCB3aGVuIGNhbmNlbGxpbmcgYW5kIG5vIHBlbmRpbmcgdHJhbnNmZXIgZXhpc3RzCi0gYEludmFsaWRUdGxgIGlmIHR0bCBleGNlZWRzIG1heCBUVEwKLSBgSW52YWxpZFBlbmRpbmdPd25lcmAgd2hlbiBjYW5jZWxsaW5nIHdpdGggd3JvbmcgbmV3X293bmVyIGFkZHJlc3MAAAAacHJvcG9zZV9vd25lcnNoaXBfdHJhbnNmZXIAAAAAAAIAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAA3R0bAAAAAAEAAAAAAAAAAAAAAC5QWNjZXB0cyBhIHBlbmRpbmcgMi1zdGVwIG93bmVyc2hpcCB0cmFuc2Zlci4KCk11c3QgYmUgY2FsbGVkIGJ5IHRoZSBwZW5kaW5nIG93bmVyIGJlZm9yZSB0aGUgVFRMIGV4cGlyZXMuCgojIFBhbmljcwotIGBOb1BlbmRpbmdUcmFuc2ZlcmAgaWYgdGhlcmUgaXMgbm8gcGVuZGluZyB0cmFuc2ZlciAob3IgaXQgZXhwaXJlZCkAAAAAAAAQYWNjZXB0X293bmVyc2hpcAAAAAAAAAAAAAAAAAAAAKRQZXJtYW5lbnRseSByZW5vdW5jZXMgb3duZXJzaGlwLgoKIyBQYW5pY3MKLSBgT3duZXJOb3RTZXRgIGlmIG5vIG93bmVyIGlzIGN1cnJlbnRseSBzZXQKLSBgVHJhbnNmZXJJblByb2dyZXNzYCBpZiBhIDItc3RlcCB0cmFuc2ZlciBpcyBpbiBwcm9ncmVzcyAoY2FuY2VsIGl0IGZpcnN0KQAAABJyZW5vdW5jZV9vd25lcnNoaXAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAADUVuZHBvaW50RXJyb3IAAAAAAAAZAAAAAAAAABFBbHJlYWR5UmVnaXN0ZXJlZAAAAAAAAAEAAAAAAAAADUNvbXBvc2VFeGlzdHMAAAAAAAACAAAAAAAAAA9Db21wb3NlTm90Rm91bmQAAAAAAwAAAAAAAAAcRGVmYXVsdFJlY2VpdmVMaWJVbmF2YWlsYWJsZQAAAAQAAAAAAAAAGURl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dHJhX2RhdGEAAAAAAA4AAAAAAAAAAAAAAAZyZWFzb24AAAAAAA4AAAAAAAAAAgAAAAEAAAAtUGFyYW1ldGVycyBmb3Igc2VuZGluZyBhIGNyb3NzLWNoYWluIG1lc3NhZ2UuAAAAAAAAAAAAAA9NZXNzYWdpbmdQYXJhbXMAAAAABQAAACtEZXN0aW5hdGlvbiBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikuAAAAAAdkc3RfZWlkAAAAAAQAAAAcVGhlIG1lc3NhZ2UgcGF5bG9hZCB0byBzZW5kLgAAAAdtZXNzYWdlAAAAAA4AAAAhRW5jb2RlZCBleGVjdXRvciBhbmQgRFZOIG9wdGlvbnMuAAAAAAAAB29wdGlvbnMAAAAADgAAADlXaGV0aGVyIHRvIHBheSBmZWVzIGluIFpSTyB0b2tlbiBpbnN0ZWFkIG9mIG5hdGl2ZSB0b2tlbi4AAAAAAAAKcGF5X2luX3pybwAAAAAAAQAAADVSZWNlaXZlciBhZGRyZXNzIG9uIHRoZSBkZXN0aW5hdGlvbiBjaGFpbiAoMzIgYnl0ZXMpLgAAAAAAAAhyZWNlaXZlcgAAA+4AAAAgAAAAAQAAAE1Tb3VyY2UgbWVzc2FnZSBpbmZvcm1hdGlvbiBpZGVudGlmeWluZyB3aGVyZSBhIGNyb3NzLWNoYWluIG1lc3NhZ2UgY2FtZSBmcm9tLgAAAAAAAAAAAAAGT3JpZ2luAAAAAAADAAAAF05vbmNlIGZvciB0aGlzIHBhdGh3YXkuAAAAAAVub25jZQAAAAAAAAYAAAAuU2VuZGVyIGFkZHJlc3Mgb24gdGhlIHNvdXJjZSBjaGFpbiAoMzIgYnl0ZXMpLgAAAAAABnNlbmRlcgAAAAAD7gAAACAAAAAmU291cmNlIGVuZHBvaW50IElEIChjaGFpbiBpZGVudGlmaWVyKS4AAAAAAAdzcmNfZWlkAAAAAAQAAAABAAAAKEZlZSBzdHJ1Y3R1cmUgZm9yIGNyb3NzLWNoYWluIG1lc3NhZ2luZy4AAAAAAAAADE1lc3NhZ2luZ0ZlZQAAAAIAAAAfRmVlIHBhaWQgaW4gbmF0aXZlIHRva2VuIChYTE0pLgAAAAAKbmF0aXZlX2ZlZQAAAAAACwAAAChGZWUgcGFpZCBpbiBaUk8gdG9rZW4gKExheWVyWmVybyB0b2tlbikuAAAAB3pyb19mZWUAAAAACwAAAAEAAABCUmVjZWlwdCByZXR1cm5lZCBhZnRlciBzdWNjZXNzZnVsbHkgc2VuZGluZyBhIGNyb3NzLWNoYWluIG1lc3NhZ2UuAAAAAAAAAAAAEE1lc3NhZ2luZ1JlY2VpcHQAAAADAAAAKVRoZSBmZWVzIGNoYXJnZWQgZm9yIHNlbmRpbmcgdGhlIG1lc3NhZ2UuAAAAAAAAA2ZlZQAAAAfQAAAADE1lc3NhZ2luZ0ZlZQAAACtHbG9iYWxseSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIG1lc3NhZ2UuAAAAAARndWlkAAAD7gAAACAAAAAkVGhlIG91dGJvdW5kIG5vbmNlIGZvciB0aGlzIHBhdGh3YXkuAAAABW5vbmNlAAAAAAAABgAAAAIAAAA4VHlwZSBvZiBtZXNzYWdlIGxpYnJhcnkgaW5kaWNhdGluZyBzdXBwb3J0ZWQgb3BlcmF0aW9ucy4AAAAAAAAADk1lc3NhZ2VMaWJUeXBlAAAAAAADAAAAAAAAAB9TdXBwb3J0cyBvbmx5IHNlbmRpbmcgbWVzc2FnZXMuAAAAAARTZW5kAAAAAAAAACFTdXBwb3J0cyBvbmx5IHJlY2VpdmluZyBtZXNzYWdlcy4AAAAAAAAHUmVjZWl2ZQAAAAAAAAAALVN1cHBvcnRzIGJvdGggc2VuZGluZyBhbmQgcmVjZWl2aW5nIG1lc3NhZ2VzLgAAAAAAAA5TZW5kQW5kUmVjZWl2ZQAAAAAAAQAAALdWZXJzaW9uIGluZm9ybWF0aW9uIGZvciBhIG1lc3NhZ2UgbGlicmFyeS4KCk5vdGU6IGBtaW5vcmAgYW5kIGBlbmRwb2ludF92ZXJzaW9uYCB1c2UgYHUzMmAgaW5zdGVhZCBvZiBgdThgIGJlY2F1c2UgU3RlbGxhciBkb2VzIG5vdApzdXBwb3J0IGB1OGAgdHlwZXMgaW4gY29udHJhY3QgaW50ZXJmYWNlIGZ1bmN0aW9ucy4AAAAAAAAAABFNZXNzYWdlTGliVmVyc2lvbgAAAAAAAAMAAAAzRW5kcG9pbnQgdmVyc2lvbiAoc2hvdWxkIG5vdCBleGNlZWQgdTg6Ok1BWCA9IDI1NSkuAAAAABBlbmRwb2ludF92ZXJzaW9uAAAABAAAABVNYWpvciB2ZXJzaW9uIG51bWJlci4AAAAAAAAFbWFqb3IAAAAAAAAGAAAAN01pbm9yIHZlcnNpb24gbnVtYmVyIChzaG91bGQgbm90IGV4Y2VlZCB1ODo6TUFYID0gMjU1KS4AAAAABW1pbm9yAAAAAAAABAAAAAEAAAA2VGltZW91dCBjb25maWd1cmF0aW9uIGZvciByZWNlaXZlIGxpYnJhcnkgdHJhbnNpdGlvbnMuAAAAAAAAAAAAB1RpbWVvdXQAAAAAAgAAAChVbml4IHRpbWVzdGFtcCB3aGVuIHRoZSB0aW1lb3V0IGV4cGlyZXMuAAAABmV4cGlyeQAAAAAABgAAAClUaGUgbmV3IGxpYnJhcnkgYWRkcmVzcyB0byB0cmFuc2l0aW9uIHRvLgAAAAAAAANsaWIAAAAAEwAAAAEAAAA1UGFyYW1ldGVycyBmb3Igc2V0dGluZyBtZXNzYWdlIGxpYnJhcnkgY29uZmlndXJhdGlvbi4AAAAAAAAAAAAADlNldENvbmZpZ1BhcmFtAAAAAAADAAAAH1hEUi1lbmNvZGVkIGNvbmZpZ3VyYXRpb24gZGF0YS4AAAAABmNvbmZpZwAAAAAADgAAADBUaGUgdHlwZSBvZiBjb25maWd1cmF0aW9uIChlLmcuLCBleGVjdXRvciwgVUxOKS4AAAALY29uZmlnX3R5cGUAAAAABAAAACdUaGUgZW5kcG9pbnQgSUQgdGhpcyBjb25maWcgYXBwbGllcyB0by4AAAAAA2VpZAAAAAAEAAAAAQAAADFSZXNvbHZlZCBsaWJyYXJ5IGluZm9ybWF0aW9uIHdpdGggZGVmYXVsdCBzdGF0dXMuAAAAAAAAAAAAAA9SZXNvbHZlZExpYnJhcnkAAAAAAgAAAERXaGV0aGVyIHRoaXMgaXMgdGhlIGRlZmF1bHQgbGlicmFyeSAodHJ1ZSkgb3IgT0FwcC1zcGVjaWZpYyAoZmFsc2UpLgAAAAppc19kZWZhdWx0AAAAAAABAAAAHVRoZSByZXNvbHZlZCBsaWJyYXJ5IGFkZHJlc3MuAAAAAAAAA2xpYgAAAAATAAAAAQAAAEhPdXRib3VuZCBwYWNrZXQgY29udGFpbmluZyBhbGwgaW5mb3JtYXRpb24gZm9yIGNyb3NzLWNoYWluIHRyYW5zbWlzc2lvbi4AAAAAAAAADk91dGJvdW5kUGFja2V0AAAAAAAHAAAAGERlc3RpbmF0aW9uIGVuZHBvaW50IElELgAAAAdkc3RfZWlkAAAAAAQAAAAsR2xvYmFsbHkgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgbWVzc2FnZS4AAAAEZ3VpZAAAA+4AAAAgAAAAFFRoZSBtZXNzYWdlIHBheWxvYWQuAAAAB21lc3NhZ2UAAAAADgAAACBPdXRib3VuZCBub25jZSBmb3IgdGhpcyBwYXRod2F5LgAAAAVub25jZQAAAAAAAAYAAAAxUmVjZWl2ZXIgYWRkcmVzcyBvbiBkZXN0aW5hdGlvbiBjaGFpbiAoMzIgYnl0ZXMpLgAAAAAAAAhyZWNlaXZlcgAAA+4AAAAgAAAAH1NlbmRlciBhZGRyZXNzIG9uIHNvdXJjZSBjaGFpbi4AAAAABnNlbmRlcgAAAAAAEwAAABNTb3VyY2UgZW5kcG9pbnQgSUQuAAAAAAdzcmNfZWlkAAAAAAQAAAABAAAAK0EgZmVlIHJlY2lwaWVudCB3aXRoIHRoZSBhbW91bnQgdG8gYmUgcGFpZC4AAAAAAAAAAAxGZWVSZWNpcGllbnQAAAACAAAAFUFtb3VudCBvZiBmZWUgdG8gcGF5LgAAAAAAAAZhbW91bnQAAAAAAAsAAAAfVGhlIGFkZHJlc3MgdG8gc2VuZCB0aGUgZmVlIHRvLgAAAAACdG8AAAAAABMAAAABAAAAPFJlc3VsdCBvZiBzZW5kIG9wZXJhdGlvbiBjb250YWluaW5nIGZlZXMgYW5kIGVuY29kZWQgcGFja2V0LgAAAAAAAAANRmVlc0FuZFBhY2tldAAAAAAAAAMAAAAqVGhlIGVuY29kZWQgcGFja2V0IHJlYWR5IGZvciB0cmFuc21pc3Npb24uAAAAAAAOZW5jb2RlZF9wYWNrZXQAAAAAAA4AAAA/TGlzdCBvZiBuYXRpdmUgdG9rZW4gZmVlIHJlY2lwaWVudHMgKGV4ZWN1dG9yLCBEVk5zLCB0cmVhc3VyeSkuAAAAABVuYXRpdmVfZmVlX3JlY2lwaWVudHMAAAAAAAPqAAAH0AAAAAxGZWVSZWNpcGllbnQAAAAsTGlzdCBvZiBaUk8gdG9rZW4gZmVlIHJlY2lwaWVudHMgKHRyZWFzdXJ5KS4AAAASenJvX2ZlZV9yZWNpcGllbnRzAAAAAAPqAAAH0AAAAAxGZWVSZWNpcGllbnQAAAAEAAAAHVBhY2tldENvZGVjVjFFcnJvcjogMTEwMC0xMTA5AAAAAAAAAAAAABJQYWNrZXRDb2RlY1YxRXJyb3IAAAAAAAIAAAAAAAAAE0ludmFsaWRQYWNrZXRIZWFkZXIAAAAETAAAAAAAAAAUSW52YWxpZFBhY2tldFZlcnNpb24AAARNAAAABAAAAB1Xb3JrZXJPcHRpb25zRXJyb3I6IDExMTAtMTExOQAAAAAAAAAAAAASV29ya2VyT3B0aW9uc0Vycm9yAAAAAAAJAAAAAAAAABJJbnZhbGlkQnl0ZXNMZW5ndGgAAAAABFYAAAAAAAAAGUludmFsaWRMZWdhY3lPcHRpb25zVHlwZTEAAAAAAARXAAAAAAAAABlJbnZhbGlkTGVnYWN5T3B0aW9uc1R5cGUyAAAAAAAEWAAAAAAAAAARSW52YWxpZE9wdGlvblR5cGUAAAAAAARZAAAAAAAAAA5JbnZhbGlkT3B0aW9ucwAAAAAEWgAAAAAAAAAPSW52YWxpZFdvcmtlcklkAAAABFsAAAAAAAAAHUxlZ2FjeU9wdGlvbnNUeXBlMUdhc092ZXJmbG93AAAAAAAEXAAAAAAAAAAgTGVnYWN5T3B0aW9uc1R5cGUyQW1vdW50T3ZlcmZsb3cAAARdAAAAAAAAAB1MZWdhY3lPcHRpb25zVHlwZTJHYXNPdmVyZmxvdwAAAAAABF4AAAAEAAAAHEJ1ZmZlclJlYWRlckVycm9yOiAxMDAwLTEwMDkAAAAAAAAAEUJ1ZmZlclJlYWRlckVycm9yAAAAAAAAAgAAAAAAAAANSW52YWxpZExlbmd0aAAAAAAAA+gAAAAAAAAAFUludmFsaWRBZGRyZXNzUGF5bG9hZAAAAAAAA+kAAAAEAAAAHEJ1ZmZlcldyaXRlckVycm9yOiAxMDEwLTEwMTkAAAAAAAAAEUJ1ZmZlcldyaXRlckVycm9yAAAAAAAAAQAAAAAAAAAVSW52YWxpZEFkZHJlc3NQYXlsb2FkAAAAAAAD8gAAAAQAAAAfVHRsQ29uZmlndXJhYmxlRXJyb3I6IDEwMjAtMTAyOQAAAAAAAAAAFFR0bENvbmZpZ3VyYWJsZUVycm9yAAAAAwAAAAAAAAAQSW52YWxpZFR0bENvbmZpZwAAA/wAAAAAAAAAD1R0bENvbmZpZ0Zyb3plbgAAAAP9AAAAAAAAABZUdGxDb25maWdBbHJlYWR5RnJvemVuAAAAAAP+AAAABAAAABdPd25hYmxlRXJyb3I6IDEwMzAtMTAzOQAAAAAAAAAADE93bmFibGVFcnJvcgAAAAYAAAAAAAAAE0ludmFsaWRQZW5kaW5nT3duZXIAAAAEBgAAAAAAAAAKSW52YWxpZFR0bAAAAAAEBwAAAAAAAAARTm9QZW5kaW5nVHJhbnNmZXIAAAAAAAQIAAAAAAAAAA9Pd25lckFscmVhZHlTZXQAAAAECQAAAAAAAAALT3duZXJOb3RTZXQAAAAECgAAAAAAAAASVHJhbnNmZXJJblByb2dyZXNzAAAAAAQLAAAABAAAABhCeXRlc0V4dEVycm9yOiAxMDQwLTEwNDkAAAAAAAAADUJ5dGVzRXh0RXJyb3IAAAAAAAABAAAAAAAAAA5MZW5ndGhNaXNtYXRjaAAAAAAEEAAAAAQAAAAbVXBncmFkZWFibGVFcnJvcjogMTA1MC0xMDU5AAAAAAAAAAAQVXBncmFkZWFibGVFcnJvcgAAAAEAAAAAAAAAE01pZ3JhdGlvbk5vdEFsbG93ZWQAAAAEGgAAAAQAAAAYTXVsdGlzaWdFcnJvcjogMTA2MC0xMDY5AAAAAAAAAA1NdWx0aXNpZ0Vycm9yAAAAAAAACAAAAAAAAAASQWxyZWFkeUluaXRpYWxpemVkAAAAAAQkAAAAAAAAAA1JbnZhbGlkU2lnbmVyAAAAAAAEJQAAAAAAAAAOU2lnbmF0dXJlRXJyb3IAAAAABCYAAAAAAAAAE1NpZ25lckFscmVhZHlFeGlzdHMAAAAEJwAAAAAAAAAOU2lnbmVyTm90Rm91bmQAAAAABCgAAAAAAAAAHVRvdGFsU2lnbmVyc0xlc3NUaGFuVGhyZXNob2xkAAAAAAAEKQAAAAAAAAAPVW5zb3J0ZWRTaWduZXJzAAAABCoAAAAAAAAADVplcm9UaHJlc2hvbGQAAAAAAAQrAAAABQAAADBFdmVudCBlbWl0dGVkIHdoZW4gYSBzaWduZXIgaXMgYWRkZWQgb3IgcmVtb3ZlZC4AAAAAAAAACVNpZ25lclNldAAAAAAAAAEAAAAKc2lnbmVyX3NldAAAAAAAAgAAAAAAAAAGc2lnbmVyAAAAAAPuAAAAFAAAAAEAAAAAAAAABmFjdGl2ZQAAAAAAAQAAAAAAAAACAAAABQAAADZFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHNpZ25hdHVyZSB0aHJlc2hvbGQgaXMgY2hhbmdlZC4AAAAAAAAAAAAMVGhyZXNob2xkU2V0AAAAAQAAAA10aHJlc2hvbGRfc2V0AAAAAAAAAQAAAAAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAAAAAACAAAAAgAAAAAAAAAAAAAAD011bHRpc2lnU3RvcmFnZQAAAAACAAAAAAAAAAAAAAAHU2lnbmVycwAAAAAAAAAAAAAAAAlUaHJlc2hvbGQAAAAAAAAFAAAAV0V2ZW50IGVtaXR0ZWQgd2hlbiBvd25lcnNoaXAgaXMgdHJhbnNmZXJyZWQgKGJvdGggc2luZ2xlLXN0ZXAgYW5kIHR3by1zdGVwIGNvbXBsZXRpb24pLgAAAAAAAAAAFE93bmVyc2hpcFRyYW5zZmVycmVkAAAAAQAAABVvd25lcnNoaXBfdHJhbnNmZXJyZWQAAAAAAAACAAAAAAAAAAlvbGRfb3duZXIAAAAAAAATAAAAAAAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAACAAAABQAAADtFdmVudCBlbWl0dGVkIHdoZW4gYSAyLXN0ZXAgb3duZXJzaGlwIHRyYW5zZmVyIGlzIHByb3Bvc2VkLgAAAAAAAAAAFU93bmVyc2hpcFRyYW5zZmVycmluZwAAAAAAAAEAAAAWb3duZXJzaGlwX3RyYW5zZmVycmluZwAAAAAAAwAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAAAAAAN0dGwAAAAABAAAAAAAAAACAAAABQAAACpFdmVudCBlbWl0dGVkIHdoZW4gb3duZXJzaGlwIGlzIHJlbm91bmNlZC4AAAAAAAAAAAAST3duZXJzaGlwUmVub3VuY2VkAAAAAAABAAAAE293bmVyc2hpcF9yZW5vdW5jZWQAAAAAAQAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAACAAAAAgAAAAAAAAAAAAAADk93bmFibGVTdG9yYWdlAAAAAAACAAAAAAAAAAAAAAAFT3duZXIAAAAAAAAAAAAAAAAAAAxQZW5kaW5nT3duZXIAAAABAAAASVRUTCBjb25maWd1cmF0aW9uOiB0aHJlc2hvbGQgKHdoZW4gdG8gZXh0ZW5kKSBhbmQgZXh0ZW5kX3RvICh0YXJnZXQgVFRMKS4AAAAAAAAAAAAACVR0bENvbmZpZwAAAAAAAAIAAAAoVGFyZ2V0IFRUTCBhZnRlciBleHRlbnNpb24gKGluIGxlZGdlcnMpLgAAAAlleHRlbmRfdG8AAAAAAAAEAAAAM1RUTCB0aHJlc2hvbGQgdGhhdCB0cmlnZ2VycyBleHRlbnNpb24gKGluIGxlZGdlcnMpLgAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAUAAAAnRXZlbnQgZW1pdHRlZCB3aGVuIFRUTCBjb25maWdzIGFyZSBzZXQuAAAAAAAAAAANVHRsQ29uZmlnc1NldAAAAAAAAAEAAAAPdHRsX2NvbmZpZ3Nfc2V0AAAAAAIAAAAAAAAACGluc3RhbmNlAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAAAAAAAKcGVyc2lzdGVudAAAAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAAIAAAAFAAAAKkV2ZW50IGVtaXR0ZWQgd2hlbiBUVEwgY29uZmlncyBhcmUgZnJvemVuLgAAAAAAAAAAABBUdGxDb25maWdzRnJvemVuAAAAAQAAABJ0dGxfY29uZmlnc19mcm96ZW4AAAAAAAAAAAACAAAAAgAAAAAAAAAAAAAAEFR0bENvbmZpZ1N0b3JhZ2UAAAADAAAAAAAAAAAAAAAGRnJvemVuAAAAAAAAAAAAAAAAAAhJbnN0YW5jZQAAAAAAAAAAAAAAClBlcnNpc3RlbnQAAAAAAAIAAAAAAAAAAAAAABJVcGdyYWRlYWJsZVN0b3JhZ2UAAAAAAAEAAAAAAAAAAAAAAAlNaWdyYXRpbmcAAAAAAAAEAAAAFldvcmtlckVycm9yOiAxMjAwLTEyOTkAAAAAAAAAAAALV29ya2VyRXJyb3IAAAAAEwAAAAAAAAASQWRtaW5BbHJlYWR5RXhpc3RzAAAAAASwAAAAAAAAAA1BZG1pbk5vdEZvdW5kAAAAAAAEsQAAAAAAAAASQWxyZWFkeU9uQWxsb3dsaXN0AAAAAASyAAAAAAAAABFBbHJlYWR5T25EZW55bGlzdAAAAAAABLMAAAAAAAAAG0F0dGVtcHRpbmdUb1JlbW92ZU9ubHlBZG1pbgAAAAS0AAAAAAAAABREZXBvc2l0QWRkcmVzc05vdFNldAAABLUAAAAAAAAAGk1lc3NhZ2VMaWJBbHJlYWR5U3VwcG9ydGVkAAAAAAS2AAAAAAAAABZNZXNzYWdlTGliTm90U3VwcG9ydGVkAAAAAAS3AAAAAAAAABBOb0FkbWluc1Byb3ZpZGVkAAAEuAAAAAAAAAAKTm90QWxsb3dlZAAAAAAEuQAAAAAAAAAOTm90T25BbGxvd2xpc3QAAAAABLoAAAAAAAAADU5vdE9uRGVueWxpc3QAAAAAAAS7AAAAAAAAABRQYXVzZVN0YXR1c1VuY2hhbmdlZAAABLwAAAAAAAAAD1ByaWNlRmVlZE5vdFNldAAAAAS9AAAAAAAAAAxSZUluaXRpYWxpemUAAAS+AAAAAAAAAAxVbmF1dGhvcml6ZWQAAAS/AAAAAAAAABVVbnN1cHBvcnRlZE1lc3NhZ2VMaWIAAAAAAATAAAAAAAAAABJXb3JrZXJGZWVMaWJOb3RTZXQAAAAABMEAAAAAAAAADldvcmtlcklzUGF1c2VkAAAAAATCAAAABQAAAAAAAAAAAAAACFNldEFkbWluAAAAAQAAAAlzZXRfYWRtaW4AAAAAAAACAAAAAAAAAAVhZG1pbgAAAAAAABMAAAAAAAAAAAAAAAZhY3RpdmUAAAAAAAEAAAAAAAAAAgAAAAUAAAAAAAAAAAAAABZTZXRTdXBwb3J0ZWRNZXNzYWdlTGliAAAAAAABAAAAGXNldF9zdXBwb3J0ZWRfbWVzc2FnZV9saWIAAAAAAAACAAAAAAAAAAttZXNzYWdlX2xpYgAAAAATAAAAAAAAAAAAAAAJc3VwcG9ydGVkAAAAAAAAAQAAAAAAAAACAAAABQAAAAAAAAAAAAAADFNldEFsbG93bGlzdAAAAAEAAAANc2V0X2FsbG93bGlzdAAAAAAAAAIAAAAAAAAABG9hcHAAAAATAAAAAAAAAAAAAAAHYWxsb3dlZAAAAAABAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAALU2V0RGVueWxpc3QAAAAAAQAAAAxzZXRfZGVueWxpc3QAAAACAAAAAAAAAARvYXBwAAAAEwAAAAAAAAAAAAAABmRlbmllZAAAAAAAAQAAAAAAAAACAAAABQAAAAAAAAAAAAAABlBhdXNlZAAAAAAAAQAAAAZwYXVzZWQAAAAAAAEAAAAAAAAABnBhdXNlcgAAAAAAEwAAAAAAAAACAAAABQAAAAAAAAAAAAAACFVucGF1c2VkAAAAAQAAAAh1bnBhdXNlZAAAAAEAAAAAAAAACHVucGF1c2VyAAAAEwAAAAAAAAACAAAABQAAAAAAAAAAAAAAF1NldERlZmF1bHRNdWx0aXBsaWVyQnBzAAAAAAEAAAAac2V0X2RlZmF1bHRfbXVsdGlwbGllcl9icHMAAAAAAAEAAAAAAAAADm11bHRpcGxpZXJfYnBzAAAAAAAEAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAARU2V0RGVwb3NpdEFkZHJlc3MAAAAAAAABAAAAE3NldF9kZXBvc2l0X2FkZHJlc3MAAAAAAQAAAAAAAAAPZGVwb3NpdF9hZGRyZXNzAAAAABMAAAAAAAAAAgAAAAUAAAAAAAAAAAAAAAxTZXRQcmljZUZlZWQAAAABAAAADnNldF9wcmljZV9mZWVkAAAAAAABAAAAAAAAAApwcmljZV9mZWVkAAAAAAATAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAXU2V0U3VwcG9ydGVkT3B0aW9uVHlwZXMAAAAAAQAAABpzZXRfc3VwcG9ydGVkX29wdGlvbl90eXBlcwAAAAAAAgAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAAAAAAAAAAAMb3B0aW9uX3R5cGVzAAAADgAAAAAAAAACAAAABQAAAAAAAAAAAAAAD1NldFdvcmtlckZlZUxpYgAAAAABAAAAEnNldF93b3JrZXJfZmVlX2xpYgAAAAAAAQAAAAAAAAAHZmVlX2xpYgAAAAATAAAAAAAAAAIAAAABAAAA4VBhcmFtZXRlcnMgZm9yIERWTiBmZWUgY2FsY3VsYXRpb24uCgpDb250YWlucyBhbGwgaW5wdXRzIG5lZWRlZCBieSB0aGUgZmVlIGxpYnJhcnkgdG8gY2FsY3VsYXRlIHZlcmlmaWNhdGlvbiBmZWVzCmZvciBjcm9zcy1jaGFpbiBtZXNzYWdlcy4gSW5jbHVkZXMgbWVzc2FnZSBwYXJhbWV0ZXJzLCBjb21tb24gY29uZmlndXJhdGlvbiwKYW5kIGRlc3RpbmF0aW9uLXNwZWNpZmljIHNldHRpbmdzLgAAAAAAAAAAAAAMRHZuRmVlUGFyYW1zAAAACgAAACdOdW1iZXIgb2YgYmxvY2sgY29uZmlybWF0aW9ucyByZXF1aXJlZC4AAAAADWNvbmZpcm1hdGlvbnMAAAAAAAAGAAAATERlZmF1bHQgZmVlIG11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzICh1c2VkIGlmIG5vIGRzdC1zcGVjaWZpYyBtdWx0aXBsaWVyKS4AAAAWZGVmYXVsdF9tdWx0aXBsaWVyX2JwcwAAAAAABAAAACtEZXN0aW5hdGlvbiBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikuAAAAAAdkc3RfZWlkAAAAAAQAAAAjTWluaW11bSBmZWUgbWFyZ2luIGluIFVTRCAoc2NhbGVkKS4AAAAAEGZsb29yX21hcmdpbl91c2QAAAAKAAABED09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkRlc3RpbmF0aW9uLVNwZWNpZmljIENvbmZpZ3VyYXRpb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KR2FzIGVzdGltYXRlIGZvciB2ZXJpZmljYXRpb24gb24gZGVzdGluYXRpb24gY2hhaW4uAAAAA2dhcwAAAAAKAAAARkRlc3RpbmF0aW9uLXNwZWNpZmljIGZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cyAoMCA9IHVzZSBkZWZhdWx0KS4AAAAAAA5tdWx0aXBsaWVyX2JwcwAAAAAABAAAAAtEVk4gb3B0aW9ucwAAAAAHb3B0aW9ucwAAAAAOAAABED09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNvbW1vbiBDb25maWd1cmF0aW9uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClByaWNlIGZlZWQgY29udHJhY3QgYWRkcmVzcyBmb3IgZ2FzIHByaWNlIGFuZCBleGNoYW5nZSByYXRlIGRhdGEuAAAACnByaWNlX2ZlZWQAAAAAABMAAAAnTnVtYmVyIG9mIHJlcXVpcmVkIHNpZ25hdHVyZXMgKHF1b3J1bSkuAAAAAAZxdW9ydW0AAAAAAAQAAADlPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KTWVzc2FnZSBQYXJhbWV0ZXJzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClRoZSBPQXBwIHNlbmRlciBhZGRyZXNzLgAAAAAAAAZzZW5kZXIAAAAAABMAAAABAAAA41BhcmFtZXRlcnMgZm9yIGV4ZWN1dG9yIGZlZSBjYWxjdWxhdGlvbi4KCkNvbnRhaW5zIGFsbCBpbnB1dHMgbmVlZGVkIGJ5IHRoZSBmZWUgbGlicmFyeSB0byBjYWxjdWxhdGUgZXhlY3V0aW9uIGZlZXMKZm9yIGNyb3NzLWNoYWluIG1lc3NhZ2VzLiBJbmNsdWRlcyBtZXNzYWdlIHBhcmFtZXRlcnMsIGNvbW1vbiBjb25maWd1cmF0aW9uLAphbmQgZGVzdGluYXRpb24tc3BlY2lmaWMgc2V0dGluZ3MuAAAAAAAAAAAJRmVlUGFyYW1zAAAAAAAACwAAACZTaXplIG9mIHRoZSBtZXNzYWdlIGNhbGxkYXRhIGluIGJ5dGVzLgAAAAAADWNhbGxkYXRhX3NpemUAAAAAAAAEAAAATERlZmF1bHQgZmVlIG11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzICh1c2VkIGlmIG5vIGRzdC1zcGVjaWZpYyBtdWx0aXBsaWVyKS4AAAAWZGVmYXVsdF9tdWx0aXBsaWVyX2JwcwAAAAAABAAAACtEZXN0aW5hdGlvbiBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikuAAAAAAdkc3RfZWlkAAAAAAQAAAAjTWluaW11bSBmZWUgbWFyZ2luIGluIFVTRCAoc2NhbGVkKS4AAAAAEGZsb29yX21hcmdpbl91c2QAAAAKAAAANkJhc2UgZ2FzIGZvciBlYWNoIGx6Q29tcG9zZSBjYWxsIG9uIGRlc3RpbmF0aW9uIGNoYWluLgAAAAAAE2x6X2NvbXBvc2VfYmFzZV9nYXMAAAAABgAAARM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpEZXN0aW5hdGlvbi1TcGVjaWZpYyBDb25maWd1cmF0aW9uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkJhc2UgZ2FzIGZvciBselJlY2VpdmUgZXhlY3V0aW9uIG9uIGRlc3RpbmF0aW9uIGNoYWluLgAAAAATbHpfcmVjZWl2ZV9iYXNlX2dhcwAAAAAGAAAARkRlc3RpbmF0aW9uLXNwZWNpZmljIGZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cyAoMCA9IHVzZSBkZWZhdWx0KS4AAAAAAA5tdWx0aXBsaWVyX2JwcwAAAAAABAAAACxNYXhpbXVtIG5hdGl2ZSB0b2tlbiB2YWx1ZSB0aGF0IGNhbiBiZSBzZW50LgAAAApuYXRpdmVfY2FwAAAAAAAKAAAARkVuY29kZWQgZXhlY3V0b3Igb3B0aW9ucyAobHpSZWNlaXZlIGdhcywgbHpDb21wb3NlLCBuYXRpdmVEcm9wLCBldGMuKS4AAAAAAAdvcHRpb25zAAAAAA4AAAEQPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ29tbW9uIENvbmZpZ3VyYXRpb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUHJpY2UgZmVlZCBjb250cmFjdCBhZGRyZXNzIGZvciBnYXMgcHJpY2UgYW5kIGV4Y2hhbmdlIHJhdGUgZGF0YS4AAAAKcHJpY2VfZmVlZAAAAAAAEwAAAOU9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpNZXNzYWdlIFBhcmFtZXRlcnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KVGhlIE9BcHAgc2VuZGVyIGFkZHJlc3MuAAAAAAAABnNlbmRlcgAAAAAAEwAAAAEAAACER2FzIHByaWNlIGluZm9ybWF0aW9uIGZvciBhIGRlc3RpbmF0aW9uIGVuZHBvaW50LgoKQ29udGFpbnMgdGhlIGV4Y2hhbmdlIHJhdGUgYW5kIGdhcyBjb3N0cyBuZWVkZWQgZm9yIGNyb3NzLWNoYWluIGZlZSBjYWxjdWxhdGlvbnMuAAAAAAAAAAVQcmljZQAAAAAAAAMAAAA3R2FzIGNvc3QgcGVyIGJ5dGUgb2YgY2FsbGRhdGEgb24gdGhlIGRlc3RpbmF0aW9uIGNoYWluLgAAAAAMZ2FzX3Blcl9ieXRlAAAABAAAAEJHYXMgcHJpY2UgaW4gdGhlIHNtYWxsZXN0IHVuaXQgKHdlaSBmb3IgRVZNLCBzdHJvb3BzIGZvciBTdGVsbGFyKS4AAAAAABFnYXNfcHJpY2VfaW5fdW5pdAAAAAAAAAYAAACpUHJpY2UgcmF0aW8gPSAocmVtb3RlIG5hdGl2ZSB0b2tlbiBwcmljZSAvIGxvY2FsIG5hdGl2ZSB0b2tlbiBwcmljZSkgKiBQUklDRV9SQVRJT19ERU5PTUlOQVRPUi4KVXNlZCB0byBjb252ZXJ0IGRlc3RpbmF0aW9uIGNoYWluIGdhcyBjb3N0cyB0byBzb3VyY2UgY2hhaW4gbmF0aXZlIHRva2VuLgAAAAAAAAtwcmljZV9yYXRpbwAAAAAKAAAAAQAAAIBGZWUgZXN0aW1hdGlvbiByZXN1bHQgd2l0aCBkZXRhaWxlZCBicmVha2Rvd24uCgpDb250YWlucyB0aGUgY2FsY3VsYXRlZCBmZWUgYW5kIGFsbCBpbnRlcm1lZGlhdGUgdmFsdWVzIHVzZWQgaW4gdGhlIGNhbGN1bGF0aW9uLgAAAAAAAAALRmVlRXN0aW1hdGUAAAAABAAAADBTb3VyY2UgY2hhaW4gbmF0aXZlIHRva2VuIHByaWNlIGluIFVTRCAoc2NhbGVkKS4AAAAQbmF0aXZlX3ByaWNlX3VzZAAAAAoAAAAlUHJpY2UgcmF0aW8gdXNlZCBmb3IgdGhlIGNhbGN1bGF0aW9uLgAAAAAAAAtwcmljZV9yYXRpbwAAAAAKAAAAMkRlbm9taW5hdG9yIGZvciB0aGUgcHJpY2UgcmF0aW8gKHR5cGljYWxseSAxMF4yMCkuAAAAAAAXcHJpY2VfcmF0aW9fZGVub21pbmF0b3IAAAAACgAAADFUb3RhbCBnYXMgZmVlIGluIHNvdXJjZSBjaGFpbiBuYXRpdmUgdG9rZW4gdW5pdHMuAAAAAAAADXRvdGFsX2dhc19mZWUAAAAAAAALAAAAAgAAAAAAAAAAAAAADVdvcmtlclN0b3JhZ2UAAAAAAAALAAAAAAAAAAAAAAAGUGF1c2VkAAAAAAAAAAAAAAAAAA5EZXBvc2l0QWRkcmVzcwAAAAAAAAAAAAAAAAAJUHJpY2VGZWVkAAAAAAAAAAAAAAAAAAAMV29ya2VyRmVlTGliAAAAAAAAAAAAAAAURGVmYXVsdE11bHRpcGxpZXJCcHMAAAABAAAAAAAAABRTdXBwb3J0ZWRPcHRpb25UeXBlcwAAAAEAAAAEAAAAAAAAAAAAAAALTWVzc2FnZUxpYnMAAAAAAQAAAAAAAAAJQWxsb3dsaXN0AAAAAAAAAQAAABMAAAABAAAAAAAAAAhEZW55bGlzdAAAAAEAAAATAAAAAAAAAAAAAAANQWxsb3dsaXN0U2l6ZQAAAAAAAAAAAAAAAAAABkFkbWlucwAAAIsBDmNvbnRyYWN0bWV0YXYwAAAAAAAAAAZiaW52ZXIAAAAAAAUwLjAuMQAAAAAAAAAAAAAFcnN2ZXIAAAAAAAAGMS45MC4wAAAAAAAAAAAACHJzc2RrdmVyAAAALzIzLjQuMCM2NzNkNmM0ZjIzNjhkMjgyZDI1ZGEyOWJkYTU1YzIxYjhiZTY5Y2E2AAAeEWNvbnRyYWN0ZW52bWV0YXYwAAAAAAAAABcAAAAA";
|
|
11
|
+
export declare const WASM_BASE64 = "AGFzbQEAAAABsAEdYAR+fn5+AX5gAn5+AX5gAX4BfmAAAX5gA35+fgF+YAN/f38AYAJ/fwF+YAJ+fgF/YAN/fn4AYAAAYAABf2ABfwBgAn9/AGABfwF/YAF/AX5gAn5/AGABfgBgAn9+AGAEf39/fwF+YAF+AX9gBX5/f39/AGACf38Bf2ADf39+AGAFfn5+fn4BfmAFf35/f34AYAh+fn5+fn5+fgF+YAJ+fgBgA35/fwF+YAN/f38BfwL9ASoBbAE3AAABbAExAAEBYQEwAAIBdgFkAAEBdgEzAAIBdgEyAAEBdgE2AAEBeAExAAEBdgFfAAMBdgExAAEBYgE4AAIBYgEzAAEBYgFlAAEBYgEwAAIBYwEwAAQBdgE4AAIBdgE5AAIBbAEyAAEBbAFfAAQBeAE3AAMBZAFfAAQBaQEwAAIBZAEwAAQBbAE2AAIBaQEzAAEBaQE1AAIBaQE0AAIBbQFhAAABdgFnAAEBYgFtAAQBaQE4AAIBaQE3AAIBaQE2AAEBaQFfAAIBYgFqAAEBbQE5AAQBeAEwAAEBeAEzAAMBeAE4AAMBbAEwAAEBbAE4AAEBeAE1AAIDqQGnAQUGBwcHBwgJCgsMDQoOBwMDAwsPCQsQDgsFEQgPAxERCwUCEhATDwMGCwwMCgwTDQsLEwoTCg4TDwwRFBERDAgRCBEEEQwCFREREQMCCQIWAQEBCwsBAQsBEAQBEAEQEAMCAwIDAgMCAgMDAQIDAxcYCBcBDAYBAhcRAxkMDBAAAgsCAwwDAwMDAhoBCQoIAwMBAREOAwwDAwkNGwUREQUODAURDBwcBAUBcAEBAQUDAQARBiEEfwFBgIDAAAt/AEGohcAAC38AQYCNwAALfwBBgI3AAAsHkgc1Bm1lbW9yeQIADF9fY2hlY2tfYXV0aABtCnNldF9wYXVzZWQAeAlzZXRfYWRtaW4AehlzZXRfc3VwcG9ydGVkX21lc3NhZ2VfbGliAHsNc2V0X2FsbG93bGlzdAB8DHNldF9kZW55bGlzdAB/GnNldF9kZWZhdWx0X211bHRpcGxpZXJfYnBzAIABE3NldF9kZXBvc2l0X2FkZHJlc3MAggEac2V0X3N1cHBvcnRlZF9vcHRpb25fdHlwZXMAhAESc2V0X3dvcmtlcl9mZWVfbGliAIUBDnNldF9wcmljZV9mZWVkAIcBBnBhdXNlZACKAQhpc19hZG1pbgCLAQZhZG1pbnMAjAEYaXNfc3VwcG9ydGVkX21lc3NhZ2VfbGliAI0BDG1lc3NhZ2VfbGlicwCOAQ9pc19vbl9hbGxvd2xpc3QAjwEOYWxsb3dsaXN0X3NpemUAkAEOaXNfb25fZGVueWxpc3QAkQEHaGFzX2FjbACSARZkZWZhdWx0X211bHRpcGxpZXJfYnBzAJMBD2RlcG9zaXRfYWRkcmVzcwCUARpnZXRfc3VwcG9ydGVkX29wdGlvbl90eXBlcwCWAQ53b3JrZXJfZmVlX2xpYgCXAQpwcmljZV9mZWVkAJgBCmFzc2lnbl9qb2IAmQEHZ2V0X2ZlZQCcAQ5zZXRfZHN0X2NvbmZpZwCgAQpkc3RfY29uZmlnAKEBC25hdGl2ZV9kcm9wAKIBCGVuZHBvaW50AKQBDV9fY29uc3RydWN0b3IApQEOd2l0aGRyYXdfdG9rZW4AqQEHdXBncmFkZQCqAQdtaWdyYXRlAKwBBmZyZWV6ZQCtAQlpc19mcm96ZW4ArwEKYXV0aG9yaXplcgCwAQVvd25lcgCxAQ1wZW5kaW5nX293bmVyALIBEnRyYW5zZmVyX293bmVyc2hpcACzARpwcm9wb3NlX293bmVyc2hpcF90cmFuc2ZlcgC1ARBhY2NlcHRfb3duZXJzaGlwALkBEnJlbm91bmNlX293bmVyc2hpcAC6ARNleHRlbmRfaW5zdGFuY2VfdHRsALsBD3NldF90dGxfY29uZmlncwC8AQt0dGxfY29uZmlncwC/ARJmcmVlemVfdHRsX2NvbmZpZ3MAwQEVaXNfdHRsX2NvbmZpZ3NfZnJvemVuAMIBAV8DAQpfX2RhdGFfZW5kAwILX19oZWFwX2Jhc2UDAwqFrgGnAScAQQAgABCrgICAAEIBIAGtQiCGQgSEIAKtQiCGQgSEEICAgIAAGgubAQIBfwF+I4CAgIAAQRBrIgIkgICAgAACQAJAAkACQCAAQQFxRQ0AIAJBjYPAgABBCBDDgICAACACKAIADQIgAiACKQMIEMSAgIAADAELIAJBhIPAgABBCRDDgICAACACKAIADQEgAiACKQMIIAGtQiCGQgSEEMWAgIAACyACKQMIIQMgAikDAFANAQsACyACQRBqJICAgIAAIAMLDwAgACABEK2AgIAAQQFzCw0AIAAgARCkgICAAFALDwAgACABEK+AgIAAQQFzC6IBAQN/I4CAgIAAQRBrIgIkgICAgAACQAJAAkAgAEL/AYNCDlINACABQv8Bg0IOUQ0BCyAAIAEQpICAgABQIQMMAQsgAiABQgiINwMIIAIgAEIIiDcDAAJAA0AgAhDEgYCAACEDIAJBCGoQxIGAgAAhBCADQYCAxABGDQEgAyAERg0AC0EAIQMMAQsgBEGAgMQARiEDCyACQRBqJICAgIAAIAMLNwEBfkIAIQMCQAJAIAFCAlENACABp0EBcQ0BIAAgAjcDCEIBIQMLIAAgAzcDAA8LELGAgIAAAAsJABDDgYCAAAALWAECfyOAgICAAEEQayIAJICAgIAAIABBBGoQs4CAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMELSAgIAAC0EAELWAgIAAIQEgAEEQaiSAgICAACABQf0BcQsMACAAQQEQy4GAgAALGwAgAK1CIIZCBIQgAa1CIIZCBIQQqICAgAAaC0cCAX8BfkECIQECQCAAEMqBgIAAIgJCAhC4gICAAEUNAEEBIQECQAJAIAJCAhCBgICAAKdB/wFxDgIBAgALAAtBACEBCyABC4sBAgJ/AX4jgICAgABBEGsiACSAgICAACAAQQRqELOAgIAAAkAgACgCBEEBRw0AIAAoAgggACgCDBC0gICAAAtBACEBAkBBABC3gICAACICQgIQuICAgABFDQBBASEBAkACQCACQgIQgYCAgACnQf8BcQ4CAQIACwALQQAhAQsgAEEQaiSAgICAACABC8IBAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQAJAAkACQCAAQf8BcQ4DAAECAAsgAUG2iMCAAEEGEMOAgIAAIAEoAgANAyABIAEpAwgQxICAgAAMAgsgAUG8iMCAAEEIEMOAgIAAIAEoAgANAiABIAEpAwgQxICAgAAMAQsgAUHEiMCAAEEKEMOAgIAAIAEoAgANASABIAEpAwgQxICAgAALIAEpAwghAiABKQMAUA0BCwALIAFBEGokgICAgAAgAgsPACAAIAEQp4CAgABCAVELFQEBfhC6gICAACIAEIKAgIAAGiAAC2YCAX8BfiOAgICAAEEQayIAJICAgIAAIAAQs4CAgAACQCAAKAIAQQFHDQAgACgCBCAAKAIIELSAgIAACyAAELyAgIAAIAApAwghASAAKQMAQYoIEL2AgIAAIABBEGokgICAgAAgAQtKAgF/AX4jgICAgABBEGsiACSAgICAACAAELyAgIAAIAApAwghASAAKQMAQYoIEL2AgIAAIAEQgoCAgAAaIABBEGokgICAgAAgAQtQAQF/I4CAgIAAQRBrIgEkgICAgAAgAUEEahCzgICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQtICAgAALIAAQwoCAgAAgAUEQaiSAgICAAAspAAJAIACnQQFxRQ0ADwsgAUH6d2qtQiCGQoOAgIDggAF8EMCAgIAAAAtCAQF/I4CAgIAAQRBrIgAkgICAgAAgABC/gICAAAJAIAApAwBQDQBCg4CAgLCBARDAgICAAAALIABBEGokgICAgAALkwECAX8CfiOAgICAAEEQayIBJICAgIAAIAFBBGoQs4CAgAACQCABKAIEQQFHDQAgASgCCCABKAIMELSAgIAAC0IAIQICQAJAQQEQwYCAgAAiA0IAELiAgIAARQ0AIANCABCBgICAACICQv8Bg0LNAFINASAAIAI3AwhCASECCyAAIAI3AwAgAUEQaiSAgICAAA8LAAsLACAAEKmAgIAAGguSAQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQCAAQQFxRQ0AIAFByYfAgABBDBDDgICAACABKAIADQIgASABKQMIEMSAgIAADAELIAFBxIfAgABBBRDDgICAACABKAIADQEgASABKQMIEMSAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILTQECfkIAIQECQAJAQQAQwYCAgAAiAkICELiAgIAARQ0AIAJCAhCBgICAACIBQv8Bg0LNAFINASAAIAE3AwhCASEBCyAAIAE3AwAPCwALUQIBfwF+I4CAgIAAQRBrIgMkgICAgAAgAyABIAIQxoGAgABCASEEAkAgAygCAA0AIAAgAykDCDcDCEIAIQQLIAAgBDcDACADQRBqJICAgIAAC0QBAX8jgICAgABBEGsiAiSAgICAACACIAE3AwggAkEIakEBEJ+BgIAAIQEgAEIANwMAIAAgATcDCCACQRBqJICAgIAAC0gBAX8jgICAgABBEGsiAySAgICAACADIAI3AwggAyABNwMAIANBAhCfgYCAACECIABCADcDACAAIAI3AwggA0EQaiSAgICAAAvNAgMBfwJ+AX8jgICAgABBMGsiAiSAgICAABDHgICAACIDIAAQg4CAgAAhBAJAAkACQAJAAkAgAQ0AIAJBCGogBBDIgICAACACKAIIIgVBAkYNASAFQQFxRQ0CIAIoAgwiBSADEISAgIAAQiCIp08NBCADIAWtQiCGQgSEEIWAgIAAIQMMBAsgBEICUQ0CQoOAgICAlgEQwICAgAAACxCxgICAAAALQoOAgICQlgEQwICAgAAACyADIAAQhoCAgAAhAwsgAkEBNgIgIAJBIGogAxDJgICAACACQRRqEMqAgIAAAkAgAigCFEEBRw0AIAJBIGogAigCGCACKAIcEMuAgIAAC0KO5q656ozk1TgQzICAgAAhAyACIAA3AyggAiABrTcDICADQeSIwIAAQQIgAkEgakECEM2AgIAAEIeAgIAAGiACQTBqJICAgIAAC6kBAgF/A34jgICAgABBMGsiACSAgICAACAAQRBqELOAgIAAAkAgACgCEEEBRw0AIAAoAhQgACgCGBC0gICAAAsgAEEBNgIAIABBEGogABDVgICAAAJAIAApAxAiAVANACAAQSRqEMqAgIAAIAAoAiRBAUcNACAAIAAoAiggACgCLBDLgICAAAsQiICAgAAhAiAAKQMYIQMgAEEwaiSAgICAACADIAIgAacbCz0BAn8CQAJAIAFCAlINAEEAIQIMAQtBAUECIAFC/wGDQgRRGyECIAFCIIinIQMLIAAgAzYCBCAAIAI2AgALFQAgABDggICAACABQgEQkoCAgAAaCwwAIABBAhDLgYCAAAslACAAEOCAgIAAQgEgAa1CIIZCBIQgAq1CIIZCBIQQgICAgAAaC2MDAX8BfgF/I4CAgIAAQRBrIgEkgICAgAAgASAANwMAQgIhAkEBIQMCQANAIANFDQEgA0F/aiEDIAAhAgwACwsgASACNwMIIAFBCGpBARCfgYCAACEAIAFBEGokgICAgAAgAAsuAAJAIAEgA0YNAAALIACtQiCGQgSEIAKtQiCGQgSEIAGtQiCGQgSEEKOAgIAACycAIAAQgoCAgAAaAkAgABDPgICAAA0AQoOAgIDAlwEQwICAgAAACwtdAQF/I4CAgIAAQRBrIgEkgICAgAAgAUEEahCzgICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQtICAgAALEMeAgIAAIAAQg4CAgAAhACABQRBqJICAgIAAIABCAlIL0QIDAX8CfgF/I4CAgIAAQTBrIgIkgICAgAAQ0YCAgAAiAyAAEIOAgIAAIQQCQAJAAkACQAJAIAENACACQQhqIAQQyICAgAAgAigCCCIFQQJGDQEgBUEBcUUNAiACKAIMIgUgAxCEgICAAEIgiKdPDQQgAyAFrUIghkIEhBCFgICAACEDDAQLIARCAlENAkKDgICA0JYBEMCAgIAAAAsQsYCAgAAAC0KDgICA4JYBEMCAgIAAAAsgAyAAEIaAgIAAIQMLIAJBAjYCICACQSBqIAMQyYCAgAAgAkEUahDKgICAAAJAIAIoAhRBAUcNACACQSBqIAIoAhggAigCHBDLgICAAAtB9IjAgABBGRDSgICAABDMgICAACEDIAIgAa03AyggAiAANwMgIANBpInAgABBAiACQSBqQQIQzYCAgAAQh4CAgAAaIAJBMGokgICAgAALqQECAX8DfiOAgICAAEEwayIAJICAgIAAIABBEGoQs4CAgAACQCAAKAIQQQFHDQAgACgCFCAAKAIYELSAgIAACyAAQQI2AgAgAEEQaiAAENWAgIAAAkAgACkDECIBUA0AIABBJGoQyoCAgAAgACgCJEEBRw0AIAAgACgCKCAAKAIsEMuAgIAACxCIgICAACECIAApAxghAyAAQTBqJICAgIAAIAMgAiABpxsLRQIBfwF+I4CAgIAAQRBrIgIkgICAgAAgAiAAIAEQxoGAgAACQCACKAIAQQFHDQAACyACKQMIIQMgAkEQaiSAgICAACADC1YBAX8jgICAgABBEGsiASSAgICAACABELOAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBC0gICAAAsgAUEKNgIAIAAgARDUgICAACABQRBqJICAgIAAC00BAn5CACECAkACQCABEOCAgIAAIgNCAhC4gICAAEUNACADQgIQgYCAgAAiAkL/AYNCzQBSDQEgACACNwMIQgEhAgsgACACNwMADwsAC00BAn5CACECAkACQCABEOCAgIAAIgNCARC4gICAAEUNACADQgEQgYCAgAAiAkL/AYNCywBSDQEgACACNwMIQgEhAgsgACACNwMADwsAC3cBA38jgICAgABBIGsiACSAgICAACAAQRBqELOAgIAAAkAgACgCEEEBRw0AIAAoAhQgACgCGBC0gICAAAsgAEEENgIQIABBCGogAEEQahDXgICAACAAKAIIIQEgACgCDCECIABBIGokgICAgAAgAkEAIAFBAXEbC1oCAX4BfwJAAkACQCABEOCAgIAAIgJCAhC4gICAAA0AQQAhAQwBCyACQgIQgYCAgAAiAkL/AYNCBFINASACQiCIpyEDQQEhAQsgACADNgIEIAAgATYCAA8LAAuMAQECfyOAgICAAEEgayIBJICAgIAAIAEQs4CAgAACQCABKAIAQQFHDQAgASgCBCABKAIIELSAgIAACyABQQU2AgAgASAANwMIAkAgARDZgICAACICRQ0AIAFBFGoQyoCAgAAgASgCFEEBRw0AIAEgASgCGCABKAIcEMuAgIAACyABQSBqJICAgIAAIAILEgAgABDggICAAEIBELiAgIAAC1YBAX8jgICAgABBEGsiASSAgICAACABELOAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBC0gICAAAsgAUEJNgIAIAAgARDUgICAACABQRBqJICAgIAAC1YBAX8jgICAgABBEGsiASSAgICAACABELOAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBC0gICAAAsgAUEHNgIAIAAgARDUgICAACABQRBqJICAgIAAC4wBAQJ/I4CAgIAAQSBrIgEkgICAgAAgARCzgICAAAJAIAEoAgBBAUcNACABKAIEIAEoAggQtICAgAALIAFBAzYCACABIAA3AwgCQCABENmAgIAAIgJFDQAgAUEUahDKgICAACABKAIUQQFHDQAgASABKAIYIAEoAhwQy4CAgAALIAFBIGokgICAgAAgAgt3AQN/I4CAgIAAQSBrIgAkgICAgAAgAEEQahCzgICAAAJAIAAoAhBBAUcNACAAKAIUIAAoAhgQtICAgAALIABBBjYCECAAQQhqIABBEGoQ14CAgAAgACgCCCEBIAAoAgwhAiAAQSBqJICAgIAAIAJBACABQQFxGwtdAQF/I4CAgIAAQRBrIgEkgICAgAAgAUEEahCzgICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQtICAgAALENGAgIAAIAAQg4CAgAAhACABQRBqJICAgIAAIABCAlILjwECAn8BfiOAgICAAEEQayIAJICAgIAAIAAQs4CAgAACQCAAKAIAQQFHDQAgACgCBCAAKAIIELSAgIAAC0EAIQEgAEEANgIAAkAgABDggICAACICQgIQuICAgABFDQBBASEBAkACQCACQgIQgYCAgACnQf8BcQ4CAQIACwALQQAhAQsgAEEQaiSAgICAACABC6YEAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCAA4LAAECAwQFBgcICQoACyABQYCMwIAAQQYQw4CAgAAgASgCAA0LIAEgASkDCBDEgICAAAwKCyABQYaMwIAAQQYQw4CAgAAgASgCAA0KIAEgASkDCBDEgICAAAwJCyABQYyMwIAAQQsQw4CAgAAgASgCAA0JIAEgASkDCBDEgICAAAwICyABQZeMwIAAQQkQw4CAgAAgASgCAA0IIAEgASkDCCAAKQMIEMWAgIAADAcLIAFBoIzAgABBDRDDgICAACABKAIADQcgASABKQMIEMSAgIAADAYLIAFBrYzAgABBCBDDgICAACABKAIADQYgASABKQMIIAApAwgQxYCAgAAMBQsgAUG1jMCAAEEUEMOAgIAAIAEoAgANBSABIAEpAwgQxICAgAAMBAsgAUHJjMCAAEEOEMOAgIAAIAEoAgANBCABIAEpAwgQxICAgAAMAwsgAUHXjMCAAEEUEMOAgIAAIAEoAgANAyABIAEpAwggADUCBEIghkIEhBDFgICAAAwCCyABQeuMwIAAQQwQw4CAgAAgASgCAA0CIAEgASkDCBDEgICAAAwBCyABQfeMwIAAQQkQw4CAgAAgASgCAA0BIAEgASkDCBDEgICAAAsgASkDCCECIAEpAwBQDQELAAsgAUEQaiSAgICAACACC3wBAn8jgICAgABBEGsiASSAgICAACABQQRqELOAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBC0gICAAAsCQAJAIAAQ2ICAgABFDQBBACECDAELAkAQ1oCAgAANAEEBIQIMAQsgABDcgICAACECCyABQRBqJICAgIAAIAILKQACQCAAp0EBcUUNAA8LIAFB0HZqrUIghkKDgICAgJYBhBDAgICAAAALaQIBfwF+AkAgASgCCCICIAEoAgxJDQAgAEICNwMADwsgASkDACACrUIghkIEhBCJgICAACEDAkAgAkEBaiICRQ0AIAAgAzcDCCABIAI2AgggACADQv8Bg0LNAFKtNwMADwsQsYCAgAAAC9wCAgJ/Bn4jgICAgABB0ABrIgIkgICAgABBACEDAkADQCADQShGDQEgAkEIaiADakICNwMAIANBCGohAwwACwtCACEEQgEhBQJAIAFC/wGDQswAUg0AIAFByIHAgABBBSACQQhqQQUQ5YCAgAAgAkEwaiACKQMIEOaAgIAAIAIoAjBBAUYNACACKQNIIQEgAikDQCEGIAJBMGogAikDEBDngICAACACKAIwDQAgAikDOCEHIAJBMGogAikDGBDngICAACACKAIwDQAgAikDICIIQv8Bg0IEUg0AIAIpAzghCSACQTBqIAIpAygQ5oCAgAAgAigCMEEBRg0AIAIpA0AhBCAAIAIpA0g3AyggACAENwMgIAAgATcDGCAAIAY3AxAgACAIQiCIpzYCQCAAIAc3AzggACAJNwMwQgAhBUIAIQQLIAAgBTcDACAAIAQ3AwggAkHQAGokgICAgAALMQACQCACIARGDQAACyAAIAGtQiCGQgSEIAOtQiCGQgSEIAKtQiCGQgSEEJuAgIAAGgt7AgF/AX4CQAJAAkAgAadB/wFxIgJBxABGDQAgAkEKRw0BQgAhAyAAQgA3AxggACABQgiINwMQDAILIAEQmYCAgAAhAyABEJqAgIAAIQEgACADNwMYIAAgATcDEEIAIQMMAQsgAEKDkICAgAE3AwhCASEDCyAAIAM3AwALXQIBfwF+AkACQCABp0H/AXEiAkHAAEYNAAJAIAJBBkYNAEIBIQNCg5CAgIABIQEMAgsgAUIIiCEBQgAhAwwBC0IAIQMgARCVgICAACEBCyAAIAM3AwAgACABNwMIC/wBAgF/BX4jgICAgABBMGsiAiSAgICAACACQQhqIAEpAwAgASkDCBDpgICAAEIBIQMCQCACKAIIDQAgAikDECEEIAJBCGogASkDKBDqgICAACACKAIIDQAgAikDECEFIAJBCGogASkDIBDqgICAACACKAIIDQAgAikDECEGIAE1AjAhByACQQhqIAEpAxAgASkDGBDpgICAACACKAIIDQAgAiACKQMQNwMoIAIgBjcDGCACIAU3AxAgAiAENwMIIAIgB0IghkIEhDcDICAAQciBwIAAQQUgAkEIakEFEM2AgIAANwMIQgAhAwsgACADNwMAIAJBMGokgICAgAALRgACQAJAIAFC//////////8AViACQgBSIAJQGw0AIAFCCIZCCoQhAgwBCyACIAEQmICAgAAhAgsgAEIANwMAIAAgAjcDCAtCAQF/I4CAgIAAQRBrIgIkgICAgAAgAiABEKOBgIAAIAIpAwghASAAIAIpAwA3AwAgACABNwMIIAJBEGokgICAgAALgQEBAn8jgICAgABBIGsiAySAgICAAAJAAkAgAadBAXENACAAQoGAgIAwNwMADAELIAMgAhDsgICAAAJAAkAgAygCAEEBRw0AIABBAzYCBEEBIQQMAQsgACADKQMYNwMYIAAgAykDEDcDEEEAIQQLIAAgBDYCAAsgA0EgaiSAgICAAAt9AgF/AX4CQAJAAkACQCABp0H/AXEiAkHFAEYNACACQQtHDQIgACABQj+HNwMYIAAgAUIIhzcDEAwBCyABEJ6AgIAAIQMgARCfgICAACEBIAAgAzcDGCAAIAE3AxALQgAhAQwBCyAAQoOQgICAATcDCEIBIQELIAAgATcDAAuuDQUBfwF+AX8DfgF/I4CAgIAAQcAAayIDJICAgIAAIANBEGogABDugICAAAJAIAMoAhBBAUYNACADKQMYIQRBACEFAkADQCAFQRBGDQEgA0EwaiAFakICNwMAIAVBCGohBQwACwsgAUL/AYNCzABSDQAgAUH0gsCAAEECIANBMGpBAhDlgICAACADQRBqIAMpAzAQ7oCAgAAgAygCEA0AIAMpAzgiAUL/AYNCyABSDQAgAykDGCEAIAEQioCAgABCgICAgHCDQoCAgICACFINACACQv8Bg0LLAFINACADQRBqELOAgIAAAkAgAygCEEEBRw0AIAMoAhQgAygCGBC0gICAAAtBqIXAgACtQiCGQgSEQoSAgIDAARCLgICAACAAEIyAgIAAEI2AgIAAIgZC/wGDQs0AUg0AAkACQCAGEM+AgIAADQBCg4CAgCAhAQwBCyAAIAQgARCOgICAABoCQAJAAkACQCACEISAgIAAQv////8vVg0AIAIQhICAgABCgICAgBBUDQAgAhCPgICAACIBQv8Bg0LLAFINBSABEISAgIAAIQAgA0EANgIIIAMgATcDACADIABCIIg+AgwgA0EQaiADEO+AgIAAIAMpAxAiAUICUQ0FIAGnQQFxDQUCQCADKQMYIgGnQf8BcSIFQcoARg0AIAVBDkcNBgsCQAJAAkACQAJAIAEQ8ICAgABCIIinDgMAAQIKCyADKAIIIAMoAgwQ8YCAgABBAUsNCSADQTBqIAMQ74CAgAAgAykDMCIBQgJRDQkgAadBAXENCSADQRBqIAMpAzgQ8oCAgAAgAygCEEEBRg0JIAMpAyghBiADKQMYIQAgAykDICIBQaSCwIAAQRAQ0oCAgAAQr4CAgAANAyABQbSCwIAAQRAQ0oCAgAAQr4CAgAANAwJAIAFBxILAgABBChDSgICAABCugICAAEUNACABQc6CwIAAQQoQ0oCAgAAQroCAgAANBQsgBhCEgICAAEL/////D1YNAiADQQM2AhQMBgsgAygCCCADKAIMEPGAgIAAQQFLDQggA0EwaiADEO+AgIAAIAMpAzAiAUICUQ0IIAGnQQFxDQggA0EQaiADKQM4EPOAgIAAIAMoAhBFDQMMCAsgAygCCCADKAIMEPGAgIAAQQFLDQcgA0EwaiADEO+AgIAAIAMpAzAiAUICUQ0HIAGnQQFxDQcgA0EQaiADKQM4EPSAgIAAIAMoAhANBwwCCyADQRBqQgEgBhCQgICAABDrgICAACADKAIQQQFxDQMgAykDKCEBIAMpAyAhACACEISAgIAAQiCIIQYCQCAAIAGEQgBSDQAgBkIBUg0CDAMLIAZCAlINAQJAAkAgAhCEgICAAEKAgICAIFQNACACQoSAgIAQEImAgIAAIgJC/wGDQssAUg0IIAIQhICAgAAhBiADQQA2AgggAyACNwMAIAMgBkIgiD4CDCADQRBqIAMQ74CAgAAgAykDECICQgJRDQggAqdBAXENCAJAIAMpAxgiAqdB/wFxIgVBygBGDQAgBUEORw0JCwJAAkACQCACEPCAgIAAQiCIpw4DAAECCwsgAygCCCADKAIMEPGAgIAAQQFLDQogA0EwaiADEO+AgIAAIAMpAzAiAkICUQ0KIAKnQQFxDQogA0EQaiADKQM4EPKAgIAAIAMoAhBBAUYNCiADKQMgIQYgAykDGCEEIAMpAyghAhD1gICAABD2gICAACEHIAIQhICAgABC/////y9WDQMgA0EDNgIUDAcLIAMoAgggAygCDBDxgICAAEEBSw0JIANBMGogAxDvgICAACADKQMwIgFCAlENCSABp0EBcQ0JIANBEGogAykDOBDzgICAACADKAIQDQkMBAsgAygCCCADKAIMEPGAgIAAQQFLDQggA0EwaiADEO+AgIAAIAMpAzAiAUICUQ0IIAGnQQFxDQggA0EQaiADKQM4EPSAgIAAIAMoAhANCAwDCxD3gICAAAALIANBEGpCASACQoSAgIAgEImAgIAAEOuAgIAAIAMoAhBBAXENAyADKQMoIQIgAykDICEIQQMhBSAGQdiCwIAAQQgQ0oCAgAAQroCAgAANBCAEIAcQrICAgAAhCSAIIACFIAIgAYWEQgBSDQQgCUUNAgwECyACEISAgIAAQoCAgIBwg0KAgICAEFINACAAEPWAgIAAEKyAgIAARQ0BC0KDgICAMCEBDAMLQgIhAQwCCyADKAIUIQULIAVBf2qtQiCGQoOAgIAQfCEBCyADQcAAaiSAgICAACABDwsAC0IBAX5CASECAkAgAUL/AYNCyABSDQAgARCKgICAAEKAgICAcINCgICAgIAEUg0AIAAgATcDCEIAIQILIAAgAjcDAAtKAgF+AX9CAiECAkAgASgCCCIDIAEoAgxPDQAgACABKQMAIAOtQiCGQgSEEImAgIAANwMIIAEgA0EBajYCCEIAIQILIAAgAjcDAAsSACAAQbiAwIAAQQMQxYGAgAALGQACQCABIABJDQAgASAAaw8LELGAgIAAAAvTAQICfwN+I4CAgIAAQSBrIgIkgICAgABBACEDAkADQCADQRhGDQEgAkEIaiADakICNwMAIANBCGohAwwACwtCASEEAkAgAUL/AYNCzABSDQAgAUHMhcCAAEEDIAJBCGpBAxDlgICAACACKQMIIgFC/wGDQssAUg0AIAIpAxAiBUL/AYNCzQBSDQACQCACKQMYIganQf8BcSIDQcoARg0AIANBDkcNAQsgACABNwMYIAAgBjcDECAAIAU3AwhCACEECyAAIAQ3AwAgAkEgaiSAgICAAAu+AQICfwF+I4CAgIAAQSBrIgIkgICAgABBACEDAkADQCADQRBGDQEgAiADakICNwMAIANBCGohAwwACwtCASEEAkAgAUL/AYNCzABSDQAgAUH0hcCAAEECIAJBAhDlgICAACACQRBqIAIpAwAQx4GAgAAgAigCEA0AIAIpAxghASACQRBqIAIpAwgQ7oCAgAAgAigCEA0AIAAgAikDGDcDECAAIAE3AwhCACEECyAAIAQ3AwAgAkEgaiSAgICAAAvgAQICfwJ+I4CAgIAAQTBrIgIkgICAgABBACEDAkADQCADQRhGDQEgAkEIaiADakICNwMAIANBCGohAwwACwtCASEEAkAgAUL/AYNCzABSDQAgAUGUhsCAAEEDIAJBCGpBAxDlgICAACACKQMIIgFC/wGDQssAUg0AIAJBIGogAikDEBDHgYCAACACKAIgDQAgAikDKCEFIAJBIGogAikDGBDugICAACACKAIgDQAgAikDKCEEIAAgATcDGCAAIAQ3AxAgACAFNwMIQgAhBAsgACAENwMAIAJBMGokgICAgAALhwECAX8BfiOAgICAAEEQayIAJICAgIAAIABBBGoQs4CAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMELSAgIAACwJAAkBBASAAEKuAgIAAIgFCAhC4gICAAEUNACABQgIQgYCAgAAiAUL/AYNCzQBRDQEACxD3gICAAAALIABBEGokgICAgAAgAQs2AAJAIABBvIPAgABBDBDSgICAABCIgICAABCUgICAACIAQv8Bg0LNAFENABCxgICAAAALIAALCQAQsYCAgAAAC50CAgJ/AX4jgICAgABBEGsiASSAgICAAAJAAkBBASAAp0H/AXEiAkEAR0EBdCACQQFGGyICQQJGDQAgARCzgICAAAJAIAEoAgBBAUcNACABKAIEIAEoAggQtICAgAALELmAgIAAIQAQ34CAgAAgAnNBAXFFDQEgAUEANgIAIAEgAkICEPmAgIAAAkACQCACQQFxDQBCjtKq3O6sz/UAEMyAgIAAIQMgASAANwMAIANBmIrAgABBASABQQEQzYCAgAAQh4CAgAAaDAELQo7SqtzurAMQzICAgAAhAyABIAA3AwAgA0GIisCAAEEBIAFBARDNgICAABCHgICAABoLIAFBEGokgICAgABCAg8LAAtCg4CAgKCXARDAgICAAAALGgAgABDggICAACABrUL/AYMgAhCSgICAABoLjQEBAn8jgICAgABBEGsiAiSAgICAAAJAIABC/wGDQs0AUg0AQQEgAadB/wFxIgNBAEdBAXQgA0EBRhsiA0ECRg0AIAJBBGoQs4CAgAACQCACKAIEQQFHDQAgAigCCCACKAIMELSAgIAACxC5gICAABogACADQQFxEMaAgIAAIAJBEGokgICAgABCAg8LAAuNAQECfyOAgICAAEEQayICJICAgIAAAkAgAEL/AYNCzQBSDQBBASABp0H/AXEiA0EAR0EBdCADQQFGGyIDQQJGDQAgAkEEahCzgICAAAJAIAIoAgRBAUcNACACKAIIIAIoAgwQtICAgAALELmAgIAAGiAAIANBAXEQ0ICAgAAgAkEQaiSAgICAAEICDwsAC6MDAQN/I4CAgIAAQSBrIgIkgICAgAACQAJAAkACQCAAQv8Bg0LNAFINAEEBIAGnQf8BcSIDQQBHQQF0IANBAUYbIgNBAkYNACACQRBqELOAgIAAAkAgAigCEEEBRw0AIAIoAhQgAigCGBC0gICAAAsQuYCAgAAaIAAQ3ICAgAAhBAJAAkAgA0EBcQ0AIARFDQMgAkEDNgIQIAIgADcDGCACQRBqEOCAgIAAQgEQkYCAgAAaENaAgIAAIgRFDQUgBEF/aiEEDAELIAQNAyACQQM2AhAgAiAANwMYIAJBEGoQ/YCAgAAgAkEEahDKgICAAAJAIAIoAgRBAUcNACACQRBqIAIoAgggAigCDBDLgICAAAsQ1oCAgABBAWoiBEUNBAsgBBD+gICAAEG0icCAAEENENKAgIAAEMyAgIAAIQEgAiAANwMYIAIgA603AxAgAUHMicCAAEECIAJBEGpBAhDNgICAABCHgICAABogAkEgaiSAgICAAEICDwsAC0KDgICAgJcBEMCAgIAAAAtCg4CAgKCWARDAgICAAAALELGAgIAAAAsOACAAQQFCARD5gICAAAsxAQF/I4CAgIAAQRBrIgEkgICAgAAgAUEENgIAIAEgABDOgYCAACABQRBqJICAgIAAC+4CAQN/I4CAgIAAQSBrIgIkgICAgAACQAJAAkAgAEL/AYNCzQBSDQBBASABp0H/AXEiA0EAR0EBdCADQQFGGyIDQQJGDQAgAkEQahCzgICAAAJAIAIoAhBBAUcNACACKAIUIAIoAhgQtICAgAALELmAgIAAGiAAENiAgIAAIQQCQAJAIANBAXENACAERQ0DIAJBBTYCECACIAA3AxggAkEQahDggICAAEIBEJGAgIAAGgwBCyAEDQMgAkEFNgIQIAIgADcDGCACQRBqEP2AgIAAIAJBBGoQyoCAgAAgAigCBEEBRw0AIAJBEGogAigCCCACKAIMEMuAgIAAC0HcicCAAEEMENKAgIAAEMyAgIAAIQEgAiAANwMYIAIgA603AxAgAUHwicCAAEECIAJBEGpBAhDNgICAABCHgICAABogAkEgaiSAgICAAEICDwsAC0KDgICAkJcBEMCAgIAAAAtCg4CAgLCWARDAgICAAAALegEBfyOAgICAAEEQayICJICAgIAAAkAgAEL/AYNCzQBSDQAgAUL/AYNCBFINACACQQRqELOAgIAAAkAgAigCBEEBRw0AIAIoAgggAigCDBC0gICAAAsgABDOgICAACABQiCIpxCBgYCAACACQRBqJICAgIAAQgIPCwALcgIBfwF+I4CAgIAAQRBrIgEkgICAgAAgAUEGNgIAIAEgABDOgYCAAEGgisCAAEEaENKAgIAAEMyAgIAAIQIgASAArUIghkIEhDcDACACQciKwIAAQQEgAUEBEM2AgIAAEIeAgIAAGiABQRBqJICAgIAAC6wBAQF/I4CAgIAAQRBrIgIkgICAgAACQCAAQv8Bg0LNAFINACABQv8Bg0LNAFINACACELOAgIAAAkAgAigCAEEBRw0AIAIoAgQgAigCCBC0gICAAAsgABDOgICAACABEIOBgIAAQdCKwIAAQRMQ0oCAgAAQzICAgAAhACACIAE3AwAgAEH0isCAAEEBIAJBARDNgICAABCHgICAABogAkEQaiSAgICAAEICDwsACzEBAX8jgICAgABBEGsiASSAgICAACABQQc2AgAgASAAEM2BgIAAIAFBEGokgICAgAALlwIBAX8jgICAgABBIGsiAySAgICAAAJAIABC/wGDQs0AUg0AIAFC/wGDQgRSDQAgAkL/AYNCyABSDQAgA0EQahCzgICAAAJAIAMoAhBBAUcNACADKAIUIAMoAhgQtICAgAALIAAQzoCAgAAgA0EINgIQIAMgAUIgiD4CFCADQRBqEOCAgIAAIAJCARCSgICAABogA0EEahDKgICAAAJAIAMoAgRBAUcNACADQRBqIAMoAgggAygCDBDLgICAAAtBnIvAgABBGhDSgICAABDMgICAACEAIAMgAjcDGCADIAFChICAgHCDNwMQIABBzIvAgABBAiADQRBqQQIQzYCAgAAQh4CAgAAaIANBIGokgICAgABCAg8LAAusAQEBfyOAgICAAEEQayICJICAgIAAAkAgAEL/AYNCzQBSDQAgAUL/AYNCzQBSDQAgAhCzgICAAAJAIAIoAgBBAUcNACACKAIEIAIoAggQtICAgAALIAAQzoCAgAAgARCGgYCAAEHci8CAAEESENKAgIAAEMyAgIAAIQAgAiABNwMAIABB+IvAgABBASACQQEQzYCAgAAQh4CAgAAaIAJBEGokgICAgABCAg8LAAsxAQF/I4CAgIAAQRBrIgEkgICAgAAgAUEJNgIAIAEgABDNgYCAACABQRBqJICAgIAAC38BAX8jgICAgABBEGsiAiSAgICAAAJAIABC/wGDQs0AUg0AIAFC/wGDQs0AUg0AIAJBBGoQs4CAgAACQCACKAIEQQFHDQAgAigCCCACKAIMELSAgIAACyAAEM6AgIAAIAEQiIGAgAAgARCJgYCAACACQRBqJICAgIAAQgIPCwALMQEBfyOAgICAAEEQayIBJICAgIAAIAFBCjYCACABIAAQzYGAgAAgAUEQaiSAgICAAAtdAgF/AX4jgICAgABBEGsiASSAgICAAEH8isCAAEEOENKAgIAAEMyAgIAAIQIgASAANwMIIAJBlIvAgABBASABQQhqQQEQzYCAgAAQh4CAgAAaIAFBEGokgICAgAALCQAQ34CAgACtCxsAAkAgAEL/AYNCzQBRDQAACyAAEM+AgIAArQsIABDHgICAAAsbAAJAIABC/wGDQs0AUQ0AAAsgABDegICAAK0LCAAQ0YCAgAALGwACQCAAQv8Bg0LNAFENAAALIAAQ3ICAgACtCw8AENaAgIAArUIghkIEhAsbAAJAIABC/wGDQs0AUQ0AAAsgABDYgICAAK0LGwACQCAAQv8Bg0LNAFENAAALIAAQ4YCAgACtCw8AEN2AgIAArUIghkIEhAs+AgF/AX4jgICAgABBEGsiACSAgICAACAAENuAgIAAIAApAwAgACkDCBCVgYCAACEBIABBEGokgICAgAAgAQsNACABQgIgAKdBAXEbC8gBAgJ/AX4jgICAgABBIGsiASSAgICAAAJAIABC/wGDQgRSDQAgAEIgiKchAiABELOAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBC0gICAAAsgAUEINgIAIAEgAjYCBEICIQACQCABEOCAgIAAIgNCARC4gICAAEUNACADQgEQgYCAgAAiAEL/AYNCyABSDQEgAUEUahDKgICAACABKAIUQQFHDQAgASABKAIYIAEoAhwQy4CAgAALIAFBIGokgICAgAAgAA8LAAs+AgF/AX4jgICAgABBEGsiACSAgICAACAAENqAgIAAIAApAwAgACkDCBCVgYCAACEBIABBEGokgICAgAAgAQs+AgF/AX4jgICAgABBEGsiACSAgICAACAAENOAgIAAIAApAwAgACkDCBCVgYCAACEBIABBEGokgICAgAAgAQuzAgEBfyOAgICAAEHAAGsiBSSAgICAAAJAAkACQCAAQv8Bg0LNAFINACABQv8Bg0LNAFINACACQv8Bg0IEUg0AIANC/wGDQgRSDQAgBEL/AYNCyABSDQAgBRCzgICAAAJAIAUoAgBBAUcNACAFKAIEIAUoAggQtICAgAALIAAQgoCAgAAaIAAQ3oCAgABFDQEgBSABIAJCIIinIANCIIinIAQQmoGAgAAgBUEwahDbgICAACAFKQM4IQAgBSkDMEG0CRDigICAACAFQTBqIAUpAwAgBSkDCBCbgYCAACAFKAIwQQFHDQILAAtCg4CAgNCXARDAgICAAAALIAUpAzghASAFIAA3AyggBSABNwMgQdCDwIAAQQIgBUEgakECEM2AgIAAIQAgBUHAAGokgICAgAAgAAvGBQQBfwl+AX8BfiOAgICAAEHwAGsiBSSAgICAACAFELOAgIAAAkAgBSgCAEEBRw0AIAUoAgQgBSgCCBC0gICAAAsCQBDfgICAAA0AAkAgARDhgICAAEUNACAFIAIQnoGAgAACQAJAIAUoAgBBAXFFDQAgBSkDKCEGIAUpAyAhByAFNQJAIQggBSkDOCEJIAUpAzAhCiAFKQMYIQsgBSkDECEMIAUQ04CAgAAgBSkDCCENIAUpAwBBuwkQ4oCAgAAgBRDagICAACAFKQMIIQ4gBSkDAEG+CRDigICAABDdgICAACEPEJOAgIAAIRAgBUHgAGogDCALEOmAgIAAIAUoAmANASAFKQNoIQsgBUHgAGogCRDqgICAACAFKAJgDQEgBSkDaCEMIAVB4ABqIAoQ6oCAgAAgBSgCYA0BIAUpA2ghCSAFQeAAaiAHIAYQ6YCAgAAgBSgCYEEBRg0BIAUpA2ghCiAFIAE3A1AgBSANNwNIIAUgBDcDQCAFIAo3AzggBSAJNwMoIAUgDDcDICAFIAs3AxggBSACrUIghkIEhDcDECAFIA+tQiCGQgSENwMIIAUgA61CIIZCBIQ3AwAgBSAIQiCGQgSENwMwIAVB0ITAgABBCyAFQQsQzYCAgAA3A2ggBSAQNwNgQQAhAgJAA0ACQCACQRBHDQBBACECAkADQCACQRBGDQEgBSACaiAFQeAAaiACaikDADcDACACQQhqIQIMAAsLIAUgDkKO1Oq1kNeyASAFQQIQn4GAgAAQlICAgAAQ7ICAgAAgBSgCAEEBRg0CIAUpAxAhASAAIAUpAxg3AwggACABNwMAIAVB8ABqJICAgIAADwsgBSACakICNwMAIAJBCGohAgwACwsQsYCAgAAAC0KDgICAEBDAgICAAAsAC0KDgICA8JYBEMCAgIAAAAtCg4CAgPCXARDAgICAAAALWwACQAJAIAFCgICAgICAgMAAfEL//////////wBWDQAgASABhSACIAFCP4eFhEIAUg0AIAFCCIZCC4QhAQwBCyACIAEQoICAgAAhAQsgAEIANwMAIAAgATcDCAuLAQEBfyOAgICAAEEQayIFJICAgIAAAkAgAEL/AYNCzQBSDQAgAUL/AYNCzQBSDQAgAkL/AYNCBFINACADQv8Bg0IEUg0AIARC/wGDQsgAUg0AIAUgASACQiCIpyADQiCIpyAEEJqBgIAAIAUpAwAgBSkDCBCdgYCAACEBIAVBEGokgICAgAAgAQ8LAAtDAQF/I4CAgIAAQRBrIgIkgICAgAAgAiAAIAEQm4GAgAACQCACKAIAQQFHDQAACyACKQMIIQEgAkEQaiSAgICAACABC90BAgF/AX4jgICAgABB0ABrIgIkgICAgAAgAhCzgICAAAJAIAIoAgBBAUcNACACKAIEIAIoAggQtICAgAALAkACQAJAQQAgARCrgICAACIDQgEQuICAgABFDQAgAiADQgEQgYCAgAAQ5ICAgAAgAigCAEEBcUUNAQALIABCADcDCCAAQgA3AwAMAQsgAEEQaiACQRBqQcAAENCBgIAAGiAAQgA3AwggAEIBNwMAIAIQyoCAgAAgAigCAEEBRw0AIAEgAigCBCACKAIIEKqAgIAACyACQdAAaiSAgICAAAsaACAArUIghkIEhCABrUIghkIEhBCcgICAAAvzBAUBfwF+AX8BfgJ/I4CAgIAAQaACayICJICAgIAAAkACQCAAQv8Bg0LNAFINACABQv8Bg0LLAFINACACQdABahCzgICAAAJAIAIoAtABQQFHDQAgAigC1AEgAigC2AEQtICAgAALIAAQzoCAgAAgARCEgICAAEIgiCEDIAJB0AFqQRBqIQRCACEAAkADQCAAIANRDQEgASAAQiCGQgSEEImAgIAAIQVBACEGAkADQCAGQRBGDQEgAkGAAWogBmpCAjcDACAGQQhqIQYMAAsLAkACQCAFQv8Bg0LMAFINACAFQfyBwIAAQQIgAkGAAWpBAhDlgICAACACQdABaiACKQOAARDkgICAACACKALQAUEBcQ0AIAJBkAFqIARBwAAQ0IGAgAAaIAIpA4gBIgVC/wGDQgRRDQELIABC/////w9RDQQgAiACQcAAakHAABDQgYCAABoMBAsgAkHAAGogAkGQAWpBwAAQ0IGAgAAaIABC/////w9RDQMgAiACQcAAakHAABDQgYCAACIGQdABaiAGQcAAENCBgIAAGiAGIAVCIIinIgc2ApACQQAgBxCrgICAACEFIAZBkAFqIAZB0AFqEOiAgIAAIAYoApABQQFGDQIgBSAGKQOYAUIBEJKAgIAAGiAGQZABahDKgICAAAJAIAYoApABQQFHDQAgByAGKAKUASAGKAKYARCqgICAAAsgAEIBfCEADAALC0HQgMCAAEEOENKAgIAAEMyAgIAAIQAgAiABNwPQASAAQeSAwIAAQQEgAkHQAWpBARDNgICAABCHgICAABogAkGgAmokgICAgABCAg8LAAsQsYCAgAAAC3oBAX8jgICAgABB4ABrIgEkgICAgAACQCAAQv8Bg0IEUg0AIAEgAEIgiKcQnoGAgAACQAJAIAEoAgBBAXENAEICIQAMAQsgAUHQAGogAUEQahDogICAACABKAJQQQFxDQEgASkDWCEACyABQeAAaiSAgICAACAADwsAC+AGAgJ/B34jgICAgABBwABrIgUkgICAgAACQAJAAkAgAEL/AYNCzQBSDQBBACEGAkADQCAGQRhGDQEgBSAGakICNwMAIAZBCGohBgwACwsgAUL/AYNCzABSDQAgAUGkg8CAAEEDIAVBAxDlgICAAAJAAkAgBSkDACIBp0H/AXEiBkHAAEYNACAGQQZHDQIgAUIIiCEHDAELIAEQlYCAgAAhBwsgBUEoaiAFKQMIEO6AgIAAIAUoAigNACAFKQMQIghC/wGDQgRSDQAgAkL/AYNCBFINACADQv8Bg0LNAFINACAEQv8Bg0LLAFINACAFKQMwIQkgBRCzgICAAAJAIAUoAgBBAUcNACAFKAIEIAUoAggQtICAgAALIAAQzoCAgAAQ9YCAgAAQ9oCAgAAhChCIgICAACELIAQQhICAgABCIIghDEIAIQECQANAIAEgDFENASAEIAFCIIZCBIQQiYCAgAAhDUEAIQYCQANAIAZBEEYNASAFQShqIAZqQgI3AwAgBkEIaiEGDAALCwJAAkAgDUL/AYNCzABSDQAgDUGUgsCAAEECIAVBKGpBAhDlgICAACAFIAUpAygQ7ICAgAAgBSgCAEEBRg0AIAUpAzAiDUL/AYNCzQBRDQELIAGnQX9GGgwFCyABQv////8PUQ0EIAUgBSkDECAFKQMYEJ2BgIAANwM4IAUgDTcDMCAFIAA3AyhBACEGA0ACQCAGQRhHDQBBACEGAkADQCAGQRhGDQEgBSAGaiAFQShqIAZqKQMANwMAIAZBCGohBgwACwsgAUIBfCEBIAsgCkKO7uqVvrbe8wAgBUEDEJ+BgIAAEJaAgIAAQv8Bg0IDUq0QhoCAgAAhCwwCCyAFIAZqQgI3AwAgBkEIaiEGDAALCwtB7IDAgABBExDSgICAABDMgICAACEBIAUgBxCjgYCAACAFKAIAQQFHDQELAAsgBSkDCCENIAUgCTcDMCAFIA03AyggBSAIQoSAgIBwgzcDOEGkg8CAAEEDIAVBKGpBAxDNgICAACENIAUgCzcDICAFIA03AxggBSADNwMQIAUgBDcDCCAFIAJChICAgHCDNwMAIAFBoIHAgABBBSAFQQUQzYCAgAAQh4CAgAAaIAVBwABqJICAgIAAQgIPCxCxgICAAAALOwACQAJAIAFC//////////8AVg0AIAFCCIZCBoQhAQwBCyABEKGAgIAAIQELIABCADcDACAAIAE3AwgLCAAQ9YCAgAAL1QMBAX8jgICAgABBMGsiCCSAgICAAAJAAkAgAEL/AYNCzQBSDQAgAUL/AYNCzQBSDQAgAkL/AYNCywBSDQAgA0L/AYNCywBSDQAgBEL/AYNCzQBSDQAgBUL/AYNCBFINACAGQv8Bg0LNAFINACAHQv8Bg0LNAFINAEGAyx5BgNIfEKaBgIAAQYDLHkGA0h8Qp4GAgABBABDBgICAAEICELiAgIAADQEgARCogYCAACACEISAgIAAIQEgCEEANgIIIAggAjcDACAIIAFCIIg+AgwCQANAIAhBIGogCBDjgICAACAIQRBqIAgpAyAgCCkDKBCwgICAACAIKAIQQQFHDQEgCCkDGEEBEMaAgIAADAALCyADEISAgIAAIQIgCEEANgIIIAggAzcDACAIIAJCIIg+AgwCQANAIAhBIGogCBDjgICAACAIQRBqIAgpAyAgCCkDKBCwgICAACAIKAIQQQFHDQEgCCkDGEEBENCAgIAADAALCyAEEIiBgIAAIAQQiYGAgAAgBUIgiKcQgYGAgAAgBhCGgYCAACAHEIOBgIAAQQEgCBCrgICAACAAQgIQkoCAgAAaIAhBMGokgICAgABCAg8LAAtCg4CAgJCBARDAgICAAAALDgBBASAAIAEQzIGAgAALDgBBAiAAIAEQzIGAgAALDgBBACAAQgIQuIGAgAALxQIDAX8BfgF/I4CAgIAAQcAAayIEJICAgIAAAkAgAEL/AYNCzQBSDQAgAUL/AYNCzQBSDQAgAkL/AYNCzQBSDQAgBCADEOyAgIAAIAQoAgBBAUYNACAEKQMYIQMgBCkDECEFIAQQs4CAgAACQCAEKAIAQQFHDQAgBCgCBCAEKAIIELSAgIAACyAAEM6AgIAAEJOAgIAAIQAgBCAFIAMQnYGAgAA3AzggBCACNwMwIAQgADcDKEEAIQYCQANAAkAgBkEYRw0AQQAhBgJAA0AgBkEYRg0BIAQgBmogBEEoaiAGaikDADcDACAGQQhqIQYMAAsLIAFCju7qlb623vMAIARBAxCfgYCAABCUgICAAEL/AYNCAlINAiAEQcAAaiSAgICAAEICDwsgBCAGakICNwMAIAZBCGohBgwACwsQsYCAgAAACwALmQEBAX8jgICAgABBEGsiASSAgICAACABIAAQ7oCAgAACQAJAIAEoAgBBAUYNACABKQMIIQAgARCzgICAAAJAIAEoAgBBAUcNACABKAIEIAEoAggQtICAgAALELmAgIAAGhCygICAAA0BQQEQq4GAgAAgABCXgICAABogAUEQaiSAgICAAEICDwsAC0KDgICAwIMBEMCAgIAAAAsMAEEBIAAQroGAgAALrgEBAX8jgICAgABBEGsiASSAgICAAAJAAkACQCAAQv8Bg0LIAFINACABQQRqELOAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBC0gICAAAsQuYCAgAAaQQEQtYCAgABB/QFxRQ0BIAAQjYCAgABC/wGDQgJSDQJBABCrgYCAACABQRBqJICAgIAAQgIPCwALQoOAgICwgwEQwICAgAAAC0KDgICAoIMBEMCAgIAAAAtbAQF/I4CAgIAAQRBrIgAkgICAgAAgAEEEahCzgICAAAJAIAAoAgRBAUcNACAAKAIIIAAoAgwQtICAgAALELmAgIAAGkEAQQEQroGAgAAgAEEQaiSAgICAAEICCxoAIAAQyoGAgAAgAa1C/wGDQgIQkoCAgAAaCwkAELKAgIAArQsIABC6gICAAAs+AgF/AX4jgICAgABBEGsiACSAgICAACAAELyAgIAAIAApAwAgACkDCBCVgYCAACEBIABBEGokgICAgAAgAQs+AgF/AX4jgICAgABBEGsiACSAgICAACAAEL+AgIAAIAApAwAgACkDCBCVgYCAACEBIABBEGokgICAgAAgAQt9AgF/AX4jgICAgABBEGsiASSAgICAAAJAIABC/wGDQs0AUg0AIAFBBGoQs4CAgAACQCABKAIEQQFHDQAgASgCCCABKAIMELSAgIAACxC7gICAACECEL6AgIAAIAAQqIGAgAAgAiAAELSBgIAAIAFBEGokgICAgABCAg8LAAthAgF/AX4jgICAgABBEGsiAiSAgICAAEG9hsCAAEEVENKAgIAAEMyAgIAAIQMgAiAANwMIIAIgATcDACADQeSGwIAAQQIgAkECEM2AgIAAEIeAgIAAGiACQRBqJICAgIAAC9wCAgF/An4jgICAgABBIGsiAiSAgICAAAJAAkACQCAAQv8Bg0LNAFINACABQv8Bg0IEUg0AIAJBCGoQs4CAgAACQCACKAIIQQFHDQAgAigCDCACKAIQELSAgIAACxC7gICAACEDAkACQCABQv////8PVg0AIAJBCGoQv4CAgAAgAikDECEBIAIpAwhBiAgQvYCAgAAgASAAEK2AgIAARQ0DELaBgIAADAELELeBgIAAIAFCIIinSQ0DQQEgAEIAELiBgIAAQQEQwYCAgABCACABQoSAgIBwgyIBIAEQgICAgAAaQfSGwIAAQRYQ0oCAgAAQzICAgAAhBCACIAE3AxggAiADNwMQIAIgADcDCCAEQZCHwIAAQQMgAkEIakEDEM2AgIAAEIeAgIAAGgsgAkEgaiSAgICAAEICDwsAC0KDgICA4IABEMCAgIAAAAtCg4CAgPCAARDAgICAAAALEwBBARDBgICAAEIAEJGAgIAAGgszAQJ+EKWAgIAAIQACQBCmgICAAEIgiCIBIABCIIgiAFQNACABpyAAp2sPCxCxgICAAAALFQAgABDBgICAACABIAIQkoCAgAAaC6cBAgF/An4jgICAgABBEGsiACSAgICAACAAELOAgIAAAkAgACgCAEEBRw0AIAAoAgQgACgCCBC0gICAAAsgABC/gICAACAAKQMIIQEgACkDAEGICBC9gICAACABEIKAgIAAGiAAEMKAgIAAAkAgACgCAA0AEPeAgIAAAAsgACkDCCECELaBgIAAIAEQqIGAgAAgAiABELSBgIAAIABBEGokgICAgABCAgugAQIBfwJ+I4CAgIAAQRBrIgAkgICAgAAgABCzgICAAAJAIAAoAgBBAUcNACAAKAIEIAAoAggQtICAgAALELuAgIAAIQEQvoCAgABBABDBgICAAEICEJGAgIAAGkGoh8CAAEETENKAgIAAEMyAgIAAIQIgACABNwMAIAJBvIfAgABBASAAQQEQzYCAgAAQh4CAgAAaIABBEGokgICAgABCAgsxAAJAIABC/wGDQgRSDQAgAUL/AYNCBFINACAAQiCIpyABQiCIpxC0gICAAEICDwsAC98EAQV/I4CAgIAAQdAAayICJICAgIAAIAJBKGogABC9gYCAAAJAIAIoAihBAkYNACACQQhqQQhqIAJBKGpBCGoiAygCADYCACACIAIpAig3AwggAkEoaiABEL2BgIAAIAIoAihBAkYNACACQRhqQQhqIAMoAgA2AgAgAiACKQIoNwMYIAJBKGoQs4CAgAACQCACKAIoQQFHDQAgAigCLCACKAIwELSAgIAACxC5gICAABoCQAJAAkAQtoCAgAANABC3gYCAACIDQYD7gAMgA0GA+4ADSRshBCACIAJBGGo2AiwgAiACQQhqNgIoQQAhAwNAIANBCEYNAwJAIAJBKGogA2ooAgAiBSgCAEEBcUUNACAFKAIIIgYgBEsNAyAFKAIEIAZLDQMLIANBBGohAwwACwtCg4CAgND/ABDAgICAAAALQoOAgIDA/wAQwICAgAAACwJAAkAgAigCCEEBRw0AIAIoAgwgAigCEBCmgYCAAAwBC0EBELeAgIAAQgIQkYCAgAAaCwJAAkAgAigCGEEBRw0AIAIoAhwgAigC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IgEkgICAgAACQAJAAkACQCAAQQFxRQ0AIAFBzojAgABBCRDDgICAACABKAIADQIgASABKQMIEMSAgIAADAELIAFBtojAgABBBhDDgICAACABKAIADQEgASABKQMIEMSAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILdwICfwF+I4CAgIAAQRBrIgIkgICAgABBACEDAkACQCABELeAgIAAIgRCAhC4gICAAEUNACACQQRqIARCAhCBgICAABDIgYCAAEEBIQMgAigCBEEBRg0BIAAgAikCCDcCBAsgACADNgIAIAJBEGokgICAgAAPCwALVgIBfwF+I4CAgIAAQRBrIgMkgICAgAAgABC3gICAACEEIAMgASACEMmBgIAAAkAgAygCAEEBRw0AAAsgBCADKQMIQgIQkoCAgAAaIANBEGokgICAgAALFQAgABDggICAACABQgIQkoCAgAAaCxwAIAAQ4ICAgAAgAa1CIIZCBIRCAhCSgICAABoLuQcBDH8jgICAgABBEGshAwJAAkAgAkEQTw0AIAAhBAwBCwJAIAAgAEEAIABrQQNxIgVqIgZPDQAgBUF/aiEHIAAhBCABIQgCQCAFRQ0AIAUhCSAAIQQgASEIA0AgBCAILQAAOgAAIAhBAWohCCAEQQFqIQQgCUF/aiIJDQALCyAHQQdJDQADQCAEIAgtAAA6AAAgBEEBaiAIQQFqLQAAOgAAIARBAmogCEECai0AADoAACAEQQNqIAhBA2otAAA6AAAgBEEEaiAIQQRqLQAAOgAAIARBBWogCEEFai0AADoAACAEQQZqIAhBBmotAAA6AAAgBEEHaiAIQQdqLQAAOgAAIAhBCGohCCAEQQhqIgQgBkcNAAsLIAYgAiAFayIJQXxxIgdqIQQCQAJAIAEgBWoiCEEDcSIBDQAgBiAETw0BIAghAQNAIAYgASgCADYCACABQQRqIQEgBkEEaiIGIARJDQAMAgsLQQAhAiADQQA2AgwgA0EMaiABciEFAkBBBCABayIKQQFxRQ0AIAUgCC0AADoAAEEBIQILAkAgCkECcUUNACAFIAJqIAggAmovAQA7AQALIAggAWshAiABQQN0IQsgAygCDCEFAkACQCAGQQRqIARJDQAgBiEMDAELQQAgC2tBGHEhDQNAIAYgBSALdiACQQRqIgIoAgAiBSANdHI2AgAgBkEIaiEKIAZBBGoiDCEGIAogBEkNAAsLQQAhBiADQQA6AAggA0EAOgAGAkACQCABQQFHDQAgA0EIaiENQQAhAUEAIQpBACEODAELIAJBBWotAAAhCiADIAJBBGotAAAiAToACCAKQQh0IQpBAiEOIANBBmohDQsCQCAIQQFxRQ0AIA0gAkEEaiAOai0AADoAACADLQAGQRB0IQYgAy0ACCEBCyAMIAogBnIgAUH/AXFyQQAgC2tBGHF0IAUgC3ZyNgIACyAJQQNxIQIgCCAHaiEBCwJAIAQgBCACaiIGTw0AIAJBf2ohCQJAIAJBB3EiCEUNAANAIAQgAS0AADoAACABQQFqIQEgBEEBaiEEIAhBf2oiCA0ACwsgCUEHSQ0AA0AgBCABLQAAOgAAIARBAWogAUEBai0AADoAACAEQQJqIAFBAmotAAA6AAAgBEEDaiABQQNqLQAAOgAAIARBBGogAUEEai0AADoAACAEQQVqIAFBBWotAAA6AAAgBEEGaiABQQZqLQAAOgAAIARBB2ogAUEHai0AADoAACABQQhqIQEgBEEIaiIEIAZHDQALCyAACw4AIAAgASACEM+BgIAACwuKDQEAQYCAwAALgA1Db250cmFjdENyZWF0ZUNvbnRyYWN0SG9zdEZuQ3JlYXRlQ29udHJhY3RXaXRoQ3Rvckhvc3RGbgAAEAAIAAAACAAQABQAAAAcABAAHAAAAGRzdF9jb25maWdfc2V0cGFyYW1zXgAQAAYAAABuYXRpdmVfZHJvcF9hcHBsaWVkbmF0aXZlX2Ryb3BfcGFyYW1zb3JpZ2luc3VjY2VzcwAAtgUQAAcAAAB/ABAAEgAAAMgEEAAEAAAAkQAQAAYAAACXABAABwAAAPYBEAAQAAAAIAIQABMAAAAzAhAAEwAAADoFEAAOAAAARgIQAAoAAABkc3RfY29uZmlnAADwABAACgAAALYFEAAHAAAAcmVjZWl2ZXLIARAABgAAAAwBEAAIAAAAbHpfcmVjZWl2ZV9hbGVydGx6X2NvbXBvc2VfYWxlcnRsel9yZWNlaXZlbHpfY29tcG9zZXRyYW5zZmVycHVibGljX2tleXNpZ25hdHVyZQBgARAACgAAAGoBEAAJAAAARHN0Q29uZmlnRW5kcG9pbnRub25jZXNyY19laWQAAACVARAABQAAAA0CEAAGAAAAmgEQAAcAAABuYXRpdmVfdG9rZW5hbW91bnR0b8gBEAAGAAAAzgEQAAIAAABkZWZhdWx0X211bHRpcGxpZXJfYnBzZmxvb3JfbWFyZ2luX3VzZG9wdGlvbnNzZW5kZXJjYWxsZGF0YV9zaXplbHpfY29tcG9zZV9iYXNlX2dhc2x6X3JlY2VpdmVfYmFzZV9nYXNuYXRpdmVfY2FwEwIQAA0AAADgARAAFgAAALYFEAAHAAAA9gEQABAAAAAgAhAAEwAAADMCEAATAAAAOgUQAA4AAABGAhAACgAAAAYCEAAHAAAAigUQAAoAAAANAhAABgAAAAAAABIAAAAAAAAAAFdhc21hcmdzY29udHJhY3Rmbl9uYW1lALgCEAAEAAAAvAIQAAgAAADEAhAABwAAAGV4ZWN1dGFibGVzYWx0AADkAhAACgAAAO4CEAAEAAAAY29uc3RydWN0b3JfYXJncwQDEAAQAAAA5AIQAAoAAADuAhAABAAAALQCEAAEAAAAdGhyZXNob2xkb3duZXJzaGlwX3RyYW5zZmVycmVkbmV3X293bmVyb2xkX293bmVyUgMQAAkAAABbAxAACQAAAG93bmVyc2hpcF90cmFuc2ZlcnJpbmd0dGwAAABSAxAACQAAAFsDEAAJAAAAigMQAAMAAABvd25lcnNoaXBfcmVub3VuY2VkAFsDEAAJAAAAT3duZXJQZW5kaW5nT3duZXJleHRlbmRfdG8AANUDEAAJAAAANAMQAAkAAAB0dGxfY29uZmlnc19zZXRpbnN0YW5jZXBlcnNpc3RlbnQAAAD/AxAACAAAAAcEEAAKAAAAdHRsX2NvbmZpZ3NfZnJvemVuRnJvemVuSW5zdGFuY2VQZXJzaXN0ZW50TWlncmF0aW5nYWN0aXZlYWRtaW4AAFcEEAAGAAAAXQQQAAUAAABzZXRfc3VwcG9ydGVkX21lc3NhZ2VfbGlibWVzc2FnZV9saWJzdXBwb3J0ZWQAAACNBBAACwAAAJgEEAAJAAAAc2V0X2FsbG93bGlzdGFsbG93ZWRvYXBwwQQQAAcAAADIBBAABAAAAHNldF9kZW55bGlzdGRlbmllZAAA6AQQAAYAAADIBBAABAAAAHBhdXNlcgAAAAUQAAYAAAB1bnBhdXNlchAFEAAIAAAAc2V0X2RlZmF1bHRfbXVsdGlwbGllcl9icHNtdWx0aXBsaWVyX2JwczoFEAAOAAAAc2V0X2RlcG9zaXRfYWRkcmVzc2RlcG9zaXRfYWRkcmVzcwAAYwUQAA8AAABzZXRfcHJpY2VfZmVlZHByaWNlX2ZlZWSKBRAACgAAAHNldF9zdXBwb3J0ZWRfb3B0aW9uX3R5cGVzZHN0X2VpZG9wdGlvbl90eXBlcwAAALYFEAAHAAAAvQUQAAwAAABzZXRfd29ya2VyX2ZlZV9saWJmZWVfbGliAAAA7gUQAAcAAABQYXVzZWRBZG1pbnNNZXNzYWdlTGlic0FsbG93bGlzdEFsbG93bGlzdFNpemVEZW55bGlzdERlZmF1bHRNdWx0aXBsaWVyQnBzRGVwb3NpdEFkZHJlc3NTdXBwb3J0ZWRPcHRpb25UeXBlc1dvcmtlckZlZUxpYlByaWNlRmVlZADX9AEOY29udHJhY3RzcGVjdjAAAAAEAAAAAAAAAAAAAAANRXhlY3V0b3JFcnJvcgAAAAAAAAMAAAAAAAAAD0VpZE5vdFN1cHBvcnRlZAAAAAABAAAAAAAAAAxVbmF1dGhvcml6ZWQAAAACAAAAAAAAABNVbmF1dGhvcml6ZWRDb250ZXh0AAAAAAMAAAAFAAAAAAAAAAAAAAAMRHN0Q29uZmlnU2V0AAAAAQAAAA5kc3RfY29uZmlnX3NldAAAAAAAAQAAAAAAAAAGcGFyYW1zAAAAAAPqAAAH0AAAABFTZXREc3RDb25maWdQYXJhbQAAAAAAAAAAAAACAAAABQAAAAAAAAAAAAAAEU5hdGl2ZURyb3BBcHBsaWVkAAAAAAAAAQAAABNuYXRpdmVfZHJvcF9hcHBsaWVkAAAAAAUAAAAAAAAABm9yaWdpbgAAAAAH0AAAAAZPcmlnaW4AAAAAAAAAAAAAAAAAB2RzdF9laWQAAAAABAAAAAAAAAAAAAAABG9hcHAAAAATAAAAAAAAAAAAAAASbmF0aXZlX2Ryb3BfcGFyYW1zAAAAAAPqAAAH0AAAABBOYXRpdmVEcm9wUGFyYW1zAAAAAAAAAAAAAAAHc3VjY2VzcwAAAAPqAAAAAQAAAAAAAAACAAAAAQAAANtEZXN0aW5hdGlvbiBjaGFpbiBjb25maWd1cmF0aW9uIGZvciBleGVjdXRvciBmZWUgY2FsY3VsYXRpb24uCgpDb250YWlucyBnYXMgY29zdHMgYW5kIGZlZSBwYXJhbWV0ZXJzIHNwZWNpZmljIHRvIGVhY2ggZGVzdGluYXRpb24gY2hhaW4uClRoZXNlIHBhcmFtZXRlcnMgYXJlIHVzZWQgYnkgdGhlIGZlZSBsaWJyYXJ5IHRvIGNhbGN1bGF0ZSBhY2N1cmF0ZSBleGVjdXRpb24gZmVlcy4AAAAAAAAAAAlEc3RDb25maWcAAAAAAAAFAAAAO01pbmltdW0gZmVlIG1hcmdpbiBpbiBVU0QgKHNjYWxlZCkgdG8gZW5zdXJlIHByb2ZpdGFiaWxpdHkuAAAAABBmbG9vcl9tYXJnaW5fdXNkAAAACgAAADpCYXNlIGdhcyBjb3N0IHBlciBsekNvbXBvc2UgY2FsbCBvbiB0aGUgZGVzdGluYXRpb24gY2hhaW4uAAAAAAATbHpfY29tcG9zZV9iYXNlX2dhcwAAAAAGAAAAP0Jhc2UgZ2FzIGNvc3QgZm9yIGx6UmVjZWl2ZSBleGVjdXRpb24gb24gdGhlIGRlc3RpbmF0aW9uIGNoYWluLgAAAAATbHpfcmVjZWl2ZV9iYXNlX2dhcwAAAAAGAAAAUUZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cyBmb3IgdGhpcyBkZXN0aW5hdGlvbiAoMCA9IHVzZSBkZWZhdWx0IG11bHRpcGxpZXIpLgAAAAAAAA5tdWx0aXBsaWVyX2JwcwAAAAAABAAAAEZNYXhpbXVtIG5hdGl2ZSB0b2tlbiB2YWx1ZSB0aGF0IGNhbiBiZSB0cmFuc2ZlcnJlZCB0byB0aGUgZGVzdGluYXRpb24uAAAAAAAKbmF0aXZlX2NhcAAAAAAACgAAAAEAAAB8UGFyYW1ldGVycyBmb3Igc2V0dGluZyBkZXN0aW5hdGlvbiBjb25maWd1cmF0aW9uLgoKVXNlZCB3aGVuIGNvbmZpZ3VyaW5nIGV4ZWN1dG9yIHNldHRpbmdzIGZvciBhIHNwZWNpZmljIGRlc3RpbmF0aW9uIGNoYWluLgAAAAAAAAARU2V0RHN0Q29uZmlnUGFyYW0AAAAAAAACAAAAKENvbmZpZ3VyYXRpb24gZm9yIHRoZSBkZXN0aW5hdGlvbiBjaGFpbi4AAAAKZHN0X2NvbmZpZwAAAAAH0AAAAAlEc3RDb25maWcAAAAAAAArRGVzdGluYXRpb24gZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpLgAAAAAHZHN0X2VpZAAAAAAEAAAAAQAAAGhQYXJhbWV0ZXJzIGZvciBhIG5hdGl2ZSB0b2tlbiBkcm9wLgoKVXNlZCB0byBzcGVjaWZ5IG5hdGl2ZSB0b2tlbiB0cmFuc2ZlcnMgYXMgcGFydCBvZiBleGVjdXRvciBvcHRpb25zLgAAAAAAAAAQTmF0aXZlRHJvcFBhcmFtcwAAAAIAAAAkQW1vdW50IG9mIG5hdGl2ZSB0b2tlbnMgdG8gdHJhbnNmZXIuAAAABmFtb3VudAAAAAAACwAAAC9SZWNlaXZlciBhZGRyZXNzIGZvciB0aGUgbmF0aXZlIHRva2VuIHRyYW5zZmVyLgAAAAAIcmVjZWl2ZXIAAAATAAAAAAAAALhWZXJpZmllcyBhdXRob3JpemF0aW9uIGZvciB0aGUgZXhlY3V0b3IgY29udHJhY3QuCgpUaGUgcHVibGljIGtleSBtdXN0IGNvcnJlc3BvbmQgdG8gYSByZWdpc3RlcmVkIGFkbWluIGFuZCBtdXN0IGhhdmUgc2lnbmVkIHRoZSBzaWduYXR1cmVfcGF5bG9hZC4KVXNlcyBFZDI1NTE5IHNpZ25hdHVyZSB2ZXJpZmljYXRpb24uAAAADF9fY2hlY2tfYXV0aAAAAAMAAAAAAAAAEXNpZ25hdHVyZV9wYXlsb2FkAAAAAAAD7gAAACAAAAAAAAAACWF1dGhfZGF0YQAAAAAAB9AAAAARRXhlY3V0b3JTaWduYXR1cmUAAAAAAAAAAAAADWF1dGhfY29udGV4dHMAAAAAAAPqAAAH0AAAAAdDb250ZXh0AAAAAAEAAAPpAAAAAgAAAAMAAAABAAAAjFNpZ25hdHVyZSBkYXRhIGZvciBDdXN0b20gQWNjb3VudCBhdXRob3JpemF0aW9uLgpDb250YWlucyB0aGUgYWRtaW4ncyBwdWJsaWMga2V5IGFuZCB0aGVpciBFZDI1NTE5IHNpZ25hdHVyZSBvdmVyIHRoZSBhdXRob3JpemF0aW9uIHBheWxvYWQuAAAAAAAAABFFeGVjdXRvclNpZ25hdHVyZQAAAAAAAAIAAABNQWRtaW4ncyBFZDI1NTE5IHB1YmxpYyBrZXkgKDMyIGJ5dGVzKSAtIG11c3QgY29ycmVzcG9uZCB0byBhIHJlZ2lzdGVyZWQgYWRtaW4AAAAAAAAKcHVibGljX2tleQAAAAAD7gAAACAAAAA3RWQyNTUxOSBzaWduYXR1cmUgKDY0IGJ5dGVzKSBvdmVyIHRoZSBzaWduYXR1cmVfcGF5bG9hZAAAAAAJc2lnbmF0dXJlAAAAAAAD7gAAAEAAAAAAAAAA5FNldHMgdGhlIHBhdXNlZCBzdGF0ZSBvZiB0aGUgd29ya2VyLgoKV2hlbiBwYXVzZWQsIHRoZSB3b3JrZXIgd2lsbCByZWplY3QgbmV3IGpvYiBhc3NpZ25tZW50cyAoZS5nLiwgYXNzaWduX2pvYiwgZ2V0X2ZlZSkuCkV4aXN0aW5nIGpvYnMgaW4gcHJvZ3Jlc3MgYXJlIG5vdCBhZmZlY3RlZC4KCiMgQXJndW1lbnRzCiogYHBhdXNlZGAgLSBgdHJ1ZWAgdG8gcGF1c2UsIGBmYWxzZWAgdG8gdW5wYXVzZQAAAApzZXRfcGF1c2VkAAAAAAABAAAAAAAAAAZwYXVzZWQAAAAAAAEAAAAAAAAAAAAAAP1TZXRzIGFkbWluIHN0YXR1cyBmb3IgYW4gYWRkcmVzcy4KCkFkbWlucyBjYW4gY29uZmlndXJlIHdvcmtlciBzZXR0aW5ncyBsaWtlIGZlZSBtdWx0aXBsaWVycywgZGVwb3NpdCBhZGRyZXNzZXMsCmFuZCBzdXBwb3J0ZWQgb3B0aW9uIHR5cGVzLgoKIyBBcmd1bWVudHMKKiBgYWRtaW5gIC0gVGhlIGFkZHJlc3MgdG8gc2V0IGFkbWluIHN0YXR1cyBmb3IKKiBgYWN0aXZlYCAtIGB0cnVlYCB0byBhZGQgYWRtaW4sIGBmYWxzZWAgdG8gcmVtb3ZlAAAAAAAACXNldF9hZG1pbgAAAAAAAAIAAAAAAAAABWFkbWluAAAAAAAAEwAAAAAAAAAGYWN0aXZlAAAAAAABAAAAAAAAAAAAAAE3U2V0cyB3aGV0aGVyIGEgbWVzc2FnZSBsaWJyYXJ5IGlzIHN1cHBvcnRlZCBieSB0aGlzIHdvcmtlci4KCk1lc3NhZ2UgbGlicmFyaWVzIChlLmcuLCBVTE4zMDIpIGNhbGwgd29ya2VycyB0byBhc3NpZ24gam9icy4gT25seSBzdXBwb3J0ZWQKbGlicmFyaWVzIGNhbiBpbnRlcmFjdCB3aXRoIHRoaXMgd29ya2VyLgoKIyBBcmd1bWVudHMKKiBgbWVzc2FnZV9saWJgIC0gVGhlIG1lc3NhZ2UgbGlicmFyeSBjb250cmFjdCBhZGRyZXNzCiogYHN1cHBvcnRlZGAgLSBgdHJ1ZWAgdG8gYWRkIHN1cHBvcnQsIGBmYWxzZWAgdG8gcmVtb3ZlIHN1cHBvcnQAAAAAGXNldF9zdXBwb3J0ZWRfbWVzc2FnZV9saWIAAAAAAAACAAAAAAAAAAttZXNzYWdlX2xpYgAAAAATAAAAAAAAAAlzdXBwb3J0ZWQAAAAAAAABAAAAAAAAAAAAAAFYU2V0cyBhbGxvd2xpc3Qgc3RhdHVzIGZvciBhbiBPQXBwIGFkZHJlc3MuCgpXaGVuIHRoZSBhbGxvd2xpc3QgaXMgZW1wdHksIGFsbCBPQXBwcyBhcmUgYWxsb3dlZCAodW5sZXNzIG9uIGRlbnlsaXN0KS4KV2hlbiB0aGUgYWxsb3dsaXN0IGlzIG5vdCBlbXB0eSwgb25seSBhbGxvd2xpc3RlZCBPQXBwcyBhcmUgYWxsb3dlZC4KRGVueWxpc3QgYWx3YXlzIHRha2VzIHByZWNlZGVuY2Ugb3ZlciBhbGxvd2xpc3QuCgojIEFyZ3VtZW50cwoqIGBvYXBwYCAtIFRoZSBPQXBwIGNvbnRyYWN0IGFkZHJlc3MKKiBgYWxsb3dlZGAgLSBgdHJ1ZWAgdG8gYWRkIHRvIGFsbG93bGlzdCwgYGZhbHNlYCB0byByZW1vdmUAAAANc2V0X2FsbG93bGlzdAAAAAAAAAIAAAAAAAAABG9hcHAAAAATAAAAAAAAAAdhbGxvd2VkAAAAAAEAAAAAAAAAAAAAAQlTZXRzIGRlbnlsaXN0IHN0YXR1cyBmb3IgYW4gT0FwcCBhZGRyZXNzLgoKRGVueWxpc3RlZCBPQXBwcyBhcmUgYmxvY2tlZCBmcm9tIHVzaW5nIHRoaXMgd29ya2VyLCBldmVuIGlmIHRoZXkncmUgb24KdGhlIGFsbG93bGlzdCAoZGVueWxpc3QgdGFrZXMgcHJlY2VkZW5jZSkuCgojIEFyZ3VtZW50cwoqIGBvYXBwYCAtIFRoZSBPQXBwIGNvbnRyYWN0IGFkZHJlc3MKKiBgZGVuaWVkYCAtIGB0cnVlYCB0byBhZGQgdG8gZGVueWxpc3QsIGBmYWxzZWAgdG8gcmVtb3ZlAAAAAAAADHNldF9kZW55bGlzdAAAAAIAAAAAAAAABG9hcHAAAAATAAAAAAAAAAZkZW5pZWQAAAAAAAEAAAAAAAAAAAAAATtTZXRzIHRoZSBkZWZhdWx0IGZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cy4KClRoZSBtdWx0aXBsaWVyIGlzIGFwcGxpZWQgdG8gYmFzZSBmZWVzIGR1cmluZyBmZWUgY2FsY3VsYXRpb24uIFVzZWQgd2hlbgpubyBkZXN0aW5hdGlvbi1zcGVjaWZpYyBtdWx0aXBsaWVyIGlzIGNvbmZpZ3VyZWQuCgojIEFyZ3VtZW50cwoqIGBhZG1pbmAgLSBBZG1pbiBhZGRyZXNzIChtdXN0IHByb3ZpZGUgYXV0aG9yaXphdGlvbikKKiBgbXVsdGlwbGllcl9icHNgIC0gTXVsdGlwbGllciBpbiBiYXNpcyBwb2ludHMgKDEwMDAwID0gMXgsIDEyMDAwID0gMS4yeCkAAAAAGnNldF9kZWZhdWx0X211bHRpcGxpZXJfYnBzAAAAAAACAAAAAAAAAAVhZG1pbgAAAAAAABMAAAAAAAAADm11bHRpcGxpZXJfYnBzAAAAAAAEAAAAAAAAAAAAAADxU2V0cyB0aGUgZGVwb3NpdCBhZGRyZXNzIHdoZXJlIHdvcmtlciBmZWVzIGFyZSBjb2xsZWN0ZWQuCgpXaGVuIGpvYnMgYXJlIGFzc2lnbmVkLCBmZWVzIGFyZSBkaXJlY3RlZCB0byB0aGlzIGFkZHJlc3MuCgojIEFyZ3VtZW50cwoqIGBhZG1pbmAgLSBBZG1pbiBhZGRyZXNzIChtdXN0IHByb3ZpZGUgYXV0aG9yaXphdGlvbikKKiBgZGVwb3NpdF9hZGRyZXNzYCAtIEFkZHJlc3MgdG8gcmVjZWl2ZSBjb2xsZWN0ZWQgZmVlcwAAAAAAABNzZXRfZGVwb3NpdF9hZGRyZXNzAAAAAAIAAAAAAAAABWFkbWluAAAAAAAAEwAAAAAAAAAPZGVwb3NpdF9hZGRyZXNzAAAAABMAAAAAAAAAAAAAAQlTZXRzIHN1cHBvcnRlZCBleGVjdXRvciBvcHRpb24gdHlwZXMgZm9yIGEgZGVzdGluYXRpb24gZW5kcG9pbnQuCgojIEFyZ3VtZW50cwoqIGBhZG1pbmAgLSBBZG1pbiBhZGRyZXNzIChtdXN0IHByb3ZpZGUgYXV0aG9yaXphdGlvbikKKiBgZWlkYCAtIERlc3RpbmF0aW9uIGVuZHBvaW50IElEIChjaGFpbiBpZGVudGlmaWVyKQoqIGBvcHRpb25fdHlwZXNgIC0gU3VwcG9ydGVkIG9wdGlvbiB0eXBlcy4gRWFjaCBieXRlIHJlcHJlc2VudHMgYW4gb3B0aW9uIHR5cGUuAAAAAAAAGnNldF9zdXBwb3J0ZWRfb3B0aW9uX3R5cGVzAAAAAAADAAAAAAAAAAVhZG1pbgAAAAAAABMAAAAAAAAAA2VpZAAAAAAEAAAAAAAAAAxvcHRpb25fdHlwZXMAAAAOAAAAAAAAAAAAAAESU2V0cyB0aGUgd29ya2VyIGZlZSBsaWJyYXJ5IGNvbnRyYWN0IGFkZHJlc3MuCgpUaGUgZmVlIGxpYnJhcnkgY2FsY3VsYXRlcyBmZWVzIGJhc2VkIG9uIGV4ZWN1dG9yIG9wdGlvbnMgYW5kIHByaWNlIGZlZWQgZGF0YS4KCiMgQXJndW1lbnRzCiogYGFkbWluYCAtIEFkbWluIGFkZHJlc3MgKG11c3QgcHJvdmlkZSBhdXRob3JpemF0aW9uKQoqIGB3b3JrZXJfZmVlX2xpYmAgLSBGZWUgbGlicmFyeSBjb250cmFjdCBhZGRyZXNzIGltcGxlbWVudGluZyBgSUV4ZWN1dG9yRmVlTGliYAAAAAAAEnNldF93b3JrZXJfZmVlX2xpYgAAAAAAAgAAAAAAAAAFYWRtaW4AAAAAAAATAAAAAAAAAA53b3JrZXJfZmVlX2xpYgAAAAAAEwAAAAAAAAAAAAABElNldHMgdGhlIHByaWNlIGZlZWQgY29udHJhY3QgYWRkcmVzcy4KClRoZSBwcmljZSBmZWVkIHByb3ZpZGVzIGdhcyBwcmljZXMgYW5kIGV4Y2hhbmdlIHJhdGVzIGZvciBjcm9zcy1jaGFpbgpmZWUgY2FsY3VsYXRpb25zLgoKIyBBcmd1bWVudHMKKiBgYWRtaW5gIC0gQWRtaW4gYWRkcmVzcyAobXVzdCBwcm92aWRlIGF1dGhvcml6YXRpb24pCiogYHByaWNlX2ZlZWRgIC0gUHJpY2UgZmVlZCBjb250cmFjdCBhZGRyZXNzIGltcGxlbWVudGluZyBgSUxheWVyWmVyb1ByaWNlRmVlZGAAAAAAAA5zZXRfcHJpY2VfZmVlZAAAAAAAAgAAAAAAAAAFYWRtaW4AAAAAAAATAAAAAAAAAApwcmljZV9mZWVkAAAAAAATAAAAAAAAAAAAAAAlUmV0dXJucyB3aGV0aGVyIHRoZSB3b3JrZXIgaXMgcGF1c2VkLgAAAAAAAAZwYXVzZWQAAAAAAAAAAAABAAAAAQAAAAAAAABVUmV0dXJucyB3aGV0aGVyIGFuIGFkZHJlc3MgaXMgYW4gYWRtaW4uCgojIEFyZ3VtZW50cwoqIGBhZG1pbmAgLSBUaGUgYWRkcmVzcyB0byBjaGVjawAAAAAAAAhpc19hZG1pbgAAAAEAAAAAAAAABWFkbWluAAAAAAAAEwAAAAEAAAABAAAAAAAAABxSZXR1cm5zIGFsbCBhZG1pbiBhZGRyZXNzZXMuAAAABmFkbWlucwAAAAAAAAAAAAEAAAPqAAAAEwAAAAAAAABvUmV0dXJucyB3aGV0aGVyIGEgbWVzc2FnZSBsaWJyYXJ5IGlzIHN1cHBvcnRlZC4KCiMgQXJndW1lbnRzCiogYG1lc3NhZ2VfbGliYCAtIE1lc3NhZ2UgbGlicmFyeSBjb250cmFjdCBhZGRyZXNzAAAAABhpc19zdXBwb3J0ZWRfbWVzc2FnZV9saWIAAAABAAAAAAAAAAttZXNzYWdlX2xpYgAAAAATAAAAAQAAAAEAAAAAAAAAc1JldHVybnMgYWxsIHN1cHBvcnRlZCBtZXNzYWdlIGxpYnJhcnkgYWRkcmVzc2VzLgoKIyBSZXR1cm5zClZlY3RvciBvZiBzdXBwb3J0ZWQgbWVzc2FnZSBsaWJyYXJ5IGNvbnRyYWN0IGFkZHJlc3Nlcy4AAAAADG1lc3NhZ2VfbGlicwAAAAAAAAABAAAD6gAAABMAAAAAAAAAWlJldHVybnMgd2hldGhlciBhbiBPQXBwIGlzIG9uIHRoZSBhbGxvd2xpc3QuCgojIEFyZ3VtZW50cwoqIGBvYXBwYCAtIE9BcHAgY29udHJhY3QgYWRkcmVzcwAAAAAAD2lzX29uX2FsbG93bGlzdAAAAAABAAAAAAAAAARvYXBwAAAAEwAAAAEAAAABAAAAAAAAADFSZXR1cm5zIHRoZSBudW1iZXIgb2YgYWRkcmVzc2VzIG9uIHRoZSBhbGxvd2xpc3QuAAAAAAAADmFsbG93bGlzdF9zaXplAAAAAAAAAAAAAQAAAAQAAAAAAAAAWVJldHVybnMgd2hldGhlciBhbiBPQXBwIGlzIG9uIHRoZSBkZW55bGlzdC4KCiMgQXJndW1lbnRzCiogYG9hcHBgIC0gT0FwcCBjb250cmFjdCBhZGRyZXNzAAAAAAAADmlzX29uX2RlbnlsaXN0AAAAAAABAAAAAAAAAARvYXBwAAAAEwAAAAEAAAABAAAAAAAAAPlSZXR1cm5zIHdoZXRoZXIgYW4gT0FwcCBoYXMgYWNjZXNzIGNvbnRyb2wgbGlzdCAoQUNMKSBwZXJtaXNzaW9uLgoKQUNMIGV2YWx1YXRpb24gb3JkZXI6CjEuIElmIG9uIGRlbnlsaXN0IOKGkiBkZW5pZWQKMi4gSWYgYWxsb3dsaXN0IGlzIGVtcHR5IE9SIG9uIGFsbG93bGlzdCDihpIgYWxsb3dlZAozLiBPdGhlcndpc2Ug4oaSIGRlbmllZAoKIyBBcmd1bWVudHMKKiBgb2FwcGAgLSBPQXBwIGNvbnRyYWN0IGFkZHJlc3MgdG8gY2hlY2sAAAAAAAAHaGFzX2FjbAAAAAABAAAAAAAAAARvYXBwAAAAEwAAAAEAAAABAAAAAAAAADNSZXR1cm5zIHRoZSBkZWZhdWx0IGZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cy4AAAAAFmRlZmF1bHRfbXVsdGlwbGllcl9icHMAAAAAAAAAAAABAAAABAAAAAAAAAA1UmV0dXJucyB0aGUgZGVwb3NpdCBhZGRyZXNzIHdoZXJlIGZlZXMgYXJlIGNvbGxlY3RlZC4AAAAAAAAPZGVwb3NpdF9hZGRyZXNzAAAAAAAAAAABAAAD6AAAABMAAAAAAAAAfFJldHVybnMgc3VwcG9ydGVkIG9wdGlvbiB0eXBlcyBmb3IgYSBkZXN0aW5hdGlvbiBlbmRwb2ludC4KCiMgQXJndW1lbnRzCiogYGVpZGAgLSBEZXN0aW5hdGlvbiBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikAAAAaZ2V0X3N1cHBvcnRlZF9vcHRpb25fdHlwZXMAAAAAAAEAAAAAAAAAA2VpZAAAAAAEAAAAAQAAA+gAAAAOAAAAAAAAADBSZXR1cm5zIHRoZSB3b3JrZXIgZmVlIGxpYnJhcnkgY29udHJhY3QgYWRkcmVzcy4AAAAOd29ya2VyX2ZlZV9saWIAAAAAAAAAAAABAAAD6AAAABMAAAAAAAAAKFJldHVybnMgdGhlIHByaWNlIGZlZWQgY29udHJhY3QgYWRkcmVzcy4AAAAKcHJpY2VfZmVlZAAAAAAAAAAAAAEAAAPoAAAAEwAAAAAAAABEQXNzaWducyBhIGpvYiB0byB0aGUgZXhlY3V0b3IgYW5kIHJldHVybnMgZmVlIHJlY2lwaWVudCBpbmZvcm1hdGlvbi4AAAAKYXNzaWduX2pvYgAAAAAABQAAAAAAAAAIc2VuZF9saWIAAAATAAAAAAAAAAZzZW5kZXIAAAAAABMAAAAAAAAAB2RzdF9laWQAAAAABAAAAAAAAAANY2FsbGRhdGFfc2l6ZQAAAAAAAAQAAAAAAAAAB29wdGlvbnMAAAAADgAAAAEAAAfQAAAADEZlZVJlY2lwaWVudAAAAAAAAAA3Q2FsY3VsYXRlcyB0aGUgZXhlY3V0aW9uIGZlZSBmb3IgYSBjcm9zcy1jaGFpbiBtZXNzYWdlLgAAAAAHZ2V0X2ZlZQAAAAAFAAAAAAAAAAhzZW5kX2xpYgAAABMAAAAAAAAABnNlbmRlcgAAAAAAEwAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAAAAAA1jYWxsZGF0YV9zaXplAAAAAAAABAAAAAAAAAAHb3B0aW9ucwAAAAAOAAAAAQAAAAsAAAAAAAAAQFNldHMgZGVzdGluYXRpb24tc3BlY2lmaWMgY29uZmlndXJhdGlvbnMgZm9yIG11bHRpcGxlIGVuZHBvaW50cy4AAAAOc2V0X2RzdF9jb25maWcAAAAAAAIAAAAAAAAABWFkbWluAAAAAAAAEwAAAAAAAAAGcGFyYW1zAAAAAAPqAAAH0AAAABFTZXREc3RDb25maWdQYXJhbQAAAAAAAAAAAAAAAAAAPlJldHVybnMgdGhlIGRlc3RpbmF0aW9uIGNvbmZpZ3VyYXRpb24gZm9yIGEgc3BlY2lmaWMgZW5kcG9pbnQuAAAAAAAKZHN0X2NvbmZpZwAAAAAAAQAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAQAAA+gAAAfQAAAACURzdENvbmZpZwAAAAAAAAAAAACRTmF0aXZlIHRva2VuIGRyb3BzLgoKVHJhbnNmZXJzIG5hdGl2ZSB0b2tlbnMgdG8gZWFjaCByZWNlaXZlciBzcGVjaWZpZWQgaW4gdGhlIHBhcmFtZXRlcnMgYW5kCnRyYWNrcyB0aGUgc3VjY2Vzcy9mYWlsdXJlIHN0YXR1cyBvZiBlYWNoIHRyYW5zZmVyLgAAAAAAAAtuYXRpdmVfZHJvcAAAAAAFAAAAAAAAAAVhZG1pbgAAAAAAABMAAAAAAAAABm9yaWdpbgAAAAAH0AAAAAZPcmlnaW4AAAAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAAAAAARvYXBwAAAAEwAAAAAAAAASbmF0aXZlX2Ryb3BfcGFyYW1zAAAAAAPqAAAH0AAAABBOYXRpdmVEcm9wUGFyYW1zAAAAAAAAAAAAAAAqUmV0dXJucyB0aGUgZW5kcG9pbnQgYWRkcmVzcyBmcm9tIHN0b3JhZ2UuAAAAAAAIZW5kcG9pbnQAAAAAAAAAAQAAABMAAAAAAAACSUluaXRpYWxpemVzIHRoZSBleGVjdXRvciBjb250cmFjdC4KClNldHMgdXAgb3duZXJzaGlwLCB3b3JrZXIgY29uZmlndXJhdGlvbiwgYW5kIGVuZHBvaW50IGFkZHJlc3MuCgojIEFyZ3VtZW50cwoqIGBlbmRwb2ludGAgLSBMYXllclplcm8gRW5kcG9pbnQgVjIgY29udHJhY3QgYWRkcmVzcwoqIGBvd25lcmAgLSBDb250cmFjdCBvd25lciBhZGRyZXNzCiogYGFkbWluc2AgLSBJbml0aWFsIGFkbWluIGFkZHJlc3NlcyAobXVzdCBub3QgYmUgZW1wdHkpCiogYG1lc3NhZ2VfbGlic2AgLSBTdXBwb3J0ZWQgbWVzc2FnZSBsaWJyYXJ5IGFkZHJlc3NlcyAoZS5nLiwgVUxOMzAyKQoqIGBwcmljZV9mZWVkYCAtIFByaWNlIGZlZWQgY29udHJhY3QgYWRkcmVzcyBmb3IgZmVlIGNhbGN1bGF0aW9ucwoqIGBkZWZhdWx0X211bHRpcGxpZXJfYnBzYCAtIERlZmF1bHQgZmVlIG11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzICgxMDAwMCA9IDF4KQoqIGB3b3JrZXJfZmVlX2xpYmAgLSBXb3JrZXIgZmVlIGxpYnJhcnkgY29udHJhY3QgYWRkcmVzcwoqIGBkZXBvc2l0X2FkZHJlc3NgIC0gQWRkcmVzcyB0byByZWNlaXZlIGZlZSBwYXltZW50cwAAAAAAAA1fX2NvbnN0cnVjdG9yAAAAAAAACAAAAAAAAAAIZW5kcG9pbnQAAAATAAAAAAAAAAVvd25lcgAAAAAAABMAAAAAAAAABmFkbWlucwAAAAAD6gAAABMAAAAAAAAADG1lc3NhZ2VfbGlicwAAA+oAAAATAAAAAAAAAApwcmljZV9mZWVkAAAAAAATAAAAAAAAABZkZWZhdWx0X211bHRpcGxpZXJfYnBzAAAAAAAEAAAAAAAAAA53b3JrZXJfZmVlX2xpYgAAAAAAEwAAAAAAAAAPZGVwb3NpdF9hZGRyZXNzAAAAABMAAAAAAAAAAAAAALJXaXRoZHJhd3MgYSB0b2tlbiBmcm9tIHRoZSBjb250cmFjdCB0byBhIHNwZWNpZmllZCBhZGRyZXNzLgoKIyBBcmd1bWVudHMKKiBgdG9rZW5gIC0gVGhlIHRva2VuIGNvbnRyYWN0IGFkZHJlc3MKKiBgdG9gIC0gVGhlIHJlY2lwaWVudCBhZGRyZXNzCiogYGFtb3VudGAgLSBUaGUgYW1vdW50IHRvIHdpdGhkcmF3AAAAAAAOd2l0aGRyYXdfdG9rZW4AAAAAAAQAAAAAAAAABWFkbWluAAAAAAAAEwAAAAAAAAAFdG9rZW4AAAAAAAATAAAAAAAAAAJ0bwAAAAAAEwAAAAAAAAAGYW1vdW50AAAAAAALAAAAAAAAAAAAAACVVGhlIHR5cGUgb2YgZGF0YSByZXF1aXJlZCBmb3IgbWlncmF0aW9uLgpVcGdyYWRlcyB0aGUgY29udHJhY3QgdG8gbmV3IFdBU00gYnl0ZWNvZGUuClNldHMgYSBtaWdyYXRpb24gZmxhZyB0aGF0IG11c3QgYmUgY2xlYXJlZCBieSBjYWxsaW5nIGBtaWdyYXRlYC4AAAAAAAAHdXBncmFkZQAAAAABAAAAAAAAAA1uZXdfd2FzbV9oYXNoAAAAAAAD7gAAACAAAAAAAAAAAAAAAHZSdW5zIG1pZ3JhdGlvbiBsb2dpYyBhZnRlciBhbiB1cGdyYWRlLgpDYW4gb25seSBiZSBjYWxsZWQgd2hlbiB0aGUgbWlncmF0aW9uIGZsYWcgaXMgc2V0IGJ5IGEgcHJldmlvdXMgYHVwZ3JhZGVgIGNhbGwuAAAAAAAHbWlncmF0ZQAAAAABAAAAAAAAAA5taWdyYXRpb25fZGF0YQAAAAAADgAAAAAAAAAAAAAAXlBlcm1hbmVudGx5IGZyZWV6ZXMgdGhlIGNvbnRyYWN0LCBwcmV2ZW50aW5nIGFueSBmdXR1cmUgdXBncmFkZXMuClRoaXMgYWN0aW9uIGlzIGlycmV2ZXJzaWJsZS4AAAAAAAZmcmVlemUAAAAAAAAAAAAAAAAAAAAAADtSZXR1cm5zIHdoZXRoZXIgdGhlIGNvbnRyYWN0IGlzIGZyb3plbiAodXBncmFkZXMgZGlzYWJsZWQpLgAAAAAJaXNfZnJvemVuAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAKYXV0aG9yaXplcgAAAAAAAAAAAAEAAAATAAAAAAAAAD5SZXR1cm5zIHRoZSBjdXJyZW50IG93bmVyIGFkZHJlc3MsIG9yIE5vbmUgaWYgbm8gb3duZXIgaXMgc2V0LgAAAAAABW93bmVyAAAAAAAAAAAAAAEAAAPoAAAAEwAAAAAAAABZUmV0dXJucyB0aGUgcGVuZGluZyBvd25lciBhZGRyZXNzIGZvciAyLXN0ZXAgdHJhbnNmZXIsIG9yIE5vbmUgaWYgbm8gdHJhbnNmZXIgaXMgcGVuZGluZy4AAAAAAAANcGVuZGluZ19vd25lcgAAAAAAAAAAAAABAAAD6AAAABMAAAAAAAABK1RyYW5zZmVycyBvd25lcnNoaXAgaW1tZWRpYXRlbHkgdG8gYSBuZXcgYWRkcmVzcy4KClVzZSB3aXRoIGNhdXRpb24gLSBpZiB5b3UgdHJhbnNmZXIgdG8gYSB3cm9uZyBhZGRyZXNzLCBvd25lcnNoaXAgaXMgbG9zdCBmb3JldmVyLgpDb25zaWRlciB1c2luZyBgcHJvcG9zZV9vd25lcnNoaXBfdHJhbnNmZXJgIGluc3RlYWQuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBUcmFuc2ZlckluUHJvZ3Jlc3NgIGlmIGEgMi1zdGVwIHRyYW5zZmVyIGlzIGluIHByb2dyZXNzAAAAABJ0cmFuc2Zlcl9vd25lcnNoaXAAAAAAAAEAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAAAAAlxQcm9wb3NlcyBhbiBvd25lcnNoaXAgdHJhbnNmZXIgdG8gYSBuZXcgYWRkcmVzcy4KClRoZSBuZXcgb3duZXIgbXVzdCBjYWxsIGBhY2NlcHRfb3duZXJzaGlwKClgIHdpdGhpbiBgdHRsYCBsZWRnZXJzCnRvIGNvbXBsZXRlIHRoZSB0cmFuc2Zlci4gVGhlIHBlbmRpbmcgdHJhbnNmZXIgd2lsbCBhdXRvbWF0aWNhbGx5IGV4cGlyZSBhZnRlci4KCiMgQXJndW1lbnRzCi0gYG5ld19vd25lcmAgLSBUaGUgcHJvcG9zZWQgbmV3IG93bmVyCi0gYHR0bGAgLSBOdW1iZXIgb2YgbGVkZ2VycyB0aGUgbmV3IG93bmVyIGhhcyB0byBhY2NlcHQuClVzZSBgMGAgdG8gY2FuY2VsIGEgcGVuZGluZyB0cmFuc2ZlciAobmV3X293bmVyIG11c3QgbWF0Y2ggcGVuZGluZykuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBOb1BlbmRpbmdUcmFuc2ZlcmAgd2hlbiBjYW5jZWxsaW5nIGFuZCBubyBwZW5kaW5nIHRyYW5zZmVyIGV4aXN0cwotIGBJbnZhbGlkVHRsYCBpZiB0dGwgZXhjZWVkcyBtYXggVFRMCi0gYEludmFsaWRQZW5kaW5nT3duZXJgIHdoZW4gY2FuY2VsbGluZyB3aXRoIHdyb25nIG5ld19vd25lciBhZGRyZXNzAAAAGnByb3Bvc2Vfb3duZXJzaGlwX3RyYW5zZmVyAAAAAAACAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAN0dGwAAAAABAAAAAAAAAAAAAAAuUFjY2VwdHMgYSBwZW5kaW5nIDItc3RlcCBvd25lcnNoaXAgdHJhbnNmZXIuCgpNdXN0IGJlIGNhbGxlZCBieSB0aGUgcGVuZGluZyBvd25lciBiZWZvcmUgdGhlIFRUTCBleHBpcmVzLgoKIyBQYW5pY3MKLSBgTm9QZW5kaW5nVHJhbnNmZXJgIGlmIHRoZXJlIGlzIG5vIHBlbmRpbmcgdHJhbnNmZXIgKG9yIGl0IGV4cGlyZWQpAAAAAAAAEGFjY2VwdF9vd25lcnNoaXAAAAAAAAAAAAAAAAAAAACkUGVybWFuZW50bHkgcmVub3VuY2VzIG93bmVyc2hpcC4KCiMgUGFuaWNzCi0gYE93bmVyTm90U2V0YCBpZiBubyBvd25lciBpcyBjdXJyZW50bHkgc2V0Ci0gYFRyYW5zZmVySW5Qcm9ncmVzc2AgaWYgYSAyLXN0ZXAgdHJhbnNmZXIgaXMgaW4gcHJvZ3Jlc3MgKGNhbmNlbCBpdCBmaXJzdCkAAAAScmVub3VuY2Vfb3duZXJzaGlwAAAAAAAAAAAAAAAAAAAAAAClRXh0ZW5kcyB0aGUgaW5zdGFuY2UgVFRMLgoKIyBBcmd1bWVudHMKCiogYHRocmVzaG9sZGAgLSBUaGUgdGhyZXNob2xkIHRvIGV4dGVuZCB0aGUgVFRMIChpZiBjdXJyZW50IFRUTCBpcyBiZWxvdyB0aGlzLCBleHRlbmQpLgoqIGBleHRlbmRfdG9gIC0gVGhlIFRUTCB0byBleHRlbmQgdG8uAAAAAAAAE2V4dGVuZF9pbnN0YW5jZV90dGwAAAAAAgAAAAAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAAAAAAJZXh0ZW5kX3RvAAAAAAAABAAAAAAAAAAAAAABj1NldHMgVFRMIGNvbmZpZ3MgZm9yIGluc3RhbmNlIGFuZCBwZXJzaXN0ZW50IHN0b3JhZ2UuCgotIGBOb25lYCB2YWx1ZXMgcmVtb3ZlIHRoZSBjb3JyZXNwb25kaW5nIGNvbmZpZyAoZGlzYWJsZXMgYXV0by1leHRlbnNpb24gZm9yIHRoYXQgdHlwZSkKLSBWYWxpZGF0ZXMgdGhhdCBgdGhyZXNob2xkIDw9IGV4dGVuZF90byA8PSBNQVhfVFRMYAoKIyBBcmd1bWVudHMKLSBgaW5zdGFuY2VgIC0gVFRMIGNvbmZpZyBmb3IgaW5zdGFuY2Ugc3RvcmFnZQotIGBwZXJzaXN0ZW50YCAtIFRUTCBjb25maWcgZm9yIHBlcnNpc3RlbnQgc3RvcmFnZQoKIyBQYW5pY3MKLSBgVHRsQ29uZmlnRnJvemVuYCBpZiBjb25maWdzIGFyZSBmcm96ZW4KLSBgSW52YWxpZFR0bENvbmZpZ2AgaWYgdmFsaWRhdGlvbiBmYWlscwAAAAAPc2V0X3R0bF9jb25maWdzAAAAAAIAAAAAAAAACGluc3RhbmNlAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAApwZXJzaXN0ZW50AAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAAAAAEhSZXR1cm5zIHRoZSBjdXJyZW50IFRUTCBjb25maWdzIGFzIChpbnN0YW5jZV9jb25maWcsIHBlcnNpc3RlbnRfY29uZmlnKS4AAAALdHRsX2NvbmZpZ3MAAAAAAAAAAAEAAAPtAAAAAgAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAADhUGVybWFuZW50bHkgZnJlZXplcyBUVEwgY29uZmlncywgcHJldmVudGluZyBhbnkgZnV0dXJlIG1vZGlmaWNhdGlvbnMuCgpUaGlzIGlzIGlycmV2ZXJzaWJsZSBhbmQgcHJvdmlkZXMgaW1tdXRhYmlsaXR5IGd1YXJhbnRlZXMgdG8gdXNlcnMuCkVtaXRzIGBUdGxDb25maWdzRnJvemVuYCBldmVudC4KCiMgUGFuaWNzCi0gYFR0bENvbmZpZ0FscmVhZHlGcm96ZW5gIGlmIGFscmVhZHkgZnJvemVuAAAAAAAAEmZyZWV6ZV90dGxfY29uZmlncwAAAAAAAAAAAAAAAAAAAAAAJ1JldHVybnMgd2hldGhlciBUVEwgY29uZmlncyBhcmUgZnJvemVuLgAAAAAVaXNfdHRsX2NvbmZpZ3NfZnJvemVuAAAAAAAAAAAAAAEAAAABAAAAAgAAAAAAAAAAAAAAD0V4ZWN1dG9yU3RvcmFnZQAAAAACAAAAAQAAAAAAAAAJRHN0Q29uZmlnAAAAAAAAAQAAAAQAAAAAAAAAAAAAAAhFbmRwb2ludAAAAAUAAAAAAAAAAAAAAApQYWNrZXRTZW50AAAAAAABAAAAC3BhY2tldF9zZW50AAAAAAMAAAAAAAAADmVuY29kZWRfcGFja2V0AAAAAAAOAAAAAAAAAAAAAAAHb3B0aW9ucwAAAAAOAAAAAAAAAAAAAAAMc2VuZF9saWJyYXJ5AAAAEwAAAAAAAAACAAAABQAAAAAAAAAAAAAADlBhY2tldFZlcmlmaWVkAAAAAAABAAAAD3BhY2tldF92ZXJpZmllZAAAAAADAAAAAAAAAAZvcmlnaW4AAAAAB9AAAAAGT3JpZ2luAAAAAAABAAAAAAAAAAhyZWNlaXZlcgAAABMAAAABAAAAAAAAAAxwYXlsb2FkX2hhc2gAAAPuAAAAIAAAAAAAAAACAAAABQAAAAAAAAAAAAAAD1BhY2tldERlbGl2ZXJlZAAAAAABAAAAEHBhY2tldF9kZWxpdmVyZWQAAAACAAAAAAAAAAZvcmlnaW4AAAAAB9AAAAAGT3JpZ2luAAAAAAABAAAAAAAAAAhyZWNlaXZlcgAAABMAAAABAAAAAgAAAAUAAAAAAAAAAAAAAA5MelJlY2VpdmVBbGVydAAAAAAAAQAAABBsel9yZWNlaXZlX2FsZXJ0AAAACQAAAAAAAAAIcmVjZWl2ZXIAAAATAAAAAQAAAAAAAAAIZXhlY3V0b3IAAAATAAAAAQAAAAAAAAAGb3JpZ2luAAAAAAfQAAAABk9yaWdpbgAAAAAAAQAAAAAAAAAEZ3VpZAAAA+4AAAAgAAAAAQAAAAAAAAADZ2FzAAAAAAsAAAAAAAAAAAAAAAV2YWx1ZQAAAAAAAAsAAAAAAAAAAAAAAAdtZXNzYWdlAAAAAA4AAAAAAAAAAAAAAApleHRyYV9kYXRhAAAAAAAOAAAAAAAAAAAAAAAGcmVhc29uAAAAAAAOAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAGWnJvU2V0AAAAAAABAAAAB3pyb19zZXQAAAAAAQAAAAAAAAADenJvAAAAABMAAAAAAAAAAgAAAAUAAAAAAAAAAAAAAAtEZWxlZ2F0ZVNldAAAAAABAAAADGRlbGVnYXRlX3NldAAAAAIAAAAAAAAABG9hcHAAAAATAAAAAQAAAAAAAAAIZGVsZWdhdGUAAAPoAAAAEwAAAAAAAAACAAAABQAAAAAAAAAAAAAAE0luYm91bmROb25jZVNraXBwZWQAAAAAAQAAABVpbmJvdW5kX25vbmNlX3NraXBwZWQAAAAAAAAEAAAAAAAAAAdzcmNfZWlkAAAAAAQAAAABAAAAAAAAAAZzZW5kZXIAAAAAA+4AAAAgAAAAAQAAAAAAAAAIcmVjZWl2ZXIAAAATAAAAAQAAAAAAAAAFbm9uY2UAAAAAAAAGAAAAAQAAAAIAAAAFAAAAAAAAAAAAAAAOUGFja2V0TmlsaWZpZWQAAAAAAAEAAAAPcGFja2V0X25pbGlmaWVkAAAAAAUAAAAAAAAAB3NyY19laWQAAAAABAAAAAEAAAAAAAAABnNlbmRlcgAAAAAD7gAAACAAAAABAAAAAAAAAAhyZWNlaXZlcgAAABMAAAABAAAAAAAAAAVub25jZQAAAAAAAAYAAAABAAAAAAAAAAxwYXlsb2FkX2hhc2gAAAPoAAAD7gAAACAAAAAAAAAAAgAAAAUAAAAAAAAAAAAAAAtQYWNrZXRCdXJudAAAAAABAAAADHBhY2tldF9idXJudAAAAAUAAAAAAAAAB3NyY19laWQAAAAABAAAAAEAAAAAAAAABnNlbmRlcgAAAAAD7gAAACAAAAABAAAAAAAAAAhyZWNlaXZlcgAAABMAAAABAAAAAAAAAAVub25jZQAAAAAAAAYAAAABAAAAAAAAAAxwYXlsb2FkX2hhc2gAAAPuAAAAIAAAAAAAAAACAAAABQAAAAAAAAAAAAAAEUxpYnJhcnlSZWdpc3RlcmVkAAAAAAAAAQAAABJsaWJyYXJ5X3JlZ2lzdGVyZWQAAAAAAAEAAAAAAAAAB25ld19saWIAAAAAEwAAAAAAAAACAAAABQAAAAAAAAAAAAAAFURlZmF1bHRTZW5kTGlicmFyeVNldAAAAAAAAAEAAAAYZGVmYXVsdF9zZW5kX2xpYnJhcnlfc2V0AAAAAgAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAQAAAAAAAAAHbmV3X2xpYgAAAAATAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAYRGVmYXVsdFJlY2VpdmVMaWJyYXJ5U2V0AAAAAQAAABtkZWZhdWx0X3JlY2VpdmVfbGlicmFyeV9zZXQAAAAAAgAAAAAAAAAHc3JjX2VpZAAAAAAEAAAAAQAAAAAAAAAHbmV3X2xpYgAAAAATAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAbRGVmYXVsdFJlY2VpdmVMaWJUaW1lb3V0U2V0AAAAAAEAAAAfZGVmYXVsdF9yZWNlaXZlX2xpYl90aW1lb3V0X3NldAAAAAACAAAAAAAAAAdzcmNfZWlkAAAAAAQAAAABAAAAAAAAAAd0aW1lb3V0AAAAA+gAAAfQAAAAB1RpbWVvdXQAAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAOU2VuZExpYnJhcnlTZXQAAAAAAAEAAAAQc2VuZF9saWJyYXJ5X3NldAAAAAMAAAAAAAAABnNlbmRlcgAAAAAAEwAAAAEAAAAAAAAAB2RzdF9laWQAAAAABAAAAAEAAAAAAAAAB25ld19saWIAAAAD6AAAABMAAAAAAAAAAgAAAAUAAAAAAAAAAAAAABFSZWNlaXZlTGlicmFyeVNldAAAAAAAAAEAAAATcmVjZWl2ZV9saWJyYXJ5X3NldAAAAAADAAAAAAAAAAhyZWNlaXZlcgAAABMAAAABAAAAAAAAAAdzcmNfZWlkAAAAAAQAAAABAAAAAAAAAAduZXdfbGliAAAAA+gAAAATAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAYUmVjZWl2ZUxpYnJhcnlUaW1lb3V0U2V0AAAAAQAAABtyZWNlaXZlX2xpYnJhcnlfdGltZW91dF9zZXQAAAAAAwAAAAAAAAAIcmVjZWl2ZXIAAAATAAAAAQAAAAAAAAADZWlkAAAAAAQAAAABAAAAAAAAAAd0aW1lb3V0AAAAA+gAAAfQAAAAB1RpbWVvdXQAAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAALQ29tcG9zZVNlbnQAAAAAAQAAAAxjb21wb3NlX3NlbnQAAAAFAAAAAAAAAARmcm9tAAAAEwAAAAEAAAAAAAAAAnRvAAAAAAATAAAAAQAAAAAAAAAEZ3VpZAAAA+4AAAAgAAAAAQAAAAAAAAAFaW5kZXgAAAAAAAAEAAAAAQAAAAAAAAAHbWVzc2FnZQAAAAAOAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAQQ29tcG9zZURlbGl2ZXJlZAAAAAEAAAARY29tcG9zZV9kZWxpdmVyZWQAAAAAAAAEAAAAAAAAAARmcm9tAAAAEwAAAAEAAAAAAAAAAnRvAAAAAAATAAAAAQAAAAAAAAAEZ3VpZAAAA+4AAAAgAAAAAQAAAAAAAAAFaW5kZXgAAAAAAAAEAAAAAQAAAAIAAAAFAAAAAAAAAAAAAAAOTHpDb21wb3NlQWxlcnQAAAAAAAEAAAAQbHpfY29tcG9zZV9hbGVydAAAAAoAAAAAAAAABGZyb20AAAATAAAAAQAAAAAAAAACdG8AAAAAABMAAAABAAAAAAAAAAhleGVjdXRvcgAAABMAAAABAAAAAAAAAARndWlkAAAD7gAAACAAAAABAAAAAAAAAAVpbmRleAAAAAAAAAQAAAABAAAAAAAAAANnYXMAAAAACwAAAAAAAAAAAAAABXZhbHVlAAAAAAAACwAAAAAAAAAAAAAAB21lc3NhZ2UAAAAADgAAAAAAAAAAAAAACmV4dHJhX2RhdGEAAAAAAA4AAAAAAAAAAAAAAAZyZWFzb24AAAAAAA4AAAAAAAAAAgAAAAQAAAAAAAAAAAAAAA1FbmRwb2ludEVycm9yAAAAAAAAGQAAAAAAAAARQWxyZWFkeVJlZ2lzdGVyZWQAAAAAAAABAAAAAAAAAA1Db21wb3NlRXhpc3RzAAAAAAAAAgAAAAAAAAAPQ29tcG9zZU5vdEZvdW5kAAAAAAMAAAAAAAAAHERlZmF1bHRSZWNlaXZlTGliVW5hdmFpbGFibGUAAAAEAAAAAAAAABlEZWZhdWx0U2VuZExpYlVuYXZhaWxhYmxlAAAAAAAABQAAAAAAAAAVSW5zdWZmaWNpZW50TmF0aXZlRmVlAAAAAAAABgAAAAAAAAASSW5zdWZmaWNpZW50WnJvRmVlAAAAAAAHAAAAAAAAABBJbnZhbGlkRmVlQW1vdW50AAAACAAAAAAAAAANSW52YWxpZEV4cGlyeQAAAAAAAAkAAAAAAAAADEludmFsaWRJbmRleAAAAAoAAAAAAAAADEludmFsaWROb25jZQAAAAsAAAAAAAAAEkludmFsaWRQYXlsb2FkSGFzaAAAAAAADAAAAAAAAAAVSW52YWxpZFJlY2VpdmVMaWJyYXJ5AAAAAAAADQAAAAAAAAART25seU5vbkRlZmF1bHRMaWIAAAAAAAAOAAAAAAAAAA5Pbmx5UmVjZWl2ZUxpYgAAAAAADwAAAAAAAAART25seVJlZ2lzdGVyZWRMaWIAAAAAAAAQAAAAAAAAAAtPbmx5U2VuZExpYgAAAAARAAAAAAAAABRQYXRoTm90SW5pdGlhbGl6YWJsZQAAABIAAAAAAAAAEVBhdGhOb3RWZXJpZmlhYmxlAAAAAAAAEwAAAAAAAAATUGF5bG9hZEhhc2hOb3RGb3VuZAAAAAAUAAAAAAAAAAlTYW1lVmFsdWUAAAAAAAAVAAAAAAAAAAxVbmF1dGhvcml6ZWQAAAAWAAAAAAAAAA5VbnN1cHBvcnRlZEVpZAAAAAAAFwAAAAAAAAAKWmVyb1pyb0ZlZQAAAAAAGAAAAAAAAAAOWnJvVW5hdmFpbGFibGUAAAAAABkAAAABAAAALVBhcmFtZXRlcnMgZm9yIHNlbmRpbmcgYSBjcm9zcy1jaGFpbiBtZXNzYWdlLgAAAAAAAAAAAAAPTWVzc2FnaW5nUGFyYW1zAAAAAAUAAAArRGVzdGluYXRpb24gZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpLgAAAAAHZHN0X2VpZAAAAAAEAAAAHFRoZSBtZXNzYWdlIHBheWxvYWQgdG8gc2VuZC4AAAAHbWVzc2FnZQAAAAAOAAAAIUVuY29kZWQgZXhlY3V0b3IgYW5kIERWTiBvcHRpb25zLgAAAAAAAAdvcHRpb25zAAAAAA4AAAA5V2hldGhlciB0byBwYXkgZmVlcyBpbiBaUk8gdG9rZW4gaW5zdGVhZCBvZiBuYXRpdmUgdG9rZW4uAAAAAAAACnBheV9pbl96cm8AAAAAAAEAAAA1UmVjZWl2ZXIgYWRkcmVzcyBvbiB0aGUgZGVzdGluYXRpb24gY2hhaW4gKDMyIGJ5dGVzKS4AAAAAAAAIcmVjZWl2ZXIAAAPuAAAAIAAAAAEAAABNU291cmNlIG1lc3NhZ2UgaW5mb3JtYXRpb24gaWRlbnRpZnlpbmcgd2hlcmUgYSBjcm9zcy1jaGFpbiBtZXNzYWdlIGNhbWUgZnJvbS4AAAAAAAAAAAAABk9yaWdpbgAAAAAAAwAAABdOb25jZSBmb3IgdGhpcyBwYXRod2F5LgAAAAAFbm9uY2UAAAAAAAAGAAAALlNlbmRlciBhZGRyZXNzIG9uIHRoZSBzb3VyY2UgY2hhaW4gKDMyIGJ5dGVzKS4AAAAAAAZzZW5kZXIAAAAAA+4AAAAgAAAAJlNvdXJjZSBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikuAAAAAAAHc3JjX2VpZAAAAAAEAAAAAQAAAChGZWUgc3RydWN0dXJlIGZvciBjcm9zcy1jaGFpbiBtZXNzYWdpbmcuAAAAAAAAAAxNZXNzYWdpbmdGZWUAAAACAAAAH0ZlZSBwYWlkIGluIG5hdGl2ZSB0b2tlbiAoWExNKS4AAAAACm5hdGl2ZV9mZWUAAAAAAAsAAAAoRmVlIHBhaWQgaW4gWlJPIHRva2VuIChMYXllclplcm8gdG9rZW4pLgAAAAd6cm9fZmVlAAAAAAsAAAABAAAAQlJlY2VpcHQgcmV0dXJuZWQgYWZ0ZXIgc3VjY2Vzc2Z1bGx5IHNlbmRpbmcgYSBjcm9zcy1jaGFpbiBtZXNzYWdlLgAAAAAAAAAAABBNZXNzYWdpbmdSZWNlaXB0AAAAAwAAAClUaGUgZmVlcyBjaGFyZ2VkIGZvciBzZW5kaW5nIHRoZSBtZXNzYWdlLgAAAAAAAANmZWUAAAAH0AAAAAxNZXNzYWdpbmdGZWUAAAArR2xvYmFsbHkgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBtZXNzYWdlLgAAAAAEZ3VpZAAAA+4AAAAgAAAAJFRoZSBvdXRib3VuZCBub25jZSBmb3IgdGhpcyBwYXRod2F5LgAAAAVub25jZQAAAAAAAAYAAAACAAAAOFR5cGUgb2YgbWVzc2FnZSBsaWJyYXJ5IGluZGljYXRpbmcgc3VwcG9ydGVkIG9wZXJhdGlvbnMuAAAAAAAAAA5NZXNzYWdlTGliVHlwZQAAAAAAAwAAAAAAAAAfU3VwcG9ydHMgb25seSBzZW5kaW5nIG1lc3NhZ2VzLgAAAAAEU2VuZAAAAAAAAAAhU3VwcG9ydHMgb25seSByZWNlaXZpbmcgbWVzc2FnZXMuAAAAAAAAB1JlY2VpdmUAAAAAAAAAAC1TdXBwb3J0cyBib3RoIHNlbmRpbmcgYW5kIHJlY2VpdmluZyBtZXNzYWdlcy4AAAAAAAAOU2VuZEFuZFJlY2VpdmUAAAAAAAEAAAC3VmVyc2lvbiBpbmZvcm1hdGlvbiBmb3IgYSBtZXNzYWdlIGxpYnJhcnkuCgpOb3RlOiBgbWlub3JgIGFuZCBgZW5kcG9pbnRfdmVyc2lvbmAgdXNlIGB1MzJgIGluc3RlYWQgb2YgYHU4YCBiZWNhdXNlIFN0ZWxsYXIgZG9lcyBub3QKc3VwcG9ydCBgdThgIHR5cGVzIGluIGNvbnRyYWN0IGludGVyZmFjZSBmdW5jdGlvbnMuAAAAAAAAAAARTWVzc2FnZUxpYlZlcnNpb24AAAAAAAADAAAAM0VuZHBvaW50IHZlcnNpb24gKHNob3VsZCBub3QgZXhjZWVkIHU4OjpNQVggPSAyNTUpLgAAAAAQZW5kcG9pbnRfdmVyc2lvbgAAAAQAAAAVTWFqb3IgdmVyc2lvbiBudW1iZXIuAAAAAAAABW1ham9yAAAAAAAABgAAADdNaW5vciB2ZXJzaW9uIG51bWJlciAoc2hvdWxkIG5vdCBleGNlZWQgdTg6Ok1BWCA9IDI1NSkuAAAAAAVtaW5vcgAAAAAAAAQAAAABAAAANlRpbWVvdXQgY29uZmlndXJhdGlvbiBmb3IgcmVjZWl2ZSBsaWJyYXJ5IHRyYW5zaXRpb25zLgAAAAAAAAAAAAdUaW1lb3V0AAAAAAIAAAAoVW5peCB0aW1lc3RhbXAgd2hlbiB0aGUgdGltZW91dCBleHBpcmVzLgAAAAZleHBpcnkAAAAAAAYAAAApVGhlIG5ldyBsaWJyYXJ5IGFkZHJlc3MgdG8gdHJhbnNpdGlvbiB0by4AAAAAAAADbGliAAAAABMAAAABAAAANVBhcmFtZXRlcnMgZm9yIHNldHRpbmcgbWVzc2FnZSBsaWJyYXJ5IGNvbmZpZ3VyYXRpb24uAAAAAAAAAAAAAA5TZXRDb25maWdQYXJhbQAAAAAAAwAAAB9YRFItZW5jb2RlZCBjb25maWd1cmF0aW9uIGRhdGEuAAAAAAZjb25maWcAAAAAAA4AAAAwVGhlIHR5cGUgb2YgY29uZmlndXJhdGlvbiAoZS5nLiwgZXhlY3V0b3IsIFVMTikuAAAAC2NvbmZpZ190eXBlAAAAAAQAAAAnVGhlIGVuZHBvaW50IElEIHRoaXMgY29uZmlnIGFwcGxpZXMgdG8uAAAAAANlaWQAAAAABAAAAAEAAAAxUmVzb2x2ZWQgbGlicmFyeSBpbmZvcm1hdGlvbiB3aXRoIGRlZmF1bHQgc3RhdHVzLgAAAAAAAAAAAAAPUmVzb2x2ZWRMaWJyYXJ5AAAAAAIAAABEV2hldGhlciB0aGlzIGlzIHRoZSBkZWZhdWx0IGxpYnJhcnkgKHRydWUpIG9yIE9BcHAtc3BlY2lmaWMgKGZhbHNlKS4AAAAKaXNfZGVmYXVsdAAAAAAAAQAAAB1UaGUgcmVzb2x2ZWQgbGlicmFyeSBhZGRyZXNzLgAAAAAAAANsaWIAAAAAEwAAAAEAAABIT3V0Ym91bmQgcGFja2V0IGNvbnRhaW5pbmcgYWxsIGluZm9ybWF0aW9uIGZvciBjcm9zcy1jaGFpbiB0cmFuc21pc3Npb24uAAAAAAAAAA5PdXRib3VuZFBhY2tldAAAAAAABwAAABhEZXN0aW5hdGlvbiBlbmRwb2ludCBJRC4AAAAHZHN0X2VpZAAAAAAEAAAALEdsb2JhbGx5IHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIG1lc3NhZ2UuAAAABGd1aWQAAAPuAAAAIAAAABRUaGUgbWVzc2FnZSBwYXlsb2FkLgAAAAdtZXNzYWdlAAAAAA4AAAAgT3V0Ym91bmQgbm9uY2UgZm9yIHRoaXMgcGF0aHdheS4AAAAFbm9uY2UAAAAAAAAGAAAAMVJlY2VpdmVyIGFkZHJlc3Mgb24gZGVzdGluYXRpb24gY2hhaW4gKDMyIGJ5dGVzKS4AAAAAAAAIcmVjZWl2ZXIAAAPuAAAAIAAAAB9TZW5kZXIgYWRkcmVzcyBvbiBzb3VyY2UgY2hhaW4uAAAAAAZzZW5kZXIAAAAAABMAAAATU291cmNlIGVuZHBvaW50IElELgAAAAAHc3JjX2VpZAAAAAAEAAAAAQAAACtBIGZlZSByZWNpcGllbnQgd2l0aCB0aGUgYW1vdW50IHRvIGJlIHBhaWQuAAAAAAAAAAAMRmVlUmVjaXBpZW50AAAAAgAAABVBbW91bnQgb2YgZmVlIHRvIHBheS4AAAAAAAAGYW1vdW50AAAAAAALAAAAH1RoZSBhZGRyZXNzIHRvIHNlbmQgdGhlIGZlZSB0by4AAAAAAnRvAAAAAAATAAAAAQAAADxSZXN1bHQgb2Ygc2VuZCBvcGVyYXRpb24gY29udGFpbmluZyBmZWVzIGFuZCBlbmNvZGVkIHBhY2tldC4AAAAAAAAADUZlZXNBbmRQYWNrZXQAAAAAAAADAAAAKlRoZSBlbmNvZGVkIHBhY2tldCByZWFkeSBmb3IgdHJhbnNtaXNzaW9uLgAAAAAADmVuY29kZWRfcGFja2V0AAAAAAAOAAAAP0xpc3Qgb2YgbmF0aXZlIHRva2VuIGZlZSByZWNpcGllbnRzIChleGVjdXRvciwgRFZOcywgdHJlYXN1cnkpLgAAAAAVbmF0aXZlX2ZlZV9yZWNpcGllbnRzAAAAAAAD6gAAB9AAAAAMRmVlUmVjaXBpZW50AAAALExpc3Qgb2YgWlJPIHRva2VuIGZlZSByZWNpcGllbnRzICh0cmVhc3VyeSkuAAAAEnpyb19mZWVfcmVjaXBpZW50cwAAAAAD6gAAB9AAAAAMRmVlUmVjaXBpZW50AAAAAQAAAOFQYXJhbWV0ZXJzIGZvciBEVk4gZmVlIGNhbGN1bGF0aW9uLgoKQ29udGFpbnMgYWxsIGlucHV0cyBuZWVkZWQgYnkgdGhlIGZlZSBsaWJyYXJ5IHRvIGNhbGN1bGF0ZSB2ZXJpZmljYXRpb24gZmVlcwpmb3IgY3Jvc3MtY2hhaW4gbWVzc2FnZXMuIEluY2x1ZGVzIG1lc3NhZ2UgcGFyYW1ldGVycywgY29tbW9uIGNvbmZpZ3VyYXRpb24sCmFuZCBkZXN0aW5hdGlvbi1zcGVjaWZpYyBzZXR0aW5ncy4AAAAAAAAAAAAADER2bkZlZVBhcmFtcwAAAAoAAAAnTnVtYmVyIG9mIGJsb2NrIGNvbmZpcm1hdGlvbnMgcmVxdWlyZWQuAAAAAA1jb25maXJtYXRpb25zAAAAAAAABgAAAExEZWZhdWx0IGZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cyAodXNlZCBpZiBubyBkc3Qtc3BlY2lmaWMgbXVsdGlwbGllcikuAAAAFmRlZmF1bHRfbXVsdGlwbGllcl9icHMAAAAAAAQAAAArRGVzdGluYXRpb24gZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpLgAAAAAHZHN0X2VpZAAAAAAEAAAAI01pbmltdW0gZmVlIG1hcmdpbiBpbiBVU0QgKHNjYWxlZCkuAAAAABBmbG9vcl9tYXJnaW5fdXNkAAAACgAAARA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpEZXN0aW5hdGlvbi1TcGVjaWZpYyBDb25maWd1cmF0aW9uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkdhcyBlc3RpbWF0ZSBmb3IgdmVyaWZpY2F0aW9uIG9uIGRlc3RpbmF0aW9uIGNoYWluLgAAAANnYXMAAAAACgAAAEZEZXN0aW5hdGlvbi1zcGVjaWZpYyBmZWUgbXVsdGlwbGllciBpbiBiYXNpcyBwb2ludHMgKDAgPSB1c2UgZGVmYXVsdCkuAAAAAAAObXVsdGlwbGllcl9icHMAAAAAAAQAAAALRFZOIG9wdGlvbnMAAAAAB29wdGlvbnMAAAAADgAAARA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpDb21tb24gQ29uZmlndXJhdGlvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpQcmljZSBmZWVkIGNvbnRyYWN0IGFkZHJlc3MgZm9yIGdhcyBwcmljZSBhbmQgZXhjaGFuZ2UgcmF0ZSBkYXRhLgAAAApwcmljZV9mZWVkAAAAAAATAAAAJ051bWJlciBvZiByZXF1aXJlZCBzaWduYXR1cmVzIChxdW9ydW0pLgAAAAAGcXVvcnVtAAAAAAAEAAAA5T09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ck1lc3NhZ2UgUGFyYW1ldGVycwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpUaGUgT0FwcCBzZW5kZXIgYWRkcmVzcy4AAAAAAAAGc2VuZGVyAAAAAAATAAAAAQAAAONQYXJhbWV0ZXJzIGZvciBleGVjdXRvciBmZWUgY2FsY3VsYXRpb24uCgpDb250YWlucyBhbGwgaW5wdXRzIG5lZWRlZCBieSB0aGUgZmVlIGxpYnJhcnkgdG8gY2FsY3VsYXRlIGV4ZWN1dGlvbiBmZWVzCmZvciBjcm9zcy1jaGFpbiBtZXNzYWdlcy4gSW5jbHVkZXMgbWVzc2FnZSBwYXJhbWV0ZXJzLCBjb21tb24gY29uZmlndXJhdGlvbiwKYW5kIGRlc3RpbmF0aW9uLXNwZWNpZmljIHNldHRpbmdzLgAAAAAAAAAACUZlZVBhcmFtcwAAAAAAAAsAAAAmU2l6ZSBvZiB0aGUgbWVzc2FnZSBjYWxsZGF0YSBpbiBieXRlcy4AAAAAAA1jYWxsZGF0YV9zaXplAAAAAAAABAAAAExEZWZhdWx0IGZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cyAodXNlZCBpZiBubyBkc3Qtc3BlY2lmaWMgbXVsdGlwbGllcikuAAAAFmRlZmF1bHRfbXVsdGlwbGllcl9icHMAAAAAAAQAAAArRGVzdGluYXRpb24gZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpLgAAAAAHZHN0X2VpZAAAAAAEAAAAI01pbmltdW0gZmVlIG1hcmdpbiBpbiBVU0QgKHNjYWxlZCkuAAAAABBmbG9vcl9tYXJnaW5fdXNkAAAACgAAADZCYXNlIGdhcyBmb3IgZWFjaCBsekNvbXBvc2UgY2FsbCBvbiBkZXN0aW5hdGlvbiBjaGFpbi4AAAAAABNsel9jb21wb3NlX2Jhc2VfZ2FzAAAAAAYAAAETPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KRGVzdGluYXRpb24tU3BlY2lmaWMgQ29uZmlndXJhdGlvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpCYXNlIGdhcyBmb3IgbHpSZWNlaXZlIGV4ZWN1dGlvbiBvbiBkZXN0aW5hdGlvbiBjaGFpbi4AAAAAE2x6X3JlY2VpdmVfYmFzZV9nYXMAAAAABgAAAEZEZXN0aW5hdGlvbi1zcGVjaWZpYyBmZWUgbXVsdGlwbGllciBpbiBiYXNpcyBwb2ludHMgKDAgPSB1c2UgZGVmYXVsdCkuAAAAAAAObXVsdGlwbGllcl9icHMAAAAAAAQAAAAsTWF4aW11bSBuYXRpdmUgdG9rZW4gdmFsdWUgdGhhdCBjYW4gYmUgc2VudC4AAAAKbmF0aXZlX2NhcAAAAAAACgAAAEZFbmNvZGVkIGV4ZWN1dG9yIG9wdGlvbnMgKGx6UmVjZWl2ZSBnYXMsIGx6Q29tcG9zZSwgbmF0aXZlRHJvcCwgZXRjLikuAAAAAAAHb3B0aW9ucwAAAAAOAAABED09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNvbW1vbiBDb25maWd1cmF0aW9uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClByaWNlIGZlZWQgY29udHJhY3QgYWRkcmVzcyBmb3IgZ2FzIHByaWNlIGFuZCBleGNoYW5nZSByYXRlIGRhdGEuAAAACnByaWNlX2ZlZWQAAAAAABMAAADlPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KTWVzc2FnZSBQYXJhbWV0ZXJzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClRoZSBPQXBwIHNlbmRlciBhZGRyZXNzLgAAAAAAAAZzZW5kZXIAAAAAABMAAAABAAAAhEdhcyBwcmljZSBpbmZvcm1hdGlvbiBmb3IgYSBkZXN0aW5hdGlvbiBlbmRwb2ludC4KCkNvbnRhaW5zIHRoZSBleGNoYW5nZSByYXRlIGFuZCBnYXMgY29zdHMgbmVlZGVkIGZvciBjcm9zcy1jaGFpbiBmZWUgY2FsY3VsYXRpb25zLgAAAAAAAAAFUHJpY2UAAAAAAAADAAAAN0dhcyBjb3N0IHBlciBieXRlIG9mIGNhbGxkYXRhIG9uIHRoZSBkZXN0aW5hdGlvbiBjaGFpbi4AAAAADGdhc19wZXJfYnl0ZQAAAAQAAABCR2FzIHByaWNlIGluIHRoZSBzbWFsbGVzdCB1bml0ICh3ZWkgZm9yIEVWTSwgc3Ryb29wcyBmb3IgU3RlbGxhcikuAAAAAAARZ2FzX3ByaWNlX2luX3VuaXQAAAAAAAAGAAAAqVByaWNlIHJhdGlvID0gKHJlbW90ZSBuYXRpdmUgdG9rZW4gcHJpY2UgLyBsb2NhbCBuYXRpdmUgdG9rZW4gcHJpY2UpICogUFJJQ0VfUkFUSU9fREVOT01JTkFUT1IuClVzZWQgdG8gY29udmVydCBkZXN0aW5hdGlvbiBjaGFpbiBnYXMgY29zdHMgdG8gc291cmNlIGNoYWluIG5hdGl2ZSB0b2tlbi4AAAAAAAALcHJpY2VfcmF0aW8AAAAACgAAAAEAAACARmVlIGVzdGltYXRpb24gcmVzdWx0IHdpdGggZGV0YWlsZWQgYnJlYWtkb3duLgoKQ29udGFpbnMgdGhlIGNhbGN1bGF0ZWQgZmVlIGFuZCBhbGwgaW50ZXJtZWRpYXRlIHZhbHVlcyB1c2VkIGluIHRoZSBjYWxjdWxhdGlvbi4AAAAAAAAAC0ZlZUVzdGltYXRlAAAAAAQAAAAwU291cmNlIGNoYWluIG5hdGl2ZSB0b2tlbiBwcmljZSBpbiBVU0QgKHNjYWxlZCkuAAAAEG5hdGl2ZV9wcmljZV91c2QAAAAKAAAAJVByaWNlIHJhdGlvIHVzZWQgZm9yIHRoZSBjYWxjdWxhdGlvbi4AAAAAAAALcHJpY2VfcmF0aW8AAAAACgAAADJEZW5vbWluYXRvciBmb3IgdGhlIHByaWNlIHJhdGlvICh0eXBpY2FsbHkgMTBeMjApLgAAAAAAF3ByaWNlX3JhdGlvX2Rlbm9taW5hdG9yAAAAAAoAAAAxVG90YWwgZ2FzIGZlZSBpbiBzb3VyY2UgY2hhaW4gbmF0aXZlIHRva2VuIHVuaXRzLgAAAAAAAA10b3RhbF9nYXNfZmVlAAAAAAAACwAAAAQAAAAdUGFja2V0Q29kZWNWMUVycm9yOiAxMTAwLTExMDkAAAAAAAAAAAAAElBhY2tldENvZGVjVjFFcnJvcgAAAAAAAgAAAAAAAAATSW52YWxpZFBhY2tldEhlYWRlcgAAAARMAAAAAAAAABRJbnZhbGlkUGFja2V0VmVyc2lvbgAABE0AAAAEAAAAHVdvcmtlck9wdGlvbnNFcnJvcjogMTExMC0xMTE5AAAAAAAAAAAAABJXb3JrZXJPcHRpb25zRXJyb3IAAAAAAAkAAAAAAAAAEkludmFsaWRCeXRlc0xlbmd0aAAAAAAEVgAAAAAAAAAZSW52YWxpZExlZ2FjeU9wdGlvbnNUeXBlMQAAAAAABFcAAAAAAAAAGUludmFsaWRMZWdhY3lPcHRpb25zVHlwZTIAAAAAAARYAAAAAAAAABFJbnZhbGlkT3B0aW9uVHlwZQAAAAAABFkAAAAAAAAADkludmFsaWRPcHRpb25zAAAAAARaAAAAAAAAAA9JbnZhbGlkV29ya2VySWQAAAAEWwAAAAAAAAAdTGVnYWN5T3B0aW9uc1R5cGUxR2FzT3ZlcmZsb3cAAAAAAARcAAAAAAAAACBMZWdhY3lPcHRpb25zVHlwZTJBbW91bnRPdmVyZmxvdwAABF0AAAAAAAAAHUxlZ2FjeU9wdGlvbnNUeXBlMkdhc092ZXJmbG93AAAAAAAEXgAAAAQAAAAcQnVmZmVyUmVhZGVyRXJyb3I6IDEwMDAtMTAwOQAAAAAAAAARQnVmZmVyUmVhZGVyRXJyb3IAAAAAAAACAAAAAAAAAA1JbnZhbGlkTGVuZ3RoAAAAAAAD6AAAAAAAAAAVSW52YWxpZEFkZHJlc3NQYXlsb2FkAAAAAAAD6QAAAAQAAAAcQnVmZmVyV3JpdGVyRXJyb3I6IDEwMTAtMTAxOQAAAAAAAAARQnVmZmVyV3JpdGVyRXJyb3IAAAAAAAABAAAAAAAAABVJbnZhbGlkQWRkcmVzc1BheWxvYWQAAAAAAAPyAAAABAAAAB9UdGxDb25maWd1cmFibGVFcnJvcjogMTAyMC0xMDI5AAAAAAAAAAAUVHRsQ29uZmlndXJhYmxlRXJyb3IAAAADAAAAAAAAABBJbnZhbGlkVHRsQ29uZmlnAAAD/AAAAAAAAAAPVHRsQ29uZmlnRnJvemVuAAAAA/0AAAAAAAAAFlR0bENvbmZpZ0FscmVhZHlGcm96ZW4AAAAAA/4AAAAEAAAAF093bmFibGVFcnJvcjogMTAzMC0xMDM5AAAAAAAAAAAMT3duYWJsZUVycm9yAAAABgAAAAAAAAATSW52YWxpZFBlbmRpbmdPd25lcgAAAAQGAAAAAAAAAApJbnZhbGlkVHRsAAAAAAQHAAAAAAAAABFOb1BlbmRpbmdUcmFuc2ZlcgAAAAAABAgAAAAAAAAAD093bmVyQWxyZWFkeVNldAAAAAQJAAAAAAAAAAtPd25lck5vdFNldAAAAAQKAAAAAAAAABJUcmFuc2ZlckluUHJvZ3Jlc3MAAAAABAsAAAAEAAAAGEJ5dGVzRXh0RXJyb3I6IDEwNDAtMTA0OQAAAAAAAAANQnl0ZXNFeHRFcnJvcgAAAAAAAAEAAAAAAAAADkxlbmd0aE1pc21hdGNoAAAAAAQQAAAABAAAABtVcGdyYWRlYWJsZUVycm9yOiAxMDUwLTEwNTkAAAAAAAAAABBVcGdyYWRlYWJsZUVycm9yAAAAAwAAAAAAAAAUSW52YWxpZE1pZ3JhdGlvbkRhdGEAAAQaAAAAAAAAABNNaWdyYXRpb25Ob3RBbGxvd2VkAAAABBsAAAAAAAAADlVwZ3JhZGVzRnJvemVuAAAAAAQcAAAABAAAABhNdWx0aXNpZ0Vycm9yOiAxMDYwLTEwNjkAAAAAAAAADU11bHRpc2lnRXJyb3IAAAAAAAAIAAAAAAAAABJBbHJlYWR5SW5pdGlhbGl6ZWQAAAAABCQAAAAAAAAADUludmFsaWRTaWduZXIAAAAAAAQlAAAAAAAAAA5TaWduYXR1cmVFcnJvcgAAAAAEJgAAAAAAAAATU2lnbmVyQWxyZWFkeUV4aXN0cwAAAAQnAAAAAAAAAA5TaWduZXJOb3RGb3VuZAAAAAAEKAAAAAAAAAAdVG90YWxTaWduZXJzTGVzc1RoYW5UaHJlc2hvbGQAAAAAAAQpAAAAAAAAAA9VbnNvcnRlZFNpZ25lcnMAAAAEKgAAAAAAAAANWmVyb1RocmVzaG9sZAAAAAAABCsAAAAFAAAAMEV2ZW50IGVtaXR0ZWQgd2hlbiBhIHNpZ25lciBpcyBhZGRlZCBvciByZW1vdmVkLgAAAAAAAAAJU2lnbmVyU2V0AAAAAAAAAQAAAApzaWduZXJfc2V0AAAAAAACAAAAAAAAAAZzaWduZXIAAAAAA+4AAAAUAAAAAQAAAAAAAAAGYWN0aXZlAAAAAAABAAAAAAAAAAIAAAAFAAAANkV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgc2lnbmF0dXJlIHRocmVzaG9sZCBpcyBjaGFuZ2VkLgAAAAAAAAAAAAxUaHJlc2hvbGRTZXQAAAABAAAADXRocmVzaG9sZF9zZXQAAAAAAAABAAAAAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAPTXVsdGlzaWdTdG9yYWdlAAAAAAIAAAAAAAAAAAAAAAdTaWduZXJzAAAAAAAAAAAAAAAACVRocmVzaG9sZAAAAAAAAAUAAABXRXZlbnQgZW1pdHRlZCB3aGVuIG93bmVyc2hpcCBpcyB0cmFuc2ZlcnJlZCAoYm90aCBzaW5nbGUtc3RlcCBhbmQgdHdvLXN0ZXAgY29tcGxldGlvbikuAAAAAAAAAAAUT3duZXJzaGlwVHJhbnNmZXJyZWQAAAABAAAAFW93bmVyc2hpcF90cmFuc2ZlcnJlZAAAAAAAAAIAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAIAAAAFAAAAO0V2ZW50IGVtaXR0ZWQgd2hlbiBhIDItc3RlcCBvd25lcnNoaXAgdHJhbnNmZXIgaXMgcHJvcG9zZWQuAAAAAAAAAAAVT3duZXJzaGlwVHJhbnNmZXJyaW5nAAAAAAAAAQAAABZvd25lcnNoaXBfdHJhbnNmZXJyaW5nAAAAAAADAAAAAAAAAAlvbGRfb3duZXIAAAAAAAATAAAAAAAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAAAAAAAA3R0bAAAAAAEAAAAAAAAAAIAAAAFAAAAKkV2ZW50IGVtaXR0ZWQgd2hlbiBvd25lcnNoaXAgaXMgcmVub3VuY2VkLgAAAAAAAAAAABJPd25lcnNoaXBSZW5vdW5jZWQAAAAAAAEAAAATb3duZXJzaGlwX3Jlbm91bmNlZAAAAAAB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AAAABG9hcHAAAAATAAAAAAAAAAAAAAAGZGVuaWVkAAAAAAABAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAGUGF1c2VkAAAAAAABAAAABnBhdXNlZAAAAAAAAQAAAAAAAAAGcGF1c2VyAAAAAAATAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAIVW5wYXVzZWQAAAABAAAACHVucGF1c2VkAAAAAQAAAAAAAAAIdW5wYXVzZXIAAAATAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAXU2V0RGVmYXVsdE11bHRpcGxpZXJCcHMAAAAAAQAAABpzZXRfZGVmYXVsdF9tdWx0aXBsaWVyX2JwcwAAAAAAAQAAAAAAAAAObXVsdGlwbGllcl9icHMAAAAAAAQAAAAAAAAAAgAAAAUAAAAAAAAAAAAAABFTZXREZXBvc2l0QWRkcmVzcwAAAAAAAAEAAAATc2V0X2RlcG9zaXRfYWRkcmVzcwAAAAABAAAAAAAAAA9kZXBvc2l0X2FkZHJlc3MAAAAAEwAAAAAAAAACAAAABQAAAAAAAAAAAAAADFNldFByaWNlRmVlZAAAAAEAAAAOc2V0X3ByaWNlX2ZlZWQAAAAAAAEAAAAAAAAACnByaWNlX2ZlZWQAAAAAABMAAAAAAAAAAgAAAAUAAAAAAAAAAAAAABdTZXRTdXBwb3J0ZWRPcHRpb25UeXBlcwAAAAABAAAAGnNldF9zdXBwb3J0ZWRfb3B0aW9uX3R5cGVzAAAAAAACAAAAAAAAAAdkc3RfZWlkAAAAAAQAAAAAAAAAAAAAAAxvcHRpb25fdHlwZXMAAAAOAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAPU2V0V29ya2VyRmVlTGliAAAAAAEAAAASc2V0X3dvcmtlcl9mZWVfbGliAAAAAAABAAAAAAAAAAdmZWVfbGliAAAAABMAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAA1Xb3JrZXJTdG9yYWdlAAAAAAAACwAAAAAAAAAAAAAABlBhdXNlZAAAAAAAAAAAAAAAAAAGQWRtaW5zAAAAAAAAAAAAAAAAAAtNZXNzYWdlTGlicwAAAAABAAAAAAAAAAlBbGxvd2xpc3QAAAAAAAABAAAAEwAAAAAAAAAAAAAADUFsbG93bGlzdFNpemUAAAAAAAABAAAAAAAAAAhEZW55bGlzdAAAAAEAAAATAAAAAAAAAAAAAAAURGVmYXVsdE11bHRpcGxpZXJCcHMAAAAAAAAAAAAAAA5EZXBvc2l0QWRkcmVzcwAAAAAAAQAAAAAAAAAUU3VwcG9ydGVkT3B0aW9uVHlwZXMAAAABAAAABAAAAAAAAAAAAAAADFdvcmtlckZlZUxpYgAAAAAAAAAAAAAACVByaWNlRmVlZAAAAACLAQ5jb250cmFjdG1ldGF2MAAAAAAAAAAGYmludmVyAAAAAAAFMC4wLjEAAAAAAAAAAAAABXJzdmVyAAAAAAAABjEuOTAuMAAAAAAAAAAAAAhyc3Nka3ZlcgAAAC8yNS4wLjEjOTQxNDQ4MDc5ZWNjZjk1NjI3ZDJmZmVhMTNiYTI2OGUzMDVhOTA3NwAAHhFjb250cmFjdGVudm1ldGF2MAAAAAAAAAAZAAAAAABTDmNvbnRyYWN0bWV0YXYwAAAAAAAAAAZjbGl2ZXIAAAAAAC8yNS4wLjAjYTY0OTI1ZTkzOTFjM2QzYjNlZjhlNTNkYzYwYzIzZGI5ZTZhODJlNAA=";
|
|
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 = "68df81efe2d090ace4a1802098c00dcdacaa4c9e4e21c329536c60d715da8bef";
|
|
18
17
|
/**
|
|
19
18
|
* Get the WASM bytecode as a Buffer
|
|
20
19
|
* Use this to upload the WASM to the network
|
|
@@ -398,6 +397,169 @@ export interface FeesAndPacket {
|
|
|
398
397
|
*/
|
|
399
398
|
zro_fee_recipients: Array<FeeRecipient>;
|
|
400
399
|
}
|
|
400
|
+
/**
|
|
401
|
+
* Parameters for DVN fee calculation.
|
|
402
|
+
*
|
|
403
|
+
* Contains all inputs needed by the fee library to calculate verification fees
|
|
404
|
+
* for cross-chain messages. Includes message parameters, common configuration,
|
|
405
|
+
* and destination-specific settings.
|
|
406
|
+
*/
|
|
407
|
+
export interface DvnFeeParams {
|
|
408
|
+
/**
|
|
409
|
+
* Number of block confirmations required.
|
|
410
|
+
*/
|
|
411
|
+
confirmations: u64;
|
|
412
|
+
/**
|
|
413
|
+
* Default fee multiplier in basis points (used if no dst-specific multiplier).
|
|
414
|
+
*/
|
|
415
|
+
default_multiplier_bps: u32;
|
|
416
|
+
/**
|
|
417
|
+
* Destination endpoint ID (chain identifier).
|
|
418
|
+
*/
|
|
419
|
+
dst_eid: u32;
|
|
420
|
+
/**
|
|
421
|
+
* Minimum fee margin in USD (scaled).
|
|
422
|
+
*/
|
|
423
|
+
floor_margin_usd: u128;
|
|
424
|
+
/**
|
|
425
|
+
* ============================================================================================
|
|
426
|
+
* Destination-Specific Configuration
|
|
427
|
+
* ============================================================================================
|
|
428
|
+
* Gas estimate for verification on destination chain.
|
|
429
|
+
*/
|
|
430
|
+
gas: u128;
|
|
431
|
+
/**
|
|
432
|
+
* Destination-specific fee multiplier in basis points (0 = use default).
|
|
433
|
+
*/
|
|
434
|
+
multiplier_bps: u32;
|
|
435
|
+
/**
|
|
436
|
+
* DVN options
|
|
437
|
+
*/
|
|
438
|
+
options: Buffer;
|
|
439
|
+
/**
|
|
440
|
+
* ============================================================================================
|
|
441
|
+
* Common Configuration
|
|
442
|
+
* ============================================================================================
|
|
443
|
+
* Price feed contract address for gas price and exchange rate data.
|
|
444
|
+
*/
|
|
445
|
+
price_feed: string;
|
|
446
|
+
/**
|
|
447
|
+
* Number of required signatures (quorum).
|
|
448
|
+
*/
|
|
449
|
+
quorum: u32;
|
|
450
|
+
/**
|
|
451
|
+
* ============================================================================================
|
|
452
|
+
* Message Parameters
|
|
453
|
+
* ============================================================================================
|
|
454
|
+
* The OApp sender address.
|
|
455
|
+
*/
|
|
456
|
+
sender: string;
|
|
457
|
+
}
|
|
458
|
+
/**
|
|
459
|
+
* Parameters for executor fee calculation.
|
|
460
|
+
*
|
|
461
|
+
* Contains all inputs needed by the fee library to calculate execution fees
|
|
462
|
+
* for cross-chain messages. Includes message parameters, common configuration,
|
|
463
|
+
* and destination-specific settings.
|
|
464
|
+
*/
|
|
465
|
+
export interface FeeParams {
|
|
466
|
+
/**
|
|
467
|
+
* Size of the message calldata in bytes.
|
|
468
|
+
*/
|
|
469
|
+
calldata_size: u32;
|
|
470
|
+
/**
|
|
471
|
+
* Default fee multiplier in basis points (used if no dst-specific multiplier).
|
|
472
|
+
*/
|
|
473
|
+
default_multiplier_bps: u32;
|
|
474
|
+
/**
|
|
475
|
+
* Destination endpoint ID (chain identifier).
|
|
476
|
+
*/
|
|
477
|
+
dst_eid: u32;
|
|
478
|
+
/**
|
|
479
|
+
* Minimum fee margin in USD (scaled).
|
|
480
|
+
*/
|
|
481
|
+
floor_margin_usd: u128;
|
|
482
|
+
/**
|
|
483
|
+
* Base gas for each lzCompose call on destination chain.
|
|
484
|
+
*/
|
|
485
|
+
lz_compose_base_gas: u64;
|
|
486
|
+
/**
|
|
487
|
+
* ============================================================================================
|
|
488
|
+
* Destination-Specific Configuration
|
|
489
|
+
* ============================================================================================
|
|
490
|
+
* Base gas for lzReceive execution on destination chain.
|
|
491
|
+
*/
|
|
492
|
+
lz_receive_base_gas: u64;
|
|
493
|
+
/**
|
|
494
|
+
* Destination-specific fee multiplier in basis points (0 = use default).
|
|
495
|
+
*/
|
|
496
|
+
multiplier_bps: u32;
|
|
497
|
+
/**
|
|
498
|
+
* Maximum native token value that can be sent.
|
|
499
|
+
*/
|
|
500
|
+
native_cap: u128;
|
|
501
|
+
/**
|
|
502
|
+
* Encoded executor options (lzReceive gas, lzCompose, nativeDrop, etc.).
|
|
503
|
+
*/
|
|
504
|
+
options: Buffer;
|
|
505
|
+
/**
|
|
506
|
+
* ============================================================================================
|
|
507
|
+
* Common Configuration
|
|
508
|
+
* ============================================================================================
|
|
509
|
+
* Price feed contract address for gas price and exchange rate data.
|
|
510
|
+
*/
|
|
511
|
+
price_feed: string;
|
|
512
|
+
/**
|
|
513
|
+
* ============================================================================================
|
|
514
|
+
* Message Parameters
|
|
515
|
+
* ============================================================================================
|
|
516
|
+
* The OApp sender address.
|
|
517
|
+
*/
|
|
518
|
+
sender: string;
|
|
519
|
+
}
|
|
520
|
+
/**
|
|
521
|
+
* Gas price information for a destination endpoint.
|
|
522
|
+
*
|
|
523
|
+
* Contains the exchange rate and gas costs needed for cross-chain fee calculations.
|
|
524
|
+
*/
|
|
525
|
+
export interface Price {
|
|
526
|
+
/**
|
|
527
|
+
* Gas cost per byte of calldata on the destination chain.
|
|
528
|
+
*/
|
|
529
|
+
gas_per_byte: u32;
|
|
530
|
+
/**
|
|
531
|
+
* Gas price in the smallest unit (wei for EVM, stroops for Stellar).
|
|
532
|
+
*/
|
|
533
|
+
gas_price_in_unit: u64;
|
|
534
|
+
/**
|
|
535
|
+
* Price ratio = (remote native token price / local native token price) * PRICE_RATIO_DENOMINATOR.
|
|
536
|
+
* Used to convert destination chain gas costs to source chain native token.
|
|
537
|
+
*/
|
|
538
|
+
price_ratio: u128;
|
|
539
|
+
}
|
|
540
|
+
/**
|
|
541
|
+
* Fee estimation result with detailed breakdown.
|
|
542
|
+
*
|
|
543
|
+
* Contains the calculated fee and all intermediate values used in the calculation.
|
|
544
|
+
*/
|
|
545
|
+
export interface FeeEstimate {
|
|
546
|
+
/**
|
|
547
|
+
* Source chain native token price in USD (scaled).
|
|
548
|
+
*/
|
|
549
|
+
native_price_usd: u128;
|
|
550
|
+
/**
|
|
551
|
+
* Price ratio used for the calculation.
|
|
552
|
+
*/
|
|
553
|
+
price_ratio: u128;
|
|
554
|
+
/**
|
|
555
|
+
* Denominator for the price ratio (typically 10^20).
|
|
556
|
+
*/
|
|
557
|
+
price_ratio_denominator: u128;
|
|
558
|
+
/**
|
|
559
|
+
* Total gas fee in source chain native token units.
|
|
560
|
+
*/
|
|
561
|
+
total_gas_fee: i128;
|
|
562
|
+
}
|
|
401
563
|
/**
|
|
402
564
|
* PacketCodecV1Error: 1100-1109
|
|
403
565
|
*/
|
|
@@ -512,6 +674,12 @@ export declare const UpgradeableError: {
|
|
|
512
674
|
1050: {
|
|
513
675
|
message: string;
|
|
514
676
|
};
|
|
677
|
+
1051: {
|
|
678
|
+
message: string;
|
|
679
|
+
};
|
|
680
|
+
1052: {
|
|
681
|
+
message: string;
|
|
682
|
+
};
|
|
515
683
|
};
|
|
516
684
|
/**
|
|
517
685
|
* MultisigError: 1060-1069
|
|
@@ -580,6 +748,9 @@ export type TtlConfigStorage = {
|
|
|
580
748
|
values: void;
|
|
581
749
|
};
|
|
582
750
|
export type UpgradeableStorage = {
|
|
751
|
+
tag: "Frozen";
|
|
752
|
+
values: void;
|
|
753
|
+
} | {
|
|
583
754
|
tag: "Migrating";
|
|
584
755
|
values: void;
|
|
585
756
|
};
|
|
@@ -635,211 +806,39 @@ export declare const WorkerError: {
|
|
|
635
806
|
1215: {
|
|
636
807
|
message: string;
|
|
637
808
|
};
|
|
638
|
-
1216: {
|
|
639
|
-
message: string;
|
|
640
|
-
};
|
|
641
|
-
1217: {
|
|
642
|
-
message: string;
|
|
643
|
-
};
|
|
644
|
-
1218: {
|
|
645
|
-
message: string;
|
|
646
|
-
};
|
|
647
809
|
};
|
|
648
|
-
/**
|
|
649
|
-
* Parameters for DVN fee calculation.
|
|
650
|
-
*
|
|
651
|
-
* Contains all inputs needed by the fee library to calculate verification fees
|
|
652
|
-
* for cross-chain messages. Includes message parameters, common configuration,
|
|
653
|
-
* and destination-specific settings.
|
|
654
|
-
*/
|
|
655
|
-
export interface DvnFeeParams {
|
|
656
|
-
/**
|
|
657
|
-
* Number of block confirmations required.
|
|
658
|
-
*/
|
|
659
|
-
confirmations: u64;
|
|
660
|
-
/**
|
|
661
|
-
* Default fee multiplier in basis points (used if no dst-specific multiplier).
|
|
662
|
-
*/
|
|
663
|
-
default_multiplier_bps: u32;
|
|
664
|
-
/**
|
|
665
|
-
* Destination endpoint ID (chain identifier).
|
|
666
|
-
*/
|
|
667
|
-
dst_eid: u32;
|
|
668
|
-
/**
|
|
669
|
-
* Minimum fee margin in USD (scaled).
|
|
670
|
-
*/
|
|
671
|
-
floor_margin_usd: u128;
|
|
672
|
-
/**
|
|
673
|
-
* ============================================================================================
|
|
674
|
-
* Destination-Specific Configuration
|
|
675
|
-
* ============================================================================================
|
|
676
|
-
* Gas estimate for verification on destination chain.
|
|
677
|
-
*/
|
|
678
|
-
gas: u128;
|
|
679
|
-
/**
|
|
680
|
-
* Destination-specific fee multiplier in basis points (0 = use default).
|
|
681
|
-
*/
|
|
682
|
-
multiplier_bps: u32;
|
|
683
|
-
/**
|
|
684
|
-
* DVN options
|
|
685
|
-
*/
|
|
686
|
-
options: Buffer;
|
|
687
|
-
/**
|
|
688
|
-
* ============================================================================================
|
|
689
|
-
* Common Configuration
|
|
690
|
-
* ============================================================================================
|
|
691
|
-
* Price feed contract address for gas price and exchange rate data.
|
|
692
|
-
*/
|
|
693
|
-
price_feed: string;
|
|
694
|
-
/**
|
|
695
|
-
* Number of required signatures (quorum).
|
|
696
|
-
*/
|
|
697
|
-
quorum: u32;
|
|
698
|
-
/**
|
|
699
|
-
* ============================================================================================
|
|
700
|
-
* Message Parameters
|
|
701
|
-
* ============================================================================================
|
|
702
|
-
* The OApp sender address.
|
|
703
|
-
*/
|
|
704
|
-
sender: string;
|
|
705
|
-
}
|
|
706
|
-
/**
|
|
707
|
-
* Parameters for executor fee calculation.
|
|
708
|
-
*
|
|
709
|
-
* Contains all inputs needed by the fee library to calculate execution fees
|
|
710
|
-
* for cross-chain messages. Includes message parameters, common configuration,
|
|
711
|
-
* and destination-specific settings.
|
|
712
|
-
*/
|
|
713
|
-
export interface FeeParams {
|
|
714
|
-
/**
|
|
715
|
-
* Size of the message calldata in bytes.
|
|
716
|
-
*/
|
|
717
|
-
calldata_size: u32;
|
|
718
|
-
/**
|
|
719
|
-
* Default fee multiplier in basis points (used if no dst-specific multiplier).
|
|
720
|
-
*/
|
|
721
|
-
default_multiplier_bps: u32;
|
|
722
|
-
/**
|
|
723
|
-
* Destination endpoint ID (chain identifier).
|
|
724
|
-
*/
|
|
725
|
-
dst_eid: u32;
|
|
726
|
-
/**
|
|
727
|
-
* Minimum fee margin in USD (scaled).
|
|
728
|
-
*/
|
|
729
|
-
floor_margin_usd: u128;
|
|
730
|
-
/**
|
|
731
|
-
* Base gas for each lzCompose call on destination chain.
|
|
732
|
-
*/
|
|
733
|
-
lz_compose_base_gas: u64;
|
|
734
|
-
/**
|
|
735
|
-
* ============================================================================================
|
|
736
|
-
* Destination-Specific Configuration
|
|
737
|
-
* ============================================================================================
|
|
738
|
-
* Base gas for lzReceive execution on destination chain.
|
|
739
|
-
*/
|
|
740
|
-
lz_receive_base_gas: u64;
|
|
741
|
-
/**
|
|
742
|
-
* Destination-specific fee multiplier in basis points (0 = use default).
|
|
743
|
-
*/
|
|
744
|
-
multiplier_bps: u32;
|
|
745
|
-
/**
|
|
746
|
-
* Maximum native token value that can be sent.
|
|
747
|
-
*/
|
|
748
|
-
native_cap: u128;
|
|
749
|
-
/**
|
|
750
|
-
* Encoded executor options (lzReceive gas, lzCompose, nativeDrop, etc.).
|
|
751
|
-
*/
|
|
752
|
-
options: Buffer;
|
|
753
|
-
/**
|
|
754
|
-
* ============================================================================================
|
|
755
|
-
* Common Configuration
|
|
756
|
-
* ============================================================================================
|
|
757
|
-
* Price feed contract address for gas price and exchange rate data.
|
|
758
|
-
*/
|
|
759
|
-
price_feed: string;
|
|
760
|
-
/**
|
|
761
|
-
* ============================================================================================
|
|
762
|
-
* Message Parameters
|
|
763
|
-
* ============================================================================================
|
|
764
|
-
* The OApp sender address.
|
|
765
|
-
*/
|
|
766
|
-
sender: string;
|
|
767
|
-
}
|
|
768
|
-
/**
|
|
769
|
-
* Gas price information for a destination endpoint.
|
|
770
|
-
*
|
|
771
|
-
* Contains the exchange rate and gas costs needed for cross-chain fee calculations.
|
|
772
|
-
*/
|
|
773
|
-
export interface Price {
|
|
774
|
-
/**
|
|
775
|
-
* Gas cost per byte of calldata on the destination chain.
|
|
776
|
-
*/
|
|
777
|
-
gas_per_byte: u32;
|
|
778
|
-
/**
|
|
779
|
-
* Gas price in the smallest unit (wei for EVM, stroops for Stellar).
|
|
780
|
-
*/
|
|
781
|
-
gas_price_in_unit: u64;
|
|
782
|
-
/**
|
|
783
|
-
* Price ratio = (remote native token price / local native token price) * PRICE_RATIO_DENOMINATOR.
|
|
784
|
-
* Used to convert destination chain gas costs to source chain native token.
|
|
785
|
-
*/
|
|
786
|
-
price_ratio: u128;
|
|
787
|
-
}
|
|
788
|
-
/**
|
|
789
|
-
* Fee estimation result with detailed breakdown.
|
|
790
|
-
*
|
|
791
|
-
* Contains the calculated fee and all intermediate values used in the calculation.
|
|
792
|
-
*/
|
|
793
|
-
export interface FeeEstimate {
|
|
794
|
-
/**
|
|
795
|
-
* Source chain native token price in USD (scaled).
|
|
796
|
-
*/
|
|
797
|
-
native_price_usd: u128;
|
|
798
|
-
/**
|
|
799
|
-
* Price ratio used for the calculation.
|
|
800
|
-
*/
|
|
801
|
-
price_ratio: u128;
|
|
802
|
-
/**
|
|
803
|
-
* Denominator for the price ratio (typically 10^20).
|
|
804
|
-
*/
|
|
805
|
-
price_ratio_denominator: u128;
|
|
806
|
-
/**
|
|
807
|
-
* Total gas fee in source chain native token units.
|
|
808
|
-
*/
|
|
809
|
-
total_gas_fee: i128;
|
|
810
|
-
}
|
|
811
810
|
export type WorkerStorage = {
|
|
812
811
|
tag: "Paused";
|
|
813
812
|
values: void;
|
|
814
813
|
} | {
|
|
815
|
-
tag: "
|
|
814
|
+
tag: "Admins";
|
|
816
815
|
values: void;
|
|
817
816
|
} | {
|
|
818
|
-
tag: "
|
|
817
|
+
tag: "MessageLibs";
|
|
819
818
|
values: void;
|
|
820
819
|
} | {
|
|
821
|
-
tag: "
|
|
822
|
-
values:
|
|
820
|
+
tag: "Allowlist";
|
|
821
|
+
values: readonly [string];
|
|
823
822
|
} | {
|
|
824
|
-
tag: "
|
|
823
|
+
tag: "AllowlistSize";
|
|
825
824
|
values: void;
|
|
826
825
|
} | {
|
|
827
|
-
tag: "
|
|
828
|
-
values: readonly [
|
|
826
|
+
tag: "Denylist";
|
|
827
|
+
values: readonly [string];
|
|
829
828
|
} | {
|
|
830
|
-
tag: "
|
|
829
|
+
tag: "DefaultMultiplierBps";
|
|
831
830
|
values: void;
|
|
832
831
|
} | {
|
|
833
|
-
tag: "
|
|
834
|
-
values:
|
|
832
|
+
tag: "DepositAddress";
|
|
833
|
+
values: void;
|
|
835
834
|
} | {
|
|
836
|
-
tag: "
|
|
837
|
-
values: readonly [
|
|
835
|
+
tag: "SupportedOptionTypes";
|
|
836
|
+
values: readonly [u32];
|
|
838
837
|
} | {
|
|
839
|
-
tag: "
|
|
838
|
+
tag: "WorkerFeeLib";
|
|
840
839
|
values: void;
|
|
841
840
|
} | {
|
|
842
|
-
tag: "
|
|
841
|
+
tag: "PriceFeed";
|
|
843
842
|
values: void;
|
|
844
843
|
};
|
|
845
844
|
export interface Client {
|
|
@@ -869,6 +868,34 @@ export interface Client {
|
|
|
869
868
|
*/
|
|
870
869
|
simulate?: boolean;
|
|
871
870
|
}) => Promise<AssembledTransaction<null>>;
|
|
871
|
+
/**
|
|
872
|
+
* Construct and simulate a set_admin 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.
|
|
873
|
+
* Sets admin status for an address.
|
|
874
|
+
*
|
|
875
|
+
* Admins can configure worker settings like fee multipliers, deposit addresses,
|
|
876
|
+
* and supported option types.
|
|
877
|
+
*
|
|
878
|
+
* # Arguments
|
|
879
|
+
* * `admin` - The address to set admin status for
|
|
880
|
+
* * `active` - `true` to add admin, `false` to remove
|
|
881
|
+
*/
|
|
882
|
+
set_admin: ({ admin, active }: {
|
|
883
|
+
admin: string;
|
|
884
|
+
active: boolean;
|
|
885
|
+
}, txnOptions?: {
|
|
886
|
+
/**
|
|
887
|
+
* The fee to pay for the transaction. Default: BASE_FEE
|
|
888
|
+
*/
|
|
889
|
+
fee?: number;
|
|
890
|
+
/**
|
|
891
|
+
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
892
|
+
*/
|
|
893
|
+
timeoutInSeconds?: number;
|
|
894
|
+
/**
|
|
895
|
+
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
896
|
+
*/
|
|
897
|
+
simulate?: boolean;
|
|
898
|
+
}) => Promise<AssembledTransaction<null>>;
|
|
872
899
|
/**
|
|
873
900
|
* Construct and simulate a set_supported_message_lib 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.
|
|
874
901
|
* Sets whether a message library is supported by this worker.
|
|
@@ -1016,7 +1043,7 @@ export interface Client {
|
|
|
1016
1043
|
* # Arguments
|
|
1017
1044
|
* * `admin` - Admin address (must provide authorization)
|
|
1018
1045
|
* * `eid` - Destination endpoint ID (chain identifier)
|
|
1019
|
-
* * `option_types` -
|
|
1046
|
+
* * `option_types` - Supported option types. Each byte represents an option type.
|
|
1020
1047
|
*/
|
|
1021
1048
|
set_supported_option_types: ({ admin, eid, option_types }: {
|
|
1022
1049
|
admin: string;
|
|
@@ -1092,15 +1119,10 @@ export interface Client {
|
|
|
1092
1119
|
simulate?: boolean;
|
|
1093
1120
|
}) => Promise<AssembledTransaction<null>>;
|
|
1094
1121
|
/**
|
|
1095
|
-
* Construct and simulate a
|
|
1096
|
-
* Returns whether
|
|
1097
|
-
*
|
|
1098
|
-
* # Arguments
|
|
1099
|
-
* * `admin` - The address to check
|
|
1122
|
+
* Construct and simulate a paused 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.
|
|
1123
|
+
* Returns whether the worker is paused.
|
|
1100
1124
|
*/
|
|
1101
|
-
|
|
1102
|
-
admin: string;
|
|
1103
|
-
}, txnOptions?: {
|
|
1125
|
+
paused: (txnOptions?: {
|
|
1104
1126
|
/**
|
|
1105
1127
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1106
1128
|
*/
|
|
@@ -1115,10 +1137,15 @@ export interface Client {
|
|
|
1115
1137
|
simulate?: boolean;
|
|
1116
1138
|
}) => Promise<AssembledTransaction<boolean>>;
|
|
1117
1139
|
/**
|
|
1118
|
-
* Construct and simulate a
|
|
1119
|
-
* Returns
|
|
1140
|
+
* Construct and simulate a is_admin 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.
|
|
1141
|
+
* Returns whether an address is an admin.
|
|
1142
|
+
*
|
|
1143
|
+
* # Arguments
|
|
1144
|
+
* * `admin` - The address to check
|
|
1120
1145
|
*/
|
|
1121
|
-
|
|
1146
|
+
is_admin: ({ admin }: {
|
|
1147
|
+
admin: string;
|
|
1148
|
+
}, txnOptions?: {
|
|
1122
1149
|
/**
|
|
1123
1150
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1124
1151
|
*/
|
|
@@ -1131,12 +1158,12 @@ export interface Client {
|
|
|
1131
1158
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1132
1159
|
*/
|
|
1133
1160
|
simulate?: boolean;
|
|
1134
|
-
}) => Promise<AssembledTransaction<
|
|
1161
|
+
}) => Promise<AssembledTransaction<boolean>>;
|
|
1135
1162
|
/**
|
|
1136
|
-
* Construct and simulate a
|
|
1137
|
-
* Returns
|
|
1163
|
+
* Construct and simulate a admins 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.
|
|
1164
|
+
* Returns all admin addresses.
|
|
1138
1165
|
*/
|
|
1139
|
-
|
|
1166
|
+
admins: (txnOptions?: {
|
|
1140
1167
|
/**
|
|
1141
1168
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1142
1169
|
*/
|
|
@@ -1149,7 +1176,7 @@ export interface Client {
|
|
|
1149
1176
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1150
1177
|
*/
|
|
1151
1178
|
simulate?: boolean;
|
|
1152
|
-
}) => Promise<AssembledTransaction<
|
|
1179
|
+
}) => Promise<AssembledTransaction<Array<string>>>;
|
|
1153
1180
|
/**
|
|
1154
1181
|
* Construct and simulate a is_supported_message_lib 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.
|
|
1155
1182
|
* Returns whether a message library is supported.
|
|
@@ -1217,6 +1244,24 @@ export interface Client {
|
|
|
1217
1244
|
*/
|
|
1218
1245
|
simulate?: boolean;
|
|
1219
1246
|
}) => Promise<AssembledTransaction<boolean>>;
|
|
1247
|
+
/**
|
|
1248
|
+
* Construct and simulate a allowlist_size 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.
|
|
1249
|
+
* Returns the number of addresses on the allowlist.
|
|
1250
|
+
*/
|
|
1251
|
+
allowlist_size: (txnOptions?: {
|
|
1252
|
+
/**
|
|
1253
|
+
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1254
|
+
*/
|
|
1255
|
+
fee?: number;
|
|
1256
|
+
/**
|
|
1257
|
+
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1258
|
+
*/
|
|
1259
|
+
timeoutInSeconds?: number;
|
|
1260
|
+
/**
|
|
1261
|
+
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1262
|
+
*/
|
|
1263
|
+
simulate?: boolean;
|
|
1264
|
+
}) => Promise<AssembledTransaction<u32>>;
|
|
1220
1265
|
/**
|
|
1221
1266
|
* Construct and simulate a is_on_denylist 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.
|
|
1222
1267
|
* Returns whether an OApp is on the denylist.
|
|
@@ -1250,10 +1295,10 @@ export interface Client {
|
|
|
1250
1295
|
* 3. Otherwise → denied
|
|
1251
1296
|
*
|
|
1252
1297
|
* # Arguments
|
|
1253
|
-
* * `
|
|
1298
|
+
* * `oapp` - OApp contract address to check
|
|
1254
1299
|
*/
|
|
1255
|
-
has_acl: ({
|
|
1256
|
-
|
|
1300
|
+
has_acl: ({ oapp }: {
|
|
1301
|
+
oapp: string;
|
|
1257
1302
|
}, txnOptions?: {
|
|
1258
1303
|
/**
|
|
1259
1304
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
@@ -1268,24 +1313,6 @@ export interface Client {
|
|
|
1268
1313
|
*/
|
|
1269
1314
|
simulate?: boolean;
|
|
1270
1315
|
}) => Promise<AssembledTransaction<boolean>>;
|
|
1271
|
-
/**
|
|
1272
|
-
* Construct and simulate a allowlist_size 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.
|
|
1273
|
-
* Returns the number of addresses on the allowlist.
|
|
1274
|
-
*/
|
|
1275
|
-
allowlist_size: (txnOptions?: {
|
|
1276
|
-
/**
|
|
1277
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1278
|
-
*/
|
|
1279
|
-
fee?: number;
|
|
1280
|
-
/**
|
|
1281
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1282
|
-
*/
|
|
1283
|
-
timeoutInSeconds?: number;
|
|
1284
|
-
/**
|
|
1285
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1286
|
-
*/
|
|
1287
|
-
simulate?: boolean;
|
|
1288
|
-
}) => Promise<AssembledTransaction<u32>>;
|
|
1289
1316
|
/**
|
|
1290
1317
|
* Construct and simulate a default_multiplier_bps 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.
|
|
1291
1318
|
* Returns the default fee multiplier in basis points.
|
|
@@ -1305,28 +1332,10 @@ export interface Client {
|
|
|
1305
1332
|
simulate?: boolean;
|
|
1306
1333
|
}) => Promise<AssembledTransaction<u32>>;
|
|
1307
1334
|
/**
|
|
1308
|
-
* Construct and simulate a deposit_address 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.
|
|
1309
|
-
* Returns the deposit address where fees are collected.
|
|
1310
|
-
*/
|
|
1311
|
-
deposit_address: (txnOptions?: {
|
|
1312
|
-
/**
|
|
1313
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1314
|
-
*/
|
|
1315
|
-
fee?: number;
|
|
1316
|
-
/**
|
|
1317
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1318
|
-
*/
|
|
1319
|
-
timeoutInSeconds?: number;
|
|
1320
|
-
/**
|
|
1321
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1322
|
-
*/
|
|
1323
|
-
simulate?: boolean;
|
|
1324
|
-
}) => Promise<AssembledTransaction<string>>;
|
|
1325
|
-
/**
|
|
1326
|
-
* Construct and simulate a price_feed 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.
|
|
1327
|
-
* Returns the price feed contract address.
|
|
1335
|
+
* Construct and simulate a deposit_address 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.
|
|
1336
|
+
* Returns the deposit address where fees are collected.
|
|
1328
1337
|
*/
|
|
1329
|
-
|
|
1338
|
+
deposit_address: (txnOptions?: {
|
|
1330
1339
|
/**
|
|
1331
1340
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1332
1341
|
*/
|
|
@@ -1339,7 +1348,7 @@ export interface Client {
|
|
|
1339
1348
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1340
1349
|
*/
|
|
1341
1350
|
simulate?: boolean;
|
|
1342
|
-
}) => Promise<AssembledTransaction<string
|
|
1351
|
+
}) => Promise<AssembledTransaction<Option<string>>>;
|
|
1343
1352
|
/**
|
|
1344
1353
|
* Construct and simulate a get_supported_option_types 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.
|
|
1345
1354
|
* Returns supported option types for a destination endpoint.
|
|
@@ -1380,7 +1389,25 @@ export interface Client {
|
|
|
1380
1389
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1381
1390
|
*/
|
|
1382
1391
|
simulate?: boolean;
|
|
1383
|
-
}) => Promise<AssembledTransaction<string
|
|
1392
|
+
}) => Promise<AssembledTransaction<Option<string>>>;
|
|
1393
|
+
/**
|
|
1394
|
+
* Construct and simulate a price_feed 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.
|
|
1395
|
+
* Returns the price feed contract address.
|
|
1396
|
+
*/
|
|
1397
|
+
price_feed: (txnOptions?: {
|
|
1398
|
+
/**
|
|
1399
|
+
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1400
|
+
*/
|
|
1401
|
+
fee?: number;
|
|
1402
|
+
/**
|
|
1403
|
+
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1404
|
+
*/
|
|
1405
|
+
timeoutInSeconds?: number;
|
|
1406
|
+
/**
|
|
1407
|
+
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1408
|
+
*/
|
|
1409
|
+
simulate?: boolean;
|
|
1410
|
+
}) => Promise<AssembledTransaction<Option<string>>>;
|
|
1384
1411
|
/**
|
|
1385
1412
|
* Construct and simulate a assign_job 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.
|
|
1386
1413
|
* Assigns a job to the executor and returns fee recipient information.
|
|
@@ -1544,18 +1571,13 @@ export interface Client {
|
|
|
1544
1571
|
simulate?: boolean;
|
|
1545
1572
|
}) => Promise<AssembledTransaction<null>>;
|
|
1546
1573
|
/**
|
|
1547
|
-
* Construct and simulate a
|
|
1548
|
-
*
|
|
1549
|
-
*
|
|
1550
|
-
*
|
|
1551
|
-
*
|
|
1552
|
-
* # Arguments
|
|
1553
|
-
* * `admin` - The address to set admin status for
|
|
1554
|
-
* * `active` - Whether the address should be an admin
|
|
1574
|
+
* 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.
|
|
1575
|
+
* The type of data required for migration.
|
|
1576
|
+
* Upgrades the contract to new WASM bytecode.
|
|
1577
|
+
* Sets a migration flag that must be cleared by calling `migrate`.
|
|
1555
1578
|
*/
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
active: boolean;
|
|
1579
|
+
upgrade: ({ new_wasm_hash }: {
|
|
1580
|
+
new_wasm_hash: Buffer;
|
|
1559
1581
|
}, txnOptions?: {
|
|
1560
1582
|
/**
|
|
1561
1583
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
@@ -1571,10 +1593,12 @@ export interface Client {
|
|
|
1571
1593
|
simulate?: boolean;
|
|
1572
1594
|
}) => Promise<AssembledTransaction<null>>;
|
|
1573
1595
|
/**
|
|
1574
|
-
* Construct and simulate a
|
|
1596
|
+
* 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.
|
|
1597
|
+
* Runs migration logic after an upgrade.
|
|
1598
|
+
* Can only be called when the migration flag is set by a previous `upgrade` call.
|
|
1575
1599
|
*/
|
|
1576
|
-
|
|
1577
|
-
|
|
1600
|
+
migrate: ({ migration_data }: {
|
|
1601
|
+
migration_data: Buffer;
|
|
1578
1602
|
}, txnOptions?: {
|
|
1579
1603
|
/**
|
|
1580
1604
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
@@ -1590,11 +1614,11 @@ export interface Client {
|
|
|
1590
1614
|
simulate?: boolean;
|
|
1591
1615
|
}) => Promise<AssembledTransaction<null>>;
|
|
1592
1616
|
/**
|
|
1593
|
-
* Construct and simulate a
|
|
1617
|
+
* 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.
|
|
1618
|
+
* Permanently freezes the contract, preventing any future upgrades.
|
|
1619
|
+
* This action is irreversible.
|
|
1594
1620
|
*/
|
|
1595
|
-
|
|
1596
|
-
migration_data: MigrationData;
|
|
1597
|
-
}, txnOptions?: {
|
|
1621
|
+
freeze: (txnOptions?: {
|
|
1598
1622
|
/**
|
|
1599
1623
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1600
1624
|
*/
|
|
@@ -1609,9 +1633,10 @@ export interface Client {
|
|
|
1609
1633
|
simulate?: boolean;
|
|
1610
1634
|
}) => Promise<AssembledTransaction<null>>;
|
|
1611
1635
|
/**
|
|
1612
|
-
* Construct and simulate a
|
|
1636
|
+
* 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.
|
|
1637
|
+
* Returns whether the contract is frozen (upgrades disabled).
|
|
1613
1638
|
*/
|
|
1614
|
-
|
|
1639
|
+
is_frozen: (txnOptions?: {
|
|
1615
1640
|
/**
|
|
1616
1641
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1617
1642
|
*/
|
|
@@ -1624,26 +1649,11 @@ export interface Client {
|
|
|
1624
1649
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1625
1650
|
*/
|
|
1626
1651
|
simulate?: boolean;
|
|
1627
|
-
}) => Promise<AssembledTransaction<
|
|
1652
|
+
}) => Promise<AssembledTransaction<boolean>>;
|
|
1628
1653
|
/**
|
|
1629
|
-
* Construct and simulate a
|
|
1630
|
-
* Sets TTL configs for instance and persistent storage.
|
|
1631
|
-
*
|
|
1632
|
-
* - `None` values remove the corresponding config (disables auto-extension for that type)
|
|
1633
|
-
* - Validates that `threshold <= extend_to <= MAX_TTL`
|
|
1634
|
-
*
|
|
1635
|
-
* # Arguments
|
|
1636
|
-
* - `instance` - TTL config for instance storage
|
|
1637
|
-
* - `persistent` - TTL config for persistent storage
|
|
1638
|
-
*
|
|
1639
|
-
* # Panics
|
|
1640
|
-
* - `TtlConfigFrozen` if configs are frozen
|
|
1641
|
-
* - `InvalidTtlConfig` if validation fails
|
|
1654
|
+
* 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.
|
|
1642
1655
|
*/
|
|
1643
|
-
|
|
1644
|
-
instance: Option<TtlConfig>;
|
|
1645
|
-
persistent: Option<TtlConfig>;
|
|
1646
|
-
}, txnOptions?: {
|
|
1656
|
+
authorizer: (txnOptions?: {
|
|
1647
1657
|
/**
|
|
1648
1658
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1649
1659
|
*/
|
|
@@ -1656,12 +1666,12 @@ export interface Client {
|
|
|
1656
1666
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1657
1667
|
*/
|
|
1658
1668
|
simulate?: boolean;
|
|
1659
|
-
}) => Promise<AssembledTransaction<
|
|
1669
|
+
}) => Promise<AssembledTransaction<string>>;
|
|
1660
1670
|
/**
|
|
1661
|
-
* Construct and simulate a
|
|
1662
|
-
* Returns the current
|
|
1671
|
+
* 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.
|
|
1672
|
+
* Returns the current owner address, or None if no owner is set.
|
|
1663
1673
|
*/
|
|
1664
|
-
|
|
1674
|
+
owner: (txnOptions?: {
|
|
1665
1675
|
/**
|
|
1666
1676
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1667
1677
|
*/
|
|
@@ -1674,18 +1684,12 @@ export interface Client {
|
|
|
1674
1684
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1675
1685
|
*/
|
|
1676
1686
|
simulate?: boolean;
|
|
1677
|
-
}) => Promise<AssembledTransaction<
|
|
1687
|
+
}) => Promise<AssembledTransaction<Option<string>>>;
|
|
1678
1688
|
/**
|
|
1679
|
-
* Construct and simulate a
|
|
1680
|
-
*
|
|
1681
|
-
*
|
|
1682
|
-
* This is irreversible and provides immutability guarantees to users.
|
|
1683
|
-
* Emits `TtlConfigsFrozen` event.
|
|
1684
|
-
*
|
|
1685
|
-
* # Panics
|
|
1686
|
-
* - `TtlConfigAlreadyFrozen` if already frozen
|
|
1689
|
+
* 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.
|
|
1690
|
+
* Returns the pending owner address for 2-step transfer, or None if no transfer is pending.
|
|
1687
1691
|
*/
|
|
1688
|
-
|
|
1692
|
+
pending_owner: (txnOptions?: {
|
|
1689
1693
|
/**
|
|
1690
1694
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1691
1695
|
*/
|
|
@@ -1698,12 +1702,21 @@ export interface Client {
|
|
|
1698
1702
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1699
1703
|
*/
|
|
1700
1704
|
simulate?: boolean;
|
|
1701
|
-
}) => Promise<AssembledTransaction<
|
|
1705
|
+
}) => Promise<AssembledTransaction<Option<string>>>;
|
|
1702
1706
|
/**
|
|
1703
|
-
* Construct and simulate a
|
|
1704
|
-
*
|
|
1707
|
+
* 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.
|
|
1708
|
+
* Transfers ownership immediately to a new address.
|
|
1709
|
+
*
|
|
1710
|
+
* Use with caution - if you transfer to a wrong address, ownership is lost forever.
|
|
1711
|
+
* Consider using `propose_ownership_transfer` instead.
|
|
1712
|
+
*
|
|
1713
|
+
* # Panics
|
|
1714
|
+
* - `OwnerNotSet` if no owner is currently set
|
|
1715
|
+
* - `TransferInProgress` if a 2-step transfer is in progress
|
|
1705
1716
|
*/
|
|
1706
|
-
|
|
1717
|
+
transfer_ownership: ({ new_owner }: {
|
|
1718
|
+
new_owner: string;
|
|
1719
|
+
}, txnOptions?: {
|
|
1707
1720
|
/**
|
|
1708
1721
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1709
1722
|
*/
|
|
@@ -1716,19 +1729,28 @@ export interface Client {
|
|
|
1716
1729
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1717
1730
|
*/
|
|
1718
1731
|
simulate?: boolean;
|
|
1719
|
-
}) => Promise<AssembledTransaction<
|
|
1732
|
+
}) => Promise<AssembledTransaction<null>>;
|
|
1720
1733
|
/**
|
|
1721
|
-
* Construct and simulate a
|
|
1722
|
-
*
|
|
1734
|
+
* 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.
|
|
1735
|
+
* Proposes an ownership transfer to a new address.
|
|
1736
|
+
*
|
|
1737
|
+
* The new owner must call `accept_ownership()` within `ttl` ledgers
|
|
1738
|
+
* to complete the transfer. The pending transfer will automatically expire after.
|
|
1723
1739
|
*
|
|
1724
1740
|
* # Arguments
|
|
1741
|
+
* - `new_owner` - The proposed new owner
|
|
1742
|
+
* - `ttl` - Number of ledgers the new owner has to accept.
|
|
1743
|
+
* Use `0` to cancel a pending transfer (new_owner must match pending).
|
|
1725
1744
|
*
|
|
1726
|
-
*
|
|
1727
|
-
*
|
|
1745
|
+
* # Panics
|
|
1746
|
+
* - `OwnerNotSet` if no owner is currently set
|
|
1747
|
+
* - `NoPendingTransfer` when cancelling and no pending transfer exists
|
|
1748
|
+
* - `InvalidTtl` if ttl exceeds max TTL
|
|
1749
|
+
* - `InvalidPendingOwner` when cancelling with wrong new_owner address
|
|
1728
1750
|
*/
|
|
1729
|
-
|
|
1730
|
-
|
|
1731
|
-
|
|
1751
|
+
propose_ownership_transfer: ({ new_owner, ttl }: {
|
|
1752
|
+
new_owner: string;
|
|
1753
|
+
ttl: u32;
|
|
1732
1754
|
}, txnOptions?: {
|
|
1733
1755
|
/**
|
|
1734
1756
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
@@ -1744,10 +1766,15 @@ export interface Client {
|
|
|
1744
1766
|
simulate?: boolean;
|
|
1745
1767
|
}) => Promise<AssembledTransaction<null>>;
|
|
1746
1768
|
/**
|
|
1747
|
-
* Construct and simulate a
|
|
1748
|
-
*
|
|
1769
|
+
* 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.
|
|
1770
|
+
* Accepts a pending 2-step ownership transfer.
|
|
1771
|
+
*
|
|
1772
|
+
* Must be called by the pending owner before the TTL expires.
|
|
1773
|
+
*
|
|
1774
|
+
* # Panics
|
|
1775
|
+
* - `NoPendingTransfer` if there is no pending transfer (or it expired)
|
|
1749
1776
|
*/
|
|
1750
|
-
|
|
1777
|
+
accept_ownership: (txnOptions?: {
|
|
1751
1778
|
/**
|
|
1752
1779
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1753
1780
|
*/
|
|
@@ -1760,12 +1787,16 @@ export interface Client {
|
|
|
1760
1787
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1761
1788
|
*/
|
|
1762
1789
|
simulate?: boolean;
|
|
1763
|
-
}) => Promise<AssembledTransaction<
|
|
1790
|
+
}) => Promise<AssembledTransaction<null>>;
|
|
1764
1791
|
/**
|
|
1765
|
-
* Construct and simulate a
|
|
1766
|
-
*
|
|
1792
|
+
* 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.
|
|
1793
|
+
* Permanently renounces ownership.
|
|
1794
|
+
*
|
|
1795
|
+
* # Panics
|
|
1796
|
+
* - `OwnerNotSet` if no owner is currently set
|
|
1797
|
+
* - `TransferInProgress` if a 2-step transfer is in progress (cancel it first)
|
|
1767
1798
|
*/
|
|
1768
|
-
|
|
1799
|
+
renounce_ownership: (txnOptions?: {
|
|
1769
1800
|
/**
|
|
1770
1801
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1771
1802
|
*/
|
|
@@ -1778,20 +1809,19 @@ export interface Client {
|
|
|
1778
1809
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1779
1810
|
*/
|
|
1780
1811
|
simulate?: boolean;
|
|
1781
|
-
}) => Promise<AssembledTransaction<
|
|
1812
|
+
}) => Promise<AssembledTransaction<null>>;
|
|
1782
1813
|
/**
|
|
1783
|
-
* Construct and simulate a
|
|
1784
|
-
*
|
|
1814
|
+
* 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.
|
|
1815
|
+
* Extends the instance TTL.
|
|
1785
1816
|
*
|
|
1786
|
-
*
|
|
1787
|
-
* Consider using `propose_ownership_transfer` instead.
|
|
1817
|
+
* # Arguments
|
|
1788
1818
|
*
|
|
1789
|
-
*
|
|
1790
|
-
*
|
|
1791
|
-
* - `TransferInProgress` if a 2-step transfer is in progress
|
|
1819
|
+
* * `threshold` - The threshold to extend the TTL (if current TTL is below this, extend).
|
|
1820
|
+
* * `extend_to` - The TTL to extend to.
|
|
1792
1821
|
*/
|
|
1793
|
-
|
|
1794
|
-
|
|
1822
|
+
extend_instance_ttl: ({ threshold, extend_to }: {
|
|
1823
|
+
threshold: u32;
|
|
1824
|
+
extend_to: u32;
|
|
1795
1825
|
}, txnOptions?: {
|
|
1796
1826
|
/**
|
|
1797
1827
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
@@ -1807,26 +1837,23 @@ export interface Client {
|
|
|
1807
1837
|
simulate?: boolean;
|
|
1808
1838
|
}) => Promise<AssembledTransaction<null>>;
|
|
1809
1839
|
/**
|
|
1810
|
-
* Construct and simulate a
|
|
1811
|
-
*
|
|
1840
|
+
* 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.
|
|
1841
|
+
* Sets TTL configs for instance and persistent storage.
|
|
1812
1842
|
*
|
|
1813
|
-
*
|
|
1814
|
-
*
|
|
1843
|
+
* - `None` values remove the corresponding config (disables auto-extension for that type)
|
|
1844
|
+
* - Validates that `threshold <= extend_to <= MAX_TTL`
|
|
1815
1845
|
*
|
|
1816
1846
|
* # Arguments
|
|
1817
|
-
* - `
|
|
1818
|
-
* - `
|
|
1819
|
-
* Use `0` to cancel a pending transfer (new_owner must match pending).
|
|
1847
|
+
* - `instance` - TTL config for instance storage
|
|
1848
|
+
* - `persistent` - TTL config for persistent storage
|
|
1820
1849
|
*
|
|
1821
1850
|
* # Panics
|
|
1822
|
-
* - `
|
|
1823
|
-
* - `
|
|
1824
|
-
* - `InvalidTtl` if ttl exceeds max TTL
|
|
1825
|
-
* - `InvalidPendingOwner` when cancelling with wrong new_owner address
|
|
1851
|
+
* - `TtlConfigFrozen` if configs are frozen
|
|
1852
|
+
* - `InvalidTtlConfig` if validation fails
|
|
1826
1853
|
*/
|
|
1827
|
-
|
|
1828
|
-
|
|
1829
|
-
|
|
1854
|
+
set_ttl_configs: ({ instance, persistent }: {
|
|
1855
|
+
instance: Option<TtlConfig>;
|
|
1856
|
+
persistent: Option<TtlConfig>;
|
|
1830
1857
|
}, txnOptions?: {
|
|
1831
1858
|
/**
|
|
1832
1859
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
@@ -1842,15 +1869,34 @@ export interface Client {
|
|
|
1842
1869
|
simulate?: boolean;
|
|
1843
1870
|
}) => Promise<AssembledTransaction<null>>;
|
|
1844
1871
|
/**
|
|
1845
|
-
* Construct and simulate a
|
|
1846
|
-
*
|
|
1872
|
+
* 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.
|
|
1873
|
+
* Returns the current TTL configs as (instance_config, persistent_config).
|
|
1874
|
+
*/
|
|
1875
|
+
ttl_configs: (txnOptions?: {
|
|
1876
|
+
/**
|
|
1877
|
+
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1878
|
+
*/
|
|
1879
|
+
fee?: number;
|
|
1880
|
+
/**
|
|
1881
|
+
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1882
|
+
*/
|
|
1883
|
+
timeoutInSeconds?: number;
|
|
1884
|
+
/**
|
|
1885
|
+
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1886
|
+
*/
|
|
1887
|
+
simulate?: boolean;
|
|
1888
|
+
}) => Promise<AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>>;
|
|
1889
|
+
/**
|
|
1890
|
+
* 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.
|
|
1891
|
+
* Permanently freezes TTL configs, preventing any future modifications.
|
|
1847
1892
|
*
|
|
1848
|
-
*
|
|
1893
|
+
* This is irreversible and provides immutability guarantees to users.
|
|
1894
|
+
* Emits `TtlConfigsFrozen` event.
|
|
1849
1895
|
*
|
|
1850
1896
|
* # Panics
|
|
1851
|
-
* - `
|
|
1897
|
+
* - `TtlConfigAlreadyFrozen` if already frozen
|
|
1852
1898
|
*/
|
|
1853
|
-
|
|
1899
|
+
freeze_ttl_configs: (txnOptions?: {
|
|
1854
1900
|
/**
|
|
1855
1901
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1856
1902
|
*/
|
|
@@ -1865,14 +1911,10 @@ export interface Client {
|
|
|
1865
1911
|
simulate?: boolean;
|
|
1866
1912
|
}) => Promise<AssembledTransaction<null>>;
|
|
1867
1913
|
/**
|
|
1868
|
-
* Construct and simulate a
|
|
1869
|
-
*
|
|
1870
|
-
*
|
|
1871
|
-
* # Panics
|
|
1872
|
-
* - `OwnerNotSet` if no owner is currently set
|
|
1873
|
-
* - `TransferInProgress` if a 2-step transfer is in progress (cancel it first)
|
|
1914
|
+
* 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.
|
|
1915
|
+
* Returns whether TTL configs are frozen.
|
|
1874
1916
|
*/
|
|
1875
|
-
|
|
1917
|
+
is_ttl_configs_frozen: (txnOptions?: {
|
|
1876
1918
|
/**
|
|
1877
1919
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1878
1920
|
*/
|
|
@@ -1885,7 +1927,7 @@ export interface Client {
|
|
|
1885
1927
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1886
1928
|
*/
|
|
1887
1929
|
simulate?: boolean;
|
|
1888
|
-
}) => Promise<AssembledTransaction<
|
|
1930
|
+
}) => Promise<AssembledTransaction<boolean>>;
|
|
1889
1931
|
}
|
|
1890
1932
|
export declare class Client extends ContractClient {
|
|
1891
1933
|
readonly options: ContractClientOptions;
|
|
@@ -1913,6 +1955,7 @@ export declare class Client extends ContractClient {
|
|
|
1913
1955
|
constructor(options: ContractClientOptions);
|
|
1914
1956
|
readonly fromJSON: {
|
|
1915
1957
|
set_paused: (json: string) => AssembledTransaction<null>;
|
|
1958
|
+
set_admin: (json: string) => AssembledTransaction<null>;
|
|
1916
1959
|
set_supported_message_lib: (json: string) => AssembledTransaction<null>;
|
|
1917
1960
|
set_allowlist: (json: string) => AssembledTransaction<null>;
|
|
1918
1961
|
set_denylist: (json: string) => AssembledTransaction<null>;
|
|
@@ -1921,20 +1964,20 @@ export declare class Client extends ContractClient {
|
|
|
1921
1964
|
set_supported_option_types: (json: string) => AssembledTransaction<null>;
|
|
1922
1965
|
set_worker_fee_lib: (json: string) => AssembledTransaction<null>;
|
|
1923
1966
|
set_price_feed: (json: string) => AssembledTransaction<null>;
|
|
1967
|
+
paused: (json: string) => AssembledTransaction<boolean>;
|
|
1924
1968
|
is_admin: (json: string) => AssembledTransaction<boolean>;
|
|
1925
1969
|
admins: (json: string) => AssembledTransaction<string[]>;
|
|
1926
|
-
paused: (json: string) => AssembledTransaction<boolean>;
|
|
1927
1970
|
is_supported_message_lib: (json: string) => AssembledTransaction<boolean>;
|
|
1928
1971
|
message_libs: (json: string) => AssembledTransaction<string[]>;
|
|
1929
1972
|
is_on_allowlist: (json: string) => AssembledTransaction<boolean>;
|
|
1973
|
+
allowlist_size: (json: string) => AssembledTransaction<number>;
|
|
1930
1974
|
is_on_denylist: (json: string) => AssembledTransaction<boolean>;
|
|
1931
1975
|
has_acl: (json: string) => AssembledTransaction<boolean>;
|
|
1932
|
-
allowlist_size: (json: string) => AssembledTransaction<number>;
|
|
1933
1976
|
default_multiplier_bps: (json: string) => AssembledTransaction<number>;
|
|
1934
|
-
deposit_address: (json: string) => AssembledTransaction<string
|
|
1935
|
-
price_feed: (json: string) => AssembledTransaction<string>;
|
|
1977
|
+
deposit_address: (json: string) => AssembledTransaction<Option<string>>;
|
|
1936
1978
|
get_supported_option_types: (json: string) => AssembledTransaction<Option<Buffer<ArrayBufferLike>>>;
|
|
1937
|
-
worker_fee_lib: (json: string) => AssembledTransaction<string
|
|
1979
|
+
worker_fee_lib: (json: string) => AssembledTransaction<Option<string>>;
|
|
1980
|
+
price_feed: (json: string) => AssembledTransaction<Option<string>>;
|
|
1938
1981
|
assign_job: (json: string) => AssembledTransaction<FeeRecipient>;
|
|
1939
1982
|
get_fee: (json: string) => AssembledTransaction<bigint>;
|
|
1940
1983
|
set_dst_config: (json: string) => AssembledTransaction<null>;
|
|
@@ -1942,20 +1985,21 @@ export declare class Client extends ContractClient {
|
|
|
1942
1985
|
native_drop: (json: string) => AssembledTransaction<null>;
|
|
1943
1986
|
endpoint: (json: string) => AssembledTransaction<string>;
|
|
1944
1987
|
withdraw_token: (json: string) => AssembledTransaction<null>;
|
|
1945
|
-
set_admin: (json: string) => AssembledTransaction<null>;
|
|
1946
1988
|
upgrade: (json: string) => AssembledTransaction<null>;
|
|
1947
1989
|
migrate: (json: string) => AssembledTransaction<null>;
|
|
1990
|
+
freeze: (json: string) => AssembledTransaction<null>;
|
|
1991
|
+
is_frozen: (json: string) => AssembledTransaction<boolean>;
|
|
1948
1992
|
authorizer: (json: string) => AssembledTransaction<string>;
|
|
1949
|
-
set_ttl_configs: (json: string) => AssembledTransaction<null>;
|
|
1950
|
-
ttl_configs: (json: string) => AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>;
|
|
1951
|
-
freeze_ttl_configs: (json: string) => AssembledTransaction<null>;
|
|
1952
|
-
is_ttl_configs_frozen: (json: string) => AssembledTransaction<boolean>;
|
|
1953
|
-
extend_instance_ttl: (json: string) => AssembledTransaction<null>;
|
|
1954
1993
|
owner: (json: string) => AssembledTransaction<Option<string>>;
|
|
1955
1994
|
pending_owner: (json: string) => AssembledTransaction<Option<string>>;
|
|
1956
1995
|
transfer_ownership: (json: string) => AssembledTransaction<null>;
|
|
1957
1996
|
propose_ownership_transfer: (json: string) => AssembledTransaction<null>;
|
|
1958
1997
|
accept_ownership: (json: string) => AssembledTransaction<null>;
|
|
1959
1998
|
renounce_ownership: (json: string) => AssembledTransaction<null>;
|
|
1999
|
+
extend_instance_ttl: (json: string) => AssembledTransaction<null>;
|
|
2000
|
+
set_ttl_configs: (json: string) => AssembledTransaction<null>;
|
|
2001
|
+
ttl_configs: (json: string) => AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>;
|
|
2002
|
+
freeze_ttl_configs: (json: string) => AssembledTransaction<null>;
|
|
2003
|
+
is_ttl_configs_frozen: (json: string) => AssembledTransaction<boolean>;
|
|
1960
2004
|
};
|
|
1961
2005
|
}
|