@keep-network/tbtc-v2 0.1.0 → 0.1.1-dev

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 (296) hide show
  1. package/README.adoc +12 -0
  2. package/artifacts/.chainId +1 -1
  3. package/artifacts/Bank.json +807 -0
  4. package/artifacts/Bridge.json +2300 -0
  5. package/artifacts/Deposit.json +117 -0
  6. package/artifacts/DepositSweep.json +77 -0
  7. package/artifacts/EcdsaDkgValidator.json +532 -0
  8. package/artifacts/EcdsaInactivity.json +156 -0
  9. package/artifacts/EcdsaSortitionPool.json +1004 -0
  10. package/artifacts/Fraud.json +164 -0
  11. package/artifacts/KeepRegistry.json +99 -0
  12. package/artifacts/KeepStake.json +286 -0
  13. package/artifacts/KeepToken.json +711 -0
  14. package/artifacts/KeepTokenStaking.json +483 -0
  15. package/artifacts/MovingFunds.json +249 -0
  16. package/artifacts/NuCypherStakingEscrow.json +256 -0
  17. package/artifacts/NuCypherToken.json +711 -0
  18. package/artifacts/RandomBeaconStub.json +141 -0
  19. package/artifacts/Redemption.json +174 -0
  20. package/artifacts/ReimbursementPool.json +509 -0
  21. package/artifacts/Relay.json +123 -0
  22. package/artifacts/T.json +1148 -0
  23. package/artifacts/TBTC.json +36 -35
  24. package/artifacts/TBTCToken.json +738 -0
  25. package/artifacts/TBTCVault.json +691 -0
  26. package/artifacts/TokenStaking.json +2288 -0
  27. package/artifacts/TokenholderGovernor.json +1795 -0
  28. package/artifacts/TokenholderTimelock.json +1058 -0
  29. package/artifacts/VendingMachine.json +34 -33
  30. package/artifacts/VendingMachineKeep.json +400 -0
  31. package/artifacts/VendingMachineNuCypher.json +400 -0
  32. package/artifacts/WalletRegistry.json +1843 -0
  33. package/artifacts/WalletRegistryGovernance.json +2754 -0
  34. package/artifacts/Wallets.json +186 -0
  35. package/artifacts/solcInputs/5e62cff1ead0900b07facca4b559e818.json +314 -0
  36. package/build/contracts/GovernanceUtils.sol/GovernanceUtils.dbg.json +1 -1
  37. package/build/contracts/GovernanceUtils.sol/GovernanceUtils.json +2 -2
  38. package/build/contracts/bank/Bank.sol/Bank.dbg.json +4 -0
  39. package/build/contracts/bank/Bank.sol/Bank.json +542 -0
  40. package/build/contracts/bank/IReceiveBalanceApproval.sol/IReceiveBalanceApproval.dbg.json +4 -0
  41. package/build/contracts/bank/IReceiveBalanceApproval.sol/IReceiveBalanceApproval.json +34 -0
  42. package/build/contracts/bridge/BitcoinTx.sol/BitcoinTx.dbg.json +4 -0
  43. package/build/contracts/bridge/BitcoinTx.sol/BitcoinTx.json +10 -0
  44. package/build/contracts/bridge/Bridge.sol/Bridge.dbg.json +4 -0
  45. package/build/contracts/bridge/Bridge.sol/Bridge.json +2686 -0
  46. package/build/contracts/bridge/BridgeState.sol/BridgeState.dbg.json +4 -0
  47. package/build/contracts/bridge/BridgeState.sol/BridgeState.json +226 -0
  48. package/build/contracts/bridge/Deposit.sol/Deposit.dbg.json +4 -0
  49. package/build/contracts/bridge/Deposit.sol/Deposit.json +72 -0
  50. package/build/contracts/bridge/DepositSweep.sol/DepositSweep.dbg.json +4 -0
  51. package/build/contracts/bridge/DepositSweep.sol/DepositSweep.json +30 -0
  52. package/build/contracts/bridge/EcdsaLib.sol/EcdsaLib.dbg.json +4 -0
  53. package/build/contracts/bridge/EcdsaLib.sol/EcdsaLib.json +10 -0
  54. package/build/contracts/bridge/Fraud.sol/Fraud.dbg.json +4 -0
  55. package/build/contracts/bridge/Fraud.sol/Fraud.json +86 -0
  56. package/build/contracts/bridge/Heartbeat.sol/Heartbeat.dbg.json +4 -0
  57. package/build/contracts/bridge/Heartbeat.sol/Heartbeat.json +10 -0
  58. package/build/contracts/bridge/IRelay.sol/IRelay.dbg.json +4 -0
  59. package/build/contracts/bridge/IRelay.sol/IRelay.json +37 -0
  60. package/build/contracts/bridge/MovingFunds.sol/MovingFunds.dbg.json +4 -0
  61. package/build/contracts/bridge/MovingFunds.sol/MovingFunds.json +138 -0
  62. package/build/contracts/bridge/Redemption.sol/OutboundTx.dbg.json +4 -0
  63. package/build/contracts/bridge/Redemption.sol/OutboundTx.json +10 -0
  64. package/build/contracts/bridge/Redemption.sol/Redemption.dbg.json +4 -0
  65. package/build/contracts/bridge/Redemption.sol/Redemption.json +92 -0
  66. package/build/contracts/bridge/VendingMachine.sol/VendingMachine.dbg.json +1 -1
  67. package/build/contracts/bridge/VendingMachine.sol/VendingMachine.json +2 -2
  68. package/build/contracts/bridge/Wallets.sol/Wallets.dbg.json +4 -0
  69. package/build/contracts/bridge/Wallets.sol/Wallets.json +112 -0
  70. package/build/contracts/token/TBTC.sol/TBTC.dbg.json +1 -1
  71. package/build/contracts/token/TBTC.sol/TBTC.json +4 -4
  72. package/build/contracts/vault/DonationVault.sol/DonationVault.dbg.json +4 -0
  73. package/build/contracts/vault/DonationVault.sol/DonationVault.json +108 -0
  74. package/build/contracts/vault/IVault.sol/IVault.dbg.json +4 -0
  75. package/build/contracts/vault/IVault.sol/IVault.json +52 -0
  76. package/build/contracts/vault/TBTCVault.sol/TBTCVault.dbg.json +4 -0
  77. package/build/contracts/vault/TBTCVault.sol/TBTCVault.json +449 -0
  78. package/contracts/GovernanceUtils.sol +4 -4
  79. package/contracts/bank/Bank.sol +436 -0
  80. package/contracts/bank/IReceiveBalanceApproval.sol +45 -0
  81. package/contracts/bridge/BitcoinTx.sol +326 -0
  82. package/contracts/bridge/Bridge.sol +1793 -0
  83. package/contracts/bridge/BridgeState.sol +739 -0
  84. package/contracts/bridge/Deposit.sol +269 -0
  85. package/contracts/bridge/DepositSweep.sol +574 -0
  86. package/contracts/bridge/EcdsaLib.sol +45 -0
  87. package/contracts/bridge/Fraud.sol +579 -0
  88. package/contracts/bridge/Heartbeat.sol +112 -0
  89. package/contracts/bridge/IRelay.sol +28 -0
  90. package/contracts/bridge/MovingFunds.sol +1077 -0
  91. package/contracts/bridge/Redemption.sol +1020 -0
  92. package/contracts/bridge/VendingMachine.sol +2 -2
  93. package/contracts/bridge/Wallets.sol +719 -0
  94. package/contracts/hardhat-dependency-compiler/.hardhat-dependency-compiler +1 -0
  95. package/contracts/hardhat-dependency-compiler/@keep-network/ecdsa/contracts/WalletRegistry.sol +3 -0
  96. package/contracts/hardhat-dependency-compiler/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol +3 -0
  97. package/contracts/hardhat-dependency-compiler/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol +3 -0
  98. package/contracts/token/TBTC.sol +1 -1
  99. package/contracts/vault/DonationVault.sol +125 -0
  100. package/contracts/vault/IVault.sol +44 -0
  101. package/contracts/vault/TBTCVault.sol +305 -0
  102. package/deploy/00_resolve_relay.ts +28 -0
  103. package/deploy/00_resolve_tbtc_v1_token.ts +1 -1
  104. package/deploy/01_deploy_tbtc_v2_token.ts +8 -1
  105. package/deploy/02_deploy_vending_machine.ts +7 -0
  106. package/deploy/{03_transfer_roles.ts → 03_transfer_vending_machine_roles.ts} +1 -1
  107. package/deploy/04_deploy_bank.ts +27 -0
  108. package/deploy/05_deploy_bridge.ts +80 -0
  109. package/deploy/06_deploy_tbtc_vault.ts +30 -0
  110. package/deploy/07_bank_update_bridge.ts +19 -0
  111. package/deploy/08_transfer_bank_ownership.ts +15 -0
  112. package/deploy/09_transfer_tbtc_vault_ownership.ts +15 -0
  113. package/deploy/10_transfer_bridge_governance.ts +20 -0
  114. package/deploy/11_initialize_wallet_owner.ts +18 -0
  115. package/deploy/11_transfer_proxy_admin_ownership.ts +30 -0
  116. package/deploy/12_deploy_proxy_admin_with_deputy.ts +33 -0
  117. package/export/deploy/00_resolve_relay.js +24 -0
  118. package/export/deploy/00_resolve_tbtc_v1_token.js +24 -0
  119. package/export/deploy/01_deploy_tbtc_v2_token.js +19 -0
  120. package/export/deploy/02_deploy_vending_machine.js +25 -0
  121. package/export/deploy/03_transfer_vending_machine_roles.js +19 -0
  122. package/export/deploy/04_deploy_bank.js +21 -0
  123. package/export/deploy/05_deploy_bridge.js +69 -0
  124. package/export/deploy/06_deploy_tbtc_vault.js +24 -0
  125. package/export/deploy/07_bank_update_bridge.js +13 -0
  126. package/export/deploy/08_transfer_bank_ownership.js +11 -0
  127. package/export/deploy/09_transfer_tbtc_vault_ownership.js +11 -0
  128. package/export/deploy/10_transfer_bridge_governance.js +11 -0
  129. package/export/deploy/11_initialize_wallet_owner.js +14 -0
  130. package/export/deploy/11_transfer_proxy_admin_ownership.js +23 -0
  131. package/export/deploy/12_deploy_proxy_admin_with_deputy.js +22 -0
  132. package/export/hardhat.config.js +169 -0
  133. package/export/test/bank/Bank.test.js +1012 -0
  134. package/export/test/bridge/Bridge.Deployment.test.js +76 -0
  135. package/export/test/bridge/Bridge.Deposit.test.js +1834 -0
  136. package/export/test/bridge/Bridge.Frauds.test.js +1349 -0
  137. package/export/test/bridge/Bridge.MovingFunds.test.js +2437 -0
  138. package/export/test/bridge/Bridge.Parameters.test.js +400 -0
  139. package/export/test/bridge/Bridge.Redemption.test.js +2523 -0
  140. package/export/test/bridge/Bridge.Vaults.test.js +74 -0
  141. package/export/test/bridge/Bridge.Wallets.test.js +1017 -0
  142. package/export/test/bridge/EcdsaLib.test.js +46 -0
  143. package/export/test/bridge/Heartbeat.test.js +77 -0
  144. package/export/test/bridge/VendingMachine.Upgrade.test.js +160 -0
  145. package/export/test/bridge/VendingMachine.test.js +762 -0
  146. package/export/test/data/deposit-sweep.js +655 -0
  147. package/export/test/data/ecdsa.js +18 -0
  148. package/export/test/data/fraud.js +158 -0
  149. package/export/test/data/moving-funds.js +815 -0
  150. package/export/test/data/redemption.js +1011 -0
  151. package/export/test/fixtures/bridge.js +54 -0
  152. package/export/test/fixtures/index.js +57 -0
  153. package/export/test/helpers/contract-test-helpers.js +18 -0
  154. package/export/test/integration/Slashing.test.js +279 -0
  155. package/export/test/integration/WalleCreation.test.js +66 -0
  156. package/export/test/integration/utils/ecdsa-wallet-registry.js +137 -0
  157. package/export/test/integration/utils/fixture.js +77 -0
  158. package/export/test/integration/utils/gas.js +36 -0
  159. package/export/test/integration/utils/random-beacon.js +26 -0
  160. package/export/test/integration/utils/staking.js +19 -0
  161. package/export/test/vault/DonationVault.test.js +202 -0
  162. package/export/test/vault/TBTCVault.Redemption.test.js +357 -0
  163. package/export/test/vault/TBTCVault.test.js +768 -0
  164. package/export/typechain/BTCUtils.js +2 -0
  165. package/export/typechain/Bank.js +2 -0
  166. package/export/typechain/BankStub.js +2 -0
  167. package/export/typechain/Bridge.js +2 -0
  168. package/export/typechain/BridgeState.js +2 -0
  169. package/export/typechain/BridgeStub.js +2 -0
  170. package/export/typechain/Deposit.js +2 -0
  171. package/export/typechain/DepositSweep.js +2 -0
  172. package/export/typechain/DonationVault.js +2 -0
  173. package/export/typechain/ERC165.js +2 -0
  174. package/export/typechain/ERC1967Proxy.js +2 -0
  175. package/export/typechain/ERC1967Upgrade.js +2 -0
  176. package/export/typechain/ERC20WithPermit.js +2 -0
  177. package/export/typechain/ERC721.js +2 -0
  178. package/export/typechain/EcdsaAuthorization.js +2 -0
  179. package/export/typechain/EcdsaDkg.js +2 -0
  180. package/export/typechain/EcdsaDkgValidator.js +2 -0
  181. package/export/typechain/EcdsaInactivity.js +2 -0
  182. package/export/typechain/Fraud.js +2 -0
  183. package/export/typechain/Governable.js +2 -0
  184. package/export/typechain/HeartbeatStub.js +2 -0
  185. package/export/typechain/IApplication.js +2 -0
  186. package/export/typechain/IApproveAndCall.js +2 -0
  187. package/export/typechain/IBeacon.js +2 -0
  188. package/export/typechain/IERC165.js +2 -0
  189. package/export/typechain/IERC1822Proxiable.js +2 -0
  190. package/export/typechain/IERC20.js +2 -0
  191. package/export/typechain/IERC20Metadata.js +2 -0
  192. package/export/typechain/IERC20WithPermit.js +2 -0
  193. package/export/typechain/IERC721.js +2 -0
  194. package/export/typechain/IERC721Metadata.js +2 -0
  195. package/export/typechain/IERC721Receiver.js +2 -0
  196. package/export/typechain/IRandomBeacon.js +2 -0
  197. package/export/typechain/IRandomBeaconConsumer.js +2 -0
  198. package/export/typechain/IReceiveApproval.js +2 -0
  199. package/export/typechain/IReceiveBalanceApproval.js +2 -0
  200. package/export/typechain/IRelay.js +2 -0
  201. package/export/typechain/IStaking.js +2 -0
  202. package/export/typechain/IVault.js +2 -0
  203. package/export/typechain/IWalletOwner.js +2 -0
  204. package/export/typechain/IWalletRegistry.js +2 -0
  205. package/export/typechain/Initializable.js +2 -0
  206. package/export/typechain/MisfundRecovery.js +2 -0
  207. package/export/typechain/MovingFunds.js +2 -0
  208. package/export/typechain/Ownable.js +2 -0
  209. package/export/typechain/Proxy.js +2 -0
  210. package/export/typechain/ProxyAdmin.js +2 -0
  211. package/export/typechain/ReceiveApprovalStub.js +2 -0
  212. package/export/typechain/Redemption.js +2 -0
  213. package/export/typechain/Reimbursable.js +2 -0
  214. package/export/typechain/ReimbursementPool.js +2 -0
  215. package/export/typechain/Rewards.js +2 -0
  216. package/export/typechain/SortitionPool.js +2 -0
  217. package/export/typechain/SortitionTree.js +2 -0
  218. package/export/typechain/TBTC.js +2 -0
  219. package/export/typechain/TBTCVault.js +2 -0
  220. package/export/typechain/TestERC20.js +2 -0
  221. package/export/typechain/TestERC721.js +2 -0
  222. package/export/typechain/TestEcdsaLib.js +2 -0
  223. package/export/typechain/TestRelay.js +2 -0
  224. package/export/typechain/TransparentUpgradeableProxy.js +2 -0
  225. package/export/typechain/VendingMachine.js +2 -0
  226. package/export/typechain/WalletRegistry.js +2 -0
  227. package/export/typechain/Wallets.js +2 -0
  228. package/export/typechain/common.js +2 -0
  229. package/export/typechain/factories/BTCUtils__factory.js +94 -0
  230. package/export/typechain/factories/BankStub__factory.js +586 -0
  231. package/export/typechain/factories/Bank__factory.js +573 -0
  232. package/export/typechain/factories/BridgeState__factory.js +257 -0
  233. package/export/typechain/factories/BridgeStub__factory.js +2912 -0
  234. package/export/typechain/factories/Bridge__factory.js +2526 -0
  235. package/export/typechain/factories/DepositSweep__factory.js +61 -0
  236. package/export/typechain/factories/Deposit__factory.js +103 -0
  237. package/export/typechain/factories/DonationVault__factory.js +139 -0
  238. package/export/typechain/factories/ERC165__factory.js +38 -0
  239. package/export/typechain/factories/ERC1967Proxy__factory.js +111 -0
  240. package/export/typechain/factories/ERC1967Upgrade__factory.js +64 -0
  241. package/export/typechain/factories/ERC20WithPermit__factory.js +524 -0
  242. package/export/typechain/factories/ERC721__factory.js +388 -0
  243. package/export/typechain/factories/EcdsaAuthorization__factory.js +211 -0
  244. package/export/typechain/factories/EcdsaDkgValidator__factory.js +441 -0
  245. package/export/typechain/factories/EcdsaDkg__factory.js +192 -0
  246. package/export/typechain/factories/EcdsaInactivity__factory.js +134 -0
  247. package/export/typechain/factories/Fraud__factory.js +117 -0
  248. package/export/typechain/factories/Governable__factory.js +64 -0
  249. package/export/typechain/factories/HeartbeatStub__factory.js +61 -0
  250. package/export/typechain/factories/IApplication__factory.js +152 -0
  251. package/export/typechain/factories/IApproveAndCall__factory.js +48 -0
  252. package/export/typechain/factories/IBeacon__factory.js +32 -0
  253. package/export/typechain/factories/IERC165__factory.js +38 -0
  254. package/export/typechain/factories/IERC1822Proxiable__factory.js +32 -0
  255. package/export/typechain/factories/IERC20Metadata__factory.js +241 -0
  256. package/export/typechain/factories/IERC20WithPermit__factory.js +389 -0
  257. package/export/typechain/factories/IERC20__factory.js +202 -0
  258. package/export/typechain/factories/IERC721Metadata__factory.js +349 -0
  259. package/export/typechain/factories/IERC721Receiver__factory.js +53 -0
  260. package/export/typechain/factories/IERC721__factory.js +304 -0
  261. package/export/typechain/factories/IRandomBeaconConsumer__factory.js +37 -0
  262. package/export/typechain/factories/IRandomBeacon__factory.js +32 -0
  263. package/export/typechain/factories/IReceiveApproval__factory.js +47 -0
  264. package/export/typechain/factories/IReceiveBalanceApproval__factory.js +42 -0
  265. package/export/typechain/factories/IRelay__factory.js +45 -0
  266. package/export/typechain/factories/IStaking__factory.js +722 -0
  267. package/export/typechain/factories/IVault__factory.js +60 -0
  268. package/export/typechain/factories/IWalletOwner__factory.js +65 -0
  269. package/export/typechain/factories/IWalletRegistry__factory.js +138 -0
  270. package/export/typechain/factories/Initializable__factory.js +32 -0
  271. package/export/typechain/factories/MisfundRecovery__factory.js +145 -0
  272. package/export/typechain/factories/MovingFunds__factory.js +169 -0
  273. package/export/typechain/factories/Ownable__factory.js +71 -0
  274. package/export/typechain/factories/ProxyAdmin__factory.js +191 -0
  275. package/export/typechain/factories/Proxy__factory.js +27 -0
  276. package/export/typechain/factories/ReceiveApprovalStub__factory.js +127 -0
  277. package/export/typechain/factories/Redemption__factory.js +123 -0
  278. package/export/typechain/factories/Reimbursable__factory.js +58 -0
  279. package/export/typechain/factories/ReimbursementPool__factory.js +350 -0
  280. package/export/typechain/factories/Rewards__factory.js +117 -0
  281. package/export/typechain/factories/SortitionPool__factory.js +610 -0
  282. package/export/typechain/factories/SortitionTree__factory.js +149 -0
  283. package/export/typechain/factories/TBTCVault__factory.js +480 -0
  284. package/export/typechain/factories/TBTC__factory.js +564 -0
  285. package/export/typechain/factories/TestERC20__factory.js +539 -0
  286. package/export/typechain/factories/TestERC721__factory.js +421 -0
  287. package/export/typechain/factories/TestEcdsaLib__factory.js +66 -0
  288. package/export/typechain/factories/TestRelay__factory.js +94 -0
  289. package/export/typechain/factories/TransparentUpgradeableProxy__factory.js +186 -0
  290. package/export/typechain/factories/VendingMachine__factory.js +549 -0
  291. package/export/typechain/factories/WalletRegistry__factory.js +1919 -0
  292. package/export/typechain/factories/Wallets__factory.js +143 -0
  293. package/export/typechain/index.js +132 -0
  294. package/export.json +15932 -503
  295. package/package.json +47 -26
  296. package/artifacts/solcInputs/7cc3eda3cb3ff2522d18b5e7b31ea228.json +0 -104
@@ -0,0 +1,1919 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WalletRegistry__factory = void 0;
4
+ /* Autogenerated file. Do not edit manually. */
5
+ /* tslint:disable */
6
+ /* eslint-disable */
7
+ const ethers_1 = require("ethers");
8
+ const _abi = [
9
+ {
10
+ inputs: [
11
+ {
12
+ internalType: "contract SortitionPool",
13
+ name: "_sortitionPool",
14
+ type: "address",
15
+ },
16
+ {
17
+ internalType: "contract IStaking",
18
+ name: "_staking",
19
+ type: "address",
20
+ },
21
+ ],
22
+ stateMutability: "nonpayable",
23
+ type: "constructor",
24
+ },
25
+ {
26
+ anonymous: false,
27
+ inputs: [
28
+ {
29
+ indexed: true,
30
+ internalType: "address",
31
+ name: "stakingProvider",
32
+ type: "address",
33
+ },
34
+ ],
35
+ name: "AuthorizationDecreaseApproved",
36
+ type: "event",
37
+ },
38
+ {
39
+ anonymous: false,
40
+ inputs: [
41
+ {
42
+ indexed: true,
43
+ internalType: "address",
44
+ name: "stakingProvider",
45
+ type: "address",
46
+ },
47
+ {
48
+ indexed: true,
49
+ internalType: "address",
50
+ name: "operator",
51
+ type: "address",
52
+ },
53
+ {
54
+ indexed: false,
55
+ internalType: "uint96",
56
+ name: "fromAmount",
57
+ type: "uint96",
58
+ },
59
+ {
60
+ indexed: false,
61
+ internalType: "uint96",
62
+ name: "toAmount",
63
+ type: "uint96",
64
+ },
65
+ {
66
+ indexed: false,
67
+ internalType: "uint64",
68
+ name: "decreasingAt",
69
+ type: "uint64",
70
+ },
71
+ ],
72
+ name: "AuthorizationDecreaseRequested",
73
+ type: "event",
74
+ },
75
+ {
76
+ anonymous: false,
77
+ inputs: [
78
+ {
79
+ indexed: true,
80
+ internalType: "address",
81
+ name: "stakingProvider",
82
+ type: "address",
83
+ },
84
+ {
85
+ indexed: true,
86
+ internalType: "address",
87
+ name: "operator",
88
+ type: "address",
89
+ },
90
+ {
91
+ indexed: false,
92
+ internalType: "uint96",
93
+ name: "fromAmount",
94
+ type: "uint96",
95
+ },
96
+ {
97
+ indexed: false,
98
+ internalType: "uint96",
99
+ name: "toAmount",
100
+ type: "uint96",
101
+ },
102
+ ],
103
+ name: "AuthorizationIncreased",
104
+ type: "event",
105
+ },
106
+ {
107
+ anonymous: false,
108
+ inputs: [
109
+ {
110
+ indexed: false,
111
+ internalType: "uint96",
112
+ name: "minimumAuthorization",
113
+ type: "uint96",
114
+ },
115
+ {
116
+ indexed: false,
117
+ internalType: "uint64",
118
+ name: "authorizationDecreaseDelay",
119
+ type: "uint64",
120
+ },
121
+ {
122
+ indexed: false,
123
+ internalType: "uint64",
124
+ name: "authorizationDecreaseChangePeriod",
125
+ type: "uint64",
126
+ },
127
+ ],
128
+ name: "AuthorizationParametersUpdated",
129
+ type: "event",
130
+ },
131
+ {
132
+ anonymous: false,
133
+ inputs: [
134
+ {
135
+ indexed: true,
136
+ internalType: "bytes32",
137
+ name: "resultHash",
138
+ type: "bytes32",
139
+ },
140
+ {
141
+ indexed: false,
142
+ internalType: "uint256",
143
+ name: "slashingAmount",
144
+ type: "uint256",
145
+ },
146
+ {
147
+ indexed: false,
148
+ internalType: "address",
149
+ name: "maliciousSubmitter",
150
+ type: "address",
151
+ },
152
+ ],
153
+ name: "DkgMaliciousResultSlashed",
154
+ type: "event",
155
+ },
156
+ {
157
+ anonymous: false,
158
+ inputs: [
159
+ {
160
+ indexed: true,
161
+ internalType: "bytes32",
162
+ name: "resultHash",
163
+ type: "bytes32",
164
+ },
165
+ {
166
+ indexed: false,
167
+ internalType: "uint256",
168
+ name: "slashingAmount",
169
+ type: "uint256",
170
+ },
171
+ {
172
+ indexed: false,
173
+ internalType: "address",
174
+ name: "maliciousSubmitter",
175
+ type: "address",
176
+ },
177
+ ],
178
+ name: "DkgMaliciousResultSlashingFailed",
179
+ type: "event",
180
+ },
181
+ {
182
+ anonymous: false,
183
+ inputs: [
184
+ {
185
+ indexed: false,
186
+ internalType: "uint256",
187
+ name: "seedTimeout",
188
+ type: "uint256",
189
+ },
190
+ {
191
+ indexed: false,
192
+ internalType: "uint256",
193
+ name: "resultChallengePeriodLength",
194
+ type: "uint256",
195
+ },
196
+ {
197
+ indexed: false,
198
+ internalType: "uint256",
199
+ name: "resultSubmissionTimeout",
200
+ type: "uint256",
201
+ },
202
+ {
203
+ indexed: false,
204
+ internalType: "uint256",
205
+ name: "resultSubmitterPrecedencePeriodLength",
206
+ type: "uint256",
207
+ },
208
+ ],
209
+ name: "DkgParametersUpdated",
210
+ type: "event",
211
+ },
212
+ {
213
+ anonymous: false,
214
+ inputs: [
215
+ {
216
+ indexed: true,
217
+ internalType: "bytes32",
218
+ name: "resultHash",
219
+ type: "bytes32",
220
+ },
221
+ {
222
+ indexed: true,
223
+ internalType: "address",
224
+ name: "approver",
225
+ type: "address",
226
+ },
227
+ ],
228
+ name: "DkgResultApproved",
229
+ type: "event",
230
+ },
231
+ {
232
+ anonymous: false,
233
+ inputs: [
234
+ {
235
+ indexed: true,
236
+ internalType: "bytes32",
237
+ name: "resultHash",
238
+ type: "bytes32",
239
+ },
240
+ {
241
+ indexed: true,
242
+ internalType: "address",
243
+ name: "challenger",
244
+ type: "address",
245
+ },
246
+ {
247
+ indexed: false,
248
+ internalType: "string",
249
+ name: "reason",
250
+ type: "string",
251
+ },
252
+ ],
253
+ name: "DkgResultChallenged",
254
+ type: "event",
255
+ },
256
+ {
257
+ anonymous: false,
258
+ inputs: [
259
+ {
260
+ indexed: true,
261
+ internalType: "bytes32",
262
+ name: "resultHash",
263
+ type: "bytes32",
264
+ },
265
+ {
266
+ indexed: true,
267
+ internalType: "uint256",
268
+ name: "seed",
269
+ type: "uint256",
270
+ },
271
+ {
272
+ components: [
273
+ {
274
+ internalType: "uint256",
275
+ name: "submitterMemberIndex",
276
+ type: "uint256",
277
+ },
278
+ {
279
+ internalType: "bytes",
280
+ name: "groupPubKey",
281
+ type: "bytes",
282
+ },
283
+ {
284
+ internalType: "uint8[]",
285
+ name: "misbehavedMembersIndices",
286
+ type: "uint8[]",
287
+ },
288
+ {
289
+ internalType: "bytes",
290
+ name: "signatures",
291
+ type: "bytes",
292
+ },
293
+ {
294
+ internalType: "uint256[]",
295
+ name: "signingMembersIndices",
296
+ type: "uint256[]",
297
+ },
298
+ {
299
+ internalType: "uint32[]",
300
+ name: "members",
301
+ type: "uint32[]",
302
+ },
303
+ {
304
+ internalType: "bytes32",
305
+ name: "membersHash",
306
+ type: "bytes32",
307
+ },
308
+ ],
309
+ indexed: false,
310
+ internalType: "struct EcdsaDkg.Result",
311
+ name: "result",
312
+ type: "tuple",
313
+ },
314
+ ],
315
+ name: "DkgResultSubmitted",
316
+ type: "event",
317
+ },
318
+ {
319
+ anonymous: false,
320
+ inputs: [],
321
+ name: "DkgSeedTimedOut",
322
+ type: "event",
323
+ },
324
+ {
325
+ anonymous: false,
326
+ inputs: [
327
+ {
328
+ indexed: true,
329
+ internalType: "uint256",
330
+ name: "seed",
331
+ type: "uint256",
332
+ },
333
+ ],
334
+ name: "DkgStarted",
335
+ type: "event",
336
+ },
337
+ {
338
+ anonymous: false,
339
+ inputs: [],
340
+ name: "DkgStateLocked",
341
+ type: "event",
342
+ },
343
+ {
344
+ anonymous: false,
345
+ inputs: [],
346
+ name: "DkgTimedOut",
347
+ type: "event",
348
+ },
349
+ {
350
+ anonymous: false,
351
+ inputs: [
352
+ {
353
+ indexed: false,
354
+ internalType: "uint256",
355
+ name: "dkgResultSubmissionGas",
356
+ type: "uint256",
357
+ },
358
+ {
359
+ indexed: false,
360
+ internalType: "uint256",
361
+ name: "dkgResultApprovalGasOffset",
362
+ type: "uint256",
363
+ },
364
+ {
365
+ indexed: false,
366
+ internalType: "uint256",
367
+ name: "notifyOperatorInactivityGasOffset",
368
+ type: "uint256",
369
+ },
370
+ {
371
+ indexed: false,
372
+ internalType: "uint256",
373
+ name: "notifySeedTimeoutGasOffset",
374
+ type: "uint256",
375
+ },
376
+ {
377
+ indexed: false,
378
+ internalType: "uint256",
379
+ name: "notifyDkgTimeoutNegativeGasOffset",
380
+ type: "uint256",
381
+ },
382
+ ],
383
+ name: "GasParametersUpdated",
384
+ type: "event",
385
+ },
386
+ {
387
+ anonymous: false,
388
+ inputs: [
389
+ {
390
+ indexed: false,
391
+ internalType: "address",
392
+ name: "oldGovernance",
393
+ type: "address",
394
+ },
395
+ {
396
+ indexed: false,
397
+ internalType: "address",
398
+ name: "newGovernance",
399
+ type: "address",
400
+ },
401
+ ],
402
+ name: "GovernanceTransferred",
403
+ type: "event",
404
+ },
405
+ {
406
+ anonymous: false,
407
+ inputs: [
408
+ {
409
+ indexed: true,
410
+ internalType: "bytes32",
411
+ name: "walletID",
412
+ type: "bytes32",
413
+ },
414
+ {
415
+ indexed: false,
416
+ internalType: "uint256",
417
+ name: "nonce",
418
+ type: "uint256",
419
+ },
420
+ {
421
+ indexed: false,
422
+ internalType: "address",
423
+ name: "notifier",
424
+ type: "address",
425
+ },
426
+ ],
427
+ name: "InactivityClaimed",
428
+ type: "event",
429
+ },
430
+ {
431
+ anonymous: false,
432
+ inputs: [
433
+ {
434
+ indexed: false,
435
+ internalType: "uint8",
436
+ name: "version",
437
+ type: "uint8",
438
+ },
439
+ ],
440
+ name: "Initialized",
441
+ type: "event",
442
+ },
443
+ {
444
+ anonymous: false,
445
+ inputs: [
446
+ {
447
+ indexed: true,
448
+ internalType: "address",
449
+ name: "stakingProvider",
450
+ type: "address",
451
+ },
452
+ {
453
+ indexed: true,
454
+ internalType: "address",
455
+ name: "operator",
456
+ type: "address",
457
+ },
458
+ {
459
+ indexed: false,
460
+ internalType: "uint96",
461
+ name: "fromAmount",
462
+ type: "uint96",
463
+ },
464
+ {
465
+ indexed: false,
466
+ internalType: "uint96",
467
+ name: "toAmount",
468
+ type: "uint96",
469
+ },
470
+ ],
471
+ name: "InvoluntaryAuthorizationDecreaseFailed",
472
+ type: "event",
473
+ },
474
+ {
475
+ anonymous: false,
476
+ inputs: [
477
+ {
478
+ indexed: true,
479
+ internalType: "address",
480
+ name: "stakingProvider",
481
+ type: "address",
482
+ },
483
+ {
484
+ indexed: true,
485
+ internalType: "address",
486
+ name: "operator",
487
+ type: "address",
488
+ },
489
+ ],
490
+ name: "OperatorJoinedSortitionPool",
491
+ type: "event",
492
+ },
493
+ {
494
+ anonymous: false,
495
+ inputs: [
496
+ {
497
+ indexed: true,
498
+ internalType: "address",
499
+ name: "stakingProvider",
500
+ type: "address",
501
+ },
502
+ {
503
+ indexed: true,
504
+ internalType: "address",
505
+ name: "operator",
506
+ type: "address",
507
+ },
508
+ ],
509
+ name: "OperatorRegistered",
510
+ type: "event",
511
+ },
512
+ {
513
+ anonymous: false,
514
+ inputs: [
515
+ {
516
+ indexed: true,
517
+ internalType: "address",
518
+ name: "stakingProvider",
519
+ type: "address",
520
+ },
521
+ {
522
+ indexed: true,
523
+ internalType: "address",
524
+ name: "operator",
525
+ type: "address",
526
+ },
527
+ ],
528
+ name: "OperatorStatusUpdated",
529
+ type: "event",
530
+ },
531
+ {
532
+ anonymous: false,
533
+ inputs: [
534
+ {
535
+ indexed: false,
536
+ internalType: "address",
537
+ name: "randomBeacon",
538
+ type: "address",
539
+ },
540
+ ],
541
+ name: "RandomBeaconUpgraded",
542
+ type: "event",
543
+ },
544
+ {
545
+ anonymous: false,
546
+ inputs: [
547
+ {
548
+ indexed: false,
549
+ internalType: "address",
550
+ name: "newReimbursementPool",
551
+ type: "address",
552
+ },
553
+ ],
554
+ name: "ReimbursementPoolUpdated",
555
+ type: "event",
556
+ },
557
+ {
558
+ anonymous: false,
559
+ inputs: [
560
+ {
561
+ indexed: false,
562
+ internalType: "uint256",
563
+ name: "maliciousDkgResultNotificationRewardMultiplier",
564
+ type: "uint256",
565
+ },
566
+ {
567
+ indexed: false,
568
+ internalType: "uint256",
569
+ name: "sortitionPoolRewardsBanDuration",
570
+ type: "uint256",
571
+ },
572
+ ],
573
+ name: "RewardParametersUpdated",
574
+ type: "event",
575
+ },
576
+ {
577
+ anonymous: false,
578
+ inputs: [
579
+ {
580
+ indexed: true,
581
+ internalType: "address",
582
+ name: "stakingProvider",
583
+ type: "address",
584
+ },
585
+ {
586
+ indexed: false,
587
+ internalType: "uint96",
588
+ name: "amount",
589
+ type: "uint96",
590
+ },
591
+ ],
592
+ name: "RewardsWithdrawn",
593
+ type: "event",
594
+ },
595
+ {
596
+ anonymous: false,
597
+ inputs: [
598
+ {
599
+ indexed: false,
600
+ internalType: "uint256",
601
+ name: "maliciousDkgResultSlashingAmount",
602
+ type: "uint256",
603
+ },
604
+ ],
605
+ name: "SlashingParametersUpdated",
606
+ type: "event",
607
+ },
608
+ {
609
+ anonymous: false,
610
+ inputs: [
611
+ {
612
+ indexed: true,
613
+ internalType: "bytes32",
614
+ name: "walletID",
615
+ type: "bytes32",
616
+ },
617
+ ],
618
+ name: "WalletClosed",
619
+ type: "event",
620
+ },
621
+ {
622
+ anonymous: false,
623
+ inputs: [
624
+ {
625
+ indexed: true,
626
+ internalType: "bytes32",
627
+ name: "walletID",
628
+ type: "bytes32",
629
+ },
630
+ {
631
+ indexed: true,
632
+ internalType: "bytes32",
633
+ name: "dkgResultHash",
634
+ type: "bytes32",
635
+ },
636
+ ],
637
+ name: "WalletCreated",
638
+ type: "event",
639
+ },
640
+ {
641
+ anonymous: false,
642
+ inputs: [
643
+ {
644
+ indexed: false,
645
+ internalType: "address",
646
+ name: "walletOwner",
647
+ type: "address",
648
+ },
649
+ ],
650
+ name: "WalletOwnerUpdated",
651
+ type: "event",
652
+ },
653
+ {
654
+ inputs: [
655
+ {
656
+ internalType: "uint256",
657
+ name: "relayEntry",
658
+ type: "uint256",
659
+ },
660
+ {
661
+ internalType: "uint256",
662
+ name: "",
663
+ type: "uint256",
664
+ },
665
+ ],
666
+ name: "__beaconCallback",
667
+ outputs: [],
668
+ stateMutability: "nonpayable",
669
+ type: "function",
670
+ },
671
+ {
672
+ inputs: [
673
+ {
674
+ internalType: "address",
675
+ name: "stakingProvider",
676
+ type: "address",
677
+ },
678
+ ],
679
+ name: "approveAuthorizationDecrease",
680
+ outputs: [],
681
+ stateMutability: "nonpayable",
682
+ type: "function",
683
+ },
684
+ {
685
+ inputs: [
686
+ {
687
+ components: [
688
+ {
689
+ internalType: "uint256",
690
+ name: "submitterMemberIndex",
691
+ type: "uint256",
692
+ },
693
+ {
694
+ internalType: "bytes",
695
+ name: "groupPubKey",
696
+ type: "bytes",
697
+ },
698
+ {
699
+ internalType: "uint8[]",
700
+ name: "misbehavedMembersIndices",
701
+ type: "uint8[]",
702
+ },
703
+ {
704
+ internalType: "bytes",
705
+ name: "signatures",
706
+ type: "bytes",
707
+ },
708
+ {
709
+ internalType: "uint256[]",
710
+ name: "signingMembersIndices",
711
+ type: "uint256[]",
712
+ },
713
+ {
714
+ internalType: "uint32[]",
715
+ name: "members",
716
+ type: "uint32[]",
717
+ },
718
+ {
719
+ internalType: "bytes32",
720
+ name: "membersHash",
721
+ type: "bytes32",
722
+ },
723
+ ],
724
+ internalType: "struct EcdsaDkg.Result",
725
+ name: "dkgResult",
726
+ type: "tuple",
727
+ },
728
+ ],
729
+ name: "approveDkgResult",
730
+ outputs: [],
731
+ stateMutability: "nonpayable",
732
+ type: "function",
733
+ },
734
+ {
735
+ inputs: [
736
+ {
737
+ internalType: "address",
738
+ name: "stakingProvider",
739
+ type: "address",
740
+ },
741
+ {
742
+ internalType: "uint96",
743
+ name: "fromAmount",
744
+ type: "uint96",
745
+ },
746
+ {
747
+ internalType: "uint96",
748
+ name: "toAmount",
749
+ type: "uint96",
750
+ },
751
+ ],
752
+ name: "authorizationDecreaseRequested",
753
+ outputs: [],
754
+ stateMutability: "nonpayable",
755
+ type: "function",
756
+ },
757
+ {
758
+ inputs: [
759
+ {
760
+ internalType: "address",
761
+ name: "stakingProvider",
762
+ type: "address",
763
+ },
764
+ {
765
+ internalType: "uint96",
766
+ name: "fromAmount",
767
+ type: "uint96",
768
+ },
769
+ {
770
+ internalType: "uint96",
771
+ name: "toAmount",
772
+ type: "uint96",
773
+ },
774
+ ],
775
+ name: "authorizationIncreased",
776
+ outputs: [],
777
+ stateMutability: "nonpayable",
778
+ type: "function",
779
+ },
780
+ {
781
+ inputs: [],
782
+ name: "authorizationParameters",
783
+ outputs: [
784
+ {
785
+ internalType: "uint96",
786
+ name: "minimumAuthorization",
787
+ type: "uint96",
788
+ },
789
+ {
790
+ internalType: "uint64",
791
+ name: "authorizationDecreaseDelay",
792
+ type: "uint64",
793
+ },
794
+ {
795
+ internalType: "uint64",
796
+ name: "authorizationDecreaseChangePeriod",
797
+ type: "uint64",
798
+ },
799
+ ],
800
+ stateMutability: "view",
801
+ type: "function",
802
+ },
803
+ {
804
+ inputs: [
805
+ {
806
+ internalType: "address",
807
+ name: "stakingProvider",
808
+ type: "address",
809
+ },
810
+ ],
811
+ name: "availableRewards",
812
+ outputs: [
813
+ {
814
+ internalType: "uint96",
815
+ name: "",
816
+ type: "uint96",
817
+ },
818
+ ],
819
+ stateMutability: "view",
820
+ type: "function",
821
+ },
822
+ {
823
+ inputs: [
824
+ {
825
+ components: [
826
+ {
827
+ internalType: "uint256",
828
+ name: "submitterMemberIndex",
829
+ type: "uint256",
830
+ },
831
+ {
832
+ internalType: "bytes",
833
+ name: "groupPubKey",
834
+ type: "bytes",
835
+ },
836
+ {
837
+ internalType: "uint8[]",
838
+ name: "misbehavedMembersIndices",
839
+ type: "uint8[]",
840
+ },
841
+ {
842
+ internalType: "bytes",
843
+ name: "signatures",
844
+ type: "bytes",
845
+ },
846
+ {
847
+ internalType: "uint256[]",
848
+ name: "signingMembersIndices",
849
+ type: "uint256[]",
850
+ },
851
+ {
852
+ internalType: "uint32[]",
853
+ name: "members",
854
+ type: "uint32[]",
855
+ },
856
+ {
857
+ internalType: "bytes32",
858
+ name: "membersHash",
859
+ type: "bytes32",
860
+ },
861
+ ],
862
+ internalType: "struct EcdsaDkg.Result",
863
+ name: "dkgResult",
864
+ type: "tuple",
865
+ },
866
+ ],
867
+ name: "challengeDkgResult",
868
+ outputs: [],
869
+ stateMutability: "nonpayable",
870
+ type: "function",
871
+ },
872
+ {
873
+ inputs: [
874
+ {
875
+ internalType: "bytes32",
876
+ name: "walletID",
877
+ type: "bytes32",
878
+ },
879
+ ],
880
+ name: "closeWallet",
881
+ outputs: [],
882
+ stateMutability: "nonpayable",
883
+ type: "function",
884
+ },
885
+ {
886
+ inputs: [],
887
+ name: "dkgParameters",
888
+ outputs: [
889
+ {
890
+ components: [
891
+ {
892
+ internalType: "uint256",
893
+ name: "seedTimeout",
894
+ type: "uint256",
895
+ },
896
+ {
897
+ internalType: "uint256",
898
+ name: "resultChallengePeriodLength",
899
+ type: "uint256",
900
+ },
901
+ {
902
+ internalType: "uint256",
903
+ name: "resultSubmissionTimeout",
904
+ type: "uint256",
905
+ },
906
+ {
907
+ internalType: "uint256",
908
+ name: "submitterPrecedencePeriodLength",
909
+ type: "uint256",
910
+ },
911
+ ],
912
+ internalType: "struct EcdsaDkg.Parameters",
913
+ name: "",
914
+ type: "tuple",
915
+ },
916
+ ],
917
+ stateMutability: "view",
918
+ type: "function",
919
+ },
920
+ {
921
+ inputs: [
922
+ {
923
+ internalType: "address",
924
+ name: "stakingProvider",
925
+ type: "address",
926
+ },
927
+ ],
928
+ name: "eligibleStake",
929
+ outputs: [
930
+ {
931
+ internalType: "uint96",
932
+ name: "",
933
+ type: "uint96",
934
+ },
935
+ ],
936
+ stateMutability: "view",
937
+ type: "function",
938
+ },
939
+ {
940
+ inputs: [],
941
+ name: "gasParameters",
942
+ outputs: [
943
+ {
944
+ internalType: "uint256",
945
+ name: "dkgResultSubmissionGas",
946
+ type: "uint256",
947
+ },
948
+ {
949
+ internalType: "uint256",
950
+ name: "dkgResultApprovalGasOffset",
951
+ type: "uint256",
952
+ },
953
+ {
954
+ internalType: "uint256",
955
+ name: "notifyOperatorInactivityGasOffset",
956
+ type: "uint256",
957
+ },
958
+ {
959
+ internalType: "uint256",
960
+ name: "notifySeedTimeoutGasOffset",
961
+ type: "uint256",
962
+ },
963
+ {
964
+ internalType: "uint256",
965
+ name: "notifyDkgTimeoutNegativeGasOffset",
966
+ type: "uint256",
967
+ },
968
+ ],
969
+ stateMutability: "view",
970
+ type: "function",
971
+ },
972
+ {
973
+ inputs: [
974
+ {
975
+ internalType: "bytes32",
976
+ name: "walletID",
977
+ type: "bytes32",
978
+ },
979
+ ],
980
+ name: "getWallet",
981
+ outputs: [
982
+ {
983
+ components: [
984
+ {
985
+ internalType: "bytes32",
986
+ name: "membersIdsHash",
987
+ type: "bytes32",
988
+ },
989
+ {
990
+ internalType: "bytes32",
991
+ name: "publicKeyX",
992
+ type: "bytes32",
993
+ },
994
+ {
995
+ internalType: "bytes32",
996
+ name: "publicKeyY",
997
+ type: "bytes32",
998
+ },
999
+ ],
1000
+ internalType: "struct Wallets.Wallet",
1001
+ name: "",
1002
+ type: "tuple",
1003
+ },
1004
+ ],
1005
+ stateMutability: "view",
1006
+ type: "function",
1007
+ },
1008
+ {
1009
+ inputs: [],
1010
+ name: "getWalletCreationState",
1011
+ outputs: [
1012
+ {
1013
+ internalType: "enum EcdsaDkg.State",
1014
+ name: "",
1015
+ type: "uint8",
1016
+ },
1017
+ ],
1018
+ stateMutability: "view",
1019
+ type: "function",
1020
+ },
1021
+ {
1022
+ inputs: [
1023
+ {
1024
+ internalType: "bytes32",
1025
+ name: "walletID",
1026
+ type: "bytes32",
1027
+ },
1028
+ ],
1029
+ name: "getWalletPublicKey",
1030
+ outputs: [
1031
+ {
1032
+ internalType: "bytes",
1033
+ name: "",
1034
+ type: "bytes",
1035
+ },
1036
+ ],
1037
+ stateMutability: "view",
1038
+ type: "function",
1039
+ },
1040
+ {
1041
+ inputs: [],
1042
+ name: "governance",
1043
+ outputs: [
1044
+ {
1045
+ internalType: "address",
1046
+ name: "",
1047
+ type: "address",
1048
+ },
1049
+ ],
1050
+ stateMutability: "view",
1051
+ type: "function",
1052
+ },
1053
+ {
1054
+ inputs: [],
1055
+ name: "hasDkgTimedOut",
1056
+ outputs: [
1057
+ {
1058
+ internalType: "bool",
1059
+ name: "",
1060
+ type: "bool",
1061
+ },
1062
+ ],
1063
+ stateMutability: "view",
1064
+ type: "function",
1065
+ },
1066
+ {
1067
+ inputs: [],
1068
+ name: "hasSeedTimedOut",
1069
+ outputs: [
1070
+ {
1071
+ internalType: "bool",
1072
+ name: "",
1073
+ type: "bool",
1074
+ },
1075
+ ],
1076
+ stateMutability: "view",
1077
+ type: "function",
1078
+ },
1079
+ {
1080
+ inputs: [
1081
+ {
1082
+ internalType: "bytes32",
1083
+ name: "",
1084
+ type: "bytes32",
1085
+ },
1086
+ ],
1087
+ name: "inactivityClaimNonce",
1088
+ outputs: [
1089
+ {
1090
+ internalType: "uint256",
1091
+ name: "",
1092
+ type: "uint256",
1093
+ },
1094
+ ],
1095
+ stateMutability: "view",
1096
+ type: "function",
1097
+ },
1098
+ {
1099
+ inputs: [
1100
+ {
1101
+ internalType: "contract EcdsaDkgValidator",
1102
+ name: "_ecdsaDkgValidator",
1103
+ type: "address",
1104
+ },
1105
+ {
1106
+ internalType: "contract IRandomBeacon",
1107
+ name: "_randomBeacon",
1108
+ type: "address",
1109
+ },
1110
+ {
1111
+ internalType: "contract ReimbursementPool",
1112
+ name: "_reimbursementPool",
1113
+ type: "address",
1114
+ },
1115
+ ],
1116
+ name: "initialize",
1117
+ outputs: [],
1118
+ stateMutability: "nonpayable",
1119
+ type: "function",
1120
+ },
1121
+ {
1122
+ inputs: [
1123
+ {
1124
+ internalType: "address",
1125
+ name: "stakingProvider",
1126
+ type: "address",
1127
+ },
1128
+ {
1129
+ internalType: "uint96",
1130
+ name: "fromAmount",
1131
+ type: "uint96",
1132
+ },
1133
+ {
1134
+ internalType: "uint96",
1135
+ name: "toAmount",
1136
+ type: "uint96",
1137
+ },
1138
+ ],
1139
+ name: "involuntaryAuthorizationDecrease",
1140
+ outputs: [],
1141
+ stateMutability: "nonpayable",
1142
+ type: "function",
1143
+ },
1144
+ {
1145
+ inputs: [
1146
+ {
1147
+ components: [
1148
+ {
1149
+ internalType: "uint256",
1150
+ name: "submitterMemberIndex",
1151
+ type: "uint256",
1152
+ },
1153
+ {
1154
+ internalType: "bytes",
1155
+ name: "groupPubKey",
1156
+ type: "bytes",
1157
+ },
1158
+ {
1159
+ internalType: "uint8[]",
1160
+ name: "misbehavedMembersIndices",
1161
+ type: "uint8[]",
1162
+ },
1163
+ {
1164
+ internalType: "bytes",
1165
+ name: "signatures",
1166
+ type: "bytes",
1167
+ },
1168
+ {
1169
+ internalType: "uint256[]",
1170
+ name: "signingMembersIndices",
1171
+ type: "uint256[]",
1172
+ },
1173
+ {
1174
+ internalType: "uint32[]",
1175
+ name: "members",
1176
+ type: "uint32[]",
1177
+ },
1178
+ {
1179
+ internalType: "bytes32",
1180
+ name: "membersHash",
1181
+ type: "bytes32",
1182
+ },
1183
+ ],
1184
+ internalType: "struct EcdsaDkg.Result",
1185
+ name: "result",
1186
+ type: "tuple",
1187
+ },
1188
+ ],
1189
+ name: "isDkgResultValid",
1190
+ outputs: [
1191
+ {
1192
+ internalType: "bool",
1193
+ name: "",
1194
+ type: "bool",
1195
+ },
1196
+ {
1197
+ internalType: "string",
1198
+ name: "",
1199
+ type: "string",
1200
+ },
1201
+ ],
1202
+ stateMutability: "view",
1203
+ type: "function",
1204
+ },
1205
+ {
1206
+ inputs: [
1207
+ {
1208
+ internalType: "address",
1209
+ name: "operator",
1210
+ type: "address",
1211
+ },
1212
+ ],
1213
+ name: "isOperatorInPool",
1214
+ outputs: [
1215
+ {
1216
+ internalType: "bool",
1217
+ name: "",
1218
+ type: "bool",
1219
+ },
1220
+ ],
1221
+ stateMutability: "view",
1222
+ type: "function",
1223
+ },
1224
+ {
1225
+ inputs: [
1226
+ {
1227
+ internalType: "address",
1228
+ name: "operator",
1229
+ type: "address",
1230
+ },
1231
+ ],
1232
+ name: "isOperatorUpToDate",
1233
+ outputs: [
1234
+ {
1235
+ internalType: "bool",
1236
+ name: "",
1237
+ type: "bool",
1238
+ },
1239
+ ],
1240
+ stateMutability: "view",
1241
+ type: "function",
1242
+ },
1243
+ {
1244
+ inputs: [
1245
+ {
1246
+ internalType: "bytes32",
1247
+ name: "walletID",
1248
+ type: "bytes32",
1249
+ },
1250
+ {
1251
+ internalType: "uint32[]",
1252
+ name: "walletMembersIDs",
1253
+ type: "uint32[]",
1254
+ },
1255
+ {
1256
+ internalType: "address",
1257
+ name: "operator",
1258
+ type: "address",
1259
+ },
1260
+ {
1261
+ internalType: "uint256",
1262
+ name: "walletMemberIndex",
1263
+ type: "uint256",
1264
+ },
1265
+ ],
1266
+ name: "isWalletMember",
1267
+ outputs: [
1268
+ {
1269
+ internalType: "bool",
1270
+ name: "",
1271
+ type: "bool",
1272
+ },
1273
+ ],
1274
+ stateMutability: "view",
1275
+ type: "function",
1276
+ },
1277
+ {
1278
+ inputs: [
1279
+ {
1280
+ internalType: "bytes32",
1281
+ name: "walletID",
1282
+ type: "bytes32",
1283
+ },
1284
+ ],
1285
+ name: "isWalletRegistered",
1286
+ outputs: [
1287
+ {
1288
+ internalType: "bool",
1289
+ name: "",
1290
+ type: "bool",
1291
+ },
1292
+ ],
1293
+ stateMutability: "view",
1294
+ type: "function",
1295
+ },
1296
+ {
1297
+ inputs: [],
1298
+ name: "joinSortitionPool",
1299
+ outputs: [],
1300
+ stateMutability: "nonpayable",
1301
+ type: "function",
1302
+ },
1303
+ {
1304
+ inputs: [],
1305
+ name: "minimumAuthorization",
1306
+ outputs: [
1307
+ {
1308
+ internalType: "uint96",
1309
+ name: "",
1310
+ type: "uint96",
1311
+ },
1312
+ ],
1313
+ stateMutability: "view",
1314
+ type: "function",
1315
+ },
1316
+ {
1317
+ inputs: [],
1318
+ name: "notifyDkgTimeout",
1319
+ outputs: [],
1320
+ stateMutability: "nonpayable",
1321
+ type: "function",
1322
+ },
1323
+ {
1324
+ inputs: [
1325
+ {
1326
+ components: [
1327
+ {
1328
+ internalType: "bytes32",
1329
+ name: "walletID",
1330
+ type: "bytes32",
1331
+ },
1332
+ {
1333
+ internalType: "uint256[]",
1334
+ name: "inactiveMembersIndices",
1335
+ type: "uint256[]",
1336
+ },
1337
+ {
1338
+ internalType: "bool",
1339
+ name: "heartbeatFailed",
1340
+ type: "bool",
1341
+ },
1342
+ {
1343
+ internalType: "bytes",
1344
+ name: "signatures",
1345
+ type: "bytes",
1346
+ },
1347
+ {
1348
+ internalType: "uint256[]",
1349
+ name: "signingMembersIndices",
1350
+ type: "uint256[]",
1351
+ },
1352
+ ],
1353
+ internalType: "struct EcdsaInactivity.Claim",
1354
+ name: "claim",
1355
+ type: "tuple",
1356
+ },
1357
+ {
1358
+ internalType: "uint256",
1359
+ name: "nonce",
1360
+ type: "uint256",
1361
+ },
1362
+ {
1363
+ internalType: "uint32[]",
1364
+ name: "groupMembers",
1365
+ type: "uint32[]",
1366
+ },
1367
+ ],
1368
+ name: "notifyOperatorInactivity",
1369
+ outputs: [],
1370
+ stateMutability: "nonpayable",
1371
+ type: "function",
1372
+ },
1373
+ {
1374
+ inputs: [],
1375
+ name: "notifySeedTimeout",
1376
+ outputs: [],
1377
+ stateMutability: "nonpayable",
1378
+ type: "function",
1379
+ },
1380
+ {
1381
+ inputs: [
1382
+ {
1383
+ internalType: "address",
1384
+ name: "operator",
1385
+ type: "address",
1386
+ },
1387
+ ],
1388
+ name: "operatorToStakingProvider",
1389
+ outputs: [
1390
+ {
1391
+ internalType: "address",
1392
+ name: "",
1393
+ type: "address",
1394
+ },
1395
+ ],
1396
+ stateMutability: "view",
1397
+ type: "function",
1398
+ },
1399
+ {
1400
+ inputs: [
1401
+ {
1402
+ internalType: "address",
1403
+ name: "stakingProvider",
1404
+ type: "address",
1405
+ },
1406
+ ],
1407
+ name: "pendingAuthorizationDecrease",
1408
+ outputs: [
1409
+ {
1410
+ internalType: "uint96",
1411
+ name: "",
1412
+ type: "uint96",
1413
+ },
1414
+ ],
1415
+ stateMutability: "view",
1416
+ type: "function",
1417
+ },
1418
+ {
1419
+ inputs: [],
1420
+ name: "randomBeacon",
1421
+ outputs: [
1422
+ {
1423
+ internalType: "contract IRandomBeacon",
1424
+ name: "",
1425
+ type: "address",
1426
+ },
1427
+ ],
1428
+ stateMutability: "view",
1429
+ type: "function",
1430
+ },
1431
+ {
1432
+ inputs: [
1433
+ {
1434
+ internalType: "address",
1435
+ name: "operator",
1436
+ type: "address",
1437
+ },
1438
+ ],
1439
+ name: "registerOperator",
1440
+ outputs: [],
1441
+ stateMutability: "nonpayable",
1442
+ type: "function",
1443
+ },
1444
+ {
1445
+ inputs: [],
1446
+ name: "reimbursementPool",
1447
+ outputs: [
1448
+ {
1449
+ internalType: "contract ReimbursementPool",
1450
+ name: "",
1451
+ type: "address",
1452
+ },
1453
+ ],
1454
+ stateMutability: "view",
1455
+ type: "function",
1456
+ },
1457
+ {
1458
+ inputs: [
1459
+ {
1460
+ internalType: "address",
1461
+ name: "stakingProvider",
1462
+ type: "address",
1463
+ },
1464
+ ],
1465
+ name: "remainingAuthorizationDecreaseDelay",
1466
+ outputs: [
1467
+ {
1468
+ internalType: "uint64",
1469
+ name: "",
1470
+ type: "uint64",
1471
+ },
1472
+ ],
1473
+ stateMutability: "view",
1474
+ type: "function",
1475
+ },
1476
+ {
1477
+ inputs: [],
1478
+ name: "requestNewWallet",
1479
+ outputs: [],
1480
+ stateMutability: "nonpayable",
1481
+ type: "function",
1482
+ },
1483
+ {
1484
+ inputs: [],
1485
+ name: "rewardParameters",
1486
+ outputs: [
1487
+ {
1488
+ internalType: "uint256",
1489
+ name: "maliciousDkgResultNotificationRewardMultiplier",
1490
+ type: "uint256",
1491
+ },
1492
+ {
1493
+ internalType: "uint256",
1494
+ name: "sortitionPoolRewardsBanDuration",
1495
+ type: "uint256",
1496
+ },
1497
+ ],
1498
+ stateMutability: "view",
1499
+ type: "function",
1500
+ },
1501
+ {
1502
+ inputs: [
1503
+ {
1504
+ internalType: "uint96",
1505
+ name: "amount",
1506
+ type: "uint96",
1507
+ },
1508
+ {
1509
+ internalType: "uint256",
1510
+ name: "rewardMultiplier",
1511
+ type: "uint256",
1512
+ },
1513
+ {
1514
+ internalType: "address",
1515
+ name: "notifier",
1516
+ type: "address",
1517
+ },
1518
+ {
1519
+ internalType: "bytes32",
1520
+ name: "walletID",
1521
+ type: "bytes32",
1522
+ },
1523
+ {
1524
+ internalType: "uint32[]",
1525
+ name: "walletMembersIDs",
1526
+ type: "uint32[]",
1527
+ },
1528
+ ],
1529
+ name: "seize",
1530
+ outputs: [],
1531
+ stateMutability: "nonpayable",
1532
+ type: "function",
1533
+ },
1534
+ {
1535
+ inputs: [],
1536
+ name: "selectGroup",
1537
+ outputs: [
1538
+ {
1539
+ internalType: "uint32[]",
1540
+ name: "",
1541
+ type: "uint32[]",
1542
+ },
1543
+ ],
1544
+ stateMutability: "view",
1545
+ type: "function",
1546
+ },
1547
+ {
1548
+ inputs: [],
1549
+ name: "slashingParameters",
1550
+ outputs: [
1551
+ {
1552
+ internalType: "uint96",
1553
+ name: "maliciousDkgResultSlashingAmount",
1554
+ type: "uint96",
1555
+ },
1556
+ ],
1557
+ stateMutability: "view",
1558
+ type: "function",
1559
+ },
1560
+ {
1561
+ inputs: [],
1562
+ name: "sortitionPool",
1563
+ outputs: [
1564
+ {
1565
+ internalType: "contract SortitionPool",
1566
+ name: "",
1567
+ type: "address",
1568
+ },
1569
+ ],
1570
+ stateMutability: "view",
1571
+ type: "function",
1572
+ },
1573
+ {
1574
+ inputs: [],
1575
+ name: "staking",
1576
+ outputs: [
1577
+ {
1578
+ internalType: "contract IStaking",
1579
+ name: "",
1580
+ type: "address",
1581
+ },
1582
+ ],
1583
+ stateMutability: "view",
1584
+ type: "function",
1585
+ },
1586
+ {
1587
+ inputs: [
1588
+ {
1589
+ internalType: "address",
1590
+ name: "stakingProvider",
1591
+ type: "address",
1592
+ },
1593
+ ],
1594
+ name: "stakingProviderToOperator",
1595
+ outputs: [
1596
+ {
1597
+ internalType: "address",
1598
+ name: "",
1599
+ type: "address",
1600
+ },
1601
+ ],
1602
+ stateMutability: "view",
1603
+ type: "function",
1604
+ },
1605
+ {
1606
+ inputs: [
1607
+ {
1608
+ components: [
1609
+ {
1610
+ internalType: "uint256",
1611
+ name: "submitterMemberIndex",
1612
+ type: "uint256",
1613
+ },
1614
+ {
1615
+ internalType: "bytes",
1616
+ name: "groupPubKey",
1617
+ type: "bytes",
1618
+ },
1619
+ {
1620
+ internalType: "uint8[]",
1621
+ name: "misbehavedMembersIndices",
1622
+ type: "uint8[]",
1623
+ },
1624
+ {
1625
+ internalType: "bytes",
1626
+ name: "signatures",
1627
+ type: "bytes",
1628
+ },
1629
+ {
1630
+ internalType: "uint256[]",
1631
+ name: "signingMembersIndices",
1632
+ type: "uint256[]",
1633
+ },
1634
+ {
1635
+ internalType: "uint32[]",
1636
+ name: "members",
1637
+ type: "uint32[]",
1638
+ },
1639
+ {
1640
+ internalType: "bytes32",
1641
+ name: "membersHash",
1642
+ type: "bytes32",
1643
+ },
1644
+ ],
1645
+ internalType: "struct EcdsaDkg.Result",
1646
+ name: "dkgResult",
1647
+ type: "tuple",
1648
+ },
1649
+ ],
1650
+ name: "submitDkgResult",
1651
+ outputs: [],
1652
+ stateMutability: "nonpayable",
1653
+ type: "function",
1654
+ },
1655
+ {
1656
+ inputs: [
1657
+ {
1658
+ internalType: "address",
1659
+ name: "newGovernance",
1660
+ type: "address",
1661
+ },
1662
+ ],
1663
+ name: "transferGovernance",
1664
+ outputs: [],
1665
+ stateMutability: "nonpayable",
1666
+ type: "function",
1667
+ },
1668
+ {
1669
+ inputs: [
1670
+ {
1671
+ internalType: "uint96",
1672
+ name: "_minimumAuthorization",
1673
+ type: "uint96",
1674
+ },
1675
+ {
1676
+ internalType: "uint64",
1677
+ name: "_authorizationDecreaseDelay",
1678
+ type: "uint64",
1679
+ },
1680
+ {
1681
+ internalType: "uint64",
1682
+ name: "_authorizationDecreaseChangePeriod",
1683
+ type: "uint64",
1684
+ },
1685
+ ],
1686
+ name: "updateAuthorizationParameters",
1687
+ outputs: [],
1688
+ stateMutability: "nonpayable",
1689
+ type: "function",
1690
+ },
1691
+ {
1692
+ inputs: [
1693
+ {
1694
+ internalType: "uint256",
1695
+ name: "_seedTimeout",
1696
+ type: "uint256",
1697
+ },
1698
+ {
1699
+ internalType: "uint256",
1700
+ name: "_resultChallengePeriodLength",
1701
+ type: "uint256",
1702
+ },
1703
+ {
1704
+ internalType: "uint256",
1705
+ name: "_resultSubmissionTimeout",
1706
+ type: "uint256",
1707
+ },
1708
+ {
1709
+ internalType: "uint256",
1710
+ name: "_submitterPrecedencePeriodLength",
1711
+ type: "uint256",
1712
+ },
1713
+ ],
1714
+ name: "updateDkgParameters",
1715
+ outputs: [],
1716
+ stateMutability: "nonpayable",
1717
+ type: "function",
1718
+ },
1719
+ {
1720
+ inputs: [
1721
+ {
1722
+ internalType: "uint256",
1723
+ name: "dkgResultSubmissionGas",
1724
+ type: "uint256",
1725
+ },
1726
+ {
1727
+ internalType: "uint256",
1728
+ name: "dkgResultApprovalGasOffset",
1729
+ type: "uint256",
1730
+ },
1731
+ {
1732
+ internalType: "uint256",
1733
+ name: "notifyOperatorInactivityGasOffset",
1734
+ type: "uint256",
1735
+ },
1736
+ {
1737
+ internalType: "uint256",
1738
+ name: "notifySeedTimeoutGasOffset",
1739
+ type: "uint256",
1740
+ },
1741
+ {
1742
+ internalType: "uint256",
1743
+ name: "notifyDkgTimeoutNegativeGasOffset",
1744
+ type: "uint256",
1745
+ },
1746
+ ],
1747
+ name: "updateGasParameters",
1748
+ outputs: [],
1749
+ stateMutability: "nonpayable",
1750
+ type: "function",
1751
+ },
1752
+ {
1753
+ inputs: [
1754
+ {
1755
+ internalType: "address",
1756
+ name: "operator",
1757
+ type: "address",
1758
+ },
1759
+ ],
1760
+ name: "updateOperatorStatus",
1761
+ outputs: [],
1762
+ stateMutability: "nonpayable",
1763
+ type: "function",
1764
+ },
1765
+ {
1766
+ inputs: [
1767
+ {
1768
+ internalType: "contract ReimbursementPool",
1769
+ name: "_reimbursementPool",
1770
+ type: "address",
1771
+ },
1772
+ ],
1773
+ name: "updateReimbursementPool",
1774
+ outputs: [],
1775
+ stateMutability: "nonpayable",
1776
+ type: "function",
1777
+ },
1778
+ {
1779
+ inputs: [
1780
+ {
1781
+ internalType: "uint256",
1782
+ name: "maliciousDkgResultNotificationRewardMultiplier",
1783
+ type: "uint256",
1784
+ },
1785
+ {
1786
+ internalType: "uint256",
1787
+ name: "sortitionPoolRewardsBanDuration",
1788
+ type: "uint256",
1789
+ },
1790
+ ],
1791
+ name: "updateRewardParameters",
1792
+ outputs: [],
1793
+ stateMutability: "nonpayable",
1794
+ type: "function",
1795
+ },
1796
+ {
1797
+ inputs: [
1798
+ {
1799
+ internalType: "uint96",
1800
+ name: "maliciousDkgResultSlashingAmount",
1801
+ type: "uint96",
1802
+ },
1803
+ ],
1804
+ name: "updateSlashingParameters",
1805
+ outputs: [],
1806
+ stateMutability: "nonpayable",
1807
+ type: "function",
1808
+ },
1809
+ {
1810
+ inputs: [
1811
+ {
1812
+ internalType: "contract IWalletOwner",
1813
+ name: "_walletOwner",
1814
+ type: "address",
1815
+ },
1816
+ ],
1817
+ name: "updateWalletOwner",
1818
+ outputs: [],
1819
+ stateMutability: "nonpayable",
1820
+ type: "function",
1821
+ },
1822
+ {
1823
+ inputs: [
1824
+ {
1825
+ internalType: "contract IRandomBeacon",
1826
+ name: "_randomBeacon",
1827
+ type: "address",
1828
+ },
1829
+ ],
1830
+ name: "upgradeRandomBeacon",
1831
+ outputs: [],
1832
+ stateMutability: "nonpayable",
1833
+ type: "function",
1834
+ },
1835
+ {
1836
+ inputs: [],
1837
+ name: "walletOwner",
1838
+ outputs: [
1839
+ {
1840
+ internalType: "contract IWalletOwner",
1841
+ name: "",
1842
+ type: "address",
1843
+ },
1844
+ ],
1845
+ stateMutability: "view",
1846
+ type: "function",
1847
+ },
1848
+ {
1849
+ inputs: [
1850
+ {
1851
+ internalType: "address",
1852
+ name: "recipient",
1853
+ type: "address",
1854
+ },
1855
+ ],
1856
+ name: "withdrawIneligibleRewards",
1857
+ outputs: [],
1858
+ stateMutability: "nonpayable",
1859
+ type: "function",
1860
+ },
1861
+ {
1862
+ inputs: [
1863
+ {
1864
+ internalType: "address",
1865
+ name: "stakingProvider",
1866
+ type: "address",
1867
+ },
1868
+ ],
1869
+ name: "withdrawRewards",
1870
+ outputs: [],
1871
+ stateMutability: "nonpayable",
1872
+ type: "function",
1873
+ },
1874
+ ];
1875
+ const _bytecode = "0x60c06040523480156200001157600080fd5b5060405162006182380380620061828339810160408190526200003491620001a1565b6001600160a01b03808316608052811660a0526200005162000059565b5050620001e0565b6200006560ff62000068565b50565b606454600090610100900460ff161562000103578160ff166001148015620000a35750620000a1306200017c60201b6200274e1760201c565b155b620000fb5760405162461bcd60e51b815260206004820152602e60248201526000805160206200616283398151915260448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b506000919050565b60645460ff808416911610620001625760405162461bcd60e51b815260206004820152602e60248201526000805160206200616283398151915260448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401620000f2565b506064805460ff191660ff92909216919091179055600190565b6001600160a01b03163b151590565b6001600160a01b03811681146200006557600080fd5b60008060408385031215620001b557600080fd5b8251620001c2816200018b565b6020840151909250620001d5816200018b565b809150509250929050565b60805160a051615e98620002ca600039600081816104db01528181610a1b01528181610a6801528181610abc01528181610b0a01528181610d0501528181610eef01528181611377015281816115b20152818161167f01528181611e6d01528181612216015261253e0152600081816107d601528181610a8901528181610add01528181610b2b01528181610c0b01528181610f9a0152818161111d015281816113020152818161184f0152818161197101528181611d08015281816120a8015281816122b2015281816124af0152818161255f015281816125be01526126a60152615e986000f3fe608060405234801561001057600080fd5b50600436106103995760003560e01c80637e0049fd116101e9578063c9bacaad1161010f578063df07ce59116100ad578063f0820c921161007c578063f0820c921461096e578063f7186ce01461097f578063f854a27f14610992578063fd2a4788146109a557600080fd5b8063df07ce5914610912578063e03e453514610925578063e686440f1461093a578063e83ab3a51461094d57600080fd5b8063d38bfff4116100e9578063d38bfff4146108b8578063d855c631146108cb578063d8dc404d146108d3578063ded56d45146108e657600080fd5b8063c9bacaad1461087d578063cc56238814610890578063d0bcc0e3146108a557600080fd5b8063a04e298011610187578063c09975cd11610156578063c09975cd14610818578063c0c53b8b1461082b578063c7c49c981461083e578063c88e70f41461086a57600080fd5b8063a04e2980146107b6578063b13b55b2146107c9578063b54a2374146107d1578063b5e9ce8b146107f857600080fd5b806388a59590116101c357806388a595901461072b57806393cc51a2146107655780639879d19b146107785780639c9de0281461078b57600080fd5b80637e0049fd146106d65780637e33cba6146106e9578063830f9e02146106fc57600080fd5b806352902301116102ce5780636c9ecd641161026c578063770124d31161023b578063770124d3146105e3578063789d392a146105eb5780637b14729e146106665780637b35b4e6146106c357600080fd5b80636c9ecd64146105a25780636febd464146105b557806372cc8c6d146105c857806375e0ae5a146105d057600080fd5b8063663032cd116102a8578063663032cd1461056157806368c34948146105745780636a7f7a901461057c5780636b5f2bff1461058f57600080fd5b806352902301146105205780635aa6e6751461053b5780635c5b38701461054e57600080fd5b8063227fd44f1161033b5780633682a450116103155780633682a450146104b057806342d86693146104c35780634cf088d9146104d65780634d99f473146104fd57600080fd5b8063227fd44f14610477578063313767661461048a578063343bb9271461049d57600080fd5b8063167f051711610377578063167f0517146104235780631ae879e81461042b5780631c5b07621461043f5780631d35fa631461045257600080fd5b806308aa090b1461039e57806314a85474146103e2578063153622b3146103f7575b600080fd5b6103a66109b8565b6040516103d991908151815260208083015190820152604080830151908201526060918201519181019190915260800190565b60405180910390f35b6103f56103f0366004614e00565b610a10565b005b6101055461040b906001600160a01b031681565b6040516001600160a01b0390911681526020016103d9565b6103f5610ab5565b6101045461040b906001600160a01b031681565b6103f561044d366004614e4b565b610b03565b60fb546001600160601b03165b6040516001600160601b0390911681526020016103d9565b6103f5610485366004614e68565b610b53565b6103f5610498366004614e85565b610bd2565b6103f56104ab366004614ebf565b610e26565b6103f56104be366004614e4b565b610e8a565b6103f56104d1366004614e4b565b610e95565b61040b7f000000000000000000000000000000000000000000000000000000000000000081565b61051061050b366004614ebf565b611068565b60405190151581526020016103d9565b60fc5460fd54604080519283526020830191909152016103d9565b60005461040b906001600160a01b031681565b6103f561055c366004614e85565b611083565b6103f561056f366004614e4b565b6112b9565b61051061135b565b6103f561058a366004614e00565b61136c565b6103f561059d366004614e4b565b6113c1565b6103f56105b0366004614ed8565b61143a565b6103f56105c3366004614ed8565b6114ac565b6103f5611516565b6103f56105de366004614e4b565b6115ab565b6105106115d7565b6106446105f9366004614ebf565b60408051606080820183526000808352602080840182905292840181905293845260c98252928290208251938401835280548452600181015491840191909152600201549082015290565b60408051825181526020808401519082015291810151908201526060016103d9565b6106946065546001600160601b038116916001600160401b03600160601b8304811692600160a01b90041690565b604080516001600160601b0390941684526001600160401b0392831660208501529116908201526060016103d9565b6103f56106d1366004614e4b565b6115e3565b6103f56106e4366004614e85565b61166b565b61045f6106f7366004614e4b565b611676565b61071d61070a366004614ebf565b6101036020526000908152604090205481565b6040519081526020016103d9565b60fe5460ff54610100546101015461010254604080519586526020860194909452928401919091526060830152608082015260a0016103d9565b6103f5610773366004614efa565b6116a4565b6103f5610786366004614f70565b611749565b61079e610799366004614e4b565b611b11565b6040516001600160401b0390911681526020016103d9565b6103f56107c4366004614ffe565b611b1e565b6103f5611bd0565b61040b7f000000000000000000000000000000000000000000000000000000000000000081565b61080b610806366004614ebf565b611c37565b6040516103d9919061509b565b60325461040b906001600160a01b031681565b6103f56108393660046150ae565b611c44565b61040b61084c366004614e4b565b6001600160a01b039081166000908152606660205260409020541690565b6103f56108783660046150ee565b611dc6565b6103f561088b366004614e00565b611e62565b610898611eb7565b6040516103d9919061513f565b6103f56108b3366004614e4b565b611ec3565b6103f56108c6366004614e4b565b611f3c565b6103f5611fd0565b6103f56108e1366004615167565b61200d565b61040b6108f4366004614e4b565b6001600160a01b039081166000908152606760205260409020541690565b6105106109203660046151e2565b61228e565b61092d61248b565b6040516103d99190615289565b610510610948366004614e4b565b612535565b61096061095b366004614e85565b612584565b6040516103d992919061529c565b6065546001600160601b031661045f565b61051061098d366004614e4b565b61259c565b61045f6109a0366004614e4b565b61263a565b61045f6109b3366004614e4b565b612727565b6109e36040518060800160405280600081526020016000815260200160008152602001600081525090565b50604080516080810182526099548152609a546020820152609b5491810191909152609c54606082015290565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610a615760405162461bcd60e51b8152600401610a58906152b7565b60405180910390fd5b610ab060657f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000086868661275d565b505050565b610b0160657f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006128e7565b565b610b5060657f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000084612ab6565b50565b6000546001600160a01b03163314610b7d5760405162461bcd60e51b8152600401610a58906152f9565b60fb80546001600160601b0319166001600160601b0383169081179091556040519081527fe132b87eb6644ee4d4c3c32744f7e1c3906335a2d4f99330767bf573909c7d84906020015b60405180910390a150565b600080610be0609784612c9c565b604051638871ca5d60e01b815263ffffffff8216600482015291935091506000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690638871ca5d9060240160206040518083038186803b158015610c4d57600080fd5b505afa158015610c61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c859190615330565b6040805160018082528183019092529192506000919060208083019080368337019050506001600160a01b038084166000908152606760205260409020549192501681600081518110610cda57610cda615363565b6001600160a01b03928316602091820292909201015260fb5460fc546040516383ddba8f60e01b81527f0000000000000000000000000000000000000000000000000000000000000000909316926383ddba8f92610d4a926001600160601b039091169133908790600401615379565b600060405180830381600087803b158015610d6457600080fd5b505af1925050508015610d75575060015b610dce5760fb54604080516001600160601b0390921682526001600160a01b038416602083015285917f14621289a12ab59e0737decc388bba91d929c723defb4682d5d19b9a12ecfecb910160405180910390a2610e1f565b60fb54604080516001600160601b0390921682526001600160a01b038416602083015285917f88f76c659db78142f88e94db3ca791869495394c6c1b3d412ced9022dc97c9e3910160405180910390a25b5050505050565b610104546001600160a01b03163314610e515760405162461bcd60e51b8152600401610a58906153ec565b610e5c60c982613014565b60405181907fa6ae4af610b8ada39d3675190ead27a5552631a8e33f53e4e37dbb082f11a73e90600090a250565b610b50606582613061565b6001600160a01b038181166000908152606660205260409020541680610ecd5760405162461bcd60e51b8152600401610a5890615423565b604051632de9480760e01b81526001600160a01b0383811660048301526000917f000000000000000000000000000000000000000000000000000000000000000090911690632de948079060240160606040518083038186803b158015610f3357600080fd5b505afa158015610f47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6b919061544d565b50604051637104c0e560e11b81526001600160a01b0385811660048301528281166024830152919350600092507f00000000000000000000000000000000000000000000000000000000000000009091169063e20981ca90604401602060405180830381600087803b158015610fe057600080fd5b505af1158015610ff4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611018919061548f565b6040516001600160601b03821681529091506001600160a01b038516907f38532b6dea69d7266fa923c7813d190be37625f2454ddfa3d93c45c79482e3fd9060200160405180910390a250505050565b600081815260c9602052604081206001015415155b92915050565b60005a905060006110956097846132c4565b9050600080806110ba60c08701356110b060208901896154ac565b60c99291906136fa565b925092509250856040516020016110d19190615736565b60405160208183030381529060405280519060200120837fbe8f27cef1f3d94120c9c547c3614f5b992fdb0c0a497cc920fde06546291ab460405160405180910390a38351156111a9577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663942f68928560fd5442611159919061575f565b6040518363ffffffff1660e01b8152600401611176929190615777565b600060405180830381600087803b15801561119057600080fd5b505af11580156111a4573d6000803e3d6000fd5b505050505b6101045460405163547d07a160e11b81526004810185905260248101849052604481018390526001600160a01b039091169063a8fa0f4290606401600060405180830381600087803b1580156111fe57600080fd5b505af1158015611212573d6000803e3d6000fd5b50505050611220609761383f565b60325460ff546001600160a01b0390911690637ad226dc905a6112439089615799565b60fe54611250919061575f565b61125a919061575f565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b15801561129957600080fd5b505af11580156112ad573d6000803e3d6000fd5b50505050505050505050565b6000546001600160a01b031633146112e35760405162461bcd60e51b8152600401610a58906152f9565b604051632a59250560e21b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a9649414906024015b600060405180830381600087803b15801561134757600080fd5b505af1158015610e1f573d6000803e3d6000fd5b600061136760976138a3565b905090565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146113b45760405162461bcd60e51b8152600401610a58906152b7565b610ab060658484846138f4565b6000546001600160a01b031633146113eb5760405162461bcd60e51b8152600401610a58906152f9565b61010580546001600160a01b0319166001600160a01b0383169081179091556040519081527f2b34e21b6daa8fcf8cba1c3ed709cbed2b0231d5fb60e9ccd8c2e75a5674bcb390602001610bc7565b6000546001600160a01b031633146114645760405162461bcd60e51b8152600401610a58906152f9565b60fc82905560fd81905560408051838152602081018390527ff3a6ee10a78fb7d212e87d9be970fb16bd7324e9dc9c38d21cd7ecde781a1d2a91015b60405180910390a15050565b610105546001600160a01b031633146115075760405162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206973206e6f74207468652052616e646f6d20426561636f6e006044820152606401610a58565b611512609783613b2f565b5050565b610104546001600160a01b031633146115415760405162461bcd60e51b8152600401610a58906153ec565b61154b6097613bdc565b610105546040516310da3b0360e21b81523060048201526001600160a01b0390911690634368ec0c90602401600060405180830381600087803b15801561159157600080fd5b505af11580156115a5573d6000803e3d6000fd5b50505050565b610b5060657f000000000000000000000000000000000000000000000000000000000000000083613ca7565b60006113676097613eef565b6000546001600160a01b0316331461160d5760405162461bcd60e51b8152600401610a58906152f9565b6040516001600160a01b03821681527f0e2d2343d31b085b7c4e56d1c8a6ec79f7ab07460386f1c9a1756239fe2533ac9060200160405180910390a1603280546001600160a01b0319166001600160a01b0392909216919091179055565b610b50609782613f29565b600061107d60657f000000000000000000000000000000000000000000000000000000000000000084614257565b6000546001600160a01b031633146116ce5760405162461bcd60e51b8152600401610a58906152f9565b6116d9609785614292565b6116e46097846142f3565b6116ef609783614354565b6116fa6097826143b5565b6040805185815260208101859052908101839052606081018290527f0a9dcb046e16a7970be15acb8e74c66378849ae91679b064c77fb1e53768ae47906080015b60405180910390a150505050565b60005a8535600081815261010360205260409020549192509085146117a05760405162461bcd60e51b815260206004820152600d60248201526c496e76616c6964206e6f6e636560981b6044820152606401610a58565b6000806117ae60c98461446f565b909250905060006117c060c9856144bf565b905086866040516020016117d59291906157b0565b6040516020818303038152906040528051906020012081146118315760405162461bcd60e51b8152602060048201526015602482015274496e76616c69642067726f7570206d656d6265727360581b6044820152606401610a58565b600073__$c28dd63714b1a086d50ecbb702fff9dbb7$__63f4df04be7f00000000000000000000000000000000000000000000000000000000000000008c878760405160200161188b929190918252602082015260400190565b6040516020818303038152906040528d8d8d6040518763ffffffff1660e01b81526004016118be969594939291906157d2565b60006040518083038186803b1580156118d657600080fd5b505af41580156118ea573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119129190810190615909565b600086815261010360205260408120805492935090611930836159a7565b9091555050604080518a815233602082015286917f326e1ff7c130ed708307116f79cf7dbca649503e7082e5e35a19ceeee1523b39910160405180910390a27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663942f68928260fd54426119ad919061575f565b6040518363ffffffff1660e01b81526004016119ca929190615777565b600060405180830381600087803b1580156119e457600080fd5b505af11580156119f8573d6000803e3d6000fd5b50611a0d9250505060608b0160408c016159c2565b15611a805761010454604051631ee74c0960e11b81526004810187905260248101869052604481018590526001600160a01b0390911690633dce981290606401600060405180830381600087803b158015611a6757600080fd5b505af1158015611a7b573d6000803e3d6000fd5b505050505b603254610100546001600160a01b0390911690637ad226dc905a611aa4908a615799565b611aae919061575f565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b158015611aed57600080fd5b505af1158015611b01573d6000803e3d6000fd5b5050505050505050505050505050565b600061107d606583614501565b6000546001600160a01b03163314611b485760405162461bcd60e51b8152600401610a58906152f9565b606580546001600160601b0319166001600160601b038516179055611b6e606583614591565b611b796065826145b9565b604080516001600160601b03851681526001600160401b03848116602083015283168183015290517f544b726e42801bb47073854eeedae851903f66fe32a5bd24e626e10b90027b519181900360600190a1505050565b60005a9050611bdf60976145e1565b603254610101546001600160a01b0390911690637ad226dc905a611c039085615799565b611c0d919061575f565b6040516001600160e01b031960e084901b168152600481019190915233602482015260440161132d565b606061107d60c983614668565b6000611c5060016146a3565b90508015611c68576064805461ff0019166101001790555b61010580546001600160a01b038086166001600160a01b0319928316179092556032805492851692909116919091179055611ca233614732565b606580546001600160601b031916690878678326eac9000000179055611ccc6065623b5380614591565b611cda6065623b53806145b9565b60fb80546001600160601b0319166815af1d78b58c400000179055606460fc556212750060fd55611d2d60977f00000000000000000000000000000000000000000000000000000000000000008661478c565b611d3a6097612d00614292565b611d476097612d006142f3565b611d5460976107d0614354565b611d60609760146143b5565b62046cd060fe556201194060ff5562016b4861010055611c52610101556108fc6101025580156115a5576064805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200161173b565b6000546001600160a01b03163314611df05760405162461bcd60e51b8152600401610a58906152f9565b60fe85905560ff849055610100839055610101829055610102819055604080518681526020810186905290810184905260608101839052608081018290527f8a3e64fa6013a36bccca7362e8826b11ba41e57fb60f55309c0ca48904dad0829060a00160405180910390a15050505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611eaa5760405162461bcd60e51b8152600401610a58906152b7565b610ab06065848484614881565b6000611367609761494e565b6000546001600160a01b03163314611eed5760405162461bcd60e51b8152600401610a58906152f9565b61010480546001600160a01b0319166001600160a01b0383169081179091556040519081527fa1993af5a189ba5ad4155263c920cfee33ce0593a8eb231a13bb3ce6f39459e390602001610bc7565b6000546001600160a01b03163314611f665760405162461bcd60e51b8152600401610a58906152f9565b6001600160a01b038116611fc75760405162461bcd60e51b815260206004820152602260248201527f4e657720676f7665726e616e636520697320746865207a65726f206164647265604482015261737360f01b6064820152608401610a58565b610b5081614732565b60005a9050611fdf60976149f3565b603254610102546001600160a01b0390911690637ad226dc905a6120039085615799565b611c0d9190615799565b610104546001600160a01b031633146120385760405162461bcd60e51b8152600401610a58906153ec565b600061204560c9856144bf565b9050828260405160200161205a9291906157b0565b60405160208183030381529060405280519060200120811461208e5760405162461bcd60e51b8152600401610a58906159df565b604051637bfcd47d60e11b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f7f9a8fa906120df90879087906004016157b0565b60006040518083038186803b1580156120f757600080fd5b505afa15801561210b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526121339190810190615a21565b90506000836001600160401b0381111561214f5761214f61534d565b604051908082528060200260200182016040528015612178578160200160208202803683370190505b50905060005b82518110156121fe576121c283828151811061219c5761219c615363565b60200260200101516001600160a01b039081166000908152606760205260409020541690565b8282815181106121d4576121d4615363565b6001600160a01b0390921660209283029190910190910152806121f6816159a7565b91505061217e565b506040516383ddba8f60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906383ddba8f90612251908c908c908c908790600401615379565b600060405180830381600087803b15801561226b57600080fd5b505af115801561227f573d6000803e3d6000fd5b50505050505050505050505050565b604051635a48b46b60e01b81526001600160a01b03838116600483015260009182917f00000000000000000000000000000000000000000000000000000000000000001690635a48b46b9060240160206040518083038186803b1580156122f457600080fd5b505afa158015612308573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061232c9190615aaf565b905063ffffffff81166123815760405162461bcd60e51b815260206004820152601d60248201527f4e6f74206120736f72746974696f6e20706f6f6c206f70657261746f720000006044820152606401610a58565b600061238e60c9896144bf565b905086866040516020016123a39291906157b0565b6040516020818303038152906040528051906020012081146123d75760405162461bcd60e51b8152600401610a58906159df565b836001111580156123e85750858411155b6124405760405162461bcd60e51b815260206004820152602360248201527f57616c6c6574206d656d62657220696e646578206973206f7574206f662072616044820152626e676560e81b6064820152608401610a58565b63ffffffff82168787612454600188615799565b81811061246357612463615363565b90506020020160208101906124789190615acc565b63ffffffff161498975050505050505050565b609f54604051636c2530b960e01b81526064600482015260248101919091526060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636c2530b99060440160006040518083038186803b1580156124f957600080fd5b505afa15801561250d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113679190810190615909565b600061107d60657f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000085614a72565b60006060612593609784614c04565b91509150915091565b6040516307b8c36760e51b81526001600160a01b0382811660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063f7186ce09060240160206040518083038186803b15801561260257600080fd5b505afa158015612616573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107d9190615ae9565b60008061265f836001600160a01b039081166000908152606660205260409020541690565b90506001600160a01b0381166126875760405162461bcd60e51b8152600401610a5890615423565b60405163439f18fd60e11b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063873e31fa9060240160206040518083038186803b1580156126e857600080fd5b505afa1580156126fc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612720919061548f565b9392505050565b6001600160a01b0381166000908152606860205260408120546001600160601b031661107d565b6001600160a01b03163b151590565b6001600160a01b038084166000908152600188016020526040902054168061278557506128df565b6040516307b8c36760e51b81526001600160a01b03828116600483015286169063f7186ce09060240160206040518083038186803b1580156127c657600080fd5b505afa1580156127da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127fe9190615ae9565b156128dd57846001600160a01b031663a4e2d6346040518163ffffffff1660e01b815260040160206040518083038186803b15801561283c57600080fd5b505afa158015612850573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128749190615ae9565b156128d157604080516001600160601b038086168252841660208201526001600160a01b0380841692908716917f1b09380d63e78fd72c1d79a805a7e2dfadf02b22418e24bebff51376b7df33b0910160405180910390a36128dd565b6128dd87878784612ab6565b505b505050505050565b3360008181526002850160205260409020546001600160a01b03168061291f5760405162461bcd60e51b8152600401610a5890615423565b6001600160a01b038116600090815260038601602052604081208054909190612956908890889086906001600160601b0316614cf7565b90506001600160601b0381166129ae5760405162461bcd60e51b815260206004820152601f60248201527f417574686f72697a6174696f6e2062656c6f7720746865206d696e696d756d006044820152606401610a58565b836001600160a01b0316836001600160a01b03167f5075aaa89894a888eb2cac81a27320c60855febb0cf1706b66bdc754e640d43360405160405180910390a3604051630483483160e31b81526001600160a01b0386169063241a418890612a1c9087908590600401615b06565b600060405180830381600087803b158015612a3657600080fd5b505af1158015612a4a573d6000803e3d6000fd5b50508354600160601b90046001600160401b03908116141591506128dd9050578654612a8690600160601b90046001600160401b031642615b28565b82546001600160401b0391909116600160601b0267ffffffffffffffff60601b1990911617825550505050505050565b6001600160a01b0380821660009081526002860160205260409020541680612af05760405162461bcd60e51b8152600401610a5890615423565b6001600160a01b03808216600081815260038801602052604080822090519093861692917f1231fe5ee649a593b524a494cd53146a196380a872115a0d0fe16c0735afdf2691a36040516307b8c36760e51b81526001600160a01b03848116600483015285169063f7186ce09060240160206040518083038186803b158015612b7857600080fd5b505afa158015612b8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bb09190615ae9565b15612c37578054600090612bd2908890889086906001600160601b0316614cf7565b60405163dc7520c560e01b81529091506001600160a01b0386169063dc7520c590612c039087908590600401615b06565b600060405180830381600087803b158015612c1d57600080fd5b505af1158015612c31573d6000803e3d6000fd5b50505050505b8054600160601b90046001600160401b0390811614156128df578554612c6d90600160601b90046001600160401b031642615b28565b81546001600160401b0391909116600160601b0267ffffffffffffffff60601b19909116178155505050505050565b6000806003612caa8561494e565b6003811115612cbb57612cbb615129565b14612d085760405162461bcd60e51b815260206004820152601e60248201527f43757272656e74207374617465206973206e6f74204348414c4c454e474500006044820152606401610a58565b6003840154600b850154612d1c919061575f565b431115612d775760405162461bcd60e51b815260206004820152602360248201527f4368616c6c656e676520706572696f642068617320616c7265616479207061736044820152621cd95960ea1b6064820152608401610a58565b83600a015483604051602001612d8d9190615736565b6040516020818303038152906040528051906020012014612e165760405162461bcd60e51b815260206004820152603a60248201527f526573756c7420756e646572206368616c6c656e67652069732064696666657260448201527f656e74207468616e20746865207375626d6974746564206f6e650000000000006064820152608401610a58565b6001840154600885015460078601546040516373b33d5d60e11b81526001600160a01b039093169263e7667aba92612e52928892600401615b53565b60006040518083038186803b158015612e6a57600080fd5b505afa925050508015612e9f57506040513d6000823e601f3d908101601f19168201604052612e9c9190810190615b78565b60015b612f1457336001600160a01b031684600a01547f703feb01415a2995816e8d082fd7aad0eacada1a2f63fdb3226e47f8a0285436604051612f07906020808252601390820152721d985b1a59185d1a5bdb881c995d995c9d1959606a1b604082015260600190565b60405180910390a3612fa3565b8115612f5a5760405162461bcd60e51b8152602060048201526015602482015274756e6a7573746966696564206368616c6c656e676560581b6044820152606401610a58565b336001600160a01b031686600a01547f703feb01415a2995816e8d082fd7aad0eacada1a2f63fdb3226e47f8a028543683604051612f98919061509b565b60405180910390a350505b600a8401549150612fb760a0840184615c21565b612fc360018635615799565b818110612fd257612fd2615363565b9050602002016020810190612fe79190615acc565b9050836007015443612ff99190615799565b60098501556000600a8501819055600b8501555b9250929050565b6000818152602083905260409020600101546130425760405162461bcd60e51b8152600401610a5890615c6a565b6000908152602091909152604081208181556001810182905560020155565b336001600160a01b0382166130b85760405162461bcd60e51b815260206004820181905260248201527f4f70657261746f722063616e206e6f74206265207a65726f20616464726573736044820152606401610a58565b6001600160a01b03818116600090815260018501602052604090205416156131385760405162461bcd60e51b815260206004820152602d60248201527f4f70657261746f7220616c72656164792073657420666f72207468652073746160448201526c35b4b73390383937bb34b232b960991b6064820152608401610a58565b6001600160a01b03828116600090815260028501602052604090205416156131a25760405162461bcd60e51b815260206004820152601f60248201527f4f70657261746f72206164647265737320616c726561647920696e20757365006044820152606401610a58565b6001600160a01b038116600090815260038401602052604090208054600160601b90046001600160401b0316156132355760405162461bcd60e51b815260206004820152603160248201527f546865726520697320612070656e64696e6720617574686f72697a6174696f6e60448201527008191958dc99585cd9481c995c5d595cdd607a1b6064820152608401610a58565b826001600160a01b0316826001600160a01b03167fa453db612af59e5521d6ab9284dc3e2d06af286eb1b1b7b771fce4716c19f2c160405160405180910390a3506001600160a01b03908116600081815260018501602090815260408083208054959096166001600160a01b031995861681179096559482526002909501909452919092208054909216179055565b606060036132d18461494e565b60038111156132e2576132e2615129565b1461332f5760405162461bcd60e51b815260206004820152601e60248201527f43757272656e74207374617465206973206e6f74204348414c4c454e474500006044820152606401610a58565b6003830154600b8401546000916133459161575f565b90508043116133a25760405162461bcd60e51b815260206004820152602360248201527f4368616c6c656e676520706572696f6420686173206e6f7420706173736564206044820152621e595d60ea1b6064820152608401610a58565b83600a0154836040516020016133b89190615736565b60405160208183030381529060405280519060200120146134415760405162461bcd60e51b815260206004820152603960248201527f526573756c7420756e64657220617070726f76616c206973206469666665726560448201527f6e74207468616e20746865207375626d6974746564206f6e65000000000000006064820152608401610a58565b83546000906001600160a01b0316638871ca5d61346160a0870187615c21565b61346d60018935615799565b81811061347c5761347c615363565b90506020020160208101906134919190615acc565b6040516001600160e01b031960e084901b16815263ffffffff91909116600482015260240160206040518083038186803b1580156134ce57600080fd5b505afa1580156134e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135069190615330565b9050336001600160a01b038216148061352c57506005850154613529908361575f565b43115b6135aa5760405162461bcd60e51b815260206004820152604360248201527f4f6e6c792074686520444b4720726573756c74207375626d697474657220636160448201527f6e20617070726f76652074686520726573756c742061742074686973206d6f6d606482015262195b9d60ea1b608482015260a401610a58565b6135b76040850185615c21565b90506001600160401b038111156135d0576135d061534d565b6040519080825280602002602001820160405280156135f9578160200160208202803683370190505b50925060005b61360c6040860186615c21565b90508110156136c05761362260a0860186615c21565b60016136316040890189615c21565b8581811061364157613641615363565b90506020020160208101906136569190615cba565b6136609190615cd5565b60ff1681811061367257613672615363565b90506020020160208101906136879190615acc565b84828151811061369957613699615363565b63ffffffff90921660209283029190910190910152806136b8816159a7565b9150506135ff565b50600a8501546040513391907fe6e9d5eba171e82025efb3f3d44fd35905e7283d104284cb9f3bbc5bf1e4276f90600090a3505092915050565b6000806000848460405161370f929190615cf8565b6040805191829003909120600081815260208a90529190912060010154909350156137945760405162461bcd60e51b815260206004820152602f60248201527f57616c6c657420776974682074686520676976656e207075626c6963206b657960448201526e20616c72656164792065786973747360881b6064820152608401610a58565b604084146137e45760405162461bcd60e51b815260206004820181905260248201527f496e76616c6964206c656e677468206f6620746865207075626c6963206b65796044820152606401610a58565b6137f2602060008688615d08565b6137fb91615d32565b915061380a8460208188615d08565b61381391615d32565b600084815260209890985260409097209586555060018501819055600290940185905594929392915050565b6000600782018190556008820181905560098201819055600a8201819055600b820181905581546040805163a69df4b560e01b815290516001600160a01b039092169263a69df4b59260048084019382900301818387803b15801561134757600080fd5b600060026138b08361494e565b60038111156138c1576138c1615129565b14801561107d57506004820154600983015460078401546138e2919061575f565b6138ec919061575f565b431192915050565b6001600160601b0381161580613918575083546001600160601b0390811690821610155b6139825760405162461bcd60e51b815260206004820152603560248201527f417574686f72697a6174696f6e20616d6f756e742073686f756c642062652030604482015274206f722061626f766520746865206d696e696d756d60581b6064820152608401610a58565b6001600160a01b03808416600090815260018601602052604081205490911690816139ae5750426139b8565b506001600160401b035b60006139c48486615d50565b6001600160a01b03871660009081526003890160205260409020805491925090600160601b90046001600160401b03168015801590613a0c57506001600160401b0381811614155b15613a9f578854613a2d90600160a01b90046001600160401b031682615d78565b6001600160401b0316421015613a9f5760405162461bcd60e51b815260206004820152603160248201527f4e6f7420656e6f7567682074696d65207061737365642073696e636520746865604482015270081bdc9a59da5b985b081c995c5d595cdd607a1b6064820152608401610a58565b81546001600160401b038516600160601b81026001600160a01b03199092166001600160601b0386811691909117929092178455604080518a8416815292891660208401528201526001600160a01b0386811691908a16907f545cbf267cef6fe43f11f6219417ab43a0e8e345adbaae5f626d9bc325e8535a9060600160405180910390a3505050505050505050565b6001613b3a8361494e565b6003811115613b4b57613b4b615129565b14613ba35760405162461bcd60e51b815260206004820152602260248201527f43757272656e74207374617465206973206e6f74204157414954494e475f5345604482015261115160f21b6064820152608401610a58565b60405181907fb2ad26c2940889d79df2ee9c758a8aefa00c5ca90eee119af0e5d795df3b98bb90600090a2436007830155600890910155565b6000613be78261494e565b6003811115613bf857613bf8615129565b14613c155760405162461bcd60e51b8152600401610a5890615d98565b6040517f5c3ed2397d4d21298b2fb5027ac8e2d42e3c9c72bbb55ddb030e2a36a0cdff6b90600090a1805460408051637c1e845d60e11b815290516001600160a01b039092169163f83d08ba9160048082019260009290919082900301818387803b158015613c8357600080fd5b505af1158015613c97573d6000803e3d6000fd5b5050505043816006018190555050565b6001600160a01b038116600090815260038401602052604090208054600160601b90046001600160401b0316613d2b5760405162461bcd60e51b8152602060048201526024808201527f417574686f72697a6174696f6e206465637265617365206e6f742072657175656044820152631cdd195960e21b6064820152608401610a58565b8054600160601b90046001600160401b039081161415613da25760405162461bcd60e51b815260206004820152602c60248201527f417574686f72697a6174696f6e2064656372656173652072657175657374206e60448201526b1bdd081858dd1a5d985d195960a21b6064820152608401610a58565b8054600160601b90046001600160401b0316421015613e135760405162461bcd60e51b815260206004820152602760248201527f417574686f72697a6174696f6e2064656372656173652064656c6179206e6f74604482015266081c185cdcd95960ca1b6064820152608401610a58565b6040516001600160a01b038316907f50270a522c2fef97b6b7385c2aa4a4518adda681530e0a1fe9f5e840f6f2cd9d90600090a2604051633af0572d60e11b81526001600160a01b0383811660048301528416906375e0ae5a90602401602060405180830381600087803b158015613e8a57600080fd5b505af1158015613e9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ec2919061548f565b50506001600160a01b031660009081526003909201602052506040902080546001600160a01b0319169055565b60006001613efc8361494e565b6003811115613f0d57613f0d615129565b14801561107d5750600282015460068301546138ec919061575f565b6002613f348361494e565b6003811115613f4557613f45615129565b14613f9e5760405162461bcd60e51b8152602060048201526024808201527f43757272656e74207374617465206973206e6f74204157414954494e475f524560448201526314d5531560e21b6064820152608401610a58565b613fa7826138a3565b15613ff45760405162461bcd60e51b815260206004820152601a60248201527f444b472074696d656f757420616c7265616479207061737365640000000000006044820152606401610a58565b81546040516307b8c36760e51b81523360048201526001600160a01b0390911690819063f7186ce09060240160206040518083038186803b15801561403857600080fd5b505afa15801561404c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140709190615ae9565b6140c85760405162461bcd60e51b815260206004820152602360248201527f5375626d6974746572206e6f7420696e2074686520736f72746974696f6e20706044820152621bdbdb60ea1b6064820152608401610a58565b336001600160a01b038216638871ca5d6140e560a0860186615c21565b6140f160018835615799565b81811061410057614100615363565b90506020020160208101906141159190615acc565b6040516001600160e01b031960e084901b16815263ffffffff91909116600482015260240160206040518083038186803b15801561415257600080fd5b505afa158015614166573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061418a9190615330565b6001600160a01b0316146141e05760405162461bcd60e51b815260206004820152601a60248201527f556e6578706563746564207375626d697474657220696e6465780000000000006044820152606401610a58565b816040516020016141f19190615736565b60408051601f19818403018152908290528051602090910120600a850181905543600b8601556008850154917f8e7fd4293d7db11807147d8890c287fad3396fbb09a4e92273fc7856076c153a9061424a908690615736565b60405180910390a3505050565b6001600160a01b038116600090815260038401602052604081205461428a908590859085906001600160601b0316614cf7565b949350505050565b600061429d8361494e565b60038111156142ae576142ae615129565b146142cb5760405162461bcd60e51b8152600401610a5890615d98565b600081116142eb5760405162461bcd60e51b8152600401610a5890615dcf565b600290910155565b60006142fe8361494e565b600381111561430f5761430f615129565b1461432c5760405162461bcd60e51b8152600401610a5890615d98565b6000811161434c5760405162461bcd60e51b8152600401610a5890615dcf565b600390910155565b600061435f8361494e565b600381111561437057614370615129565b1461438d5760405162461bcd60e51b8152600401610a5890615d98565b600081116143ad5760405162461bcd60e51b8152600401610a5890615dcf565b600490910155565b60006143c08361494e565b60038111156143d1576143d1615129565b146143ee5760405162461bcd60e51b8152600401610a5890615d98565b600482015481106144675760405162461bcd60e51b815260206004820152603d60248201527f4e65772076616c75652073686f756c64206265206c657373207468616e20726560448201527f73756c74207375626d697373696f6e20706572696f64206c656e6774680000006064820152608401610a58565b600590910155565b600081815260208390526040812060010154819061449f5760405162461bcd60e51b8152600401610a5890615c6a565b505060009081526020919091526040902060018101546002909101549091565b6000818152602083905260408120600101546144ed5760405162461bcd60e51b8152600401610a5890615c6a565b506000908152602091909152604090205490565b6001600160a01b038116600090815260038301602052604081208054600160601b90046001600160401b039081161415614545576001600160401b0391505061107d565b805442906001600160401b03600160601b909104811690821611614585578154614580908290600160601b90046001600160401b0316615d78565b614588565b60005b95945050505050565b81546001600160401b03909116600160601b0267ffffffffffffffff60601b19909116179055565b81546001600160401b03909116600160a01b0267ffffffffffffffff60a01b19909116179055565b6145ea81613eef565b6146365760405162461bcd60e51b815260206004820152601f60248201527f4177616974696e67207365656420686173206e6f742074696d6564206f7574006044820152606401610a58565b6040517f68c52f05452e81639fa06f379aee3178cddee4725521fff886f244c99e868b5090600090a1610b508161383f565b6060600080614677858561446f565b604080516020810193909352828101919091528051808303820181526060909201905295945050505050565b606454600090610100900460ff16156146ec578160ff1660011480156146c85750303b155b6146e45760405162461bcd60e51b8152600401610a5890615e14565b506000919050565b60645460ff8084169116106147135760405162461bcd60e51b8152600401610a5890615e14565b506064805460ff191660ff92909216919091179055600190565b919050565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f5f56bee8cffbe9a78652a74a60705edede02af10b0bbb888ca44b79a0d42ce8091016114a0565b82546001600160a01b0316156147ef5760405162461bcd60e51b815260206004820152602260248201527f536f72746974696f6e20506f6f6c206164647265737320616c72656164792073604482015261195d60f21b6064820152608401610a58565b60018301546001600160a01b0316156148545760405162461bcd60e51b815260206004820152602160248201527f444b472056616c696461746f72206164647265737320616c72656164792073656044820152601d60fa1b6064820152608401610a58565b82546001600160a01b03199081166001600160a01b03938416178455600190930180549093169116179055565b83546001600160601b0390811690821610156148df5760405162461bcd60e51b815260206004820152601f60248201527f417574686f72697a6174696f6e2062656c6f7720746865206d696e696d756d006044820152606401610a58565b6001600160a01b0383811660008181526001870160209081526040918290205482516001600160601b03888116825287169281019290925282519416938493927f87f9f9f59204f53d57a89a817c6083a17979cd0531791c91e18551a56e3cfdd7928290030190a35050505050565b805460408051632938b58d60e21b815290516000926001600160a01b03169163a4e2d634916004808301926020929190829003018186803b15801561499257600080fd5b505afa1580156149a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906149ca9190615ae9565b1561472d575060078101546001901561472d5750600b8101546002901561472d57506003919050565b6149fc816138a3565b614a405760405162461bcd60e51b81526020600482015260156024820152741112d1c81a185cc81b9bdd081d1a5b5959081bdd5d605a1b6044820152606401610a58565b6040517f2852b3e178dd281713b041c3d90b4815bb55b7ec812931d1e8e8d8bb2ed72d3e90600090a1610b508161383f565b6001600160a01b03808216600090815260028601602052604081205490911680614aae5760405162461bcd60e51b8152600401610a5890615423565b6001600160a01b038116600090815260038701602052604081208054909190614ae5908990899086906001600160601b0316614cf7565b6040516307b8c36760e51b81526001600160a01b0387811660048301529192509087169063f7186ce09060240160206040518083038186803b158015614b2a57600080fd5b505afa158015614b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614b629190615ae9565b614b7a576001600160601b031615925061428a915050565b6040516304de824f60e41b81526001600160a01b03871690634de824f090614ba89088908590600401615b06565b60206040518083038186803b158015614bc057600080fd5b505afa158015614bd4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614bf89190615ae9565b98975050505050505050565b600060606000846007015411614c5c5760405162461bcd60e51b815260206004820152601860248201527f444b4720686173206e6f74206265656e207374617274656400000000000000006044820152606401610a58565b6001840154600885015460078601546040516373b33d5d60e11b81526001600160a01b039093169263e7667aba92614c98928892600401615b53565b60006040518083038186803b158015614cb057600080fd5b505afa158015614cc4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052614cec9190810190615b78565b915091509250929050565b604051637004922d60e11b81526001600160a01b038381166004830152306024830152600091829186169063e009245a9060440160206040518083038186803b158015614d4357600080fd5b505afa158015614d57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614d7b919061548f565b90506000836001600160601b0316826001600160601b031611614d9f576000614da9565b614da98483615d50565b87549091506001600160601b039081169082161015614dcd5760009250505061428a565b915061428a9050565b6001600160a01b0381168114610b5057600080fd5b6001600160601b0381168114610b5057600080fd5b600080600060608486031215614e1557600080fd5b8335614e2081614dd6565b92506020840135614e3081614deb565b91506040840135614e4081614deb565b809150509250925092565b600060208284031215614e5d57600080fd5b813561272081614dd6565b600060208284031215614e7a57600080fd5b813561272081614deb565b600060208284031215614e9757600080fd5b81356001600160401b03811115614ead57600080fd5b820160e0818503121561272057600080fd5b600060208284031215614ed157600080fd5b5035919050565b60008060408385031215614eeb57600080fd5b50508035926020909101359150565b60008060008060808587031215614f1057600080fd5b5050823594602084013594506040840135936060013592509050565b60008083601f840112614f3e57600080fd5b5081356001600160401b03811115614f5557600080fd5b6020830191508360208260051b850101111561300d57600080fd5b60008060008060608587031215614f8657600080fd5b84356001600160401b0380821115614f9d57600080fd5b9086019060a08289031215614fb157600080fd5b9094506020860135935060408601359080821115614fce57600080fd5b50614fdb87828801614f2c565b95989497509550505050565b80356001600160401b038116811461472d57600080fd5b60008060006060848603121561501357600080fd5b833561501e81614deb565b925061502c60208501614fe7565b915061503a60408501614fe7565b90509250925092565b60005b8381101561505e578181015183820152602001615046565b838111156115a55750506000910152565b60008151808452615087816020860160208601615043565b601f01601f19169290920160200192915050565b602081526000612720602083018461506f565b6000806000606084860312156150c357600080fd5b83356150ce81614dd6565b925060208401356150de81614dd6565b91506040840135614e4081614dd6565b600080600080600060a0868803121561510657600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b634e487b7160e01b600052602160045260246000fd5b602081016004831061516157634e487b7160e01b600052602160045260246000fd5b91905290565b60008060008060008060a0878903121561518057600080fd5b863561518b81614deb565b95506020870135945060408701356151a281614dd6565b93506060870135925060808701356001600160401b038111156151c457600080fd5b6151d089828a01614f2c565b979a9699509497509295939492505050565b6000806000806000608086880312156151fa57600080fd5b8535945060208601356001600160401b0381111561521757600080fd5b61522388828901614f2c565b909550935050604086013561523781614dd6565b949793965091946060013592915050565b600081518084526020808501945080840160005b8381101561527e57815163ffffffff168752958201959082019060010161525c565b509495945050505050565b6020815260006127206020830184615248565b821515815260406020820152600061428a604083018461506f565b60208082526022908201527f43616c6c6572206973206e6f7420746865207374616b696e6720636f6e74726160408201526118dd60f21b606082015260800190565b6020808252601c908201527f43616c6c6572206973206e6f742074686520676f7665726e616e636500000000604082015260600190565b60006020828403121561534257600080fd5b815161272081614dd6565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160601b038516815260208082018590526001600160a01b038481166040840152608060608401819052845190840181905260009285810192909160a0860190855b818110156153dc5785518416835294840194918401916001016153be565b50909a9950505050505050505050565b6020808252601e908201527f43616c6c6572206973206e6f74207468652057616c6c6574204f776e65720000604082015260600190565b60208082526010908201526f2ab735b737bbb71037b832b930ba37b960811b604082015260600190565b60008060006060848603121561546257600080fd5b835161546d81614dd6565b602085015190935061547e81614dd6565b6040850151909250614e4081614dd6565b6000602082840312156154a157600080fd5b815161272081614deb565b6000808335601e198436030181126154c357600080fd5b8301803591506001600160401b038211156154dd57600080fd5b60200191503681900382131561300d57600080fd5b6000808335601e1984360301811261550957600080fd5b83016020810192503590506001600160401b0381111561552857600080fd5b80360383131561300d57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6000808335601e1984360301811261557757600080fd5b83016020810192503590506001600160401b0381111561559657600080fd5b8060051b360383131561300d57600080fd5b803560ff8116811461472d57600080fd5b81835260006001600160fb1b038311156155d257600080fd5b8260051b8083602087013760009401602001938452509192915050565b63ffffffff81168114610b5057600080fd5b8183526000602080850194508260005b8581101561527e578135615624816155ef565b63ffffffff1687529582019590820190600101615611565b8035825260006020615650818401846154f2565b60e08387015261566460e087018284615537565b9150506156746040850185615560565b868303604088015280835290916000919084015b818310156156b05760ff61569b856155a8565b16815292840192600192909201918401615688565b6156bd60608801886154f2565b9550935087810360608901526156d4818686615537565b9450505050506156e76080840184615560565b85830360808701526156fa8382846155b9565b9250505061570b60a0840184615560565b85830360a087015261571e838284615601565b9250505060c083013560c08501528091505092915050565b602081526000612720602083018461563c565b634e487b7160e01b600052601160045260246000fd5b6000821982111561577257615772615749565b500190565b60408152600061578a6040830185615248565b90508260208301529392505050565b6000828210156157ab576157ab615749565b500390565b60208152600061428a602083018486615601565b8015158114610b5057600080fd5b60018060a01b038716815260a06020820152853560a082015260006157fa6020880188615560565b60a060c0850152615810610140850182846155b9565b9150506040880135615821816157c4565b151560e084015261583560608901896154f2565b609f19808685030161010087015261584e848385615537565b935061585d60808c018c615560565b935091508086850301610120870152506158788383836155b9565b92505050828103604084015261588e818861506f565b905085606084015282810360808401526158a9818587615601565b9998505050505050505050565b604051601f8201601f191681016001600160401b03811182821017156158de576158de61534d565b604052919050565b60006001600160401b038211156158ff576158ff61534d565b5060051b60200190565b6000602080838503121561591c57600080fd5b82516001600160401b0381111561593257600080fd5b8301601f8101851361594357600080fd5b8051615956615951826158e6565b6158b6565b81815260059190911b8201830190838101908783111561597557600080fd5b928401925b8284101561599c57835161598d816155ef565b8252928401929084019061597a565b979650505050505050565b60006000198214156159bb576159bb615749565b5060010190565b6000602082840312156159d457600080fd5b8135612720816157c4565b60208082526022908201527f496e76616c69642077616c6c6574206d656d62657273206964656e7469666965604082015261727360f01b606082015260800190565b60006020808385031215615a3457600080fd5b82516001600160401b03811115615a4a57600080fd5b8301601f81018513615a5b57600080fd5b8051615a69615951826158e6565b81815260059190911b82018301908381019087831115615a8857600080fd5b928401925b8284101561599c578351615aa081614dd6565b82529284019290840190615a8d565b600060208284031215615ac157600080fd5b8151612720816155ef565b600060208284031215615ade57600080fd5b8135612720816155ef565b600060208284031215615afb57600080fd5b8151612720816157c4565b6001600160a01b039290921682526001600160601b0316602082015260400190565b60006001600160401b03808316818516808303821115615b4a57615b4a615749565b01949350505050565b606081526000615b66606083018661563c565b60208301949094525060400152919050565b60008060408385031215615b8b57600080fd5b8251615b96816157c4565b60208401519092506001600160401b0380821115615bb357600080fd5b818501915085601f830112615bc757600080fd5b815181811115615bd957615bd961534d565b615bec601f8201601f19166020016158b6565b9150808252866020828501011115615c0357600080fd5b615c14816020840160208601615043565b5080925050509250929050565b6000808335601e19843603018112615c3857600080fd5b8301803591506001600160401b03821115615c5257600080fd5b6020019150600581901b360382131561300d57600080fd5b60208082526030908201527f57616c6c657420776974682074686520676976656e20494420686173206e6f7460408201526f081899595b881c9959da5cdd195c995960821b606082015260800190565b600060208284031215615ccc57600080fd5b612720826155a8565b600060ff821660ff841680821015615cef57615cef615749565b90039392505050565b8183823760009101908152919050565b60008085851115615d1857600080fd5b83861115615d2557600080fd5b5050820193919092039150565b8035602083101561107d57600019602084900360031b1b1692915050565b60006001600160601b0383811690831681811015615d7057615d70615749565b039392505050565b60006001600160401b0383811690831681811015615d7057615d70615749565b60208082526019908201527f43757272656e74207374617465206973206e6f742049444c4500000000000000604082015260600190565b60208082526025908201527f4e65772076616c75652073686f756c642062652067726561746572207468616e604082015264207a65726f60d81b606082015260800190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b60608201526080019056fea2646970667358221220f2d1772adfbe5b29841faf4dabda52040cd1cc997fb85cc592d6a9b163f1d7c464736f6c63430008090033496e697469616c697a61626c653a20636f6e747261637420697320616c726561";
1876
+ const isSuperArgs = (xs) => {
1877
+ return (typeof xs[0] === "string" ||
1878
+ Array.isArray(xs[0]) ||
1879
+ "_isInterface" in xs[0]);
1880
+ };
1881
+ class WalletRegistry__factory extends ethers_1.ContractFactory {
1882
+ constructor(...args) {
1883
+ if (isSuperArgs(args)) {
1884
+ super(...args);
1885
+ }
1886
+ else {
1887
+ const [linkLibraryAddresses, signer] = args;
1888
+ super(_abi, WalletRegistry__factory.linkBytecode(linkLibraryAddresses), signer);
1889
+ }
1890
+ }
1891
+ static linkBytecode(linkLibraryAddresses) {
1892
+ let linkedBytecode = _bytecode;
1893
+ linkedBytecode = linkedBytecode.replace(new RegExp("__\\$c28dd63714b1a086d50ecbb702fff9dbb7\\$__", "g"), linkLibraryAddresses["@keep-network/ecdsa/contracts/libraries/EcdsaInactivity.sol:EcdsaInactivity"]
1894
+ .replace(/^0x/, "")
1895
+ .toLowerCase());
1896
+ return linkedBytecode;
1897
+ }
1898
+ deploy(_sortitionPool, _staking, overrides) {
1899
+ return super.deploy(_sortitionPool, _staking, overrides || {});
1900
+ }
1901
+ getDeployTransaction(_sortitionPool, _staking, overrides) {
1902
+ return super.getDeployTransaction(_sortitionPool, _staking, overrides || {});
1903
+ }
1904
+ attach(address) {
1905
+ return super.attach(address);
1906
+ }
1907
+ connect(signer) {
1908
+ return super.connect(signer);
1909
+ }
1910
+ static createInterface() {
1911
+ return new ethers_1.utils.Interface(_abi);
1912
+ }
1913
+ static connect(address, signerOrProvider) {
1914
+ return new ethers_1.Contract(address, _abi, signerOrProvider);
1915
+ }
1916
+ }
1917
+ exports.WalletRegistry__factory = WalletRegistry__factory;
1918
+ WalletRegistry__factory.bytecode = _bytecode;
1919
+ WalletRegistry__factory.abi = _abi;