@arbitrum/nitro-contracts 2.1.0 → 2.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (232) hide show
  1. package/LICENSE.md +1 -1
  2. package/build/contracts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json +1 -1
  3. package/build/contracts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.dbg.json +1 -1
  4. package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.dbg.json +1 -1
  5. package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.dbg.json +1 -1
  6. package/build/contracts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.dbg.json +1 -1
  7. package/build/contracts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.dbg.json +1 -1
  8. package/build/contracts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.dbg.json +1 -1
  9. package/build/contracts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.dbg.json +1 -1
  10. package/build/contracts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.dbg.json +1 -1
  11. package/build/contracts/@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol/UUPSUpgradeable.dbg.json +1 -1
  12. package/build/contracts/@openzeppelin/contracts/security/ReentrancyGuard.sol/ReentrancyGuard.dbg.json +1 -1
  13. package/build/contracts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json +1 -1
  14. package/build/contracts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json +1 -1
  15. package/build/contracts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json +1 -1
  16. package/build/contracts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json +1 -1
  17. package/build/contracts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json +1 -1
  18. package/build/contracts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +1 -1
  19. package/build/contracts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json +1 -1
  20. package/build/contracts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json +1 -1
  21. package/build/contracts/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.dbg.json +4 -0
  22. package/build/contracts/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.json +10 -0
  23. package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlEnumerableUpgradeable.sol/AccessControlEnumerableUpgradeable.dbg.json +4 -0
  24. package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlEnumerableUpgradeable.sol/AccessControlEnumerableUpgradeable.json +258 -0
  25. package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol/AccessControlUpgradeable.dbg.json +1 -1
  26. package/build/contracts/@openzeppelin/contracts-upgradeable/access/IAccessControlEnumerableUpgradeable.sol/IAccessControlEnumerableUpgradeable.dbg.json +4 -0
  27. package/build/contracts/@openzeppelin/contracts-upgradeable/access/IAccessControlEnumerableUpgradeable.sol/IAccessControlEnumerableUpgradeable.json +226 -0
  28. package/build/contracts/@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol/IAccessControlUpgradeable.dbg.json +1 -1
  29. package/build/contracts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.dbg.json +1 -1
  30. package/build/contracts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.dbg.json +1 -1
  31. package/build/contracts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol/PausableUpgradeable.dbg.json +1 -1
  32. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol/ERC20Upgradeable.dbg.json +4 -0
  33. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol/ERC20Upgradeable.json +281 -0
  34. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.dbg.json +1 -1
  35. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol/ERC20BurnableUpgradeable.dbg.json +4 -0
  36. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol/ERC20BurnableUpgradeable.json +312 -0
  37. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable.sol/IERC20MetadataUpgradeable.dbg.json +4 -0
  38. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable.sol/IERC20MetadataUpgradeable.json +233 -0
  39. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.dbg.json +1 -1
  40. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.dbg.json +1 -1
  41. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol/StorageSlotUpgradeable.dbg.json +1 -1
  42. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol/StringsUpgradeable.dbg.json +1 -1
  43. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/cryptography/ECDSAUpgradeable.sol/ECDSAUpgradeable.dbg.json +4 -0
  44. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/cryptography/ECDSAUpgradeable.sol/ECDSAUpgradeable.json +10 -0
  45. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/cryptography/draft-EIP712Upgradeable.sol/EIP712Upgradeable.dbg.json +4 -0
  46. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/cryptography/draft-EIP712Upgradeable.sol/EIP712Upgradeable.json +10 -0
  47. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol/ERC165Upgradeable.dbg.json +1 -1
  48. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol/IERC165Upgradeable.dbg.json +1 -1
  49. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/structs/EnumerableSetUpgradeable.sol/EnumerableSetUpgradeable.dbg.json +4 -0
  50. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/structs/EnumerableSetUpgradeable.sol/EnumerableSetUpgradeable.json +10 -0
  51. package/build/contracts/src/bridge/AbsBridge.sol/AbsBridge.dbg.json +1 -1
  52. package/build/contracts/src/bridge/AbsInbox.sol/AbsInbox.dbg.json +1 -1
  53. package/build/contracts/src/bridge/AbsOutbox.sol/AbsOutbox.dbg.json +1 -1
  54. package/build/contracts/src/bridge/Bridge.sol/Bridge.dbg.json +1 -1
  55. package/build/contracts/src/bridge/ERC20Bridge.sol/ERC20Bridge.dbg.json +1 -1
  56. package/build/contracts/src/bridge/ERC20Inbox.sol/ERC20Inbox.dbg.json +1 -1
  57. package/build/contracts/src/bridge/ERC20Outbox.sol/ERC20Outbox.dbg.json +1 -1
  58. package/build/contracts/src/bridge/GasRefunder.sol/GasRefunder.dbg.json +1 -1
  59. package/build/contracts/src/bridge/IBridge.sol/IBridge.dbg.json +1 -1
  60. package/build/contracts/src/bridge/IDelayedMessageProvider.sol/IDelayedMessageProvider.dbg.json +1 -1
  61. package/build/contracts/src/bridge/IERC20Bridge.sol/IERC20Bridge.dbg.json +1 -1
  62. package/build/contracts/src/bridge/IERC20Inbox.sol/IERC20Inbox.dbg.json +1 -1
  63. package/build/contracts/src/bridge/IEthBridge.sol/IEthBridge.dbg.json +1 -1
  64. package/build/contracts/src/bridge/IInbox.sol/IInbox.dbg.json +1 -1
  65. package/build/contracts/src/bridge/IInboxBase.sol/IInboxBase.dbg.json +1 -1
  66. package/build/contracts/src/bridge/IOutbox.sol/IOutbox.dbg.json +1 -1
  67. package/build/contracts/src/bridge/IOwnable.sol/IOwnable.dbg.json +1 -1
  68. package/build/contracts/src/bridge/ISequencerInbox.sol/ISequencerInbox.dbg.json +1 -1
  69. package/build/contracts/src/bridge/Inbox.sol/Inbox.dbg.json +1 -1
  70. package/build/contracts/src/bridge/Inbox.sol/Inbox.json +2 -2
  71. package/build/contracts/src/bridge/Messages.sol/Messages.dbg.json +1 -1
  72. package/build/contracts/src/bridge/Outbox.sol/Outbox.dbg.json +1 -1
  73. package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.dbg.json +1 -1
  74. package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.json +2 -2
  75. package/build/contracts/src/chain/CacheManager.sol/CacheManager.dbg.json +1 -1
  76. package/build/contracts/src/chain/CacheManager.sol/CacheManager.json +2 -2
  77. package/build/contracts/src/challenge/ChallengeLib.sol/ChallengeLib.dbg.json +1 -1
  78. package/build/contracts/src/challenge/ChallengeManager.sol/ChallengeManager.dbg.json +1 -1
  79. package/build/contracts/src/challenge/IChallengeManager.sol/IChallengeManager.dbg.json +1 -1
  80. package/build/contracts/src/challenge/IChallengeResultReceiver.sol/IChallengeResultReceiver.dbg.json +1 -1
  81. package/build/contracts/src/express-lane-auction/Balance.sol/BalanceLib.dbg.json +4 -0
  82. package/build/contracts/src/express-lane-auction/Balance.sol/BalanceLib.json +10 -0
  83. package/build/contracts/src/express-lane-auction/Burner.sol/Burner.dbg.json +4 -0
  84. package/build/contracts/src/express-lane-auction/Burner.sol/Burner.json +47 -0
  85. package/build/contracts/src/express-lane-auction/ELCRound.sol/LatestELCRoundsLib.dbg.json +4 -0
  86. package/build/contracts/src/express-lane-auction/ELCRound.sol/LatestELCRoundsLib.json +10 -0
  87. package/build/contracts/src/express-lane-auction/ExpressLaneAuction.sol/ExpressLaneAuction.dbg.json +4 -0
  88. package/build/contracts/src/express-lane-auction/ExpressLaneAuction.sol/ExpressLaneAuction.json +1588 -0
  89. package/build/contracts/src/express-lane-auction/IExpressLaneAuction.sol/IExpressLaneAuction.dbg.json +4 -0
  90. package/build/contracts/src/express-lane-auction/IExpressLaneAuction.sol/IExpressLaneAuction.json +1296 -0
  91. package/build/contracts/src/express-lane-auction/RoundTimingInfo.sol/RoundTimingInfoLib.dbg.json +4 -0
  92. package/build/contracts/src/express-lane-auction/RoundTimingInfo.sol/RoundTimingInfoLib.json +10 -0
  93. package/build/contracts/src/libraries/AddressAliasHelper.sol/AddressAliasHelper.dbg.json +1 -1
  94. package/build/contracts/src/libraries/AdminFallbackProxy.sol/AdminFallbackProxy.dbg.json +1 -1
  95. package/build/contracts/src/libraries/AdminFallbackProxy.sol/DoubleLogicERC1967Upgrade.dbg.json +1 -1
  96. package/build/contracts/src/libraries/ArbitrumChecker.sol/ArbitrumChecker.dbg.json +1 -1
  97. package/build/contracts/src/libraries/ArbitrumChecker.sol/ArbitrumChecker.json +2 -2
  98. package/build/contracts/src/libraries/CryptographyPrimitives.sol/CryptographyPrimitives.dbg.json +1 -1
  99. package/build/contracts/src/libraries/DecimalsConverterHelper.sol/DecimalsConverterHelper.dbg.json +1 -1
  100. package/build/contracts/src/libraries/DelegateCallAware.sol/DelegateCallAware.dbg.json +1 -1
  101. package/build/contracts/src/libraries/DoubleLogicUUPSUpgradeable.sol/DoubleLogicUUPSUpgradeable.dbg.json +1 -1
  102. package/build/contracts/src/libraries/GasRefundEnabled.sol/GasRefundEnabled.dbg.json +1 -1
  103. package/build/contracts/src/libraries/IGasRefunder.sol/IGasRefunder.dbg.json +1 -1
  104. package/build/contracts/src/libraries/IReader4844.sol/IReader4844.dbg.json +1 -1
  105. package/build/contracts/src/libraries/MerkleLib.sol/MerkleLib.dbg.json +1 -1
  106. package/build/contracts/src/libraries/UUPSNotUpgradeable.sol/UUPSNotUpgradeable.dbg.json +1 -1
  107. package/build/contracts/src/mocks/Benchmarks.sol/Benchmarks.dbg.json +1 -1
  108. package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.dbg.json +1 -1
  109. package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.dbg.json +1 -1
  110. package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.json +15 -2
  111. package/build/contracts/src/mocks/CreateTest.sol/CreateTest.dbg.json +4 -0
  112. package/build/contracts/src/mocks/CreateTest.sol/CreateTest.json +15 -0
  113. package/build/contracts/src/mocks/HostioTest.sol/HostioTest.dbg.json +4 -0
  114. package/build/contracts/src/mocks/HostioTest.sol/HostioTest.json +513 -0
  115. package/build/contracts/src/mocks/InboxStub.sol/InboxStub.dbg.json +1 -1
  116. package/build/contracts/src/mocks/MockResultReceiver.sol/MockResultReceiver.dbg.json +1 -1
  117. package/build/contracts/src/mocks/MultiCallTest.sol/MultiCallTest.dbg.json +1 -1
  118. package/build/contracts/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol/PendingBlkTimeAndNrAdvanceCheck.dbg.json +1 -1
  119. package/build/contracts/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol/PendingBlkTimeAndNrAdvanceCheck.json +2 -2
  120. package/build/contracts/src/mocks/Program.sol/ProgramTest.dbg.json +1 -1
  121. package/build/contracts/src/mocks/Program.sol/ProgramTest.json +2 -2
  122. package/build/contracts/src/mocks/ProxyAdminForBinding.sol/ProxyAdminForBinding.dbg.json +1 -1
  123. package/build/contracts/src/mocks/SdkStorage.sol/SdkStorage.dbg.json +1 -1
  124. package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.dbg.json +1 -1
  125. package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.json +2 -2
  126. package/build/contracts/src/mocks/Simple.sol/Simple.dbg.json +1 -1
  127. package/build/contracts/src/mocks/Simple.sol/Simple.json +2 -2
  128. package/build/contracts/src/mocks/SimpleCacheManager.sol/SimpleCacheManager.dbg.json +1 -1
  129. package/build/contracts/src/mocks/SimpleProxy.sol/SimpleProxy.dbg.json +1 -1
  130. package/build/contracts/src/mocks/SingleExecutionChallenge.sol/SingleExecutionChallenge.dbg.json +1 -1
  131. package/build/contracts/src/mocks/TimedOutChallengeManager.sol/TimedOutChallengeManager.dbg.json +1 -1
  132. package/build/contracts/src/mocks/UpgradeExecutorMock.sol/UpgradeExecutorMock.dbg.json +1 -1
  133. package/build/contracts/src/node-interface/NodeInterface.sol/NodeInterface.dbg.json +1 -1
  134. package/build/contracts/src/node-interface/NodeInterfaceDebug.sol/NodeInterfaceDebug.dbg.json +1 -1
  135. package/build/contracts/src/osp/HashProofHelper.sol/HashProofHelper.dbg.json +1 -1
  136. package/build/contracts/src/osp/IOneStepProofEntry.sol/IOneStepProofEntry.dbg.json +1 -1
  137. package/build/contracts/src/osp/IOneStepProofEntry.sol/OneStepProofEntryLib.dbg.json +1 -1
  138. package/build/contracts/src/osp/IOneStepProver.sol/IOneStepProver.dbg.json +1 -1
  139. package/build/contracts/src/osp/OneStepProofEntry.sol/OneStepProofEntry.dbg.json +1 -1
  140. package/build/contracts/src/osp/OneStepProver0.sol/OneStepProver0.dbg.json +1 -1
  141. package/build/contracts/src/osp/OneStepProverHostIo.sol/OneStepProverHostIo.dbg.json +1 -1
  142. package/build/contracts/src/osp/OneStepProverMath.sol/OneStepProverMath.dbg.json +1 -1
  143. package/build/contracts/src/osp/OneStepProverMemory.sol/OneStepProverMemory.dbg.json +1 -1
  144. package/build/contracts/src/precompiles/ArbAddressTable.sol/ArbAddressTable.dbg.json +1 -1
  145. package/build/contracts/src/precompiles/ArbAggregator.sol/ArbAggregator.dbg.json +1 -1
  146. package/build/contracts/src/precompiles/ArbBLS.sol/ArbBLS.dbg.json +1 -1
  147. package/build/contracts/src/precompiles/ArbDebug.sol/ArbDebug.dbg.json +1 -1
  148. package/build/contracts/src/precompiles/ArbFunctionTable.sol/ArbFunctionTable.dbg.json +1 -1
  149. package/build/contracts/src/precompiles/ArbGasInfo.sol/ArbGasInfo.dbg.json +1 -1
  150. package/build/contracts/src/precompiles/ArbInfo.sol/ArbInfo.dbg.json +1 -1
  151. package/build/contracts/src/precompiles/ArbOwner.sol/ArbOwner.dbg.json +1 -1
  152. package/build/contracts/src/precompiles/ArbOwnerPublic.sol/ArbOwnerPublic.dbg.json +1 -1
  153. package/build/contracts/src/precompiles/ArbRetryableTx.sol/ArbRetryableTx.dbg.json +1 -1
  154. package/build/contracts/src/precompiles/ArbStatistics.sol/ArbStatistics.dbg.json +1 -1
  155. package/build/contracts/src/precompiles/ArbSys.sol/ArbSys.dbg.json +1 -1
  156. package/build/contracts/src/precompiles/ArbWasm.sol/ArbWasm.dbg.json +1 -1
  157. package/build/contracts/src/precompiles/ArbWasm.sol/ArbWasm.json +4 -4
  158. package/build/contracts/src/precompiles/ArbWasmCache.sol/ArbWasmCache.dbg.json +1 -1
  159. package/build/contracts/src/precompiles/ArbosActs.sol/ArbosActs.dbg.json +1 -1
  160. package/build/contracts/src/precompiles/ArbosTest.sol/ArbosTest.dbg.json +1 -1
  161. package/build/contracts/src/rollup/AbsRollupEventInbox.sol/AbsRollupEventInbox.dbg.json +1 -1
  162. package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.dbg.json +1 -1
  163. package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.json +2 -2
  164. package/build/contracts/src/rollup/DeployHelper.sol/DeployHelper.dbg.json +1 -1
  165. package/build/contracts/src/rollup/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.dbg.json +1 -1
  166. package/build/contracts/src/rollup/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.json +2 -2
  167. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/FactoryDeployerHelper.dbg.json +1 -1
  168. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IDeployHelper.dbg.json +1 -1
  169. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20.dbg.json +1 -1
  170. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20Bridge.dbg.json +1 -1
  171. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IInboxBase.dbg.json +1 -1
  172. package/build/contracts/src/rollup/IRollupAdmin.sol/IRollupAdmin.dbg.json +1 -1
  173. package/build/contracts/src/rollup/IRollupCore.sol/IRollupCore.dbg.json +1 -1
  174. package/build/contracts/src/rollup/IRollupEventInbox.sol/IRollupEventInbox.dbg.json +1 -1
  175. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUser.dbg.json +1 -1
  176. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserAbs.dbg.json +1 -1
  177. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserERC20.dbg.json +1 -1
  178. package/build/contracts/src/rollup/Node.sol/NodeLib.dbg.json +1 -1
  179. package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.dbg.json +1 -1
  180. package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.json +2 -2
  181. package/build/contracts/src/rollup/RollupCore.sol/RollupCore.dbg.json +1 -1
  182. package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.dbg.json +1 -1
  183. package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.json +2 -2
  184. package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.dbg.json +1 -1
  185. package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.json +2 -2
  186. package/build/contracts/src/rollup/RollupLib.sol/RollupLib.dbg.json +1 -1
  187. package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.dbg.json +1 -1
  188. package/build/contracts/src/rollup/RollupUserLogic.sol/AbsRollupUserLogic.dbg.json +1 -1
  189. package/build/contracts/src/rollup/RollupUserLogic.sol/ERC20RollupUserLogic.dbg.json +1 -1
  190. package/build/contracts/src/rollup/RollupUserLogic.sol/ERC20RollupUserLogic.json +2 -2
  191. package/build/contracts/src/rollup/RollupUserLogic.sol/RollupUserLogic.dbg.json +1 -1
  192. package/build/contracts/src/rollup/RollupUserLogic.sol/RollupUserLogic.json +2 -2
  193. package/build/contracts/src/rollup/ValidatorUtils.sol/ValidatorUtils.dbg.json +1 -1
  194. package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.dbg.json +1 -1
  195. package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.dbg.json +1 -1
  196. package/build/contracts/src/state/Deserialize.sol/Deserialize.dbg.json +1 -1
  197. package/build/contracts/src/state/GlobalState.sol/GlobalStateLib.dbg.json +1 -1
  198. package/build/contracts/src/state/Instructions.sol/Instructions.dbg.json +1 -1
  199. package/build/contracts/src/state/Machine.sol/MachineLib.dbg.json +1 -1
  200. package/build/contracts/src/state/MerkleProof.sol/MerkleProofLib.dbg.json +1 -1
  201. package/build/contracts/src/state/Module.sol/ModuleLib.dbg.json +1 -1
  202. package/build/contracts/src/state/ModuleMemory.sol/ModuleMemoryLib.dbg.json +1 -1
  203. package/build/contracts/src/state/ModuleMemoryCompact.sol/ModuleMemoryCompactLib.dbg.json +1 -1
  204. package/build/contracts/src/state/MultiStack.sol/MultiStackLib.dbg.json +1 -1
  205. package/build/contracts/src/state/PcArray.sol/PcArrayLib.dbg.json +1 -1
  206. package/build/contracts/src/state/StackFrame.sol/StackFrameLib.dbg.json +1 -1
  207. package/build/contracts/src/state/Value.sol/ValueLib.dbg.json +1 -1
  208. package/build/contracts/src/state/ValueArray.sol/ValueArrayLib.dbg.json +1 -1
  209. package/build/contracts/src/state/ValueStack.sol/ValueStackLib.dbg.json +1 -1
  210. package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.dbg.json +1 -1
  211. package/build/contracts/src/test-helpers/CryptographyPrimitivesTester.sol/CryptographyPrimitivesTester.dbg.json +1 -1
  212. package/build/contracts/src/test-helpers/EthVault.sol/EthVault.dbg.json +1 -1
  213. package/build/contracts/src/test-helpers/MessageTester.sol/MessageTester.dbg.json +1 -1
  214. package/build/contracts/src/test-helpers/OutboxWithoutOptTester.sol/OutboxWithoutOptTester.dbg.json +1 -1
  215. package/build/contracts/src/test-helpers/RollupMock.sol/RollupMock.dbg.json +1 -1
  216. package/build/contracts/src/test-helpers/TestToken.sol/TestToken.dbg.json +1 -1
  217. package/build/contracts/src/test-helpers/ValueArrayTester.sol/ValueArrayTester.dbg.json +1 -1
  218. package/out/yul/Reader4844.yul/Reader4844.json +1 -1
  219. package/package.json +5 -2
  220. package/src/express-lane-auction/Balance.sol +142 -0
  221. package/src/express-lane-auction/Burner.sol +25 -0
  222. package/src/express-lane-auction/ELCRound.sol +73 -0
  223. package/src/express-lane-auction/Errors.sol +31 -0
  224. package/src/express-lane-auction/ExpressLaneAuction.sol +565 -0
  225. package/src/express-lane-auction/IExpressLaneAuction.sol +421 -0
  226. package/src/express-lane-auction/RoundTimingInfo.sol +115 -0
  227. package/src/mocks/BridgeUnproxied.sol +2 -0
  228. package/src/mocks/CreateTest.sol +42 -0
  229. package/src/mocks/HostioTest.sol +196 -0
  230. package/src/precompiles/ArbSys.sol +2 -1
  231. package/src/precompiles/ArbWasm.sol +1 -1
  232. package/src/rollup/RollupCreator.sol +4 -4
@@ -0,0 +1,1588 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "ExpressLaneAuction",
4
+ "sourceName": "src/express-lane-auction/ExpressLaneAuction.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [],
8
+ "name": "AuctionNotClosed",
9
+ "type": "error"
10
+ },
11
+ {
12
+ "inputs": [],
13
+ "name": "BidsWrongOrder",
14
+ "type": "error"
15
+ },
16
+ {
17
+ "inputs": [
18
+ {
19
+ "internalType": "uint64",
20
+ "name": "fixedUntilRound",
21
+ "type": "uint64"
22
+ }
23
+ ],
24
+ "name": "FixedTransferor",
25
+ "type": "error"
26
+ },
27
+ {
28
+ "inputs": [
29
+ {
30
+ "internalType": "uint256",
31
+ "name": "amountRequested",
32
+ "type": "uint256"
33
+ },
34
+ {
35
+ "internalType": "uint256",
36
+ "name": "balance",
37
+ "type": "uint256"
38
+ }
39
+ ],
40
+ "name": "InsufficientBalance",
41
+ "type": "error"
42
+ },
43
+ {
44
+ "inputs": [
45
+ {
46
+ "internalType": "address",
47
+ "name": "account",
48
+ "type": "address"
49
+ },
50
+ {
51
+ "internalType": "uint256",
52
+ "name": "amountRequested",
53
+ "type": "uint256"
54
+ },
55
+ {
56
+ "internalType": "uint256",
57
+ "name": "balance",
58
+ "type": "uint256"
59
+ }
60
+ ],
61
+ "name": "InsufficientBalanceAcc",
62
+ "type": "error"
63
+ },
64
+ {
65
+ "inputs": [
66
+ {
67
+ "internalType": "uint64",
68
+ "name": "currentRound",
69
+ "type": "uint64"
70
+ },
71
+ {
72
+ "internalType": "uint64",
73
+ "name": "newRound",
74
+ "type": "uint64"
75
+ }
76
+ ],
77
+ "name": "InvalidNewRound",
78
+ "type": "error"
79
+ },
80
+ {
81
+ "inputs": [
82
+ {
83
+ "internalType": "uint64",
84
+ "name": "currentStart",
85
+ "type": "uint64"
86
+ },
87
+ {
88
+ "internalType": "uint64",
89
+ "name": "newStart",
90
+ "type": "uint64"
91
+ }
92
+ ],
93
+ "name": "InvalidNewStart",
94
+ "type": "error"
95
+ },
96
+ {
97
+ "inputs": [],
98
+ "name": "NegativeOffset",
99
+ "type": "error"
100
+ },
101
+ {
102
+ "inputs": [
103
+ {
104
+ "internalType": "int64",
105
+ "name": "roundStart",
106
+ "type": "int64"
107
+ }
108
+ ],
109
+ "name": "NegativeRoundStart",
110
+ "type": "error"
111
+ },
112
+ {
113
+ "inputs": [
114
+ {
115
+ "internalType": "uint64",
116
+ "name": "round",
117
+ "type": "uint64"
118
+ },
119
+ {
120
+ "internalType": "address",
121
+ "name": "controller",
122
+ "type": "address"
123
+ },
124
+ {
125
+ "internalType": "address",
126
+ "name": "sender",
127
+ "type": "address"
128
+ }
129
+ ],
130
+ "name": "NotExpressLaneController",
131
+ "type": "error"
132
+ },
133
+ {
134
+ "inputs": [
135
+ {
136
+ "internalType": "uint64",
137
+ "name": "round",
138
+ "type": "uint64"
139
+ },
140
+ {
141
+ "internalType": "address",
142
+ "name": "expectedTransferor",
143
+ "type": "address"
144
+ },
145
+ {
146
+ "internalType": "address",
147
+ "name": "msgSender",
148
+ "type": "address"
149
+ }
150
+ ],
151
+ "name": "NotTransferor",
152
+ "type": "error"
153
+ },
154
+ {
155
+ "inputs": [],
156
+ "name": "NothingToWithdraw",
157
+ "type": "error"
158
+ },
159
+ {
160
+ "inputs": [],
161
+ "name": "ReserveBlackout",
162
+ "type": "error"
163
+ },
164
+ {
165
+ "inputs": [
166
+ {
167
+ "internalType": "uint256",
168
+ "name": "bidAmount",
169
+ "type": "uint256"
170
+ },
171
+ {
172
+ "internalType": "uint256",
173
+ "name": "reservePrice",
174
+ "type": "uint256"
175
+ }
176
+ ],
177
+ "name": "ReservePriceNotMet",
178
+ "type": "error"
179
+ },
180
+ {
181
+ "inputs": [
182
+ {
183
+ "internalType": "uint256",
184
+ "name": "reservePrice",
185
+ "type": "uint256"
186
+ },
187
+ {
188
+ "internalType": "uint256",
189
+ "name": "minReservePrice",
190
+ "type": "uint256"
191
+ }
192
+ ],
193
+ "name": "ReservePriceTooLow",
194
+ "type": "error"
195
+ },
196
+ {
197
+ "inputs": [
198
+ {
199
+ "internalType": "uint64",
200
+ "name": "round",
201
+ "type": "uint64"
202
+ }
203
+ ],
204
+ "name": "RoundAlreadyResolved",
205
+ "type": "error"
206
+ },
207
+ {
208
+ "inputs": [],
209
+ "name": "RoundDurationTooShort",
210
+ "type": "error"
211
+ },
212
+ {
213
+ "inputs": [
214
+ {
215
+ "internalType": "uint64",
216
+ "name": "round",
217
+ "type": "uint64"
218
+ }
219
+ ],
220
+ "name": "RoundNotResolved",
221
+ "type": "error"
222
+ },
223
+ {
224
+ "inputs": [
225
+ {
226
+ "internalType": "uint64",
227
+ "name": "roundDurationSeconds",
228
+ "type": "uint64"
229
+ }
230
+ ],
231
+ "name": "RoundTooLong",
232
+ "type": "error"
233
+ },
234
+ {
235
+ "inputs": [
236
+ {
237
+ "internalType": "uint64",
238
+ "name": "round",
239
+ "type": "uint64"
240
+ },
241
+ {
242
+ "internalType": "uint64",
243
+ "name": "currentRound",
244
+ "type": "uint64"
245
+ }
246
+ ],
247
+ "name": "RoundTooOld",
248
+ "type": "error"
249
+ },
250
+ {
251
+ "inputs": [],
252
+ "name": "SameBidder",
253
+ "type": "error"
254
+ },
255
+ {
256
+ "inputs": [],
257
+ "name": "TieBidsWrongOrder",
258
+ "type": "error"
259
+ },
260
+ {
261
+ "inputs": [],
262
+ "name": "WithdrawalInProgress",
263
+ "type": "error"
264
+ },
265
+ {
266
+ "inputs": [],
267
+ "name": "WithdrawalMaxRound",
268
+ "type": "error"
269
+ },
270
+ {
271
+ "inputs": [],
272
+ "name": "ZeroAmount",
273
+ "type": "error"
274
+ },
275
+ {
276
+ "inputs": [],
277
+ "name": "ZeroAuctionClosingSeconds",
278
+ "type": "error"
279
+ },
280
+ {
281
+ "inputs": [],
282
+ "name": "ZeroBiddingToken",
283
+ "type": "error"
284
+ },
285
+ {
286
+ "anonymous": false,
287
+ "inputs": [
288
+ {
289
+ "indexed": true,
290
+ "internalType": "bool",
291
+ "name": "isMultiBidAuction",
292
+ "type": "bool"
293
+ },
294
+ {
295
+ "indexed": false,
296
+ "internalType": "uint64",
297
+ "name": "round",
298
+ "type": "uint64"
299
+ },
300
+ {
301
+ "indexed": true,
302
+ "internalType": "address",
303
+ "name": "firstPriceBidder",
304
+ "type": "address"
305
+ },
306
+ {
307
+ "indexed": true,
308
+ "internalType": "address",
309
+ "name": "firstPriceExpressLaneController",
310
+ "type": "address"
311
+ },
312
+ {
313
+ "indexed": false,
314
+ "internalType": "uint256",
315
+ "name": "firstPriceAmount",
316
+ "type": "uint256"
317
+ },
318
+ {
319
+ "indexed": false,
320
+ "internalType": "uint256",
321
+ "name": "price",
322
+ "type": "uint256"
323
+ },
324
+ {
325
+ "indexed": false,
326
+ "internalType": "uint64",
327
+ "name": "roundStartTimestamp",
328
+ "type": "uint64"
329
+ },
330
+ {
331
+ "indexed": false,
332
+ "internalType": "uint64",
333
+ "name": "roundEndTimestamp",
334
+ "type": "uint64"
335
+ }
336
+ ],
337
+ "name": "AuctionResolved",
338
+ "type": "event"
339
+ },
340
+ {
341
+ "anonymous": false,
342
+ "inputs": [
343
+ {
344
+ "indexed": true,
345
+ "internalType": "address",
346
+ "name": "account",
347
+ "type": "address"
348
+ },
349
+ {
350
+ "indexed": false,
351
+ "internalType": "uint256",
352
+ "name": "amount",
353
+ "type": "uint256"
354
+ }
355
+ ],
356
+ "name": "Deposit",
357
+ "type": "event"
358
+ },
359
+ {
360
+ "anonymous": false,
361
+ "inputs": [
362
+ {
363
+ "indexed": true,
364
+ "internalType": "bytes32",
365
+ "name": "role",
366
+ "type": "bytes32"
367
+ },
368
+ {
369
+ "indexed": true,
370
+ "internalType": "bytes32",
371
+ "name": "previousAdminRole",
372
+ "type": "bytes32"
373
+ },
374
+ {
375
+ "indexed": true,
376
+ "internalType": "bytes32",
377
+ "name": "newAdminRole",
378
+ "type": "bytes32"
379
+ }
380
+ ],
381
+ "name": "RoleAdminChanged",
382
+ "type": "event"
383
+ },
384
+ {
385
+ "anonymous": false,
386
+ "inputs": [
387
+ {
388
+ "indexed": true,
389
+ "internalType": "bytes32",
390
+ "name": "role",
391
+ "type": "bytes32"
392
+ },
393
+ {
394
+ "indexed": true,
395
+ "internalType": "address",
396
+ "name": "account",
397
+ "type": "address"
398
+ },
399
+ {
400
+ "indexed": true,
401
+ "internalType": "address",
402
+ "name": "sender",
403
+ "type": "address"
404
+ }
405
+ ],
406
+ "name": "RoleGranted",
407
+ "type": "event"
408
+ },
409
+ {
410
+ "anonymous": false,
411
+ "inputs": [
412
+ {
413
+ "indexed": true,
414
+ "internalType": "bytes32",
415
+ "name": "role",
416
+ "type": "bytes32"
417
+ },
418
+ {
419
+ "indexed": true,
420
+ "internalType": "address",
421
+ "name": "account",
422
+ "type": "address"
423
+ },
424
+ {
425
+ "indexed": true,
426
+ "internalType": "address",
427
+ "name": "sender",
428
+ "type": "address"
429
+ }
430
+ ],
431
+ "name": "RoleRevoked",
432
+ "type": "event"
433
+ },
434
+ {
435
+ "anonymous": false,
436
+ "inputs": [
437
+ {
438
+ "indexed": false,
439
+ "internalType": "address",
440
+ "name": "oldBeneficiary",
441
+ "type": "address"
442
+ },
443
+ {
444
+ "indexed": false,
445
+ "internalType": "address",
446
+ "name": "newBeneficiary",
447
+ "type": "address"
448
+ }
449
+ ],
450
+ "name": "SetBeneficiary",
451
+ "type": "event"
452
+ },
453
+ {
454
+ "anonymous": false,
455
+ "inputs": [
456
+ {
457
+ "indexed": false,
458
+ "internalType": "uint64",
459
+ "name": "round",
460
+ "type": "uint64"
461
+ },
462
+ {
463
+ "indexed": true,
464
+ "internalType": "address",
465
+ "name": "previousExpressLaneController",
466
+ "type": "address"
467
+ },
468
+ {
469
+ "indexed": true,
470
+ "internalType": "address",
471
+ "name": "newExpressLaneController",
472
+ "type": "address"
473
+ },
474
+ {
475
+ "indexed": true,
476
+ "internalType": "address",
477
+ "name": "transferor",
478
+ "type": "address"
479
+ },
480
+ {
481
+ "indexed": false,
482
+ "internalType": "uint64",
483
+ "name": "startTimestamp",
484
+ "type": "uint64"
485
+ },
486
+ {
487
+ "indexed": false,
488
+ "internalType": "uint64",
489
+ "name": "endTimestamp",
490
+ "type": "uint64"
491
+ }
492
+ ],
493
+ "name": "SetExpressLaneController",
494
+ "type": "event"
495
+ },
496
+ {
497
+ "anonymous": false,
498
+ "inputs": [
499
+ {
500
+ "indexed": false,
501
+ "internalType": "uint256",
502
+ "name": "oldPrice",
503
+ "type": "uint256"
504
+ },
505
+ {
506
+ "indexed": false,
507
+ "internalType": "uint256",
508
+ "name": "newPrice",
509
+ "type": "uint256"
510
+ }
511
+ ],
512
+ "name": "SetMinReservePrice",
513
+ "type": "event"
514
+ },
515
+ {
516
+ "anonymous": false,
517
+ "inputs": [
518
+ {
519
+ "indexed": false,
520
+ "internalType": "uint256",
521
+ "name": "oldReservePrice",
522
+ "type": "uint256"
523
+ },
524
+ {
525
+ "indexed": false,
526
+ "internalType": "uint256",
527
+ "name": "newReservePrice",
528
+ "type": "uint256"
529
+ }
530
+ ],
531
+ "name": "SetReservePrice",
532
+ "type": "event"
533
+ },
534
+ {
535
+ "anonymous": false,
536
+ "inputs": [
537
+ {
538
+ "indexed": false,
539
+ "internalType": "uint64",
540
+ "name": "currentRound",
541
+ "type": "uint64"
542
+ },
543
+ {
544
+ "indexed": false,
545
+ "internalType": "int64",
546
+ "name": "offsetTimestamp",
547
+ "type": "int64"
548
+ },
549
+ {
550
+ "indexed": false,
551
+ "internalType": "uint64",
552
+ "name": "roundDurationSeconds",
553
+ "type": "uint64"
554
+ },
555
+ {
556
+ "indexed": false,
557
+ "internalType": "uint64",
558
+ "name": "auctionClosingSeconds",
559
+ "type": "uint64"
560
+ },
561
+ {
562
+ "indexed": false,
563
+ "internalType": "uint64",
564
+ "name": "reserveSubmissionSeconds",
565
+ "type": "uint64"
566
+ }
567
+ ],
568
+ "name": "SetRoundTimingInfo",
569
+ "type": "event"
570
+ },
571
+ {
572
+ "anonymous": false,
573
+ "inputs": [
574
+ {
575
+ "indexed": true,
576
+ "internalType": "address",
577
+ "name": "expressLaneController",
578
+ "type": "address"
579
+ },
580
+ {
581
+ "indexed": true,
582
+ "internalType": "address",
583
+ "name": "transferor",
584
+ "type": "address"
585
+ },
586
+ {
587
+ "indexed": false,
588
+ "internalType": "uint64",
589
+ "name": "fixedUntilRound",
590
+ "type": "uint64"
591
+ }
592
+ ],
593
+ "name": "SetTransferor",
594
+ "type": "event"
595
+ },
596
+ {
597
+ "anonymous": false,
598
+ "inputs": [
599
+ {
600
+ "indexed": true,
601
+ "internalType": "address",
602
+ "name": "account",
603
+ "type": "address"
604
+ },
605
+ {
606
+ "indexed": false,
607
+ "internalType": "uint256",
608
+ "name": "withdrawalAmount",
609
+ "type": "uint256"
610
+ }
611
+ ],
612
+ "name": "WithdrawalFinalized",
613
+ "type": "event"
614
+ },
615
+ {
616
+ "anonymous": false,
617
+ "inputs": [
618
+ {
619
+ "indexed": true,
620
+ "internalType": "address",
621
+ "name": "account",
622
+ "type": "address"
623
+ },
624
+ {
625
+ "indexed": false,
626
+ "internalType": "uint256",
627
+ "name": "withdrawalAmount",
628
+ "type": "uint256"
629
+ },
630
+ {
631
+ "indexed": false,
632
+ "internalType": "uint256",
633
+ "name": "roundWithdrawable",
634
+ "type": "uint256"
635
+ }
636
+ ],
637
+ "name": "WithdrawalInitiated",
638
+ "type": "event"
639
+ },
640
+ {
641
+ "inputs": [],
642
+ "name": "AUCTIONEER_ADMIN_ROLE",
643
+ "outputs": [
644
+ {
645
+ "internalType": "bytes32",
646
+ "name": "",
647
+ "type": "bytes32"
648
+ }
649
+ ],
650
+ "stateMutability": "view",
651
+ "type": "function"
652
+ },
653
+ {
654
+ "inputs": [],
655
+ "name": "AUCTIONEER_ROLE",
656
+ "outputs": [
657
+ {
658
+ "internalType": "bytes32",
659
+ "name": "",
660
+ "type": "bytes32"
661
+ }
662
+ ],
663
+ "stateMutability": "view",
664
+ "type": "function"
665
+ },
666
+ {
667
+ "inputs": [],
668
+ "name": "BENEFICIARY_SETTER_ROLE",
669
+ "outputs": [
670
+ {
671
+ "internalType": "bytes32",
672
+ "name": "",
673
+ "type": "bytes32"
674
+ }
675
+ ],
676
+ "stateMutability": "view",
677
+ "type": "function"
678
+ },
679
+ {
680
+ "inputs": [],
681
+ "name": "DEFAULT_ADMIN_ROLE",
682
+ "outputs": [
683
+ {
684
+ "internalType": "bytes32",
685
+ "name": "",
686
+ "type": "bytes32"
687
+ }
688
+ ],
689
+ "stateMutability": "view",
690
+ "type": "function"
691
+ },
692
+ {
693
+ "inputs": [],
694
+ "name": "MIN_RESERVE_SETTER_ROLE",
695
+ "outputs": [
696
+ {
697
+ "internalType": "bytes32",
698
+ "name": "",
699
+ "type": "bytes32"
700
+ }
701
+ ],
702
+ "stateMutability": "view",
703
+ "type": "function"
704
+ },
705
+ {
706
+ "inputs": [],
707
+ "name": "RESERVE_SETTER_ADMIN_ROLE",
708
+ "outputs": [
709
+ {
710
+ "internalType": "bytes32",
711
+ "name": "",
712
+ "type": "bytes32"
713
+ }
714
+ ],
715
+ "stateMutability": "view",
716
+ "type": "function"
717
+ },
718
+ {
719
+ "inputs": [],
720
+ "name": "RESERVE_SETTER_ROLE",
721
+ "outputs": [
722
+ {
723
+ "internalType": "bytes32",
724
+ "name": "",
725
+ "type": "bytes32"
726
+ }
727
+ ],
728
+ "stateMutability": "view",
729
+ "type": "function"
730
+ },
731
+ {
732
+ "inputs": [],
733
+ "name": "ROUND_TIMING_SETTER_ROLE",
734
+ "outputs": [
735
+ {
736
+ "internalType": "bytes32",
737
+ "name": "",
738
+ "type": "bytes32"
739
+ }
740
+ ],
741
+ "stateMutability": "view",
742
+ "type": "function"
743
+ },
744
+ {
745
+ "inputs": [
746
+ {
747
+ "internalType": "address",
748
+ "name": "account",
749
+ "type": "address"
750
+ }
751
+ ],
752
+ "name": "balanceOf",
753
+ "outputs": [
754
+ {
755
+ "internalType": "uint256",
756
+ "name": "",
757
+ "type": "uint256"
758
+ }
759
+ ],
760
+ "stateMutability": "view",
761
+ "type": "function"
762
+ },
763
+ {
764
+ "inputs": [
765
+ {
766
+ "internalType": "address",
767
+ "name": "account",
768
+ "type": "address"
769
+ },
770
+ {
771
+ "internalType": "uint64",
772
+ "name": "round",
773
+ "type": "uint64"
774
+ }
775
+ ],
776
+ "name": "balanceOfAtRound",
777
+ "outputs": [
778
+ {
779
+ "internalType": "uint256",
780
+ "name": "",
781
+ "type": "uint256"
782
+ }
783
+ ],
784
+ "stateMutability": "view",
785
+ "type": "function"
786
+ },
787
+ {
788
+ "inputs": [],
789
+ "name": "beneficiary",
790
+ "outputs": [
791
+ {
792
+ "internalType": "address",
793
+ "name": "",
794
+ "type": "address"
795
+ }
796
+ ],
797
+ "stateMutability": "view",
798
+ "type": "function"
799
+ },
800
+ {
801
+ "inputs": [],
802
+ "name": "beneficiaryBalance",
803
+ "outputs": [
804
+ {
805
+ "internalType": "uint256",
806
+ "name": "",
807
+ "type": "uint256"
808
+ }
809
+ ],
810
+ "stateMutability": "view",
811
+ "type": "function"
812
+ },
813
+ {
814
+ "inputs": [],
815
+ "name": "biddingToken",
816
+ "outputs": [
817
+ {
818
+ "internalType": "contract IERC20",
819
+ "name": "",
820
+ "type": "address"
821
+ }
822
+ ],
823
+ "stateMutability": "view",
824
+ "type": "function"
825
+ },
826
+ {
827
+ "inputs": [],
828
+ "name": "currentRound",
829
+ "outputs": [
830
+ {
831
+ "internalType": "uint64",
832
+ "name": "",
833
+ "type": "uint64"
834
+ }
835
+ ],
836
+ "stateMutability": "view",
837
+ "type": "function"
838
+ },
839
+ {
840
+ "inputs": [
841
+ {
842
+ "internalType": "uint256",
843
+ "name": "amount",
844
+ "type": "uint256"
845
+ }
846
+ ],
847
+ "name": "deposit",
848
+ "outputs": [],
849
+ "stateMutability": "nonpayable",
850
+ "type": "function"
851
+ },
852
+ {
853
+ "inputs": [],
854
+ "name": "domainSeparator",
855
+ "outputs": [
856
+ {
857
+ "internalType": "bytes32",
858
+ "name": "",
859
+ "type": "bytes32"
860
+ }
861
+ ],
862
+ "stateMutability": "view",
863
+ "type": "function"
864
+ },
865
+ {
866
+ "inputs": [],
867
+ "name": "finalizeWithdrawal",
868
+ "outputs": [],
869
+ "stateMutability": "nonpayable",
870
+ "type": "function"
871
+ },
872
+ {
873
+ "inputs": [],
874
+ "name": "flushBeneficiaryBalance",
875
+ "outputs": [],
876
+ "stateMutability": "nonpayable",
877
+ "type": "function"
878
+ },
879
+ {
880
+ "inputs": [
881
+ {
882
+ "internalType": "uint64",
883
+ "name": "round",
884
+ "type": "uint64"
885
+ },
886
+ {
887
+ "internalType": "address",
888
+ "name": "expressLaneController",
889
+ "type": "address"
890
+ },
891
+ {
892
+ "internalType": "uint256",
893
+ "name": "amount",
894
+ "type": "uint256"
895
+ }
896
+ ],
897
+ "name": "getBidHash",
898
+ "outputs": [
899
+ {
900
+ "internalType": "bytes32",
901
+ "name": "",
902
+ "type": "bytes32"
903
+ }
904
+ ],
905
+ "stateMutability": "view",
906
+ "type": "function"
907
+ },
908
+ {
909
+ "inputs": [
910
+ {
911
+ "internalType": "bytes32",
912
+ "name": "role",
913
+ "type": "bytes32"
914
+ }
915
+ ],
916
+ "name": "getRoleAdmin",
917
+ "outputs": [
918
+ {
919
+ "internalType": "bytes32",
920
+ "name": "",
921
+ "type": "bytes32"
922
+ }
923
+ ],
924
+ "stateMutability": "view",
925
+ "type": "function"
926
+ },
927
+ {
928
+ "inputs": [
929
+ {
930
+ "internalType": "bytes32",
931
+ "name": "role",
932
+ "type": "bytes32"
933
+ },
934
+ {
935
+ "internalType": "uint256",
936
+ "name": "index",
937
+ "type": "uint256"
938
+ }
939
+ ],
940
+ "name": "getRoleMember",
941
+ "outputs": [
942
+ {
943
+ "internalType": "address",
944
+ "name": "",
945
+ "type": "address"
946
+ }
947
+ ],
948
+ "stateMutability": "view",
949
+ "type": "function"
950
+ },
951
+ {
952
+ "inputs": [
953
+ {
954
+ "internalType": "bytes32",
955
+ "name": "role",
956
+ "type": "bytes32"
957
+ }
958
+ ],
959
+ "name": "getRoleMemberCount",
960
+ "outputs": [
961
+ {
962
+ "internalType": "uint256",
963
+ "name": "",
964
+ "type": "uint256"
965
+ }
966
+ ],
967
+ "stateMutability": "view",
968
+ "type": "function"
969
+ },
970
+ {
971
+ "inputs": [
972
+ {
973
+ "internalType": "bytes32",
974
+ "name": "role",
975
+ "type": "bytes32"
976
+ },
977
+ {
978
+ "internalType": "address",
979
+ "name": "account",
980
+ "type": "address"
981
+ }
982
+ ],
983
+ "name": "grantRole",
984
+ "outputs": [],
985
+ "stateMutability": "nonpayable",
986
+ "type": "function"
987
+ },
988
+ {
989
+ "inputs": [
990
+ {
991
+ "internalType": "bytes32",
992
+ "name": "role",
993
+ "type": "bytes32"
994
+ },
995
+ {
996
+ "internalType": "address",
997
+ "name": "account",
998
+ "type": "address"
999
+ }
1000
+ ],
1001
+ "name": "hasRole",
1002
+ "outputs": [
1003
+ {
1004
+ "internalType": "bool",
1005
+ "name": "",
1006
+ "type": "bool"
1007
+ }
1008
+ ],
1009
+ "stateMutability": "view",
1010
+ "type": "function"
1011
+ },
1012
+ {
1013
+ "inputs": [
1014
+ {
1015
+ "components": [
1016
+ {
1017
+ "internalType": "address",
1018
+ "name": "_auctioneer",
1019
+ "type": "address"
1020
+ },
1021
+ {
1022
+ "internalType": "address",
1023
+ "name": "_biddingToken",
1024
+ "type": "address"
1025
+ },
1026
+ {
1027
+ "internalType": "address",
1028
+ "name": "_beneficiary",
1029
+ "type": "address"
1030
+ },
1031
+ {
1032
+ "components": [
1033
+ {
1034
+ "internalType": "int64",
1035
+ "name": "offsetTimestamp",
1036
+ "type": "int64"
1037
+ },
1038
+ {
1039
+ "internalType": "uint64",
1040
+ "name": "roundDurationSeconds",
1041
+ "type": "uint64"
1042
+ },
1043
+ {
1044
+ "internalType": "uint64",
1045
+ "name": "auctionClosingSeconds",
1046
+ "type": "uint64"
1047
+ },
1048
+ {
1049
+ "internalType": "uint64",
1050
+ "name": "reserveSubmissionSeconds",
1051
+ "type": "uint64"
1052
+ }
1053
+ ],
1054
+ "internalType": "struct RoundTimingInfo",
1055
+ "name": "_roundTimingInfo",
1056
+ "type": "tuple"
1057
+ },
1058
+ {
1059
+ "internalType": "uint256",
1060
+ "name": "_minReservePrice",
1061
+ "type": "uint256"
1062
+ },
1063
+ {
1064
+ "internalType": "address",
1065
+ "name": "_auctioneerAdmin",
1066
+ "type": "address"
1067
+ },
1068
+ {
1069
+ "internalType": "address",
1070
+ "name": "_minReservePriceSetter",
1071
+ "type": "address"
1072
+ },
1073
+ {
1074
+ "internalType": "address",
1075
+ "name": "_reservePriceSetter",
1076
+ "type": "address"
1077
+ },
1078
+ {
1079
+ "internalType": "address",
1080
+ "name": "_reservePriceSetterAdmin",
1081
+ "type": "address"
1082
+ },
1083
+ {
1084
+ "internalType": "address",
1085
+ "name": "_beneficiarySetter",
1086
+ "type": "address"
1087
+ },
1088
+ {
1089
+ "internalType": "address",
1090
+ "name": "_roundTimingSetter",
1091
+ "type": "address"
1092
+ },
1093
+ {
1094
+ "internalType": "address",
1095
+ "name": "_masterAdmin",
1096
+ "type": "address"
1097
+ }
1098
+ ],
1099
+ "internalType": "struct InitArgs",
1100
+ "name": "args",
1101
+ "type": "tuple"
1102
+ }
1103
+ ],
1104
+ "name": "initialize",
1105
+ "outputs": [],
1106
+ "stateMutability": "nonpayable",
1107
+ "type": "function"
1108
+ },
1109
+ {
1110
+ "inputs": [],
1111
+ "name": "initiateWithdrawal",
1112
+ "outputs": [],
1113
+ "stateMutability": "nonpayable",
1114
+ "type": "function"
1115
+ },
1116
+ {
1117
+ "inputs": [],
1118
+ "name": "isAuctionRoundClosed",
1119
+ "outputs": [
1120
+ {
1121
+ "internalType": "bool",
1122
+ "name": "",
1123
+ "type": "bool"
1124
+ }
1125
+ ],
1126
+ "stateMutability": "view",
1127
+ "type": "function"
1128
+ },
1129
+ {
1130
+ "inputs": [],
1131
+ "name": "isReserveBlackout",
1132
+ "outputs": [
1133
+ {
1134
+ "internalType": "bool",
1135
+ "name": "",
1136
+ "type": "bool"
1137
+ }
1138
+ ],
1139
+ "stateMutability": "view",
1140
+ "type": "function"
1141
+ },
1142
+ {
1143
+ "inputs": [],
1144
+ "name": "minReservePrice",
1145
+ "outputs": [
1146
+ {
1147
+ "internalType": "uint256",
1148
+ "name": "",
1149
+ "type": "uint256"
1150
+ }
1151
+ ],
1152
+ "stateMutability": "view",
1153
+ "type": "function"
1154
+ },
1155
+ {
1156
+ "inputs": [
1157
+ {
1158
+ "internalType": "bytes32",
1159
+ "name": "role",
1160
+ "type": "bytes32"
1161
+ },
1162
+ {
1163
+ "internalType": "address",
1164
+ "name": "account",
1165
+ "type": "address"
1166
+ }
1167
+ ],
1168
+ "name": "renounceRole",
1169
+ "outputs": [],
1170
+ "stateMutability": "nonpayable",
1171
+ "type": "function"
1172
+ },
1173
+ {
1174
+ "inputs": [],
1175
+ "name": "reservePrice",
1176
+ "outputs": [
1177
+ {
1178
+ "internalType": "uint256",
1179
+ "name": "",
1180
+ "type": "uint256"
1181
+ }
1182
+ ],
1183
+ "stateMutability": "view",
1184
+ "type": "function"
1185
+ },
1186
+ {
1187
+ "inputs": [
1188
+ {
1189
+ "components": [
1190
+ {
1191
+ "internalType": "address",
1192
+ "name": "expressLaneController",
1193
+ "type": "address"
1194
+ },
1195
+ {
1196
+ "internalType": "uint256",
1197
+ "name": "amount",
1198
+ "type": "uint256"
1199
+ },
1200
+ {
1201
+ "internalType": "bytes",
1202
+ "name": "signature",
1203
+ "type": "bytes"
1204
+ }
1205
+ ],
1206
+ "internalType": "struct Bid",
1207
+ "name": "firstPriceBid",
1208
+ "type": "tuple"
1209
+ },
1210
+ {
1211
+ "components": [
1212
+ {
1213
+ "internalType": "address",
1214
+ "name": "expressLaneController",
1215
+ "type": "address"
1216
+ },
1217
+ {
1218
+ "internalType": "uint256",
1219
+ "name": "amount",
1220
+ "type": "uint256"
1221
+ },
1222
+ {
1223
+ "internalType": "bytes",
1224
+ "name": "signature",
1225
+ "type": "bytes"
1226
+ }
1227
+ ],
1228
+ "internalType": "struct Bid",
1229
+ "name": "secondPriceBid",
1230
+ "type": "tuple"
1231
+ }
1232
+ ],
1233
+ "name": "resolveMultiBidAuction",
1234
+ "outputs": [],
1235
+ "stateMutability": "nonpayable",
1236
+ "type": "function"
1237
+ },
1238
+ {
1239
+ "inputs": [
1240
+ {
1241
+ "components": [
1242
+ {
1243
+ "internalType": "address",
1244
+ "name": "expressLaneController",
1245
+ "type": "address"
1246
+ },
1247
+ {
1248
+ "internalType": "uint256",
1249
+ "name": "amount",
1250
+ "type": "uint256"
1251
+ },
1252
+ {
1253
+ "internalType": "bytes",
1254
+ "name": "signature",
1255
+ "type": "bytes"
1256
+ }
1257
+ ],
1258
+ "internalType": "struct Bid",
1259
+ "name": "firstPriceBid",
1260
+ "type": "tuple"
1261
+ }
1262
+ ],
1263
+ "name": "resolveSingleBidAuction",
1264
+ "outputs": [],
1265
+ "stateMutability": "nonpayable",
1266
+ "type": "function"
1267
+ },
1268
+ {
1269
+ "inputs": [],
1270
+ "name": "resolvedRounds",
1271
+ "outputs": [
1272
+ {
1273
+ "components": [
1274
+ {
1275
+ "internalType": "address",
1276
+ "name": "expressLaneController",
1277
+ "type": "address"
1278
+ },
1279
+ {
1280
+ "internalType": "uint64",
1281
+ "name": "round",
1282
+ "type": "uint64"
1283
+ }
1284
+ ],
1285
+ "internalType": "struct ELCRound",
1286
+ "name": "",
1287
+ "type": "tuple"
1288
+ },
1289
+ {
1290
+ "components": [
1291
+ {
1292
+ "internalType": "address",
1293
+ "name": "expressLaneController",
1294
+ "type": "address"
1295
+ },
1296
+ {
1297
+ "internalType": "uint64",
1298
+ "name": "round",
1299
+ "type": "uint64"
1300
+ }
1301
+ ],
1302
+ "internalType": "struct ELCRound",
1303
+ "name": "",
1304
+ "type": "tuple"
1305
+ }
1306
+ ],
1307
+ "stateMutability": "view",
1308
+ "type": "function"
1309
+ },
1310
+ {
1311
+ "inputs": [
1312
+ {
1313
+ "internalType": "bytes32",
1314
+ "name": "role",
1315
+ "type": "bytes32"
1316
+ },
1317
+ {
1318
+ "internalType": "address",
1319
+ "name": "account",
1320
+ "type": "address"
1321
+ }
1322
+ ],
1323
+ "name": "revokeRole",
1324
+ "outputs": [],
1325
+ "stateMutability": "nonpayable",
1326
+ "type": "function"
1327
+ },
1328
+ {
1329
+ "inputs": [
1330
+ {
1331
+ "internalType": "uint64",
1332
+ "name": "round",
1333
+ "type": "uint64"
1334
+ }
1335
+ ],
1336
+ "name": "roundTimestamps",
1337
+ "outputs": [
1338
+ {
1339
+ "internalType": "uint64",
1340
+ "name": "",
1341
+ "type": "uint64"
1342
+ },
1343
+ {
1344
+ "internalType": "uint64",
1345
+ "name": "",
1346
+ "type": "uint64"
1347
+ }
1348
+ ],
1349
+ "stateMutability": "view",
1350
+ "type": "function"
1351
+ },
1352
+ {
1353
+ "inputs": [],
1354
+ "name": "roundTimingInfo",
1355
+ "outputs": [
1356
+ {
1357
+ "internalType": "int64",
1358
+ "name": "offsetTimestamp",
1359
+ "type": "int64"
1360
+ },
1361
+ {
1362
+ "internalType": "uint64",
1363
+ "name": "roundDurationSeconds",
1364
+ "type": "uint64"
1365
+ },
1366
+ {
1367
+ "internalType": "uint64",
1368
+ "name": "auctionClosingSeconds",
1369
+ "type": "uint64"
1370
+ },
1371
+ {
1372
+ "internalType": "uint64",
1373
+ "name": "reserveSubmissionSeconds",
1374
+ "type": "uint64"
1375
+ }
1376
+ ],
1377
+ "stateMutability": "view",
1378
+ "type": "function"
1379
+ },
1380
+ {
1381
+ "inputs": [
1382
+ {
1383
+ "internalType": "address",
1384
+ "name": "newBeneficiary",
1385
+ "type": "address"
1386
+ }
1387
+ ],
1388
+ "name": "setBeneficiary",
1389
+ "outputs": [],
1390
+ "stateMutability": "nonpayable",
1391
+ "type": "function"
1392
+ },
1393
+ {
1394
+ "inputs": [
1395
+ {
1396
+ "internalType": "uint256",
1397
+ "name": "newMinReservePrice",
1398
+ "type": "uint256"
1399
+ }
1400
+ ],
1401
+ "name": "setMinReservePrice",
1402
+ "outputs": [],
1403
+ "stateMutability": "nonpayable",
1404
+ "type": "function"
1405
+ },
1406
+ {
1407
+ "inputs": [
1408
+ {
1409
+ "internalType": "uint256",
1410
+ "name": "newReservePrice",
1411
+ "type": "uint256"
1412
+ }
1413
+ ],
1414
+ "name": "setReservePrice",
1415
+ "outputs": [],
1416
+ "stateMutability": "nonpayable",
1417
+ "type": "function"
1418
+ },
1419
+ {
1420
+ "inputs": [
1421
+ {
1422
+ "components": [
1423
+ {
1424
+ "internalType": "int64",
1425
+ "name": "offsetTimestamp",
1426
+ "type": "int64"
1427
+ },
1428
+ {
1429
+ "internalType": "uint64",
1430
+ "name": "roundDurationSeconds",
1431
+ "type": "uint64"
1432
+ },
1433
+ {
1434
+ "internalType": "uint64",
1435
+ "name": "auctionClosingSeconds",
1436
+ "type": "uint64"
1437
+ },
1438
+ {
1439
+ "internalType": "uint64",
1440
+ "name": "reserveSubmissionSeconds",
1441
+ "type": "uint64"
1442
+ }
1443
+ ],
1444
+ "internalType": "struct RoundTimingInfo",
1445
+ "name": "newRoundTimingInfo",
1446
+ "type": "tuple"
1447
+ }
1448
+ ],
1449
+ "name": "setRoundTimingInfo",
1450
+ "outputs": [],
1451
+ "stateMutability": "nonpayable",
1452
+ "type": "function"
1453
+ },
1454
+ {
1455
+ "inputs": [
1456
+ {
1457
+ "components": [
1458
+ {
1459
+ "internalType": "address",
1460
+ "name": "addr",
1461
+ "type": "address"
1462
+ },
1463
+ {
1464
+ "internalType": "uint64",
1465
+ "name": "fixedUntilRound",
1466
+ "type": "uint64"
1467
+ }
1468
+ ],
1469
+ "internalType": "struct Transferor",
1470
+ "name": "transferor",
1471
+ "type": "tuple"
1472
+ }
1473
+ ],
1474
+ "name": "setTransferor",
1475
+ "outputs": [],
1476
+ "stateMutability": "nonpayable",
1477
+ "type": "function"
1478
+ },
1479
+ {
1480
+ "inputs": [
1481
+ {
1482
+ "internalType": "bytes4",
1483
+ "name": "interfaceId",
1484
+ "type": "bytes4"
1485
+ }
1486
+ ],
1487
+ "name": "supportsInterface",
1488
+ "outputs": [
1489
+ {
1490
+ "internalType": "bool",
1491
+ "name": "",
1492
+ "type": "bool"
1493
+ }
1494
+ ],
1495
+ "stateMutability": "view",
1496
+ "type": "function"
1497
+ },
1498
+ {
1499
+ "inputs": [
1500
+ {
1501
+ "internalType": "uint64",
1502
+ "name": "round",
1503
+ "type": "uint64"
1504
+ },
1505
+ {
1506
+ "internalType": "address",
1507
+ "name": "newExpressLaneController",
1508
+ "type": "address"
1509
+ }
1510
+ ],
1511
+ "name": "transferExpressLaneController",
1512
+ "outputs": [],
1513
+ "stateMutability": "nonpayable",
1514
+ "type": "function"
1515
+ },
1516
+ {
1517
+ "inputs": [
1518
+ {
1519
+ "internalType": "address",
1520
+ "name": "",
1521
+ "type": "address"
1522
+ }
1523
+ ],
1524
+ "name": "transferorOf",
1525
+ "outputs": [
1526
+ {
1527
+ "internalType": "address",
1528
+ "name": "addr",
1529
+ "type": "address"
1530
+ },
1531
+ {
1532
+ "internalType": "uint64",
1533
+ "name": "fixedUntilRound",
1534
+ "type": "uint64"
1535
+ }
1536
+ ],
1537
+ "stateMutability": "view",
1538
+ "type": "function"
1539
+ },
1540
+ {
1541
+ "inputs": [
1542
+ {
1543
+ "internalType": "address",
1544
+ "name": "account",
1545
+ "type": "address"
1546
+ }
1547
+ ],
1548
+ "name": "withdrawableBalance",
1549
+ "outputs": [
1550
+ {
1551
+ "internalType": "uint256",
1552
+ "name": "",
1553
+ "type": "uint256"
1554
+ }
1555
+ ],
1556
+ "stateMutability": "view",
1557
+ "type": "function"
1558
+ },
1559
+ {
1560
+ "inputs": [
1561
+ {
1562
+ "internalType": "address",
1563
+ "name": "account",
1564
+ "type": "address"
1565
+ },
1566
+ {
1567
+ "internalType": "uint64",
1568
+ "name": "round",
1569
+ "type": "uint64"
1570
+ }
1571
+ ],
1572
+ "name": "withdrawableBalanceAtRound",
1573
+ "outputs": [
1574
+ {
1575
+ "internalType": "uint256",
1576
+ "name": "",
1577
+ "type": "uint256"
1578
+ }
1579
+ ],
1580
+ "stateMutability": "view",
1581
+ "type": "function"
1582
+ }
1583
+ ],
1584
+ "bytecode": "0x60a06040523060805234801561001457600080fd5b50608051613ffc61003060003960006114220152613ffc6000f3fe608060405234801561001057600080fd5b50600436106102945760003560e01c80637b617f9411610167578063c5b6aa2f116100ce578063e2fc6f6811610087578063e2fc6f681461069f578063e3f7bb55146106a9578063e460d2c5146106d0578063e4d20c1d146106d8578063f698da25146106eb578063fed87be8146106f357600080fd5b8063c5b6aa2f1461063f578063ca15c87314610647578063ce9c7c0d1461065a578063cfe9232b1461066d578063d547741f14610682578063db2e1eed1461069557600080fd5b80639a1fadd3116101205780639a1fadd3146105e1578063a217fddf146105f4578063b3ee252f146105fc578063b51d1d4f14610611578063b6b55f2514610619578063bef0ec741461062c57600080fd5b80637b617f941461054957806383af0a1f1461057c5780638948cc4e146105865780638a19c8bc1461059b5780639010d07c146105bb57806391d14854146105ce57600080fd5b80632f2ff15d1161020b578063639d7566116101c4578063639d7566146104915780636a514beb146104a55780636ad72517146105085780636dc4fc4e146105105780636e8cace51461052357806370a082311461053657600080fd5b80632f2ff15d14610404578063336a5b5e1461041757806336568abe1461042c57806338af3eed1461043f578063447a709e1461046b5780635633c3371461047e57600080fd5b80630d253fbe1161025d5780630d253fbe1461037457806314d963161461038a5780631682e50b146103b15780631c31f710146103c6578063248a9ca3146103d95780632d668ce7146103fc57600080fd5b80627be2fe146102995780630152682d146102ae57806301ffc9a71461031d57806302b629381461034057806304c584ad14610361575b600080fd5b6102ac6102a73660046135c1565b610706565b005b610104546102e490600781900b906001600160401b03600160401b8204811691600160801b8104821691600160c01b9091041684565b6040805160079590950b85526001600160401b039384166020860152918316918401919091521660608201526080015b60405180910390f35b61033061032b3660046135fa565b610917565b6040519015158152602001610314565b61035361034e366004613624565b610942565b604051908152602001610314565b61035361036f366004613641565b6109ba565b61037c610a3a565b6040516103149291906136a3565b6103537f3fb9f0655b78e8eabe9e0f51d65db56c7690d4329012c3faf1fbd6d43f65826181565b610353600080516020613f4783398151915281565b6102ac6103d4366004613624565b610aea565b6103536103e73660046136be565b60009081526065602052604090206001015490565b610330610b6f565b6102ac6104123660046136d7565b610bca565b610353600080516020613f6783398151915281565b6102ac61043a3660046136d7565b610bf5565b61010054610453906001600160a01b031681565b6040516001600160a01b039091168152602001610314565b6102ac610479366004613714565b610c73565b61035361048c366004613777565b610e9a565b61010154610453906001600160a01b031681565b6104e16104b3366004613624565b610106602052600090815260409020546001600160a01b03811690600160a01b90046001600160401b031682565b604080516001600160a01b0390931683526001600160401b03909116602083015201610314565b6102ac610fac565b6102ac61051e3660046137a5565b610ff6565b610353610531366004613777565b61111a565b610353610544366004613624565b611200565b61055c6105573660046137e1565b611278565b604080516001600160401b03938416815292909116602083015201610314565b6103536101035481565b610353600080516020613fa783398151915281565b6105a36112da565b6040516001600160401b039091168152602001610314565b6104536105c93660046137fe565b611330565b6103306105dc3660046136d7565b611348565b6102ac6105ef366004613820565b611373565b610353600081565b610353600080516020613f2783398151915281565b6102ac611803565b6102ac6106273660046136be565b6118c9565b6102ac61063a366004613833565b611934565b6102ac611a7d565b6103536106553660046136be565b611b39565b6102ac6106683660046136be565b611b50565b610353600080516020613f8783398151915281565b6102ac6106903660046136d7565b611bfd565b6103536101025481565b6103536101055481565b6103537fa8131bb4589277d6866d942849029b416b39e61eb3969a32787130bbdd292a9681565b610330611c23565b6102ac6106e63660046136be565b611c97565b610353611d07565b6102ac610701366004613845565b611d11565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152600061075b82611e7a565b9050806001600160401b0316846001600160401b031610156107a857604051631cafa7eb60e11b81526001600160401b038086166004830152821660248201526044015b60405180910390fd5b60006107b560fe86611eb0565b80546001600160a01b039081166000818152610106602052604090205492935091168015610811576001600160a01b038116331461080c57868133604051633b10eca560e11b815260040161079f93929190613857565b610840565b6001600160a01b0382163314610840578682336040516333057b6960e11b815260040161079f93929190613857565b82546001600160a01b0319166001600160a01b038716178355600080610866878a611f33565b90925090506001600160a01b03831661087f5783610881565b825b6001600160a01b0316886001600160a01b0316856001600160a01b03167fb59adc820ca642dad493a0a6e0bdf979dcae037dea114b70d5c66b1c0b791c4b8c426001600160401b0316876001600160401b0316106108df57866108e1565b425b604080516001600160401b03938416815291831660208301529187168183015290519081900360600190a4505050505050505050565b60006001600160e01b03198216635a05180f60e01b148061093c575061093c82611fb2565b92915050565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b9004909116606082015260009061093c9061099c90611e7a565b6001600160a01b038416600090815260fd6020526040902090611fe7565b604080517f0358b2b705d5c5ef47651be44f418326852a390f3b4c933661a5f4f0d8fa1ee360208201526001600160401b038516918101919091526001600160a01b038316606082015260808101829052600090610a309060a00160405160208183030381529060405280519060200120612010565b90505b9392505050565b6040805180820190915260008082526020820152604080518082019091526000808252602082015260ff5460fe546001600160401b03600160a01b928390048116929091041611610a8e5760ff60fe610a93565b60fe60ff5b60408051808201825292546001600160a01b0380821685526001600160401b03600160a01b928390048116602080880191909152845180860190955294549182168452919004169181019190915290939092509050565b600080516020613f67833981519152610b03813361205e565b61010054604080516001600160a01b03928316815291841660208301527f8a0149b2f3ddf2c9ee85738165131d82babbb938f749321d59f75750afa7f4e6910160405180910390a15061010080546001600160a01b0319166001600160a01b0392909216919091179055565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152600090610bc5906120c2565b905090565b600082815260656020526040902060010154610be6813361205e565b610bf0838361212d565b505050565b6001600160a01b0381163314610c655760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b606482015260840161079f565b610c6f828261214f565b5050565b600080516020613f87833981519152610c8c813361205e565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152610cdf816120c2565b610cfc5760405163b9adeefd60e01b815260040160405180910390fd5b826020013584602001351015610d255760405163a234cb1960e01b815260040160405180910390fd5b6101025483602001351015610d5f5761010254604051632b7cdbad60e11b815260208501356004820152602481019190915260440161079f565b6000610d6a82611e7a565b90506000610d798260016138ad565b9050600080610d90610d8a89613946565b84612171565b91509150600080610daa89610da490613946565b86612171565b91509150816001600160a01b0316846001600160a01b03161415610de15760405163f4a3e48560e01b815260040160405180910390fd5b88602001358a60200135148015610e4957508181604051602001610e069291906139fe565b60408051601f1981840301815290829052805160209182012091610e2e9187918791016139fe565b6040516020818303038152906040528051906020012060001c105b15610e67576040516348c2d05760e11b815260040160405180910390fd5b600080610e748988611f33565b91509150610e8c60018d888e602001358c878761224f565b505050505050505050505050565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152600090610ef090611e7a565b6001600160401b0316826001600160401b03161015610f8a576040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b900490911660608201528290610f5e90611e7a565b604051631cafa7eb60e11b81526001600160401b0392831660048201529116602482015260440161079f565b6001600160a01b038316600090815260fd60205260409020610a3390836123a5565b6101055480610fce57604051631f2a200560e01b815260040160405180910390fd5b6000610105556101005461010154610ff3916001600160a01b039182169116836123bd565b50565b600080516020613f8783398151915261100f813361205e565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152611062816120c2565b61107f5760405163b9adeefd60e01b815260040160405180910390fd5b61010254836020013510156110b95761010254604051632b7cdbad60e11b815260208501356004820152602481019190915260440161079f565b60006110c482611e7a565b905060006110d38260016138ad565b905060006110e96110e387613946565b83612171565b5090506000806110f98685611f33565b91509150611110600089856101025489878761224f565b5050505050505050565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b9004909116606082015260009061117090611e7a565b6001600160401b0316826001600160401b031610156111de576040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b900490911660608201528290610f5e90611e7a565b6001600160a01b038316600090815260fd60205260409020610a339083611fe7565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b9004909116606082015260009061093c9061125a90611e7a565b6001600160a01b038416600090815260fd60205260409020906123a5565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b9004909116606082015260009081906112d19084611f33565b91509150915091565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152600090610bc590611e7a565b6000828152609760205260408120610a339083612420565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600054610100900460ff1661138e5760005460ff1615611392565b303b155b6113f55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161079f565b600054610100900460ff16158015611417576000805461ffff19166101011790555b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156114a55760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b606482015260840161079f565b6114ad61242c565b6114fa6040518060400160405280601281526020017122bc383932b9b9a630b732a0bab1ba34b7b760711b815250604051806040016040528060018152602001603160f81b815250612455565b600061150c6040840160208501613624565b6001600160a01b0316141561153457604051633fb3c7af60e01b815260040160405180910390fd5b6115446040830160208401613624565b61010180546001600160a01b0319166001600160a01b03929092169190911790556115756060830160408401613624565b61010080546001600160a01b0319166001600160a01b03929092169190911790557f8a0149b2f3ddf2c9ee85738165131d82babbb938f749321d59f75750afa7f4e660006115c96060850160408601613624565b604080516001600160a01b0393841681529290911660208301520160405180910390a160e0820135610103819055604080516000815260208101929092527f5848068f11aa3ba9fe3fc33c5f9f2a3cd1aed67986b85b5e0cedc67dbe96f0f0910160405180910390a160e0820135610102819055604080516000815260208101929092527f9725e37e079c5bda6009a8f54d86265849f30acf61c630f9e1ac91e67de98794910160405180910390a1600061168a6080840160608501613a2f565b60070b12156116ac57604051630b7a36ff60e11b815260040160405180910390fd5b6116b882606001612486565b6116d460006116cf6101e085016101c08601613624565b61212d565b6116f8600080516020613fa78339815191526116cf61014085016101208601613624565b61171c600080516020613f678339815191526116cf6101a085016101808601613624565b611773600080516020613f8783398151915261173b6020850185613624565b7f3fb9f0655b78e8eabe9e0f51d65db56c7690d4329012c3faf1fbd6d43f65826161176e61012087016101008801613624565b612641565b6117ca600080516020613f2783398151915261179761016085016101408601613624565b7fa8131bb4589277d6866d942849029b416b39e61eb3969a32787130bbdd292a9661176e61018087016101608801613624565b6117ee600080516020613f478339815191526116cf6101c085016101a08601613624565b8015610c6f576000805461ff00191690555050565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b9004909116606082015260009061185990611e7a565b6118649060026138ad565b33600090815260fd6020526040902080549192506118829083612665565b604080518281526001600160401b038416602082015233917f31f69201fab7912e3ec9850e3ab705964bf46d9d4276bdcbb6d05e965e5f5401910160405180910390a25050565b33600090815260fd602052604090206118e29082612702565b610101546118fb906001600160a01b031633308461276f565b60405181815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c906020015b60405180910390a250565b3360009081526101066020526040902080546001600160a01b0316158015906119c557506040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b900490911660608201526119ab90611e7a565b81546001600160401b03918216600160a01b909104909116115b156119f7578054604051633aec4cf960e11b8152600160a01b9091046001600160401b0316600482015260240161079f565b336000908152610106602052604090208290611a138282613a4c565b50611a2390506020830183613624565b6001600160a01b0316337ff6d28df235d9fa45a42d45dbb7c4f4ac76edb51e528f09f25a0650d32b8b33c0611a5e60408601602087016137e1565b6040516001600160401b03909116815260200160405180910390a35050565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152600090611aec90611ad790611e7a565b33600090815260fd60205260409020906127a7565b61010154909150611b07906001600160a01b031633836123bd565b60405181815233907f9e5c4f9f4e46b8629d3dda85f43a69194f50254404a72dc62b9e932d9c94eda890602001611929565b600081815260976020526040812061093c9061280b565b600080516020613f27833981519152611b69813361205e565b6000611b7560fe612815565b5080546040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b900482166060820152929350611bd69291600160a01b900416612858565b15611bf4576040516309e00d2f60e31b815260040160405180910390fd5b610bf08361290e565b600082815260656020526040902060010154611c19813361205e565b610bf0838361214f565b600080611c3060fe612815565b5080546040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b900482166060820152929350611c919291600160a01b900416612858565b91505090565b600080516020613fa7833981519152611cb0813361205e565b6101035460408051918252602082018490527f5848068f11aa3ba9fe3fc33c5f9f2a3cd1aed67986b85b5e0cedc67dbe96f0f0910160405180910390a161010382905561010254821115610c6f57610c6f8261290e565b6000610bc5612984565b600080516020613f47833981519152611d2a813361205e565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b900490911660608201526000611d7f82611e7a565b90506000611d9a611d9536879003870187613aac565b611e7a565b9050806001600160401b0316826001600160401b031614611de1576040516368c18ca960e01b81526001600160401b0380841660048301528216602482015260440161079f565b6000611df8611df18460016138ad565b8590611f33565b5090506000611e20611e0b8460016138ad565b611e1a368a90038a018a613aac565b90611f33565b509050806001600160401b0316826001600160401b031614611e685760405163141c4d3b60e31b81526001600160401b0380841660048301528216602482015260440161079f565b611e7187612486565b50505050505050565b8051600090600790810b4290910b1215611e9657506000919050565b60208201518251611ea6906129ff565b61093c9190613b46565b60006001600160401b03821683820154600160a01b90046001600160401b03161415611ee2578260005b01905061093c565b6001600160401b0382168360010154600160a01b90046001600160401b03161415611f0f57826001611eda565b604051631f760a5b60e31b81526001600160401b038316600482015260240161079f565b6000806000838560200151611f489190613b6c565b8551611f549190613b9b565b905060008160070b1215611f815760405163f160ad7960e01b8152600782900b600482015260240161079f565b60208501518190600090600190611f9890846138ad565b611fa29190613bec565b91945090925050505b9250929050565b60006001600160e01b03198216637965db0b60e01b148061093c57506301ffc9a760e01b6001600160e01b031983161461093c565b60018201546000906001600160401b03908116908316101561200a576000610a33565b50505490565b600061093c61201d612984565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6120688282611348565b610c6f57612080816001600160a01b03166014612a0b565b61208b836020612a0b565b60405160200161209c929190613c40565b60408051601f198184030181529082905262461bcd60e51b825261079f91600401613caf565b8051600090600790810b4290910b12156120de57506000919050565b60006120ed83600001516129ff565b905060008360200151826121019190613ce2565b9050836040015184602001516121179190613bec565b6001600160401b03908116911610159392505050565b6121378282612ba6565b6000828152609760205260409020610bf09082612c2c565b6121598282612c41565b6000828152609760205260409020610bf09082612ca8565b600080600061218984866000015187602001516109ba565b905060006121a4866040015183612cbd90919063ffffffff16565b905060006121b3600187613bec565b6020808901516001600160a01b038516600090815260fd9092526040909120919250906121e090836123a5565b1015612244576020808801516001600160a01b038416600090815260fd909252604090912083919061221290846123a5565b604051630dac930560e21b81526001600160a01b0390931660048401526024830191909152604482015260640161079f565b509590945092505050565b600061225c8460016138ad565b90506122788161226f60208a018a613624565b60fe9190612ce1565b6001600160a01b038616600090815260fd6020526040902061229b908686612db4565b8461010560008282546122ae9190613d08565b90915550600090506122c36020890189613624565b604080516001600160401b038581168252878116602083015286168183015290516001600160a01b0392909216916000917fb59adc820ca642dad493a0a6e0bdf979dcae037dea114b70d5c66b1c0b791c4b919081900360600190a461232c6020880188613624565b604080516001600160401b03848116825260208b8101359083015281830189905286811660608301528516608082015290516001600160a01b03928316928916918b1515917f7f5bdabbd27a8fc572781b177055488d7c6729a2bade4f57da9d200f31c15d479181900360a00190a45050505050505050565b60006123b18383611fe7565b8354610a339190613d20565b6040516001600160a01b038316602482015260448101829052610bf090849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612e15565b6000610a338383612ee7565b600054610100900460ff166124535760405162461bcd60e51b815260040161079f90613d37565b565b600054610100900460ff1661247c5760405162461bcd60e51b815260040161079f90613d37565b610c6f8282612f11565b61249660608201604083016137e1565b6001600160401b03166124bc5760405163023dd6a960e11b815260040160405180910390fd5b620151806124d060408301602084016137e1565b6001600160401b03161115612514576124ef60408201602083016137e1565b60405163c34a76cf60e01b81526001600160401b03909116600482015260240161079f565b61252460408201602083016137e1565b6001600160401b031661253d60608301604084016137e1565b61254d60808401606085016137e1565b61255791906138ad565b6001600160401b0316111561257f576040516301936f1b60e51b815260040160405180910390fd5b8061010461258d8282613d82565b507f982cfb73783b8c64455c76cdeb1351467c4f1e6b3615fec07df232c1b46ffd4790506125c3611d9536849003840184613aac565b6125d06020840184613a2f565b6125e060408501602086016137e1565b6125f060608601604087016137e1565b61260060808701606088016137e1565b604080516001600160401b03968716815260079590950b6020860152928516848401529084166060840152909216608082015290519081900360a00190a150565b61264b848461212d565b612655828261212d565b61265f8483612f52565b50505050565b815461268457604051631f2a200560e01b815260040160405180910390fd5b6001600160401b0381811614156126ae57604051631ec4eeef60e11b815260040160405180910390fd5b60018201546001600160401b03908116146126dc576040516304eb6b3f60e01b815260040160405180910390fd5b600191909101805467ffffffffffffffff19166001600160401b03909216919091179055565b8061272057604051631f2a200560e01b815260040160405180910390fd5b60018201546001600160401b03908116146127525760018201805467ffffffffffffffff19166001600160401b031790555b808260000160008282546127669190613d08565b90915550505050565b6040516001600160a01b038085166024830152831660448201526064810182905261265f9085906323b872dd60e01b906084016123e9565b60006001600160401b0382811614156127d357604051631ec4eeef60e11b815260040160405180910390fd5b60006127df8484611fe7565b9050806127ff57604051630686827b60e51b815260040160405180910390fd5b60008455905092915050565b600061093c825490565b6000808083810190506000846001015482546001600160401b03600160a01b9283900481169290910416101561284e5750506001808401905b9094909350915050565b8151600090600790810b4290910b12156128745750600061093c565b600061287f84611e7a565b905061288c8160016138ad565b6001600160401b0316836001600160401b0316106128ae57600091505061093c565b60006128bd85600001516129ff565b905060008560200151826128d19190613ce2565b90508560600151866040015187602001516128ec9190613bec565b6128f69190613bec565b6001600160401b039081169116101595945050505050565b610103548110156129415761010354604051636d27939760e11b815261079f918391600401918252602082015260400190565b6101025460408051918252602082018390527f9725e37e079c5bda6009a8f54d86265849f30acf61c630f9e1ac91e67de98794910160405180910390a161010255565b6000610bc57f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6129b360c95490565b60ca546040805160208101859052908101839052606081018290524660808201523060a082015260009060c0016040516020818303038152906040528051906020012090509392505050565b600061093c8242613e34565b60606000612a1a836002613e86565b612a25906002613d08565b6001600160401b03811115612a3c57612a3c6138d8565b6040519080825280601f01601f191660200182016040528015612a66576020820181803683370190505b509050600360fc1b81600081518110612a8157612a81613881565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110612ab057612ab0613881565b60200101906001600160f81b031916908160001a9053506000612ad4846002613e86565b612adf906001613d08565b90505b6001811115612b57576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110612b1357612b13613881565b1a60f81b828281518110612b2957612b29613881565b60200101906001600160f81b031916908160001a90535060049490941c93612b5081613ea5565b9050612ae2565b508315610a335760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161079f565b612bb08282611348565b610c6f5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055612be83390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610a33836001600160a01b038416612f9d565b612c4b8282611348565b15610c6f5760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610a33836001600160a01b038416612fec565b6000806000612ccc85856130df565b91509150612cd98161314c565b509392505050565b600080612ced85612815565b815491935091506001600160401b03808616600160a01b9092041610612d3157604051631147e1cd60e21b81526001600160401b038516600482015260240161079f565b604080518082019091526001600160a01b03841681526001600160401b038516602082015260018218908660ff831660028110612d7057612d70613881565b8251910180546020909301516001600160401b0316600160a01b026001600160e01b03199093166001600160a01b0390921691909117919091179055505050505050565b6000612dc084836123a5565b9050801580612dce57508281105b15612df65760405163cf47918160e01b8152600481018490526024810182905260440161079f565b82846000016000828254612e0a9190613d20565b909155505050505050565b6000612e6a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166133029092919063ffffffff16565b805190915015610bf05780806020019051810190612e889190613ebc565b610bf05760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161079f565b6000826000018281548110612efe57612efe613881565b9060005260206000200154905092915050565b600054610100900460ff16612f385760405162461bcd60e51b815260040161079f90613d37565b81516020928301208151919092012060c99190915560ca55565b600082815260656020526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6000818152600183016020526040812054612fe45750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561093c565b50600061093c565b600081815260018301602052604081205480156130d5576000613010600183613d20565b855490915060009061302490600190613d20565b905081811461308957600086600001828154811061304457613044613881565b906000526020600020015490508087600001848154811061306757613067613881565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061309a5761309a613ede565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061093c565b600091505061093c565b6000808251604114156131165760208301516040840151606085015160001a61310a87828585613311565b94509450505050611fab565b82516040141561314057602083015160408401516131358683836133f4565b935093505050611fab565b50600090506002611fab565b600081600481111561316057613160613ef4565b14156131695750565b600181600481111561317d5761317d613ef4565b14156131c65760405162461bcd60e51b815260206004820152601860248201527745434453413a20696e76616c6964207369676e617475726560401b604482015260640161079f565b60028160048111156131da576131da613ef4565b14156132285760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161079f565b600381600481111561323c5761323c613ef4565b14156132955760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161079f565b60048160048111156132a9576132a9613ef4565b1415610ff35760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161079f565b6060610a30848460008561342d565b6000806fa2a8918ca85bafe22016d0b997e4df60600160ff1b0383111561333e57506000905060036133eb565b8460ff16601b1415801561335657508460ff16601c14155b1561336757506000905060046133eb565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156133bb573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166133e4576000600192509250506133eb565b9150600090505b94509492505050565b6000806001600160ff1b0383168161341160ff86901c601b613d08565b905061341f87828885613311565b935093505050935093915050565b60608247101561348e5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161079f565b6001600160a01b0385163b6134e55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161079f565b600080866001600160a01b031685876040516135019190613f0a565b60006040518083038185875af1925050503d806000811461353e576040519150601f19603f3d011682016040523d82523d6000602084013e613543565b606091505b509150915061355382828661355e565b979650505050505050565b6060831561356d575081610a33565b82511561357d5782518084602001fd5b8160405162461bcd60e51b815260040161079f9190613caf565b6001600160401b0381168114610ff357600080fd5b6001600160a01b0381168114610ff357600080fd5b600080604083850312156135d457600080fd5b82356135df81613597565b915060208301356135ef816135ac565b809150509250929050565b60006020828403121561360c57600080fd5b81356001600160e01b031981168114610a3357600080fd5b60006020828403121561363657600080fd5b8135610a33816135ac565b60008060006060848603121561365657600080fd5b833561366181613597565b92506020840135613671816135ac565b929592945050506040919091013590565b80516001600160a01b031682526020908101516001600160401b0316910152565b608081016136b18285613682565b610a336040830184613682565b6000602082840312156136d057600080fd5b5035919050565b600080604083850312156136ea57600080fd5b8235915060208301356135ef816135ac565b60006060828403121561370e57600080fd5b50919050565b6000806040838503121561372757600080fd5b82356001600160401b038082111561373e57600080fd5b61374a868387016136fc565b9350602085013591508082111561376057600080fd5b5061376d858286016136fc565b9150509250929050565b6000806040838503121561378a57600080fd5b8235613795816135ac565b915060208301356135ef81613597565b6000602082840312156137b757600080fd5b81356001600160401b038111156137cd57600080fd5b6137d9848285016136fc565b949350505050565b6000602082840312156137f357600080fd5b8135610a3381613597565b6000806040838503121561381157600080fd5b50508035926020909101359150565b60006101e0828403121561370e57600080fd5b60006040828403121561370e57600080fd5b60006080828403121561370e57600080fd5b6001600160401b039390931683526001600160a01b03918216602084015216604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001600160401b038083168185168083038211156138cf576138cf613897565b01949350505050565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b0381118282101715613910576139106138d8565b60405290565b604051601f8201601f191681016001600160401b038111828210171561393e5761393e6138d8565b604052919050565b60006060823603121561395857600080fd5b6139606138ee565b823561396b816135ac565b81526020838101358183015260408401356001600160401b038082111561399157600080fd5b9085019036601f8301126139a457600080fd5b8135818111156139b6576139b66138d8565b6139c8601f8201601f19168501613916565b915080825236848285010111156139de57600080fd5b808484018584013760009082019093019290925250604082015292915050565b60609290921b6bffffffffffffffffffffffff19168252601482015260340190565b8060070b8114610ff357600080fd5b600060208284031215613a4157600080fd5b8135610a3381613a20565b8135613a57816135ac565b81546001600160a01b031981166001600160a01b039290921691821783556020840135613a8381613597565b6001600160e01b03199190911690911760a09190911b67ffffffffffffffff60a01b1617905550565b600060808284031215613abe57600080fd5b604051608081018181106001600160401b0382111715613ae057613ae06138d8565b6040528235613aee81613a20565b81526020830135613afe81613597565b60208201526040830135613b1181613597565b60408201526060830135613b2481613597565b60608201529392505050565b634e487b7160e01b600052601260045260246000fd5b60006001600160401b0380841680613b6057613b60613b30565b92169190910492915050565b60006001600160401b0380831681851681830481118215151615613b9257613b92613897565b02949350505050565b60008160070b8360070b6000821282677fffffffffffffff03821381151615613bc657613bc6613897565b82677fffffffffffffff19038212811615613be357613be3613897565b50019392505050565b60006001600160401b0383811690831681811015613c0c57613c0c613897565b039392505050565b60005b83811015613c2f578181015183820152602001613c17565b8381111561265f5750506000910152565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b815260008351613c72816017850160208801613c14565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351613ca3816028840160208801613c14565b01602801949350505050565b6020815260008251806020840152613cce816040850160208701613c14565b601f01601f19169190910160400192915050565b60006001600160401b0380841680613cfc57613cfc613b30565b92169190910692915050565b60008219821115613d1b57613d1b613897565b500190565b600082821015613d3257613d32613897565b500390565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b8135613d8d81613a20565b81546001600160401b038281166001600160401b031983161784556020850135613db681613597565b67ffffffffffffffff60401b604091821b16919093166001600160801b031983168117821785559285013590613deb82613597565b6001600160c01b03199283168417811760809290921b67ffffffffffffffff60801b169182178555606086013592613e2284613597565b93171760c09190911b90911617905550565b60008160070b8360070b6000811281677fffffffffffffff1901831281151615613e6057613e60613897565b81677fffffffffffffff018313811615613e7c57613e7c613897565b5090039392505050565b6000816000190483118215151615613ea057613ea0613897565b500290565b600081613eb457613eb4613897565b506000190190565b600060208284031215613ece57600080fd5b81518015158114610a3357600080fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b60008251613f1c818460208701613c14565b919091019291505056fe19e6f23df7275b48d1c33822c6ad041a743378552246ac819f578ae1d6709cf96d8dad7188c7ed005c55bf77fbf589583d8668b0dad30a9b9dd016321a5c256fc1b97c934675624ef2089089ac12ae8922988c11dc8a578dfbac10d9eecf47611d693f62a755e2b3c6494da41af454605b9006057cb3c79b6adda1378f2a50a7b07567e7223e21f7dce4c0a89131ce9c32d0d3484085f3f331dea8caef56d141a26469706673582212209f51e02124f32723d3a2f129637bcced41953624c5f087712d8517a7f9b2ab7764736f6c63430008090033",
1585
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102945760003560e01c80637b617f9411610167578063c5b6aa2f116100ce578063e2fc6f6811610087578063e2fc6f681461069f578063e3f7bb55146106a9578063e460d2c5146106d0578063e4d20c1d146106d8578063f698da25146106eb578063fed87be8146106f357600080fd5b8063c5b6aa2f1461063f578063ca15c87314610647578063ce9c7c0d1461065a578063cfe9232b1461066d578063d547741f14610682578063db2e1eed1461069557600080fd5b80639a1fadd3116101205780639a1fadd3146105e1578063a217fddf146105f4578063b3ee252f146105fc578063b51d1d4f14610611578063b6b55f2514610619578063bef0ec741461062c57600080fd5b80637b617f941461054957806383af0a1f1461057c5780638948cc4e146105865780638a19c8bc1461059b5780639010d07c146105bb57806391d14854146105ce57600080fd5b80632f2ff15d1161020b578063639d7566116101c4578063639d7566146104915780636a514beb146104a55780636ad72517146105085780636dc4fc4e146105105780636e8cace51461052357806370a082311461053657600080fd5b80632f2ff15d14610404578063336a5b5e1461041757806336568abe1461042c57806338af3eed1461043f578063447a709e1461046b5780635633c3371461047e57600080fd5b80630d253fbe1161025d5780630d253fbe1461037457806314d963161461038a5780631682e50b146103b15780631c31f710146103c6578063248a9ca3146103d95780632d668ce7146103fc57600080fd5b80627be2fe146102995780630152682d146102ae57806301ffc9a71461031d57806302b629381461034057806304c584ad14610361575b600080fd5b6102ac6102a73660046135c1565b610706565b005b610104546102e490600781900b906001600160401b03600160401b8204811691600160801b8104821691600160c01b9091041684565b6040805160079590950b85526001600160401b039384166020860152918316918401919091521660608201526080015b60405180910390f35b61033061032b3660046135fa565b610917565b6040519015158152602001610314565b61035361034e366004613624565b610942565b604051908152602001610314565b61035361036f366004613641565b6109ba565b61037c610a3a565b6040516103149291906136a3565b6103537f3fb9f0655b78e8eabe9e0f51d65db56c7690d4329012c3faf1fbd6d43f65826181565b610353600080516020613f4783398151915281565b6102ac6103d4366004613624565b610aea565b6103536103e73660046136be565b60009081526065602052604090206001015490565b610330610b6f565b6102ac6104123660046136d7565b610bca565b610353600080516020613f6783398151915281565b6102ac61043a3660046136d7565b610bf5565b61010054610453906001600160a01b031681565b6040516001600160a01b039091168152602001610314565b6102ac610479366004613714565b610c73565b61035361048c366004613777565b610e9a565b61010154610453906001600160a01b031681565b6104e16104b3366004613624565b610106602052600090815260409020546001600160a01b03811690600160a01b90046001600160401b031682565b604080516001600160a01b0390931683526001600160401b03909116602083015201610314565b6102ac610fac565b6102ac61051e3660046137a5565b610ff6565b610353610531366004613777565b61111a565b610353610544366004613624565b611200565b61055c6105573660046137e1565b611278565b604080516001600160401b03938416815292909116602083015201610314565b6103536101035481565b610353600080516020613fa783398151915281565b6105a36112da565b6040516001600160401b039091168152602001610314565b6104536105c93660046137fe565b611330565b6103306105dc3660046136d7565b611348565b6102ac6105ef366004613820565b611373565b610353600081565b610353600080516020613f2783398151915281565b6102ac611803565b6102ac6106273660046136be565b6118c9565b6102ac61063a366004613833565b611934565b6102ac611a7d565b6103536106553660046136be565b611b39565b6102ac6106683660046136be565b611b50565b610353600080516020613f8783398151915281565b6102ac6106903660046136d7565b611bfd565b6103536101025481565b6103536101055481565b6103537fa8131bb4589277d6866d942849029b416b39e61eb3969a32787130bbdd292a9681565b610330611c23565b6102ac6106e63660046136be565b611c97565b610353611d07565b6102ac610701366004613845565b611d11565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152600061075b82611e7a565b9050806001600160401b0316846001600160401b031610156107a857604051631cafa7eb60e11b81526001600160401b038086166004830152821660248201526044015b60405180910390fd5b60006107b560fe86611eb0565b80546001600160a01b039081166000818152610106602052604090205492935091168015610811576001600160a01b038116331461080c57868133604051633b10eca560e11b815260040161079f93929190613857565b610840565b6001600160a01b0382163314610840578682336040516333057b6960e11b815260040161079f93929190613857565b82546001600160a01b0319166001600160a01b038716178355600080610866878a611f33565b90925090506001600160a01b03831661087f5783610881565b825b6001600160a01b0316886001600160a01b0316856001600160a01b03167fb59adc820ca642dad493a0a6e0bdf979dcae037dea114b70d5c66b1c0b791c4b8c426001600160401b0316876001600160401b0316106108df57866108e1565b425b604080516001600160401b03938416815291831660208301529187168183015290519081900360600190a4505050505050505050565b60006001600160e01b03198216635a05180f60e01b148061093c575061093c82611fb2565b92915050565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b9004909116606082015260009061093c9061099c90611e7a565b6001600160a01b038416600090815260fd6020526040902090611fe7565b604080517f0358b2b705d5c5ef47651be44f418326852a390f3b4c933661a5f4f0d8fa1ee360208201526001600160401b038516918101919091526001600160a01b038316606082015260808101829052600090610a309060a00160405160208183030381529060405280519060200120612010565b90505b9392505050565b6040805180820190915260008082526020820152604080518082019091526000808252602082015260ff5460fe546001600160401b03600160a01b928390048116929091041611610a8e5760ff60fe610a93565b60fe60ff5b60408051808201825292546001600160a01b0380821685526001600160401b03600160a01b928390048116602080880191909152845180860190955294549182168452919004169181019190915290939092509050565b600080516020613f67833981519152610b03813361205e565b61010054604080516001600160a01b03928316815291841660208301527f8a0149b2f3ddf2c9ee85738165131d82babbb938f749321d59f75750afa7f4e6910160405180910390a15061010080546001600160a01b0319166001600160a01b0392909216919091179055565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152600090610bc5906120c2565b905090565b600082815260656020526040902060010154610be6813361205e565b610bf0838361212d565b505050565b6001600160a01b0381163314610c655760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b606482015260840161079f565b610c6f828261214f565b5050565b600080516020613f87833981519152610c8c813361205e565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152610cdf816120c2565b610cfc5760405163b9adeefd60e01b815260040160405180910390fd5b826020013584602001351015610d255760405163a234cb1960e01b815260040160405180910390fd5b6101025483602001351015610d5f5761010254604051632b7cdbad60e11b815260208501356004820152602481019190915260440161079f565b6000610d6a82611e7a565b90506000610d798260016138ad565b9050600080610d90610d8a89613946565b84612171565b91509150600080610daa89610da490613946565b86612171565b91509150816001600160a01b0316846001600160a01b03161415610de15760405163f4a3e48560e01b815260040160405180910390fd5b88602001358a60200135148015610e4957508181604051602001610e069291906139fe565b60408051601f1981840301815290829052805160209182012091610e2e9187918791016139fe565b6040516020818303038152906040528051906020012060001c105b15610e67576040516348c2d05760e11b815260040160405180910390fd5b600080610e748988611f33565b91509150610e8c60018d888e602001358c878761224f565b505050505050505050505050565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152600090610ef090611e7a565b6001600160401b0316826001600160401b03161015610f8a576040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b900490911660608201528290610f5e90611e7a565b604051631cafa7eb60e11b81526001600160401b0392831660048201529116602482015260440161079f565b6001600160a01b038316600090815260fd60205260409020610a3390836123a5565b6101055480610fce57604051631f2a200560e01b815260040160405180910390fd5b6000610105556101005461010154610ff3916001600160a01b039182169116836123bd565b50565b600080516020613f8783398151915261100f813361205e565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152611062816120c2565b61107f5760405163b9adeefd60e01b815260040160405180910390fd5b61010254836020013510156110b95761010254604051632b7cdbad60e11b815260208501356004820152602481019190915260440161079f565b60006110c482611e7a565b905060006110d38260016138ad565b905060006110e96110e387613946565b83612171565b5090506000806110f98685611f33565b91509150611110600089856101025489878761224f565b5050505050505050565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b9004909116606082015260009061117090611e7a565b6001600160401b0316826001600160401b031610156111de576040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b900490911660608201528290610f5e90611e7a565b6001600160a01b038316600090815260fd60205260409020610a339083611fe7565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b9004909116606082015260009061093c9061125a90611e7a565b6001600160a01b038416600090815260fd60205260409020906123a5565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b9004909116606082015260009081906112d19084611f33565b91509150915091565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152600090610bc590611e7a565b6000828152609760205260408120610a339083612420565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600054610100900460ff1661138e5760005460ff1615611392565b303b155b6113f55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161079f565b600054610100900460ff16158015611417576000805461ffff19166101011790555b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156114a55760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b606482015260840161079f565b6114ad61242c565b6114fa6040518060400160405280601281526020017122bc383932b9b9a630b732a0bab1ba34b7b760711b815250604051806040016040528060018152602001603160f81b815250612455565b600061150c6040840160208501613624565b6001600160a01b0316141561153457604051633fb3c7af60e01b815260040160405180910390fd5b6115446040830160208401613624565b61010180546001600160a01b0319166001600160a01b03929092169190911790556115756060830160408401613624565b61010080546001600160a01b0319166001600160a01b03929092169190911790557f8a0149b2f3ddf2c9ee85738165131d82babbb938f749321d59f75750afa7f4e660006115c96060850160408601613624565b604080516001600160a01b0393841681529290911660208301520160405180910390a160e0820135610103819055604080516000815260208101929092527f5848068f11aa3ba9fe3fc33c5f9f2a3cd1aed67986b85b5e0cedc67dbe96f0f0910160405180910390a160e0820135610102819055604080516000815260208101929092527f9725e37e079c5bda6009a8f54d86265849f30acf61c630f9e1ac91e67de98794910160405180910390a1600061168a6080840160608501613a2f565b60070b12156116ac57604051630b7a36ff60e11b815260040160405180910390fd5b6116b882606001612486565b6116d460006116cf6101e085016101c08601613624565b61212d565b6116f8600080516020613fa78339815191526116cf61014085016101208601613624565b61171c600080516020613f678339815191526116cf6101a085016101808601613624565b611773600080516020613f8783398151915261173b6020850185613624565b7f3fb9f0655b78e8eabe9e0f51d65db56c7690d4329012c3faf1fbd6d43f65826161176e61012087016101008801613624565b612641565b6117ca600080516020613f2783398151915261179761016085016101408601613624565b7fa8131bb4589277d6866d942849029b416b39e61eb3969a32787130bbdd292a9661176e61018087016101608801613624565b6117ee600080516020613f478339815191526116cf6101c085016101a08601613624565b8015610c6f576000805461ff00191690555050565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b9004909116606082015260009061185990611e7a565b6118649060026138ad565b33600090815260fd6020526040902080549192506118829083612665565b604080518281526001600160401b038416602082015233917f31f69201fab7912e3ec9850e3ab705964bf46d9d4276bdcbb6d05e965e5f5401910160405180910390a25050565b33600090815260fd602052604090206118e29082612702565b610101546118fb906001600160a01b031633308461276f565b60405181815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c906020015b60405180910390a250565b3360009081526101066020526040902080546001600160a01b0316158015906119c557506040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b900490911660608201526119ab90611e7a565b81546001600160401b03918216600160a01b909104909116115b156119f7578054604051633aec4cf960e11b8152600160a01b9091046001600160401b0316600482015260240161079f565b336000908152610106602052604090208290611a138282613a4c565b50611a2390506020830183613624565b6001600160a01b0316337ff6d28df235d9fa45a42d45dbb7c4f4ac76edb51e528f09f25a0650d32b8b33c0611a5e60408601602087016137e1565b6040516001600160401b03909116815260200160405180910390a35050565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152600090611aec90611ad790611e7a565b33600090815260fd60205260409020906127a7565b61010154909150611b07906001600160a01b031633836123bd565b60405181815233907f9e5c4f9f4e46b8629d3dda85f43a69194f50254404a72dc62b9e932d9c94eda890602001611929565b600081815260976020526040812061093c9061280b565b600080516020613f27833981519152611b69813361205e565b6000611b7560fe612815565b5080546040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b900482166060820152929350611bd69291600160a01b900416612858565b15611bf4576040516309e00d2f60e31b815260040160405180910390fd5b610bf08361290e565b600082815260656020526040902060010154611c19813361205e565b610bf0838361214f565b600080611c3060fe612815565b5080546040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b900482166060820152929350611c919291600160a01b900416612858565b91505090565b600080516020613fa7833981519152611cb0813361205e565b6101035460408051918252602082018490527f5848068f11aa3ba9fe3fc33c5f9f2a3cd1aed67986b85b5e0cedc67dbe96f0f0910160405180910390a161010382905561010254821115610c6f57610c6f8261290e565b6000610bc5612984565b600080516020613f47833981519152611d2a813361205e565b6040805160808101825261010454600781900b82526001600160401b03600160401b820481166020840152600160801b8204811693830193909352600160c01b900490911660608201526000611d7f82611e7a565b90506000611d9a611d9536879003870187613aac565b611e7a565b9050806001600160401b0316826001600160401b031614611de1576040516368c18ca960e01b81526001600160401b0380841660048301528216602482015260440161079f565b6000611df8611df18460016138ad565b8590611f33565b5090506000611e20611e0b8460016138ad565b611e1a368a90038a018a613aac565b90611f33565b509050806001600160401b0316826001600160401b031614611e685760405163141c4d3b60e31b81526001600160401b0380841660048301528216602482015260440161079f565b611e7187612486565b50505050505050565b8051600090600790810b4290910b1215611e9657506000919050565b60208201518251611ea6906129ff565b61093c9190613b46565b60006001600160401b03821683820154600160a01b90046001600160401b03161415611ee2578260005b01905061093c565b6001600160401b0382168360010154600160a01b90046001600160401b03161415611f0f57826001611eda565b604051631f760a5b60e31b81526001600160401b038316600482015260240161079f565b6000806000838560200151611f489190613b6c565b8551611f549190613b9b565b905060008160070b1215611f815760405163f160ad7960e01b8152600782900b600482015260240161079f565b60208501518190600090600190611f9890846138ad565b611fa29190613bec565b91945090925050505b9250929050565b60006001600160e01b03198216637965db0b60e01b148061093c57506301ffc9a760e01b6001600160e01b031983161461093c565b60018201546000906001600160401b03908116908316101561200a576000610a33565b50505490565b600061093c61201d612984565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6120688282611348565b610c6f57612080816001600160a01b03166014612a0b565b61208b836020612a0b565b60405160200161209c929190613c40565b60408051601f198184030181529082905262461bcd60e51b825261079f91600401613caf565b8051600090600790810b4290910b12156120de57506000919050565b60006120ed83600001516129ff565b905060008360200151826121019190613ce2565b9050836040015184602001516121179190613bec565b6001600160401b03908116911610159392505050565b6121378282612ba6565b6000828152609760205260409020610bf09082612c2c565b6121598282612c41565b6000828152609760205260409020610bf09082612ca8565b600080600061218984866000015187602001516109ba565b905060006121a4866040015183612cbd90919063ffffffff16565b905060006121b3600187613bec565b6020808901516001600160a01b038516600090815260fd9092526040909120919250906121e090836123a5565b1015612244576020808801516001600160a01b038416600090815260fd909252604090912083919061221290846123a5565b604051630dac930560e21b81526001600160a01b0390931660048401526024830191909152604482015260640161079f565b509590945092505050565b600061225c8460016138ad565b90506122788161226f60208a018a613624565b60fe9190612ce1565b6001600160a01b038616600090815260fd6020526040902061229b908686612db4565b8461010560008282546122ae9190613d08565b90915550600090506122c36020890189613624565b604080516001600160401b038581168252878116602083015286168183015290516001600160a01b0392909216916000917fb59adc820ca642dad493a0a6e0bdf979dcae037dea114b70d5c66b1c0b791c4b919081900360600190a461232c6020880188613624565b604080516001600160401b03848116825260208b8101359083015281830189905286811660608301528516608082015290516001600160a01b03928316928916918b1515917f7f5bdabbd27a8fc572781b177055488d7c6729a2bade4f57da9d200f31c15d479181900360a00190a45050505050505050565b60006123b18383611fe7565b8354610a339190613d20565b6040516001600160a01b038316602482015260448101829052610bf090849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612e15565b6000610a338383612ee7565b600054610100900460ff166124535760405162461bcd60e51b815260040161079f90613d37565b565b600054610100900460ff1661247c5760405162461bcd60e51b815260040161079f90613d37565b610c6f8282612f11565b61249660608201604083016137e1565b6001600160401b03166124bc5760405163023dd6a960e11b815260040160405180910390fd5b620151806124d060408301602084016137e1565b6001600160401b03161115612514576124ef60408201602083016137e1565b60405163c34a76cf60e01b81526001600160401b03909116600482015260240161079f565b61252460408201602083016137e1565b6001600160401b031661253d60608301604084016137e1565b61254d60808401606085016137e1565b61255791906138ad565b6001600160401b0316111561257f576040516301936f1b60e51b815260040160405180910390fd5b8061010461258d8282613d82565b507f982cfb73783b8c64455c76cdeb1351467c4f1e6b3615fec07df232c1b46ffd4790506125c3611d9536849003840184613aac565b6125d06020840184613a2f565b6125e060408501602086016137e1565b6125f060608601604087016137e1565b61260060808701606088016137e1565b604080516001600160401b03968716815260079590950b6020860152928516848401529084166060840152909216608082015290519081900360a00190a150565b61264b848461212d565b612655828261212d565b61265f8483612f52565b50505050565b815461268457604051631f2a200560e01b815260040160405180910390fd5b6001600160401b0381811614156126ae57604051631ec4eeef60e11b815260040160405180910390fd5b60018201546001600160401b03908116146126dc576040516304eb6b3f60e01b815260040160405180910390fd5b600191909101805467ffffffffffffffff19166001600160401b03909216919091179055565b8061272057604051631f2a200560e01b815260040160405180910390fd5b60018201546001600160401b03908116146127525760018201805467ffffffffffffffff19166001600160401b031790555b808260000160008282546127669190613d08565b90915550505050565b6040516001600160a01b038085166024830152831660448201526064810182905261265f9085906323b872dd60e01b906084016123e9565b60006001600160401b0382811614156127d357604051631ec4eeef60e11b815260040160405180910390fd5b60006127df8484611fe7565b9050806127ff57604051630686827b60e51b815260040160405180910390fd5b60008455905092915050565b600061093c825490565b6000808083810190506000846001015482546001600160401b03600160a01b9283900481169290910416101561284e5750506001808401905b9094909350915050565b8151600090600790810b4290910b12156128745750600061093c565b600061287f84611e7a565b905061288c8160016138ad565b6001600160401b0316836001600160401b0316106128ae57600091505061093c565b60006128bd85600001516129ff565b905060008560200151826128d19190613ce2565b90508560600151866040015187602001516128ec9190613bec565b6128f69190613bec565b6001600160401b039081169116101595945050505050565b610103548110156129415761010354604051636d27939760e11b815261079f918391600401918252602082015260400190565b6101025460408051918252602082018390527f9725e37e079c5bda6009a8f54d86265849f30acf61c630f9e1ac91e67de98794910160405180910390a161010255565b6000610bc57f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6129b360c95490565b60ca546040805160208101859052908101839052606081018290524660808201523060a082015260009060c0016040516020818303038152906040528051906020012090509392505050565b600061093c8242613e34565b60606000612a1a836002613e86565b612a25906002613d08565b6001600160401b03811115612a3c57612a3c6138d8565b6040519080825280601f01601f191660200182016040528015612a66576020820181803683370190505b509050600360fc1b81600081518110612a8157612a81613881565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110612ab057612ab0613881565b60200101906001600160f81b031916908160001a9053506000612ad4846002613e86565b612adf906001613d08565b90505b6001811115612b57576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110612b1357612b13613881565b1a60f81b828281518110612b2957612b29613881565b60200101906001600160f81b031916908160001a90535060049490941c93612b5081613ea5565b9050612ae2565b508315610a335760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161079f565b612bb08282611348565b610c6f5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055612be83390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610a33836001600160a01b038416612f9d565b612c4b8282611348565b15610c6f5760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610a33836001600160a01b038416612fec565b6000806000612ccc85856130df565b91509150612cd98161314c565b509392505050565b600080612ced85612815565b815491935091506001600160401b03808616600160a01b9092041610612d3157604051631147e1cd60e21b81526001600160401b038516600482015260240161079f565b604080518082019091526001600160a01b03841681526001600160401b038516602082015260018218908660ff831660028110612d7057612d70613881565b8251910180546020909301516001600160401b0316600160a01b026001600160e01b03199093166001600160a01b0390921691909117919091179055505050505050565b6000612dc084836123a5565b9050801580612dce57508281105b15612df65760405163cf47918160e01b8152600481018490526024810182905260440161079f565b82846000016000828254612e0a9190613d20565b909155505050505050565b6000612e6a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166133029092919063ffffffff16565b805190915015610bf05780806020019051810190612e889190613ebc565b610bf05760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161079f565b6000826000018281548110612efe57612efe613881565b9060005260206000200154905092915050565b600054610100900460ff16612f385760405162461bcd60e51b815260040161079f90613d37565b81516020928301208151919092012060c99190915560ca55565b600082815260656020526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6000818152600183016020526040812054612fe45750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561093c565b50600061093c565b600081815260018301602052604081205480156130d5576000613010600183613d20565b855490915060009061302490600190613d20565b905081811461308957600086600001828154811061304457613044613881565b906000526020600020015490508087600001848154811061306757613067613881565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061309a5761309a613ede565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061093c565b600091505061093c565b6000808251604114156131165760208301516040840151606085015160001a61310a87828585613311565b94509450505050611fab565b82516040141561314057602083015160408401516131358683836133f4565b935093505050611fab565b50600090506002611fab565b600081600481111561316057613160613ef4565b14156131695750565b600181600481111561317d5761317d613ef4565b14156131c65760405162461bcd60e51b815260206004820152601860248201527745434453413a20696e76616c6964207369676e617475726560401b604482015260640161079f565b60028160048111156131da576131da613ef4565b14156132285760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161079f565b600381600481111561323c5761323c613ef4565b14156132955760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161079f565b60048160048111156132a9576132a9613ef4565b1415610ff35760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161079f565b6060610a30848460008561342d565b6000806fa2a8918ca85bafe22016d0b997e4df60600160ff1b0383111561333e57506000905060036133eb565b8460ff16601b1415801561335657508460ff16601c14155b1561336757506000905060046133eb565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156133bb573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166133e4576000600192509250506133eb565b9150600090505b94509492505050565b6000806001600160ff1b0383168161341160ff86901c601b613d08565b905061341f87828885613311565b935093505050935093915050565b60608247101561348e5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161079f565b6001600160a01b0385163b6134e55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161079f565b600080866001600160a01b031685876040516135019190613f0a565b60006040518083038185875af1925050503d806000811461353e576040519150601f19603f3d011682016040523d82523d6000602084013e613543565b606091505b509150915061355382828661355e565b979650505050505050565b6060831561356d575081610a33565b82511561357d5782518084602001fd5b8160405162461bcd60e51b815260040161079f9190613caf565b6001600160401b0381168114610ff357600080fd5b6001600160a01b0381168114610ff357600080fd5b600080604083850312156135d457600080fd5b82356135df81613597565b915060208301356135ef816135ac565b809150509250929050565b60006020828403121561360c57600080fd5b81356001600160e01b031981168114610a3357600080fd5b60006020828403121561363657600080fd5b8135610a33816135ac565b60008060006060848603121561365657600080fd5b833561366181613597565b92506020840135613671816135ac565b929592945050506040919091013590565b80516001600160a01b031682526020908101516001600160401b0316910152565b608081016136b18285613682565b610a336040830184613682565b6000602082840312156136d057600080fd5b5035919050565b600080604083850312156136ea57600080fd5b8235915060208301356135ef816135ac565b60006060828403121561370e57600080fd5b50919050565b6000806040838503121561372757600080fd5b82356001600160401b038082111561373e57600080fd5b61374a868387016136fc565b9350602085013591508082111561376057600080fd5b5061376d858286016136fc565b9150509250929050565b6000806040838503121561378a57600080fd5b8235613795816135ac565b915060208301356135ef81613597565b6000602082840312156137b757600080fd5b81356001600160401b038111156137cd57600080fd5b6137d9848285016136fc565b949350505050565b6000602082840312156137f357600080fd5b8135610a3381613597565b6000806040838503121561381157600080fd5b50508035926020909101359150565b60006101e0828403121561370e57600080fd5b60006040828403121561370e57600080fd5b60006080828403121561370e57600080fd5b6001600160401b039390931683526001600160a01b03918216602084015216604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001600160401b038083168185168083038211156138cf576138cf613897565b01949350505050565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b0381118282101715613910576139106138d8565b60405290565b604051601f8201601f191681016001600160401b038111828210171561393e5761393e6138d8565b604052919050565b60006060823603121561395857600080fd5b6139606138ee565b823561396b816135ac565b81526020838101358183015260408401356001600160401b038082111561399157600080fd5b9085019036601f8301126139a457600080fd5b8135818111156139b6576139b66138d8565b6139c8601f8201601f19168501613916565b915080825236848285010111156139de57600080fd5b808484018584013760009082019093019290925250604082015292915050565b60609290921b6bffffffffffffffffffffffff19168252601482015260340190565b8060070b8114610ff357600080fd5b600060208284031215613a4157600080fd5b8135610a3381613a20565b8135613a57816135ac565b81546001600160a01b031981166001600160a01b039290921691821783556020840135613a8381613597565b6001600160e01b03199190911690911760a09190911b67ffffffffffffffff60a01b1617905550565b600060808284031215613abe57600080fd5b604051608081018181106001600160401b0382111715613ae057613ae06138d8565b6040528235613aee81613a20565b81526020830135613afe81613597565b60208201526040830135613b1181613597565b60408201526060830135613b2481613597565b60608201529392505050565b634e487b7160e01b600052601260045260246000fd5b60006001600160401b0380841680613b6057613b60613b30565b92169190910492915050565b60006001600160401b0380831681851681830481118215151615613b9257613b92613897565b02949350505050565b60008160070b8360070b6000821282677fffffffffffffff03821381151615613bc657613bc6613897565b82677fffffffffffffff19038212811615613be357613be3613897565b50019392505050565b60006001600160401b0383811690831681811015613c0c57613c0c613897565b039392505050565b60005b83811015613c2f578181015183820152602001613c17565b8381111561265f5750506000910152565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b815260008351613c72816017850160208801613c14565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351613ca3816028840160208801613c14565b01602801949350505050565b6020815260008251806020840152613cce816040850160208701613c14565b601f01601f19169190910160400192915050565b60006001600160401b0380841680613cfc57613cfc613b30565b92169190910692915050565b60008219821115613d1b57613d1b613897565b500190565b600082821015613d3257613d32613897565b500390565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b8135613d8d81613a20565b81546001600160401b038281166001600160401b031983161784556020850135613db681613597565b67ffffffffffffffff60401b604091821b16919093166001600160801b031983168117821785559285013590613deb82613597565b6001600160c01b03199283168417811760809290921b67ffffffffffffffff60801b169182178555606086013592613e2284613597565b93171760c09190911b90911617905550565b60008160070b8360070b6000811281677fffffffffffffff1901831281151615613e6057613e60613897565b81677fffffffffffffff018313811615613e7c57613e7c613897565b5090039392505050565b6000816000190483118215151615613ea057613ea0613897565b500290565b600081613eb457613eb4613897565b506000190190565b600060208284031215613ece57600080fd5b81518015158114610a3357600080fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b60008251613f1c818460208701613c14565b919091019291505056fe19e6f23df7275b48d1c33822c6ad041a743378552246ac819f578ae1d6709cf96d8dad7188c7ed005c55bf77fbf589583d8668b0dad30a9b9dd016321a5c256fc1b97c934675624ef2089089ac12ae8922988c11dc8a578dfbac10d9eecf47611d693f62a755e2b3c6494da41af454605b9006057cb3c79b6adda1378f2a50a7b07567e7223e21f7dce4c0a89131ce9c32d0d3484085f3f331dea8caef56d141a26469706673582212209f51e02124f32723d3a2f129637bcced41953624c5f087712d8517a7f9b2ab7764736f6c63430008090033",
1586
+ "linkReferences": {},
1587
+ "deployedLinkReferences": {}
1588
+ }