@keep-network/tbtc-v2 1.4.0-dev.0 → 1.4.0-dev.2

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 (105) hide show
  1. package/artifacts/BLS.json +1 -1
  2. package/artifacts/Bank.json +3 -3
  3. package/artifacts/BeaconAuthorization.json +1 -1
  4. package/artifacts/BeaconDkg.json +1 -1
  5. package/artifacts/BeaconDkgValidator.json +1 -1
  6. package/artifacts/BeaconInactivity.json +1 -1
  7. package/artifacts/BeaconSortitionPool.json +3 -3
  8. package/artifacts/Bridge.json +5 -5
  9. package/artifacts/BridgeGovernance.json +2 -2
  10. package/artifacts/BridgeGovernanceParameters.json +2 -2
  11. package/artifacts/Deposit.json +2 -2
  12. package/artifacts/DepositSweep.json +2 -2
  13. package/artifacts/DonationVault.json +3 -3
  14. package/artifacts/EcdsaDkgValidator.json +1 -1
  15. package/artifacts/EcdsaInactivity.json +1 -1
  16. package/artifacts/EcdsaSortitionPool.json +3 -3
  17. package/artifacts/Fraud.json +2 -2
  18. package/artifacts/KeepRegistry.json +1 -1
  19. package/artifacts/KeepStake.json +2 -2
  20. package/artifacts/KeepToken.json +2 -2
  21. package/artifacts/KeepTokenStaking.json +1 -1
  22. package/artifacts/LightRelay.json +3 -3
  23. package/artifacts/LightRelayMaintainerProxy.json +3 -3
  24. package/artifacts/MaintainerProxy.json +3 -3
  25. package/artifacts/MovingFunds.json +2 -2
  26. package/artifacts/NuCypherStakingEscrow.json +1 -1
  27. package/artifacts/NuCypherToken.json +2 -2
  28. package/artifacts/RandomBeacon.json +2 -2
  29. package/artifacts/RandomBeaconChaosnet.json +2 -2
  30. package/artifacts/RandomBeaconGovernance.json +2 -2
  31. package/artifacts/Redemption.json +2 -2
  32. package/artifacts/ReimbursementPool.json +2 -2
  33. package/artifacts/T.json +2 -2
  34. package/artifacts/TBTC.json +3 -3
  35. package/artifacts/TBTCToken.json +3 -3
  36. package/artifacts/TBTCVault.json +23 -23
  37. package/artifacts/TokenStaking.json +1 -1
  38. package/artifacts/TokenholderGovernor.json +9 -9
  39. package/artifacts/TokenholderTimelock.json +8 -8
  40. package/artifacts/VendingMachine.json +3 -3
  41. package/artifacts/VendingMachineKeep.json +1 -1
  42. package/artifacts/VendingMachineNuCypher.json +1 -1
  43. package/artifacts/VendingMachineV2.json +3 -3
  44. package/artifacts/VendingMachineV3.json +3 -3
  45. package/artifacts/WalletCoordinator.json +5 -5
  46. package/artifacts/WalletRegistry.json +5 -5
  47. package/artifacts/WalletRegistryGovernance.json +2 -2
  48. package/artifacts/Wallets.json +2 -2
  49. package/artifacts/solcInputs/{b9b4ee8a11a84e1668f3a48e30a96de7.json → 1c7cac85dbeb82f81e7a7bc7e98aa32f.json} +2 -2
  50. package/build/contracts/GovernanceUtils.sol/GovernanceUtils.dbg.json +1 -1
  51. package/build/contracts/bank/Bank.sol/Bank.dbg.json +1 -1
  52. package/build/contracts/bank/IReceiveBalanceApproval.sol/IReceiveBalanceApproval.dbg.json +1 -1
  53. package/build/contracts/bridge/BitcoinTx.sol/BitcoinTx.dbg.json +1 -1
  54. package/build/contracts/bridge/Bridge.sol/Bridge.dbg.json +1 -1
  55. package/build/contracts/bridge/BridgeGovernanceParameters.sol/BridgeGovernanceParameters.dbg.json +1 -1
  56. package/build/contracts/bridge/BridgeState.sol/BridgeState.dbg.json +1 -1
  57. package/build/contracts/bridge/Deposit.sol/Deposit.dbg.json +1 -1
  58. package/build/contracts/bridge/DepositSweep.sol/DepositSweep.dbg.json +1 -1
  59. package/build/contracts/bridge/EcdsaLib.sol/EcdsaLib.dbg.json +1 -1
  60. package/build/contracts/bridge/Fraud.sol/Fraud.dbg.json +1 -1
  61. package/build/contracts/bridge/Heartbeat.sol/Heartbeat.dbg.json +1 -1
  62. package/build/contracts/bridge/IRelay.sol/IRelay.dbg.json +1 -1
  63. package/build/contracts/bridge/MovingFunds.sol/MovingFunds.dbg.json +1 -1
  64. package/build/contracts/bridge/Redemption.sol/OutboundTx.dbg.json +1 -1
  65. package/build/contracts/bridge/Redemption.sol/Redemption.dbg.json +1 -1
  66. package/build/contracts/bridge/VendingMachine.sol/VendingMachine.dbg.json +1 -1
  67. package/build/contracts/bridge/VendingMachineV2.sol/VendingMachineV2.dbg.json +1 -1
  68. package/build/contracts/bridge/VendingMachineV3.sol/VendingMachineV3.dbg.json +1 -1
  69. package/build/contracts/bridge/WalletCoordinator.sol/WalletCoordinator.dbg.json +1 -1
  70. package/build/contracts/bridge/WalletCoordinator.sol/WalletCoordinator.json +2 -2
  71. package/build/contracts/bridge/Wallets.sol/Wallets.dbg.json +1 -1
  72. package/build/contracts/l2/L2TBTC.sol/L2TBTC.dbg.json +1 -1
  73. package/build/contracts/l2/L2WormholeGateway.sol/IWormholeTokenBridge.dbg.json +1 -1
  74. package/build/contracts/l2/L2WormholeGateway.sol/L2WormholeGateway.dbg.json +1 -1
  75. package/build/contracts/maintainer/MaintainerProxy.sol/MaintainerProxy.dbg.json +1 -1
  76. package/build/contracts/relay/LightRelay.sol/ILightRelay.dbg.json +1 -1
  77. package/build/contracts/relay/LightRelay.sol/LightRelay.dbg.json +1 -1
  78. package/build/contracts/relay/LightRelay.sol/RelayUtils.dbg.json +1 -1
  79. package/build/contracts/relay/LightRelayMaintainerProxy.sol/LightRelayMaintainerProxy.dbg.json +1 -1
  80. package/build/contracts/token/TBTC.sol/TBTC.dbg.json +1 -1
  81. package/build/contracts/vault/DonationVault.sol/DonationVault.dbg.json +1 -1
  82. package/build/contracts/vault/IVault.sol/IVault.dbg.json +1 -1
  83. package/build/contracts/vault/TBTCOptimisticMinting.sol/TBTCOptimisticMinting.dbg.json +1 -1
  84. package/build/contracts/vault/TBTCVault.sol/TBTCVault.dbg.json +1 -1
  85. package/contracts/bridge/WalletCoordinator.sol +2 -2
  86. package/export/artifacts/contracts/bridge/VendingMachine.sol/VendingMachine.json +6 -6
  87. package/export/artifacts/contracts/bridge/VendingMachineV2.sol/VendingMachineV2.json +6 -6
  88. package/export/artifacts/contracts/bridge/VendingMachineV3.sol/VendingMachineV3.json +6 -6
  89. package/export/artifacts/contracts/bridge/WalletCoordinator.sol/WalletCoordinator.json +7 -7
  90. package/export/artifacts/contracts/test/GoerliLightRelay.sol/GoerliLightRelay.json +114 -78
  91. package/export/artifacts/contracts/test/HeartbeatStub.sol/HeartbeatStub.json +2 -2
  92. package/export/artifacts/contracts/test/LightRelayStub.sol/LightRelayStub.json +2 -2
  93. package/export/artifacts/contracts/test/ReceiveApprovalStub.sol/ReceiveApprovalStub.json +7 -7
  94. package/export/artifacts/contracts/test/SystemTestRelay.sol/SystemTestRelay.json +14 -14
  95. package/export/artifacts/contracts/test/TestERC20.sol/TestERC20.json +6 -6
  96. package/export/artifacts/contracts/test/TestERC721.sol/TestERC721.json +8 -8
  97. package/export/artifacts/contracts/test/TestEcdsaLib.sol/TestEcdsaLib.json +2 -2
  98. package/export/artifacts/contracts/test/WormholeBridgeStub.sol/WormholeBridgeStub.json +33 -33
  99. package/export/artifacts/contracts/token/TBTC.sol/TBTC.json +2 -2
  100. package/export/artifacts/contracts/vault/DonationVault.sol/DonationVault.json +11 -11
  101. package/export/artifacts/contracts/vault/TBTCVault.sol/TBTCVault.json +135 -135
  102. package/export/typechain/factories/GoerliLightRelay__factory.js +14 -1
  103. package/export/typechain/factories/WalletCoordinator__factory.js +1 -1
  104. package/export.json +274 -0
  105. package/package.json +1 -1
@@ -428,6 +428,19 @@ var _abi = [
428
428
  stateMutability: "nonpayable",
429
429
  type: "function",
430
430
  },
431
+ {
432
+ inputs: [
433
+ {
434
+ internalType: "bytes",
435
+ name: "bitcoinHeaders",
436
+ type: "bytes",
437
+ },
438
+ ],
439
+ name: "setDifficultyFromHeaders",
440
+ outputs: [],
441
+ stateMutability: "nonpayable",
442
+ type: "function",
443
+ },
431
444
  {
432
445
  inputs: [
433
446
  {
@@ -479,7 +492,7 @@ var _abi = [
479
492
  type: "function",
480
493
  },
481
494
  ];
482
- var _bytecode = "0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6120878061007e6000396000f3fe608060405234801561001057600080fd5b50600436106101825760003560e01c8063715018a6116100d8578063b6a5d7de1161008c578063f2fde38b11610066578063f2fde38b14610319578063f5619fda1461032c578063fe9fbb801461034757600080fd5b8063b6a5d7de146102df578063b70e6be6146102f2578063eb8695ef1461030657600080fd5b80637ca5b1dd116100bd5780637ca5b1dd1461029d5780638da5cb5b146102b057806395410d2b146102cb57600080fd5b8063715018a614610261578063766718081461026957600080fd5b806327c97fa51161013a5780634ca49f51116101145780634ca49f5114610217578063620414e61461022a5780636defbf801461023d57600080fd5b806327c97fa5146101f95780632b97be24146101ca5780633a1b77b01461020c57600080fd5b8063113764be1161016b578063113764be146101ca578063189179a3146101d157806319c9aa32146101e457600080fd5b806306a274221461018757806310b76ed8146101ad575b600080fd5b61019a610195366004611c27565b61036a565b6040519081526020015b60405180910390f35b6101b5610381565b604080519283526020830191909152016101a4565b600161019a565b6101b56101df366004611c56565b6103e1565b6101f76101f2366004611d24565b6107d9565b005b6101f7610207366004611d3f565b6109cc565b6002546003546101b5565b6101f7610225366004611d68565b610a25565b61019a610238366004611c27565b610dee565b60005461025190600160a01b900460ff1681565b60405190151581526020016101a4565b6101f7610efe565b60015461028490600160401b900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016101a4565b6101f76102ab366004611c56565b610f12565b6000546040516001600160a01b0390911681526020016101a4565b60005461025190600160a81b900460ff1681565b6101f76102ed366004611d3f565b6114b0565b6001546102849067ffffffffffffffff1681565b6101f7610314366004611df1565b61150c565b6101f7610327366004611d3f565b61157c565b60005461028490600160b01b900467ffffffffffffffff1681565b610251610355366004611d3f565b60056020526000908152604090205460ff1681565b600061037b6102386107e084611e3f565b92915050565b600154600090819061039f9067ffffffffffffffff166107e0611e53565b60015467ffffffffffffffff91821693506103c591600160401b909104166107e0611e53565b6103d1906107df611e7f565b67ffffffffffffffff1690509091565b600080605083516103f29190611ea7565b156104445760405162461bcd60e51b815260206004820152601560248201527f496e76616c696420686561646572206c656e677468000000000000000000000060448201526064015b60405180910390fd5b605083516104529190611e3f565b905060018111801561046557506107e081105b6104b15760405162461bcd60e51b815260206004820152601960248201527f496e76616c6964206e756d626572206f66206865616465727300000000000000604482015260640161043b565b6104ba8361160c565b63ffffffff1691506000806104d0858280611640565b6040805180820182526000808252602080830182905260015467ffffffffffffffff600160401b90910416808352600482529184902084518086019095525463ffffffff8116855264010000000090046001600160e01b031690840152939550919350909190825b815163ffffffff1688101561059657610552600184611ebb565b60008181526004602090815260409182902082518084019093525463ffffffff8116835264010000000090046001600160e01b031690820152909350919050610538565b815163ffffffff166106105760405162461bcd60e51b815260206004820152602b60248201527f43616e6e6f742076616c696461746520636861696e73206265666f726520726560448201527f6c61792067656e65736973000000000000000000000000000000000000000000606482015260840161043b565b81602001516001600160e01b031685146106da5780602001516001600160e01b03168503610640579050826106da565b61064b600184611ebb565b60008181526004602090815260409182902082518084019093525463ffffffff8116835264010000000090046001600160e01b031690820181905291945092915085146106da5760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642074617267657420696e2068656164657220636861696e0000604482015260640161043b565b60015b878110156107cd5760006106fc8b6106f6846050611ece565b8a611640565b60208601519098509091506001600160e01b031687146107b957600061072d610726846050611ece565b8d90611718565b845163ffffffff91821692501615801590610754575083602001516001600160e01b031688145b80156107665750835163ffffffff1681145b6107b25760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642074617267657420696e2068656164657220636861696e0000604482015260640161043b565b5091925084915b9650806107c581611ee5565b9150506106dd565b50505050505050915091565b600054600160a01b900460ff166108325760405162461bcd60e51b815260206004820152601a60248201527f52656c6179206973206e6f7420726561647920666f7220757365000000000000604482015260640161043b565b61083a611739565b6107e08167ffffffffffffffff16106108955760405162461bcd60e51b815260206004820152601660248201527f50726f6f66206c656e6774682065786365737369766500000000000000000000604482015260640161043b565b60008167ffffffffffffffff16116108ef5760405162461bcd60e51b815260206004820152601c60248201527f50726f6f66206c656e677468206d6179206e6f74206265207a65726f00000000604482015260640161043b565b60005467ffffffffffffffff600160b01b9091048116908216036109555760405162461bcd60e51b815260206004820152601660248201527f50726f6f66206c656e67746820756e6368616e67656400000000000000000000604482015260640161043b565b600080547fffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffff16600160b01b67ffffffffffffffff8416908102919091179091556040519081527f3e9f904d8cf11753c79b67c8259c582056d4a7d8af120f81257a59eeb8824b96906020015b60405180910390a150565b6109d4611739565b6001600160a01b038116600081815260056020908152604091829020805460ff1916905590519182527f7498b96beeabea5ad3139f1a2861a03e480034254e36b10aae2e6e42ad7b4b6891016109c1565b610a2d611739565b600054600160a01b900460ff1615610a875760405162461bcd60e51b815260206004820152601960248201527f47656e6573697320616c726561647920706572666f726d656400000000000000604482015260640161043b565b60508314610ad75760405162461bcd60e51b815260206004820152601d60248201527f496e76616c69642067656e6573697320686561646572206c656e677468000000604482015260640161043b565b610ae36107e083611ea7565b15610b565760405162461bcd60e51b815260206004820152602560248201527f496e76616c696420686569676874206f662072656c61792067656e657369732060448201527f626c6f636b000000000000000000000000000000000000000000000000000000606482015260840161043b565b6107e08167ffffffffffffffff1610610bb15760405162461bcd60e51b815260206004820152601660248201527f50726f6f66206c656e6774682065786365737369766500000000000000000000604482015260640161043b565b60008167ffffffffffffffff1611610c0b5760405162461bcd60e51b815260206004820152601c60248201527f50726f6f66206c656e677468206d6179206e6f74206265207a65726f00000000604482015260640161043b565b610c176107e083611e3f565b600180547fffffffffffffffffffffffffffffffff000000000000000000000000000000001667ffffffffffffffff92909216918217600160401b92909202919091179055604080516020601f8601819004810282018101909252848152600091610c9d9190879087908190840183828082843760009201919091525061179392505050565b90506000610ce086868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061160c92505050565b60408051808201825263ffffffff9283168082526001600160e01b03808716602080850191825260015467ffffffffffffffff9081166000908152600490925295812094519151909216640100000000029516949094179091558254918616600160b01b027fffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffff909216919091179091559050610d7b826117a0565b600255600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b1790556040517f2381d16925551c2fb1a5edfcf4fce2f6d085e1f85f4b88340c09c9d191f9d4e990610dde9086815260200190565b60405180910390a1505050505050565b60015460009067ffffffffffffffff16821015610e4d5760405162461bcd60e51b815260206004820152601d60248201527f45706f6368206973206265666f72652072656c61792067656e65736973000000604482015260640161043b565b600154600160401b900467ffffffffffffffff16821115610ed55760405162461bcd60e51b8152602060048201526024808201527f45706f6368206973206e6f742070726f76656e20746f207468652072656c617960448201527f2079657400000000000000000000000000000000000000000000000000000000606482015260840161043b565b60008281526004602052604090205461037b9064010000000090046001600160e01b03166117a0565b610f06611739565b610f1060006117c8565b565b600054600160a01b900460ff16610f6b5760405162461bcd60e51b815260206004820152601a60248201527f52656c6179206973206e6f7420726561647920666f7220757365000000000000604482015260640161043b565b600054600160a81b900460ff1615610fdc573360009081526005602052604090205460ff16610fdc5760405162461bcd60e51b815260206004820152601660248201527f5375626d697474657220756e617574686f72697a656400000000000000000000604482015260640161043b565b600054610ffb90600160b01b900467ffffffffffffffff166002611e53565b611006906050611e53565b67ffffffffffffffff1681511461105f5760405162461bcd60e51b815260206004820152601560248201527f496e76616c696420686561646572206c656e6774680000000000000000000000604482015260640161043b565b600154600160401b900467ffffffffffffffff166000908152600460205260408120805490916401000000009091046001600160e01b031690805b600054600160b01b900467ffffffffffffffff1681101561115b576000806110cd876110c7856050611ece565b86611640565b915091508481146111465760405162461bcd60e51b815260206004820152602660248201527f496e76616c69642074617267657420696e207072652d7265746172676574206860448201527f6561646572730000000000000000000000000000000000000000000000000000606482015260840161043b565b5091508061115381611ee5565b91505061109a565b506000805461119d9061118190600190600160b01b900467ffffffffffffffff16611efe565b61118c906050611e53565b869067ffffffffffffffff16611718565b63ffffffff1690504281106111f45760405162461bcd60e51b815260206004820152601e60248201527f45706f63682063616e6e6f7420656e6420696e20746865206675747572650000604482015260640161043b565b835460009061120b90859063ffffffff1684611830565b9050600080611247600060169054906101000a900467ffffffffffffffff1660506112369190611e53565b899067ffffffffffffffff16611718565b60005463ffffffff919091169150600160b01b900467ffffffffffffffff165b60005461128690600160b01b900467ffffffffffffffff166002611e53565b67ffffffffffffffff16811015611398576000806112a98b6106f6856050611ece565b915091508460000361130e5780945080861681146113095760405162461bcd60e51b815260206004820152601b60248201527f496e76616c69642074617267657420696e206e65772065706f63680000000000604482015260640161043b565b611383565b8481146113835760405162461bcd60e51b815260206004820152602760248201527f556e657870656374656420746172676574206368616e6765206166746572207260448201527f6574617267657400000000000000000000000000000000000000000000000000606482015260840161043b565b5095508061139081611ee5565b915050611267565b50600160089054906101000a900467ffffffffffffffff1660016113bc9190611e7f565b6001805467ffffffffffffffff928316600160401b9081027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff909216919091179182905560408051808201825263ffffffff80871682526001600160e01b038089166020808501918252959096049096166000908152600490945291832090519351909416640100000000029216919091179091556002549061145e846117a0565b6003839055600281905560408051848152602081018390529192507fa282ee798b132f9dc11e06cd4d8e767e562be8709602ca14fea7ab3392acbdab910160405180910390a150505050505050505050565b6114b8611739565b6001600160a01b038116600081815260056020908152604091829020805460ff1916600117905590519182527fd53649b492f738bb59d6825099b5955073efda0bf9e3a7ad20da22e110122e2991016109c1565b611514611739565b60008054821515600160a81b027fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff9091161790556040517fd813b248d49c8bf08be2b6947126da6763df310beed7bea97756456c5727419a906109c190831515815260200190565b611584611739565b6001600160a01b0381166116005760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161043b565b611609816117c8565b50565b600061037b61161a836118c4565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b60008082156116a0576116548585856118d1565b6116a05760405162461bcd60e51b815260206004820152600d60248201527f496e76616c696420636861696e00000000000000000000000000000000000000604482015260640161043b565b6116aa85856118fc565b90506116b88585605061199e565b91506116c482826119c8565b6117105760405162461bcd60e51b815260206004820152600c60248201527f496e76616c696420776f726b0000000000000000000000000000000000000000604482015260640161043b565b935093915050565b600061173261161a61172b846044611f1f565b8590611b21565b9392505050565b6000546001600160a01b03163314610f105760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161043b565b600061037b8260006118fc565b600061037b7bffff000000000000000000000000000000000000000000000000000083611b30565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008061183d8385611b3c565b905061184d621275006004611b30565b81101561186557611862621275006004611b30565b90505b611873621275006004611b98565b81111561188b57611888621275006004611b98565b90505b60006118a48261189e8862010000611b30565b90611b98565b90506118ba6201000061189e8362127500611b30565b9695505050505050565b600061037b826044611b21565b6000806118de8585611c0e565b90508281146118f1576000915050611732565b506001949350505050565b60008061190d61172b846048611f1f565b60e81c905060008461192085604b611f1f565b8151811061193057611930611f32565b016020015160f81c9050600061196483600060108262ffffff16901c8261ff001660108462ffffff16901b17179050919050565b62ffffff1690506000611978600384611f48565b60ff16905061198981610100612045565b6119939083611ece565b979650505050505050565b6000602060008385602001870160025afa50602060006020600060025afa50506000519392505050565b6000826119d75750600061037b565b81611b198460008190506008817eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff16901b600882901c7eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff161790506010817dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff16901b601082901c7dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff161790506020817bffffffff00000000ffffffff00000000ffffffff00000000ffffffff16901b602082901c7bffffffff00000000ffffffff00000000ffffffff00000000ffffffff1617905060408177ffffffffffffffff0000000000000000ffffffffffffffff16901b604082901c77ffffffffffffffff0000000000000000ffffffffffffffff16179050608081901b608082901c179050919050565b109392505050565b60006117328383016020015190565b60006117328284611e3f565b600082821115611b8e5760405162461bcd60e51b815260206004820152601d60248201527f556e646572666c6f7720647572696e67207375627472616374696f6e2e000000604482015260640161043b565b6117328284611ebb565b600082600003611baa5750600061037b565b611bb48284611ece565b905081611bc18483611e3f565b1461037b5760405162461bcd60e51b815260206004820152601f60248201527f4f766572666c6f7720647572696e67206d756c7469706c69636174696f6e2e00604482015260640161043b565b6000611732611c1e836004611f1f565b84016020015190565b600060208284031215611c3957600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600060208284031215611c6857600080fd5b813567ffffffffffffffff80821115611c8057600080fd5b818401915084601f830112611c9457600080fd5b813581811115611ca657611ca6611c40565b604051601f8201601f19908116603f01168101908382118183101715611cce57611cce611c40565b81604052828152876020848701011115611ce757600080fd5b826020860160208301376000928101602001929092525095945050505050565b803567ffffffffffffffff81168114611d1f57600080fd5b919050565b600060208284031215611d3657600080fd5b61173282611d07565b600060208284031215611d5157600080fd5b81356001600160a01b038116811461173257600080fd5b60008060008060608587031215611d7e57600080fd5b843567ffffffffffffffff80821115611d9657600080fd5b818701915087601f830112611daa57600080fd5b813581811115611db957600080fd5b886020828501011115611dcb57600080fd5b602092830196509450508501359150611de660408601611d07565b905092959194509250565b600060208284031215611e0357600080fd5b8135801515811461173257600080fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082611e4e57611e4e611e13565b500490565b67ffffffffffffffff818116838216028082169190828114611e7757611e77611e29565b505092915050565b67ffffffffffffffff818116838216019080821115611ea057611ea0611e29565b5092915050565b600082611eb657611eb6611e13565b500690565b8181038181111561037b5761037b611e29565b808202811582820484141761037b5761037b611e29565b600060018201611ef757611ef7611e29565b5060010190565b67ffffffffffffffff828116828216039080821115611ea057611ea0611e29565b8082018082111561037b5761037b611e29565b634e487b7160e01b600052603260045260246000fd5b60ff828116828216039081111561037b5761037b611e29565b600181815b80851115611f9c578160001904821115611f8257611f82611e29565b80851615611f8f57918102915b93841c9390800290611f66565b509250929050565b600082611fb35750600161037b565b81611fc05750600061037b565b8160018114611fd65760028114611fe057611ffc565b600191505061037b565b60ff841115611ff157611ff1611e29565b50506001821b61037b565b5060208310610133831016604e8410600b841016171561201f575081810a61037b565b6120298383611f61565b806000190482111561203d5761203d611e29565b029392505050565b60006117328383611fa456fea26469706673582212209c6fe81415d65fe4b021f66eac01b0e7367bd7a0ca8832f0cc02f628969100b464736f6c63430008110033";
495
+ var _bytecode = "0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6120d58061007e6000396000f3fe608060405234801561001057600080fd5b506004361061018d5760003560e01c8063715018a6116100e3578063b70e6be61161008c578063f2fde38b11610066578063f2fde38b14610340578063f5619fda14610353578063fe9fbb801461036e57600080fd5b8063b70e6be614610306578063d38c29a11461031a578063eb8695ef1461032d57600080fd5b80638da5cb5b116100bd5780638da5cb5b146102c457806395410d2b146102df578063b6a5d7de146102f357600080fd5b8063715018a614610275578063766718081461027d5780637ca5b1dd146102b157600080fd5b806327c97fa5116101455780634ca49f511161011f5780634ca49f511461022b578063620414e61461023e5780636defbf801461025157600080fd5b806327c97fa5146102055780632b97be24146102185780633a1b77b01461022057600080fd5b8063113764be11610176578063113764be146101d5578063189179a3146101dd57806319c9aa32146101f057600080fd5b806306a274221461019257806310b76ed8146101b8575b600080fd5b6101a56101a0366004611c75565b610391565b6040519081526020015b60405180910390f35b6101c06103a8565b604080519283526020830191909152016101af565b6002546101a5565b6101c06101eb366004611ca4565b610408565b6102036101fe366004611d72565b610800565b005b610203610213366004611d8d565b6109f3565b6003546101a5565b6002546003546101c0565b610203610239366004611db6565b610a4c565b6101a561024c366004611c75565b610e15565b60005461026590600160a01b900460ff1681565b60405190151581526020016101af565b610203610f25565b60015461029890600160401b900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016101af565b6102036102bf366004611ca4565b610f39565b6000546040516001600160a01b0390911681526020016101af565b60005461026590600160a81b900460ff1681565b610203610301366004611d8d565b6114d7565b6001546102989067ffffffffffffffff1681565b610203610328366004611ca4565b611533565b61020361033b366004611e3f565b61155a565b61020361034e366004611d8d565b6115ca565b60005461029890600160b01b900467ffffffffffffffff1681565b61026561037c366004611d8d565b60056020526000908152604090205460ff1681565b60006103a261024c6107e084611e8d565b92915050565b60015460009081906103c69067ffffffffffffffff166107e0611ea1565b60015467ffffffffffffffff91821693506103ec91600160401b909104166107e0611ea1565b6103f8906107df611ecd565b67ffffffffffffffff1690509091565b600080605083516104199190611ef5565b1561046b5760405162461bcd60e51b815260206004820152601560248201527f496e76616c696420686561646572206c656e677468000000000000000000000060448201526064015b60405180910390fd5b605083516104799190611e8d565b905060018111801561048c57506107e081105b6104d85760405162461bcd60e51b815260206004820152601960248201527f496e76616c6964206e756d626572206f662068656164657273000000000000006044820152606401610462565b6104e18361165a565b63ffffffff1691506000806104f785828061168e565b6040805180820182526000808252602080830182905260015467ffffffffffffffff600160401b90910416808352600482529184902084518086019095525463ffffffff8116855264010000000090046001600160e01b031690840152939550919350909190825b815163ffffffff168810156105bd57610579600184611f09565b60008181526004602090815260409182902082518084019093525463ffffffff8116835264010000000090046001600160e01b03169082015290935091905061055f565b815163ffffffff166106375760405162461bcd60e51b815260206004820152602b60248201527f43616e6e6f742076616c696461746520636861696e73206265666f726520726560448201527f6c61792067656e657369730000000000000000000000000000000000000000006064820152608401610462565b81602001516001600160e01b031685146107015780602001516001600160e01b0316850361066757905082610701565b610672600184611f09565b60008181526004602090815260409182902082518084019093525463ffffffff8116835264010000000090046001600160e01b031690820181905291945092915085146107015760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642074617267657420696e2068656164657220636861696e00006044820152606401610462565b60015b878110156107f45760006107238b61071d846050611f1c565b8a61168e565b60208601519098509091506001600160e01b031687146107e057600061075461074d846050611f1c565b8d90611766565b845163ffffffff9182169250161580159061077b575083602001516001600160e01b031688145b801561078d5750835163ffffffff1681145b6107d95760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642074617267657420696e2068656164657220636861696e00006044820152606401610462565b5091925084915b9650806107ec81611f33565b915050610704565b50505050505050915091565b600054600160a01b900460ff166108595760405162461bcd60e51b815260206004820152601a60248201527f52656c6179206973206e6f7420726561647920666f72207573650000000000006044820152606401610462565b610861611787565b6107e08167ffffffffffffffff16106108bc5760405162461bcd60e51b815260206004820152601660248201527f50726f6f66206c656e67746820657863657373697665000000000000000000006044820152606401610462565b60008167ffffffffffffffff16116109165760405162461bcd60e51b815260206004820152601c60248201527f50726f6f66206c656e677468206d6179206e6f74206265207a65726f000000006044820152606401610462565b60005467ffffffffffffffff600160b01b90910481169082160361097c5760405162461bcd60e51b815260206004820152601660248201527f50726f6f66206c656e67746820756e6368616e676564000000000000000000006044820152606401610462565b600080547fffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffff16600160b01b67ffffffffffffffff8416908102919091179091556040519081527f3e9f904d8cf11753c79b67c8259c582056d4a7d8af120f81257a59eeb8824b96906020015b60405180910390a150565b6109fb611787565b6001600160a01b038116600081815260056020908152604091829020805460ff1916905590519182527f7498b96beeabea5ad3139f1a2861a03e480034254e36b10aae2e6e42ad7b4b6891016109e8565b610a54611787565b600054600160a01b900460ff1615610aae5760405162461bcd60e51b815260206004820152601960248201527f47656e6573697320616c726561647920706572666f726d6564000000000000006044820152606401610462565b60508314610afe5760405162461bcd60e51b815260206004820152601d60248201527f496e76616c69642067656e6573697320686561646572206c656e6774680000006044820152606401610462565b610b0a6107e083611ef5565b15610b7d5760405162461bcd60e51b815260206004820152602560248201527f496e76616c696420686569676874206f662072656c61792067656e657369732060448201527f626c6f636b0000000000000000000000000000000000000000000000000000006064820152608401610462565b6107e08167ffffffffffffffff1610610bd85760405162461bcd60e51b815260206004820152601660248201527f50726f6f66206c656e67746820657863657373697665000000000000000000006044820152606401610462565b60008167ffffffffffffffff1611610c325760405162461bcd60e51b815260206004820152601c60248201527f50726f6f66206c656e677468206d6179206e6f74206265207a65726f000000006044820152606401610462565b610c3e6107e083611e8d565b600180547fffffffffffffffffffffffffffffffff000000000000000000000000000000001667ffffffffffffffff92909216918217600160401b92909202919091179055604080516020601f8601819004810282018101909252848152600091610cc4919087908790819084018382808284376000920191909152506117e192505050565b90506000610d0786868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061165a92505050565b60408051808201825263ffffffff9283168082526001600160e01b03808716602080850191825260015467ffffffffffffffff9081166000908152600490925295812094519151909216640100000000029516949094179091558254918616600160b01b027fffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffff909216919091179091559050610da2826117ee565b600255600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b1790556040517f2381d16925551c2fb1a5edfcf4fce2f6d085e1f85f4b88340c09c9d191f9d4e990610e059086815260200190565b60405180910390a1505050505050565b60015460009067ffffffffffffffff16821015610e745760405162461bcd60e51b815260206004820152601d60248201527f45706f6368206973206265666f72652072656c61792067656e657369730000006044820152606401610462565b600154600160401b900467ffffffffffffffff16821115610efc5760405162461bcd60e51b8152602060048201526024808201527f45706f6368206973206e6f742070726f76656e20746f207468652072656c617960448201527f20796574000000000000000000000000000000000000000000000000000000006064820152608401610462565b6000828152600460205260409020546103a29064010000000090046001600160e01b03166117ee565b610f2d611787565b610f376000611816565b565b600054600160a01b900460ff16610f925760405162461bcd60e51b815260206004820152601a60248201527f52656c6179206973206e6f7420726561647920666f72207573650000000000006044820152606401610462565b600054600160a81b900460ff1615611003573360009081526005602052604090205460ff166110035760405162461bcd60e51b815260206004820152601660248201527f5375626d697474657220756e617574686f72697a6564000000000000000000006044820152606401610462565b60005461102290600160b01b900467ffffffffffffffff166002611ea1565b61102d906050611ea1565b67ffffffffffffffff168151146110865760405162461bcd60e51b815260206004820152601560248201527f496e76616c696420686561646572206c656e67746800000000000000000000006044820152606401610462565b600154600160401b900467ffffffffffffffff166000908152600460205260408120805490916401000000009091046001600160e01b031690805b600054600160b01b900467ffffffffffffffff16811015611182576000806110f4876110ee856050611f1c565b8661168e565b9150915084811461116d5760405162461bcd60e51b815260206004820152602660248201527f496e76616c69642074617267657420696e207072652d7265746172676574206860448201527f65616465727300000000000000000000000000000000000000000000000000006064820152608401610462565b5091508061117a81611f33565b9150506110c1565b50600080546111c4906111a890600190600160b01b900467ffffffffffffffff16611f4c565b6111b3906050611ea1565b869067ffffffffffffffff16611766565b63ffffffff16905042811061121b5760405162461bcd60e51b815260206004820152601e60248201527f45706f63682063616e6e6f7420656e6420696e207468652066757475726500006044820152606401610462565b835460009061123290859063ffffffff168461187e565b905060008061126e600060169054906101000a900467ffffffffffffffff16605061125d9190611ea1565b899067ffffffffffffffff16611766565b60005463ffffffff919091169150600160b01b900467ffffffffffffffff165b6000546112ad90600160b01b900467ffffffffffffffff166002611ea1565b67ffffffffffffffff168110156113bf576000806112d08b61071d856050611f1c565b91509150846000036113355780945080861681146113305760405162461bcd60e51b815260206004820152601b60248201527f496e76616c69642074617267657420696e206e65772065706f636800000000006044820152606401610462565b6113aa565b8481146113aa5760405162461bcd60e51b815260206004820152602760248201527f556e657870656374656420746172676574206368616e6765206166746572207260448201527f65746172676574000000000000000000000000000000000000000000000000006064820152608401610462565b509550806113b781611f33565b91505061128e565b50600160089054906101000a900467ffffffffffffffff1660016113e39190611ecd565b6001805467ffffffffffffffff928316600160401b9081027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff909216919091179182905560408051808201825263ffffffff80871682526001600160e01b0380891660208085019182529590960490961660009081526004909452918320905193519094166401000000000292169190911790915560025490611485846117ee565b6003839055600281905560408051848152602081018390529192507fa282ee798b132f9dc11e06cd4d8e767e562be8709602ca14fea7ab3392acbdab910160405180910390a150505050505050505050565b6114df611787565b6001600160a01b038116600081815260056020908152604091829020805460ff1916600117905590519182527fd53649b492f738bb59d6825099b5955073efda0bf9e3a7ad20da22e110122e2991016109e8565b61153b611787565b600061154e611549836117e1565b6117ee565b60028190556003555050565b611562611787565b60008054821515600160a81b027fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff9091161790556040517fd813b248d49c8bf08be2b6947126da6763df310beed7bea97756456c5727419a906109e890831515815260200190565b6115d2611787565b6001600160a01b03811661164e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610462565b61165781611816565b50565b60006103a261166883611912565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b60008082156116ee576116a285858561191f565b6116ee5760405162461bcd60e51b815260206004820152600d60248201527f496e76616c696420636861696e000000000000000000000000000000000000006044820152606401610462565b6116f8858561194a565b9050611706858560506119ec565b91506117128282611a16565b61175e5760405162461bcd60e51b815260206004820152600c60248201527f496e76616c696420776f726b00000000000000000000000000000000000000006044820152606401610462565b935093915050565b6000611780611668611779846044611f6d565b8590611b6f565b9392505050565b6000546001600160a01b03163314610f375760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610462565b60006103a282600061194a565b60006103a27bffff000000000000000000000000000000000000000000000000000083611b7e565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008061188b8385611b8a565b905061189b621275006004611b7e565b8110156118b3576118b0621275006004611b7e565b90505b6118c1621275006004611be6565b8111156118d9576118d6621275006004611be6565b90505b60006118f2826118ec8862010000611b7e565b90611be6565b9050611908620100006118ec8362127500611b7e565b9695505050505050565b60006103a2826044611b6f565b60008061192c8585611c5c565b905082811461193f576000915050611780565b506001949350505050565b60008061195b611779846048611f6d565b60e81c905060008461196e85604b611f6d565b8151811061197e5761197e611f80565b016020015160f81c905060006119b283600060108262ffffff16901c8261ff001660108462ffffff16901b17179050919050565b62ffffff16905060006119c6600384611f96565b60ff1690506119d781610100612093565b6119e19083611f1c565b979650505050505050565b6000602060008385602001870160025afa50602060006020600060025afa50506000519392505050565b600082611a25575060006103a2565b81611b678460008190506008817eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff16901b600882901c7eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff161790506010817dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff16901b601082901c7dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff161790506020817bffffffff00000000ffffffff00000000ffffffff00000000ffffffff16901b602082901c7bffffffff00000000ffffffff00000000ffffffff00000000ffffffff1617905060408177ffffffffffffffff0000000000000000ffffffffffffffff16901b604082901c77ffffffffffffffff0000000000000000ffffffffffffffff16179050608081901b608082901c179050919050565b109392505050565b60006117808383016020015190565b60006117808284611e8d565b600082821115611bdc5760405162461bcd60e51b815260206004820152601d60248201527f556e646572666c6f7720647572696e67207375627472616374696f6e2e0000006044820152606401610462565b6117808284611f09565b600082600003611bf8575060006103a2565b611c028284611f1c565b905081611c0f8483611e8d565b146103a25760405162461bcd60e51b815260206004820152601f60248201527f4f766572666c6f7720647572696e67206d756c7469706c69636174696f6e2e006044820152606401610462565b6000611780611c6c836004611f6d565b84016020015190565b600060208284031215611c8757600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600060208284031215611cb657600080fd5b813567ffffffffffffffff80821115611cce57600080fd5b818401915084601f830112611ce257600080fd5b813581811115611cf457611cf4611c8e565b604051601f8201601f19908116603f01168101908382118183101715611d1c57611d1c611c8e565b81604052828152876020848701011115611d3557600080fd5b826020860160208301376000928101602001929092525095945050505050565b803567ffffffffffffffff81168114611d6d57600080fd5b919050565b600060208284031215611d8457600080fd5b61178082611d55565b600060208284031215611d9f57600080fd5b81356001600160a01b038116811461178057600080fd5b60008060008060608587031215611dcc57600080fd5b843567ffffffffffffffff80821115611de457600080fd5b818701915087601f830112611df857600080fd5b813581811115611e0757600080fd5b886020828501011115611e1957600080fd5b602092830196509450508501359150611e3460408601611d55565b905092959194509250565b600060208284031215611e5157600080fd5b8135801515811461178057600080fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082611e9c57611e9c611e61565b500490565b67ffffffffffffffff818116838216028082169190828114611ec557611ec5611e77565b505092915050565b67ffffffffffffffff818116838216019080821115611eee57611eee611e77565b5092915050565b600082611f0457611f04611e61565b500690565b818103818111156103a2576103a2611e77565b80820281158282048414176103a2576103a2611e77565b600060018201611f4557611f45611e77565b5060010190565b67ffffffffffffffff828116828216039080821115611eee57611eee611e77565b808201808211156103a2576103a2611e77565b634e487b7160e01b600052603260045260246000fd5b60ff82811682821603908111156103a2576103a2611e77565b600181815b80851115611fea578160001904821115611fd057611fd0611e77565b80851615611fdd57918102915b93841c9390800290611fb4565b509250929050565b600082612001575060016103a2565b8161200e575060006103a2565b8160018114612024576002811461202e5761204a565b60019150506103a2565b60ff84111561203f5761203f611e77565b50506001821b6103a2565b5060208310610133831016604e8410600b841016171561206d575081810a6103a2565b6120778383611faf565b806000190482111561208b5761208b611e77565b029392505050565b60006117808383611ff256fea26469706673582212202606e767c86058f121fb4bbc42812c919a513f29a231e5b98b843fe61a656e4764736f6c63430008110033";
483
496
  var isSuperArgs = function (xs) { return xs.length > 1; };
484
497
  var GoerliLightRelay__factory = /** @class */ (function (_super) {
485
498
  __extends(GoerliLightRelay__factory, _super);
@@ -811,7 +811,7 @@ var _abi = [
811
811
  type: "function",
812
812
  },
813
813
  ];
814
- var _bytecode = "0x608060405234801561001057600080fd5b5061355c806100206000396000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c80639039bc1c116100ee578063c09975cd11610097578063f2fde38b11610071578063f2fde38b146103f5578063f5aceab614610408578063f74b37bd1461041b578063fbd6d77e1461043257600080fd5b8063c09975cd146103bc578063c4d66de8146103cf578063e78cea92146103e257600080fd5b8063aec32099116100c8578063aec3209914610376578063b39e101614610399578063bc20a080146103ac57600080fd5b80639039bc1c1461031f578063a34fff5914610332578063acaac7051461034957600080fd5b8063715018a61161015b5780637fbf9b39116101355780637fbf9b39146102bd57806385a0924c146102d45780638cb5a0c0146102e75780638da5cb5b146102fa57600080fd5b8063715018a61461027f5780637405d7bf146102875780637b35b4e6146102aa57600080fd5b806334173c2d1161018c57806334173c2d146102445780635486032e146102595780636348c4391461026c57600080fd5b806308553292146101b35780632c259d2b146101eb57806331d8c6221461022c575b600080fd5b609a546101d1906a0100000000000000000000900463ffffffff1681565b60405163ffffffff90911681526020015b60405180910390f35b61021e6101f9366004612722565b60986020526000908152604090205463ffffffff811690640100000000900460ff1682565b6040516101e2929190612753565b609a546101d190640100000000900463ffffffff1681565b61025761025236600461278b565b610445565b005b610257610267366004612820565b6104ec565b61025761027a36600461278b565b6105f2565b6102576107e9565b61029a6102953660046128b0565b6107fd565b60405190151581526020016101e2565b6102576102b836600461294c565b610ec3565b6099546101d190600160a01b900463ffffffff1681565b6102576102e2366004612969565b610f97565b6102576102f536600461294c565b611049565b6033546001600160a01b03165b6040516001600160a01b0390911681526020016101e2565b61025761032d366004612722565b611128565b6099546101d190600160c01b900463ffffffff1681565b609a546103639068010000000000000000900461ffff1681565b60405161ffff90911681526020016101e2565b61029a61038436600461294c565b60976020526000908152604090205460ff1681565b6102576103a73660046129a2565b6111e0565b609a546101d19063ffffffff1681565b606554610307906001600160a01b031681565b6102576103dd36600461294c565b61128a565b609954610307906001600160a01b031681565b61025761040336600461294c565b6114c4565b6102576104163660046129a2565b611554565b6099546101d190600160e01b900463ffffffff1681565b61025761044036600461294c565b611705565b60005a90506104558484846105f2565b6065546099546001600160a01b0390911690637ad226dc90600160c01b900463ffffffff165a61048590856129f5565b61048f9190612a08565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b1580156104ce57600080fd5b505af11580156104e2573d6000803e3d6000fd5b5050505050505050565b6104f46117e8565b609980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160e01b63ffffffff88811691820292909217909255609a805487831667ffffffffffffffff199091168117640100000000888516908102919091176dffffffffffff000000000000000019166801000000000000000061ffff89169081026dffffffff000000000000000000001916919091176a01000000000000000000009588169586021790935560408051958652602086019290925290840152606083015260808201527fc36fe6b9d74f864b5e345edc3435eb451a80669ec78c8357cc15e3a1d3897a739060a00160405180910390a15050505050565b3360009081526097602052604090205460ff166106565760405162461bcd60e51b815260206004820152601b60248201527f43616c6c6572206973206e6f74206120636f6f7264696e61746f72000000000060448201526064015b60405180910390fd5b6001600160601b03198316600090815260986020526040902054839063ffffffff1642116106b65760405162461bcd60e51b815260206004820152600d60248201526c15d85b1b195d081b1bd8dad959609a1b604482015260640161064d565b6106c08383611842565b61070c5760405162461bcd60e51b815260206004820152601d60248201527f4e6f7420612076616c696420686561727462656174206d657373616765000000604482015260640161064d565b60408051808201909152609954819061073290600160a01b900463ffffffff1642612a1b565b63ffffffff168152602001600190526001600160601b0319851660009081526098602090815260409091208251815463ffffffff90911663ffffffff19821681178355928401519192839164ffffffffff19161764010000000083600581111561079e5761079e61273d565b0217905550506040513391507f46f4f1fc7a1c5c364372f2e4398c3657d5e5cc35ea286f9972459376b29b1384906107db90879087908790612a3f565b60405180910390a250505050565b6107f16117e8565b6107fb60006118cc565b565b600060016099546001600160a01b031663e65e19d561081f6020880188612722565b6040516001600160e01b031960e084901b1681526001600160601b0319909116600482015260240161012060405180830381865afa158015610865573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108899190612b3c565b60e00151600581111561089e5761089e61273d565b146108eb5760405162461bcd60e51b815260206004820152601b60248201527f57616c6c6574206973206e6f7420696e204c6976652073746174650000000000604482015260640161064d565b60006108fa6020860186612bdf565b9050116109495760405162461bcd60e51b815260206004820152601860248201527f53776565702062656c6f7720746865206d696e2073697a650000000000000000604482015260640161064d565b609a5468010000000000000000900461ffff166109696020860186612bdf565b905011156109b95760405162461bcd60e51b815260206004820152601a60248201527f5377656570206578636565647320746865206d61782073697a65000000000000604482015260640161064d565b816109c76020860186612bdf565b905014610a3c5760405162461bcd60e51b815260206004820152602e60248201527f45616368206465706f736974206b6579206d7573742068617665206d6174636860448201527f696e672065787472612064617461000000000000000000000000000000000000606482015260840161064d565b610a586040850135610a516020870187612bdf565b905061192b565b6000805b610a696020870187612bdf565b9050811015610eb5576000610a816020880188612bdf565b83818110610a9157610a91612c29565b905060400201803603810190610aa79190612c3f565b90506000868684818110610abd57610abd612c29565b9050602002810190610acf9190612c95565b610ad890612d83565b60995483516020808601516040519495506000946001600160a01b039094169363b02c43d093610b21939092910191825260e01b6001600160e01b031916602082015260240190565b60408051808303601f1901815290829052805160209091012060e083901b6001600160e01b0319168252600482015260240160c060405180830381865afa158015610b70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b949190612e85565b9050806040015163ffffffff16600003610bf05760405162461bcd60e51b815260206004820152601460248201527f4465706f736974206e6f742072657665616c6564000000000000000000000000604482015260640161064d565b609a546040820151610c089163ffffffff1690612a1b565b63ffffffff164211610c5c5760405162461bcd60e51b815260206004820181905260248201527f4465706f736974206d696e20616765206e6f7420616368696576656420796574604482015260640161064d565b60a081015163ffffffff1615610cb45760405162461bcd60e51b815260206004820152601560248201527f4465706f73697420616c72656164792073776570740000000000000000000000604482015260640161064d565b610cc383826000015184611ad6565b608082015160009060d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c17609a54909150610d0c90640100000000900463ffffffff1682612f2c565b63ffffffff164210610d865760405162461bcd60e51b815260206004820152602d60248201527f4465706f73697420726566756e6420736166657479206d617267696e2069732060448201527f6e6f742070726573657276656400000000000000000000000000000000000000606482015260840161064d565b610d9360208b018b612722565b6bffffffffffffffffffffffff191683604001516bffffffffffffffffffffffff191614610e295760405162461bcd60e51b815260206004820152602660248201527f4465706f73697420636f6e74726f6c6c656420627920646966666572656e742060448201527f77616c6c65740000000000000000000000000000000000000000000000000000606482015260840161064d565b84600003610e3957816060015195505b856001600160a01b031682606001516001600160a01b031614610e9e5760405162461bcd60e51b815260206004820152601f60248201527f4465706f736974207461726765747320646966666572656e74207661756c7400604482015260640161064d565b505050508080610ead90612f49565b915050610a5c565b5060019150505b9392505050565b33610ed66033546001600160a01b031690565b6001600160a01b031614610f2c5760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161064d565b6040516001600160a01b03821681527f0e2d2343d31b085b7c4e56d1c8a6ec79f7ab07460386f1c9a1756239fe2533ac9060200160405180910390a16065805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b610f9f6117e8565b609980547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff16600160a01b63ffffffff8581169182027fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff1692909217600160c01b928516928302179092556040805192835260208301919091527fe67c0a182190bf283264290d7208533d5936483c98baee174eeac036b081360a91015b60405180910390a15050565b6110516117e8565b6001600160a01b03811660009081526097602052604090205460ff166110df5760405162461bcd60e51b815260206004820152602160248201527f546869732061646472657373206973206e6f74206120636f6f7264696e61746f60448201527f7200000000000000000000000000000000000000000000000000000000000000606482015260840161064d565b6001600160a01b038116600081815260976020526040808220805460ff19169055517fcf15831020102bbbe0547b0c3460aa49715f2646e0911760d2b069e0fb2f62a19190a250565b6111306117e8565b60408051808201909152600080825260208201526001600160601b0319821660009081526098602090815260409091208251815463ffffffff90911663ffffffff19821681178355928401519192839164ffffffffff1916176401000000008360058111156111a1576111a161273d565b0217905550506040516001600160601b0319831691507f5ea2f0397ee52fe8e2e6460e92b334c996f3580dc76c022d41b290cb985f41e690600090a250565b60005a90506111ee82611554565b606554609a546001600160a01b0390911690637ad226dc906a0100000000000000000000900463ffffffff165a61122590856129f5565b61122f9190612a08565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b15801561126e57600080fd5b505af1158015611282573d6000803e3d6000fd5b505050505050565b600054610100900460ff16158080156112aa5750600054600160ff909116105b806112c45750303b1580156112c4575060005460ff166001145b6113365760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161064d565b6000805460ff191660011790558015611359576000805461ff0019166101001790555b611361611d2a565b6099805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038416908117909155604080517fa9de2f3a000000000000000000000000000000000000000000000000000000008152905163a9de2f3a916004808201926080929091908290030181865afa1580156113e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114049190612f62565b6065805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03928316179055609980549091167d38400000138800000e1000000000000000000000000000000000000000001790555050609a80546dffffffffffffffffffffffffffff19166b138800050001518000001c201790555080156114c0576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200161103d565b5050565b6114cc6117e8565b6001600160a01b0381166115485760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161064d565b611551816118cc565b50565b3360009081526097602052604090205460ff166115b35760405162461bcd60e51b815260206004820152601b60248201527f43616c6c6572206973206e6f74206120636f6f7264696e61746f720000000000604482015260640161064d565b6115c06020820182612722565b6001600160601b0319811660009081526098602052604090205463ffffffff16421161161e5760405162461bcd60e51b815260206004820152600d60248201526c15d85b1b195d081b1bd8dad959609a1b604482015260640161064d565b60408051808201909152609954819061164490600160e01b900463ffffffff1642612a1b565b63ffffffff16815260200160029052609860006116646020860186612722565b6001600160601b03191681526020808201929092526040016000208251815463ffffffff90911663ffffffff19821681178355928401519192839164ffffffffff1916176401000000008360058111156116c0576116c061273d565b0217905550506040513391507f80936884707d12c5d8bb32b32fa91535e4f4200316fb138241181fb647d39fa4906116f99085906130a6565b60405180910390a25050565b61170d6117e8565b6001600160a01b03811660009081526097602052604090205460ff161561179c5760405162461bcd60e51b815260206004820152602560248201527f54686973206164647265737320697320616c7265616479206120636f6f72646960448201527f6e61746f72000000000000000000000000000000000000000000000000000000606482015260840161064d565b6001600160a01b038116600081815260976020526040808220805460ff19166001179055517f56e6c5206d2baab7a01569b19d84b5963ca9f96e10f55076b5e5987fbf780cf59190a250565b6033546001600160a01b031633146107fb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161064d565b600060108214611854575060006118c6565b611898600084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050611d9d9050565b77ffffffffffffffffffffffffffffffffffffffffffffffff19908116146118c2575060006118c6565b5060015b92915050565b603380546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600082116119a15760405162461bcd60e51b815260206004820152602760248201527f50726f706f736564207472616e73616374696f6e206665652063616e6e6f742060448201527f6265207a65726f00000000000000000000000000000000000000000000000000606482015260840161064d565b60006119ad8284613170565b90506000826119bc83866129f5565b6119c69190613184565b90506000609960009054906101000a90046001600160a01b03166001600160a01b031663c42b64d06040518163ffffffff1660e01b8152600401608060405180830381865afa158015611a1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a419190613198565b5092505067ffffffffffffffff82169050611a5c8484612a08565b1115611acf5760405162461bcd60e51b8152602060048201526024808201527f50726f706f736564207472616e73616374696f6e2066656520697320746f6f2060448201527f6869676800000000000000000000000000000000000000000000000000000000606482015260840161064d565b5050505050565b805180516020808301516040808501516060909501519051600095611b1895611b0495909493919201613213565b604051602081830303815290604052611dac565b84519091508114611b915760405162461bcd60e51b815260206004820152602960248201527f457874726120696e666f2066756e64696e67207478206861736820646f65732060448201527f6e6f74206d617463680000000000000000000000000000000000000000000000606482015260840161064d565b6000838360200151846040015185606001518660800151604051602001611bbc959493929190613249565b60405160208183030381529060405290506000611bf4866020015163ffffffff16856000015160400151611dd390919063ffffffff16565b90506000611c0182611fb5565b905080516014148015611c395750611c1883611fcf565b6001600160601b031916611c2d826000611d9d565b6001600160601b031916145b15611c475750505050505050565b80516020148015611cae5750600283604051611c6391906134cf565b602060405180830381855afa158015611c80573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611ca391906134db565b611cac82611ff6565b145b15611cbc5750505050505050565b60405162461bcd60e51b815260206004820152602f60248201527f457874726120696e666f2066756e64696e67206f75747075742073637269707460448201527f20646f6573206e6f74206d617463680000000000000000000000000000000000606482015260840161064d565b600054610100900460ff16611d955760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161064d565b6107fb612011565b6000610ebc8383016020015190565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b6060600080611de185612085565b909250905060018201611e5c5760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e7420706172736960448201527f6e67000000000000000000000000000000000000000000000000000000000000606482015260840161064d565b808410611eab5760405162461bcd60e51b815260206004820152601160248201527f566f75742072656164206f76657272756e000000000000000000000000000000604482015260640161064d565b600080611eb9846001612a08565b905060005b86811015611f4157611ed0888361209c565b92506000198303611f235760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b6579000000000000604482015260640161064d565b611f2d8383612a08565b915080611f3981612f49565b915050611ebe565b50611f4c878261209c565b91506000198203611f9f5760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b6579000000000000604482015260640161064d565b611faa878284612109565b979650505050505050565b60606118c6826008808551611fca91906129f5565b6121d6565b60006020600083516020850160025afa50602060006020600060035afa5050600c51919050565b6000815160000361200957506000919050565b506020015190565b600054610100900460ff1661207c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161064d565b6107fb336118cc565b6000806120938360006124db565b91509150915091565b60006120a9826009612a08565b835110156120ba57506000196118c6565b6000806120d1856120cc866008612a08565b6124db565b9092509050600182016120ea57600019925050506118c6565b806120f6836009612a08565b6121009190612a08565b95945050505050565b6060816000036121285750604080516020810190915260008152610ebc565b60006121348385612a08565b90508381118015612146575080855110155b6121925760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e647300000000000000000000000000604482015260640161064d565b604051915082604083010160405282825283850182038460208701018481015b808210156121cb578151838301526020820191506121b2565b505050509392505050565b606060008484815181106121ec576121ec612c29565b016020015160f81c9050826122028260016134f4565b60ff1614612220575050604080516020810190915260008152610ebc565b8461222c856001612a08565b8151811061223c5761223c612c29565b016020015160f81c6000036122fb5760028160ff16101561226d575050604080516020810190915260008152610ebc565b60008561227b866002612a08565b8151811061228b5761228b612c29565b016020015160f81c90506122a060028361350d565b60ff16811415806122be5750806020141580156122be575080601414155b156122dc576040518060200160405280600081525092505050610ebc565b6122f26122ea866003612a08565b879083612109565b92505050610ebc565b60006123078686611d9d565b90507fffffff000000000000000000000000000000000000000000000000000000000081167f1976a900000000000000000000000000000000000000000000000000000000000361241b578561235e866003612a08565b8151811061236e5761236e612c29565b60209101015160f81c60141415806123e657506123a160026123908688612a08565b61239a91906129f5565b8790611d9d565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f88ac00000000000000000000000000000000000000000000000000000000000014155b15612404576040518060200160405280600081525092505050610ebc565b6122f2612412866004612a08565b87906014612109565b7fffffff000000000000000000000000000000000000000000000000000000000081167f17a9140000000000000000000000000000000000000000000000000000000000036124c2578560016124718688612a08565b61247b91906129f5565b8151811061248b5761248b612c29565b60209101015160f81c6087146124b4576040518060200160405280600081525092505050610ebc565b6122f2612412866003612a08565b5050506040805160208101909152600081529392505050565b60008060006124ea858561267f565b90508060ff1660000361251f57600085858151811061250b5761250b612c29565b016020015190935060f81c91506126789050565b8361252b8260016134f4565b60ff166125389190612a08565b8551101561254f5760001960009250925050612678565b60008160ff166002036125935761258861257461256d876001612a08565b8890611d9d565b62ffff0060e882901c1660f89190911c1790565b61ffff16905061266e565b8160ff166004036125e2576125d56125af61256d876001612a08565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b63ffffffff16905061266e565b8160ff1660080361266e576126616125fe61256d876001612a08565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b600082828151811061269357612693612c29565b016020015160f81c60ff036126aa575060086118c6565b8282815181106126bc576126bc612c29565b016020015160f81c60fe036126d3575060046118c6565b8282815181106126e5576126e5612c29565b016020015160f81c60fd036126fc575060026118c6565b50600092915050565b80356001600160601b03198116811461271d57600080fd5b919050565b60006020828403121561273457600080fd5b610ebc82612705565b634e487b7160e01b600052602160045260246000fd5b63ffffffff83168152604081016006831061277e57634e487b7160e01b600052602160045260246000fd5b8260208301529392505050565b6000806000604084860312156127a057600080fd5b6127a984612705565b9250602084013567ffffffffffffffff808211156127c657600080fd5b818601915086601f8301126127da57600080fd5b8135818111156127e957600080fd5b8760208285010111156127fb57600080fd5b6020830194508093505050509250925092565b63ffffffff8116811461155157600080fd5b600080600080600060a0868803121561283857600080fd5b85356128438161280e565b945060208601356128538161280e565b935060408601356128638161280e565b9250606086013561ffff8116811461287a57600080fd5b9150608086013561288a8161280e565b809150509295509295909350565b6000608082840312156128aa57600080fd5b50919050565b6000806000604084860312156128c557600080fd5b833567ffffffffffffffff808211156128dd57600080fd5b6128e987838801612898565b945060208601359150808211156128ff57600080fd5b818601915086601f83011261291357600080fd5b81358181111561292257600080fd5b8760208260051b85010111156127fb57600080fd5b6001600160a01b038116811461155157600080fd5b60006020828403121561295e57600080fd5b8135610ebc81612937565b6000806040838503121561297c57600080fd5b82356129878161280e565b915060208301356129978161280e565b809150509250929050565b6000602082840312156129b457600080fd5b813567ffffffffffffffff8111156129cb57600080fd5b6129d784828501612898565b949350505050565b634e487b7160e01b600052601160045260246000fd5b818103818111156118c6576118c66129df565b808201808211156118c6576118c66129df565b63ffffffff818116838216019080821115612a3857612a386129df565b5092915050565b6bffffffffffffffffffffffff198416815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f1916010192915050565b634e487b7160e01b600052604160045260246000fd5b604051610120810167ffffffffffffffff81118282101715612abe57612abe612a84565b60405290565b60405160a0810167ffffffffffffffff81118282101715612abe57612abe612a84565b6040516080810167ffffffffffffffff81118282101715612abe57612abe612a84565b805167ffffffffffffffff8116811461271d57600080fd5b805161271d8161280e565b80516006811061271d57600080fd5b60006101208284031215612b4f57600080fd5b612b57612a9a565b8251815260208301516020820152612b7160408401612b0a565b6040820152612b8260608401612b22565b6060820152612b9360808401612b22565b6080820152612ba460a08401612b22565b60a0820152612bb560c08401612b22565b60c0820152612bc660e08401612b2d565b60e0820152610100928301519281019290925250919050565b6000808335601e19843603018112612bf657600080fd5b83018035915067ffffffffffffffff821115612c1157600080fd5b6020019150600681901b360382131561267857600080fd5b634e487b7160e01b600052603260045260246000fd5b600060408284031215612c5157600080fd5b6040516040810181811067ffffffffffffffff82111715612c7457612c74612a84565b604052823581526020830135612c898161280e565b60208201529392505050565b60008235609e19833603018112612cab57600080fd5b9190910192915050565b80356001600160e01b03198116811461271d57600080fd5b600082601f830112612cde57600080fd5b813567ffffffffffffffff80821115612cf957612cf9612a84565b604051601f8301601f19908116603f01168101908282118183101715612d2157612d21612a84565b81604052838152866020858801011115612d3a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b803577ffffffffffffffffffffffffffffffffffffffffffffffff198116811461271d57600080fd5b600060a08236031215612d9557600080fd5b612d9d612ac4565b823567ffffffffffffffff80821115612db557600080fd5b818501915060808236031215612dca57600080fd5b612dd2612ae7565b612ddb83612cb5565b8152602083013582811115612def57600080fd5b612dfb36828601612ccd565b602083015250604083013582811115612e1357600080fd5b612e1f36828601612ccd565b604083015250612e3160608401612cb5565b6060820152835250612e47905060208401612d5a565b6020820152612e5860408401612705565b6040820152612e6960608401612705565b6060820152612e7a60808401612cb5565b608082015292915050565b600060c08284031215612e9757600080fd5b60405160c0810181811067ffffffffffffffff82111715612eba57612eba612a84565b6040528251612ec881612937565b8152612ed660208401612b0a565b60208201526040830151612ee98161280e565b60408201526060830151612efc81612937565b6060820152612f0d60808401612b0a565b608082015260a0830151612f208161280e565b60a08201529392505050565b63ffffffff828116828216039080821115612a3857612a386129df565b600060018201612f5b57612f5b6129df565b5060010190565b60008060008060808587031215612f7857600080fd5b8451612f8381612937565b6020860151909450612f9481612937565b6040860151909350612fa581612937565b6060860151909250612fb681612937565b939692955090935050565b8183526000602080850194508260005b85811015613007578135875282820135612fea8161280e565b63ffffffff16878401526040968701969190910190600101612fd1565b509495945050505050565b6000808335601e1984360301811261302957600080fd5b830160208101925035905067ffffffffffffffff81111561304957600080fd5b8060051b360382131561267857600080fd5b81835260007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83111561308d57600080fd5b8260051b80836020870137939093016020019392505050565b602081526001600160601b03196130bc83612705565b16602082015260006020830135601e198436030181126130db57600080fd5b830160208101903567ffffffffffffffff8111156130f857600080fd5b8060061b360382131561310a57600080fd5b6080604085015261311f60a085018284612fc1565b915050604084013560608401526131396060850185613012565b848303601f1901608086015261315083828461305b565b9695505050505050565b634e487b7160e01b600052601260045260246000fd5b60008261317f5761317f61315a565b500690565b6000826131935761319361315a565b500490565b600080600080608085870312156131ae57600080fd5b6131b785612b0a565b93506131c560208601612b0a565b92506131d360408601612b0a565b91506060850151612fb68161280e565b6000815160005b8181101561320457602081850181015186830152016131ea565b50600093019283525090919050565b60006001600160e01b0319808716835261323961323360048501886131e3565b866131e3565b9316835250506004019392505050565b600560fa1b8152606086901b6001600160601b0319166001820152607560f81b60158201527f0800000000000000000000000000000000000000000000000000000000000000601682015277ffffffffffffffffffffffffffffffffffffffffffffffff1985166017820152607560f81b601f820152600061332e6133216132f8602085015b7f7600000000000000000000000000000000000000000000000000000000000000815260010190565b7fa900000000000000000000000000000000000000000000000000000000000000815260010190565b600560fa1b815260010190565b6001600160601b0319861681527f870000000000000000000000000000000000000000000000000000000000000060148201527f630000000000000000000000000000000000000000000000000000000000000060158201526133ed6133216132f86132cf6133c4601686015b7fac00000000000000000000000000000000000000000000000000000000000000815260010190565b7f6700000000000000000000000000000000000000000000000000000000000000815260010190565b6001600160601b0319861681527f880000000000000000000000000000000000000000000000000000000000000060148201527f040000000000000000000000000000000000000000000000000000000000000060158201529050601681016001600160e01b0319851681527fb1000000000000000000000000000000000000000000000000000000000000006004820152607560f81b600582015290506134c361349a6006830161339b565b7f6800000000000000000000000000000000000000000000000000000000000000815260010190565b98975050505050505050565b6000610ebc82846131e3565b6000602082840312156134ed57600080fd5b5051919050565b60ff81811683821601908111156118c6576118c66129df565b60ff82811682821603908111156118c6576118c66129df56fea2646970667358221220cdc12ff5bef6cd936f8450f17f92fb868d5b75c0b204e3466941ae98a9b16f3064736f6c63430008110033";
814
+ var _bytecode = "0x608060405234801561001057600080fd5b5061355c806100206000396000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c80639039bc1c116100ee578063c09975cd11610097578063f2fde38b11610071578063f2fde38b146103f5578063f5aceab614610408578063f74b37bd1461041b578063fbd6d77e1461043257600080fd5b8063c09975cd146103bc578063c4d66de8146103cf578063e78cea92146103e257600080fd5b8063aec32099116100c8578063aec3209914610376578063b39e101614610399578063bc20a080146103ac57600080fd5b80639039bc1c1461031f578063a34fff5914610332578063acaac7051461034957600080fd5b8063715018a61161015b5780637fbf9b39116101355780637fbf9b39146102bd57806385a0924c146102d45780638cb5a0c0146102e75780638da5cb5b146102fa57600080fd5b8063715018a61461027f5780637405d7bf146102875780637b35b4e6146102aa57600080fd5b806334173c2d1161018c57806334173c2d146102445780635486032e146102595780636348c4391461026c57600080fd5b806308553292146101b35780632c259d2b146101eb57806331d8c6221461022c575b600080fd5b609a546101d1906a0100000000000000000000900463ffffffff1681565b60405163ffffffff90911681526020015b60405180910390f35b61021e6101f9366004612722565b60986020526000908152604090205463ffffffff811690640100000000900460ff1682565b6040516101e2929190612753565b609a546101d190640100000000900463ffffffff1681565b61025761025236600461278b565b610445565b005b610257610267366004612820565b6104ec565b61025761027a36600461278b565b6105f2565b6102576107e9565b61029a6102953660046128b0565b6107fd565b60405190151581526020016101e2565b6102576102b836600461294c565b610ec3565b6099546101d190600160a01b900463ffffffff1681565b6102576102e2366004612969565b610f97565b6102576102f536600461294c565b611049565b6033546001600160a01b03165b6040516001600160a01b0390911681526020016101e2565b61025761032d366004612722565b611128565b6099546101d190600160c01b900463ffffffff1681565b609a546103639068010000000000000000900461ffff1681565b60405161ffff90911681526020016101e2565b61029a61038436600461294c565b60976020526000908152604090205460ff1681565b6102576103a73660046129a2565b6111e0565b609a546101d19063ffffffff1681565b606554610307906001600160a01b031681565b6102576103dd36600461294c565b61128a565b609954610307906001600160a01b031681565b61025761040336600461294c565b6114c4565b6102576104163660046129a2565b611554565b6099546101d190600160e01b900463ffffffff1681565b61025761044036600461294c565b611705565b60005a90506104558484846105f2565b6065546099546001600160a01b0390911690637ad226dc90600160c01b900463ffffffff165a61048590856129f5565b61048f9190612a08565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b1580156104ce57600080fd5b505af11580156104e2573d6000803e3d6000fd5b5050505050505050565b6104f46117e8565b609980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160e01b63ffffffff88811691820292909217909255609a805487831667ffffffffffffffff199091168117640100000000888516908102919091176dffffffffffff000000000000000019166801000000000000000061ffff89169081026dffffffff000000000000000000001916919091176a01000000000000000000009588169586021790935560408051958652602086019290925290840152606083015260808201527fc36fe6b9d74f864b5e345edc3435eb451a80669ec78c8357cc15e3a1d3897a739060a00160405180910390a15050505050565b3360009081526097602052604090205460ff166106565760405162461bcd60e51b815260206004820152601b60248201527f43616c6c6572206973206e6f74206120636f6f7264696e61746f72000000000060448201526064015b60405180910390fd5b6001600160601b03198316600090815260986020526040902054839063ffffffff1642116106b65760405162461bcd60e51b815260206004820152600d60248201526c15d85b1b195d081b1bd8dad959609a1b604482015260640161064d565b6106c08383611842565b61070c5760405162461bcd60e51b815260206004820152601d60248201527f4e6f7420612076616c696420686561727462656174206d657373616765000000604482015260640161064d565b60408051808201909152609954819061073290600160a01b900463ffffffff1642612a1b565b63ffffffff168152602001600190526001600160601b0319851660009081526098602090815260409091208251815463ffffffff90911663ffffffff19821681178355928401519192839164ffffffffff19161764010000000083600581111561079e5761079e61273d565b0217905550506040513391507f46f4f1fc7a1c5c364372f2e4398c3657d5e5cc35ea286f9972459376b29b1384906107db90879087908790612a3f565b60405180910390a250505050565b6107f16117e8565b6107fb60006118cc565b565b600060016099546001600160a01b031663e65e19d561081f6020880188612722565b6040516001600160e01b031960e084901b1681526001600160601b0319909116600482015260240161012060405180830381865afa158015610865573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108899190612b3c565b60e00151600581111561089e5761089e61273d565b146108eb5760405162461bcd60e51b815260206004820152601b60248201527f57616c6c6574206973206e6f7420696e204c6976652073746174650000000000604482015260640161064d565b60006108fa6020860186612bdf565b9050116109495760405162461bcd60e51b815260206004820152601860248201527f53776565702062656c6f7720746865206d696e2073697a650000000000000000604482015260640161064d565b609a5468010000000000000000900461ffff166109696020860186612bdf565b905011156109b95760405162461bcd60e51b815260206004820152601a60248201527f5377656570206578636565647320746865206d61782073697a65000000000000604482015260640161064d565b816109c76020860186612bdf565b905014610a3c5760405162461bcd60e51b815260206004820152602e60248201527f45616368206465706f736974206b6579206d7573742068617665206d6174636860448201527f696e672065787472612064617461000000000000000000000000000000000000606482015260840161064d565b610a586040850135610a516020870187612bdf565b905061192b565b6000805b610a696020870187612bdf565b9050811015610eb5576000610a816020880188612bdf565b83818110610a9157610a91612c29565b905060400201803603810190610aa79190612c3f565b90506000868684818110610abd57610abd612c29565b9050602002810190610acf9190612c95565b610ad890612d83565b60995483516020808601516040519495506000946001600160a01b039094169363b02c43d093610b21939092910191825260e01b6001600160e01b031916602082015260240190565b60408051808303601f1901815290829052805160209091012060e083901b6001600160e01b0319168252600482015260240160c060405180830381865afa158015610b70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b949190612e85565b9050806040015163ffffffff16600003610bf05760405162461bcd60e51b815260206004820152601460248201527f4465706f736974206e6f742072657665616c6564000000000000000000000000604482015260640161064d565b609a546040820151610c089163ffffffff1690612a1b565b63ffffffff164211610c5c5760405162461bcd60e51b815260206004820181905260248201527f4465706f736974206d696e20616765206e6f7420616368696576656420796574604482015260640161064d565b60a081015163ffffffff1615610cb45760405162461bcd60e51b815260206004820152601560248201527f4465706f73697420616c72656164792073776570740000000000000000000000604482015260640161064d565b610cc383826000015184611ad6565b608082015160009060d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c17609a54909150610d0c90640100000000900463ffffffff1682612f2c565b63ffffffff164210610d865760405162461bcd60e51b815260206004820152602d60248201527f4465706f73697420726566756e6420736166657479206d617267696e2069732060448201527f6e6f742070726573657276656400000000000000000000000000000000000000606482015260840161064d565b610d9360208b018b612722565b6bffffffffffffffffffffffff191683604001516bffffffffffffffffffffffff191614610e295760405162461bcd60e51b815260206004820152602660248201527f4465706f73697420636f6e74726f6c6c656420627920646966666572656e742060448201527f77616c6c65740000000000000000000000000000000000000000000000000000606482015260840161064d565b84600003610e3957816060015195505b856001600160a01b031682606001516001600160a01b031614610e9e5760405162461bcd60e51b815260206004820152601f60248201527f4465706f736974207461726765747320646966666572656e74207661756c7400604482015260640161064d565b505050508080610ead90612f49565b915050610a5c565b5060019150505b9392505050565b33610ed66033546001600160a01b031690565b6001600160a01b031614610f2c5760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161064d565b6040516001600160a01b03821681527f0e2d2343d31b085b7c4e56d1c8a6ec79f7ab07460386f1c9a1756239fe2533ac9060200160405180910390a16065805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b610f9f6117e8565b609980547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff16600160a01b63ffffffff8581169182027fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff1692909217600160c01b928516928302179092556040805192835260208301919091527fe67c0a182190bf283264290d7208533d5936483c98baee174eeac036b081360a91015b60405180910390a15050565b6110516117e8565b6001600160a01b03811660009081526097602052604090205460ff166110df5760405162461bcd60e51b815260206004820152602160248201527f546869732061646472657373206973206e6f74206120636f6f7264696e61746f60448201527f7200000000000000000000000000000000000000000000000000000000000000606482015260840161064d565b6001600160a01b038116600081815260976020526040808220805460ff19169055517fcf15831020102bbbe0547b0c3460aa49715f2646e0911760d2b069e0fb2f62a19190a250565b6111306117e8565b60408051808201909152600080825260208201526001600160601b0319821660009081526098602090815260409091208251815463ffffffff90911663ffffffff19821681178355928401519192839164ffffffffff1916176401000000008360058111156111a1576111a161273d565b0217905550506040516001600160601b0319831691507f5ea2f0397ee52fe8e2e6460e92b334c996f3580dc76c022d41b290cb985f41e690600090a250565b60005a90506111ee82611554565b606554609a546001600160a01b0390911690637ad226dc906a0100000000000000000000900463ffffffff165a61122590856129f5565b61122f9190612a08565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b15801561126e57600080fd5b505af1158015611282573d6000803e3d6000fd5b505050505050565b600054610100900460ff16158080156112aa5750600054600160ff909116105b806112c45750303b1580156112c4575060005460ff166001145b6113365760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161064d565b6000805460ff191660011790558015611359576000805461ff0019166101001790555b611361611d2a565b6099805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038416908117909155604080517fa9de2f3a000000000000000000000000000000000000000000000000000000008152905163a9de2f3a916004808201926080929091908290030181865afa1580156113e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114049190612f62565b6065805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03928316179055609980549091167d38400000271000000e1000000000000000000000000000000000000000001790555050609a80546dffffffffffffffffffffffffffff19166b4e2000050001518000001c201790555080156114c0576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200161103d565b5050565b6114cc6117e8565b6001600160a01b0381166115485760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161064d565b611551816118cc565b50565b3360009081526097602052604090205460ff166115b35760405162461bcd60e51b815260206004820152601b60248201527f43616c6c6572206973206e6f74206120636f6f7264696e61746f720000000000604482015260640161064d565b6115c06020820182612722565b6001600160601b0319811660009081526098602052604090205463ffffffff16421161161e5760405162461bcd60e51b815260206004820152600d60248201526c15d85b1b195d081b1bd8dad959609a1b604482015260640161064d565b60408051808201909152609954819061164490600160e01b900463ffffffff1642612a1b565b63ffffffff16815260200160029052609860006116646020860186612722565b6001600160601b03191681526020808201929092526040016000208251815463ffffffff90911663ffffffff19821681178355928401519192839164ffffffffff1916176401000000008360058111156116c0576116c061273d565b0217905550506040513391507f80936884707d12c5d8bb32b32fa91535e4f4200316fb138241181fb647d39fa4906116f99085906130a6565b60405180910390a25050565b61170d6117e8565b6001600160a01b03811660009081526097602052604090205460ff161561179c5760405162461bcd60e51b815260206004820152602560248201527f54686973206164647265737320697320616c7265616479206120636f6f72646960448201527f6e61746f72000000000000000000000000000000000000000000000000000000606482015260840161064d565b6001600160a01b038116600081815260976020526040808220805460ff19166001179055517f56e6c5206d2baab7a01569b19d84b5963ca9f96e10f55076b5e5987fbf780cf59190a250565b6033546001600160a01b031633146107fb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161064d565b600060108214611854575060006118c6565b611898600084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050611d9d9050565b77ffffffffffffffffffffffffffffffffffffffffffffffff19908116146118c2575060006118c6565b5060015b92915050565b603380546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600082116119a15760405162461bcd60e51b815260206004820152602760248201527f50726f706f736564207472616e73616374696f6e206665652063616e6e6f742060448201527f6265207a65726f00000000000000000000000000000000000000000000000000606482015260840161064d565b60006119ad8284613170565b90506000826119bc83866129f5565b6119c69190613184565b90506000609960009054906101000a90046001600160a01b03166001600160a01b031663c42b64d06040518163ffffffff1660e01b8152600401608060405180830381865afa158015611a1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a419190613198565b5092505067ffffffffffffffff82169050611a5c8484612a08565b1115611acf5760405162461bcd60e51b8152602060048201526024808201527f50726f706f736564207472616e73616374696f6e2066656520697320746f6f2060448201527f6869676800000000000000000000000000000000000000000000000000000000606482015260840161064d565b5050505050565b805180516020808301516040808501516060909501519051600095611b1895611b0495909493919201613213565b604051602081830303815290604052611dac565b84519091508114611b915760405162461bcd60e51b815260206004820152602960248201527f457874726120696e666f2066756e64696e67207478206861736820646f65732060448201527f6e6f74206d617463680000000000000000000000000000000000000000000000606482015260840161064d565b6000838360200151846040015185606001518660800151604051602001611bbc959493929190613249565b60405160208183030381529060405290506000611bf4866020015163ffffffff16856000015160400151611dd390919063ffffffff16565b90506000611c0182611fb5565b905080516014148015611c395750611c1883611fcf565b6001600160601b031916611c2d826000611d9d565b6001600160601b031916145b15611c475750505050505050565b80516020148015611cae5750600283604051611c6391906134cf565b602060405180830381855afa158015611c80573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611ca391906134db565b611cac82611ff6565b145b15611cbc5750505050505050565b60405162461bcd60e51b815260206004820152602f60248201527f457874726120696e666f2066756e64696e67206f75747075742073637269707460448201527f20646f6573206e6f74206d617463680000000000000000000000000000000000606482015260840161064d565b600054610100900460ff16611d955760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161064d565b6107fb612011565b6000610ebc8383016020015190565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b6060600080611de185612085565b909250905060018201611e5c5760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e7420706172736960448201527f6e67000000000000000000000000000000000000000000000000000000000000606482015260840161064d565b808410611eab5760405162461bcd60e51b815260206004820152601160248201527f566f75742072656164206f76657272756e000000000000000000000000000000604482015260640161064d565b600080611eb9846001612a08565b905060005b86811015611f4157611ed0888361209c565b92506000198303611f235760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b6579000000000000604482015260640161064d565b611f2d8383612a08565b915080611f3981612f49565b915050611ebe565b50611f4c878261209c565b91506000198203611f9f5760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b6579000000000000604482015260640161064d565b611faa878284612109565b979650505050505050565b60606118c6826008808551611fca91906129f5565b6121d6565b60006020600083516020850160025afa50602060006020600060035afa5050600c51919050565b6000815160000361200957506000919050565b506020015190565b600054610100900460ff1661207c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161064d565b6107fb336118cc565b6000806120938360006124db565b91509150915091565b60006120a9826009612a08565b835110156120ba57506000196118c6565b6000806120d1856120cc866008612a08565b6124db565b9092509050600182016120ea57600019925050506118c6565b806120f6836009612a08565b6121009190612a08565b95945050505050565b6060816000036121285750604080516020810190915260008152610ebc565b60006121348385612a08565b90508381118015612146575080855110155b6121925760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e647300000000000000000000000000604482015260640161064d565b604051915082604083010160405282825283850182038460208701018481015b808210156121cb578151838301526020820191506121b2565b505050509392505050565b606060008484815181106121ec576121ec612c29565b016020015160f81c9050826122028260016134f4565b60ff1614612220575050604080516020810190915260008152610ebc565b8461222c856001612a08565b8151811061223c5761223c612c29565b016020015160f81c6000036122fb5760028160ff16101561226d575050604080516020810190915260008152610ebc565b60008561227b866002612a08565b8151811061228b5761228b612c29565b016020015160f81c90506122a060028361350d565b60ff16811415806122be5750806020141580156122be575080601414155b156122dc576040518060200160405280600081525092505050610ebc565b6122f26122ea866003612a08565b879083612109565b92505050610ebc565b60006123078686611d9d565b90507fffffff000000000000000000000000000000000000000000000000000000000081167f1976a900000000000000000000000000000000000000000000000000000000000361241b578561235e866003612a08565b8151811061236e5761236e612c29565b60209101015160f81c60141415806123e657506123a160026123908688612a08565b61239a91906129f5565b8790611d9d565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f88ac00000000000000000000000000000000000000000000000000000000000014155b15612404576040518060200160405280600081525092505050610ebc565b6122f2612412866004612a08565b87906014612109565b7fffffff000000000000000000000000000000000000000000000000000000000081167f17a9140000000000000000000000000000000000000000000000000000000000036124c2578560016124718688612a08565b61247b91906129f5565b8151811061248b5761248b612c29565b60209101015160f81c6087146124b4576040518060200160405280600081525092505050610ebc565b6122f2612412866003612a08565b5050506040805160208101909152600081529392505050565b60008060006124ea858561267f565b90508060ff1660000361251f57600085858151811061250b5761250b612c29565b016020015190935060f81c91506126789050565b8361252b8260016134f4565b60ff166125389190612a08565b8551101561254f5760001960009250925050612678565b60008160ff166002036125935761258861257461256d876001612a08565b8890611d9d565b62ffff0060e882901c1660f89190911c1790565b61ffff16905061266e565b8160ff166004036125e2576125d56125af61256d876001612a08565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b63ffffffff16905061266e565b8160ff1660080361266e576126616125fe61256d876001612a08565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b600082828151811061269357612693612c29565b016020015160f81c60ff036126aa575060086118c6565b8282815181106126bc576126bc612c29565b016020015160f81c60fe036126d3575060046118c6565b8282815181106126e5576126e5612c29565b016020015160f81c60fd036126fc575060026118c6565b50600092915050565b80356001600160601b03198116811461271d57600080fd5b919050565b60006020828403121561273457600080fd5b610ebc82612705565b634e487b7160e01b600052602160045260246000fd5b63ffffffff83168152604081016006831061277e57634e487b7160e01b600052602160045260246000fd5b8260208301529392505050565b6000806000604084860312156127a057600080fd5b6127a984612705565b9250602084013567ffffffffffffffff808211156127c657600080fd5b818601915086601f8301126127da57600080fd5b8135818111156127e957600080fd5b8760208285010111156127fb57600080fd5b6020830194508093505050509250925092565b63ffffffff8116811461155157600080fd5b600080600080600060a0868803121561283857600080fd5b85356128438161280e565b945060208601356128538161280e565b935060408601356128638161280e565b9250606086013561ffff8116811461287a57600080fd5b9150608086013561288a8161280e565b809150509295509295909350565b6000608082840312156128aa57600080fd5b50919050565b6000806000604084860312156128c557600080fd5b833567ffffffffffffffff808211156128dd57600080fd5b6128e987838801612898565b945060208601359150808211156128ff57600080fd5b818601915086601f83011261291357600080fd5b81358181111561292257600080fd5b8760208260051b85010111156127fb57600080fd5b6001600160a01b038116811461155157600080fd5b60006020828403121561295e57600080fd5b8135610ebc81612937565b6000806040838503121561297c57600080fd5b82356129878161280e565b915060208301356129978161280e565b809150509250929050565b6000602082840312156129b457600080fd5b813567ffffffffffffffff8111156129cb57600080fd5b6129d784828501612898565b949350505050565b634e487b7160e01b600052601160045260246000fd5b818103818111156118c6576118c66129df565b808201808211156118c6576118c66129df565b63ffffffff818116838216019080821115612a3857612a386129df565b5092915050565b6bffffffffffffffffffffffff198416815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f1916010192915050565b634e487b7160e01b600052604160045260246000fd5b604051610120810167ffffffffffffffff81118282101715612abe57612abe612a84565b60405290565b60405160a0810167ffffffffffffffff81118282101715612abe57612abe612a84565b6040516080810167ffffffffffffffff81118282101715612abe57612abe612a84565b805167ffffffffffffffff8116811461271d57600080fd5b805161271d8161280e565b80516006811061271d57600080fd5b60006101208284031215612b4f57600080fd5b612b57612a9a565b8251815260208301516020820152612b7160408401612b0a565b6040820152612b8260608401612b22565b6060820152612b9360808401612b22565b6080820152612ba460a08401612b22565b60a0820152612bb560c08401612b22565b60c0820152612bc660e08401612b2d565b60e0820152610100928301519281019290925250919050565b6000808335601e19843603018112612bf657600080fd5b83018035915067ffffffffffffffff821115612c1157600080fd5b6020019150600681901b360382131561267857600080fd5b634e487b7160e01b600052603260045260246000fd5b600060408284031215612c5157600080fd5b6040516040810181811067ffffffffffffffff82111715612c7457612c74612a84565b604052823581526020830135612c898161280e565b60208201529392505050565b60008235609e19833603018112612cab57600080fd5b9190910192915050565b80356001600160e01b03198116811461271d57600080fd5b600082601f830112612cde57600080fd5b813567ffffffffffffffff80821115612cf957612cf9612a84565b604051601f8301601f19908116603f01168101908282118183101715612d2157612d21612a84565b81604052838152866020858801011115612d3a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b803577ffffffffffffffffffffffffffffffffffffffffffffffff198116811461271d57600080fd5b600060a08236031215612d9557600080fd5b612d9d612ac4565b823567ffffffffffffffff80821115612db557600080fd5b818501915060808236031215612dca57600080fd5b612dd2612ae7565b612ddb83612cb5565b8152602083013582811115612def57600080fd5b612dfb36828601612ccd565b602083015250604083013582811115612e1357600080fd5b612e1f36828601612ccd565b604083015250612e3160608401612cb5565b6060820152835250612e47905060208401612d5a565b6020820152612e5860408401612705565b6040820152612e6960608401612705565b6060820152612e7a60808401612cb5565b608082015292915050565b600060c08284031215612e9757600080fd5b60405160c0810181811067ffffffffffffffff82111715612eba57612eba612a84565b6040528251612ec881612937565b8152612ed660208401612b0a565b60208201526040830151612ee98161280e565b60408201526060830151612efc81612937565b6060820152612f0d60808401612b0a565b608082015260a0830151612f208161280e565b60a08201529392505050565b63ffffffff828116828216039080821115612a3857612a386129df565b600060018201612f5b57612f5b6129df565b5060010190565b60008060008060808587031215612f7857600080fd5b8451612f8381612937565b6020860151909450612f9481612937565b6040860151909350612fa581612937565b6060860151909250612fb681612937565b939692955090935050565b8183526000602080850194508260005b85811015613007578135875282820135612fea8161280e565b63ffffffff16878401526040968701969190910190600101612fd1565b509495945050505050565b6000808335601e1984360301811261302957600080fd5b830160208101925035905067ffffffffffffffff81111561304957600080fd5b8060051b360382131561267857600080fd5b81835260007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83111561308d57600080fd5b8260051b80836020870137939093016020019392505050565b602081526001600160601b03196130bc83612705565b16602082015260006020830135601e198436030181126130db57600080fd5b830160208101903567ffffffffffffffff8111156130f857600080fd5b8060061b360382131561310a57600080fd5b6080604085015261311f60a085018284612fc1565b915050604084013560608401526131396060850185613012565b848303601f1901608086015261315083828461305b565b9695505050505050565b634e487b7160e01b600052601260045260246000fd5b60008261317f5761317f61315a565b500690565b6000826131935761319361315a565b500490565b600080600080608085870312156131ae57600080fd5b6131b785612b0a565b93506131c560208601612b0a565b92506131d360408601612b0a565b91506060850151612fb68161280e565b6000815160005b8181101561320457602081850181015186830152016131ea565b50600093019283525090919050565b60006001600160e01b0319808716835261323961323360048501886131e3565b866131e3565b9316835250506004019392505050565b600560fa1b8152606086901b6001600160601b0319166001820152607560f81b60158201527f0800000000000000000000000000000000000000000000000000000000000000601682015277ffffffffffffffffffffffffffffffffffffffffffffffff1985166017820152607560f81b601f820152600061332e6133216132f8602085015b7f7600000000000000000000000000000000000000000000000000000000000000815260010190565b7fa900000000000000000000000000000000000000000000000000000000000000815260010190565b600560fa1b815260010190565b6001600160601b0319861681527f870000000000000000000000000000000000000000000000000000000000000060148201527f630000000000000000000000000000000000000000000000000000000000000060158201526133ed6133216132f86132cf6133c4601686015b7fac00000000000000000000000000000000000000000000000000000000000000815260010190565b7f6700000000000000000000000000000000000000000000000000000000000000815260010190565b6001600160601b0319861681527f880000000000000000000000000000000000000000000000000000000000000060148201527f040000000000000000000000000000000000000000000000000000000000000060158201529050601681016001600160e01b0319851681527fb1000000000000000000000000000000000000000000000000000000000000006004820152607560f81b600582015290506134c361349a6006830161339b565b7f6800000000000000000000000000000000000000000000000000000000000000815260010190565b98975050505050505050565b6000610ebc82846131e3565b6000602082840312156134ed57600080fd5b5051919050565b60ff81811683821601908111156118c6576118c66129df565b60ff82811682821603908111156118c6576118c66129df56fea2646970667358221220066535bd08db934cec0ccdcb31d87d1041b8cb13c7803163a4bea22b3cc6e55b64736f6c63430008110033";
815
815
  var isSuperArgs = function (xs) { return xs.length > 1; };
816
816
  var WalletCoordinator__factory = /** @class */ (function (_super) {
817
817
  __extends(WalletCoordinator__factory, _super);
package/export.json CHANGED
@@ -6891,6 +6891,280 @@
6891
6891
  }
6892
6892
  ]
6893
6893
  },
6894
+ "LightRelayMaintainerProxy": {
6895
+ "address": "0x4ca2f6206Da1A7Cb8155FEA68797EFDf25EFa3C8",
6896
+ "abi": [
6897
+ {
6898
+ "inputs": [
6899
+ {
6900
+ "internalType": "contract ILightRelay",
6901
+ "name": "_lightRelay",
6902
+ "type": "address"
6903
+ },
6904
+ {
6905
+ "internalType": "contract ReimbursementPool",
6906
+ "name": "_reimbursementPool",
6907
+ "type": "address"
6908
+ }
6909
+ ],
6910
+ "stateMutability": "nonpayable",
6911
+ "type": "constructor"
6912
+ },
6913
+ {
6914
+ "anonymous": false,
6915
+ "inputs": [
6916
+ {
6917
+ "indexed": false,
6918
+ "internalType": "address",
6919
+ "name": "newRelay",
6920
+ "type": "address"
6921
+ }
6922
+ ],
6923
+ "name": "LightRelayUpdated",
6924
+ "type": "event"
6925
+ },
6926
+ {
6927
+ "anonymous": false,
6928
+ "inputs": [
6929
+ {
6930
+ "indexed": true,
6931
+ "internalType": "address",
6932
+ "name": "maintainer",
6933
+ "type": "address"
6934
+ }
6935
+ ],
6936
+ "name": "MaintainerAuthorized",
6937
+ "type": "event"
6938
+ },
6939
+ {
6940
+ "anonymous": false,
6941
+ "inputs": [
6942
+ {
6943
+ "indexed": true,
6944
+ "internalType": "address",
6945
+ "name": "maintainer",
6946
+ "type": "address"
6947
+ }
6948
+ ],
6949
+ "name": "MaintainerDeauthorized",
6950
+ "type": "event"
6951
+ },
6952
+ {
6953
+ "anonymous": false,
6954
+ "inputs": [
6955
+ {
6956
+ "indexed": true,
6957
+ "internalType": "address",
6958
+ "name": "previousOwner",
6959
+ "type": "address"
6960
+ },
6961
+ {
6962
+ "indexed": true,
6963
+ "internalType": "address",
6964
+ "name": "newOwner",
6965
+ "type": "address"
6966
+ }
6967
+ ],
6968
+ "name": "OwnershipTransferred",
6969
+ "type": "event"
6970
+ },
6971
+ {
6972
+ "anonymous": false,
6973
+ "inputs": [
6974
+ {
6975
+ "indexed": false,
6976
+ "internalType": "address",
6977
+ "name": "newReimbursementPool",
6978
+ "type": "address"
6979
+ }
6980
+ ],
6981
+ "name": "ReimbursementPoolUpdated",
6982
+ "type": "event"
6983
+ },
6984
+ {
6985
+ "anonymous": false,
6986
+ "inputs": [
6987
+ {
6988
+ "indexed": false,
6989
+ "internalType": "uint256",
6990
+ "name": "retargetGasOffset",
6991
+ "type": "uint256"
6992
+ }
6993
+ ],
6994
+ "name": "RetargetGasOffsetUpdated",
6995
+ "type": "event"
6996
+ },
6997
+ {
6998
+ "inputs": [
6999
+ {
7000
+ "internalType": "address",
7001
+ "name": "maintainer",
7002
+ "type": "address"
7003
+ }
7004
+ ],
7005
+ "name": "authorize",
7006
+ "outputs": [],
7007
+ "stateMutability": "nonpayable",
7008
+ "type": "function"
7009
+ },
7010
+ {
7011
+ "inputs": [
7012
+ {
7013
+ "internalType": "address",
7014
+ "name": "maintainer",
7015
+ "type": "address"
7016
+ }
7017
+ ],
7018
+ "name": "deauthorize",
7019
+ "outputs": [],
7020
+ "stateMutability": "nonpayable",
7021
+ "type": "function"
7022
+ },
7023
+ {
7024
+ "inputs": [
7025
+ {
7026
+ "internalType": "address",
7027
+ "name": "",
7028
+ "type": "address"
7029
+ }
7030
+ ],
7031
+ "name": "isAuthorized",
7032
+ "outputs": [
7033
+ {
7034
+ "internalType": "bool",
7035
+ "name": "",
7036
+ "type": "bool"
7037
+ }
7038
+ ],
7039
+ "stateMutability": "view",
7040
+ "type": "function"
7041
+ },
7042
+ {
7043
+ "inputs": [],
7044
+ "name": "lightRelay",
7045
+ "outputs": [
7046
+ {
7047
+ "internalType": "contract ILightRelay",
7048
+ "name": "",
7049
+ "type": "address"
7050
+ }
7051
+ ],
7052
+ "stateMutability": "view",
7053
+ "type": "function"
7054
+ },
7055
+ {
7056
+ "inputs": [],
7057
+ "name": "owner",
7058
+ "outputs": [
7059
+ {
7060
+ "internalType": "address",
7061
+ "name": "",
7062
+ "type": "address"
7063
+ }
7064
+ ],
7065
+ "stateMutability": "view",
7066
+ "type": "function"
7067
+ },
7068
+ {
7069
+ "inputs": [],
7070
+ "name": "reimbursementPool",
7071
+ "outputs": [
7072
+ {
7073
+ "internalType": "contract ReimbursementPool",
7074
+ "name": "",
7075
+ "type": "address"
7076
+ }
7077
+ ],
7078
+ "stateMutability": "view",
7079
+ "type": "function"
7080
+ },
7081
+ {
7082
+ "inputs": [],
7083
+ "name": "renounceOwnership",
7084
+ "outputs": [],
7085
+ "stateMutability": "nonpayable",
7086
+ "type": "function"
7087
+ },
7088
+ {
7089
+ "inputs": [
7090
+ {
7091
+ "internalType": "bytes",
7092
+ "name": "headers",
7093
+ "type": "bytes"
7094
+ }
7095
+ ],
7096
+ "name": "retarget",
7097
+ "outputs": [],
7098
+ "stateMutability": "nonpayable",
7099
+ "type": "function"
7100
+ },
7101
+ {
7102
+ "inputs": [],
7103
+ "name": "retargetGasOffset",
7104
+ "outputs": [
7105
+ {
7106
+ "internalType": "uint256",
7107
+ "name": "",
7108
+ "type": "uint256"
7109
+ }
7110
+ ],
7111
+ "stateMutability": "view",
7112
+ "type": "function"
7113
+ },
7114
+ {
7115
+ "inputs": [
7116
+ {
7117
+ "internalType": "address",
7118
+ "name": "newOwner",
7119
+ "type": "address"
7120
+ }
7121
+ ],
7122
+ "name": "transferOwnership",
7123
+ "outputs": [],
7124
+ "stateMutability": "nonpayable",
7125
+ "type": "function"
7126
+ },
7127
+ {
7128
+ "inputs": [
7129
+ {
7130
+ "internalType": "contract ILightRelay",
7131
+ "name": "_lightRelay",
7132
+ "type": "address"
7133
+ }
7134
+ ],
7135
+ "name": "updateLightRelay",
7136
+ "outputs": [],
7137
+ "stateMutability": "nonpayable",
7138
+ "type": "function"
7139
+ },
7140
+ {
7141
+ "inputs": [
7142
+ {
7143
+ "internalType": "contract ReimbursementPool",
7144
+ "name": "_reimbursementPool",
7145
+ "type": "address"
7146
+ }
7147
+ ],
7148
+ "name": "updateReimbursementPool",
7149
+ "outputs": [],
7150
+ "stateMutability": "nonpayable",
7151
+ "type": "function"
7152
+ },
7153
+ {
7154
+ "inputs": [
7155
+ {
7156
+ "internalType": "uint256",
7157
+ "name": "newRetargetGasOffset",
7158
+ "type": "uint256"
7159
+ }
7160
+ ],
7161
+ "name": "updateRetargetGasOffset",
7162
+ "outputs": [],
7163
+ "stateMutability": "nonpayable",
7164
+ "type": "function"
7165
+ }
7166
+ ]
7167
+ },
6894
7168
  "MaintainerProxy": {
6895
7169
  "address": "0xcF29Ff894674775841F60Aa2a3c373DE27A8df2b",
6896
7170
  "abi": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@keep-network/tbtc-v2",
3
- "version": "1.4.0-dev.0+main.b4e547051509b561577a2a9fb72031c3e22416d9",
3
+ "version": "1.4.0-dev.2+main.a18663d15398820f1a7c6a2d15971e185bbe2c5c",
4
4
  "license": "GPL-3.0-only",
5
5
  "files": [
6
6
  "artifacts/",