@keep-network/tbtc-v2 0.1.1-dev.10 → 0.1.1-dev.102

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 (133) hide show
  1. package/README.adoc +12 -0
  2. package/artifacts/Bank.json +807 -0
  3. package/artifacts/Bridge.json +2300 -0
  4. package/artifacts/BridgeGovernance.json +2931 -0
  5. package/artifacts/BridgeGovernanceParameters.json +1445 -0
  6. package/artifacts/Deposit.json +117 -0
  7. package/artifacts/DepositSweep.json +77 -0
  8. package/artifacts/EcdsaDkgValidator.json +532 -0
  9. package/artifacts/EcdsaInactivity.json +156 -0
  10. package/artifacts/EcdsaSortitionPool.json +1004 -0
  11. package/artifacts/Fraud.json +164 -0
  12. package/artifacts/KeepRegistry.json +99 -0
  13. package/artifacts/KeepStake.json +286 -0
  14. package/artifacts/KeepToken.json +711 -0
  15. package/artifacts/KeepTokenStaking.json +483 -0
  16. package/artifacts/MaintainerProxy.json +1522 -0
  17. package/artifacts/MovingFunds.json +249 -0
  18. package/artifacts/NuCypherStakingEscrow.json +256 -0
  19. package/artifacts/NuCypherToken.json +711 -0
  20. package/artifacts/RandomBeaconStub.json +141 -0
  21. package/artifacts/Redemption.json +174 -0
  22. package/artifacts/ReimbursementPool.json +509 -0
  23. package/artifacts/Relay.json +123 -0
  24. package/artifacts/T.json +1148 -0
  25. package/artifacts/TBTC.json +27 -26
  26. package/artifacts/TBTCToken.json +27 -26
  27. package/artifacts/TBTCVault.json +691 -0
  28. package/artifacts/TokenStaking.json +2288 -0
  29. package/artifacts/TokenholderGovernor.json +1795 -0
  30. package/artifacts/TokenholderTimelock.json +1058 -0
  31. package/artifacts/VendingMachine.json +31 -30
  32. package/artifacts/VendingMachineKeep.json +400 -0
  33. package/artifacts/VendingMachineNuCypher.json +400 -0
  34. package/artifacts/WalletRegistry.json +1843 -0
  35. package/artifacts/WalletRegistryGovernance.json +2754 -0
  36. package/artifacts/Wallets.json +186 -0
  37. package/artifacts/solcInputs/f53bc10568b6d3c32d2989742aa1c456.json +323 -0
  38. package/build/contracts/GovernanceUtils.sol/GovernanceUtils.dbg.json +1 -1
  39. package/build/contracts/GovernanceUtils.sol/GovernanceUtils.json +2 -2
  40. package/build/contracts/bank/Bank.sol/Bank.dbg.json +1 -1
  41. package/build/contracts/bank/Bank.sol/Bank.json +10 -5
  42. package/build/contracts/bank/IReceiveBalanceApproval.sol/IReceiveBalanceApproval.dbg.json +4 -0
  43. package/build/contracts/bank/IReceiveBalanceApproval.sol/IReceiveBalanceApproval.json +34 -0
  44. package/build/contracts/bridge/BitcoinTx.sol/BitcoinTx.dbg.json +1 -1
  45. package/build/contracts/bridge/BitcoinTx.sol/BitcoinTx.json +2 -2
  46. package/build/contracts/bridge/Bridge.sol/Bridge.dbg.json +1 -1
  47. package/build/contracts/bridge/Bridge.sol/Bridge.json +2549 -198
  48. package/build/contracts/bridge/BridgeGovernance.sol/BridgeGovernance.dbg.json +4 -0
  49. package/build/contracts/bridge/BridgeGovernance.sol/BridgeGovernance.json +2246 -0
  50. package/build/contracts/bridge/BridgeGovernanceParameters.sol/BridgeGovernanceParameters.dbg.json +4 -0
  51. package/build/contracts/bridge/BridgeGovernanceParameters.sol/BridgeGovernanceParameters.json +971 -0
  52. package/build/contracts/bridge/BridgeState.sol/BridgeState.dbg.json +4 -0
  53. package/build/contracts/bridge/BridgeState.sol/BridgeState.json +226 -0
  54. package/build/contracts/bridge/Deposit.sol/Deposit.dbg.json +4 -0
  55. package/build/contracts/bridge/Deposit.sol/Deposit.json +72 -0
  56. package/build/contracts/bridge/DepositSweep.sol/DepositSweep.dbg.json +4 -0
  57. package/build/contracts/bridge/DepositSweep.sol/DepositSweep.json +30 -0
  58. package/build/contracts/bridge/EcdsaLib.sol/EcdsaLib.dbg.json +4 -0
  59. package/build/contracts/bridge/EcdsaLib.sol/EcdsaLib.json +10 -0
  60. package/build/contracts/bridge/Fraud.sol/Fraud.dbg.json +4 -0
  61. package/build/contracts/bridge/Fraud.sol/Fraud.json +86 -0
  62. package/build/contracts/bridge/Heartbeat.sol/Heartbeat.dbg.json +4 -0
  63. package/build/contracts/bridge/Heartbeat.sol/Heartbeat.json +10 -0
  64. package/build/contracts/bridge/IRelay.sol/IRelay.dbg.json +4 -0
  65. package/build/contracts/bridge/IRelay.sol/IRelay.json +37 -0
  66. package/build/contracts/bridge/MovingFunds.sol/MovingFunds.dbg.json +4 -0
  67. package/build/contracts/bridge/MovingFunds.sol/MovingFunds.json +138 -0
  68. package/build/contracts/bridge/Redemption.sol/OutboundTx.dbg.json +4 -0
  69. package/build/contracts/bridge/Redemption.sol/OutboundTx.json +10 -0
  70. package/build/contracts/bridge/Redemption.sol/Redemption.dbg.json +4 -0
  71. package/build/contracts/bridge/Redemption.sol/Redemption.json +92 -0
  72. package/build/contracts/bridge/VendingMachine.sol/VendingMachine.dbg.json +1 -1
  73. package/build/contracts/bridge/VendingMachine.sol/VendingMachine.json +2 -2
  74. package/build/contracts/bridge/Wallets.sol/Wallets.dbg.json +4 -0
  75. package/build/contracts/bridge/Wallets.sol/Wallets.json +112 -0
  76. package/build/contracts/maintainer/MaintainerProxy.sol/MaintainerProxy.dbg.json +4 -0
  77. package/build/contracts/maintainer/MaintainerProxy.sol/MaintainerProxy.json +1111 -0
  78. package/build/contracts/token/TBTC.sol/TBTC.dbg.json +1 -1
  79. package/build/contracts/token/TBTC.sol/TBTC.json +2 -2
  80. package/build/contracts/vault/DonationVault.sol/DonationVault.dbg.json +4 -0
  81. package/build/contracts/vault/DonationVault.sol/DonationVault.json +108 -0
  82. package/build/contracts/vault/IVault.sol/IVault.dbg.json +1 -1
  83. package/build/contracts/vault/IVault.sol/IVault.json +5 -0
  84. package/build/contracts/vault/TBTCVault.sol/TBTCVault.dbg.json +1 -1
  85. package/build/contracts/vault/TBTCVault.sol/TBTCVault.json +273 -5
  86. package/contracts/GovernanceUtils.sol +4 -4
  87. package/contracts/bank/Bank.sol +113 -66
  88. package/contracts/bank/IReceiveBalanceApproval.sol +45 -0
  89. package/contracts/bridge/BitcoinTx.sol +267 -10
  90. package/contracts/bridge/Bridge.sol +1698 -245
  91. package/contracts/bridge/BridgeGovernance.sol +1533 -0
  92. package/contracts/bridge/BridgeGovernanceParameters.sol +1695 -0
  93. package/contracts/bridge/BridgeState.sol +768 -0
  94. package/contracts/bridge/Deposit.sol +269 -0
  95. package/contracts/bridge/DepositSweep.sol +574 -0
  96. package/contracts/bridge/EcdsaLib.sol +45 -0
  97. package/contracts/bridge/Fraud.sol +579 -0
  98. package/contracts/bridge/Heartbeat.sol +112 -0
  99. package/contracts/bridge/IRelay.sol +28 -0
  100. package/contracts/bridge/MovingFunds.sol +1077 -0
  101. package/contracts/bridge/Redemption.sol +1058 -0
  102. package/contracts/bridge/VendingMachine.sol +2 -2
  103. package/contracts/bridge/Wallets.sol +719 -0
  104. package/contracts/hardhat-dependency-compiler/.hardhat-dependency-compiler +1 -0
  105. package/contracts/hardhat-dependency-compiler/@keep-network/ecdsa/contracts/WalletRegistry.sol +3 -0
  106. package/contracts/hardhat-dependency-compiler/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol +3 -0
  107. package/contracts/hardhat-dependency-compiler/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol +3 -0
  108. package/contracts/maintainer/MaintainerProxy.sol +512 -0
  109. package/contracts/token/TBTC.sol +1 -1
  110. package/contracts/vault/DonationVault.sol +125 -0
  111. package/contracts/vault/IVault.sol +6 -22
  112. package/contracts/vault/TBTCVault.sol +188 -29
  113. package/deploy/00_resolve_relay.ts +28 -0
  114. package/deploy/{03_transfer_roles.ts → 03_transfer_vending_machine_roles.ts} +1 -1
  115. package/deploy/04_deploy_bank.ts +27 -0
  116. package/deploy/05_deploy_bridge.ts +80 -0
  117. package/deploy/06_deploy_tbtc_vault.ts +30 -0
  118. package/deploy/07_deploy_bridge_governance.ts +40 -0
  119. package/deploy/08_deploy_maintainer_proxy.ts +30 -0
  120. package/deploy/09_bank_update_bridge.ts +19 -0
  121. package/deploy/10_transfer_bank_ownership.ts +15 -0
  122. package/deploy/11_transfer_bridge_governance.ts +22 -0
  123. package/deploy/12_transfer_bridge_governance_ownership.ts +19 -0
  124. package/deploy/13_transfer_tbtc_vault_ownership.ts +15 -0
  125. package/deploy/14_transfer_maintainer_proxy_ownership.ts +19 -0
  126. package/deploy/15_initialize_wallet_owner.ts +18 -0
  127. package/deploy/16_transfer_proxy_admin_ownership.ts +30 -0
  128. package/deploy/17_authorize_maintainer_proxy.ts +22 -0
  129. package/deploy/18_transfer_reimbursement_pool_ownership.ts +19 -0
  130. package/deploy/19_deploy_proxy_admin_with_deputy.ts +33 -0
  131. package/export.json +19544 -404
  132. package/package.json +34 -26
  133. package/artifacts/solcInputs/524094faac10a04084fcc411e06dab84.json +0 -128
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../build-info/f858e31993d81cc64384b34812cb47e9.json"
3
+ "buildInfo": "../../build-info/7d4c715d41b90f9992960e00fe51d4e8.json"
4
4
  }
@@ -3,8 +3,8 @@
3
3
  "contractName": "GovernanceUtils",
4
4
  "sourceName": "contracts/GovernanceUtils.sol",
5
5
  "abi": [],
6
- "bytecode": "0x60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200508e4ac33f9b16a4b0b5d3e0b4331fe3460bec133684812a5a410a07988436e64736f6c63430008040033",
7
- "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200508e4ac33f9b16a4b0b5d3e0b4331fe3460bec133684812a5a410a07988436e64736f6c63430008040033",
6
+ "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202011cd055a4eefe8f36d5865615c6b295eab4568514a98ceb205ccaed351599864736f6c63430008090033",
7
+ "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202011cd055a4eefe8f36d5865615c6b295eab4568514a98ceb205ccaed351599864736f6c63430008090033",
8
8
  "linkReferences": {},
9
9
  "deployedLinkReferences": {}
10
10
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/f858e31993d81cc64384b34812cb47e9.json"
3
+ "buildInfo": "../../../build-info/7d4c715d41b90f9992960e00fe51d4e8.json"
4
4
  }
@@ -200,13 +200,18 @@
200
200
  "inputs": [
201
201
  {
202
202
  "internalType": "address",
203
- "name": "vault",
203
+ "name": "spender",
204
204
  "type": "address"
205
205
  },
206
206
  {
207
207
  "internalType": "uint256",
208
208
  "name": "amount",
209
209
  "type": "uint256"
210
+ },
211
+ {
212
+ "internalType": "bytes",
213
+ "name": "extraData",
214
+ "type": "bytes"
210
215
  }
211
216
  ],
212
217
  "name": "approveBalanceAndCall",
@@ -348,12 +353,12 @@
348
353
  },
349
354
  {
350
355
  "internalType": "address[]",
351
- "name": "depositors",
356
+ "name": "recipients",
352
357
  "type": "address[]"
353
358
  },
354
359
  {
355
360
  "internalType": "uint256[]",
356
- "name": "depositedAmounts",
361
+ "name": "amounts",
357
362
  "type": "uint256[]"
358
363
  }
359
364
  ],
@@ -530,8 +535,8 @@
530
535
  "type": "function"
531
536
  }
532
537
  ],
533
- "bytecode": "0x60c06040523480156200001157600080fd5b5062000032620000266200005760201b60201c565b6200005f60201b60201c565b46608081815250506200004a6200012360201b60201c565b60a08181525050620002cb565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6040518060400160405280600981526020017f544254432042616e6b0000000000000000000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250805190602001204630604051602001620001d895949392919062000226565b60405160208183030381529060405280519060200120905090565b620001fe8162000283565b82525050565b6200020f8162000297565b82525050565b6200022081620002c1565b82525050565b600060a0820190506200023d600083018862000204565b6200024c602083018762000204565b6200025b604083018662000204565b6200026a606083018562000215565b620002796080830184620001f3565b9695505050505050565b60006200029082620002a1565b9050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60805160a051612aa9620002ff600039600081816107440152610ce901526000818161071c0152610b920152612aa96000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c806370a08231116100c3578063b4f94b2e1161007c578063b4f94b2e1461034c578063bb7e61bc1461036a578063d505accf14610386578063dd62ed3e146103a2578063e78cea92146103d2578063f2fde38b146103f05761014d565b806370a082311461028a57806370ae92d2146102ba578063715018a6146102ea578063771da5c5146102f45780637c6db49c146103125780638da5cb5b1461032e5761014d565b8063392aee4311610115578063392aee43146101e257806346b05e09146101fe57806356a6d9ef1461021a5780635b86f599146102365780635bfd99b9146102525780636eb382121461026e5761014d565b80630b6d324c1461015257806315b9b92a1461016e578063266a123a1461018a57806330adf81f146101a65780633644e515146101c4575b600080fd5b61016c60048036038101906101679190611c39565b61040c565b005b61018860048036038101906101839190611c39565b6104e2565b005b6101a4600480360381019061019f9190611c75565b61055e565b005b6101ae6106f4565b6040516101bb919061214b565b60405180910390f35b6101cc610718565b6040516101d9919061214b565b60405180910390f35b6101fc60048036038101906101f79190611cea565b610778565b005b61021860048036038101906102139190611c39565b61081f565b005b610234600480360381019061022f9190611c39565b61082e565b005b610250600480360381019061024b9190611c39565b61083d565b005b61026c60048036038101906102679190611c39565b6108db565b005b61028860048036038101906102839190611a5e565b610971565b005b6102a4600480360381019061029f9190611a5e565b610ad8565b6040516102b1919061245f565b60405180910390f35b6102d460048036038101906102cf9190611a5e565b610af0565b6040516102e1919061245f565b60405180910390f35b6102f2610b08565b005b6102fc610b90565b604051610309919061245f565b60405180910390f35b61032c60048036038101906103279190611ac3565b610bb4565b005b610336610cbe565b60405161034391906120cc565b60405180910390f35b610354610ce7565b604051610361919061214b565b60405180910390f35b610384600480360381019061037f9190611bb0565b610d0b565b005b6103a0600480360381019061039b9190611b12565b610ed6565b005b6103bc60048036038101906103b79190611a87565b6111ba565b6040516103c9919061245f565b60405180910390f35b6103da6111df565b6040516103e791906120cc565b60405180910390f35b61040a60048036038101906104059190611a5e565b611205565b005b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156104d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104c79061243f565b60405180910390fd5b6104dd33848484036112fd565b505050565b6104ed3383836112fd565b8173ffffffffffffffffffffffffffffffffffffffff16635379413733836040518363ffffffff1660e01b81526004016105289291906120e7565b600060405180830381600087803b15801561054257600080fd5b505af1158015610556573d6000803e3d6000fd5b505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e5906123ff565b60405180910390fd5b818190508484905014610636576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062d9061225f565b60405180910390fd5b60005b848490508110156106ed576106da858583818110610680577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906106959190611a5e565b8484848181106106ce577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020135611458565b80806106e5906125d2565b915050610639565b5050505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b60007f000000000000000000000000000000000000000000000000000000000000000046141561076a577f00000000000000000000000000000000000000000000000000000000000000009050610775565b61077261156f565b90505b90565b80600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107c7919061253c565b925050819055503373ffffffffffffffffffffffffffffffffffffffff167f9c6be7c4260e52ea2e41d7f17932147ab78756f1bb2247a2554796d969741aff82604051610814919061245f565b60405180910390a250565b61082a3383836112fd565b5050565b61083933838361163d565b5050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c4906123ff565b60405180910390fd5b6108d78282611458565b5050565b61096d338383600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461096891906124e6565b6112fd565b5050565b6109796118aa565b73ffffffffffffffffffffffffffffffffffffffff16610997610cbe565b73ffffffffffffffffffffffffffffffffffffffff16146109ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e49061235f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610a5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a549061237f565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fe1694c0b21fdceff6411daed547c7463c2341b9695387bc82595b5b9b1851d4a81604051610acd91906120cc565b60405180910390a150565b60026020528060005260406000206000915090505481565b60046020528060005260406000206000915090505481565b610b106118aa565b73ffffffffffffffffffffffffffffffffffffffff16610b2e610cbe565b73ffffffffffffffffffffffffffffffffffffffff1614610b84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7b9061235f565b60405180910390fd5b610b8e60006118b2565b565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610cad5781811015610c9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c969061229f565b60405180910390fd5b610cac84338484036112fd565b5b610cb884848461163d565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d92906123ff565b60405180910390fd5b818190508484905014610de3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dda9061225f565b60405180910390fd5b6000805b83839050811015610e5257838382818110610e2b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9050602002013582610e3d91906124e6565b91508080610e4a906125d2565b915050610de7565b50610e5d8682611458565b8573ffffffffffffffffffffffffffffffffffffffff1663461c6373868686866040518563ffffffff1660e01b8152600401610e9c9493929190612110565b600060405180830381600087803b158015610eb657600080fd5b505af1158015610eca573d6000803e3d6000fd5b50505050505050505050565b42841015610f19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f10906123bf565b60405180910390fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08160001c1115610f7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f76906123df565b60405180910390fd5b601b8360ff161480610f945750601c8360ff16145b610fd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fca906122bf565b60405180910390fd5b6000610fdd610718565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9898989600460008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190611051906125d2565b919050558a60405160200161106b96959493929190612166565b60405160208183030381529060405280519060200120604051602001611092929190612095565b6040516020818303038152906040528051906020012090506000600182868686604051600081526020016040526040516110cf949392919061221a565b6020604051602081039080840390855afa1580156110f1573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561116557508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6111a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119b906122ff565b60405180910390fd5b6111af8989896112fd565b505050505050505050565b6003602052816000526040600020602052806000526040600020600091509150505481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61120d6118aa565b73ffffffffffffffffffffffffffffffffffffffff1661122b610cbe565b73ffffffffffffffffffffffffffffffffffffffff1614611281576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112789061235f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156112f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e89061227f565b60405180910390fd5b6112fa816118b2565b50565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561136d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113649061231f565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f2fe5e8e7796010737e636f63b35a0383dc160b68483984f2df987c78e842b4058360405161144b919061245f565b60405180910390a3505050565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114be9061241f565b60405180910390fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461151691906124e6565b925050819055508173ffffffffffffffffffffffffffffffffffffffff167f7a702e80a9c183a6ce9d6732991df2e914555ba35a364a70aed2433984e7544b82604051611563919061245f565b60405180910390a25050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6040518060400160405280600981526020017f544254432042616e6b0000000000000000000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152508051906020012046306040516020016116229594939291906121c7565b60405160208183030381529060405280519060200120905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a49061239f565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561171c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611713906122df565b60405180910390fd5b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156117a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179a9061233f565b60405180910390fd5b818103600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461183891906124e6565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f4163d0b06696468b3d7903f482bcd0097bd38a9a9086157479fd6c6561d242618460405161189c919061245f565b60405180910390a350505050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008135905061198581612a17565b92915050565b60008083601f84011261199d57600080fd5b8235905067ffffffffffffffff8111156119b657600080fd5b6020830191508360208202830111156119ce57600080fd5b9250929050565b60008083601f8401126119e757600080fd5b8235905067ffffffffffffffff811115611a0057600080fd5b602083019150836020820283011115611a1857600080fd5b9250929050565b600081359050611a2e81612a2e565b92915050565b600081359050611a4381612a45565b92915050565b600081359050611a5881612a5c565b92915050565b600060208284031215611a7057600080fd5b6000611a7e84828501611976565b91505092915050565b60008060408385031215611a9a57600080fd5b6000611aa885828601611976565b9250506020611ab985828601611976565b9150509250929050565b600080600060608486031215611ad857600080fd5b6000611ae686828701611976565b9350506020611af786828701611976565b9250506040611b0886828701611a34565b9150509250925092565b600080600080600080600060e0888a031215611b2d57600080fd5b6000611b3b8a828b01611976565b9750506020611b4c8a828b01611976565b9650506040611b5d8a828b01611a34565b9550506060611b6e8a828b01611a34565b9450506080611b7f8a828b01611a49565b93505060a0611b908a828b01611a1f565b92505060c0611ba18a828b01611a1f565b91505092959891949750929550565b600080600080600060608688031215611bc857600080fd5b6000611bd688828901611976565b955050602086013567ffffffffffffffff811115611bf357600080fd5b611bff8882890161198b565b9450945050604086013567ffffffffffffffff811115611c1e57600080fd5b611c2a888289016119d5565b92509250509295509295909350565b60008060408385031215611c4c57600080fd5b6000611c5a85828601611976565b9250506020611c6b85828601611a34565b9150509250929050565b60008060008060408587031215611c8b57600080fd5b600085013567ffffffffffffffff811115611ca557600080fd5b611cb18782880161198b565b9450945050602085013567ffffffffffffffff811115611cd057600080fd5b611cdc878288016119d5565b925092505092959194509250565b600060208284031215611cfc57600080fd5b6000611d0a84828501611a34565b91505092915050565b6000611d1f8383611d2b565b60208301905092915050565b611d3481612570565b82525050565b611d4381612570565b82525050565b6000611d558385612491565b9350611d608261247a565b8060005b85811015611d9957611d7682846124cf565b611d808882611d13565b9750611d8b83612484565b925050600181019050611d64565b5085925050509392505050565b6000611db283856124a2565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115611de157600080fd5b602083029250611df28385846125c3565b82840190509392505050565b611e0781612582565b82525050565b611e1e611e1982612582565b61261b565b82525050565b6000611e316020836124b3565b9150611e3c82612654565b602082019050919050565b6000611e546026836124b3565b9150611e5f8261267d565b604082019050919050565b6000611e776021836124b3565b9150611e82826126cc565b604082019050919050565b6000611e9a6002836124c4565b9150611ea58261271b565b600282019050919050565b6000611ebd601b836124b3565b9150611ec882612744565b602082019050919050565b6000611ee06024836124b3565b9150611eeb8261276d565b604082019050919050565b6000611f036011836124b3565b9150611f0e826127bc565b602082019050919050565b6000611f266023836124b3565b9150611f31826127e5565b604082019050919050565b6000611f49601f836124b3565b9150611f5482612834565b602082019050919050565b6000611f6c6020836124b3565b9150611f778261285d565b602082019050919050565b6000611f8f601e836124b3565b9150611f9a82612886565b602082019050919050565b6000611fb26024836124b3565b9150611fbd826128af565b604082019050919050565b6000611fd56012836124b3565b9150611fe0826128fe565b602082019050919050565b6000611ff8601b836124b3565b915061200382612927565b602082019050919050565b600061201b6018836124b3565b915061202682612950565b602082019050919050565b600061203e6021836124b3565b915061204982612979565b604082019050919050565b6000612061602d836124b3565b915061206c826129c8565b604082019050919050565b612080816125ac565b82525050565b61208f816125b6565b82525050565b60006120a082611e8d565b91506120ac8285611e0d565b6020820191506120bc8284611e0d565b6020820191508190509392505050565b60006020820190506120e16000830184611d3a565b92915050565b60006040820190506120fc6000830185611d3a565b6121096020830184612077565b9392505050565b6000604082019050818103600083015261212b818688611d49565b90508181036020830152612140818486611da6565b905095945050505050565b60006020820190506121606000830184611dfe565b92915050565b600060c08201905061217b6000830189611dfe565b6121886020830188611d3a565b6121956040830187611d3a565b6121a26060830186612077565b6121af6080830185612077565b6121bc60a0830184612077565b979650505050505050565b600060a0820190506121dc6000830188611dfe565b6121e96020830187611dfe565b6121f66040830186611dfe565b6122036060830185612077565b6122106080830184611d3a565b9695505050505050565b600060808201905061222f6000830187611dfe565b61223c6020830186612086565b6122496040830185611dfe565b6122566060830184611dfe565b95945050505050565b6000602082019050818103600083015261227881611e24565b9050919050565b6000602082019050818103600083015261229881611e47565b9050919050565b600060208201905081810360008301526122b881611e6a565b9050919050565b600060208201905081810360008301526122d881611eb0565b9050919050565b600060208201905081810360008301526122f881611ed3565b9050919050565b6000602082019050818103600083015261231881611ef6565b9050919050565b6000602082019050818103600083015261233881611f19565b9050919050565b6000602082019050818103600083015261235881611f3c565b9050919050565b6000602082019050818103600083015261237881611f5f565b9050919050565b6000602082019050818103600083015261239881611f82565b9050919050565b600060208201905081810360008301526123b881611fa5565b9050919050565b600060208201905081810360008301526123d881611fc8565b9050919050565b600060208201905081810360008301526123f881611feb565b9050919050565b600060208201905081810360008301526124188161200e565b9050919050565b6000602082019050818103600083015261243881612031565b9050919050565b6000602082019050818103600083015261245881612054565b9050919050565b60006020820190506124746000830184612077565b92915050565b6000819050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b60006124de6020840184611976565b905092915050565b60006124f1826125ac565b91506124fc836125ac565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561253157612530612625565b5b828201905092915050565b6000612547826125ac565b9150612552836125ac565b92508282101561256557612564612625565b5b828203905092915050565b600061257b8261258c565b9050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60006125dd826125ac565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156126105761260f612625565b5b600182019050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f417272617973206d7573742068617665207468652073616d65206c656e677468600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f5472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6360008201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b7f496e76616c6964207369676e6174757265202776272076616c75650000000000600082015250565b7f43616e206e6f74207472616e7366657220746f207468652042616e6b2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f496e76616c6964207369676e6174757265000000000000000000000000000000600082015250565b7f43616e206e6f7420617070726f766520746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f5472616e7366657220616d6f756e7420657863656564732062616c616e636500600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4272696467652061646472657373206d757374206e6f74206265203078300000600082015250565b7f43616e206e6f74207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f5065726d697373696f6e20657870697265640000000000000000000000000000600082015250565b7f496e76616c6964207369676e6174757265202773272076616c75650000000000600082015250565b7f43616c6c6572206973206e6f7420746865206272696467650000000000000000600082015250565b7f43616e206e6f7420696e6372656173652062616c616e636520666f722042616e60008201527f6b00000000000000000000000000000000000000000000000000000000000000602082015250565b7f43616e206e6f742064656372656173652062616c616e636520616c6c6f77616e60008201527f63652062656c6f77207a65726f00000000000000000000000000000000000000602082015250565b612a2081612570565b8114612a2b57600080fd5b50565b612a3781612582565b8114612a4257600080fd5b50565b612a4e816125ac565b8114612a5957600080fd5b50565b612a65816125b6565b8114612a7057600080fd5b5056fea2646970667358221220fb87ba15a08b4b0c937f997b7026d7b5a458ab77a4309ec9234241afa16256e164736f6c63430008040033",
534
- "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061014d5760003560e01c806370a08231116100c3578063b4f94b2e1161007c578063b4f94b2e1461034c578063bb7e61bc1461036a578063d505accf14610386578063dd62ed3e146103a2578063e78cea92146103d2578063f2fde38b146103f05761014d565b806370a082311461028a57806370ae92d2146102ba578063715018a6146102ea578063771da5c5146102f45780637c6db49c146103125780638da5cb5b1461032e5761014d565b8063392aee4311610115578063392aee43146101e257806346b05e09146101fe57806356a6d9ef1461021a5780635b86f599146102365780635bfd99b9146102525780636eb382121461026e5761014d565b80630b6d324c1461015257806315b9b92a1461016e578063266a123a1461018a57806330adf81f146101a65780633644e515146101c4575b600080fd5b61016c60048036038101906101679190611c39565b61040c565b005b61018860048036038101906101839190611c39565b6104e2565b005b6101a4600480360381019061019f9190611c75565b61055e565b005b6101ae6106f4565b6040516101bb919061214b565b60405180910390f35b6101cc610718565b6040516101d9919061214b565b60405180910390f35b6101fc60048036038101906101f79190611cea565b610778565b005b61021860048036038101906102139190611c39565b61081f565b005b610234600480360381019061022f9190611c39565b61082e565b005b610250600480360381019061024b9190611c39565b61083d565b005b61026c60048036038101906102679190611c39565b6108db565b005b61028860048036038101906102839190611a5e565b610971565b005b6102a4600480360381019061029f9190611a5e565b610ad8565b6040516102b1919061245f565b60405180910390f35b6102d460048036038101906102cf9190611a5e565b610af0565b6040516102e1919061245f565b60405180910390f35b6102f2610b08565b005b6102fc610b90565b604051610309919061245f565b60405180910390f35b61032c60048036038101906103279190611ac3565b610bb4565b005b610336610cbe565b60405161034391906120cc565b60405180910390f35b610354610ce7565b604051610361919061214b565b60405180910390f35b610384600480360381019061037f9190611bb0565b610d0b565b005b6103a0600480360381019061039b9190611b12565b610ed6565b005b6103bc60048036038101906103b79190611a87565b6111ba565b6040516103c9919061245f565b60405180910390f35b6103da6111df565b6040516103e791906120cc565b60405180910390f35b61040a60048036038101906104059190611a5e565b611205565b005b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156104d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104c79061243f565b60405180910390fd5b6104dd33848484036112fd565b505050565b6104ed3383836112fd565b8173ffffffffffffffffffffffffffffffffffffffff16635379413733836040518363ffffffff1660e01b81526004016105289291906120e7565b600060405180830381600087803b15801561054257600080fd5b505af1158015610556573d6000803e3d6000fd5b505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e5906123ff565b60405180910390fd5b818190508484905014610636576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062d9061225f565b60405180910390fd5b60005b848490508110156106ed576106da858583818110610680577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906106959190611a5e565b8484848181106106ce577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020135611458565b80806106e5906125d2565b915050610639565b5050505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b60007f000000000000000000000000000000000000000000000000000000000000000046141561076a577f00000000000000000000000000000000000000000000000000000000000000009050610775565b61077261156f565b90505b90565b80600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107c7919061253c565b925050819055503373ffffffffffffffffffffffffffffffffffffffff167f9c6be7c4260e52ea2e41d7f17932147ab78756f1bb2247a2554796d969741aff82604051610814919061245f565b60405180910390a250565b61082a3383836112fd565b5050565b61083933838361163d565b5050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c4906123ff565b60405180910390fd5b6108d78282611458565b5050565b61096d338383600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461096891906124e6565b6112fd565b5050565b6109796118aa565b73ffffffffffffffffffffffffffffffffffffffff16610997610cbe565b73ffffffffffffffffffffffffffffffffffffffff16146109ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e49061235f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610a5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a549061237f565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fe1694c0b21fdceff6411daed547c7463c2341b9695387bc82595b5b9b1851d4a81604051610acd91906120cc565b60405180910390a150565b60026020528060005260406000206000915090505481565b60046020528060005260406000206000915090505481565b610b106118aa565b73ffffffffffffffffffffffffffffffffffffffff16610b2e610cbe565b73ffffffffffffffffffffffffffffffffffffffff1614610b84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7b9061235f565b60405180910390fd5b610b8e60006118b2565b565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610cad5781811015610c9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c969061229f565b60405180910390fd5b610cac84338484036112fd565b5b610cb884848461163d565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d92906123ff565b60405180910390fd5b818190508484905014610de3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dda9061225f565b60405180910390fd5b6000805b83839050811015610e5257838382818110610e2b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9050602002013582610e3d91906124e6565b91508080610e4a906125d2565b915050610de7565b50610e5d8682611458565b8573ffffffffffffffffffffffffffffffffffffffff1663461c6373868686866040518563ffffffff1660e01b8152600401610e9c9493929190612110565b600060405180830381600087803b158015610eb657600080fd5b505af1158015610eca573d6000803e3d6000fd5b50505050505050505050565b42841015610f19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f10906123bf565b60405180910390fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08160001c1115610f7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f76906123df565b60405180910390fd5b601b8360ff161480610f945750601c8360ff16145b610fd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fca906122bf565b60405180910390fd5b6000610fdd610718565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9898989600460008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190611051906125d2565b919050558a60405160200161106b96959493929190612166565b60405160208183030381529060405280519060200120604051602001611092929190612095565b6040516020818303038152906040528051906020012090506000600182868686604051600081526020016040526040516110cf949392919061221a565b6020604051602081039080840390855afa1580156110f1573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561116557508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6111a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119b906122ff565b60405180910390fd5b6111af8989896112fd565b505050505050505050565b6003602052816000526040600020602052806000526040600020600091509150505481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61120d6118aa565b73ffffffffffffffffffffffffffffffffffffffff1661122b610cbe565b73ffffffffffffffffffffffffffffffffffffffff1614611281576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112789061235f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156112f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e89061227f565b60405180910390fd5b6112fa816118b2565b50565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561136d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113649061231f565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f2fe5e8e7796010737e636f63b35a0383dc160b68483984f2df987c78e842b4058360405161144b919061245f565b60405180910390a3505050565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114be9061241f565b60405180910390fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461151691906124e6565b925050819055508173ffffffffffffffffffffffffffffffffffffffff167f7a702e80a9c183a6ce9d6732991df2e914555ba35a364a70aed2433984e7544b82604051611563919061245f565b60405180910390a25050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6040518060400160405280600981526020017f544254432042616e6b0000000000000000000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152508051906020012046306040516020016116229594939291906121c7565b60405160208183030381529060405280519060200120905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a49061239f565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561171c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611713906122df565b60405180910390fd5b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156117a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179a9061233f565b60405180910390fd5b818103600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461183891906124e6565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f4163d0b06696468b3d7903f482bcd0097bd38a9a9086157479fd6c6561d242618460405161189c919061245f565b60405180910390a350505050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008135905061198581612a17565b92915050565b60008083601f84011261199d57600080fd5b8235905067ffffffffffffffff8111156119b657600080fd5b6020830191508360208202830111156119ce57600080fd5b9250929050565b60008083601f8401126119e757600080fd5b8235905067ffffffffffffffff811115611a0057600080fd5b602083019150836020820283011115611a1857600080fd5b9250929050565b600081359050611a2e81612a2e565b92915050565b600081359050611a4381612a45565b92915050565b600081359050611a5881612a5c565b92915050565b600060208284031215611a7057600080fd5b6000611a7e84828501611976565b91505092915050565b60008060408385031215611a9a57600080fd5b6000611aa885828601611976565b9250506020611ab985828601611976565b9150509250929050565b600080600060608486031215611ad857600080fd5b6000611ae686828701611976565b9350506020611af786828701611976565b9250506040611b0886828701611a34565b9150509250925092565b600080600080600080600060e0888a031215611b2d57600080fd5b6000611b3b8a828b01611976565b9750506020611b4c8a828b01611976565b9650506040611b5d8a828b01611a34565b9550506060611b6e8a828b01611a34565b9450506080611b7f8a828b01611a49565b93505060a0611b908a828b01611a1f565b92505060c0611ba18a828b01611a1f565b91505092959891949750929550565b600080600080600060608688031215611bc857600080fd5b6000611bd688828901611976565b955050602086013567ffffffffffffffff811115611bf357600080fd5b611bff8882890161198b565b9450945050604086013567ffffffffffffffff811115611c1e57600080fd5b611c2a888289016119d5565b92509250509295509295909350565b60008060408385031215611c4c57600080fd5b6000611c5a85828601611976565b9250506020611c6b85828601611a34565b9150509250929050565b60008060008060408587031215611c8b57600080fd5b600085013567ffffffffffffffff811115611ca557600080fd5b611cb18782880161198b565b9450945050602085013567ffffffffffffffff811115611cd057600080fd5b611cdc878288016119d5565b925092505092959194509250565b600060208284031215611cfc57600080fd5b6000611d0a84828501611a34565b91505092915050565b6000611d1f8383611d2b565b60208301905092915050565b611d3481612570565b82525050565b611d4381612570565b82525050565b6000611d558385612491565b9350611d608261247a565b8060005b85811015611d9957611d7682846124cf565b611d808882611d13565b9750611d8b83612484565b925050600181019050611d64565b5085925050509392505050565b6000611db283856124a2565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115611de157600080fd5b602083029250611df28385846125c3565b82840190509392505050565b611e0781612582565b82525050565b611e1e611e1982612582565b61261b565b82525050565b6000611e316020836124b3565b9150611e3c82612654565b602082019050919050565b6000611e546026836124b3565b9150611e5f8261267d565b604082019050919050565b6000611e776021836124b3565b9150611e82826126cc565b604082019050919050565b6000611e9a6002836124c4565b9150611ea58261271b565b600282019050919050565b6000611ebd601b836124b3565b9150611ec882612744565b602082019050919050565b6000611ee06024836124b3565b9150611eeb8261276d565b604082019050919050565b6000611f036011836124b3565b9150611f0e826127bc565b602082019050919050565b6000611f266023836124b3565b9150611f31826127e5565b604082019050919050565b6000611f49601f836124b3565b9150611f5482612834565b602082019050919050565b6000611f6c6020836124b3565b9150611f778261285d565b602082019050919050565b6000611f8f601e836124b3565b9150611f9a82612886565b602082019050919050565b6000611fb26024836124b3565b9150611fbd826128af565b604082019050919050565b6000611fd56012836124b3565b9150611fe0826128fe565b602082019050919050565b6000611ff8601b836124b3565b915061200382612927565b602082019050919050565b600061201b6018836124b3565b915061202682612950565b602082019050919050565b600061203e6021836124b3565b915061204982612979565b604082019050919050565b6000612061602d836124b3565b915061206c826129c8565b604082019050919050565b612080816125ac565b82525050565b61208f816125b6565b82525050565b60006120a082611e8d565b91506120ac8285611e0d565b6020820191506120bc8284611e0d565b6020820191508190509392505050565b60006020820190506120e16000830184611d3a565b92915050565b60006040820190506120fc6000830185611d3a565b6121096020830184612077565b9392505050565b6000604082019050818103600083015261212b818688611d49565b90508181036020830152612140818486611da6565b905095945050505050565b60006020820190506121606000830184611dfe565b92915050565b600060c08201905061217b6000830189611dfe565b6121886020830188611d3a565b6121956040830187611d3a565b6121a26060830186612077565b6121af6080830185612077565b6121bc60a0830184612077565b979650505050505050565b600060a0820190506121dc6000830188611dfe565b6121e96020830187611dfe565b6121f66040830186611dfe565b6122036060830185612077565b6122106080830184611d3a565b9695505050505050565b600060808201905061222f6000830187611dfe565b61223c6020830186612086565b6122496040830185611dfe565b6122566060830184611dfe565b95945050505050565b6000602082019050818103600083015261227881611e24565b9050919050565b6000602082019050818103600083015261229881611e47565b9050919050565b600060208201905081810360008301526122b881611e6a565b9050919050565b600060208201905081810360008301526122d881611eb0565b9050919050565b600060208201905081810360008301526122f881611ed3565b9050919050565b6000602082019050818103600083015261231881611ef6565b9050919050565b6000602082019050818103600083015261233881611f19565b9050919050565b6000602082019050818103600083015261235881611f3c565b9050919050565b6000602082019050818103600083015261237881611f5f565b9050919050565b6000602082019050818103600083015261239881611f82565b9050919050565b600060208201905081810360008301526123b881611fa5565b9050919050565b600060208201905081810360008301526123d881611fc8565b9050919050565b600060208201905081810360008301526123f881611feb565b9050919050565b600060208201905081810360008301526124188161200e565b9050919050565b6000602082019050818103600083015261243881612031565b9050919050565b6000602082019050818103600083015261245881612054565b9050919050565b60006020820190506124746000830184612077565b92915050565b6000819050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b60006124de6020840184611976565b905092915050565b60006124f1826125ac565b91506124fc836125ac565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561253157612530612625565b5b828201905092915050565b6000612547826125ac565b9150612552836125ac565b92508282101561256557612564612625565b5b828203905092915050565b600061257b8261258c565b9050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60006125dd826125ac565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156126105761260f612625565b5b600182019050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f417272617973206d7573742068617665207468652073616d65206c656e677468600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f5472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6360008201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b7f496e76616c6964207369676e6174757265202776272076616c75650000000000600082015250565b7f43616e206e6f74207472616e7366657220746f207468652042616e6b2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f496e76616c6964207369676e6174757265000000000000000000000000000000600082015250565b7f43616e206e6f7420617070726f766520746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f5472616e7366657220616d6f756e7420657863656564732062616c616e636500600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4272696467652061646472657373206d757374206e6f74206265203078300000600082015250565b7f43616e206e6f74207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f5065726d697373696f6e20657870697265640000000000000000000000000000600082015250565b7f496e76616c6964207369676e6174757265202773272076616c75650000000000600082015250565b7f43616c6c6572206973206e6f7420746865206272696467650000000000000000600082015250565b7f43616e206e6f7420696e6372656173652062616c616e636520666f722042616e60008201527f6b00000000000000000000000000000000000000000000000000000000000000602082015250565b7f43616e206e6f742064656372656173652062616c616e636520616c6c6f77616e60008201527f63652062656c6f77207a65726f00000000000000000000000000000000000000602082015250565b612a2081612570565b8114612a2b57600080fd5b50565b612a3781612582565b8114612a4257600080fd5b50565b612a4e816125ac565b8114612a5957600080fd5b50565b612a65816125b6565b8114612a7057600080fd5b5056fea2646970667358221220fb87ba15a08b4b0c937f997b7026d7b5a458ab77a4309ec9234241afa16256e164736f6c63430008040033",
538
+ "bytecode": "0x60c060405234801561001057600080fd5b5061001a336100f9565b466080526100f16040805180820182526009815268544254432042616e6b60b81b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527fa1cc9cffb2f2444066e5c95caef7925ee7ef97efc6002db29d3637e98e2f0dd2818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a0808301919091528351808303909101815260c0909101909252815191012090565b60a052610149565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60805160a0516118bf61017c6000396000818161032d01526105b90152600081816102ce015261059001526118bf6000f3fe608060405234801561001057600080fd5b506004361061018d5760003560e01c806370a08231116100e3578063b4f94b2e1161008c578063dd62ed3e11610066578063dd62ed3e14610375578063e78cea92146103a0578063f2fde38b146103b357600080fd5b8063b4f94b2e14610328578063bb7e61bc1461034f578063d505accf1461036257600080fd5b8063771da5c5116100bd578063771da5c5146102c95780637c6db49c146102f05780638da5cb5b1461030357600080fd5b806370a082311461028157806370ae92d2146102a1578063715018a6146102c157600080fd5b806346b05e09116101455780635b86f5991161011f5780635b86f599146102485780635bfd99b91461025b5780636eb382121461026e57600080fd5b806346b05e091461020f5780634a38757e1461022257806356a6d9ef1461023557600080fd5b806330adf81f1161017657806330adf81f146101ba5780633644e515146101f4578063392aee43146101fc57600080fd5b80630b6d324c14610192578063266a123a146101a7575b600080fd5b6101a56101a036600461142b565b6103c6565b005b6101a56101b53660046114a1565b610477565b6101e17f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b6040519081526020015b60405180910390f35b6101e161058c565b6101a561020a36600461150d565b6106dc565b6101a561021d36600461142b565b610738565b6101a5610230366004611526565b610747565b6101a561024336600461142b565b6107d5565b6101a561025636600461142b565b6107e0565b6101a561026936600461142b565b610844565b6101a561027c3660046115ad565b61087f565b6101e161028f3660046115ad565b60026020526000908152604090205481565b6101e16102af3660046115ad565b60046020526000908152604090205481565b6101a5610990565b6101e17f000000000000000000000000000000000000000000000000000000000000000081565b6101a56102fe3660046115cf565b6109f6565b6000546001600160a01b03165b6040516001600160a01b0390911681526020016101eb565b6101e17f000000000000000000000000000000000000000000000000000000000000000081565b6101a561035d36600461160b565b610ab7565b6101a561037036600461168c565b610c34565b6101e16103833660046116ff565b600360209081526000928352604080842090915290825290205481565b600154610310906001600160a01b031681565b6101a56103c13660046115ad565b610f44565b3360009081526003602090815260408083206001600160a01b0386168452909152902054818110156104655760405162461bcd60e51b815260206004820152602d60248201527f43616e206e6f742064656372656173652062616c616e636520616c6c6f77616e60448201527f63652062656c6f77207a65726f0000000000000000000000000000000000000060648201526084015b60405180910390fd5b6104723384848403611026565b505050565b6001546001600160a01b031633146104d15760405162461bcd60e51b815260206004820152601860248201527f43616c6c6572206973206e6f7420746865206272696467650000000000000000604482015260640161045c565b8281146105205760405162461bcd60e51b815260206004820181905260248201527f417272617973206d7573742068617665207468652073616d65206c656e677468604482015260640161045c565b60005b838110156105855761057385858381811061054057610540611732565b905060200201602081019061055591906115ad565b84848481811061056757610567611732565b90506020020135611103565b8061057d8161175e565b915050610523565b5050505050565b60007f00000000000000000000000000000000000000000000000000000000000000004614156105db57507f000000000000000000000000000000000000000000000000000000000000000090565b50604080518082018252600981527f544254432042616e6b000000000000000000000000000000000000000000000060209182015281518083018352600181527f31000000000000000000000000000000000000000000000000000000000000009082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527fa1cc9cffb2f2444066e5c95caef7925ee7ef97efc6002db29d3637e98e2f0dd2818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a0808301919091528351808303909101815260c0909101909252815191012090565b33600090815260026020526040812080548392906106fb908490611779565b909155505060405181815233907f9c6be7c4260e52ea2e41d7f17932147ab78756f1bb2247a2554796d969741aff9060200160405180910390a250565b610743338383611026565b5050565b610752338585611026565b6040517f475d05700000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063475d05709061079d903390879087908790600401611790565b600060405180830381600087803b1580156107b757600080fd5b505af11580156107cb573d6000803e3d6000fd5b5050505050505050565b6107433383836111f1565b6001546001600160a01b0316331461083a5760405162461bcd60e51b815260206004820152601860248201527f43616c6c6572206973206e6f7420746865206272696467650000000000000000604482015260640161045c565b6107438282611103565b3360008181526003602090815260408083206001600160a01b03871684529091529020546107439190849061087a9085906117d6565b611026565b6000546001600160a01b031633146108d95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161045c565b6001600160a01b03811661092f5760405162461bcd60e51b815260206004820152601e60248201527f4272696467652061646472657373206d757374206e6f74206265203078300000604482015260640161045c565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527fe1694c0b21fdceff6411daed547c7463c2341b9695387bc82595b5b9b1851d4a9060200160405180910390a150565b6000546001600160a01b031633146109ea5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161045c565b6109f460006113b2565b565b6001600160a01b03831660009081526003602090815260408083203384529091529020546000198114610aa65781811015610a995760405162461bcd60e51b815260206004820152602160248201527f5472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6360448201527f6500000000000000000000000000000000000000000000000000000000000000606482015260840161045c565b610aa68433848403611026565b610ab18484846111f1565b50505050565b6001546001600160a01b03163314610b115760405162461bcd60e51b815260206004820152601860248201527f43616c6c6572206973206e6f7420746865206272696467650000000000000000604482015260640161045c565b828114610b605760405162461bcd60e51b815260206004820181905260248201527f417272617973206d7573742068617665207468652073616d65206c656e677468604482015260640161045c565b6000805b82811015610ba457838382818110610b7e57610b7e611732565b9050602002013582610b9091906117d6565b915080610b9c8161175e565b915050610b64565b50610baf8682611103565b6040517f461c63730000000000000000000000000000000000000000000000000000000081526001600160a01b0387169063461c637390610bfa9088908890889088906004016117ee565b600060405180830381600087803b158015610c1457600080fd5b505af1158015610c28573d6000803e3d6000fd5b50505050505050505050565b42841015610c845760405162461bcd60e51b815260206004820152601260248201527f5065726d697373696f6e20657870697265640000000000000000000000000000604482015260640161045c565b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0811115610cf45760405162461bcd60e51b815260206004820152601b60248201527f496e76616c6964207369676e6174757265202773272076616c75650000000000604482015260640161045c565b8260ff16601b1480610d0957508260ff16601c145b610d555760405162461bcd60e51b815260206004820152601b60248201527f496e76616c6964207369676e6174757265202776272076616c75650000000000604482015260640161045c565b6000610d5f61058c565b6001600160a01b038916600090815260046020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928c928c928c92909190610dad8361175e565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810187905260e00160405160208183030381529060405280519060200120604051602001610e419291907f190100000000000000000000000000000000000000000000000000000000000081526002810192909252602282015260420190565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa158015610eac573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811615801590610ee25750886001600160a01b0316816001600160a01b0316145b610f2e5760405162461bcd60e51b815260206004820152601160248201527f496e76616c6964207369676e6174757265000000000000000000000000000000604482015260640161045c565b610f39898989611026565b505050505050505050565b6000546001600160a01b03163314610f9e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161045c565b6001600160a01b03811661101a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161045c565b611023816113b2565b50565b6001600160a01b0382166110a25760405162461bcd60e51b815260206004820152602360248201527f43616e206e6f7420617070726f766520746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161045c565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f2fe5e8e7796010737e636f63b35a0383dc160b68483984f2df987c78e842b405910160405180910390a3505050565b6001600160a01b0382163014156111825760405162461bcd60e51b815260206004820152602160248201527f43616e206e6f7420696e6372656173652062616c616e636520666f722042616e60448201527f6b00000000000000000000000000000000000000000000000000000000000000606482015260840161045c565b6001600160a01b038216600090815260026020526040812080548392906111aa9084906117d6565b90915550506040518181526001600160a01b038316907f7a702e80a9c183a6ce9d6732991df2e914555ba35a364a70aed2433984e7544b9060200160405180910390a25050565b6001600160a01b0382166112535760405162461bcd60e51b8152602060048201526024808201527f43616e206e6f74207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161045c565b6001600160a01b0382163014156112b85760405162461bcd60e51b8152602060048201526024808201527f43616e206e6f74207472616e7366657220746f207468652042616e6b206164646044820152637265737360e01b606482015260840161045c565b6001600160a01b038316600090815260026020526040902054818110156113215760405162461bcd60e51b815260206004820152601f60248201527f5472616e7366657220616d6f756e7420657863656564732062616c616e636500604482015260640161045c565b6001600160a01b038085166000908152600260205260408082208585039055918516815290812080548492906113589084906117d6565b92505081905550826001600160a01b0316846001600160a01b03167f4163d0b06696468b3d7903f482bcd0097bd38a9a9086157479fd6c6561d24261846040516113a491815260200190565b60405180910390a350505050565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b038116811461142657600080fd5b919050565b6000806040838503121561143e57600080fd5b6114478361140f565b946020939093013593505050565b60008083601f84011261146757600080fd5b50813567ffffffffffffffff81111561147f57600080fd5b6020830191508360208260051b850101111561149a57600080fd5b9250929050565b600080600080604085870312156114b757600080fd5b843567ffffffffffffffff808211156114cf57600080fd5b6114db88838901611455565b909650945060208701359150808211156114f457600080fd5b5061150187828801611455565b95989497509550505050565b60006020828403121561151f57600080fd5b5035919050565b6000806000806060858703121561153c57600080fd5b6115458561140f565b935060208501359250604085013567ffffffffffffffff8082111561156957600080fd5b818701915087601f83011261157d57600080fd5b81358181111561158c57600080fd5b88602082850101111561159e57600080fd5b95989497505060200194505050565b6000602082840312156115bf57600080fd5b6115c88261140f565b9392505050565b6000806000606084860312156115e457600080fd5b6115ed8461140f565b92506115fb6020850161140f565b9150604084013590509250925092565b60008060008060006060868803121561162357600080fd5b61162c8661140f565b9450602086013567ffffffffffffffff8082111561164957600080fd5b61165589838a01611455565b9096509450604088013591508082111561166e57600080fd5b5061167b88828901611455565b969995985093965092949392505050565b600080600080600080600060e0888a0312156116a757600080fd5b6116b08861140f565b96506116be6020890161140f565b95506040880135945060608801359350608088013560ff811681146116e257600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561171257600080fd5b61171b8361140f565b91506117296020840161140f565b90509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060001982141561177257611772611748565b5060010190565b60008282101561178b5761178b611748565b500390565b6001600160a01b038516815283602082015260606040820152816060820152818360808301376000818301608090810191909152601f909201601f191601019392505050565b600082198211156117e9576117e9611748565b500190565b6040808252810184905260008560608301825b8781101561182f576001600160a01b0361181a8461140f565b16825260209283019290910190600101611801565b5083810360208501528481527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85111561186857600080fd5b8460051b91508186602083013760009101602001908152969550505050505056fea264697066735822122073c4472895358b2938892bf5f89f9928607594b2bd51aada78b5cdf9216fe04864736f6c63430008090033",
539
+ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061018d5760003560e01c806370a08231116100e3578063b4f94b2e1161008c578063dd62ed3e11610066578063dd62ed3e14610375578063e78cea92146103a0578063f2fde38b146103b357600080fd5b8063b4f94b2e14610328578063bb7e61bc1461034f578063d505accf1461036257600080fd5b8063771da5c5116100bd578063771da5c5146102c95780637c6db49c146102f05780638da5cb5b1461030357600080fd5b806370a082311461028157806370ae92d2146102a1578063715018a6146102c157600080fd5b806346b05e09116101455780635b86f5991161011f5780635b86f599146102485780635bfd99b91461025b5780636eb382121461026e57600080fd5b806346b05e091461020f5780634a38757e1461022257806356a6d9ef1461023557600080fd5b806330adf81f1161017657806330adf81f146101ba5780633644e515146101f4578063392aee43146101fc57600080fd5b80630b6d324c14610192578063266a123a146101a7575b600080fd5b6101a56101a036600461142b565b6103c6565b005b6101a56101b53660046114a1565b610477565b6101e17f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b6040519081526020015b60405180910390f35b6101e161058c565b6101a561020a36600461150d565b6106dc565b6101a561021d36600461142b565b610738565b6101a5610230366004611526565b610747565b6101a561024336600461142b565b6107d5565b6101a561025636600461142b565b6107e0565b6101a561026936600461142b565b610844565b6101a561027c3660046115ad565b61087f565b6101e161028f3660046115ad565b60026020526000908152604090205481565b6101e16102af3660046115ad565b60046020526000908152604090205481565b6101a5610990565b6101e17f000000000000000000000000000000000000000000000000000000000000000081565b6101a56102fe3660046115cf565b6109f6565b6000546001600160a01b03165b6040516001600160a01b0390911681526020016101eb565b6101e17f000000000000000000000000000000000000000000000000000000000000000081565b6101a561035d36600461160b565b610ab7565b6101a561037036600461168c565b610c34565b6101e16103833660046116ff565b600360209081526000928352604080842090915290825290205481565b600154610310906001600160a01b031681565b6101a56103c13660046115ad565b610f44565b3360009081526003602090815260408083206001600160a01b0386168452909152902054818110156104655760405162461bcd60e51b815260206004820152602d60248201527f43616e206e6f742064656372656173652062616c616e636520616c6c6f77616e60448201527f63652062656c6f77207a65726f0000000000000000000000000000000000000060648201526084015b60405180910390fd5b6104723384848403611026565b505050565b6001546001600160a01b031633146104d15760405162461bcd60e51b815260206004820152601860248201527f43616c6c6572206973206e6f7420746865206272696467650000000000000000604482015260640161045c565b8281146105205760405162461bcd60e51b815260206004820181905260248201527f417272617973206d7573742068617665207468652073616d65206c656e677468604482015260640161045c565b60005b838110156105855761057385858381811061054057610540611732565b905060200201602081019061055591906115ad565b84848481811061056757610567611732565b90506020020135611103565b8061057d8161175e565b915050610523565b5050505050565b60007f00000000000000000000000000000000000000000000000000000000000000004614156105db57507f000000000000000000000000000000000000000000000000000000000000000090565b50604080518082018252600981527f544254432042616e6b000000000000000000000000000000000000000000000060209182015281518083018352600181527f31000000000000000000000000000000000000000000000000000000000000009082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527fa1cc9cffb2f2444066e5c95caef7925ee7ef97efc6002db29d3637e98e2f0dd2818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a0808301919091528351808303909101815260c0909101909252815191012090565b33600090815260026020526040812080548392906106fb908490611779565b909155505060405181815233907f9c6be7c4260e52ea2e41d7f17932147ab78756f1bb2247a2554796d969741aff9060200160405180910390a250565b610743338383611026565b5050565b610752338585611026565b6040517f475d05700000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063475d05709061079d903390879087908790600401611790565b600060405180830381600087803b1580156107b757600080fd5b505af11580156107cb573d6000803e3d6000fd5b5050505050505050565b6107433383836111f1565b6001546001600160a01b0316331461083a5760405162461bcd60e51b815260206004820152601860248201527f43616c6c6572206973206e6f7420746865206272696467650000000000000000604482015260640161045c565b6107438282611103565b3360008181526003602090815260408083206001600160a01b03871684529091529020546107439190849061087a9085906117d6565b611026565b6000546001600160a01b031633146108d95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161045c565b6001600160a01b03811661092f5760405162461bcd60e51b815260206004820152601e60248201527f4272696467652061646472657373206d757374206e6f74206265203078300000604482015260640161045c565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527fe1694c0b21fdceff6411daed547c7463c2341b9695387bc82595b5b9b1851d4a9060200160405180910390a150565b6000546001600160a01b031633146109ea5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161045c565b6109f460006113b2565b565b6001600160a01b03831660009081526003602090815260408083203384529091529020546000198114610aa65781811015610a995760405162461bcd60e51b815260206004820152602160248201527f5472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6360448201527f6500000000000000000000000000000000000000000000000000000000000000606482015260840161045c565b610aa68433848403611026565b610ab18484846111f1565b50505050565b6001546001600160a01b03163314610b115760405162461bcd60e51b815260206004820152601860248201527f43616c6c6572206973206e6f7420746865206272696467650000000000000000604482015260640161045c565b828114610b605760405162461bcd60e51b815260206004820181905260248201527f417272617973206d7573742068617665207468652073616d65206c656e677468604482015260640161045c565b6000805b82811015610ba457838382818110610b7e57610b7e611732565b9050602002013582610b9091906117d6565b915080610b9c8161175e565b915050610b64565b50610baf8682611103565b6040517f461c63730000000000000000000000000000000000000000000000000000000081526001600160a01b0387169063461c637390610bfa9088908890889088906004016117ee565b600060405180830381600087803b158015610c1457600080fd5b505af1158015610c28573d6000803e3d6000fd5b50505050505050505050565b42841015610c845760405162461bcd60e51b815260206004820152601260248201527f5065726d697373696f6e20657870697265640000000000000000000000000000604482015260640161045c565b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0811115610cf45760405162461bcd60e51b815260206004820152601b60248201527f496e76616c6964207369676e6174757265202773272076616c75650000000000604482015260640161045c565b8260ff16601b1480610d0957508260ff16601c145b610d555760405162461bcd60e51b815260206004820152601b60248201527f496e76616c6964207369676e6174757265202776272076616c75650000000000604482015260640161045c565b6000610d5f61058c565b6001600160a01b038916600090815260046020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928c928c928c92909190610dad8361175e565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810187905260e00160405160208183030381529060405280519060200120604051602001610e419291907f190100000000000000000000000000000000000000000000000000000000000081526002810192909252602282015260420190565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa158015610eac573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811615801590610ee25750886001600160a01b0316816001600160a01b0316145b610f2e5760405162461bcd60e51b815260206004820152601160248201527f496e76616c6964207369676e6174757265000000000000000000000000000000604482015260640161045c565b610f39898989611026565b505050505050505050565b6000546001600160a01b03163314610f9e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161045c565b6001600160a01b03811661101a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161045c565b611023816113b2565b50565b6001600160a01b0382166110a25760405162461bcd60e51b815260206004820152602360248201527f43616e206e6f7420617070726f766520746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161045c565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f2fe5e8e7796010737e636f63b35a0383dc160b68483984f2df987c78e842b405910160405180910390a3505050565b6001600160a01b0382163014156111825760405162461bcd60e51b815260206004820152602160248201527f43616e206e6f7420696e6372656173652062616c616e636520666f722042616e60448201527f6b00000000000000000000000000000000000000000000000000000000000000606482015260840161045c565b6001600160a01b038216600090815260026020526040812080548392906111aa9084906117d6565b90915550506040518181526001600160a01b038316907f7a702e80a9c183a6ce9d6732991df2e914555ba35a364a70aed2433984e7544b9060200160405180910390a25050565b6001600160a01b0382166112535760405162461bcd60e51b8152602060048201526024808201527f43616e206e6f74207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161045c565b6001600160a01b0382163014156112b85760405162461bcd60e51b8152602060048201526024808201527f43616e206e6f74207472616e7366657220746f207468652042616e6b206164646044820152637265737360e01b606482015260840161045c565b6001600160a01b038316600090815260026020526040902054818110156113215760405162461bcd60e51b815260206004820152601f60248201527f5472616e7366657220616d6f756e7420657863656564732062616c616e636500604482015260640161045c565b6001600160a01b038085166000908152600260205260408082208585039055918516815290812080548492906113589084906117d6565b92505081905550826001600160a01b0316846001600160a01b03167f4163d0b06696468b3d7903f482bcd0097bd38a9a9086157479fd6c6561d24261846040516113a491815260200190565b60405180910390a350505050565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b038116811461142657600080fd5b919050565b6000806040838503121561143e57600080fd5b6114478361140f565b946020939093013593505050565b60008083601f84011261146757600080fd5b50813567ffffffffffffffff81111561147f57600080fd5b6020830191508360208260051b850101111561149a57600080fd5b9250929050565b600080600080604085870312156114b757600080fd5b843567ffffffffffffffff808211156114cf57600080fd5b6114db88838901611455565b909650945060208701359150808211156114f457600080fd5b5061150187828801611455565b95989497509550505050565b60006020828403121561151f57600080fd5b5035919050565b6000806000806060858703121561153c57600080fd5b6115458561140f565b935060208501359250604085013567ffffffffffffffff8082111561156957600080fd5b818701915087601f83011261157d57600080fd5b81358181111561158c57600080fd5b88602082850101111561159e57600080fd5b95989497505060200194505050565b6000602082840312156115bf57600080fd5b6115c88261140f565b9392505050565b6000806000606084860312156115e457600080fd5b6115ed8461140f565b92506115fb6020850161140f565b9150604084013590509250925092565b60008060008060006060868803121561162357600080fd5b61162c8661140f565b9450602086013567ffffffffffffffff8082111561164957600080fd5b61165589838a01611455565b9096509450604088013591508082111561166e57600080fd5b5061167b88828901611455565b969995985093965092949392505050565b600080600080600080600060e0888a0312156116a757600080fd5b6116b08861140f565b96506116be6020890161140f565b95506040880135945060608801359350608088013560ff811681146116e257600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561171257600080fd5b61171b8361140f565b91506117296020840161140f565b90509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060001982141561177257611772611748565b5060010190565b60008282101561178b5761178b611748565b500390565b6001600160a01b038516815283602082015260606040820152816060820152818360808301376000818301608090810191909152601f909201601f191601019392505050565b600082198211156117e9576117e9611748565b500190565b6040808252810184905260008560608301825b8781101561182f576001600160a01b0361181a8461140f565b16825260209283019290910190600101611801565b5083810360208501528481527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85111561186857600080fd5b8460051b91508186602083013760009101602001908152969550505050505056fea264697066735822122073c4472895358b2938892bf5f89f9928607594b2bd51aada78b5cdf9216fe04864736f6c63430008090033",
535
540
  "linkReferences": {},
536
541
  "deployedLinkReferences": {}
537
542
  }
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../build-info/7d4c715d41b90f9992960e00fe51d4e8.json"
4
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "IReceiveBalanceApproval",
4
+ "sourceName": "contracts/bank/IReceiveBalanceApproval.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "owner",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "uint256",
15
+ "name": "amount",
16
+ "type": "uint256"
17
+ },
18
+ {
19
+ "internalType": "bytes",
20
+ "name": "extraData",
21
+ "type": "bytes"
22
+ }
23
+ ],
24
+ "name": "receiveBalanceApproval",
25
+ "outputs": [],
26
+ "stateMutability": "nonpayable",
27
+ "type": "function"
28
+ }
29
+ ],
30
+ "bytecode": "0x",
31
+ "deployedBytecode": "0x",
32
+ "linkReferences": {},
33
+ "deployedLinkReferences": {}
34
+ }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/f858e31993d81cc64384b34812cb47e9.json"
3
+ "buildInfo": "../../../build-info/7d4c715d41b90f9992960e00fe51d4e8.json"
4
4
  }
@@ -3,8 +3,8 @@
3
3
  "contractName": "BitcoinTx",
4
4
  "sourceName": "contracts/bridge/BitcoinTx.sol",
5
5
  "abi": [],
6
- "bytecode": "0x60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220beb99c1ddc6f3e1ccc4ecde580996c3f120181e174a85a0a9504d0c071fd903664736f6c63430008040033",
7
- "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220beb99c1ddc6f3e1ccc4ecde580996c3f120181e174a85a0a9504d0c071fd903664736f6c63430008040033",
6
+ "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122070aa0f1ae555a1275fc8fff26407d2ceed4378aa53d2bec813660bad8f61ae7c64736f6c63430008090033",
7
+ "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122070aa0f1ae555a1275fc8fff26407d2ceed4378aa53d2bec813660bad8f61ae7c64736f6c63430008090033",
8
8
  "linkReferences": {},
9
9
  "deployedLinkReferences": {}
10
10
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/f858e31993d81cc64384b34812cb47e9.json"
3
+ "buildInfo": "../../../build-info/7d4c715d41b90f9992960e00fe51d4e8.json"
4
4
  }