@arbitrum/nitro-contracts 1.0.3-beta.0 → 1.0.3-beta.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (237) hide show
  1. package/build/contracts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json +4 -0
  2. package/build/contracts/@openzeppelin/contracts/access/Ownable.sol/Ownable.json +63 -0
  3. package/build/contracts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.dbg.json +4 -0
  4. package/build/contracts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.json +24 -0
  5. package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.dbg.json +4 -0
  6. package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.json +80 -0
  7. package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.dbg.json +4 -0
  8. package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.json +56 -0
  9. package/build/contracts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.dbg.json +4 -0
  10. package/build/contracts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.json +19 -0
  11. package/build/contracts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.dbg.json +4 -0
  12. package/build/contracts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.json +24 -0
  13. package/build/contracts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.dbg.json +4 -0
  14. package/build/contracts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.json +113 -0
  15. package/build/contracts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.dbg.json +4 -0
  16. package/build/contracts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.json +160 -0
  17. package/build/contracts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.dbg.json +4 -0
  18. package/build/contracts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +155 -0
  19. package/build/contracts/@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol/UUPSUpgradeable.dbg.json +4 -0
  20. package/build/contracts/@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol/UUPSUpgradeable.json +100 -0
  21. package/build/contracts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json +4 -0
  22. package/build/contracts/@openzeppelin/contracts/utils/Address.sol/Address.json +10 -0
  23. package/build/contracts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +4 -0
  24. package/build/contracts/@openzeppelin/contracts/utils/Context.sol/Context.json +10 -0
  25. package/build/contracts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json +4 -0
  26. package/build/contracts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.json +10 -0
  27. package/build/contracts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.dbg.json +4 -0
  28. package/build/contracts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.json +63 -0
  29. package/build/contracts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.dbg.json +4 -0
  30. package/build/contracts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.json +10 -0
  31. package/build/contracts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol/PausableUpgradeable.dbg.json +4 -0
  32. package/build/contracts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol/PausableUpgradeable.json +50 -0
  33. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.dbg.json +4 -0
  34. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.json +194 -0
  35. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.dbg.json +4 -0
  36. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.json +10 -0
  37. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.dbg.json +4 -0
  38. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.json +10 -0
  39. package/build/contracts/src/bridge/Bridge.sol/Bridge.dbg.json +4 -0
  40. package/build/contracts/src/bridge/Bridge.sol/Bridge.json +650 -0
  41. package/build/contracts/src/bridge/IBridge.sol/IBridge.dbg.json +4 -0
  42. package/build/contracts/src/bridge/IBridge.sol/IBridge.json +538 -0
  43. package/build/contracts/src/bridge/IDelayedMessageProvider.sol/IDelayedMessageProvider.dbg.json +4 -0
  44. package/build/contracts/src/bridge/IDelayedMessageProvider.sol/IDelayedMessageProvider.json +43 -0
  45. package/build/contracts/src/bridge/IInbox.sol/IInbox.dbg.json +4 -0
  46. package/build/contracts/src/bridge/IInbox.sol/IInbox.json +575 -0
  47. package/build/contracts/src/bridge/IOutbox.sol/IOutbox.dbg.json +4 -0
  48. package/build/contracts/src/bridge/IOutbox.sol/IOutbox.json +419 -0
  49. package/build/contracts/src/bridge/IOwnable.sol/IOwnable.dbg.json +4 -0
  50. package/build/contracts/src/bridge/IOwnable.sol/IOwnable.json +24 -0
  51. package/build/contracts/src/bridge/ISequencerInbox.sol/ISequencerInbox.dbg.json +4 -0
  52. package/build/contracts/src/bridge/ISequencerInbox.sol/ISequencerInbox.json +651 -0
  53. package/build/contracts/src/bridge/Inbox.sol/Inbox.dbg.json +4 -0
  54. package/build/contracts/src/bridge/Inbox.sol/Inbox.json +1008 -0
  55. package/build/contracts/src/bridge/Messages.sol/Messages.dbg.json +4 -0
  56. package/build/contracts/src/bridge/Messages.sol/Messages.json +10 -0
  57. package/build/contracts/src/bridge/Outbox.sol/Outbox.dbg.json +4 -0
  58. package/build/contracts/src/bridge/Outbox.sol/Outbox.json +546 -0
  59. package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.dbg.json +4 -0
  60. package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.json +814 -0
  61. package/build/contracts/src/challenge/ChallengeLib.sol/ChallengeLib.dbg.json +4 -0
  62. package/build/contracts/src/challenge/ChallengeLib.sol/ChallengeLib.json +10 -0
  63. package/build/contracts/src/challenge/ChallengeManager.sol/ChallengeManager.dbg.json +4 -0
  64. package/build/contracts/src/challenge/ChallengeManager.sol/ChallengeManager.json +669 -0
  65. package/build/contracts/src/challenge/IChallengeManager.sol/IChallengeManager.dbg.json +4 -0
  66. package/build/contracts/src/challenge/IChallengeManager.sol/IChallengeManager.json +386 -0
  67. package/build/contracts/src/challenge/IChallengeResultReceiver.sol/IChallengeResultReceiver.dbg.json +4 -0
  68. package/build/contracts/src/challenge/IChallengeResultReceiver.sol/IChallengeResultReceiver.json +34 -0
  69. package/build/contracts/src/libraries/AddressAliasHelper.sol/AddressAliasHelper.dbg.json +4 -0
  70. package/build/contracts/src/libraries/AddressAliasHelper.sol/AddressAliasHelper.json +10 -0
  71. package/build/contracts/src/libraries/AdminFallbackProxy.sol/AdminFallbackProxy.dbg.json +4 -0
  72. package/build/contracts/src/libraries/AdminFallbackProxy.sol/AdminFallbackProxy.json +77 -0
  73. package/build/contracts/src/libraries/AdminFallbackProxy.sol/DoubleLogicERC1967Upgrade.dbg.json +4 -0
  74. package/build/contracts/src/libraries/AdminFallbackProxy.sol/DoubleLogicERC1967Upgrade.json +69 -0
  75. package/build/contracts/src/libraries/CryptographyPrimitives.sol/CryptographyPrimitives.dbg.json +4 -0
  76. package/build/contracts/src/libraries/CryptographyPrimitives.sol/CryptographyPrimitives.json +10 -0
  77. package/build/contracts/src/libraries/DelegateCallAware.sol/DelegateCallAware.dbg.json +4 -0
  78. package/build/contracts/src/libraries/DelegateCallAware.sol/DelegateCallAware.json +10 -0
  79. package/build/contracts/src/libraries/DoubleLogicUUPSUpgradeable.sol/DoubleLogicUUPSUpgradeable.dbg.json +4 -0
  80. package/build/contracts/src/libraries/DoubleLogicUUPSUpgradeable.sol/DoubleLogicUUPSUpgradeable.json +144 -0
  81. package/build/contracts/src/libraries/IGasRefunder.sol/GasRefundEnabled.dbg.json +4 -0
  82. package/build/contracts/src/libraries/IGasRefunder.sol/GasRefundEnabled.json +10 -0
  83. package/build/contracts/src/libraries/IGasRefunder.sol/IGasRefunder.dbg.json +4 -0
  84. package/build/contracts/src/libraries/IGasRefunder.sol/IGasRefunder.json +40 -0
  85. package/build/contracts/src/libraries/MerkleLib.sol/MerkleLib.dbg.json +4 -0
  86. package/build/contracts/src/libraries/MerkleLib.sol/MerkleLib.json +10 -0
  87. package/build/contracts/src/libraries/UUPSNotUpgradeable.sol/UUPSNotUpgradeable.dbg.json +4 -0
  88. package/build/contracts/src/libraries/UUPSNotUpgradeable.sol/UUPSNotUpgradeable.json +82 -0
  89. package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.dbg.json +4 -0
  90. package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.json +561 -0
  91. package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.dbg.json +4 -0
  92. package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.json +655 -0
  93. package/build/contracts/src/mocks/InboxStub.sol/InboxStub.dbg.json +4 -0
  94. package/build/contracts/src/mocks/InboxStub.sol/InboxStub.json +588 -0
  95. package/build/contracts/src/mocks/MockResultReceiver.sol/MockResultReceiver.dbg.json +4 -0
  96. package/build/contracts/src/mocks/MockResultReceiver.sol/MockResultReceiver.json +188 -0
  97. package/build/contracts/src/mocks/ProxyAdminForBinding.sol/ProxyAdminForBinding.dbg.json +4 -0
  98. package/build/contracts/src/mocks/ProxyAdminForBinding.sol/ProxyAdminForBinding.json +160 -0
  99. package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.dbg.json +4 -0
  100. package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.json +870 -0
  101. package/build/contracts/src/mocks/Simple.sol/Simple.dbg.json +4 -0
  102. package/build/contracts/src/mocks/Simple.sol/Simple.json +242 -0
  103. package/build/contracts/src/mocks/SimpleProxy.sol/SimpleProxy.dbg.json +4 -0
  104. package/build/contracts/src/mocks/SimpleProxy.sol/SimpleProxy.json +30 -0
  105. package/build/contracts/src/mocks/SingleExecutionChallenge.sol/SingleExecutionChallenge.dbg.json +4 -0
  106. package/build/contracts/src/mocks/SingleExecutionChallenge.sol/SingleExecutionChallenge.json +720 -0
  107. package/build/contracts/src/mocks/TimedOutChallengeManager.sol/TimedOutChallengeManager.dbg.json +4 -0
  108. package/build/contracts/src/mocks/TimedOutChallengeManager.sol/TimedOutChallengeManager.json +669 -0
  109. package/build/contracts/src/node-interface/NodeInterface.sol/NodeInterface.dbg.json +4 -0
  110. package/build/contracts/src/node-interface/NodeInterface.sol/NodeInterface.json +286 -0
  111. package/build/contracts/src/node-interface/NodeInterfaceDebug.sol/NodeInterfaceDebug.dbg.json +4 -0
  112. package/build/contracts/src/node-interface/NodeInterfaceDebug.sol/NodeInterfaceDebug.json +67 -0
  113. package/build/contracts/src/osp/HashProofHelper.sol/HashProofHelper.dbg.json +4 -0
  114. package/build/contracts/src/osp/HashProofHelper.sol/HashProofHelper.json +165 -0
  115. package/build/contracts/src/osp/IOneStepProofEntry.sol/IOneStepProofEntry.dbg.json +4 -0
  116. package/build/contracts/src/osp/IOneStepProofEntry.sol/IOneStepProofEntry.json +57 -0
  117. package/build/contracts/src/osp/IOneStepProofEntry.sol/OneStepProofEntryLib.dbg.json +4 -0
  118. package/build/contracts/src/osp/IOneStepProofEntry.sol/OneStepProofEntryLib.json +10 -0
  119. package/build/contracts/src/osp/IOneStepProver.sol/IOneStepProver.dbg.json +4 -0
  120. package/build/contracts/src/osp/IOneStepProver.sol/IOneStepProver.json +477 -0
  121. package/build/contracts/src/osp/OneStepProofEntry.sol/OneStepProofEntry.dbg.json +4 -0
  122. package/build/contracts/src/osp/OneStepProofEntry.sol/OneStepProofEntry.json +135 -0
  123. package/build/contracts/src/osp/OneStepProver0.sol/OneStepProver0.dbg.json +4 -0
  124. package/build/contracts/src/osp/OneStepProver0.sol/OneStepProver0.json +477 -0
  125. package/build/contracts/src/osp/OneStepProverHostIo.sol/OneStepProverHostIo.dbg.json +4 -0
  126. package/build/contracts/src/osp/OneStepProverHostIo.sol/OneStepProverHostIo.json +477 -0
  127. package/build/contracts/src/osp/OneStepProverMath.sol/OneStepProverMath.dbg.json +4 -0
  128. package/build/contracts/src/osp/OneStepProverMath.sol/OneStepProverMath.json +477 -0
  129. package/build/contracts/src/osp/OneStepProverMemory.sol/OneStepProverMemory.dbg.json +4 -0
  130. package/build/contracts/src/osp/OneStepProverMemory.sol/OneStepProverMemory.json +477 -0
  131. package/build/contracts/src/precompiles/ArbAddressTable.sol/ArbAddressTable.dbg.json +4 -0
  132. package/build/contracts/src/precompiles/ArbAddressTable.sol/ArbAddressTable.json +148 -0
  133. package/build/contracts/src/precompiles/ArbAggregator.sol/ArbAggregator.dbg.json +4 -0
  134. package/build/contracts/src/precompiles/ArbAggregator.sol/ArbAggregator.json +148 -0
  135. package/build/contracts/src/precompiles/ArbBLS.sol/ArbBLS.dbg.json +4 -0
  136. package/build/contracts/src/precompiles/ArbBLS.sol/ArbBLS.json +10 -0
  137. package/build/contracts/src/precompiles/ArbDebug.sol/ArbDebug.dbg.json +4 -0
  138. package/build/contracts/src/precompiles/ArbDebug.sol/ArbDebug.json +193 -0
  139. package/build/contracts/src/precompiles/ArbFunctionTable.sol/ArbFunctionTable.dbg.json +4 -0
  140. package/build/contracts/src/precompiles/ArbFunctionTable.sol/ArbFunctionTable.json +77 -0
  141. package/build/contracts/src/precompiles/ArbGasInfo.sol/ArbGasInfo.dbg.json +4 -0
  142. package/build/contracts/src/precompiles/ArbGasInfo.sol/ArbGasInfo.json +324 -0
  143. package/build/contracts/src/precompiles/ArbInfo.sol/ArbInfo.dbg.json +4 -0
  144. package/build/contracts/src/precompiles/ArbInfo.sol/ArbInfo.json +49 -0
  145. package/build/contracts/src/precompiles/ArbOwner.sol/ArbOwner.dbg.json +4 -0
  146. package/build/contracts/src/precompiles/ArbOwner.sol/ArbOwner.json +378 -0
  147. package/build/contracts/src/precompiles/ArbOwnerPublic.sol/ArbOwnerPublic.dbg.json +4 -0
  148. package/build/contracts/src/precompiles/ArbOwnerPublic.sol/ArbOwnerPublic.json +69 -0
  149. package/build/contracts/src/precompiles/ArbRetryableTx.sol/ArbRetryableTx.dbg.json +4 -0
  150. package/build/contracts/src/precompiles/ArbRetryableTx.sol/ArbRetryableTx.json +306 -0
  151. package/build/contracts/src/precompiles/ArbStatistics.sol/ArbStatistics.dbg.json +4 -0
  152. package/build/contracts/src/precompiles/ArbStatistics.sol/ArbStatistics.json +49 -0
  153. package/build/contracts/src/precompiles/ArbSys.sol/ArbSys.dbg.json +4 -0
  154. package/build/contracts/src/precompiles/ArbSys.sol/ArbSys.json +380 -0
  155. package/build/contracts/src/precompiles/ArbosActs.sol/ArbosActs.dbg.json +4 -0
  156. package/build/contracts/src/precompiles/ArbosActs.sol/ArbosActs.json +77 -0
  157. package/build/contracts/src/precompiles/ArbosTest.sol/ArbosTest.dbg.json +4 -0
  158. package/build/contracts/src/precompiles/ArbosTest.sol/ArbosTest.json +24 -0
  159. package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.dbg.json +4 -0
  160. package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.json +243 -0
  161. package/build/contracts/src/rollup/IRollupAdmin.sol/IRollupAdmin.dbg.json +4 -0
  162. package/build/contracts/src/rollup/IRollupAdmin.sol/IRollupAdmin.json +544 -0
  163. package/build/contracts/src/rollup/IRollupCore.sol/IRollupCore.dbg.json +4 -0
  164. package/build/contracts/src/rollup/IRollupCore.sol/IRollupCore.json +889 -0
  165. package/build/contracts/src/rollup/IRollupEventInbox.sol/IRollupEventInbox.dbg.json +4 -0
  166. package/build/contracts/src/rollup/IRollupEventInbox.sol/IRollupEventInbox.json +68 -0
  167. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUser.dbg.json +4 -0
  168. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUser.json +1428 -0
  169. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserAbs.dbg.json +4 -0
  170. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserAbs.json +1309 -0
  171. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserERC20.dbg.json +4 -0
  172. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserERC20.json +1443 -0
  173. package/build/contracts/src/rollup/Node.sol/NodeLib.dbg.json +4 -0
  174. package/build/contracts/src/rollup/Node.sol/NodeLib.json +10 -0
  175. package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.dbg.json +4 -0
  176. package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.json +1808 -0
  177. package/build/contracts/src/rollup/RollupCore.sol/RollupCore.dbg.json +4 -0
  178. package/build/contracts/src/rollup/RollupCore.sol/RollupCore.json +1051 -0
  179. package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.dbg.json +4 -0
  180. package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.json +343 -0
  181. package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.dbg.json +4 -0
  182. package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.json +110 -0
  183. package/build/contracts/src/rollup/RollupLib.sol/RollupLib.dbg.json +4 -0
  184. package/build/contracts/src/rollup/RollupLib.sol/RollupLib.json +10 -0
  185. package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.dbg.json +4 -0
  186. package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.json +226 -0
  187. package/build/contracts/src/rollup/RollupUserLogic.sol/AbsRollupUserLogic.dbg.json +4 -0
  188. package/build/contracts/src/rollup/RollupUserLogic.sol/AbsRollupUserLogic.json +1578 -0
  189. package/build/contracts/src/rollup/RollupUserLogic.sol/ERC20RollupUserLogic.dbg.json +4 -0
  190. package/build/contracts/src/rollup/RollupUserLogic.sol/ERC20RollupUserLogic.json +1712 -0
  191. package/build/contracts/src/rollup/RollupUserLogic.sol/RollupUserLogic.dbg.json +4 -0
  192. package/build/contracts/src/rollup/RollupUserLogic.sol/RollupUserLogic.json +1697 -0
  193. package/build/contracts/src/rollup/ValidatorUtils.sol/ValidatorUtils.dbg.json +4 -0
  194. package/build/contracts/src/rollup/ValidatorUtils.sol/ValidatorUtils.json +379 -0
  195. package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.dbg.json +4 -0
  196. package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.json +435 -0
  197. package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.dbg.json +4 -0
  198. package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.json +150 -0
  199. package/build/contracts/src/state/Deserialize.sol/Deserialize.dbg.json +4 -0
  200. package/build/contracts/src/state/Deserialize.sol/Deserialize.json +10 -0
  201. package/build/contracts/src/state/GlobalState.sol/GlobalStateLib.dbg.json +4 -0
  202. package/build/contracts/src/state/GlobalState.sol/GlobalStateLib.json +10 -0
  203. package/build/contracts/src/state/Instructions.sol/Instructions.dbg.json +4 -0
  204. package/build/contracts/src/state/Instructions.sol/Instructions.json +10 -0
  205. package/build/contracts/src/state/Machine.sol/MachineLib.dbg.json +4 -0
  206. package/build/contracts/src/state/Machine.sol/MachineLib.json +10 -0
  207. package/build/contracts/src/state/MerkleProof.sol/MerkleProofLib.dbg.json +4 -0
  208. package/build/contracts/src/state/MerkleProof.sol/MerkleProofLib.json +10 -0
  209. package/build/contracts/src/state/Module.sol/ModuleLib.dbg.json +4 -0
  210. package/build/contracts/src/state/Module.sol/ModuleLib.json +10 -0
  211. package/build/contracts/src/state/ModuleMemory.sol/ModuleMemoryLib.dbg.json +4 -0
  212. package/build/contracts/src/state/ModuleMemory.sol/ModuleMemoryLib.json +10 -0
  213. package/build/contracts/src/state/ModuleMemoryCompact.sol/ModuleMemoryCompactLib.dbg.json +4 -0
  214. package/build/contracts/src/state/ModuleMemoryCompact.sol/ModuleMemoryCompactLib.json +10 -0
  215. package/build/contracts/src/state/PcArray.sol/PcArrayLib.dbg.json +4 -0
  216. package/build/contracts/src/state/PcArray.sol/PcArrayLib.json +10 -0
  217. package/build/contracts/src/state/StackFrame.sol/StackFrameLib.dbg.json +4 -0
  218. package/build/contracts/src/state/StackFrame.sol/StackFrameLib.json +10 -0
  219. package/build/contracts/src/state/Value.sol/ValueLib.dbg.json +4 -0
  220. package/build/contracts/src/state/Value.sol/ValueLib.json +10 -0
  221. package/build/contracts/src/state/ValueArray.sol/ValueArrayLib.dbg.json +4 -0
  222. package/build/contracts/src/state/ValueArray.sol/ValueArrayLib.json +10 -0
  223. package/build/contracts/src/state/ValueStack.sol/ValueStackLib.dbg.json +4 -0
  224. package/build/contracts/src/state/ValueStack.sol/ValueStackLib.json +10 -0
  225. package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.dbg.json +4 -0
  226. package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.json +603 -0
  227. package/build/contracts/src/test-helpers/CryptographyPrimitivesTester.sol/CryptographyPrimitivesTester.dbg.json +4 -0
  228. package/build/contracts/src/test-helpers/CryptographyPrimitivesTester.sol/CryptographyPrimitivesTester.json +54 -0
  229. package/build/contracts/src/test-helpers/MessageTester.sol/MessageTester.dbg.json +4 -0
  230. package/build/contracts/src/test-helpers/MessageTester.sol/MessageTester.json +84 -0
  231. package/build/contracts/src/test-helpers/OutboxWithoutOptTester.sol/OutboxWithoutOptTester.dbg.json +4 -0
  232. package/build/contracts/src/test-helpers/OutboxWithoutOptTester.sol/OutboxWithoutOptTester.json +520 -0
  233. package/build/contracts/src/test-helpers/RollupMock.sol/RollupMock.dbg.json +4 -0
  234. package/build/contracts/src/test-helpers/RollupMock.sol/RollupMock.json +49 -0
  235. package/build/contracts/src/test-helpers/ValueArrayTester.sol/ValueArrayTester.dbg.json +4 -0
  236. package/build/contracts/src/test-helpers/ValueArrayTester.sol/ValueArrayTester.json +18 -0
  237. package/package.json +5 -2
@@ -0,0 +1,720 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "SingleExecutionChallenge",
4
+ "sourceName": "src/mocks/SingleExecutionChallenge.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "contract IOneStepProofEntry",
10
+ "name": "osp_",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "contract IChallengeResultReceiver",
15
+ "name": "resultReceiver_",
16
+ "type": "address"
17
+ },
18
+ {
19
+ "internalType": "uint64",
20
+ "name": "maxInboxMessagesRead_",
21
+ "type": "uint64"
22
+ },
23
+ {
24
+ "internalType": "bytes32[2]",
25
+ "name": "startAndEndHashes",
26
+ "type": "bytes32[2]"
27
+ },
28
+ {
29
+ "internalType": "uint256",
30
+ "name": "numSteps_",
31
+ "type": "uint256"
32
+ },
33
+ {
34
+ "internalType": "address",
35
+ "name": "asserter_",
36
+ "type": "address"
37
+ },
38
+ {
39
+ "internalType": "address",
40
+ "name": "challenger_",
41
+ "type": "address"
42
+ },
43
+ {
44
+ "internalType": "uint256",
45
+ "name": "asserterTimeLeft_",
46
+ "type": "uint256"
47
+ },
48
+ {
49
+ "internalType": "uint256",
50
+ "name": "challengerTimeLeft_",
51
+ "type": "uint256"
52
+ }
53
+ ],
54
+ "stateMutability": "nonpayable",
55
+ "type": "constructor"
56
+ },
57
+ {
58
+ "anonymous": false,
59
+ "inputs": [
60
+ {
61
+ "indexed": true,
62
+ "internalType": "uint64",
63
+ "name": "challengeIndex",
64
+ "type": "uint64"
65
+ },
66
+ {
67
+ "indexed": true,
68
+ "internalType": "bytes32",
69
+ "name": "challengeRoot",
70
+ "type": "bytes32"
71
+ },
72
+ {
73
+ "indexed": false,
74
+ "internalType": "uint256",
75
+ "name": "challengedSegmentStart",
76
+ "type": "uint256"
77
+ },
78
+ {
79
+ "indexed": false,
80
+ "internalType": "uint256",
81
+ "name": "challengedSegmentLength",
82
+ "type": "uint256"
83
+ },
84
+ {
85
+ "indexed": false,
86
+ "internalType": "bytes32[]",
87
+ "name": "chainHashes",
88
+ "type": "bytes32[]"
89
+ }
90
+ ],
91
+ "name": "Bisected",
92
+ "type": "event"
93
+ },
94
+ {
95
+ "anonymous": false,
96
+ "inputs": [
97
+ {
98
+ "indexed": true,
99
+ "internalType": "uint64",
100
+ "name": "challengeIndex",
101
+ "type": "uint64"
102
+ },
103
+ {
104
+ "indexed": false,
105
+ "internalType": "enum IChallengeManager.ChallengeTerminationType",
106
+ "name": "kind",
107
+ "type": "uint8"
108
+ }
109
+ ],
110
+ "name": "ChallengeEnded",
111
+ "type": "event"
112
+ },
113
+ {
114
+ "anonymous": false,
115
+ "inputs": [
116
+ {
117
+ "indexed": true,
118
+ "internalType": "uint64",
119
+ "name": "challengeIndex",
120
+ "type": "uint64"
121
+ },
122
+ {
123
+ "indexed": false,
124
+ "internalType": "uint256",
125
+ "name": "blockSteps",
126
+ "type": "uint256"
127
+ }
128
+ ],
129
+ "name": "ExecutionChallengeBegun",
130
+ "type": "event"
131
+ },
132
+ {
133
+ "anonymous": false,
134
+ "inputs": [
135
+ {
136
+ "indexed": true,
137
+ "internalType": "uint64",
138
+ "name": "challengeIndex",
139
+ "type": "uint64"
140
+ },
141
+ {
142
+ "components": [
143
+ {
144
+ "internalType": "bytes32[2]",
145
+ "name": "bytes32Vals",
146
+ "type": "bytes32[2]"
147
+ },
148
+ {
149
+ "internalType": "uint64[2]",
150
+ "name": "u64Vals",
151
+ "type": "uint64[2]"
152
+ }
153
+ ],
154
+ "indexed": false,
155
+ "internalType": "struct GlobalState",
156
+ "name": "startState",
157
+ "type": "tuple"
158
+ },
159
+ {
160
+ "components": [
161
+ {
162
+ "internalType": "bytes32[2]",
163
+ "name": "bytes32Vals",
164
+ "type": "bytes32[2]"
165
+ },
166
+ {
167
+ "internalType": "uint64[2]",
168
+ "name": "u64Vals",
169
+ "type": "uint64[2]"
170
+ }
171
+ ],
172
+ "indexed": false,
173
+ "internalType": "struct GlobalState",
174
+ "name": "endState",
175
+ "type": "tuple"
176
+ }
177
+ ],
178
+ "name": "InitiatedChallenge",
179
+ "type": "event"
180
+ },
181
+ {
182
+ "anonymous": false,
183
+ "inputs": [
184
+ {
185
+ "indexed": true,
186
+ "internalType": "uint64",
187
+ "name": "challengeIndex",
188
+ "type": "uint64"
189
+ }
190
+ ],
191
+ "name": "OneStepProofCompleted",
192
+ "type": "event"
193
+ },
194
+ {
195
+ "inputs": [
196
+ {
197
+ "internalType": "uint64",
198
+ "name": "challengeIndex",
199
+ "type": "uint64"
200
+ },
201
+ {
202
+ "components": [
203
+ {
204
+ "internalType": "uint256",
205
+ "name": "oldSegmentsStart",
206
+ "type": "uint256"
207
+ },
208
+ {
209
+ "internalType": "uint256",
210
+ "name": "oldSegmentsLength",
211
+ "type": "uint256"
212
+ },
213
+ {
214
+ "internalType": "bytes32[]",
215
+ "name": "oldSegments",
216
+ "type": "bytes32[]"
217
+ },
218
+ {
219
+ "internalType": "uint256",
220
+ "name": "challengePosition",
221
+ "type": "uint256"
222
+ }
223
+ ],
224
+ "internalType": "struct ChallengeLib.SegmentSelection",
225
+ "name": "selection",
226
+ "type": "tuple"
227
+ },
228
+ {
229
+ "internalType": "bytes32[]",
230
+ "name": "newSegments",
231
+ "type": "bytes32[]"
232
+ }
233
+ ],
234
+ "name": "bisectExecution",
235
+ "outputs": [],
236
+ "stateMutability": "nonpayable",
237
+ "type": "function"
238
+ },
239
+ {
240
+ "inputs": [],
241
+ "name": "bridge",
242
+ "outputs": [
243
+ {
244
+ "internalType": "contract IBridge",
245
+ "name": "",
246
+ "type": "address"
247
+ }
248
+ ],
249
+ "stateMutability": "view",
250
+ "type": "function"
251
+ },
252
+ {
253
+ "inputs": [
254
+ {
255
+ "internalType": "uint64",
256
+ "name": "challengeIndex",
257
+ "type": "uint64"
258
+ },
259
+ {
260
+ "components": [
261
+ {
262
+ "internalType": "uint256",
263
+ "name": "oldSegmentsStart",
264
+ "type": "uint256"
265
+ },
266
+ {
267
+ "internalType": "uint256",
268
+ "name": "oldSegmentsLength",
269
+ "type": "uint256"
270
+ },
271
+ {
272
+ "internalType": "bytes32[]",
273
+ "name": "oldSegments",
274
+ "type": "bytes32[]"
275
+ },
276
+ {
277
+ "internalType": "uint256",
278
+ "name": "challengePosition",
279
+ "type": "uint256"
280
+ }
281
+ ],
282
+ "internalType": "struct ChallengeLib.SegmentSelection",
283
+ "name": "selection",
284
+ "type": "tuple"
285
+ },
286
+ {
287
+ "internalType": "enum MachineStatus[2]",
288
+ "name": "machineStatuses",
289
+ "type": "uint8[2]"
290
+ },
291
+ {
292
+ "internalType": "bytes32[2]",
293
+ "name": "globalStateHashes",
294
+ "type": "bytes32[2]"
295
+ },
296
+ {
297
+ "internalType": "uint256",
298
+ "name": "numSteps",
299
+ "type": "uint256"
300
+ }
301
+ ],
302
+ "name": "challengeExecution",
303
+ "outputs": [],
304
+ "stateMutability": "nonpayable",
305
+ "type": "function"
306
+ },
307
+ {
308
+ "inputs": [
309
+ {
310
+ "internalType": "uint64",
311
+ "name": "challengeIndex",
312
+ "type": "uint64"
313
+ }
314
+ ],
315
+ "name": "challengeInfo",
316
+ "outputs": [
317
+ {
318
+ "components": [
319
+ {
320
+ "components": [
321
+ {
322
+ "internalType": "address",
323
+ "name": "addr",
324
+ "type": "address"
325
+ },
326
+ {
327
+ "internalType": "uint256",
328
+ "name": "timeLeft",
329
+ "type": "uint256"
330
+ }
331
+ ],
332
+ "internalType": "struct ChallengeLib.Participant",
333
+ "name": "current",
334
+ "type": "tuple"
335
+ },
336
+ {
337
+ "components": [
338
+ {
339
+ "internalType": "address",
340
+ "name": "addr",
341
+ "type": "address"
342
+ },
343
+ {
344
+ "internalType": "uint256",
345
+ "name": "timeLeft",
346
+ "type": "uint256"
347
+ }
348
+ ],
349
+ "internalType": "struct ChallengeLib.Participant",
350
+ "name": "next",
351
+ "type": "tuple"
352
+ },
353
+ {
354
+ "internalType": "uint256",
355
+ "name": "lastMoveTimestamp",
356
+ "type": "uint256"
357
+ },
358
+ {
359
+ "internalType": "bytes32",
360
+ "name": "wasmModuleRoot",
361
+ "type": "bytes32"
362
+ },
363
+ {
364
+ "internalType": "bytes32",
365
+ "name": "challengeStateHash",
366
+ "type": "bytes32"
367
+ },
368
+ {
369
+ "internalType": "uint64",
370
+ "name": "maxInboxMessages",
371
+ "type": "uint64"
372
+ },
373
+ {
374
+ "internalType": "enum ChallengeLib.ChallengeMode",
375
+ "name": "mode",
376
+ "type": "uint8"
377
+ }
378
+ ],
379
+ "internalType": "struct ChallengeLib.Challenge",
380
+ "name": "",
381
+ "type": "tuple"
382
+ }
383
+ ],
384
+ "stateMutability": "view",
385
+ "type": "function"
386
+ },
387
+ {
388
+ "inputs": [
389
+ {
390
+ "internalType": "uint256",
391
+ "name": "",
392
+ "type": "uint256"
393
+ }
394
+ ],
395
+ "name": "challenges",
396
+ "outputs": [
397
+ {
398
+ "components": [
399
+ {
400
+ "internalType": "address",
401
+ "name": "addr",
402
+ "type": "address"
403
+ },
404
+ {
405
+ "internalType": "uint256",
406
+ "name": "timeLeft",
407
+ "type": "uint256"
408
+ }
409
+ ],
410
+ "internalType": "struct ChallengeLib.Participant",
411
+ "name": "current",
412
+ "type": "tuple"
413
+ },
414
+ {
415
+ "components": [
416
+ {
417
+ "internalType": "address",
418
+ "name": "addr",
419
+ "type": "address"
420
+ },
421
+ {
422
+ "internalType": "uint256",
423
+ "name": "timeLeft",
424
+ "type": "uint256"
425
+ }
426
+ ],
427
+ "internalType": "struct ChallengeLib.Participant",
428
+ "name": "next",
429
+ "type": "tuple"
430
+ },
431
+ {
432
+ "internalType": "uint256",
433
+ "name": "lastMoveTimestamp",
434
+ "type": "uint256"
435
+ },
436
+ {
437
+ "internalType": "bytes32",
438
+ "name": "wasmModuleRoot",
439
+ "type": "bytes32"
440
+ },
441
+ {
442
+ "internalType": "bytes32",
443
+ "name": "challengeStateHash",
444
+ "type": "bytes32"
445
+ },
446
+ {
447
+ "internalType": "uint64",
448
+ "name": "maxInboxMessages",
449
+ "type": "uint64"
450
+ },
451
+ {
452
+ "internalType": "enum ChallengeLib.ChallengeMode",
453
+ "name": "mode",
454
+ "type": "uint8"
455
+ }
456
+ ],
457
+ "stateMutability": "view",
458
+ "type": "function"
459
+ },
460
+ {
461
+ "inputs": [
462
+ {
463
+ "internalType": "uint64",
464
+ "name": "challengeIndex",
465
+ "type": "uint64"
466
+ }
467
+ ],
468
+ "name": "clearChallenge",
469
+ "outputs": [],
470
+ "stateMutability": "nonpayable",
471
+ "type": "function"
472
+ },
473
+ {
474
+ "inputs": [
475
+ {
476
+ "internalType": "bytes32",
477
+ "name": "wasmModuleRoot_",
478
+ "type": "bytes32"
479
+ },
480
+ {
481
+ "internalType": "enum MachineStatus[2]",
482
+ "name": "startAndEndMachineStatuses_",
483
+ "type": "uint8[2]"
484
+ },
485
+ {
486
+ "components": [
487
+ {
488
+ "internalType": "bytes32[2]",
489
+ "name": "bytes32Vals",
490
+ "type": "bytes32[2]"
491
+ },
492
+ {
493
+ "internalType": "uint64[2]",
494
+ "name": "u64Vals",
495
+ "type": "uint64[2]"
496
+ }
497
+ ],
498
+ "internalType": "struct GlobalState[2]",
499
+ "name": "startAndEndGlobalStates_",
500
+ "type": "tuple[2]"
501
+ },
502
+ {
503
+ "internalType": "uint64",
504
+ "name": "numBlocks",
505
+ "type": "uint64"
506
+ },
507
+ {
508
+ "internalType": "address",
509
+ "name": "asserter_",
510
+ "type": "address"
511
+ },
512
+ {
513
+ "internalType": "address",
514
+ "name": "challenger_",
515
+ "type": "address"
516
+ },
517
+ {
518
+ "internalType": "uint256",
519
+ "name": "asserterTimeLeft_",
520
+ "type": "uint256"
521
+ },
522
+ {
523
+ "internalType": "uint256",
524
+ "name": "challengerTimeLeft_",
525
+ "type": "uint256"
526
+ }
527
+ ],
528
+ "name": "createChallenge",
529
+ "outputs": [
530
+ {
531
+ "internalType": "uint64",
532
+ "name": "",
533
+ "type": "uint64"
534
+ }
535
+ ],
536
+ "stateMutability": "nonpayable",
537
+ "type": "function"
538
+ },
539
+ {
540
+ "inputs": [
541
+ {
542
+ "internalType": "uint64",
543
+ "name": "challengeIndex",
544
+ "type": "uint64"
545
+ }
546
+ ],
547
+ "name": "currentResponder",
548
+ "outputs": [
549
+ {
550
+ "internalType": "address",
551
+ "name": "",
552
+ "type": "address"
553
+ }
554
+ ],
555
+ "stateMutability": "view",
556
+ "type": "function"
557
+ },
558
+ {
559
+ "inputs": [
560
+ {
561
+ "internalType": "contract IChallengeResultReceiver",
562
+ "name": "resultReceiver_",
563
+ "type": "address"
564
+ },
565
+ {
566
+ "internalType": "contract ISequencerInbox",
567
+ "name": "sequencerInbox_",
568
+ "type": "address"
569
+ },
570
+ {
571
+ "internalType": "contract IBridge",
572
+ "name": "bridge_",
573
+ "type": "address"
574
+ },
575
+ {
576
+ "internalType": "contract IOneStepProofEntry",
577
+ "name": "osp_",
578
+ "type": "address"
579
+ }
580
+ ],
581
+ "name": "initialize",
582
+ "outputs": [],
583
+ "stateMutability": "nonpayable",
584
+ "type": "function"
585
+ },
586
+ {
587
+ "inputs": [
588
+ {
589
+ "internalType": "uint64",
590
+ "name": "challengeIndex",
591
+ "type": "uint64"
592
+ }
593
+ ],
594
+ "name": "isTimedOut",
595
+ "outputs": [
596
+ {
597
+ "internalType": "bool",
598
+ "name": "",
599
+ "type": "bool"
600
+ }
601
+ ],
602
+ "stateMutability": "view",
603
+ "type": "function"
604
+ },
605
+ {
606
+ "inputs": [
607
+ {
608
+ "internalType": "uint64",
609
+ "name": "challengeIndex",
610
+ "type": "uint64"
611
+ },
612
+ {
613
+ "components": [
614
+ {
615
+ "internalType": "uint256",
616
+ "name": "oldSegmentsStart",
617
+ "type": "uint256"
618
+ },
619
+ {
620
+ "internalType": "uint256",
621
+ "name": "oldSegmentsLength",
622
+ "type": "uint256"
623
+ },
624
+ {
625
+ "internalType": "bytes32[]",
626
+ "name": "oldSegments",
627
+ "type": "bytes32[]"
628
+ },
629
+ {
630
+ "internalType": "uint256",
631
+ "name": "challengePosition",
632
+ "type": "uint256"
633
+ }
634
+ ],
635
+ "internalType": "struct ChallengeLib.SegmentSelection",
636
+ "name": "selection",
637
+ "type": "tuple"
638
+ },
639
+ {
640
+ "internalType": "bytes",
641
+ "name": "proof",
642
+ "type": "bytes"
643
+ }
644
+ ],
645
+ "name": "oneStepProveExecution",
646
+ "outputs": [],
647
+ "stateMutability": "nonpayable",
648
+ "type": "function"
649
+ },
650
+ {
651
+ "inputs": [],
652
+ "name": "osp",
653
+ "outputs": [
654
+ {
655
+ "internalType": "contract IOneStepProofEntry",
656
+ "name": "",
657
+ "type": "address"
658
+ }
659
+ ],
660
+ "stateMutability": "view",
661
+ "type": "function"
662
+ },
663
+ {
664
+ "inputs": [],
665
+ "name": "resultReceiver",
666
+ "outputs": [
667
+ {
668
+ "internalType": "contract IChallengeResultReceiver",
669
+ "name": "",
670
+ "type": "address"
671
+ }
672
+ ],
673
+ "stateMutability": "view",
674
+ "type": "function"
675
+ },
676
+ {
677
+ "inputs": [],
678
+ "name": "sequencerInbox",
679
+ "outputs": [
680
+ {
681
+ "internalType": "contract ISequencerInbox",
682
+ "name": "",
683
+ "type": "address"
684
+ }
685
+ ],
686
+ "stateMutability": "view",
687
+ "type": "function"
688
+ },
689
+ {
690
+ "inputs": [
691
+ {
692
+ "internalType": "uint64",
693
+ "name": "challengeIndex",
694
+ "type": "uint64"
695
+ }
696
+ ],
697
+ "name": "timeout",
698
+ "outputs": [],
699
+ "stateMutability": "nonpayable",
700
+ "type": "function"
701
+ },
702
+ {
703
+ "inputs": [],
704
+ "name": "totalChallengesCreated",
705
+ "outputs": [
706
+ {
707
+ "internalType": "uint64",
708
+ "name": "",
709
+ "type": "uint64"
710
+ }
711
+ ],
712
+ "stateMutability": "view",
713
+ "type": "function"
714
+ }
715
+ ],
716
+ "bytecode": "0x60a0604052306080523480156200001557600080fd5b50604051620034f3380380620034f38339810160408190526200003891620002bc565b600580546001600160a01b03808c166001600160a01b03199283161790925560028054928b1692909116919091179055600080548190819062000084906001600160401b0316620003cd565b82546101009290920a6001600160401b03818102199093168284169182021790935560009283526001602090815260408085206007810180546001600160401b031916958f16959095179094558051600280825260608201835293965093949392918301908036833750508a518251929350918391506000906200010c576200010c62000403565b602090810291909101015288600160200201518160018151811062000135576200013562000403565b60200260200101818152505060006200015c60008a846200024360201b620019fb1760201c565b600684018190556040805180820182526001600160a01b038b811680835260209283018b90526002880180546001600160a01b03199081169092179055600388018b905583518085018552918c168083529190920189905286549091161785556001850187905542600486015560078501805460ff60401b1916680200000000000000001790555190915081906001600160401b038616907f86b34e9455464834eca718f62d4481437603bb929d8a78ccde5d1bc79fa06d689062000228906000908e90889062000419565b60405180910390a350505050505050505050505050620004b4565b60008383836040516020016200025c9392919062000470565b6040516020818303038152906040528051906020012090509392505050565b6001600160a01b03811681146200029157600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b8051620002b7816200027b565b919050565b60008060008060008060008060006101408a8c031215620002dc57600080fd5b8951620002e9816200027b565b809950506020808b0151620002fe816200027b565b60408c01519099506001600160401b0380821682146200031d57600080fd5b8199508d607f8e01126200033057600080fd5b604051915060408201828110828211171562000350576200035062000294565b604052508060a08d018e8111156200036757600080fd5b60608e015b818110156200038557805183529184019184016200036c565b50519198509096506200039e91505060c08b01620002aa565b9350620003ae60e08b01620002aa565b92506101008a015191506101208a015190509295985092959850929598565b60006001600160401b0382811680821415620003f957634e487b7160e01b600052601160045260246000fd5b6001019392505050565b634e487b7160e01b600052603260045260246000fd5b6000606082018583526020858185015260606040850152818551808452608086019150828701935060005b81811015620004625784518352938301939183019160010162000444565b509098975050505050505050565b83815260006020848184015260408301845182860160005b82811015620004a65781518452928401929084019060010162000488565b509198975050505050505050565b608051613023620004d0600039600061122501526130236000f3fe608060405234801561001057600080fd5b50600436106100e05760003560e01c80639ede42b9116100875780639ede42b914610251578063a521b03214610274578063d248d12414610287578063e78cea921461029a578063ee35f327146102ad578063f26a62c6146102c0578063f8c8765e146102d3578063fb7be0a1146102e657600080fd5b806314eab5e7146100e55780631b45c86a1461011557806323a9ef231461012a5780633504f1d71461015557806356e9df97146101685780635ef489e61461017b5780637fd07a9c1461018e5780638f1d3776146101ae575b600080fd5b6100f86100f33660046125f8565b6102f9565b6040516001600160401b0390911681526020015b60405180910390f35b61012861012336600461268b565b610601565b005b61013d61013836600461268b565b6106d1565b6040516001600160a01b03909116815260200161010c565b60025461013d906001600160a01b031681565b61012861017636600461268b565b6106f5565b6000546100f8906001600160401b031681565b6101a161019c36600461268b565b610863565b60405161010c91906126e8565b61023e6101bc36600461275a565b6001602081815260009283526040928390208351808501855281546001600160a01b0390811682529382015481840152845180860190955260028201549093168452600381015491840191909152600481015460058201546006830154600790930154939493919290916001600160401b03811690600160401b900460ff1687565b60405161010c9796959493929190612773565b61026461025f36600461268b565b61093c565b604051901515815260200161010c565b6101286102823660046127d0565b610963565b610128610295366004612874565b610dd9565b60045461013d906001600160a01b031681565b60035461013d906001600160a01b031681565b60055461013d906001600160a01b031681565b6101286102e1366004612906565b61121a565b6101286102f4366004612962565b61138b565b6002546000906001600160a01b0316331461034e5760405162461bcd60e51b815260206004820152601060248201526f13d3931657d493d313155417d0d2105360821b60448201526064015b60405180910390fd5b6040805160028082526060820183526000926020830190803683370190505090506103a461037f60208b018b612a06565b61039f8a60005b6080020180360381019061039a9190612ac5565b611a32565b611ab3565b816000815181106103b7576103b76129f0565b60209081029190910101526103e68960016020020160208101906103db9190612a06565b61039f8a6001610386565b816001815181106103f9576103f96129f0565b6020908102919091010152600080548190819061041e906001600160401b0316612b73565b91906101000a8154816001600160401b0302191690836001600160401b031602179055905060006001600160401b0316816001600160401b0316141561046657610466612b9a565b6001600160401b0381166000908152600160205260408120600581018d9055906104a061049b368d90038d0160808e01612ac5565b611bd7565b905060026104b460408e0160208f01612a06565b60038111156104c5576104c56126be565b14806104f3575060006104e86104e3368e90038e0160808f01612ac5565b611bec565b6001600160401b0316115b15610506578061050281612b73565b9150505b6007820180546040805180820182526001600160a01b038d811680835260209283018d90526002880180546001600160a01b03199081169092179055600388018d905583518085018552918e16808352919092018b90528654909116178555600185018990554260048601556001600160401b0384811668ffffffffffffffffff1990931692909217600160401b179092559051908416907f76604fe17af46c9b5f53ffe99ff23e0f655dab91886b07ac1fc0254319f7145a906105d0908e906080820190612bfa565b60405180910390a26105ee8360008c6001600160401b031687611bfb565b5090925050505b98975050505050505050565b60006001600160401b038216600090815260016020526040902060070154600160401b900460ff16600281111561063a5761063a6126be565b1415604051806040016040528060078152602001661393d7d0d2105360ca1b8152509061067a5760405162461bcd60e51b81526004016103459190612c16565b506106848161093c565b6106c35760405162461bcd60e51b815260206004820152601060248201526f54494d454f55545f444541444c494e4560801b6044820152606401610345565b6106ce816000611c91565b50565b6001600160401b03166000908152600160205260409020546001600160a01b031690565b6002546001600160a01b031633146107425760405162461bcd60e51b815260206004820152601060248201526f2727aa2fa922a9afa922a1a2a4ab22a960811b6044820152606401610345565b60006001600160401b038216600090815260016020526040902060070154600160401b900460ff16600281111561077b5761077b6126be565b1415604051806040016040528060078152602001661393d7d0d2105360ca1b815250906107bb5760405162461bcd60e51b81526004016103459190612c16565b506001600160401b038116600081815260016020819052604080832080546001600160a01b031990811682559281018490556002810180549093169092556003808301849055600483018490556005830184905560068301939093556007909101805468ffffffffffffffffff19169055517ffdaece6c274a4b56af16761f83fd6b1062823192630ea08e019fdf9b2d747f409161085891612c6b565b60405180910390a250565b61086b612553565b6001600160401b0382811660009081526001602081815260409283902083516101208101855281546001600160a01b0390811660e0830190815294830154610100830152938152845180860186526002808401549095168152600383015481850152928101929092526004810154938201939093526005830154606082015260068301546080820152600783015493841660a08201529260c0840191600160401b90910460ff1690811115610922576109226126be565b6002811115610933576109336126be565b90525092915050565b6001600160401b038116600090815260016020526040812061095d90611dbf565b92915050565b6001600160401b038416600090815260016020526040812085918591610988846106d1565b6001600160a01b0316336001600160a01b0316146109b85760405162461bcd60e51b815260040161034590612c85565b6109c18461093c565b156109de5760405162461bcd60e51b815260040161034590612caa565b60008260028111156109f2576109f26126be565b1415610a605760006007820154600160401b900460ff166002811115610a1a57610a1a6126be565b1415604051806040016040528060078152602001661393d7d0d2105360ca1b81525090610a5a5760405162461bcd60e51b81526004016103459190612c16565b50610b1f565b6001826002811115610a7457610a746126be565b1415610abe5760016007820154600160401b900460ff166002811115610a9c57610a9c6126be565b14610ab95760405162461bcd60e51b815260040161034590612cd1565b610b1f565b6002826002811115610ad257610ad26126be565b1415610b175760026007820154600160401b900460ff166002811115610afa57610afa6126be565b14610ab95760405162461bcd60e51b815260040161034590612cf9565b610b1f612b9a565b610b6d83356020850135610b366040870187612d25565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506119fb92505050565b816006015414610b8f5760405162461bcd60e51b815260040161034590612d75565b6002610b9e6040850185612d25565b90501080610bc957506001610bb66040850185612d25565b610bc1929150612d98565b836060013510155b15610be65760405162461bcd60e51b815260040161034590612daf565b600080610bf289611dd7565b9150915060018111610c325760405162461bcd60e51b81526020600482015260096024820152681513d3d7d4d213d49560ba1b6044820152606401610345565b806028811115610c40575060285b610c4b816001612dda565b8814610c885760405162461bcd60e51b815260206004820152600c60248201526b57524f4e475f44454752454560a01b6044820152606401610345565b50610cd28989896000818110610ca057610ca06129f0565b602002919091013590508a8a610cb7600182612d98565b818110610cc657610cc66129f0565b90506020020135611e68565b610d118a83838b8b80806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611bfb92505050565b50600090505b6007820154600160401b900460ff166002811115610d3757610d376126be565b1415610d435750610dd0565b6040805180820190915281546001600160a01b03168152600182015460208201526004820154610d739042612d98565b81602001818151610d849190612d98565b90525060028201805483546001600160a01b038083166001600160a01b031992831617865560038601805460018801558551929093169116179091556020909101519055426004909101555b50505050505050565b6001600160401b038416600090815260016020526040902084908490600290610e01846106d1565b6001600160a01b0316336001600160a01b031614610e315760405162461bcd60e51b815260040161034590612c85565b610e3a8461093c565b15610e575760405162461bcd60e51b815260040161034590612caa565b6000826002811115610e6b57610e6b6126be565b1415610ed95760006007820154600160401b900460ff166002811115610e9357610e936126be565b1415604051806040016040528060078152602001661393d7d0d2105360ca1b81525090610ed35760405162461bcd60e51b81526004016103459190612c16565b50610f98565b6001826002811115610eed57610eed6126be565b1415610f375760016007820154600160401b900460ff166002811115610f1557610f156126be565b14610f325760405162461bcd60e51b815260040161034590612cd1565b610f98565b6002826002811115610f4b57610f4b6126be565b1415610f905760026007820154600160401b900460ff166002811115610f7357610f736126be565b14610f325760405162461bcd60e51b815260040161034590612cf9565b610f98612b9a565b610faf83356020850135610b366040870187612d25565b816006015414610fd15760405162461bcd60e51b815260040161034590612d75565b6002610fe06040850185612d25565b9050108061100b57506001610ff86040850185612d25565b611003929150612d98565b836060013510155b156110285760405162461bcd60e51b815260040161034590612daf565b6001600160401b0388166000908152600160205260408120908061104b8a611dd7565b9092509050600181146110705760405162461bcd60e51b815260040161034590612df2565b5060055460408051808201825260078501546001600160401b031681526004546001600160a01b0390811660208301526000931691635d3adcfb919085906110ba908f018f612d25565b8f606001358181106110ce576110ce6129f0565b905060200201358d8d6040518663ffffffff1660e01b81526004016110f7959493929190612e14565b60206040518083038186803b15801561110f57600080fd5b505afa158015611123573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111479190612e6b565b905061115660408b018b612d25565b61116560608d01356001612dda565b818110611174576111746129f0565b905060200201358114156111b95760405162461bcd60e51b815260206004820152600c60248201526b14d0535157d3d4d417d1539160a21b6044820152606401610345565b6040516001600160401b038c16907fc2cc42e04ff8c36de71c6a2937ea9f161dd0dd9e175f00caa26e5200643c781e90600090a261120e8b6001600160401b0316600090815260016020526040812060060155565b5060009150610d179050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156112a85760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b6064820152608401610345565b6002546001600160a01b0316156112f05760405162461bcd60e51b815260206004820152600c60248201526b1053149150511657d253925560a21b6044820152606401610345565b6001600160a01b03841661133b5760405162461bcd60e51b81526020600482015260126024820152712727afa922a9aaa62a2fa922a1a2a4ab22a960711b6044820152606401610345565b600280546001600160a01b039586166001600160a01b0319918216179091556003805494861694821694909417909355600480549285169284169290921790915560058054919093169116179055565b6001600160401b0385166000908152600160208190526040909120869186916113b3846106d1565b6001600160a01b0316336001600160a01b0316146113e35760405162461bcd60e51b815260040161034590612c85565b6113ec8461093c565b156114095760405162461bcd60e51b815260040161034590612caa565b600082600281111561141d5761141d6126be565b141561148b5760006007820154600160401b900460ff166002811115611445576114456126be565b1415604051806040016040528060078152602001661393d7d0d2105360ca1b815250906114855760405162461bcd60e51b81526004016103459190612c16565b5061154a565b600182600281111561149f5761149f6126be565b14156114e95760016007820154600160401b900460ff1660028111156114c7576114c76126be565b146114e45760405162461bcd60e51b815260040161034590612cd1565b61154a565b60028260028111156114fd576114fd6126be565b14156115425760026007820154600160401b900460ff166002811115611525576115256126be565b146114e45760405162461bcd60e51b815260040161034590612cf9565b61154a612b9a565b61156183356020850135610b366040870187612d25565b8160060154146115835760405162461bcd60e51b815260040161034590612d75565b60026115926040850185612d25565b905010806115bd575060016115aa6040850185612d25565b6115b5929150612d98565b836060013510155b156115da5760405162461bcd60e51b815260040161034590612daf565b60018510156116215760405162461bcd60e51b815260206004820152601360248201527210d2105313115391d157d513d3d7d4d213d495606a1b6044820152606401610345565b6508000000000085111561166c5760405162461bcd60e51b81526020600482015260126024820152714348414c4c454e47455f544f4f5f4c4f4e4760701b6044820152606401610345565b6116ae8861168e61168060208b018b612a06565b8960005b6020020135611ab3565b6116a96116a160408c0160208d01612a06565b8a6001611684565b611e68565b6001600160401b038916600090815260016020526040812090806116d18b611dd7565b91509150806001146116f55760405162461bcd60e51b815260040161034590612df2565b600161170460208c018c612a06565b6003811115611715576117156126be565b146117cf5761172a60408b0160208c01612a06565b600381111561173b5761173b6126be565b61174860208c018c612a06565b6003811115611759576117596126be565b14801561176a5750883560208a0135145b6117a65760405162461bcd60e51b815260206004820152600d60248201526c48414c5445445f4348414e474560981b6044820152606401610345565b6117c78c6001600160401b0316600090815260016020526040812060060155565b505050611936565b60026117e160408c0160208d01612a06565b60038111156117f2576117f26126be565b141561183b57883560208a01351461183b5760405162461bcd60e51b815260206004820152600c60248201526b4552524f525f4348414e474560a01b6044820152606401610345565b604080516002808252606082018352600092602083019080368337505050600585015490915061186d908b3590611f3d565b81600081518110611880576118806129f0565b60209081029190910101526118ae8b60016020020160208101906118a49190612a06565b60208c01356120c9565b816001815181106118c1576118c16129f0565b602090810291909101015260078401805460ff60401b1916600160411b1790556118ee8d60008b84611bfb565b8c6001600160401b03167f24e032e170243bbea97e140174b22dc7e54fb85925afbf52c70e001cd6af16db8460405161192991815260200190565b60405180910390a2505050505b60006007820154600160401b900460ff166002811115611958576119586126be565b141561196457506119f1565b6040805180820190915281546001600160a01b031681526001820154602082015260048201546119949042612d98565b816020018181516119a59190612d98565b90525060028201805483546001600160a01b038083166001600160a01b031992831617865560038601805460018801558551929093169116179091556020909101519055426004909101555b5050505050505050565b6000838383604051602001611a1293929190612e84565b6040516020818303038152906040528051906020012090505b9392505050565b80518051602091820151828401518051908401516040516c23b637b130b61039ba30ba329d60991b95810195909552602d850193909352604d8401919091526001600160c01b031960c091821b8116606d85015291901b166075820152600090607d015b604051602081830303815290604052805190602001209050919050565b60006001836003811115611ac957611ac96126be565b1415611b0f576040516b213637b1b59039ba30ba329d60a11b6020820152602c8101839052604c015b60405160208183030381529060405280519060200120905061095d565b6002836003811115611b2357611b236126be565b1415611b595760405174213637b1b59039ba30ba32961032b93937b932b21d60591b602082015260358101839052605501611af2565b6003836003811115611b6d57611b6d6126be565b1415611b9c5760405174213637b1b59039ba30ba3296103a37b7903330b91d60591b6020820152603501611af2565b60405162461bcd60e51b815260206004820152601060248201526f4241445f424c4f434b5f53544154555360801b6044820152606401610345565b6020810151600090815b602002015192915050565b60208101516000906001611be1565b6001821015611c0c57611c0c612b9a565b600281511015611c1e57611c1e612b9a565b6000611c2b8484846119fb565b6001600160401b038616600081815260016020526040908190206006018390555191925082917f86b34e9455464834eca718f62d4481437603bb929d8a78ccde5d1bc79fa06d6890611c8290889088908890612ec6565b60405180910390a35050505050565b6001600160401b03821660008181526001602081905260408083206002808201805483546001600160a01b0319808216865596850188905595811690915560038301869055600480840187905560058401879055600684019690965560078301805468ffffffffffffffffff1916905590549251630357aa4960e01b8152948501959095526001600160a01b03948516602485018190529285166044850181905290949293909290911690630357aa4990606401600060405180830381600087803b158015611d5f57600080fd5b505af1158015611d73573d6000803e3d6000fd5b50505050846001600160401b03167ffdaece6c274a4b56af16761f83fd6b1062823192630ea08e019fdf9b2d747f4085604051611db09190612c6b565b60405180910390a25050505050565b6001810154600090611dd083612172565b1192915050565b600080806001611dea6040860186612d25565b611df5929150612d98565b9050611e05816020860135612f31565b9150611e15606085013583612f45565b611e20908535612dda565b92506002611e316040860186612d25565b611e3c929150612d98565b84606001351415611e6257611e55816020860135612f64565b611e5f9083612dda565b91505b50915091565b81611e766040850185612d25565b8560600135818110611e8a57611e8a6129f0565b9050602002013514611ecc5760405162461bcd60e51b815260206004820152600b60248201526a15d493d391d7d4d510549560aa1b6044820152606401610345565b80611eda6040850185612d25565b611ee960608701356001612dda565b818110611ef857611ef86129f0565b905060200201351415611f385760405162461bcd60e51b815260206004820152600860248201526714d0535157d1539160c21b6044820152606401610345565b505050565b60408051600380825260808201909252600091829190816020015b6040805180820190915260008082526020820152815260200190600190039081611f58575050604080518082018252600080825260209182018190528251808401909352600483529082015290915081600081518110611fba57611fba6129f0565b6020026020010181905250611fcf6000612184565b81600181518110611fe257611fe26129f0565b6020026020010181905250611ff76000612184565b8160028151811061200a5761200a6129f0565b602090810291909101810191909152604080518083018252838152815180830190925280825260009282019290925261205a60408051606080820183529181019182529081526000602082015290565b604080518082018252606080825260006020808401829052845161012081018652828152908101879052938401859052908301829052608083018a905260a0830181905260c0830181905260e08301526101008201889052906120bc816121b7565b9998505050505050505050565b600060018360038111156120df576120df6126be565b14156120f65781604051602001611af29190612f78565b600283600381111561210a5761210a6126be565b1415612134576040516f26b0b1b434b7329032b93937b932b21d60811b6020820152603001611af2565b6003836003811115612148576121486126be565b1415611b9c576040516f26b0b1b434b732903a37b7903330b91d60811b6020820152603001611af2565b600081600401544261095d9190612d98565b604080518082019091526000808252602082015250604080518082019091526000815263ffffffff909116602082015290565b600080825160038111156121cd576121cd6126be565b1415612283576121e08260200151612370565b6121ed8360400151612370565b6121fa84606001516123f5565b608085015160a086015160c087015160e0808901516101008a01516040516f26b0b1b434b73290393ab73734b7339d60811b602082015260308101999099526050890197909752607088019590955260908701939093526001600160e01b031991831b821660b0870152821b811660b486015291901b1660b883015260bc82015260dc01611a96565b600182516003811115612298576122986126be565b14156122b3578160800151604051602001611a969190612f78565b6002825160038111156122c8576122c86126be565b14156122f2576040516f26b0b1b434b7329032b93937b932b21d60811b6020820152603001611a96565b600382516003811115612307576123076126be565b1415612331576040516f26b0b1b434b732903a37b7903330b91d60811b6020820152603001611a96565b60405162461bcd60e51b815260206004820152600f60248201526e4241445f4d4143485f53544154555360881b6044820152606401610345565b919050565b60208101518151515160005b818110156123ee57835161239990612394908361248e565b6124c6565b6040516b2b30b63ab29039ba30b1b59d60a11b6020820152602c810191909152604c8101849052606c0160405160208183030381529060405280519060200120925080806123e690612f9d565b91505061237c565b5050919050565b602081015160005b8251518110156124885761242d83600001518281518110612420576124206129f0565b60200260200101516124e3565b6040517129ba30b1b590333930b6b29039ba30b1b59d60711b6020820152603281019190915260528101839052607201604051602081830303815290604052805190602001209150808061248090612f9d565b9150506123fd565b50919050565b604080518082019091526000808252602082015282518051839081106124b6576124b66129f0565b6020026020010151905092915050565b600081600001518260200151604051602001611a96929190612fb8565b60006124f282600001516124c6565b602080840151604080860151606087015191516b29ba30b1b590333930b6b29d60a11b94810194909452602c840194909452604c8301919091526001600160e01b031960e093841b8116606c840152921b9091166070820152607401611a96565b604080516101208101909152600060e0820181815261010083019190915281908152602001612592604080518082019091526000808252602082015290565b815260006020820181905260408201819052606082018190526080820181905260a09091015290565b806040810183101561095d57600080fd5b80356001600160401b038116811461236b57600080fd5b6001600160a01b03811681146106ce57600080fd5b600080600080600080600080610200898b03121561261557600080fd5b883597506126268a60208b016125bb565b965061016089018a81111561263a57600080fd5b60608a019650612649816125cc565b95505061018089013561265b816125e3565b93506101a089013561266c816125e3565b979a96995094979396929592945050506101c0820135916101e0013590565b60006020828403121561269d57600080fd5b611a2b826125cc565b80516001600160a01b03168252602090810151910152565b634e487b7160e01b600052602160045260246000fd5b600381106126e4576126e46126be565b9052565b6000610120820190506126fc8284516126a6565b602083015161270e60408401826126a6565b5060408301516080830152606083015160a0830152608083015160c08301526001600160401b0360a08401511660e083015260c08301516127536101008401826126d4565b5092915050565b60006020828403121561276c57600080fd5b5035919050565b6101208101612782828a6126a6565b61278f60408301896126a6565b8660808301528560a08301528460c08301526001600160401b03841660e08301526105f56101008301846126d4565b60006080828403121561248857600080fd5b600080600080606085870312156127e657600080fd5b6127ef856125cc565b935060208501356001600160401b038082111561280b57600080fd5b612817888389016127be565b9450604087013591508082111561282d57600080fd5b818701915087601f83011261284157600080fd5b81358181111561285057600080fd5b8860208260051b850101111561286557600080fd5b95989497505060200194505050565b6000806000806060858703121561288a57600080fd5b612893856125cc565b935060208501356001600160401b03808211156128af57600080fd5b6128bb888389016127be565b945060408701359150808211156128d157600080fd5b818701915087601f8301126128e557600080fd5b8135818111156128f457600080fd5b88602082850101111561286557600080fd5b6000806000806080858703121561291c57600080fd5b8435612927816125e3565b93506020850135612937816125e3565b92506040850135612947816125e3565b91506060850135612957816125e3565b939692955090935050565b600080600080600060e0868803121561297a57600080fd5b612983866125cc565b945060208601356001600160401b0381111561299e57600080fd5b6129aa888289016127be565b9450506129ba87604088016125bb565b92506129c987608088016125bb565b9497939650919460c0013592915050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600060208284031215612a1857600080fd5b813560048110611a2b57600080fd5b604080519081016001600160401b0381118282101715612a4957612a496129da565b60405290565b600082601f830112612a6057600080fd5b604051604081018181106001600160401b0382111715612a8257612a826129da565b8060405250806040840185811115612a9957600080fd5b845b81811015612aba57612aac816125cc565b835260209283019201612a9b565b509195945050505050565b600060808284031215612ad757600080fd5b604051604081018181106001600160401b0382111715612af957612af96129da565b604052601f83018413612b0b57600080fd5b612b13612a27565b806040850186811115612b2557600080fd5b855b81811015612b3f578035845260209384019301612b27565b50818452612b4d8782612a4f565b6020850152509195945050505050565b634e487b7160e01b600052601160045260246000fd5b60006001600160401b0380831681811415612b9057612b90612b5d565b6001019392505050565b634e487b7160e01b600052600160045260246000fd5b604081833760006040838101828152908301915b6002811015612bf3576001600160401b03612bde846125cc565b16825260209283019290910190600101612bc4565b5050505050565b6101008101612c098285612bb0565b611a2b6080830184612bb0565b600060208083528351808285015260005b81811015612c4357858101830151858201604001528201612c27565b81811115612c55576000604083870101525b50601f01601f1916929092016040019392505050565b6020810160048310612c7f57612c7f6126be565b91905290565b6020808252600b908201526a21a420a62fa9a2a72222a960a91b604082015260600190565b6020808252600d908201526c4348414c5f444541444c494e4560981b604082015260600190565b6020808252600e908201526d4348414c5f4e4f545f424c4f434b60901b604082015260600190565b60208082526012908201527121a420a62fa727aa2fa2ac22a1aaaa24a7a760711b604082015260600190565b6000808335601e19843603018112612d3c57600080fd5b8301803591506001600160401b03821115612d5657600080fd5b6020019150600581901b3603821315612d6e57600080fd5b9250929050565b6020808252600990820152684249535f535441544560b81b604082015260600190565b600082821015612daa57612daa612b5d565b500390565b6020808252601190820152704241445f4348414c4c454e47455f504f5360781b604082015260600190565b60008219821115612ded57612ded612b5d565b500190565b602080825260089082015267544f4f5f4c4f4e4760c01b604082015260600190565b8551815260018060a01b03602087015116602082015284604082015283606082015260a060808201528160a0820152818360c0830137600081830160c090810191909152601f909201601f19160101949350505050565b600060208284031215612e7d57600080fd5b5051919050565b83815260006020848184015260408301845182860160005b82811015612eb857815184529284019290840190600101612e9c565b509198975050505050505050565b6000606082018583526020858185015260606040850152818551808452608086019150828701935060005b81811015612f0d57845183529383019391830191600101612ef1565b509098975050505050505050565b634e487b7160e01b600052601260045260246000fd5b600082612f4057612f40612f1b565b500490565b6000816000190483118215151615612f5f57612f5f612b5d565b500290565b600082612f7357612f73612f1b565b500690565b7026b0b1b434b732903334b734b9b432b21d60791b8152601181019190915260310190565b6000600019821415612fb157612fb1612b5d565b5060010190565b652b30b63ab29d60d11b8152600060078410612fd657612fd66126be565b5060f89290921b600683015260078201526027019056fea2646970667358221220b163982aa479f2bbb94640df7eb6377524821a058fd31b7e47aedfbd934e2b6a64736f6c63430008090033",
717
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100e05760003560e01c80639ede42b9116100875780639ede42b914610251578063a521b03214610274578063d248d12414610287578063e78cea921461029a578063ee35f327146102ad578063f26a62c6146102c0578063f8c8765e146102d3578063fb7be0a1146102e657600080fd5b806314eab5e7146100e55780631b45c86a1461011557806323a9ef231461012a5780633504f1d71461015557806356e9df97146101685780635ef489e61461017b5780637fd07a9c1461018e5780638f1d3776146101ae575b600080fd5b6100f86100f33660046125f8565b6102f9565b6040516001600160401b0390911681526020015b60405180910390f35b61012861012336600461268b565b610601565b005b61013d61013836600461268b565b6106d1565b6040516001600160a01b03909116815260200161010c565b60025461013d906001600160a01b031681565b61012861017636600461268b565b6106f5565b6000546100f8906001600160401b031681565b6101a161019c36600461268b565b610863565b60405161010c91906126e8565b61023e6101bc36600461275a565b6001602081815260009283526040928390208351808501855281546001600160a01b0390811682529382015481840152845180860190955260028201549093168452600381015491840191909152600481015460058201546006830154600790930154939493919290916001600160401b03811690600160401b900460ff1687565b60405161010c9796959493929190612773565b61026461025f36600461268b565b61093c565b604051901515815260200161010c565b6101286102823660046127d0565b610963565b610128610295366004612874565b610dd9565b60045461013d906001600160a01b031681565b60035461013d906001600160a01b031681565b60055461013d906001600160a01b031681565b6101286102e1366004612906565b61121a565b6101286102f4366004612962565b61138b565b6002546000906001600160a01b0316331461034e5760405162461bcd60e51b815260206004820152601060248201526f13d3931657d493d313155417d0d2105360821b60448201526064015b60405180910390fd5b6040805160028082526060820183526000926020830190803683370190505090506103a461037f60208b018b612a06565b61039f8a60005b6080020180360381019061039a9190612ac5565b611a32565b611ab3565b816000815181106103b7576103b76129f0565b60209081029190910101526103e68960016020020160208101906103db9190612a06565b61039f8a6001610386565b816001815181106103f9576103f96129f0565b6020908102919091010152600080548190819061041e906001600160401b0316612b73565b91906101000a8154816001600160401b0302191690836001600160401b031602179055905060006001600160401b0316816001600160401b0316141561046657610466612b9a565b6001600160401b0381166000908152600160205260408120600581018d9055906104a061049b368d90038d0160808e01612ac5565b611bd7565b905060026104b460408e0160208f01612a06565b60038111156104c5576104c56126be565b14806104f3575060006104e86104e3368e90038e0160808f01612ac5565b611bec565b6001600160401b0316115b15610506578061050281612b73565b9150505b6007820180546040805180820182526001600160a01b038d811680835260209283018d90526002880180546001600160a01b03199081169092179055600388018d905583518085018552918e16808352919092018b90528654909116178555600185018990554260048601556001600160401b0384811668ffffffffffffffffff1990931692909217600160401b179092559051908416907f76604fe17af46c9b5f53ffe99ff23e0f655dab91886b07ac1fc0254319f7145a906105d0908e906080820190612bfa565b60405180910390a26105ee8360008c6001600160401b031687611bfb565b5090925050505b98975050505050505050565b60006001600160401b038216600090815260016020526040902060070154600160401b900460ff16600281111561063a5761063a6126be565b1415604051806040016040528060078152602001661393d7d0d2105360ca1b8152509061067a5760405162461bcd60e51b81526004016103459190612c16565b506106848161093c565b6106c35760405162461bcd60e51b815260206004820152601060248201526f54494d454f55545f444541444c494e4560801b6044820152606401610345565b6106ce816000611c91565b50565b6001600160401b03166000908152600160205260409020546001600160a01b031690565b6002546001600160a01b031633146107425760405162461bcd60e51b815260206004820152601060248201526f2727aa2fa922a9afa922a1a2a4ab22a960811b6044820152606401610345565b60006001600160401b038216600090815260016020526040902060070154600160401b900460ff16600281111561077b5761077b6126be565b1415604051806040016040528060078152602001661393d7d0d2105360ca1b815250906107bb5760405162461bcd60e51b81526004016103459190612c16565b506001600160401b038116600081815260016020819052604080832080546001600160a01b031990811682559281018490556002810180549093169092556003808301849055600483018490556005830184905560068301939093556007909101805468ffffffffffffffffff19169055517ffdaece6c274a4b56af16761f83fd6b1062823192630ea08e019fdf9b2d747f409161085891612c6b565b60405180910390a250565b61086b612553565b6001600160401b0382811660009081526001602081815260409283902083516101208101855281546001600160a01b0390811660e0830190815294830154610100830152938152845180860186526002808401549095168152600383015481850152928101929092526004810154938201939093526005830154606082015260068301546080820152600783015493841660a08201529260c0840191600160401b90910460ff1690811115610922576109226126be565b6002811115610933576109336126be565b90525092915050565b6001600160401b038116600090815260016020526040812061095d90611dbf565b92915050565b6001600160401b038416600090815260016020526040812085918591610988846106d1565b6001600160a01b0316336001600160a01b0316146109b85760405162461bcd60e51b815260040161034590612c85565b6109c18461093c565b156109de5760405162461bcd60e51b815260040161034590612caa565b60008260028111156109f2576109f26126be565b1415610a605760006007820154600160401b900460ff166002811115610a1a57610a1a6126be565b1415604051806040016040528060078152602001661393d7d0d2105360ca1b81525090610a5a5760405162461bcd60e51b81526004016103459190612c16565b50610b1f565b6001826002811115610a7457610a746126be565b1415610abe5760016007820154600160401b900460ff166002811115610a9c57610a9c6126be565b14610ab95760405162461bcd60e51b815260040161034590612cd1565b610b1f565b6002826002811115610ad257610ad26126be565b1415610b175760026007820154600160401b900460ff166002811115610afa57610afa6126be565b14610ab95760405162461bcd60e51b815260040161034590612cf9565b610b1f612b9a565b610b6d83356020850135610b366040870187612d25565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506119fb92505050565b816006015414610b8f5760405162461bcd60e51b815260040161034590612d75565b6002610b9e6040850185612d25565b90501080610bc957506001610bb66040850185612d25565b610bc1929150612d98565b836060013510155b15610be65760405162461bcd60e51b815260040161034590612daf565b600080610bf289611dd7565b9150915060018111610c325760405162461bcd60e51b81526020600482015260096024820152681513d3d7d4d213d49560ba1b6044820152606401610345565b806028811115610c40575060285b610c4b816001612dda565b8814610c885760405162461bcd60e51b815260206004820152600c60248201526b57524f4e475f44454752454560a01b6044820152606401610345565b50610cd28989896000818110610ca057610ca06129f0565b602002919091013590508a8a610cb7600182612d98565b818110610cc657610cc66129f0565b90506020020135611e68565b610d118a83838b8b80806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611bfb92505050565b50600090505b6007820154600160401b900460ff166002811115610d3757610d376126be565b1415610d435750610dd0565b6040805180820190915281546001600160a01b03168152600182015460208201526004820154610d739042612d98565b81602001818151610d849190612d98565b90525060028201805483546001600160a01b038083166001600160a01b031992831617865560038601805460018801558551929093169116179091556020909101519055426004909101555b50505050505050565b6001600160401b038416600090815260016020526040902084908490600290610e01846106d1565b6001600160a01b0316336001600160a01b031614610e315760405162461bcd60e51b815260040161034590612c85565b610e3a8461093c565b15610e575760405162461bcd60e51b815260040161034590612caa565b6000826002811115610e6b57610e6b6126be565b1415610ed95760006007820154600160401b900460ff166002811115610e9357610e936126be565b1415604051806040016040528060078152602001661393d7d0d2105360ca1b81525090610ed35760405162461bcd60e51b81526004016103459190612c16565b50610f98565b6001826002811115610eed57610eed6126be565b1415610f375760016007820154600160401b900460ff166002811115610f1557610f156126be565b14610f325760405162461bcd60e51b815260040161034590612cd1565b610f98565b6002826002811115610f4b57610f4b6126be565b1415610f905760026007820154600160401b900460ff166002811115610f7357610f736126be565b14610f325760405162461bcd60e51b815260040161034590612cf9565b610f98612b9a565b610faf83356020850135610b366040870187612d25565b816006015414610fd15760405162461bcd60e51b815260040161034590612d75565b6002610fe06040850185612d25565b9050108061100b57506001610ff86040850185612d25565b611003929150612d98565b836060013510155b156110285760405162461bcd60e51b815260040161034590612daf565b6001600160401b0388166000908152600160205260408120908061104b8a611dd7565b9092509050600181146110705760405162461bcd60e51b815260040161034590612df2565b5060055460408051808201825260078501546001600160401b031681526004546001600160a01b0390811660208301526000931691635d3adcfb919085906110ba908f018f612d25565b8f606001358181106110ce576110ce6129f0565b905060200201358d8d6040518663ffffffff1660e01b81526004016110f7959493929190612e14565b60206040518083038186803b15801561110f57600080fd5b505afa158015611123573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111479190612e6b565b905061115660408b018b612d25565b61116560608d01356001612dda565b818110611174576111746129f0565b905060200201358114156111b95760405162461bcd60e51b815260206004820152600c60248201526b14d0535157d3d4d417d1539160a21b6044820152606401610345565b6040516001600160401b038c16907fc2cc42e04ff8c36de71c6a2937ea9f161dd0dd9e175f00caa26e5200643c781e90600090a261120e8b6001600160401b0316600090815260016020526040812060060155565b5060009150610d179050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156112a85760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b6064820152608401610345565b6002546001600160a01b0316156112f05760405162461bcd60e51b815260206004820152600c60248201526b1053149150511657d253925560a21b6044820152606401610345565b6001600160a01b03841661133b5760405162461bcd60e51b81526020600482015260126024820152712727afa922a9aaa62a2fa922a1a2a4ab22a960711b6044820152606401610345565b600280546001600160a01b039586166001600160a01b0319918216179091556003805494861694821694909417909355600480549285169284169290921790915560058054919093169116179055565b6001600160401b0385166000908152600160208190526040909120869186916113b3846106d1565b6001600160a01b0316336001600160a01b0316146113e35760405162461bcd60e51b815260040161034590612c85565b6113ec8461093c565b156114095760405162461bcd60e51b815260040161034590612caa565b600082600281111561141d5761141d6126be565b141561148b5760006007820154600160401b900460ff166002811115611445576114456126be565b1415604051806040016040528060078152602001661393d7d0d2105360ca1b815250906114855760405162461bcd60e51b81526004016103459190612c16565b5061154a565b600182600281111561149f5761149f6126be565b14156114e95760016007820154600160401b900460ff1660028111156114c7576114c76126be565b146114e45760405162461bcd60e51b815260040161034590612cd1565b61154a565b60028260028111156114fd576114fd6126be565b14156115425760026007820154600160401b900460ff166002811115611525576115256126be565b146114e45760405162461bcd60e51b815260040161034590612cf9565b61154a612b9a565b61156183356020850135610b366040870187612d25565b8160060154146115835760405162461bcd60e51b815260040161034590612d75565b60026115926040850185612d25565b905010806115bd575060016115aa6040850185612d25565b6115b5929150612d98565b836060013510155b156115da5760405162461bcd60e51b815260040161034590612daf565b60018510156116215760405162461bcd60e51b815260206004820152601360248201527210d2105313115391d157d513d3d7d4d213d495606a1b6044820152606401610345565b6508000000000085111561166c5760405162461bcd60e51b81526020600482015260126024820152714348414c4c454e47455f544f4f5f4c4f4e4760701b6044820152606401610345565b6116ae8861168e61168060208b018b612a06565b8960005b6020020135611ab3565b6116a96116a160408c0160208d01612a06565b8a6001611684565b611e68565b6001600160401b038916600090815260016020526040812090806116d18b611dd7565b91509150806001146116f55760405162461bcd60e51b815260040161034590612df2565b600161170460208c018c612a06565b6003811115611715576117156126be565b146117cf5761172a60408b0160208c01612a06565b600381111561173b5761173b6126be565b61174860208c018c612a06565b6003811115611759576117596126be565b14801561176a5750883560208a0135145b6117a65760405162461bcd60e51b815260206004820152600d60248201526c48414c5445445f4348414e474560981b6044820152606401610345565b6117c78c6001600160401b0316600090815260016020526040812060060155565b505050611936565b60026117e160408c0160208d01612a06565b60038111156117f2576117f26126be565b141561183b57883560208a01351461183b5760405162461bcd60e51b815260206004820152600c60248201526b4552524f525f4348414e474560a01b6044820152606401610345565b604080516002808252606082018352600092602083019080368337505050600585015490915061186d908b3590611f3d565b81600081518110611880576118806129f0565b60209081029190910101526118ae8b60016020020160208101906118a49190612a06565b60208c01356120c9565b816001815181106118c1576118c16129f0565b602090810291909101015260078401805460ff60401b1916600160411b1790556118ee8d60008b84611bfb565b8c6001600160401b03167f24e032e170243bbea97e140174b22dc7e54fb85925afbf52c70e001cd6af16db8460405161192991815260200190565b60405180910390a2505050505b60006007820154600160401b900460ff166002811115611958576119586126be565b141561196457506119f1565b6040805180820190915281546001600160a01b031681526001820154602082015260048201546119949042612d98565b816020018181516119a59190612d98565b90525060028201805483546001600160a01b038083166001600160a01b031992831617865560038601805460018801558551929093169116179091556020909101519055426004909101555b5050505050505050565b6000838383604051602001611a1293929190612e84565b6040516020818303038152906040528051906020012090505b9392505050565b80518051602091820151828401518051908401516040516c23b637b130b61039ba30ba329d60991b95810195909552602d850193909352604d8401919091526001600160c01b031960c091821b8116606d85015291901b166075820152600090607d015b604051602081830303815290604052805190602001209050919050565b60006001836003811115611ac957611ac96126be565b1415611b0f576040516b213637b1b59039ba30ba329d60a11b6020820152602c8101839052604c015b60405160208183030381529060405280519060200120905061095d565b6002836003811115611b2357611b236126be565b1415611b595760405174213637b1b59039ba30ba32961032b93937b932b21d60591b602082015260358101839052605501611af2565b6003836003811115611b6d57611b6d6126be565b1415611b9c5760405174213637b1b59039ba30ba3296103a37b7903330b91d60591b6020820152603501611af2565b60405162461bcd60e51b815260206004820152601060248201526f4241445f424c4f434b5f53544154555360801b6044820152606401610345565b6020810151600090815b602002015192915050565b60208101516000906001611be1565b6001821015611c0c57611c0c612b9a565b600281511015611c1e57611c1e612b9a565b6000611c2b8484846119fb565b6001600160401b038616600081815260016020526040908190206006018390555191925082917f86b34e9455464834eca718f62d4481437603bb929d8a78ccde5d1bc79fa06d6890611c8290889088908890612ec6565b60405180910390a35050505050565b6001600160401b03821660008181526001602081905260408083206002808201805483546001600160a01b0319808216865596850188905595811690915560038301869055600480840187905560058401879055600684019690965560078301805468ffffffffffffffffff1916905590549251630357aa4960e01b8152948501959095526001600160a01b03948516602485018190529285166044850181905290949293909290911690630357aa4990606401600060405180830381600087803b158015611d5f57600080fd5b505af1158015611d73573d6000803e3d6000fd5b50505050846001600160401b03167ffdaece6c274a4b56af16761f83fd6b1062823192630ea08e019fdf9b2d747f4085604051611db09190612c6b565b60405180910390a25050505050565b6001810154600090611dd083612172565b1192915050565b600080806001611dea6040860186612d25565b611df5929150612d98565b9050611e05816020860135612f31565b9150611e15606085013583612f45565b611e20908535612dda565b92506002611e316040860186612d25565b611e3c929150612d98565b84606001351415611e6257611e55816020860135612f64565b611e5f9083612dda565b91505b50915091565b81611e766040850185612d25565b8560600135818110611e8a57611e8a6129f0565b9050602002013514611ecc5760405162461bcd60e51b815260206004820152600b60248201526a15d493d391d7d4d510549560aa1b6044820152606401610345565b80611eda6040850185612d25565b611ee960608701356001612dda565b818110611ef857611ef86129f0565b905060200201351415611f385760405162461bcd60e51b815260206004820152600860248201526714d0535157d1539160c21b6044820152606401610345565b505050565b60408051600380825260808201909252600091829190816020015b6040805180820190915260008082526020820152815260200190600190039081611f58575050604080518082018252600080825260209182018190528251808401909352600483529082015290915081600081518110611fba57611fba6129f0565b6020026020010181905250611fcf6000612184565b81600181518110611fe257611fe26129f0565b6020026020010181905250611ff76000612184565b8160028151811061200a5761200a6129f0565b602090810291909101810191909152604080518083018252838152815180830190925280825260009282019290925261205a60408051606080820183529181019182529081526000602082015290565b604080518082018252606080825260006020808401829052845161012081018652828152908101879052938401859052908301829052608083018a905260a0830181905260c0830181905260e08301526101008201889052906120bc816121b7565b9998505050505050505050565b600060018360038111156120df576120df6126be565b14156120f65781604051602001611af29190612f78565b600283600381111561210a5761210a6126be565b1415612134576040516f26b0b1b434b7329032b93937b932b21d60811b6020820152603001611af2565b6003836003811115612148576121486126be565b1415611b9c576040516f26b0b1b434b732903a37b7903330b91d60811b6020820152603001611af2565b600081600401544261095d9190612d98565b604080518082019091526000808252602082015250604080518082019091526000815263ffffffff909116602082015290565b600080825160038111156121cd576121cd6126be565b1415612283576121e08260200151612370565b6121ed8360400151612370565b6121fa84606001516123f5565b608085015160a086015160c087015160e0808901516101008a01516040516f26b0b1b434b73290393ab73734b7339d60811b602082015260308101999099526050890197909752607088019590955260908701939093526001600160e01b031991831b821660b0870152821b811660b486015291901b1660b883015260bc82015260dc01611a96565b600182516003811115612298576122986126be565b14156122b3578160800151604051602001611a969190612f78565b6002825160038111156122c8576122c86126be565b14156122f2576040516f26b0b1b434b7329032b93937b932b21d60811b6020820152603001611a96565b600382516003811115612307576123076126be565b1415612331576040516f26b0b1b434b732903a37b7903330b91d60811b6020820152603001611a96565b60405162461bcd60e51b815260206004820152600f60248201526e4241445f4d4143485f53544154555360881b6044820152606401610345565b919050565b60208101518151515160005b818110156123ee57835161239990612394908361248e565b6124c6565b6040516b2b30b63ab29039ba30b1b59d60a11b6020820152602c810191909152604c8101849052606c0160405160208183030381529060405280519060200120925080806123e690612f9d565b91505061237c565b5050919050565b602081015160005b8251518110156124885761242d83600001518281518110612420576124206129f0565b60200260200101516124e3565b6040517129ba30b1b590333930b6b29039ba30b1b59d60711b6020820152603281019190915260528101839052607201604051602081830303815290604052805190602001209150808061248090612f9d565b9150506123fd565b50919050565b604080518082019091526000808252602082015282518051839081106124b6576124b66129f0565b6020026020010151905092915050565b600081600001518260200151604051602001611a96929190612fb8565b60006124f282600001516124c6565b602080840151604080860151606087015191516b29ba30b1b590333930b6b29d60a11b94810194909452602c840194909452604c8301919091526001600160e01b031960e093841b8116606c840152921b9091166070820152607401611a96565b604080516101208101909152600060e0820181815261010083019190915281908152602001612592604080518082019091526000808252602082015290565b815260006020820181905260408201819052606082018190526080820181905260a09091015290565b806040810183101561095d57600080fd5b80356001600160401b038116811461236b57600080fd5b6001600160a01b03811681146106ce57600080fd5b600080600080600080600080610200898b03121561261557600080fd5b883597506126268a60208b016125bb565b965061016089018a81111561263a57600080fd5b60608a019650612649816125cc565b95505061018089013561265b816125e3565b93506101a089013561266c816125e3565b979a96995094979396929592945050506101c0820135916101e0013590565b60006020828403121561269d57600080fd5b611a2b826125cc565b80516001600160a01b03168252602090810151910152565b634e487b7160e01b600052602160045260246000fd5b600381106126e4576126e46126be565b9052565b6000610120820190506126fc8284516126a6565b602083015161270e60408401826126a6565b5060408301516080830152606083015160a0830152608083015160c08301526001600160401b0360a08401511660e083015260c08301516127536101008401826126d4565b5092915050565b60006020828403121561276c57600080fd5b5035919050565b6101208101612782828a6126a6565b61278f60408301896126a6565b8660808301528560a08301528460c08301526001600160401b03841660e08301526105f56101008301846126d4565b60006080828403121561248857600080fd5b600080600080606085870312156127e657600080fd5b6127ef856125cc565b935060208501356001600160401b038082111561280b57600080fd5b612817888389016127be565b9450604087013591508082111561282d57600080fd5b818701915087601f83011261284157600080fd5b81358181111561285057600080fd5b8860208260051b850101111561286557600080fd5b95989497505060200194505050565b6000806000806060858703121561288a57600080fd5b612893856125cc565b935060208501356001600160401b03808211156128af57600080fd5b6128bb888389016127be565b945060408701359150808211156128d157600080fd5b818701915087601f8301126128e557600080fd5b8135818111156128f457600080fd5b88602082850101111561286557600080fd5b6000806000806080858703121561291c57600080fd5b8435612927816125e3565b93506020850135612937816125e3565b92506040850135612947816125e3565b91506060850135612957816125e3565b939692955090935050565b600080600080600060e0868803121561297a57600080fd5b612983866125cc565b945060208601356001600160401b0381111561299e57600080fd5b6129aa888289016127be565b9450506129ba87604088016125bb565b92506129c987608088016125bb565b9497939650919460c0013592915050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600060208284031215612a1857600080fd5b813560048110611a2b57600080fd5b604080519081016001600160401b0381118282101715612a4957612a496129da565b60405290565b600082601f830112612a6057600080fd5b604051604081018181106001600160401b0382111715612a8257612a826129da565b8060405250806040840185811115612a9957600080fd5b845b81811015612aba57612aac816125cc565b835260209283019201612a9b565b509195945050505050565b600060808284031215612ad757600080fd5b604051604081018181106001600160401b0382111715612af957612af96129da565b604052601f83018413612b0b57600080fd5b612b13612a27565b806040850186811115612b2557600080fd5b855b81811015612b3f578035845260209384019301612b27565b50818452612b4d8782612a4f565b6020850152509195945050505050565b634e487b7160e01b600052601160045260246000fd5b60006001600160401b0380831681811415612b9057612b90612b5d565b6001019392505050565b634e487b7160e01b600052600160045260246000fd5b604081833760006040838101828152908301915b6002811015612bf3576001600160401b03612bde846125cc565b16825260209283019290910190600101612bc4565b5050505050565b6101008101612c098285612bb0565b611a2b6080830184612bb0565b600060208083528351808285015260005b81811015612c4357858101830151858201604001528201612c27565b81811115612c55576000604083870101525b50601f01601f1916929092016040019392505050565b6020810160048310612c7f57612c7f6126be565b91905290565b6020808252600b908201526a21a420a62fa9a2a72222a960a91b604082015260600190565b6020808252600d908201526c4348414c5f444541444c494e4560981b604082015260600190565b6020808252600e908201526d4348414c5f4e4f545f424c4f434b60901b604082015260600190565b60208082526012908201527121a420a62fa727aa2fa2ac22a1aaaa24a7a760711b604082015260600190565b6000808335601e19843603018112612d3c57600080fd5b8301803591506001600160401b03821115612d5657600080fd5b6020019150600581901b3603821315612d6e57600080fd5b9250929050565b6020808252600990820152684249535f535441544560b81b604082015260600190565b600082821015612daa57612daa612b5d565b500390565b6020808252601190820152704241445f4348414c4c454e47455f504f5360781b604082015260600190565b60008219821115612ded57612ded612b5d565b500190565b602080825260089082015267544f4f5f4c4f4e4760c01b604082015260600190565b8551815260018060a01b03602087015116602082015284604082015283606082015260a060808201528160a0820152818360c0830137600081830160c090810191909152601f909201601f19160101949350505050565b600060208284031215612e7d57600080fd5b5051919050565b83815260006020848184015260408301845182860160005b82811015612eb857815184529284019290840190600101612e9c565b509198975050505050505050565b6000606082018583526020858185015260606040850152818551808452608086019150828701935060005b81811015612f0d57845183529383019391830191600101612ef1565b509098975050505050505050565b634e487b7160e01b600052601260045260246000fd5b600082612f4057612f40612f1b565b500490565b6000816000190483118215151615612f5f57612f5f612b5d565b500290565b600082612f7357612f73612f1b565b500690565b7026b0b1b434b732903334b734b9b432b21d60791b8152601181019190915260310190565b6000600019821415612fb157612fb1612b5d565b5060010190565b652b30b63ab29d60d11b8152600060078410612fd657612fd66126be565b5060f89290921b600683015260078201526027019056fea2646970667358221220b163982aa479f2bbb94640df7eb6377524821a058fd31b7e47aedfbd934e2b6a64736f6c63430008090033",
718
+ "linkReferences": {},
719
+ "deployedLinkReferences": {}
720
+ }