@layerzerolabs/protocol-stellar-v2 0.2.18 → 0.2.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (213) hide show
  1. package/.turbo/turbo-build.log +303 -253
  2. package/.turbo/turbo-lint.log +66 -65
  3. package/.turbo/turbo-test.log +1312 -1282
  4. package/Cargo.lock +21 -8
  5. package/Cargo.toml +2 -0
  6. package/contracts/ERROR_SPEC.md +9 -2
  7. package/contracts/common-macros/src/contract_ttl.rs +18 -7
  8. package/contracts/common-macros/src/lib.rs +4 -4
  9. package/contracts/common-macros/src/tests/contract_ttl.rs +1 -1
  10. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__contract_ttl__snapshot_generated_contractimpl_code.snap +2 -1
  11. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__upgradeable__snapshot_generated_upgradeable_code.snap +7 -12
  12. package/contracts/common-macros/src/upgradeable.rs +15 -21
  13. package/contracts/message-libs/uln-302/src/events.rs +4 -0
  14. package/contracts/message-libs/uln-302/src/send_uln.rs +23 -7
  15. package/contracts/message-libs/uln-302/src/tests/send_uln302/send.rs +38 -64
  16. package/contracts/oapps/counter/Cargo.toml +1 -0
  17. package/contracts/oapps/counter/integration_tests/setup_uln.rs +1 -1
  18. package/contracts/oapps/oapp/src/oapp_receiver.rs +1 -1
  19. package/contracts/oapps/oapp/src/tests/test_oapp_core.rs +113 -65
  20. package/contracts/oapps/oapp/src/tests/test_oapp_options_type3.rs +111 -82
  21. package/contracts/oapps/oapp/src/tests/test_oapp_receiver.rs +293 -65
  22. package/contracts/oapps/oapp/src/tests/test_oapp_sender.rs +331 -56
  23. package/contracts/oapps/oft/Cargo.toml +10 -7
  24. package/contracts/oapps/{oft-std → oft}/integration-tests/extensions/test_oft_fee.rs +3 -4
  25. package/contracts/oapps/{oft-std → oft}/integration-tests/extensions/test_pausable.rs +2 -3
  26. package/contracts/oapps/{oft-std → oft}/integration-tests/extensions/test_rate_limiter.rs +1 -1
  27. package/contracts/oapps/oft/integration-tests/mod.rs +1 -1
  28. package/contracts/oapps/oft/integration-tests/setup.rs +28 -127
  29. package/contracts/oapps/oft/integration-tests/utils.rs +254 -21
  30. package/contracts/oapps/oft/src/extensions/oft_fee.rs +23 -8
  31. package/contracts/oapps/oft/src/extensions/pausable.rs +19 -4
  32. package/contracts/oapps/oft/src/extensions/rate_limiter.rs +52 -28
  33. package/contracts/oapps/oft/src/lib.rs +10 -14
  34. package/contracts/oapps/oft/src/oft.rs +143 -193
  35. package/contracts/oapps/oft/src/oft_types/lock_unlock.rs +9 -11
  36. package/contracts/oapps/oft/src/oft_types/mint_burn.rs +12 -14
  37. package/contracts/oapps/oft/src/oft_types/mod.rs +13 -0
  38. package/contracts/oapps/{oft-std → oft-core}/Cargo.toml +6 -4
  39. package/contracts/oapps/{oft-std → oft-core}/integration-tests/mod.rs +1 -1
  40. package/contracts/oapps/{oft-std → oft-core}/integration-tests/setup.rs +126 -29
  41. package/contracts/oapps/{oft → oft-core}/integration-tests/test_with_sml.rs +3 -3
  42. package/contracts/oapps/oft-core/integration-tests/utils.rs +201 -0
  43. package/contracts/oapps/oft-core/src/lib.rs +18 -0
  44. package/contracts/oapps/oft-core/src/oft_core.rs +479 -0
  45. package/contracts/oapps/{oft → oft-core}/src/tests/mod.rs +0 -2
  46. package/contracts/oapps/{oft → oft-core}/src/tests/test_lz_receive.rs +7 -7
  47. package/contracts/oapps/{oft → oft-core}/src/tests/test_oft_msg_codec.rs +4 -4
  48. package/contracts/oapps/{oft → oft-core}/src/tests/test_resolve_address.rs +3 -3
  49. package/contracts/oapps/{oft → oft-core}/src/tests/test_utils.rs +46 -27
  50. package/contracts/oapps/{oft → oft-core}/src/utils.rs +1 -1
  51. package/contracts/upgrader/src/lib.rs +30 -57
  52. package/contracts/upgrader/src/tests/test_data/test_upgradeable_contract1.wasm +0 -0
  53. package/contracts/upgrader/src/tests/test_data/test_upgradeable_contract2.wasm +0 -0
  54. package/contracts/upgrader/src/tests/test_upgrader.rs +44 -35
  55. package/contracts/utils/src/buffer_reader.rs +1 -0
  56. package/contracts/utils/src/errors.rs +8 -2
  57. package/contracts/utils/src/ownable.rs +125 -3
  58. package/contracts/utils/src/tests/option_ext.rs +1 -1
  59. package/contracts/utils/src/tests/ownable.rs +445 -7
  60. package/contracts/utils/src/tests/ttl_configurable.rs +2 -2
  61. package/contracts/utils/src/tests/upgradeable.rs +372 -175
  62. package/contracts/utils/src/ttl_configurable.rs +3 -3
  63. package/contracts/utils/src/upgradeable.rs +48 -23
  64. package/contracts/workers/dvn/Cargo.toml +1 -0
  65. package/contracts/workers/dvn/src/auth.rs +12 -42
  66. package/contracts/workers/dvn/src/dvn.rs +16 -31
  67. package/contracts/workers/dvn/src/errors.rs +0 -1
  68. package/contracts/workers/dvn/src/interfaces/dvn.rs +35 -0
  69. package/contracts/workers/dvn/src/lib.rs +4 -3
  70. package/contracts/workers/dvn/src/tests/auth.rs +1 -1
  71. package/contracts/workers/dvn/src/tests/dvn.rs +19 -15
  72. package/contracts/workers/dvn/src/tests/multisig/set_threshold.rs +2 -4
  73. package/contracts/workers/dvn/src/tests/multisig/verify_signatures.rs +1 -3
  74. package/contracts/workers/dvn/src/tests/setup.rs +5 -9
  75. package/contracts/workers/dvn-fee-lib/Cargo.toml +1 -1
  76. package/contracts/workers/dvn-fee-lib/src/dvn_fee_lib.rs +3 -5
  77. package/contracts/workers/dvn-fee-lib/src/tests/dvn_fee_lib.rs +2 -3
  78. package/contracts/workers/executor/Cargo.toml +1 -0
  79. package/contracts/workers/executor/src/executor.rs +15 -26
  80. package/contracts/workers/executor-fee-lib/Cargo.toml +2 -1
  81. package/contracts/workers/executor-fee-lib/src/executor_fee_lib.rs +63 -5
  82. package/contracts/workers/executor-fee-lib/src/executor_option.rs +28 -1
  83. package/contracts/workers/executor-fee-lib/src/lib.rs +3 -0
  84. package/contracts/workers/executor-fee-lib/src/tests/executor_fee_lib.rs +701 -0
  85. package/contracts/workers/executor-fee-lib/src/tests/executor_option.rs +370 -0
  86. package/contracts/workers/executor-fee-lib/src/tests/mod.rs +4 -0
  87. package/contracts/workers/executor-fee-lib/src/tests/setup.rs +60 -0
  88. package/contracts/workers/executor-helper/src/lib.rs +3 -0
  89. package/contracts/workers/executor-helper/src/tests/executor_helper.rs +184 -0
  90. package/contracts/workers/executor-helper/src/tests/mod.rs +2 -0
  91. package/contracts/workers/executor-helper/src/tests/setup.rs +366 -0
  92. package/contracts/workers/fee-lib-interfaces/Cargo.toml +14 -0
  93. package/contracts/workers/{worker/src/interfaces/mod.rs → fee-lib-interfaces/src/lib.rs} +4 -3
  94. package/contracts/workers/price-feed/Cargo.toml +2 -1
  95. package/contracts/workers/price-feed/src/events.rs +1 -1
  96. package/contracts/workers/price-feed/src/lib.rs +3 -0
  97. package/contracts/workers/price-feed/src/price_feed.rs +6 -12
  98. package/contracts/workers/price-feed/src/storage.rs +1 -1
  99. package/contracts/workers/price-feed/src/tests/mod.rs +2 -0
  100. package/contracts/workers/price-feed/src/tests/price_feed.rs +869 -0
  101. package/contracts/workers/price-feed/src/tests/setup.rs +70 -0
  102. package/contracts/workers/price-feed/src/types.rs +1 -1
  103. package/contracts/workers/worker/src/errors.rs +0 -3
  104. package/contracts/workers/worker/src/lib.rs +0 -2
  105. package/contracts/workers/worker/src/storage.rs +32 -29
  106. package/contracts/workers/worker/src/tests/setup.rs +1 -7
  107. package/contracts/workers/worker/src/tests/worker.rs +50 -42
  108. package/contracts/workers/worker/src/worker.rs +49 -58
  109. package/package.json +4 -5
  110. package/sdk/.turbo/turbo-test.log +229 -217
  111. package/sdk/dist/generated/bml.d.ts +39 -1
  112. package/sdk/dist/generated/bml.js +33 -8
  113. package/sdk/dist/generated/counter.d.ts +131 -3
  114. package/sdk/dist/generated/counter.js +41 -10
  115. package/sdk/dist/generated/dvn.d.ts +431 -362
  116. package/sdk/dist/generated/dvn.js +80 -55
  117. package/sdk/dist/generated/dvn_fee_lib.d.ts +327 -251
  118. package/sdk/dist/generated/dvn_fee_lib.js +55 -57
  119. package/sdk/dist/generated/endpoint.d.ts +131 -3
  120. package/sdk/dist/generated/endpoint.js +41 -10
  121. package/sdk/dist/generated/executor.d.ts +503 -339
  122. package/sdk/dist/generated/executor.js +80 -48
  123. package/sdk/dist/generated/executor_fee_lib.d.ts +395 -319
  124. package/sdk/dist/generated/executor_fee_lib.js +54 -56
  125. package/sdk/dist/generated/executor_helper.d.ts +53 -187
  126. package/sdk/dist/generated/executor_helper.js +47 -29
  127. package/sdk/dist/generated/layerzero_view.d.ts +1271 -0
  128. package/sdk/dist/generated/layerzero_view.js +294 -0
  129. package/sdk/dist/generated/oft.d.ts +1851 -0
  130. package/sdk/dist/generated/oft.js +347 -0
  131. package/sdk/dist/generated/price_feed.d.ts +329 -253
  132. package/sdk/dist/generated/price_feed.js +55 -57
  133. package/sdk/dist/generated/sml.d.ts +131 -3
  134. package/sdk/dist/generated/sml.js +41 -10
  135. package/sdk/dist/generated/treasury.d.ts +131 -3
  136. package/sdk/dist/generated/treasury.js +41 -10
  137. package/sdk/dist/generated/uln302.d.ts +131 -3
  138. package/sdk/dist/generated/uln302.js +43 -12
  139. package/sdk/dist/generated/upgrader.d.ts +201 -15
  140. package/sdk/dist/generated/upgrader.js +99 -1
  141. package/sdk/dist/index.d.ts +2 -2
  142. package/sdk/dist/index.js +3 -3
  143. package/sdk/package.json +3 -2
  144. package/sdk/src/index.ts +3 -3
  145. package/sdk/test/oft-sml.test.ts +20 -20
  146. package/sdk/test/upgrader.test.ts +2 -3
  147. package/sdk/turbo.json +8 -0
  148. package/tools/ts-bindings-gen/Cargo.toml +2 -0
  149. package/tools/ts-bindings-gen/src/main.rs +53 -5
  150. package/turbo.json +0 -2
  151. package/contracts/oapps/oft/src/interfaces/mint_burn_token.rs +0 -23
  152. package/contracts/oapps/oft/src/interfaces/mod.rs +0 -3
  153. package/contracts/oapps/oft/src/oft_impl.rs +0 -201
  154. package/contracts/oapps/oft/src/tests/extensions/mod.rs +0 -11
  155. package/contracts/oapps/oft/src/tests/extensions/setup.rs +0 -917
  156. package/contracts/oapps/oft/src/tests/extensions/test_oft_fee.rs +0 -751
  157. package/contracts/oapps/oft/src/tests/extensions/test_pausable.rs +0 -434
  158. package/contracts/oapps/oft/src/tests/extensions/test_rate_limiter.rs +0 -1080
  159. package/contracts/oapps/oft-std/integration-tests/utils.rs +0 -427
  160. package/contracts/oapps/oft-std/src/lib.rs +0 -16
  161. package/contracts/oapps/oft-std/src/oft.rs +0 -174
  162. package/sdk/dist/generated/oft_std.d.ts +0 -1722
  163. package/sdk/dist/generated/oft_std.js +0 -316
  164. package/sdk/dist/wasm/blocked-message-lib.d.ts +0 -1
  165. package/sdk/dist/wasm/blocked-message-lib.js +0 -2
  166. package/sdk/dist/wasm/counter.d.ts +0 -1
  167. package/sdk/dist/wasm/counter.js +0 -2
  168. package/sdk/dist/wasm/dvn-fee-lib.d.ts +0 -1
  169. package/sdk/dist/wasm/dvn-fee-lib.js +0 -2
  170. package/sdk/dist/wasm/dvn.d.ts +0 -1
  171. package/sdk/dist/wasm/dvn.js +0 -2
  172. package/sdk/dist/wasm/endpoint-v2.d.ts +0 -1
  173. package/sdk/dist/wasm/endpoint-v2.js +0 -2
  174. package/sdk/dist/wasm/executor-fee-lib.d.ts +0 -1
  175. package/sdk/dist/wasm/executor-fee-lib.js +0 -2
  176. package/sdk/dist/wasm/executor-helper.d.ts +0 -1
  177. package/sdk/dist/wasm/executor-helper.js +0 -2
  178. package/sdk/dist/wasm/executor.d.ts +0 -1
  179. package/sdk/dist/wasm/executor.js +0 -2
  180. package/sdk/dist/wasm/layerzero-views.d.ts +0 -1
  181. package/sdk/dist/wasm/layerzero-views.js +0 -2
  182. package/sdk/dist/wasm/oft-std.d.ts +0 -1
  183. package/sdk/dist/wasm/oft-std.js +0 -2
  184. package/sdk/dist/wasm/price-feed.d.ts +0 -1
  185. package/sdk/dist/wasm/price-feed.js +0 -2
  186. package/sdk/dist/wasm/simple-message-lib.d.ts +0 -1
  187. package/sdk/dist/wasm/simple-message-lib.js +0 -2
  188. package/sdk/dist/wasm/treasury.d.ts +0 -1
  189. package/sdk/dist/wasm/treasury.js +0 -2
  190. package/sdk/dist/wasm/uln302.d.ts +0 -1
  191. package/sdk/dist/wasm/uln302.js +0 -2
  192. package/sdk/dist/wasm/upgrader.d.ts +0 -1
  193. package/sdk/dist/wasm/upgrader.js +0 -2
  194. package/sdk/dist/wasm.d.ts +0 -15
  195. package/sdk/dist/wasm.js +0 -15
  196. /package/contracts/oapps/{oft-std → oft}/integration-tests/extensions/mod.rs +0 -0
  197. /package/contracts/oapps/{oft → oft-core}/src/codec/mod.rs +0 -0
  198. /package/contracts/oapps/{oft → oft-core}/src/codec/oft_compose_msg_codec.rs +0 -0
  199. /package/contracts/oapps/{oft → oft-core}/src/codec/oft_msg_codec.rs +0 -0
  200. /package/contracts/oapps/{oft → oft-core}/src/errors.rs +0 -0
  201. /package/contracts/oapps/{oft → oft-core}/src/events.rs +0 -0
  202. /package/contracts/oapps/{oft → oft-core}/src/storage.rs +0 -0
  203. /package/contracts/oapps/{oft → oft-core}/src/tests/test_decimals.rs +0 -0
  204. /package/contracts/oapps/{oft → oft-core}/src/tests/test_oft_compose_msg_codec.rs +0 -0
  205. /package/contracts/oapps/{oft → oft-core}/src/tests/test_oft_version.rs +0 -0
  206. /package/contracts/oapps/{oft → oft-core}/src/tests/test_quote_oft.rs +0 -0
  207. /package/contracts/oapps/{oft → oft-core}/src/tests/test_quote_send.rs +0 -0
  208. /package/contracts/oapps/{oft → oft-core}/src/tests/test_send.rs +0 -0
  209. /package/contracts/oapps/{oft → oft-core}/src/tests/test_token.rs +0 -0
  210. /package/contracts/oapps/{oft → oft-core}/src/types.rs +0 -0
  211. /package/contracts/workers/{worker/src/interfaces → fee-lib-interfaces/src}/dvn_fee_lib.rs +0 -0
  212. /package/contracts/workers/{worker/src/interfaces → fee-lib-interfaces/src}/executor_fee_lib.rs +0 -0
  213. /package/contracts/workers/{worker/src/interfaces → fee-lib-interfaces/src}/price_feed.rs +0 -0
@@ -4,7 +4,21 @@ import type { u32, u64, u128, i128, Option } from '@stellar/stellar-sdk/contract
4
4
  export * from '@stellar/stellar-sdk';
5
5
  export * as contract from '@stellar/stellar-sdk/contract';
6
6
  export * as rpc from '@stellar/stellar-sdk/rpc';
7
- export type MigrationData = void;
7
+ /**
8
+ * Embedded WASM bytecode (base64-encoded)
9
+ * Size: 33910 bytes (33.12 KB)
10
+ */
11
+ export declare const WASM_BASE64 = "AGFzbQEAAAABlgEaYAR+fn5+AX5gAn5+AX5gA35+fgF+YAF+AX5gAAF+YAN/f38AYAF/AX5gAn9/AGACfn4Bf2ACf34AYAN/fn4AYAABf2ABfwBgAX8Bf2AAAGACfn8AYAF+AGACfn8BfmAEf39/fwF+YAV/f39+fgBgAn9/AX5gBX5/f39/AGABfgF/YAJ+fgBgBH9+fn8AYAV/fn5+fgACowEbAWwBNwAAAWwBMQABAWwBXwACAWEBMAADAWkBNgABAWwBMgABAXgBMQABAXYBMwADAXYBMQABAWIBOAADAWwBNgADAWIBMAADAWkBXwADAWkBMAADAWkBMwABAWkBNQADAWkBNAADAXYBZwABAWIBagABAW0BOQACAW0BYQAAAXgBMAABAXgBMwAEAXgBOAAEAWwBMAABAWwBOAABAXgBNQADA3FwBQYHCAkKAQsMBw0LBg4EBAwPDgwQBgwBEQkSBQkKBgcQDAQBBwcQABMTDQcMDgwKBAMECQEUAwMDAxUBEAcBCQEDFgQMBAwDCAkBCQsGBAcUBAQBBAQDFwEOCgQOBAMMAwQHBA4FCQUGBwUYGBkZGQUDAQARBiEEfwFBgIDAAAt/AEGshMAAC38AQc+GwAALfwBB0IbAAAsHpwUkBm1lbW9yeQIACmF1dGhvcml6ZXIAPQ1fX2NvbnN0cnVjdG9yAD4TZXN0aW1hdGVfZmVlX2J5X2VpZABCFm5hdGl2ZV90b2tlbl9wcmljZV91c2QASwlnZXRfcHJpY2UATBtnZXRfcHJpY2VfcmF0aW9fZGVub21pbmF0b3IATRFzZXRfcHJpY2VfdXBkYXRlcgBPG3NldF9wcmljZV9yYXRpb19kZW5vbWluYXRvcgBSIHNldF9hcmJpdHJ1bV9jb21wcmVzc2lvbl9wZXJjZW50AFMVc2V0X2VpZF90b19tb2RlbF90eXBlAFQJc2V0X3ByaWNlAFYWc2V0X3ByaWNlX2Zvcl9hcmJpdHJ1bQBZGnNldF9uYXRpdmVfdG9rZW5fcHJpY2VfdXNkAFsQaXNfcHJpY2VfdXBkYXRlcgBcHGFyYml0cnVtX2NvbXByZXNzaW9uX3BlcmNlbnQAXhJhcmJpdHJ1bV9wcmljZV9leHQAYBFlaWRfdG9fbW9kZWxfdHlwZQBiD3NldF90dGxfY29uZmlncwBlC3R0bF9jb25maWdzAGkSZnJlZXplX3R0bF9jb25maWdzAGwVaXNfdHRsX2NvbmZpZ3NfZnJvemVuAG0TZXh0ZW5kX2luc3RhbmNlX3R0bABuBW93bmVyAG8NcGVuZGluZ19vd25lcgBwEnRyYW5zZmVyX293bmVyc2hpcABxGnByb3Bvc2Vfb3duZXJzaGlwX3RyYW5zZmVyAHMQYWNjZXB0X293bmVyc2hpcAB2EnJlbm91bmNlX293bmVyc2hpcAB4B3VwZ3JhZGUAeQdtaWdyYXRlAHsGZnJlZXplAHwJaXNfZnJvemVuAH4BXwMBCl9fZGF0YV9lbmQDAgtfX2hlYXBfYmFzZQMDCrKBAXAlACAAEJyAgIAAQgEgAa1CIIZCBIQgAq1CIIZCBIQQgICAgAAaC4QDAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQAJAAkACQAJAAkACQAJAIAAoAgAOBwABAgMEBQYACyABQYCAwIAAQRUQtoCAgAAgASgCAA0HIAEgASkDCBC3gICAAAwGCyABQZWAwIAAQQwQtoCAgAAgASgCAA0GIAEgASkDCCAAKQMIELiAgIAADAULIAFBoYDAgABBERC2gICAACABKAIADQUgASABKQMIIAA1AgRCIIZCBIQQuICAgAAMBAsgAUGygMCAAEEQELaAgIAAIAEoAgANBCABIAEpAwgQt4CAgAAMAwsgAUHCgMCAAEEOELaAgIAAIAEoAgANAyABIAEpAwgQt4CAgAAMAgsgAUHQgMCAAEEaELaAgIAAIAEoAgANAiABIAEpAwgQt4CAgAAMAQsgAUHqgMCAAEEOELaAgIAAIAEoAgANASABIAEpAwggADUCBEIghkIEhBC4gICAAAsgASkDCCECIAEpAwBQDQELAAsgAUEQaiSAgICAACACC40BAgF/AX4jgICAgABBIGsiAiSAgICAAAJAAkACQCABEJyAgIAAIgNCAhCegICAAA0AQgAhAwwBCyACIANCAhCBgICAABCfgICAACACKAIAQQFGDQEgAikDECEDIAAgAikDGDcDGCAAIAM3AxBCASEDCyAAIAM3AwAgAEIANwMIIAJBIGokgICAgAAPCwALDwAgACABEJiAgIAAQgFRC3sCAX8BfgJAAkACQCABp0H/AXEiAkHEAEYNACACQQpHDQFCACEDIABCADcDGCAAIAFCCIg3AxAMAgsgARCPgICAACEDIAEQkICAgAAhASAAIAM3AxggACABNwMQQgAhAwwBCyAAQoOQgICAATcDCEIBIQMLIAAgAzcDAAsdACAAEJyAgIAAIAEgAhChgICAAEICEIKAgIAAGgtDAQF/I4CAgIAAQRBrIgIkgICAgAAgAiAAIAEQyoCAgAACQCACKAIAQQFHDQAACyACKQMIIQEgAkEQaiSAgICAACABC1gBAn8jgICAgABBEGsiACSAgICAACAAQQRqEKOAgIAAAkAgACgCBEEBRw0AIAAoAgggACgCDBCkgICAAAtBABClgICAACEBIABBEGokgICAgAAgAUH9AXELDAAgAEEBEISBgIAACxsAIACtQiCGQgSEIAGtQiCGQgSEEJmAgIAAGgtHAgF/AX5BAiEBAkAgABCDgYCAACICQgIQnoCAgABFDQBBASEBAkACQCACQgIQgYCAgACnQf8BcQ4CAQIACwALQQAhAQsgAQuLAQICfwF+I4CAgIAAQRBrIgAkgICAgAAgAEEEahCjgICAAAJAIAAoAgRBAUcNACAAKAIIIAAoAgwQpICAgAALQQAhAQJAQQAQp4CAgAAiAkICEJ6AgIAARQ0AQQEhAQJAAkAgAkICEIGAgIAAp0H/AXEOAgECAAsAC0EAIQELIABBEGokgICAgAAgAQvCAQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQAJAAkAgAEH/AXEOAwABAgALIAFBrobAgABBBhC2gICAACABKAIADQMgASABKQMIELeAgIAADAILIAFBtIbAgABBCBC2gICAACABKAIADQIgASABKQMIELeAgIAADAELIAFBvIbAgABBChC2gICAACABKAIADQEgASABKQMIELeAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILDwAQqYCAgAAQg4CAgAAaC2YCAX8BfiOAgICAAEEQayIAJICAgIAAIAAQo4CAgAACQCAAKAIAQQFHDQAgACgCBCAAKAIIEKSAgIAACyAAEKuAgIAAIAApAwghASAAKQMAQYoIEKyAgIAAIABBEGokgICAgAAgAQtKAgF/AX4jgICAgABBEGsiACSAgICAACAAEKuAgIAAIAApAwghASAAKQMAQYoIEKyAgIAAIAEQg4CAgAAaIABBEGokgICAgAAgAQtQAQF/I4CAgIAAQRBrIgEkgICAgAAgAUEEahCjgICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQpICAgAALIAAQsYCAgAAgAUEQaiSAgICAAAspAAJAIACnQQFxRQ0ADwsgAUH6d2qtQiCGQoOAgIDggAF8EK+AgIAAAAtCAQF/I4CAgIAAQRBrIgAkgICAgAAgABCugICAAAJAIAApAwBQDQBCg4CAgLCBARCvgICAAAALIABBEGokgICAgAALkwECAX8CfiOAgICAAEEQayIBJICAgIAAIAFBBGoQo4CAgAACQCABKAIEQQFHDQAgASgCCCABKAIMEKSAgIAAC0IAIQICQAJAQQEQsICAgAAiA0IAEJ6AgIAARQ0AIANCABCBgICAACICQv8Bg0LNAFINASAAIAI3AwhCASECCyAAIAI3AwAgAUEQaiSAgICAAA8LAAsLACAAEJqAgIAAGguSAQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQCAAQQFxRQ0AIAFBwYXAgABBDBC2gICAACABKAIADQIgASABKQMIELeAgIAADAELIAFBvIXAgABBBRC2gICAACABKAIADQEgASABKQMIELeAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILTQECfkIAIQECQAJAQQAQsICAgAAiAkICEJ6AgIAARQ0AIAJCAhCBgICAACIBQv8Bg0LNAFINASAAIAE3AwhCASEBCyAAIAE3AwAPCwALDQAgAUICIACnQQFxGwtpAQF/I4CAgIAAQSBrIgIkgICAgAAgAkEQaiAAELSAgIAAAkAgAigCEEEBRw0AAAsgAiACKQMYNwMIIAIgAa1CIIZCBIQ3AwBBuILAgABBAiACQQIQtYCAgAAhACACQSBqJICAgIAAIAALOwACQAJAIAFC//////////8AVg0AIAFCCIZCBoQhAQwBCyABEIyAgIAAIQELIABCADcDACAAIAE3AwgLLgACQCABIANGDQAACyAArUIghkIEhCACrUIghkIEhCABrUIghkIEhBCTgICAAAtRAgF/AX4jgICAgABBEGsiAySAgICAACADIAEgAhCAgYCAAEIBIQQCQCADKAIADQAgACADKQMINwMIQgAhBAsgACAENwMAIANBEGokgICAgAALRAEB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QoCAgIAwWg0AIAJCIIghAiABQRRqELyAgIAAIAEoAhQNAQwCCwALIAEgASgCGCABKAIcEJuAgIAACyACpyEACyABQSBqJICAgIAAIAALoQICAX8BfiOAgICAAEHAAGsiAiSAgICAACACQRBqEKOAgIAAAkAgAigCEEEBRw0AIAIoAhQgAigCGBCkgICAAAsgAkECNgIAIAIgATYCBAJAAkACQCACEJyAgIAAIgNCARCegICAAEUNACACQRBqIANCARCBgICAABDOgICAACACKAIQQQFxRQ0BAAsgAEIANwMIIABCADcDAAwBCyAAIAIpAyA3AxAgAEEoaiACQRBqQShqKQMANwMAIABBIGogAkEQakEgaikDADcDACAAQRhqIAJBEGpBGGopAwA3AwAgAEIANwMIIABCATcDACACQRBqELyAgIAAIAIoAhBBAUcNACACIAIoAhQgAigCGBCbgICAAAsgAkHAAGokgICAgAAL+gMEAX8FfgF/An4jgICAgABBoAFrIgEkgICAgAAgAUGAAWoQo4CAgAACQCABKAKAAUEBRw0AIAEoAoQBIAEoAogBEKSAgIAACyABQQA2AnAgAUGAAWogAUHwAGoQnYCAgAAgASkDmAEhAiABKQOQASEDIAEpA4ABIQRCCiEFQgEhBkEUIQdCACEIQgAhCQJAAkADQAJAIAdBAUsNACABQcAAaiAIQgAgBUIAEIqBgIAAIAFB0ABqIAlCACAGQgAQioGAgAAgAUHgAGogBkIAIAVCABCKgYCAACAIQgBSIAlCAFJxIAEpA0hCAFJyIAEpA1hCAFJyIAEpA2giBSABKQNAIAEpA1B8fCIJIAVUckUNAgwDCwJAIAdBAXFFDQAgAUEQaiAIQgAgBUIAEIqBgIAAIAFBIGogCUIAIAZCABCKgYCAACABQTBqIAZCACAFQgAQioGAgAAgCEIAUiAJQgBScSABKQMYQgBSciABKQMoQgBSciABKQM4IgYgASkDECABKQMgfHwiCCAGVHINAyABKQMwIQYLIAEgBSAJIAUgCRCKgYCAACAHQQF2IQcgASkDCCEJIAEpAwAhBQwACwsgASkDYCEFIAAgAiAJIASnQQFxIgcbNwMIIAAgAyAFIAcbNwMAIAFBoAFqJICAgIAADwsQyICAgAAACwkAEP+AgIAAAAuKAQMBfwF+AX8jgICAgABBMGsiASSAgICAACABQRBqEKOAgIAAAkAgASgCEEEBRw0AIAEoAhQgASgCGBCkgICAAAsgAUEENgIAIAFBEGogARCdgICAACABKQMgIQIgACABKQMoQgAgASgCEEEBcSIDGzcDCCAAIAJCACADGzcDACABQTBqJICAgIAAC0YAAkACQCABQv//////////AFYgAkIAUiACUBsNACABQgiGQgqEIQIMAQsgAiABEI6AgIAAIQILIABCADcDACAAIAI3AwgLPgIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABDJgICAACAAKQMAIAApAwgQoYCAgAAhASAAQRBqJICAgIAAIAELeQEBfyOAgICAAEHAAGsiASSAgICAAAJAIABC/wGDQgRSDQAgASAAQiCIpxDGgICAAAJAAkAgASgCAEEBcQ0AQgIhAAwBCyABQTBqIAFBEGoQuoCAgAAgASgCMEEBcQ0BIAEpAzghAAsgAUHAAGokgICAgAAgAA8LAAs+AgF/AX4jgICAgABBEGsiACSAgICAACAAEMeAgIAAIAApAwAgACkDCBChgICAACEBIABBEGokgICAgAAgAQuBAgICfwN+I4CAgIAAQcAAayICJICAgIAAQQAhAwJAA0AgA0EYRg0BIAJBCGogA2pCAjcDACADQQhqIQMMAAsLQgAhBEIBIQUCQCABQv8Bg0LMAFINACABQcCDwIAAQQMgAkEIakEDENWAgIAAIAIpAwgiAUL/AYNCBFINACACQSBqIAIpAxAQ5ICAgAAgAigCIA0AIAIpAyghBiACQSBqIAIpAxgQn4CAgAAgAigCIEEBRg0AIAIpAzAhBCAAIAIpAzg3AxggACAENwMQIAAgAUIgiKc2AiggACAGNwMgQgAhBUIAIQQLIAAgBTcDACAAIAQ3AwggAkHAAGokgICAgAAL8gEBAn8jgICAgABBEGsiAiSAgICAAAJAIABC/wGDQs0AUg0AQQEgAadB/wFxIgNBAEdBAXQgA0EBRhsiA0ECRg0AEKiAgIAAIAIQo4CAgAACQCACKAIAQQFHDQAgAigCBCACKAIIEKSAgIAACwJAAkAgA0EBcQ0AIAJBATYCACACIAA3AwggAhCcgICAAEIBEIWAgIAAGgwBCyAAELuAgIAAC0H4gMCAAEERENCAgIAAENGAgIAAIQEgAiAANwMIIAIgA603AwAgAUGYgcCAAEECIAJBAhC1gICAABCGgICAABogAkEQaiSAgICAAEICDwsAC0UCAX8BfiOAgICAAEEQayICJICAgIAAIAIgACABEICBgIAAAkAgAigCAEEBRw0AAAsgAikDCCEDIAJBEGokgICAgAAgAwtjAwF/AX4BfyOAgICAAEEQayIBJICAgIAAIAEgADcDAEICIQJBASEDAkADQCADRQ0BIANBf2ohAyAAIQIMAAsLIAEgAjcDCCABQQhqQQEQ64CAgAAhACABQRBqJICAgIAAIAALowECAX8BfiOAgICAAEEgayIBJICAgIAAIAEgABCfgICAAAJAAkAgASgCAEEBRg0AIAEpAxghACABKQMQIQIQqICAgAAgARCjgICAAAJAIAEoAgBBAUcNACABKAIEIAEoAggQpICAgAALIAIgAIRCAFENASABQQA2AgAgASACIAAQoICAgAAgAUEgaiSAgICAAEICDwsAC0KDgICAEBCvgICAAAALiQECAX8BfiOAgICAAEEgayIBJICAgIAAIAEgABCfgICAAAJAIAEoAgBBAUYNACABKQMYIQAgASkDECECEKiAgIAAIAEQo4CAgAACQCABKAIAQQFHDQAgASgCBCABKAIIEKSAgIAACyABQQU2AgAgASACIAAQoICAgAAgAUEgaiSAgICAAEICDwsAC5cDBQF/A34BfwF+AX8jgICAgABBIGsiASSAgICAAAJAIABC/wGDQssAUg0AEKiAgIAAIAEQo4CAgAACQCABKAIAQQFHDQAgASgCBCABKAIIEKSAgIAACyAAEIeAgIAAQiCIIQJCACEDA0ACQAJAAkAgAyACUQ0AIAAgA0IghkIEhBCIgICAACEEQQAhBQJAA0AgBUEQRg0BIAEgBWpCAjcDACAFQQhqIQUMAAsLQQMhBSAEQv8Bg0LMAFINASAEQYiDwIAAQQIgAUECENWAgIAAIAEpAwAiBEL/AYNCBFINASABKQMIIgZC/wGDQgRSDQIgBEIgiKchByAGQiCIpyIFQQMgBUEDSRshBQwCCyABQSBqJICAgIAAQgIPCwsCQCADQv////8PUQ0AIAVBA0YNACABQQY2AgAgASAHNgIEIAEQnICAgAAgBa1CIIZCBIRCARCCgICAABogAUEUahC8gICAAAJAIAEoAhRBAUcNACABIAEoAhggASgCHBCbgICAAAsgA0IBfCEDDAELCxDIgICAAAALAAsxAAJAIAIgBEYNAAALIAAgAa1CIIZCBIQgA61CIIZCBIQgAq1CIIZCBIQQlICAgAAaC6gEBQF/AX4CfwF+BH8jgICAgABBgAFrIgIkgICAgAACQAJAIABC/wGDQs0AUg0AIAFC/wGDQssAUg0AIAJB0ABqEKOAgIAAAkAgAigCUEEBRw0AIAIoAlQgAigCWBCkgICAAAsgABDXgICAACABEIeAgIAAQiCIIQNCACEAIAJB0ABqQRBqIgRBCGohBQJAA0AgACADUQ0BIAEgAEIghkIEhBCIgICAACEGQQAhBwJAA0AgB0EQRg0BIAJBwABqIAdqQgI3AwAgB0EIaiEHDAALC0EBIQgCQAJAIAZC/wGDQswAUQ0ADAELIAZBzILAgABBAiACQcAAakECENWAgIAAIAIpA0AiBkL/AYNCBFINACACQdAAaiACKQNIEM6AgIAAIAIoAlAiCEEBcQ0AIAZCIIinIQcgAkEgakEYaiAEQRhqKQMANwMAIAJBIGpBEGogBEEQaikDADcDACACIAQpAwA3AyAgAiAFKQMANwMoCyAAQv////8PUQ0DIAJBGGoiCSACQSBqQRhqKQMANwMAIAJBEGoiCiACQSBqQRBqKQMANwMAIAIgAikDKDcDCCACIAIpAyA3AwAgCEEBcQ0DIAJB0ABqQRhqIAkpAwA3AwAgBCAKKQMANwMAIAIgAikDCDcDWCACIAIpAwA3A1AgAiAHNgJwIAcgAkHQAGoQ2ICAgAAgAEIBfCEADAALCyACQYABaiSAgICAAEICDwsACxDIgICAAAALbQEBfyOAgICAAEEQayIBJICAgIAAIAAQg4CAgAAaIAEQq4CAgAACQAJAAkAgASgCAEEBRw0AIAEpAwggABDjgICAAA0BCyAAEN2AgIAARQ0BCyABQRBqJICAgIAADwtCg4CAgMAAEK+AgIAAAAuCAgIBfwF+I4CAgIAAQcAAayICJICAgIAAIAJBAjYCACACIAA2AgQgAhCcgICAACABELmAgIAAQgEQgoCAgAAaIAJBMGoQvICAgAACQCACKAIwQQFHDQAgAiACKAI0IAIoAjgQm4CAgAALIAJBEGogAUEQaikDADcDACACQRhqIAFBGGopAwA3AwAgAiABKQMANwMAIAIgAUEIaikDADcDCCACIAA2AiBBqIHAgABBDRDQgICAABDRgICAACEDIAIgAhC5gICAADcDOCACIACtQiCGQgSENwMwIANBxIHAgABBAiACQTBqQQIQtYCAgAAQhoCAgAAaIAJBwABqJICAgIAAC+QDAwJ/AX4BfyOAgICAAEGQAWsiAiSAgICAAAJAIABC/wGDQs0AUg0AQQAhAwJAA0AgA0EYRg0BIAJByABqIANqQgI3AwAgA0EIaiEDDAALCyABQv8Bg0LMAFINACABQeSCwIAAQQMgAkHIAGpBAxDVgICAACACKQNIIgRC/wGDQgRSDQAgAiACKQNQENqAgIAAIAIoAgBBAUYNACACKAIQIQMgAikDCCEBIAJB4ABqIAIpA1gQzoCAgAAgAigCYEEBcQ0AIAJBGGogAkGIAWopAwA3AwAgAkEQaiACQYABaikDADcDACACIAIpA3A3AwAgAiACQeAAakEYaikDADcDCCACIARCIIinIgU2AjAgAiADNgIoIAIgATcDICACQeAAahCjgICAAAJAIAIoAmBBAUcNACACKAJkIAIoAmgQpICAgAALIAAQ14CAgAAgBSACENiAgIAAIAJBAzYCYCACQeAAahCcgICAACABIAMQs4CAgABCAhCCgICAABpB1IHAgABBGhDQgICAABDRgICAACEAIAEgAxCzgICAACEBIAIgBa1CIIZCBIQ3A2ggAiABNwNgIABBgILAgABBAiACQeAAakECELWAgIAAEIaAgIAAGiACQZABaiSAgICAAEICDwsAC7gBAgJ/AX4jgICAgABBIGsiAiSAgICAAEEAIQMCQANAIANBEEYNASACIANqQgI3AwAgA0EIaiEDDAALC0IBIQQCQCABQv8Bg0LMAFINACABQbiCwIAAQQIgAkECENWAgIAAIAIpAwAiAUL/AYNCBFINACACQRBqIAIpAwgQ5ICAgAAgAigCEA0AIAIpAxghBCAAIAFCIIinNgIQIAAgBDcDCEIAIQQLIAAgBDcDACACQSBqJICAgIAAC5cBAgF/AX4jgICAgABBIGsiAiSAgICAAAJAIABC/wGDQs0AUg0AIAIgARCfgICAACACKAIAQQFGDQAgAikDGCEBIAIpAxAhAyACEKOAgIAAAkAgAigCAEEBRw0AIAIoAgQgAigCCBCkgICAAAsgABDXgICAACACQQQ2AgAgAiADIAEQoICAgAAgAkEgaiSAgICAAEICDwsACxsAAkAgAEL/AYNCzQBRDQAACyAAEN2AgIAArQuUAQECfyOAgICAAEEgayIBJICAgIAAIAEQo4CAgAACQCABKAIAQQFHDQAgASgCBCABKAIIEKSAgIAACyABQQE2AgAgASAANwMIAkAgARCcgICAAEIBEJ6AgIAAIgJFDQAgAUEUahC8gICAACABKAIUQQFHDQAgASABKAIYIAEoAhwQm4CAgAALIAFBIGokgICAgAAgAgs+AgF/AX4jgICAgABBEGsiACSAgICAACAAEN+AgIAAIAApAwAgACkDCBChgICAACEBIABBEGokgICAgAAgAQuKAQMBfwF+AX8jgICAgABBMGsiASSAgICAACABQRBqEKOAgIAAAkAgASgCEEEBRw0AIAEoAhQgASgCGBCkgICAAAsgAUEFNgIAIAFBEGogARCdgICAACABKQMgIQIgACABKQMoQgAgASgCEEEBcSIDGzcDCCAAIAJCLyADGzcDACABQTBqJICAgIAACz4CAX8BfiOAgICAAEEQayIAJICAgIAAIAAQ4YCAgAAgACkDACAAKAIIELOAgIAAIQEgAEEQaiSAgICAACABC7oBAwF/AX4BfyOAgICAAEEwayIBJICAgIAAIAFBGGoQo4CAgAACQCABKAIYQQFHDQAgASgCHCABKAIgEKSAgIAACyABQQM2AggCQAJAAkAgAUEIahCcgICAACICQgIQnoCAgAANAEIAIQJBACEDDAELIAFBGGogAkICEIGAgIAAENqAgIAAIAEoAhhBAUYNASABKAIoIQMgASkDICECCyAAIAM2AgggACACNwMAIAFBMGokgICAgAAPCwALJAACQCAAQv8Bg0IEUQ0AAAsgAEIgiKcQxYCAgACtQiCGQgSECw0AIAAgARCVgICAAFALXQIBfwF+AkACQCABp0H/AXEiAkHAAEYNAAJAIAJBBkYNAEIBIQNCg5CAgIABIQEMAgsgAUIIiCEBQgAhAwwBC0IAIQMgARCNgICAACEBCyAAIAM3AwAgACABNwMIC94EAQV/I4CAgIAAQdAAayICJICAgIAAIAJBKGogABDmgICAAAJAIAIoAihBAkYNACACQQhqQQhqIAJBKGpBCGoiAygCADYCACACIAIpAig3AwggAkEoaiABEOaAgIAAIAIoAihBAkYNACACQRhqQQhqIAMoAgA2AgAgAiACKQIoNwMYIAJBKGoQo4CAgAACQCACKAIoQQFHDQAgAigCLCACKAIwEKSAgIAACxCogICAAAJAAkACQBCmgICAAA0AEOeAgIAAIgNBgPuAAyADQYD7gANJGyEEIAIgAkEYajYCLCACIAJBCGo2AihBACEDA0AgA0EIRg0DAkAgAkEoaiADaigCACIFKAIAQQFxRQ0AIAUoAggiBiAESw0DIAUoAgQgBksNAwsgA0EEaiEDDAALC0KDgICA0P8AEK+AgIAAAAtCg4CAgMD/ABCvgICAAAALAkACQCACKAIIQQFHDQAgAigCDCACKAIQEL+AgIAADAELQQEQp4CAgABCAhCFgICAABoLAkACQCACKAIYQQFHDQAgAigCHCACKAIgEMCAgIAADAELQQIQp4CAgABCAhCFgICAABoLIAJBKGpBCGogAkEIakEIaigCADYCACACQTxqIAJBGGpBCGooAgA2AgAgAiACKQMINwMoIAIgAikDGDcCNEHohcCAAEEPENCAgIAAENGAgIAAIQAgAkEoahDogICAACEBIAIgAkE0ahDogICAADcDSCACIAE3A0AgAEGMhsCAAEECIAJBwABqQQIQtYCAgAAQhoCAgAAaIAJB0ABqJICAgIAAQgIPCwALaAEBfyOAgICAAEEQayICJICAgIAAAkACQCABQgJRDQAgAkEEaiABEIGBgIAAAkAgAigCBEUNACAAQQI2AgAMAgsgACACKQIINwIEIABBATYCAAwBCyAAQQA2AgALIAJBEGokgICAgAALMwECfhCWgICAACEAAkAQl4CAgABCIIgiASAAQiCIIgBUDQAgAacgAKdrDwsQyICAgAAAC0MCAX8BfiOAgICAAEEQayIBJICAgIAAIAEgABDqgICAAAJAIAEoAgBBAUcNAAALIAEpAwghAiABQRBqJICAgIAAIAILwgECAn8BfiOAgICAAEHAAGsiACSAgICAACAAQQhqEKOAgIAAAkAgACgCCEEBRw0AIAAoAgwgACgCEBCkgICAAAsgAEEIahCjgICAACAAQRRqIgEQvICAgAAgAEEwaiAAQQhqEOqAgIAAAkACQCAAKAIwDQAgACkDOCECIABBMGogARDqgICAACAAKAIwQQFHDQELAAsgACAAKQM4NwMoIAAgAjcDICAAQSBqQQIQ64CAgAAhAiAAQcAAaiSAgICAACACCzAAAkAgASgCAEEBRw0AIAAgASgCBCABKAIIEIKBgIAADwsgAEIANwMAIABCAjcDCAsaACAArUIghkIEhCABrUIghkIEhBCRgICAAAuqAQEBfyOAgICAAEEgayIAJICAgIAAIABBDGoQo4CAgAACQCAAKAIMQQFHDQAgACgCECAAKAIUEKSAgIAACxCogICAAAJAEKaAgIAARQ0AQoOAgIDg/wAQr4CAgAAAC0EAEKeAgIAAQgFCAhCCgICAABpBnIbAgABBEhDQgICAABDRgICAAEEEQQAgAEEYakEAELWAgIAAEIaAgIAAGiAAQSBqJICAgIAAQgILCQAQpoCAgACtCzEAAkAgAEL/AYNCBFINACABQv8Bg0IEUg0AIABCIIinIAFCIIinEKSAgIAAQgIPCwALPgIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABCrgICAACAAKQMAIAApAwgQsoCAgAAhASAAQRBqJICAgIAAIAELPgIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABCugICAACAAKQMAIAApAwgQsoCAgAAhASAAQRBqJICAgIAAIAELfQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQCAAQv8Bg0LNAFINACABQQRqEKOAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBCkgICAAAsQqoCAgAAhAhCtgICAACAAEMGAgIAAIAIgABDygICAACABQRBqJICAgIAAQgIPCwALYQIBfwF+I4CAgIAAQRBrIgIkgICAgABBtYTAgABBFRDQgICAABDRgICAACEDIAIgADcDCCACIAE3AwAgA0HchMCAAEECIAJBAhC1gICAABCGgICAABogAkEQaiSAgICAAAvcAgIBfwJ+I4CAgIAAQSBrIgIkgICAgAACQAJAAkAgAEL/AYNCzQBSDQAgAUL/AYNCBFINACACQQhqEKOAgIAAAkAgAigCCEEBRw0AIAIoAgwgAigCEBCkgICAAAsQqoCAgAAhAwJAAkAgAUL/////D1YNACACQQhqEK6AgIAAIAIpAxAhASACKQMIQYgIEKyAgIAAIAEgABDjgICAAEUNAxD0gICAAAwBCxDngICAACABQiCIp0kNA0EBIABCABD1gICAAEEBELCAgIAAQgAgAUKEgICAcIMiASABEICAgIAAGkHshMCAAEEWENCAgIAAENGAgIAAIQQgAiABNwMYIAIgAzcDECACIAA3AwggBEGIhcCAAEEDIAJBCGpBAxC1gICAABCGgICAABoLIAJBIGokgICAgABCAg8LAAtCg4CAgOCAARCvgICAAAALQoOAgIDwgAEQr4CAgAAACxMAQQEQsICAgABCABCFgICAABoLFQAgABCwgICAACABIAIQgoCAgAAaC6cBAgF/An4jgICAgABBEGsiACSAgICAACAAEKOAgIAAAkAgACgCAEEBRw0AIAAoAgQgACgCCBCkgICAAAsgABCugICAACAAKQMIIQEgACkDAEGICBCsgICAACABEIOAgIAAGiAAELGAgIAAAkAgACgCAA0AEPeAgIAAAAsgACkDCCECEPSAgIAAIAEQwYCAgAAgAiABEPKAgIAAIABBEGokgICAgABCAgsJABDIgICAAAALoAECAX8CfiOAgICAAEEQayIAJICAgIAAIAAQo4CAgAACQCAAKAIAQQFHDQAgACgCBCAAKAIIEKSAgIAACxCqgICAACEBEK2AgIAAQQAQsICAgABCAhCFgICAABpBoIXAgABBExDQgICAABDRgICAACECIAAgATcDACACQbSFwIAAQQEgAEEBELWAgIAAEIaAgIAAGiAAQRBqJICAgIAAQgILpQEBAX8jgICAgABBEGsiASSAgICAAAJAAkAgAEL/AYNCyABSDQAgABCJgICAAEKAgICAcINCgICAgIAEUg0AIAFBBGoQo4CAgAACQCABKAIEQQFHDQAgASgCCCABKAIMEKSAgIAACxCogICAABCigICAAA0BQQEQ+oCAgAAgABCKgICAABogAUEQaiSAgICAAEICDwsAC0KDgICAwIMBEK+AgIAAAAsMAEEBIAAQ/YCAgAALrQEBAX8jgICAgABBEGsiASSAgICAAAJAAkACQCAAQv8Bg0LIAFINACABQQRqEKOAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBCkgICAAAsQqICAgABBARClgICAAEH9AXFFDQEgABCLgICAAEL/AYNCAlINAkEAEPqAgIAAIAFBEGokgICAgABCAg8LAAtCg4CAgLCDARCvgICAAAALQoOAgICggwEQr4CAgAAAC1oBAX8jgICAgABBEGsiACSA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ABAAEgAAALUAEAAHAAAAZ2FzX3Blcl9sMV9jYWxsZGF0YV9ieXRlZ2FzX3Blcl9sMl90eAAAABABEAAYAAAAKAEQAA0AAABlaWQASAEQAAMAAAC8ABAABQAAAGV4dGVuZAAASAEQAAMAAABcARAABgAAALwAEAAFAAAAbW9kZWxfdHlwZQAAtQAQAAcAAAB8ARAACgAAAGdhc19wZXJfYnl0ZWdhc19wcmljZV9pbl91bml0cHJpY2VfcmF0aW+YARAADAAAAKQBEAARAAAAtQEQAAsAAABuYXRpdmVfcHJpY2VfdXNkcHJpY2VfcmF0aW9fZGVub21pbmF0b3J0b3RhbF9nYXNfZmVl2AEQABAAAAC1ARAACwAAAOgBEAAXAAAA/wEQAA0AAAB0aHJlc2hvbGRvd25lcnNoaXBfdHJhbnNmZXJyZWRuZXdfb3duZXJvbGRfb3duZXJKAhAACQAAAFMCEAAJAAAAb3duZXJzaGlwX3RyYW5zZmVycmluZ3R0bAAAAEoCEAAJAAAAUwIQAAkAAACCAhAAAwAAAG93bmVyc2hpcF9yZW5vdW5jZWQAUwIQAAkAAABPd25lclBlbmRpbmdPd25lcmV4dGVuZF90bwAAzQIQAAkAAAAsAhAACQAAAHR0bF9jb25maWdzX3NldGluc3RhbmNlcGVyc2lzdGVudAAAAPcCEAAIAAAA/wIQAAoAAAB0dGxfY29uZmlnc19mcm96ZW5Gcm96ZW5JbnN0YW5jZVBlcnNpc3RlbnRNaWdyYXRpbmcAp3YOY29udHJhY3RzcGVjdjAAAAACAAAAAAAAAAAAAAAQUHJpY2VGZWVkU3RvcmFnZQAAAAcAAAAAAAAAAAAAABVQcmljZVJhdGlvRGVub21pbmF0b3IAAAAAAAABAAAAAAAAAAxQcmljZVVwZGF0ZXIAAAABAAAAEwAAAAEAAAAAAAAAEURlZmF1bHRNb2RlbFByaWNlAAAAAAAAAQAAAAQAAAAAAAAAAAAAABBBcmJpdHJ1bVByaWNlRXh0AAAAAAAAAAAAAAAOTmF0aXZlUHJpY2VVU0QAAAAAAAAAAAAAAAAAGkFyYml0cnVtQ29tcHJlc3Npb25QZXJjZW50AAAAAAABAAAAAAAAAA5FaWRUb01vZGVsVHlwZQAAAAAAAQAAAAQAAAAEAAAAAAAAAAAAAAAOUHJpY2VGZWVkRXJyb3IAAAAAAAUAAAAAAAAAEkludmFsaWREZW5vbWluYXRvcgAAAAAAAQAAAAAAAAAHTm9QcmljZQAAAAACAAAAAAAAAAxOb3RBbk9wU3RhY2sAAAADAAAAAAAAABBPbmx5UHJpY2VVcGRhdGVyAAAABAAAAAAAAAAIT3ZlcmZsb3cAAAAFAAAABQAAAAAAAAAAAAAAD1ByaWNlVXBkYXRlclNldAAAAAABAAAAEXByaWNlX3VwZGF0ZXJfc2V0AAAAAAAAAgAAAAAAAAAHdXBkYXRlcgAAAAATAAAAAAAAAAAAAAAGYWN0aXZlAAAAAAABAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAMUHJpY2VVcGRhdGVkAAAAAQAAAA1wcmljZV91cGRhdGVkAAAAAAAAAgAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAAAAAAAAAAAFcHJpY2UAAAAAAAfQAAAABVByaWNlAAAAAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAXQXJiaXRydW1QcmljZUV4dFVwZGF0ZWQAAAAAAQAAABphcmJpdHJ1bV9wcmljZV9leHRfdXBkYXRlZAAAAAAAAgAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAAAAAAAAAAASYXJiaXRydW1fcHJpY2VfZXh0AAAAAAfQAAAAEEFyYml0cnVtUHJpY2VFeHQAAAAAAAAAAgAAAAAAAAAAAAAACmF1dGhvcml6ZXIAAAAAAAAAAAABAAAAEwAAAAAAAAAAAAAADV9fY29uc3RydWN0b3IAAAAAAAACAAAAAAAAAAVvd25lcgAAAAAAABMAAAAAAAAADXByaWNlX3VwZGF0ZXIAAAAAAAATAAAAAAAAAAAAAABkRXN0aW1hdGUgZmVlIHdpdGggZGV0YWlsZWQgYnJlYWtkb3duIGJ5IGVuZHBvaW50IElECkNvcnJlc3BvbmRzIHRvIGVzdGltYXRlRmVlQnlFaWQgaW4gUHJpY2VGZWVkLnNvbAAAABNlc3RpbWF0ZV9mZWVfYnlfZWlkAAAAAAQAAAAAAAAAB2ZlZV9saWIAAAAAEwAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAAAAAA1jYWxsZGF0YV9zaXplAAAAAAAABAAAAAAAAAADZ2FzAAAAAAoAAAABAAAH0AAAAAtGZWVFc3RpbWF0ZQAAAAAAAAAAIUdldCB0aGUgbmF0aXZlIHRva2VuIHByaWNlIGluIFVTRAAAAAAAABZuYXRpdmVfdG9rZW5fcHJpY2VfdXNkAAAAAAAAAAAAAQAAAAoAAAAAAAAAJEdldCB0aGUgcHJpY2UgZm9yIGEgZGVzdGluYXRpb24gRUlELgAAAAlnZXRfcHJpY2UAAAAAAAABAAAAAAAAAAdkc3RfZWlkAAAAAAQAAAABAAAD6AAAB9AAAAAFUHJpY2UAAAAAAAAAAAAAIEdldCB0aGUgcHJpY2UgcmF0aW8gZGVub21pbmF0b3IuAAAAG2dldF9wcmljZV9yYXRpb19kZW5vbWluYXRvcgAAAAAAAAAAAQAAAAoAAAAAAAAAJVNldCBwcmljZSB1cGRhdGVyIHN0YXR1cyAob3duZXIgb25seSkAAAAAAAARc2V0X3ByaWNlX3VwZGF0ZXIAAAAAAAACAAAAAAAAAAd1cGRhdGVyAAAAABMAAAAAAAAABmFjdGl2ZQAAAAAAAQAAAAAAAAAAAAAALFNldCB0aGUgcHJpY2UgcmF0aW8gZGVub21pbmF0b3IgKG93bmVyIG9ubHkpAAAAG3NldF9wcmljZV9yYXRpb19kZW5vbWluYXRvcgAAAAABAAAAAAAAAAtkZW5vbWluYXRvcgAAAAAKAAAAAAAAAAAAAAA0U2V0IHRoZSBBcmJpdHJ1bSBjb21wcmVzc2lvbiBwZXJjZW50YWdlIChvd25lciBvbmx5KQAAACBzZXRfYXJiaXRydW1fY29tcHJlc3Npb25fcGVyY2VudAAAAAEAAAAAAAAAE2NvbXByZXNzaW9uX3BlcmNlbnQAAAAACgAAAAAAAAAAAAAAOFNldCB0aGUgZmVlIG1vZGVsIHR5cGUgZm9yIGRlc3RpbmF0aW9uIEVJRHMgKG93bmVyIG9ubHkpAAAAFXNldF9laWRfdG9fbW9kZWxfdHlwZQAAAAAAAAEAAAAAAAAABnBhcmFtcwAAAAAD6gAAB9AAAAAWU2V0RWlkVG9Nb2RlbFR5cGVQYXJhbQAAAAAAAAAAAAAAAAA9U2V0IHByaWNlcyBmb3IgbXVsdGlwbGUgZGVzdGluYXRpb25zIChwcmljZSB1cGRhdGVyIG9yIG93bmVyKQAAAAAAAAlzZXRfcHJpY2UAAAAAAAACAAAAAAAAAA1wcmljZV91cGRhdGVyAAAAAAAAEwAAAAAAAAAGcHJpY2VzAAAAAAPqAAAH0AAAAAtVcGRhdGVQcmljZQAAAAAAAAAAAAAAAHJTZXQgcHJpY2UgZm9yIEFyYml0cnVtIHdpdGggZXh0ZW5zaW9uIChwcmljZSB1cGRhdGVyIG9yIG93bmVyKQpDb3JyZXNwb25kcyB0byBzZXRQcmljZUZvckFyYml0cnVtIGluIFByaWNlRmVlZC5zb2wAAAAAABZzZXRfcHJpY2VfZm9yX2FyYml0cnVtAAAAAAACAAAAAAAAAA1wcmljZV91cGRhdGVyAAAAAAAAEwAAAAAAAAAGdXBkYXRlAAAAAAfQAAAADlVwZGF0ZVByaWNlRXh0AAAAAAAAAAAAAAAAALRTZXQgdGhlIG5hdGl2ZSB0b2tlbiBwcmljZSBpbiBVU0QgKHByaWNlIHVwZGF0ZXIgb3Igb3duZXIpLgoKS2VwdCBhcyBhIHN0YW5kYWxvbmUgY29udHJhY3QgZnVuY3Rpb24gKG5vdCBwYXJ0IG9mIHRoZSBjYW5vbmljYWwgYGZlZV9saWJfaW50ZXJmYWNlczo6SUxheWVyWmVyb1ByaWNlRmVlZGAgaW50ZXJmYWNlKS4AAAAac2V0X25hdGl2ZV90b2tlbl9wcmljZV91c2QAAAAAAAIAAAAAAAAADXByaWNlX3VwZGF0ZXIAAAAAAAATAAAAAAAAABZuYXRpdmVfdG9rZW5fcHJpY2VfdXNkAAAAAAAKAAAAAAAAAAAAAAAuQ2hlY2sgaWYgYW4gYWRkcmVzcyBpcyBhbiBhY3RpdmUgcHJpY2UgdXBkYXRlcgAAAAAAEGlzX3ByaWNlX3VwZGF0ZXIAAAABAAAAAAAAAAd1cGRhdGVyAAAAABMAAAABAAAAAQAAAAAAAAAkR2V0IHRoZSBBcmJpdHJ1bSBjb21wcmVzc2lvbiBwZXJjZW50AAAAHGFyYml0cnVtX2NvbXByZXNzaW9uX3BlcmNlbnQAAAAAAAAAAQAAAAoAAAAAAAAAIEdldCB0aGUgQXJiaXRydW0gcHJpY2UgZXh0ZW5zaW9uAAAAEmFyYml0cnVtX3ByaWNlX2V4dAAAAAAAAAAAAAEAAAfQAAAAEEFyYml0cnVtUHJpY2VFeHQAAAAAAAAAKEdldCB0aGUgbW9kZWwgdHlwZSBmb3IgYSBkZXN0aW5hdGlvbiBFSUQAAAARZWlkX3RvX21vZGVsX3R5cGUAAAAAAAABAAAAAAAAAAdkc3RfZWlkAAAAAAQAAAABAAAH0AAAAAlNb2RlbFR5cGUAAAAAAAABAAAAIUFyYml0cnVtLXNwZWNpZmljIHByaWNlIGV4dGVuc2lvbgAAAAAAAAAAAAAQQXJiaXRydW1QcmljZUV4dAAAAAIAAABBR2FzIGNvc3QgcGVyIGJ5dGUgb2YgTDEgY2FsbGRhdGEgKGZvciBBcmJpdHJ1bSdzIEwxIGRhdGEgcG9zdGluZykAAAAAAAAYZ2FzX3Blcl9sMV9jYWxsZGF0YV9ieXRlAAAABAAAAB9HYXMgb3ZlcmhlYWQgcGVyIEwyIHRyYW5zYWN0aW9uAAAAAA1nYXNfcGVyX2wyX3R4AAAAAAAABgAAAAEAAAAlUGFyYW1ldGVyIGZvciB1cGRhdGluZyBhIHNpbmdsZSBwcmljZQAAAAAAAAAAAAALVXBkYXRlUHJpY2UAAAAAAgAAABdEZXN0aW5hdGlvbiBlbmRwb2ludCBJRAAAAAADZWlkAAAAAAQAAAAlUHJpY2UgaW5mb3JtYXRpb24gZm9yIHRoZSBkZXN0aW5hdGlvbgAAAAAAAAVwcmljZQAAAAAAB9AAAAAFUHJpY2UAAAAAAAABAAAANFBhcmFtZXRlciBmb3IgdXBkYXRpbmcgQXJiaXRydW0gcHJpY2Ugd2l0aCBleHRlbnNpb24AAAAAAAAADlVwZGF0ZVByaWNlRXh0AAAAAAADAAAAOERlc3RpbmF0aW9uIGVuZHBvaW50IElEIChzaG91bGQgYmUgYW4gQXJiaXRydW0gZW5kcG9pbnQpAAAAA2VpZAAAAAAEAAAAI0FyYml0cnVtLXNwZWNpZmljIHByaWNpbmcgZXh0ZW5zaW9uAAAAAAZleHRlbmQAAAAAB9AAAAAQQXJiaXRydW1QcmljZUV4dAAAACVQcmljZSBpbmZvcm1hdGlvbiBmb3IgdGhlIGRlc3RpbmF0aW9uAAAAAAAABXByaWNlAAAAAAAH0AAAAAVQcmljZQAAAAAAAAMAAAAwRmVlIG1vZGVsIHR5cGUgZm9yIGRpZmZlcmVudCBjaGFpbiBhcmNoaXRlY3R1cmVzAAAAAAAAAAlNb2RlbFR5cGUAAAAAAAADAAAAAAAAAAdEZWZhdWx0AAAAAAAAAAAAAAAACEFyYlN0YWNrAAAAAQAAAAAAAAAHT3BTdGFjawAAAAACAAAAAQAAAC9QYXJhbWV0ZXIgZm9yIHNldHRpbmcgRUlEIHRvIG1vZGVsIHR5cGUgbWFwcGluZwAAAAAAAAAAFlNldEVpZFRvTW9kZWxUeXBlUGFyYW0AAAAAAAIAAAAXRGVzdGluYXRpb24gZW5kcG9pbnQgSUQAAAAAB2RzdF9laWQAAAAABAAAACNGZWUgbW9kZWwgdHlwZSBmb3IgdGhpcyBkZXN0aW5hdGlvbgAAAAAKbW9kZWxfdHlwZQAAAAAH0AAAAAlNb2RlbFR5cGUAAAAAAAAAAAABj1NldHMgVFRMIGNvbmZpZ3MgZm9yIGluc3RhbmNlIGFuZCBwZXJzaXN0ZW50IHN0b3JhZ2UuCgotIGBOb25lYCB2YWx1ZXMgcmVtb3ZlIHRoZSBjb3JyZXNwb25kaW5nIGNvbmZpZyAoZGlzYWJsZXMgYXV0by1leHRlbnNpb24gZm9yIHRoYXQgdHlwZSkKLSBWYWxpZGF0ZXMgdGhhdCBgdGhyZXNob2xkIDw9IGV4dGVuZF90byA8PSBNQVhfVFRMYAoKIyBBcmd1bWVudHMKLSBgaW5zdGFuY2VgIC0gVFRMIGNvbmZpZyBmb3IgaW5zdGFuY2Ugc3RvcmFnZQotIGBwZXJzaXN0ZW50YCAtIFRUTCBjb25maWcgZm9yIHBlcnNpc3RlbnQgc3RvcmFnZQoKIyBQYW5pY3MKLSBgVHRsQ29uZmlnRnJvemVuYCBpZiBjb25maWdzIGFyZSBmcm96ZW4KLSBgSW52YWxpZFR0bENvbmZpZ2AgaWYgdmFsaWRhdGlvbiBmYWlscwAAAAAPc2V0X3R0bF9jb25maWdzAAAAAAIAAAAAAAAACGluc3RhbmNlAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAApwZXJzaXN0ZW50AAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAAAAAEhSZXR1cm5zIHRoZSBjdXJyZW50IFRUTCBjb25maWdzIGFzIChpbnN0YW5jZV9jb25maWcsIHBlcnNpc3RlbnRfY29uZmlnKS4AAAALdHRsX2NvbmZpZ3MAAAAAAAAAAAEAAAPtAAAAAgAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAADhUGVybWFuZW50bHkgZnJlZXplcyBUVEwgY29uZmlncywgcHJldmVudGluZyBhbnkgZnV0dXJlIG1vZGlmaWNhdGlvbnMuCgpUaGlzIGlzIGlycmV2ZXJzaWJsZSBhbmQgcHJvdmlkZXMgaW1tdXRhYmlsaXR5IGd1YXJhbnRlZXMgdG8gdXNlcnMuCkVtaXRzIGBUdGxDb25maWdzRnJvemVuYCBldmVudC4KCiMgUGFuaWNzCi0gYFR0bENvbmZpZ0FscmVhZHlGcm96ZW5gIGlmIGFscmVhZHkgZnJvemVuAAAAAAAAEmZyZWV6ZV90dGxfY29uZmlncwAAAAAAAAAAAAAAAAAAAAAAJ1JldHVybnMgd2hldGhlciBUVEwgY29uZmlncyBhcmUgZnJvemVuLgAAAAAVaXNfdHRsX2NvbmZpZ3NfZnJvemVuAAAAAAAAAAAAAAEAAAABAAAAAAAAAKVFeHRlbmRzIHRoZSBpbnN0YW5jZSBUVEwuCgojIEFyZ3VtZW50cwoKKiBgdGhyZXNob2xkYCAtIFRoZSB0aHJlc2hvbGQgdG8gZXh0ZW5kIHRoZSBUVEwgKGlmIGN1cnJlbnQgVFRMIGlzIGJlbG93IHRoaXMsIGV4dGVuZCkuCiogYGV4dGVuZF90b2AgLSBUaGUgVFRMIHRvIGV4dGVuZCB0by4AAAAAAAATZXh0ZW5kX2luc3RhbmNlX3R0bAAAAAACAAAAAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAAAAAAAAlleHRlbmRfdG8AAAAAAAAEAAAAAAAAAAAAAAA+UmV0dXJucyB0aGUgY3VycmVudCBvd25lciBhZGRyZXNzLCBvciBOb25lIGlmIG5vIG93bmVyIGlzIHNldC4AAAAAAAVvd25lcgAAAAAAAAAAAAABAAAD6AAAABMAAAAAAAAAWVJldHVybnMgdGhlIHBlbmRpbmcgb3duZXIgYWRkcmVzcyBmb3IgMi1zdGVwIHRyYW5zZmVyLCBvciBOb25lIGlmIG5vIHRyYW5zZmVyIGlzIHBlbmRpbmcuAAAAAAAADXBlbmRpbmdfb3duZXIAAAAAAAAAAAAAAQAAA+gAAAATAAAAAAAAAStUcmFuc2ZlcnMgb3duZXJzaGlwIGltbWVkaWF0ZWx5IHRvIGEgbmV3IGFkZHJlc3MuCgpVc2Ugd2l0aCBjYXV0aW9uIC0gaWYgeW91IHRyYW5zZmVyIHRvIGEgd3JvbmcgYWRkcmVzcywgb3duZXJzaGlwIGlzIGxvc3QgZm9yZXZlci4KQ29uc2lkZXIgdXNpbmcgYHByb3Bvc2Vfb3duZXJzaGlwX3RyYW5zZmVyYCBpbnN0ZWFkLgoKIyBQYW5pY3MKLSBgT3duZXJOb3RTZXRgIGlmIG5vIG93bmVyIGlzIGN1cnJlbnRseSBzZXQKLSBgVHJhbnNmZXJJblByb2dyZXNzYCBpZiBhIDItc3RlcCB0cmFuc2ZlciBpcyBpbiBwcm9ncmVzcwAAAAASdHJhbnNmZXJfb3duZXJzaGlwAAAAAAABAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAAAAAJcUHJvcG9zZXMgYW4gb3duZXJzaGlwIHRyYW5zZmVyIHRvIGEgbmV3IGFkZHJlc3MuCgpUaGUgbmV3IG93bmVyIG11c3QgY2FsbCBgYWNjZXB0X293bmVyc2hpcCgpYCB3aXRoaW4gYHR0bGAgbGVkZ2Vycwp0byBjb21wbGV0ZSB0aGUgdHJhbnNmZXIuIFRoZSBwZW5kaW5nIHRyYW5zZmVyIHdpbGwgYXV0b21hdGljYWxseSBleHBpcmUgYWZ0ZXIuCgojIEFyZ3VtZW50cwotIGBuZXdfb3duZXJgIC0gVGhlIHByb3Bvc2VkIG5ldyBvd25lcgotIGB0dGxgIC0gTnVtYmVyIG9mIGxlZGdlcnMgdGhlIG5ldyBvd25lciBoYXMgdG8gYWNjZXB0LgpVc2UgYDBgIHRvIGNhbmNlbCBhIHBlbmRpbmcgdHJhbnNmZXIgKG5ld19vd25lciBtdXN0IG1hdGNoIHBlbmRpbmcpLgoKIyBQYW5pY3MKLSBgT3duZXJOb3RTZXRgIGlmIG5vIG93bmVyIGlzIGN1cnJlbnRseSBzZXQKLSBgTm9QZW5kaW5nVHJhbnNmZXJgIHdoZW4gY2FuY2VsbGluZyBhbmQgbm8gcGVuZGluZyB0cmFuc2ZlciBleGlzdHMKLSBgSW52YWxpZFR0bGAgaWYgdHRsIGV4Y2VlZHMgbWF4IFRUTAotIGBJbnZhbGlkUGVuZGluZ093bmVyYCB3aGVuIGNhbmNlbGxpbmcgd2l0aCB3cm9uZyBuZXdfb3duZXIgYWRkcmVzcwAAABpwcm9wb3NlX293bmVyc2hpcF90cmFuc2ZlcgAAAAAAAgAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAADdHRsAAAAAAQAAAAAAAAAAAAAALlBY2NlcHRzIGEgcGVuZGluZyAyLXN0ZXAgb3duZXJzaGlwIHRyYW5zZmVyLgoKTXVzdCBiZSBjYWxsZWQgYnkgdGhlIHBlbmRpbmcgb3duZXIgYmVmb3JlIHRoZSBUVEwgZXhwaXJlcy4KCiMgUGFuaWNzCi0gYE5vUGVuZGluZ1RyYW5zZmVyYCBpZiB0aGVyZSBpcyBubyBwZW5kaW5nIHRyYW5zZmVyIChvciBpdCBleHBpcmVkKQAAAAAAABBhY2NlcHRfb3duZXJzaGlwAAAAAAAAAAAAAAAAAAAApFBlcm1hbmVudGx5IHJlbm91bmNlcyBvd25lcnNoaXAuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBUcmFuc2ZlckluUHJvZ3Jlc3NgIGlmIGEgMi1zdGVwIHRyYW5zZmVyIGlzIGluIHByb2dyZXNzIChjYW5jZWwgaXQgZmlyc3QpAAAAEnJlbm91bmNlX293bmVyc2hpcAAAAAAAAAAAAAAAAAAAAAAAlVRoZSB0eXBlIG9mIGRhdGEgcmVxdWlyZWQgZm9yIG1pZ3JhdGlvbi4KVXBncmFkZXMgdGhlIGNvbnRyYWN0IHRvIG5ldyBXQVNNIGJ5dGVjb2RlLgpTZXRzIGEgbWlncmF0aW9uIGZsYWcgdGhhdCBtdXN0IGJlIGNsZWFyZWQgYnkgY2FsbGluZyBgbWlncmF0ZWAuAAAAAAAAB3VwZ3JhZGUAAAAAAQAAAAAAAAANbmV3X3dhc21faGFzaAAAAAAAA+4AAAAgAAAAAAAAAAAAAAB2UnVucyBtaWdyYXRpb24gbG9naWMgYWZ0ZXIgYW4gdXBncmFkZS4KQ2FuIG9ubHkgYmUgY2FsbGVkIHdoZW4gdGhlIG1pZ3JhdGlvbiBmbGFnIGlzIHNldCBieSBhIHByZXZpb3VzIGB1cGdyYWRlYCBjYWxsLgAAAAAAB21pZ3JhdGUAAAAAAQAAAAAAAAAObWlncmF0aW9uX2RhdGEAAAAAAA4AAAAAAAAAAAAAAF5QZXJtYW5lbnRseSBmcmVlemVzIHRoZSBjb250cmFjdCwgcHJldmVudGluZyBhbnkgZnV0dXJlIHVwZ3JhZGVzLgpUaGlzIGFjdGlvbiBpcyBpcnJldmVyc2libGUuAAAAAAAGZnJlZXplAAAAAAAAAAAAAAAAAAAAAAA7UmV0dXJucyB3aGV0aGVyIHRoZSBjb250cmFjdCBpcyBmcm96ZW4gKHVwZ3JhZGVzIGRpc2FibGVkKS4AAAAACWlzX2Zyb3plbgAAAAAAAAAAAAABAAAAAQAAAAEAAADhUGFyYW1ldGVycyBmb3IgRFZOIGZlZSBjYWxjdWxhdGlvbi4KCkNvbnRhaW5zIGFsbCBpbnB1dHMgbmVlZGVkIGJ5IHRoZSBmZWUgbGlicmFyeSB0byBjYWxjdWxhdGUgdmVyaWZpY2F0aW9uIGZlZXMKZm9yIGNyb3NzLWNoYWluIG1lc3NhZ2VzLiBJbmNsdWRlcyBtZXNzYWdlIHBhcmFtZXRlcnMsIGNvbW1vbiBjb25maWd1cmF0aW9uLAphbmQgZGVzdGluYXRpb24tc3BlY2lmaWMgc2V0dGluZ3MuAAAAAAAAAAAAAAxEdm5GZWVQYXJhbXMAAAAKAAAAJ051bWJlciBvZiBibG9jayBjb25maXJtYXRpb25zIHJlcXVpcmVkLgAAAAANY29uZmlybWF0aW9ucwAAAAAAAAYAAABMRGVmYXVsdCBmZWUgbXVsdGlwbGllciBpbiBiYXNpcyBwb2ludHMgKHVzZWQgaWYgbm8gZHN0LXNwZWNpZmljIG11bHRpcGxpZXIpLgAAABZkZWZhdWx0X211bHRpcGxpZXJfYnBzAAAAAAAEAAAAK0Rlc3RpbmF0aW9uIGVuZHBvaW50IElEIChjaGFpbiBpZGVudGlmaWVyKS4AAAAAB2RzdF9laWQAAAAABAAAACNNaW5pbXVtIGZlZSBtYXJnaW4gaW4gVVNEIChzY2FsZWQpLgAAAAAQZmxvb3JfbWFyZ2luX3VzZAAAAAoAAAEQPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KRGVzdGluYXRpb24tU3BlY2lmaWMgQ29uZmlndXJhdGlvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpHYXMgZXN0aW1hdGUgZm9yIHZlcmlmaWNhdGlvbiBvbiBkZXN0aW5hdGlvbiBjaGFpbi4AAAADZ2FzAAAAAAoAAABGRGVzdGluYXRpb24tc3BlY2lmaWMgZmVlIG11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzICgwID0gdXNlIGRlZmF1bHQpLgAAAAAADm11bHRpcGxpZXJfYnBzAAAAAAAEAAAAC0RWTiBvcHRpb25zAAAAAAdvcHRpb25zAAAAAA4AAAEQPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ29tbW9uIENvbmZpZ3VyYXRpb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUHJpY2UgZmVlZCBjb250cmFjdCBhZGRyZXNzIGZvciBnYXMgcHJpY2UgYW5kIGV4Y2hhbmdlIHJhdGUgZGF0YS4AAAAKcHJpY2VfZmVlZAAAAAAAEwAAACdOdW1iZXIgb2YgcmVxdWlyZWQgc2lnbmF0dXJlcyAocXVvcnVtKS4AAAAABnF1b3J1bQAAAAAABAAAAOU9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpNZXNzYWdlIFBhcmFtZXRlcnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KVGhlIE9BcHAgc2VuZGVyIGFkZHJlc3MuAAAAAAAABnNlbmRlcgAAAAAAEwAAAAEAAADjUGFyYW1ldGVycyBmb3IgZXhlY3V0b3IgZmVlIGNhbGN1bGF0aW9uLgoKQ29udGFpbnMgYWxsIGlucHV0cyBuZWVkZWQgYnkgdGhlIGZlZSBsaWJyYXJ5IHRvIGNhbGN1bGF0ZSBleGVjdXRpb24gZmVlcwpmb3IgY3Jvc3MtY2hhaW4gbWVzc2FnZXMuIEluY2x1ZGVzIG1lc3NhZ2UgcGFyYW1ldGVycywgY29tbW9uIGNvbmZpZ3VyYXRpb24sCmFuZCBkZXN0aW5hdGlvbi1zcGVjaWZpYyBzZXR0aW5ncy4AAAAAAAAAAAlGZWVQYXJhbXMAAAAAAAALAAAAJlNpemUgb2YgdGhlIG1lc3NhZ2UgY2FsbGRhdGEgaW4gYnl0ZXMuAAAAAAANY2FsbGRhdGFfc2l6ZQAAAAAAAAQAAABMRGVmYXVsdCBmZWUgbXVsdGlwbGllciBpbiBiYXNpcyBwb2ludHMgKHVzZWQgaWYgbm8gZHN0LXNwZWNpZmljIG11bHRpcGxpZXIpLgAAABZkZWZhdWx0X211bHRpcGxpZXJfYnBzAAAAAAAEAAAAK0Rlc3RpbmF0aW9uIGVuZHBvaW50IElEIChjaGFpbiBpZGVudGlmaWVyKS4AAAAAB2RzdF9laWQAAAAABAAAACNNaW5pbXVtIGZlZSBtYXJnaW4gaW4gVVNEIChzY2FsZWQpLgAAAAAQZmxvb3JfbWFyZ2luX3VzZAAAAAoAAAA2QmFzZSBnYXMgZm9yIGVhY2ggbHpDb21wb3NlIGNhbGwgb24gZGVzdGluYXRpb24gY2hhaW4uAAAAAAATbHpfY29tcG9zZV9iYXNlX2dhcwAAAAAGAAABEz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkRlc3RpbmF0aW9uLVNwZWNpZmljIENvbmZpZ3VyYXRpb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQmFzZSBnYXMgZm9yIGx6UmVjZWl2ZSBleGVjdXRpb24gb24gZGVzdGluYXRpb24gY2hhaW4uAAAAABNsel9yZWNlaXZlX2Jhc2VfZ2FzAAAAAAYAAABGRGVzdGluYXRpb24tc3BlY2lmaWMgZmVlIG11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzICgwID0gdXNlIGRlZmF1bHQpLgAAAAAADm11bHRpcGxpZXJfYnBzAAAAAAAEAAAALE1heGltdW0gbmF0aXZlIHRva2VuIHZhbHVlIHRoYXQgY2FuIGJlIHNlbnQuAAAACm5hdGl2ZV9jYXAAAAAAAAoAAABGRW5jb2RlZCBleGVjdXRvciBvcHRpb25zIChselJlY2VpdmUgZ2FzLCBsekNvbXBvc2UsIG5hdGl2ZURyb3AsIGV0Yy4pLgAAAAAAB29wdGlvbnMAAAAADgAAARA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpDb21tb24gQ29uZmlndXJhdGlvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpQcmljZSBmZWVkIGNvbnRyYWN0IGFkZHJlc3MgZm9yIGdhcyBwcmljZSBhbmQgZXhjaGFuZ2UgcmF0ZSBkYXRhLgAAAApwcmljZV9mZWVkAAAAAAATAAAA5T09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ck1lc3NhZ2UgUGFyYW1ldGVycwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpUaGUgT0FwcCBzZW5kZXIgYWRkcmVzcy4AAAAAAAAGc2VuZGVyAAAAAAATAAAAAQAAAIRHYXMgcHJpY2UgaW5mb3JtYXRpb24gZm9yIGEgZGVzdGluYXRpb24gZW5kcG9pbnQuCgpDb250YWlucyB0aGUgZXhjaGFuZ2UgcmF0ZSBhbmQgZ2FzIGNvc3RzIG5lZWRlZCBmb3IgY3Jvc3MtY2hhaW4gZmVlIGNhbGN1bGF0aW9ucy4AAAAAAAAABVByaWNlAAAAAAAAAwAAADdHYXMgY29zdCBwZXIgYnl0ZSBvZiBjYWxsZGF0YSBvbiB0aGUgZGVzdGluYXRpb24gY2hhaW4uAAAAAAxnYXNfcGVyX2J5dGUAAAAEAAAAQkdhcyBwcmljZSBpbiB0aGUgc21hbGxlc3QgdW5pdCAod2VpIGZvciBFVk0sIHN0cm9vcHMgZm9yIFN0ZWxsYXIpLgAAAAAAEWdhc19wcmljZV9pbl91bml0AAAAAAAABgAAAKlQcmljZSByYXRpbyA9IChyZW1vdGUgbmF0aXZlIHRva2VuIHByaWNlIC8gbG9jYWwgbmF0aXZlIHRva2VuIHByaWNlKSAqIFBSSUNFX1JBVElPX0RFTk9NSU5BVE9SLgpVc2VkIHRvIGNvbnZlcnQgZGVzdGluYXRpb24gY2hhaW4gZ2FzIGNvc3RzIHRvIHNvdXJjZSBjaGFpbiBuYXRpdmUgdG9rZW4uAAAAAAAAC3ByaWNlX3JhdGlvAAAAAAoAAAABAAAAgEZlZSBlc3RpbWF0aW9uIHJlc3VsdCB3aXRoIGRldGFpbGVkIGJyZWFrZG93bi4KCkNvbnRhaW5zIHRoZSBjYWxjdWxhdGVkIGZlZSBhbmQgYWxsIGludGVybWVkaWF0ZSB2YWx1ZXMgdXNlZCBpbiB0aGUgY2FsY3VsYXRpb24uAAAAAAAAAAtGZWVFc3RpbWF0ZQAAAAAEAAAAMFNvdXJjZSBjaGFpbiBuYXRpdmUgdG9rZW4gcHJpY2UgaW4gVVNEIChzY2FsZWQpLgAAABBuYXRpdmVfcHJpY2VfdXNkAAAACgAAACVQcmljZSByYXRpbyB1c2VkIGZvciB0aGUgY2FsY3VsYXRpb24uAAAAAAAAC3ByaWNlX3JhdGlvAAAAAAoAAAAyRGVub21pbmF0b3IgZm9yIHRoZSBwcmljZSByYXRpbyAodHlwaWNhbGx5IDEwXjIwKS4AAAAAABdwcmljZV9yYXRpb19kZW5vbWluYXRvcgAAAAAKAAAAMVRvdGFsIGdhcyBmZWUgaW4gc291cmNlIGNoYWluIG5hdGl2ZSB0b2tlbiB1bml0cy4AAAAAAAANdG90YWxfZ2FzX2ZlZQAAAAAAAAsAAAAEAAAAHEJ1ZmZlclJlYWRlckVycm9yOiAxMDAwLTEwMDkAAAAAAAAAEUJ1ZmZlclJlYWRlckVycm9yAAAAAAAAAgAAAAAAAAANSW52YWxpZExlbmd0aAAAAAAAA+gAAAAAAAAAFUludmFsaWRBZGRyZXNzUGF5bG9hZAAAAAAAA+kAAAAEAAAAHEJ1ZmZlcldyaXRlckVycm9yOiAxMDEwLTEwMTkAAAAAAAAAEUJ1ZmZlcldyaXRlckVycm9yAAAAAAAAAQAAAAAAAAAVSW52YWxpZEFkZHJlc3NQYXlsb2FkAAAAAAAD8gAAAAQAAAAfVHRsQ29uZmlndXJhYmxlRXJyb3I6IDEwMjAtMTAyOQAAAAAAAAAAFFR0bENvbmZpZ3VyYWJsZUVycm9yAAAAAwAAAAAAAAAQSW52YWxpZFR0bENvbmZpZwAAA/wAAAAAAAAAD1R0bENvbmZpZ0Zyb3plbgAAAAP9AAAAAAAAABZUdGxDb25maWdBbHJlYWR5RnJvemVuAAAAAAP+AAAABAAAABdPd25hYmxlRXJyb3I6IDEwMzAtMTAzOQAAAAAAAAAADE93bmFibGVFcnJvcgAAAAYAAAAAAAAAE0ludmFsaWRQZW5kaW5nT3duZXIAAAAEBgAAAAAAAAAKSW52YWxpZFR0bAAAAAAEBwAAAAAAAAARTm9QZW5kaW5nVHJhbnNmZXIAAAAAAAQIAAAAAAAAAA9Pd25lckFscmVhZHlTZXQAAAAECQAAAAAAAAALT3duZXJOb3RTZXQAAAAECgAAAAAAAAASVHJhbnNmZXJJblByb2dyZXNzAAAAAAQLAAAABAAAABhCeXRlc0V4dEVycm9yOiAxMDQwLTEwNDkAAAAAAAAADUJ5dGVzRXh0RXJyb3IAAAAAAAABAAAAAAAAAA5MZW5ndGhNaXNtYXRjaAAAAAAEEAAAAAQAAAAbVXBncmFkZWFibGVFcnJvcjogMTA1MC0xMDU5AAAAAAAAAAAQVXBncmFkZWFibGVFcnJvcgAAAAMAAAAAAAAAFEludmFsaWRNaWdyYXRpb25EYXRhAAAEGgAAAAAAAAATTWlncmF0aW9uTm90QWxsb3dlZAAAAAQbAAAAAAAAAA5VcGdyYWRlc0Zyb3plbgAAAAAEHAAAAAQAAAAYTXVsdGlzaWdFcnJvcjogMTA2MC0xMDY5AAAAAAAAAA1NdWx0aXNpZ0Vycm9yAAAAAAAACAAAAAAAAAASQWxyZWFkeUluaXRpYWxpemVkAAAAAAQkAAAAAAAAAA1JbnZhbGlkU2lnbmVyAAAAAAAEJQAAAAAAAAAOU2lnbmF0dXJlRXJyb3IAAAAABCYAAAAAAAAAE1NpZ25lckFscmVhZHlFeGlzdHMAAAAEJwAAAAAAAAAOU2lnbmVyTm90Rm91bmQAAAAABCgAAAAAAAAAHVRvdGFsU2lnbmVyc0xlc3NUaGFuVGhyZXNob2xkAAAAAAAEKQAAAAAAAAAPVW5zb3J0ZWRTaWduZXJzAAAABCoAAAAAAAAADVplcm9UaHJlc2hvbGQAAAAAAAQrAAAABQAAADBFdmVudCBlbWl0dGVkIHdoZW4gYSBzaWduZXIgaXMgYWRkZWQgb3IgcmVtb3ZlZC4AAAAAAAAACVNpZ25lclNldAAAAAAAAAEAAAAKc2lnbmVyX3NldAAAAAAAAgAAAAAAAAAGc2lnbmVyAAAAAAPuAAAAFAAAAAEAAAAAAAAABmFjdGl2ZQAAAAAAAQAAAAAAAAACAAAABQAAADZFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHNpZ25hdHVyZSB0aHJlc2hvbGQgaXMgY2hhbmdlZC4AAAAAAAAAAAAMVGhyZXNob2xkU2V0AAAAAQAAAA10aHJlc2hvbGRfc2V0AAAAAAAAAQAAAAAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAAAAAACAAAAAgAAAAAAAAAAAAAAD011bHRpc2lnU3RvcmFnZQAAAAACAAAAAAAAAAAAAAAHU2lnbmVycwAAAAAAAAAAAAAAAAlUaHJlc2hvbGQAAAAAAAAFAAAAV0V2ZW50IGVtaXR0ZWQgd2hlbiBvd25lcnNoaXAgaXMgdHJhbnNmZXJyZWQgKGJvdGggc2luZ2xlLXN0ZXAgYW5kIHR3by1zdGVwIGNvbXBsZXRpb24pLgAAAAAAAAAAFE93bmVyc2hpcFRyYW5zZmVycmVkAAAAAQAAABVvd25lcnNoaXBfdHJhbnNmZXJyZWQAAAAAAAACAAAAAAAAAAlvbGRfb3duZXIAAAAAAAATAAAAAAAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAACAAAABQAAADtFdmVudCBlbWl0dGVkIHdoZW4gYSAyLXN0ZXAgb3duZXJzaGlwIHRyYW5zZmVyIGlzIHByb3Bvc2VkLgAAAAAAAAAAFU93bmVyc2hpcFRyYW5zZmVycmluZwAAAAAAAAEAAAAWb3duZXJzaGlwX3RyYW5zZmVycmluZwAAAAAAAwAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAAAAAAN0dGwAAAAABAAAAAAAAAACAAAABQAAACpFdmVudCBlbWl0dGVkIHdoZW4gb3duZXJzaGlwIGlzIHJlbm91bmNlZC4AAAAAAAAAAAAST3duZXJzaGlwUmVub3VuY2VkAAAAAAABAAAAE293bmVyc2hpcF9yZW5vdW5jZWQAAAAAAQAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAACAAAAAgAAAAAAAAAAAAAADk93bmFibGVTdG9yYWdlAAAAAAACAAAAAAAAAAAAAAAFT3duZXIAAAAAAAAAAAAAAAAAAAxQZW5kaW5nT3duZXIAAAABAAAASVRUTCBjb25maWd1cmF0aW9uOiB0aHJlc2hvbGQgKHdoZW4gdG8gZXh0ZW5kKSBhbmQgZXh0ZW5kX3RvICh0YXJnZXQgVFRMKS4AAAAAAAAAAAAACVR0bENvbmZpZwAAAAAAAAIAAAAoVGFyZ2V0IFRUTCBhZnRlciBleHRlbnNpb24gKGluIGxlZGdlcnMpLgAAAAlleHRlbmRfdG8AAAAAAAAEAAAAM1RUTCB0aHJlc2hvbGQgdGhhdCB0cmlnZ2VycyBleHRlbnNpb24gKGluIGxlZGdlcnMpLgAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAUAAAAnRXZlbnQgZW1pdHRlZCB3aGVuIFRUTCBjb25maWdzIGFyZSBzZXQuAAAAAAAAAAANVHRsQ29uZmlnc1NldAAAAAAAAAEAAAAPdHRsX2NvbmZpZ3Nfc2V0AAAAAAIAAAAAAAAACGluc3RhbmNlAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAAAAAAAKcGVyc2lzdGVudAAAAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAAIAAAAFAAAAKkV2ZW50IGVtaXR0ZWQgd2hlbiBUVEwgY29uZmlncyBhcmUgZnJvemVuLgAAAAAAAAAAABBUdGxDb25maWdzRnJvemVuAAAAAQAAABJ0dGxfY29uZmlnc19mcm96ZW4AAAAAAAAAAAACAAAAAgAAAAAAAAAAAAAAEFR0bENvbmZpZ1N0b3JhZ2UAAAADAAAAAAAAAAAAAAAGRnJvemVuAAAAAAAAAAAAAAAAAAhJbnN0YW5jZQAAAAAAAAAAAAAAClBlcnNpc3RlbnQAAAAAAAIAAAAAAAAAAAAAABJVcGdyYWRlYWJsZVN0b3JhZ2UAAAAAAAIAAAAAAAAAAAAAAAZGcm96ZW4AAAAAAAAAAAAAAAAACU1pZ3JhdGluZwAAAACLAQ5jb250cmFjdG1ldGF2MAAAAAAAAAAGYmludmVyAAAAAAAFMC4wLjEAAAAAAAAAAAAABXJzdmVyAAAAAAAABjEuOTAuMAAAAAAAAAAAAAhyc3Nka3ZlcgAAAC8yMy40LjAjNjczZDZjNGYyMzY4ZDI4MmQyNWRhMjliZGE1NWMyMWI4YmU2OWNhNgAAHhFjb250cmFjdGVudm1ldGF2MAAAAAAAAAAXAAAAAA==";
12
+ /**
13
+ * Pre-computed WASM hash (SHA-256)
14
+ * Use this when the WASM is already uploaded on-chain
15
+ */
16
+ export declare const WASM_HASH = "c745d00ca5ca4d2a880fb240dd5bba420626671986b02889d06070506b127fc0";
17
+ /**
18
+ * Get the WASM bytecode as a Buffer
19
+ * Use this to upload the WASM to the network
20
+ */
21
+ export declare function getWasmBuffer(): Buffer;
8
22
  export type PriceFeedStorage = {
9
23
  tag: "PriceRatioDenominator";
10
24
  values: void;
@@ -108,195 +122,6 @@ export interface SetEidToModelTypeParam {
108
122
  */
109
123
  model_type: ModelType;
110
124
  }
111
- /**
112
- * BufferReaderError: 1000-1009
113
- */
114
- export declare const BufferReaderError: {
115
- 1000: {
116
- message: string;
117
- };
118
- 1001: {
119
- message: string;
120
- };
121
- };
122
- /**
123
- * BufferWriterError: 1010-1019
124
- */
125
- export declare const BufferWriterError: {
126
- 1010: {
127
- message: string;
128
- };
129
- };
130
- /**
131
- * TtlConfigurableError: 1020-1029
132
- */
133
- export declare const TtlConfigurableError: {
134
- 1020: {
135
- message: string;
136
- };
137
- 1021: {
138
- message: string;
139
- };
140
- 1022: {
141
- message: string;
142
- };
143
- };
144
- /**
145
- * OwnableError: 1030-1039
146
- */
147
- export declare const OwnableError: {
148
- 1030: {
149
- message: string;
150
- };
151
- 1031: {
152
- message: string;
153
- };
154
- };
155
- /**
156
- * BytesExtError: 1040-1049
157
- */
158
- export declare const BytesExtError: {
159
- 1040: {
160
- message: string;
161
- };
162
- };
163
- /**
164
- * UpgradeableError: 1050-1059
165
- */
166
- export declare const UpgradeableError: {
167
- 1050: {
168
- message: string;
169
- };
170
- };
171
- /**
172
- * MultisigError: 1060-1069
173
- */
174
- export declare const MultisigError: {
175
- 1060: {
176
- message: string;
177
- };
178
- 1061: {
179
- message: string;
180
- };
181
- 1062: {
182
- message: string;
183
- };
184
- 1063: {
185
- message: string;
186
- };
187
- 1064: {
188
- message: string;
189
- };
190
- 1065: {
191
- message: string;
192
- };
193
- 1066: {
194
- message: string;
195
- };
196
- 1067: {
197
- message: string;
198
- };
199
- };
200
- export type MultisigStorage = {
201
- tag: "Signers";
202
- values: void;
203
- } | {
204
- tag: "Threshold";
205
- values: void;
206
- };
207
- export type OwnableStorage = {
208
- tag: "Owner";
209
- values: void;
210
- };
211
- /**
212
- * TTL configuration: threshold (when to extend) and extend_to (target TTL).
213
- */
214
- export interface TtlConfig {
215
- /**
216
- * Target TTL after extension (in ledgers).
217
- */
218
- extend_to: u32;
219
- /**
220
- * TTL threshold that triggers extension (in ledgers).
221
- */
222
- threshold: u32;
223
- }
224
- export type TtlConfigStorage = {
225
- tag: "Frozen";
226
- values: void;
227
- } | {
228
- tag: "Instance";
229
- values: void;
230
- } | {
231
- tag: "Persistent";
232
- values: void;
233
- };
234
- export type UpgradeableStorage = {
235
- tag: "Migrating";
236
- values: void;
237
- };
238
- /**
239
- * WorkerError: 1200-1299
240
- */
241
- export declare const WorkerError: {
242
- 1200: {
243
- message: string;
244
- };
245
- 1201: {
246
- message: string;
247
- };
248
- 1202: {
249
- message: string;
250
- };
251
- 1203: {
252
- message: string;
253
- };
254
- 1204: {
255
- message: string;
256
- };
257
- 1205: {
258
- message: string;
259
- };
260
- 1206: {
261
- message: string;
262
- };
263
- 1207: {
264
- message: string;
265
- };
266
- 1208: {
267
- message: string;
268
- };
269
- 1209: {
270
- message: string;
271
- };
272
- 1210: {
273
- message: string;
274
- };
275
- 1211: {
276
- message: string;
277
- };
278
- 1212: {
279
- message: string;
280
- };
281
- 1213: {
282
- message: string;
283
- };
284
- 1214: {
285
- message: string;
286
- };
287
- 1215: {
288
- message: string;
289
- };
290
- 1216: {
291
- message: string;
292
- };
293
- 1217: {
294
- message: string;
295
- };
296
- 1218: {
297
- message: string;
298
- };
299
- };
300
125
  /**
301
126
  * Parameters for DVN fee calculation.
302
127
  *
@@ -460,79 +285,158 @@ export interface FeeEstimate {
460
285
  */
461
286
  total_gas_fee: i128;
462
287
  }
463
- export type WorkerStorage = {
464
- tag: "Paused";
288
+ /**
289
+ * BufferReaderError: 1000-1009
290
+ */
291
+ export declare const BufferReaderError: {
292
+ 1000: {
293
+ message: string;
294
+ };
295
+ 1001: {
296
+ message: string;
297
+ };
298
+ };
299
+ /**
300
+ * BufferWriterError: 1010-1019
301
+ */
302
+ export declare const BufferWriterError: {
303
+ 1010: {
304
+ message: string;
305
+ };
306
+ };
307
+ /**
308
+ * TtlConfigurableError: 1020-1029
309
+ */
310
+ export declare const TtlConfigurableError: {
311
+ 1020: {
312
+ message: string;
313
+ };
314
+ 1021: {
315
+ message: string;
316
+ };
317
+ 1022: {
318
+ message: string;
319
+ };
320
+ };
321
+ /**
322
+ * OwnableError: 1030-1039
323
+ */
324
+ export declare const OwnableError: {
325
+ 1030: {
326
+ message: string;
327
+ };
328
+ 1031: {
329
+ message: string;
330
+ };
331
+ 1032: {
332
+ message: string;
333
+ };
334
+ 1033: {
335
+ message: string;
336
+ };
337
+ 1034: {
338
+ message: string;
339
+ };
340
+ 1035: {
341
+ message: string;
342
+ };
343
+ };
344
+ /**
345
+ * BytesExtError: 1040-1049
346
+ */
347
+ export declare const BytesExtError: {
348
+ 1040: {
349
+ message: string;
350
+ };
351
+ };
352
+ /**
353
+ * UpgradeableError: 1050-1059
354
+ */
355
+ export declare const UpgradeableError: {
356
+ 1050: {
357
+ message: string;
358
+ };
359
+ 1051: {
360
+ message: string;
361
+ };
362
+ 1052: {
363
+ message: string;
364
+ };
365
+ };
366
+ /**
367
+ * MultisigError: 1060-1069
368
+ */
369
+ export declare const MultisigError: {
370
+ 1060: {
371
+ message: string;
372
+ };
373
+ 1061: {
374
+ message: string;
375
+ };
376
+ 1062: {
377
+ message: string;
378
+ };
379
+ 1063: {
380
+ message: string;
381
+ };
382
+ 1064: {
383
+ message: string;
384
+ };
385
+ 1065: {
386
+ message: string;
387
+ };
388
+ 1066: {
389
+ message: string;
390
+ };
391
+ 1067: {
392
+ message: string;
393
+ };
394
+ };
395
+ export type MultisigStorage = {
396
+ tag: "Signers";
465
397
  values: void;
466
398
  } | {
467
- tag: "DepositAddress";
399
+ tag: "Threshold";
468
400
  values: void;
469
- } | {
470
- tag: "PriceFeed";
401
+ };
402
+ export type OwnableStorage = {
403
+ tag: "Owner";
471
404
  values: void;
472
405
  } | {
473
- tag: "WorkerFeeLib";
406
+ tag: "PendingOwner";
474
407
  values: void;
475
- } | {
476
- tag: "DefaultMultiplierBps";
408
+ };
409
+ /**
410
+ * TTL configuration: threshold (when to extend) and extend_to (target TTL).
411
+ */
412
+ export interface TtlConfig {
413
+ /**
414
+ * Target TTL after extension (in ledgers).
415
+ */
416
+ extend_to: u32;
417
+ /**
418
+ * TTL threshold that triggers extension (in ledgers).
419
+ */
420
+ threshold: u32;
421
+ }
422
+ export type TtlConfigStorage = {
423
+ tag: "Frozen";
477
424
  values: void;
478
425
  } | {
479
- tag: "SupportedOptionTypes";
480
- values: readonly [u32];
481
- } | {
482
- tag: "MessageLibs";
426
+ tag: "Instance";
483
427
  values: void;
484
428
  } | {
485
- tag: "Allowlist";
486
- values: readonly [string];
487
- } | {
488
- tag: "Denylist";
489
- values: readonly [string];
490
- } | {
491
- tag: "AllowlistSize";
429
+ tag: "Persistent";
430
+ values: void;
431
+ };
432
+ export type UpgradeableStorage = {
433
+ tag: "Frozen";
492
434
  values: void;
493
435
  } | {
494
- tag: "Admins";
436
+ tag: "Migrating";
495
437
  values: void;
496
438
  };
497
439
  export interface Client {
498
- /**
499
- * 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.
500
- */
501
- upgrade: ({ new_wasm_hash }: {
502
- new_wasm_hash: Buffer;
503
- }, txnOptions?: {
504
- /**
505
- * The fee to pay for the transaction. Default: BASE_FEE
506
- */
507
- fee?: number;
508
- /**
509
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
510
- */
511
- timeoutInSeconds?: number;
512
- /**
513
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
514
- */
515
- simulate?: boolean;
516
- }) => Promise<AssembledTransaction<null>>;
517
- /**
518
- * 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.
519
- */
520
- migrate: ({ migration_data }: {
521
- migration_data: MigrationData;
522
- }, txnOptions?: {
523
- /**
524
- * The fee to pay for the transaction. Default: BASE_FEE
525
- */
526
- fee?: number;
527
- /**
528
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
529
- */
530
- timeoutInSeconds?: number;
531
- /**
532
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
533
- */
534
- simulate?: boolean;
535
- }) => Promise<AssembledTransaction<null>>;
536
440
  /**
537
441
  * 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.
538
442
  */
@@ -758,7 +662,7 @@ export interface Client {
758
662
  * Construct and simulate a set_native_token_price_usd 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.
759
663
  * Set the native token price in USD (price updater or owner).
760
664
  *
761
- * Kept as a standalone contract function (not part of the canonical `worker::ILayerZeroPriceFeed` interface).
665
+ * Kept as a standalone contract function (not part of the canonical `fee_lib_interfaces::ILayerZeroPriceFeed` interface).
762
666
  */
763
667
  set_native_token_price_usd: ({ price_updater, native_token_price_usd }: {
764
668
  price_updater: string;
@@ -989,9 +893,34 @@ export interface Client {
989
893
  */
990
894
  simulate?: boolean;
991
895
  }) => Promise<AssembledTransaction<Option<string>>>;
896
+ /**
897
+ * 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.
898
+ * Returns the pending owner address for 2-step transfer, or None if no transfer is pending.
899
+ */
900
+ pending_owner: (txnOptions?: {
901
+ /**
902
+ * The fee to pay for the transaction. Default: BASE_FEE
903
+ */
904
+ fee?: number;
905
+ /**
906
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
907
+ */
908
+ timeoutInSeconds?: number;
909
+ /**
910
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
911
+ */
912
+ simulate?: boolean;
913
+ }) => Promise<AssembledTransaction<Option<string>>>;
992
914
  /**
993
915
  * 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.
994
- * Transfers ownership to a new address. Requires current owner authorization.
916
+ * Transfers ownership immediately to a new address.
917
+ *
918
+ * Use with caution - if you transfer to a wrong address, ownership is lost forever.
919
+ * Consider using `propose_ownership_transfer` instead.
920
+ *
921
+ * # Panics
922
+ * - `OwnerNotSet` if no owner is currently set
923
+ * - `TransferInProgress` if a 2-step transfer is in progress
995
924
  */
996
925
  transfer_ownership: ({ new_owner }: {
997
926
  new_owner: string;
@@ -1009,9 +938,71 @@ export interface Client {
1009
938
  */
1010
939
  simulate?: boolean;
1011
940
  }) => Promise<AssembledTransaction<null>>;
941
+ /**
942
+ * 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.
943
+ * Proposes an ownership transfer to a new address.
944
+ *
945
+ * The new owner must call `accept_ownership()` within `ttl` ledgers
946
+ * to complete the transfer. The pending transfer will automatically expire after.
947
+ *
948
+ * # Arguments
949
+ * - `new_owner` - The proposed new owner
950
+ * - `ttl` - Number of ledgers the new owner has to accept.
951
+ * Use `0` to cancel a pending transfer (new_owner must match pending).
952
+ *
953
+ * # Panics
954
+ * - `OwnerNotSet` if no owner is currently set
955
+ * - `NoPendingTransfer` when cancelling and no pending transfer exists
956
+ * - `InvalidTtl` if ttl exceeds max TTL
957
+ * - `InvalidPendingOwner` when cancelling with wrong new_owner address
958
+ */
959
+ propose_ownership_transfer: ({ new_owner, ttl }: {
960
+ new_owner: string;
961
+ ttl: u32;
962
+ }, txnOptions?: {
963
+ /**
964
+ * The fee to pay for the transaction. Default: BASE_FEE
965
+ */
966
+ fee?: number;
967
+ /**
968
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
969
+ */
970
+ timeoutInSeconds?: number;
971
+ /**
972
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
973
+ */
974
+ simulate?: boolean;
975
+ }) => Promise<AssembledTransaction<null>>;
976
+ /**
977
+ * 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.
978
+ * Accepts a pending 2-step ownership transfer.
979
+ *
980
+ * Must be called by the pending owner before the TTL expires.
981
+ *
982
+ * # Panics
983
+ * - `NoPendingTransfer` if there is no pending transfer (or it expired)
984
+ */
985
+ accept_ownership: (txnOptions?: {
986
+ /**
987
+ * The fee to pay for the transaction. Default: BASE_FEE
988
+ */
989
+ fee?: number;
990
+ /**
991
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
992
+ */
993
+ timeoutInSeconds?: number;
994
+ /**
995
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
996
+ */
997
+ simulate?: boolean;
998
+ }) => Promise<AssembledTransaction<null>>;
1012
999
  /**
1013
1000
  * 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.
1014
- * Permanently renounces ownership. Requires current owner authorization.
1001
+ * Permanently renounces ownership.
1002
+ *
1003
+ * # Panics
1004
+ * - `OwnerNotSet` if no owner is currently set
1005
+ * - `TransferInProgress` if a 2-step transfer is in progress (cancel it first)
1015
1006
  */
1016
1007
  renounce_ownership: (txnOptions?: {
1017
1008
  /**
@@ -1027,6 +1018,86 @@ export interface Client {
1027
1018
  */
1028
1019
  simulate?: boolean;
1029
1020
  }) => Promise<AssembledTransaction<null>>;
1021
+ /**
1022
+ * 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.
1023
+ * The type of data required for migration.
1024
+ * Upgrades the contract to new WASM bytecode.
1025
+ * Sets a migration flag that must be cleared by calling `migrate`.
1026
+ */
1027
+ upgrade: ({ new_wasm_hash }: {
1028
+ new_wasm_hash: Buffer;
1029
+ }, txnOptions?: {
1030
+ /**
1031
+ * The fee to pay for the transaction. Default: BASE_FEE
1032
+ */
1033
+ fee?: number;
1034
+ /**
1035
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1036
+ */
1037
+ timeoutInSeconds?: number;
1038
+ /**
1039
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1040
+ */
1041
+ simulate?: boolean;
1042
+ }) => Promise<AssembledTransaction<null>>;
1043
+ /**
1044
+ * 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.
1045
+ * Runs migration logic after an upgrade.
1046
+ * Can only be called when the migration flag is set by a previous `upgrade` call.
1047
+ */
1048
+ migrate: ({ migration_data }: {
1049
+ migration_data: Buffer;
1050
+ }, txnOptions?: {
1051
+ /**
1052
+ * The fee to pay for the transaction. Default: BASE_FEE
1053
+ */
1054
+ fee?: number;
1055
+ /**
1056
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1057
+ */
1058
+ timeoutInSeconds?: number;
1059
+ /**
1060
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1061
+ */
1062
+ simulate?: boolean;
1063
+ }) => Promise<AssembledTransaction<null>>;
1064
+ /**
1065
+ * 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.
1066
+ * Permanently freezes the contract, preventing any future upgrades.
1067
+ * This action is irreversible.
1068
+ */
1069
+ freeze: (txnOptions?: {
1070
+ /**
1071
+ * The fee to pay for the transaction. Default: BASE_FEE
1072
+ */
1073
+ fee?: number;
1074
+ /**
1075
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1076
+ */
1077
+ timeoutInSeconds?: number;
1078
+ /**
1079
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1080
+ */
1081
+ simulate?: boolean;
1082
+ }) => Promise<AssembledTransaction<null>>;
1083
+ /**
1084
+ * 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.
1085
+ * Returns whether the contract is frozen (upgrades disabled).
1086
+ */
1087
+ is_frozen: (txnOptions?: {
1088
+ /**
1089
+ * The fee to pay for the transaction. Default: BASE_FEE
1090
+ */
1091
+ fee?: number;
1092
+ /**
1093
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1094
+ */
1095
+ timeoutInSeconds?: number;
1096
+ /**
1097
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1098
+ */
1099
+ simulate?: boolean;
1100
+ }) => Promise<AssembledTransaction<boolean>>;
1030
1101
  }
1031
1102
  export declare class Client extends ContractClient {
1032
1103
  readonly options: ContractClientOptions;
@@ -1047,8 +1118,6 @@ export declare class Client extends ContractClient {
1047
1118
  }): Promise<AssembledTransaction<T>>;
1048
1119
  constructor(options: ContractClientOptions);
1049
1120
  readonly fromJSON: {
1050
- upgrade: (json: string) => AssembledTransaction<null>;
1051
- migrate: (json: string) => AssembledTransaction<null>;
1052
1121
  authorizer: (json: string) => AssembledTransaction<string>;
1053
1122
  estimate_fee_by_eid: (json: string) => AssembledTransaction<FeeEstimate>;
1054
1123
  native_token_price_usd: (json: string) => AssembledTransaction<bigint>;
@@ -1071,7 +1140,14 @@ export declare class Client extends ContractClient {
1071
1140
  is_ttl_configs_frozen: (json: string) => AssembledTransaction<boolean>;
1072
1141
  extend_instance_ttl: (json: string) => AssembledTransaction<null>;
1073
1142
  owner: (json: string) => AssembledTransaction<Option<string>>;
1143
+ pending_owner: (json: string) => AssembledTransaction<Option<string>>;
1074
1144
  transfer_ownership: (json: string) => AssembledTransaction<null>;
1145
+ propose_ownership_transfer: (json: string) => AssembledTransaction<null>;
1146
+ accept_ownership: (json: string) => AssembledTransaction<null>;
1075
1147
  renounce_ownership: (json: string) => AssembledTransaction<null>;
1148
+ upgrade: (json: string) => AssembledTransaction<null>;
1149
+ migrate: (json: string) => AssembledTransaction<null>;
1150
+ freeze: (json: string) => AssembledTransaction<null>;
1151
+ is_frozen: (json: string) => AssembledTransaction<boolean>;
1076
1152
  };
1077
1153
  }