@hyperlane-xyz/core 1.0.0-beta2 → 1.0.0-beta4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (706) hide show
  1. package/contracts/Mailbox.sol +26 -21
  2. package/contracts/Router.sol +44 -14
  3. package/contracts/isms/MultisigIsm.sol +23 -0
  4. package/contracts/libs/EnumerableMapExtended.sol +72 -0
  5. package/contracts/middleware/InterchainAccountRouter.sol +9 -1
  6. package/contracts/middleware/InterchainQueryRouter.sol +9 -1
  7. package/contracts/middleware/liquidity-layer/LiquidityLayerRouter.sol +9 -1
  8. package/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter.sol +1 -1
  9. package/contracts/test/TestIsm.sol +1 -0
  10. package/contracts/test/TestRecipient.sol +10 -1
  11. package/dist/@openzeppelin/contracts/index.d.ts +0 -4
  12. package/dist/@openzeppelin/contracts/index.d.ts.map +1 -1
  13. package/dist/@openzeppelin/contracts-upgradeable/index.d.ts +2 -0
  14. package/dist/@openzeppelin/contracts-upgradeable/index.d.ts.map +1 -1
  15. package/dist/{contracts/PausableReentrancyGuard.sol/PausableReentrancyGuardUpgradeable.d.ts → @openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.d.ts} +5 -5
  16. package/dist/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.d.ts.map +1 -0
  17. package/dist/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.js +4 -0
  18. package/dist/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.js.map +1 -0
  19. package/dist/@openzeppelin/contracts-upgradeable/security/index.d.ts +2 -0
  20. package/dist/@openzeppelin/contracts-upgradeable/security/index.d.ts.map +1 -0
  21. package/dist/@openzeppelin/{contracts/interfaces/draft-IERC1822.sol → contracts-upgradeable/security}/index.js +0 -0
  22. package/dist/@openzeppelin/contracts-upgradeable/security/index.js.map +1 -0
  23. package/dist/contracts/{HyperlaneConnectionClient.d.ts → AbacusConnectionClient.d.ts} +36 -69
  24. package/dist/contracts/AbacusConnectionClient.d.ts.map +1 -0
  25. package/dist/contracts/AbacusConnectionClient.js +4 -0
  26. package/dist/contracts/AbacusConnectionClient.js.map +1 -0
  27. package/dist/contracts/AbacusConnectionManager.d.ts +213 -0
  28. package/dist/contracts/AbacusConnectionManager.d.ts.map +1 -0
  29. package/dist/contracts/AbacusConnectionManager.js +4 -0
  30. package/dist/contracts/AbacusConnectionManager.js.map +1 -0
  31. package/dist/contracts/Inbox.d.ts +207 -0
  32. package/dist/contracts/Inbox.d.ts.map +1 -0
  33. package/dist/{@openzeppelin/contracts/interfaces/index.js → contracts/Inbox.js} +1 -1
  34. package/dist/contracts/Inbox.js.map +1 -0
  35. package/dist/contracts/InterchainGasPaymaster.d.ts +15 -15
  36. package/dist/contracts/InterchainGasPaymaster.d.ts.map +1 -1
  37. package/dist/contracts/Mailbox.d.ts +27 -237
  38. package/dist/contracts/Mailbox.d.ts.map +1 -1
  39. package/dist/contracts/MerkleTreeManager.d.ts +53 -0
  40. package/dist/contracts/MerkleTreeManager.d.ts.map +1 -0
  41. package/dist/{@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.js → contracts/MerkleTreeManager.js} +1 -1
  42. package/dist/contracts/MerkleTreeManager.js.map +1 -0
  43. package/dist/contracts/Outbox.d.ts +331 -0
  44. package/dist/contracts/Outbox.d.ts.map +1 -0
  45. package/dist/{@openzeppelin/contracts/proxy/Proxy.js → contracts/Outbox.js} +1 -1
  46. package/dist/contracts/Outbox.js.map +1 -0
  47. package/dist/contracts/OwnableMulticall.d.ts +1 -17
  48. package/dist/contracts/OwnableMulticall.d.ts.map +1 -1
  49. package/dist/contracts/Router.d.ts +32 -65
  50. package/dist/contracts/Router.d.ts.map +1 -1
  51. package/dist/contracts/index.d.ts +7 -5
  52. package/dist/contracts/index.d.ts.map +1 -1
  53. package/dist/contracts/middleware/InterchainAccountRouter.d.ts +39 -72
  54. package/dist/contracts/middleware/InterchainAccountRouter.d.ts.map +1 -1
  55. package/dist/contracts/middleware/InterchainQueryRouter.d.ts +42 -91
  56. package/dist/contracts/middleware/InterchainQueryRouter.d.ts.map +1 -1
  57. package/dist/contracts/middleware/V2CompatibilityRouter.d.ts +306 -0
  58. package/dist/contracts/middleware/V2CompatibilityRouter.d.ts.map +1 -0
  59. package/dist/contracts/middleware/V2CompatibilityRouter.js +4 -0
  60. package/dist/contracts/middleware/V2CompatibilityRouter.js.map +1 -0
  61. package/dist/contracts/middleware/index.d.ts +1 -0
  62. package/dist/contracts/middleware/index.d.ts.map +1 -1
  63. package/dist/contracts/middleware/liquidity-layer/LiquidityLayerRouter.d.ts +38 -71
  64. package/dist/contracts/middleware/liquidity-layer/LiquidityLayerRouter.d.ts.map +1 -1
  65. package/dist/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter.d.ts +32 -65
  66. package/dist/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter.d.ts.map +1 -1
  67. package/dist/contracts/middleware/liquidity-layer/adapters/PortalAdapter.d.ts +394 -0
  68. package/dist/contracts/middleware/liquidity-layer/adapters/PortalAdapter.d.ts.map +1 -0
  69. package/dist/{@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.js → contracts/middleware/liquidity-layer/adapters/PortalAdapter.js} +1 -1
  70. package/dist/contracts/middleware/liquidity-layer/adapters/PortalAdapter.js.map +1 -0
  71. package/dist/contracts/middleware/liquidity-layer/adapters/index.d.ts +1 -0
  72. package/dist/contracts/middleware/liquidity-layer/adapters/index.d.ts.map +1 -1
  73. package/dist/{interfaces → contracts/middleware/liquidity-layer/interfaces}/ILiquidityLayerMessageRecipient.d.ts +1 -1
  74. package/dist/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerMessageRecipient.d.ts.map +1 -0
  75. package/dist/{interfaces → contracts/middleware/liquidity-layer/interfaces}/ILiquidityLayerMessageRecipient.js +0 -0
  76. package/dist/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerMessageRecipient.js.map +1 -0
  77. package/dist/contracts/middleware/liquidity-layer/interfaces/circle/{ICircleBridge.d.ts → ITokenMessenger.d.ts} +4 -4
  78. package/dist/contracts/middleware/liquidity-layer/interfaces/circle/ITokenMessenger.d.ts.map +1 -0
  79. package/dist/{@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.js → contracts/middleware/liquidity-layer/interfaces/circle/ITokenMessenger.js} +1 -1
  80. package/dist/contracts/middleware/liquidity-layer/interfaces/circle/ITokenMessenger.js.map +1 -0
  81. package/dist/contracts/middleware/liquidity-layer/interfaces/circle/index.d.ts +1 -1
  82. package/dist/contracts/middleware/liquidity-layer/interfaces/circle/index.d.ts.map +1 -1
  83. package/dist/contracts/middleware/liquidity-layer/interfaces/index.d.ts +3 -0
  84. package/dist/contracts/middleware/liquidity-layer/interfaces/index.d.ts.map +1 -1
  85. package/dist/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge.d.ts +148 -0
  86. package/dist/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge.d.ts.map +1 -0
  87. package/dist/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge.js +4 -0
  88. package/dist/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge.js.map +1 -0
  89. package/dist/contracts/middleware/liquidity-layer/interfaces/portal/index.d.ts +2 -0
  90. package/dist/contracts/middleware/liquidity-layer/interfaces/portal/index.d.ts.map +1 -0
  91. package/dist/{@openzeppelin/contracts/proxy/ERC1967 → contracts/middleware/liquidity-layer/interfaces/portal}/index.js +0 -0
  92. package/dist/contracts/middleware/liquidity-layer/interfaces/portal/index.js.map +1 -0
  93. package/dist/contracts/mock/MockHyperlaneEnvironment.d.ts +33 -25
  94. package/dist/contracts/mock/MockHyperlaneEnvironment.d.ts.map +1 -1
  95. package/dist/contracts/mock/MockInbox.d.ts +67 -0
  96. package/dist/contracts/mock/MockInbox.d.ts.map +1 -0
  97. package/dist/contracts/mock/MockInbox.js +4 -0
  98. package/dist/contracts/mock/MockInbox.js.map +1 -0
  99. package/dist/contracts/mock/MockInterchainAccountRouter.d.ts +3 -253
  100. package/dist/contracts/mock/MockInterchainAccountRouter.d.ts.map +1 -1
  101. package/dist/{interfaces/IInterchainSecurityModule.sol/IInterchainSecurityModule.d.ts → contracts/mock/MockOutbox.d.ts} +14 -14
  102. package/dist/contracts/mock/MockOutbox.d.ts.map +1 -0
  103. package/dist/contracts/mock/MockOutbox.js +4 -0
  104. package/dist/contracts/mock/MockOutbox.js.map +1 -0
  105. package/dist/contracts/mock/MockPortalBridge.d.ts +164 -0
  106. package/dist/contracts/mock/MockPortalBridge.d.ts.map +1 -0
  107. package/dist/contracts/mock/MockPortalBridge.js +4 -0
  108. package/dist/contracts/mock/MockPortalBridge.js.map +1 -0
  109. package/dist/contracts/mock/index.d.ts +3 -1
  110. package/dist/contracts/mock/index.d.ts.map +1 -1
  111. package/dist/contracts/test/MysteryMath.d.ts +77 -0
  112. package/dist/contracts/test/MysteryMath.d.ts.map +1 -0
  113. package/dist/contracts/test/MysteryMath.js +4 -0
  114. package/dist/contracts/test/MysteryMath.js.map +1 -0
  115. package/dist/contracts/test/MysteryMathV1.d.ts +85 -0
  116. package/dist/contracts/test/MysteryMathV1.d.ts.map +1 -0
  117. package/dist/contracts/test/MysteryMathV1.js +4 -0
  118. package/dist/contracts/test/MysteryMathV1.js.map +1 -0
  119. package/dist/contracts/test/MysteryMathV2.d.ts +85 -0
  120. package/dist/contracts/test/MysteryMathV2.d.ts.map +1 -0
  121. package/dist/contracts/test/MysteryMathV2.js +4 -0
  122. package/dist/contracts/test/MysteryMathV2.js.map +1 -0
  123. package/dist/contracts/test/{TestHyperlaneConnectionClient.d.ts → TestAbacusConnectionClient.d.ts} +57 -74
  124. package/dist/contracts/test/TestAbacusConnectionClient.d.ts.map +1 -0
  125. package/dist/contracts/test/TestAbacusConnectionClient.js +4 -0
  126. package/dist/contracts/test/TestAbacusConnectionClient.js.map +1 -0
  127. package/dist/contracts/test/TestInbox.d.ts +263 -0
  128. package/dist/contracts/test/TestInbox.d.ts.map +1 -0
  129. package/dist/contracts/test/TestInbox.js +4 -0
  130. package/dist/contracts/test/TestInbox.js.map +1 -0
  131. package/dist/contracts/test/TestMailbox.d.ts +32 -250
  132. package/dist/contracts/test/TestMailbox.d.ts.map +1 -1
  133. package/dist/contracts/test/TestMessage.d.ts +10 -30
  134. package/dist/contracts/test/TestMessage.d.ts.map +1 -1
  135. package/dist/contracts/test/TestMultisigValidatorManager.d.ts +247 -0
  136. package/dist/contracts/test/TestMultisigValidatorManager.d.ts.map +1 -0
  137. package/dist/contracts/test/TestMultisigValidatorManager.js +4 -0
  138. package/dist/contracts/test/TestMultisigValidatorManager.js.map +1 -0
  139. package/dist/contracts/test/TestOutbox.d.ts +371 -0
  140. package/dist/contracts/test/TestOutbox.d.ts.map +1 -0
  141. package/dist/contracts/test/TestOutbox.js +4 -0
  142. package/dist/contracts/test/TestOutbox.js.map +1 -0
  143. package/dist/contracts/test/TestRouter.d.ts +44 -77
  144. package/dist/contracts/test/TestRouter.d.ts.map +1 -1
  145. package/dist/contracts/test/TestSendReceiver.d.ts +6 -14
  146. package/dist/contracts/test/TestSendReceiver.d.ts.map +1 -1
  147. package/dist/contracts/test/TestValidatorManager.d.ts +58 -0
  148. package/dist/contracts/test/TestValidatorManager.d.ts.map +1 -0
  149. package/dist/contracts/test/TestValidatorManager.js +4 -0
  150. package/dist/contracts/test/TestValidatorManager.js.map +1 -0
  151. package/dist/contracts/test/index.d.ts +8 -3
  152. package/dist/contracts/test/index.d.ts.map +1 -1
  153. package/dist/contracts/upgrade/UpgradeBeacon.d.ts +40 -0
  154. package/dist/contracts/upgrade/UpgradeBeacon.d.ts.map +1 -0
  155. package/dist/contracts/upgrade/UpgradeBeacon.js +4 -0
  156. package/dist/contracts/upgrade/UpgradeBeacon.js.map +1 -0
  157. package/dist/{@openzeppelin/contracts/proxy/transparent/ProxyAdmin.d.ts → contracts/upgrade/UpgradeBeaconController.d.ts} +25 -60
  158. package/dist/contracts/upgrade/UpgradeBeaconController.d.ts.map +1 -0
  159. package/dist/contracts/upgrade/UpgradeBeaconController.js +4 -0
  160. package/dist/contracts/upgrade/UpgradeBeaconController.js.map +1 -0
  161. package/dist/{@openzeppelin/contracts/proxy/Proxy.d.ts → contracts/upgrade/UpgradeBeaconProxy.d.ts} +5 -5
  162. package/dist/contracts/upgrade/UpgradeBeaconProxy.d.ts.map +1 -0
  163. package/dist/contracts/upgrade/UpgradeBeaconProxy.js +4 -0
  164. package/dist/contracts/upgrade/UpgradeBeaconProxy.js.map +1 -0
  165. package/dist/contracts/upgrade/index.d.ts +3 -0
  166. package/dist/contracts/upgrade/index.d.ts.map +1 -1
  167. package/dist/contracts/validator-manager/InboxValidatorManager.d.ts +263 -0
  168. package/dist/contracts/validator-manager/InboxValidatorManager.d.ts.map +1 -0
  169. package/dist/contracts/validator-manager/InboxValidatorManager.js +4 -0
  170. package/dist/contracts/validator-manager/InboxValidatorManager.js.map +1 -0
  171. package/dist/contracts/validator-manager/MultisigValidatorManager.d.ts +239 -0
  172. package/dist/contracts/validator-manager/MultisigValidatorManager.d.ts.map +1 -0
  173. package/dist/contracts/validator-manager/MultisigValidatorManager.js +4 -0
  174. package/dist/contracts/validator-manager/MultisigValidatorManager.js.map +1 -0
  175. package/dist/contracts/validator-manager/OutboxValidatorManager.d.ts +335 -0
  176. package/dist/contracts/validator-manager/OutboxValidatorManager.d.ts.map +1 -0
  177. package/dist/contracts/validator-manager/OutboxValidatorManager.js +4 -0
  178. package/dist/contracts/validator-manager/OutboxValidatorManager.js.map +1 -0
  179. package/dist/contracts/validator-manager/index.d.ts +4 -0
  180. package/dist/contracts/validator-manager/index.d.ts.map +1 -0
  181. package/dist/{@openzeppelin/contracts/proxy/beacon → contracts/validator-manager}/index.js +0 -0
  182. package/dist/contracts/validator-manager/index.js.map +1 -0
  183. package/dist/factories/@openzeppelin/contracts/index.d.ts +0 -2
  184. package/dist/factories/@openzeppelin/contracts/index.d.ts.map +1 -1
  185. package/dist/factories/@openzeppelin/contracts/index.js +1 -3
  186. package/dist/factories/@openzeppelin/contracts/index.js.map +1 -1
  187. package/dist/factories/@openzeppelin/contracts-upgradeable/index.d.ts +1 -0
  188. package/dist/factories/@openzeppelin/contracts-upgradeable/index.d.ts.map +1 -1
  189. package/dist/factories/@openzeppelin/contracts-upgradeable/index.js +2 -1
  190. package/dist/factories/@openzeppelin/contracts-upgradeable/index.js.map +1 -1
  191. package/dist/factories/@openzeppelin/{contracts/proxy/ERC1967/ERC1967Upgrade__factory.d.ts → contracts-upgradeable/security/ReentrancyGuardUpgradeable__factory.d.ts} +5 -5
  192. package/dist/factories/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable__factory.d.ts.map +1 -0
  193. package/dist/factories/{contracts/PausableReentrancyGuard.sol/PausableReentrancyGuardUpgradeable__factory.js → @openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable__factory.js} +5 -5
  194. package/dist/factories/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable__factory.js.map +1 -0
  195. package/dist/factories/@openzeppelin/contracts-upgradeable/security/index.d.ts +2 -0
  196. package/dist/factories/@openzeppelin/contracts-upgradeable/security/index.d.ts.map +1 -0
  197. package/dist/factories/@openzeppelin/contracts-upgradeable/security/index.js +9 -0
  198. package/dist/factories/@openzeppelin/contracts-upgradeable/security/index.js.map +1 -0
  199. package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable__factory.d.ts +1 -1
  200. package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable__factory.d.ts.map +1 -1
  201. package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable__factory.js +1 -1
  202. package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable__factory.js.map +1 -1
  203. package/dist/factories/contracts/{HyperlaneConnectionClient__factory.d.ts → AbacusConnectionClient__factory.d.ts} +5 -5
  204. package/dist/factories/contracts/AbacusConnectionClient__factory.d.ts.map +1 -0
  205. package/dist/factories/contracts/{HyperlaneConnectionClient__factory.js → AbacusConnectionClient__factory.js} +22 -61
  206. package/dist/factories/contracts/AbacusConnectionClient__factory.js.map +1 -0
  207. package/dist/factories/contracts/AbacusConnectionManager__factory.d.ts +55 -0
  208. package/dist/factories/contracts/AbacusConnectionManager__factory.d.ts.map +1 -0
  209. package/dist/factories/contracts/AbacusConnectionManager__factory.js +276 -0
  210. package/dist/factories/contracts/AbacusConnectionManager__factory.js.map +1 -0
  211. package/dist/factories/contracts/Create2Factory__factory.d.ts +1 -1
  212. package/dist/factories/contracts/Create2Factory__factory.js +1 -1
  213. package/dist/factories/contracts/Inbox__factory.d.ts +59 -0
  214. package/dist/factories/contracts/Inbox__factory.d.ts.map +1 -0
  215. package/dist/factories/contracts/Inbox__factory.js +278 -0
  216. package/dist/factories/contracts/Inbox__factory.js.map +1 -0
  217. package/dist/factories/contracts/InterchainGasPaymaster__factory.d.ts +1 -1
  218. package/dist/factories/contracts/InterchainGasPaymaster__factory.d.ts.map +1 -1
  219. package/dist/factories/contracts/InterchainGasPaymaster__factory.js +14 -19
  220. package/dist/factories/contracts/InterchainGasPaymaster__factory.js.map +1 -1
  221. package/dist/factories/contracts/Mailbox__factory.d.ts +13 -29
  222. package/dist/factories/contracts/Mailbox__factory.d.ts.map +1 -1
  223. package/dist/factories/contracts/Mailbox__factory.js +10 -327
  224. package/dist/factories/contracts/Mailbox__factory.js.map +1 -1
  225. package/dist/factories/contracts/MerkleTreeManager__factory.d.ts +31 -0
  226. package/dist/factories/contracts/MerkleTreeManager__factory.d.ts.map +1 -0
  227. package/dist/factories/contracts/MerkleTreeManager__factory.js +67 -0
  228. package/dist/factories/contracts/MerkleTreeManager__factory.js.map +1 -0
  229. package/dist/factories/contracts/Outbox__factory.d.ts +59 -0
  230. package/dist/factories/contracts/Outbox__factory.d.ts.map +1 -0
  231. package/dist/factories/contracts/Outbox__factory.js +415 -0
  232. package/dist/factories/contracts/Outbox__factory.js.map +1 -0
  233. package/dist/factories/contracts/OwnableMulticall__factory.d.ts +1 -1
  234. package/dist/factories/contracts/OwnableMulticall__factory.d.ts.map +1 -1
  235. package/dist/factories/contracts/OwnableMulticall__factory.js +1 -8
  236. package/dist/factories/contracts/OwnableMulticall__factory.js.map +1 -1
  237. package/dist/factories/contracts/Router__factory.d.ts.map +1 -1
  238. package/dist/factories/contracts/Router__factory.js +26 -65
  239. package/dist/factories/contracts/Router__factory.js.map +1 -1
  240. package/dist/factories/contracts/index.d.ts +6 -3
  241. package/dist/factories/contracts/index.d.ts.map +1 -1
  242. package/dist/factories/contracts/index.js +12 -5
  243. package/dist/factories/contracts/index.js.map +1 -1
  244. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts +2 -9
  245. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts.map +1 -1
  246. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.js +36 -80
  247. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.js.map +1 -1
  248. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.d.ts +1 -1
  249. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.d.ts.map +1 -1
  250. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.js +39 -85
  251. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.js.map +1 -1
  252. package/dist/factories/contracts/middleware/V2CompatibilityRouter__factory.d.ts +48 -0
  253. package/dist/factories/contracts/middleware/V2CompatibilityRouter__factory.d.ts.map +1 -0
  254. package/dist/factories/contracts/middleware/V2CompatibilityRouter__factory.js +389 -0
  255. package/dist/factories/contracts/middleware/V2CompatibilityRouter__factory.js.map +1 -0
  256. package/dist/factories/contracts/middleware/index.d.ts +1 -0
  257. package/dist/factories/contracts/middleware/index.d.ts.map +1 -1
  258. package/dist/factories/contracts/middleware/index.js +3 -1
  259. package/dist/factories/contracts/middleware/index.js.map +1 -1
  260. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.d.ts +1 -1
  261. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.d.ts.map +1 -1
  262. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.js +34 -79
  263. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.js.map +1 -1
  264. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.d.ts +1 -1
  265. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.d.ts.map +1 -1
  266. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.js +32 -71
  267. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.js.map +1 -1
  268. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.d.ts +48 -0
  269. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.d.ts.map +1 -0
  270. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.js +558 -0
  271. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.js.map +1 -0
  272. package/dist/factories/contracts/middleware/liquidity-layer/adapters/index.d.ts +1 -0
  273. package/dist/factories/contracts/middleware/liquidity-layer/adapters/index.d.ts.map +1 -1
  274. package/dist/factories/contracts/middleware/liquidity-layer/adapters/index.js +3 -1
  275. package/dist/factories/contracts/middleware/liquidity-layer/adapters/index.js.map +1 -1
  276. package/dist/factories/{interfaces → contracts/middleware/liquidity-layer/interfaces}/ILiquidityLayerMessageRecipient__factory.d.ts +1 -1
  277. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerMessageRecipient__factory.d.ts.map +1 -0
  278. package/dist/factories/{interfaces → contracts/middleware/liquidity-layer/interfaces}/ILiquidityLayerMessageRecipient__factory.js +0 -0
  279. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerMessageRecipient__factory.js.map +1 -0
  280. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/circle/{ICircleBridge__factory.d.ts → ITokenMessenger__factory.d.ts} +5 -5
  281. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/circle/ITokenMessenger__factory.d.ts.map +1 -0
  282. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/circle/{ICircleBridge__factory.js → ITokenMessenger__factory.js} +5 -5
  283. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/circle/ITokenMessenger__factory.js.map +1 -0
  284. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/circle/index.d.ts +1 -1
  285. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/circle/index.d.ts.map +1 -1
  286. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/circle/index.js +3 -3
  287. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/circle/index.js.map +1 -1
  288. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/index.d.ts +2 -0
  289. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/index.d.ts.map +1 -1
  290. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/index.js +4 -1
  291. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/index.js.map +1 -1
  292. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge__factory.d.ts +56 -0
  293. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge__factory.d.ts.map +1 -0
  294. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge__factory.js +204 -0
  295. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge__factory.js.map +1 -0
  296. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/portal/index.d.ts +2 -0
  297. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/portal/index.d.ts.map +1 -0
  298. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/portal/index.js +9 -0
  299. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/portal/index.js.map +1 -0
  300. package/dist/factories/contracts/mock/MockCircleBridge__factory.d.ts +1 -1
  301. package/dist/factories/contracts/mock/MockCircleBridge__factory.js +1 -1
  302. package/dist/factories/contracts/mock/MockCircleMessageTransmitter__factory.d.ts +1 -1
  303. package/dist/factories/contracts/mock/MockCircleMessageTransmitter__factory.js +1 -1
  304. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts +1 -1
  305. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts.map +1 -1
  306. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js +26 -7
  307. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js.map +1 -1
  308. package/dist/factories/contracts/mock/MockInbox__factory.d.ts +31 -0
  309. package/dist/factories/contracts/mock/MockInbox__factory.d.ts.map +1 -0
  310. package/dist/factories/contracts/mock/MockInbox__factory.js +76 -0
  311. package/dist/factories/contracts/mock/MockInbox__factory.js.map +1 -0
  312. package/dist/factories/contracts/mock/MockInterchainAccountRouter__factory.d.ts +1 -1
  313. package/dist/factories/contracts/mock/MockInterchainAccountRouter__factory.d.ts.map +1 -1
  314. package/dist/factories/contracts/mock/MockInterchainAccountRouter__factory.js +5 -307
  315. package/dist/factories/contracts/mock/MockInterchainAccountRouter__factory.js.map +1 -1
  316. package/dist/factories/contracts/mock/MockOutbox__factory.d.ts +45 -0
  317. package/dist/factories/contracts/mock/MockOutbox__factory.d.ts.map +1 -0
  318. package/dist/factories/contracts/mock/MockOutbox__factory.js +86 -0
  319. package/dist/factories/contracts/mock/MockOutbox__factory.js.map +1 -0
  320. package/dist/factories/contracts/mock/MockPortalBridge__factory.d.ts +79 -0
  321. package/dist/factories/contracts/mock/MockPortalBridge__factory.d.ts.map +1 -0
  322. package/dist/factories/contracts/mock/MockPortalBridge__factory.js +296 -0
  323. package/dist/factories/contracts/mock/MockPortalBridge__factory.js.map +1 -0
  324. package/dist/factories/contracts/mock/MockToken__factory.d.ts +1 -1
  325. package/dist/factories/contracts/mock/MockToken__factory.d.ts.map +1 -1
  326. package/dist/factories/contracts/mock/MockToken__factory.js +1 -1
  327. package/dist/factories/contracts/mock/MockToken__factory.js.map +1 -1
  328. package/dist/factories/contracts/mock/index.d.ts +3 -1
  329. package/dist/factories/contracts/mock/index.d.ts.map +1 -1
  330. package/dist/factories/contracts/mock/index.js +7 -3
  331. package/dist/factories/contracts/mock/index.js.map +1 -1
  332. package/dist/factories/contracts/test/MysteryMathV1__factory.d.ts +41 -0
  333. package/dist/factories/contracts/test/MysteryMathV1__factory.d.ts.map +1 -0
  334. package/dist/factories/contracts/test/MysteryMathV1__factory.js +122 -0
  335. package/dist/factories/contracts/test/MysteryMathV1__factory.js.map +1 -0
  336. package/dist/factories/contracts/test/MysteryMathV2__factory.d.ts +41 -0
  337. package/dist/factories/contracts/test/MysteryMathV2__factory.d.ts.map +1 -0
  338. package/dist/factories/contracts/test/MysteryMathV2__factory.js +122 -0
  339. package/dist/factories/contracts/test/MysteryMathV2__factory.js.map +1 -0
  340. package/dist/factories/{interfaces/IMultisigIsm__factory.d.ts → contracts/test/MysteryMath__factory.d.ts} +5 -5
  341. package/dist/factories/contracts/test/MysteryMath__factory.d.ts.map +1 -0
  342. package/dist/factories/contracts/test/MysteryMath__factory.js +81 -0
  343. package/dist/factories/contracts/test/MysteryMath__factory.js.map +1 -0
  344. package/dist/factories/contracts/test/TestAbacusConnectionClient__factory.d.ts +48 -0
  345. package/dist/factories/contracts/test/TestAbacusConnectionClient__factory.d.ts.map +1 -0
  346. package/dist/factories/contracts/test/TestAbacusConnectionClient__factory.js +242 -0
  347. package/dist/factories/contracts/test/TestAbacusConnectionClient__factory.js.map +1 -0
  348. package/dist/factories/contracts/test/TestInbox__factory.d.ts +59 -0
  349. package/dist/factories/contracts/test/TestInbox__factory.d.ts.map +1 -0
  350. package/dist/factories/contracts/test/TestInbox__factory.js +371 -0
  351. package/dist/factories/contracts/test/TestInbox__factory.js.map +1 -0
  352. package/dist/factories/contracts/test/TestLiquidityLayerMessageRecipient__factory.d.ts +1 -1
  353. package/dist/factories/contracts/test/TestLiquidityLayerMessageRecipient__factory.js +1 -1
  354. package/dist/factories/contracts/test/TestMailbox__factory.d.ts +8 -1
  355. package/dist/factories/contracts/test/TestMailbox__factory.d.ts.map +1 -1
  356. package/dist/factories/contracts/test/TestMailbox__factory.js +11 -322
  357. package/dist/factories/contracts/test/TestMailbox__factory.js.map +1 -1
  358. package/dist/factories/contracts/test/TestMerkle__factory.d.ts +1 -1
  359. package/dist/factories/contracts/test/TestMerkle__factory.js +1 -1
  360. package/dist/factories/contracts/test/TestMessage__factory.d.ts +1 -1
  361. package/dist/factories/contracts/test/TestMessage__factory.d.ts.map +1 -1
  362. package/dist/factories/contracts/test/TestMessage__factory.js +7 -40
  363. package/dist/factories/contracts/test/TestMessage__factory.js.map +1 -1
  364. package/dist/factories/contracts/test/TestMultisigValidatorManager__factory.d.ts +59 -0
  365. package/dist/factories/contracts/test/TestMultisigValidatorManager__factory.d.ts.map +1 -0
  366. package/dist/factories/contracts/test/TestMultisigValidatorManager__factory.js +349 -0
  367. package/dist/factories/contracts/test/TestMultisigValidatorManager__factory.js.map +1 -0
  368. package/dist/factories/contracts/test/TestOutbox__factory.d.ts +59 -0
  369. package/dist/factories/contracts/test/TestOutbox__factory.d.ts.map +1 -0
  370. package/dist/factories/contracts/test/TestOutbox__factory.js +483 -0
  371. package/dist/factories/contracts/test/TestOutbox__factory.js.map +1 -0
  372. package/dist/factories/contracts/test/TestQuerySender__factory.d.ts +1 -1
  373. package/dist/factories/contracts/test/TestQuerySender__factory.d.ts.map +1 -1
  374. package/dist/factories/contracts/test/TestQuerySender__factory.js +1 -1
  375. package/dist/factories/contracts/test/TestQuerySender__factory.js.map +1 -1
  376. package/dist/factories/contracts/test/TestQuery__factory.d.ts +1 -1
  377. package/dist/factories/contracts/test/TestQuery__factory.js +1 -1
  378. package/dist/factories/contracts/test/TestRecipient__factory.d.ts +1 -1
  379. package/dist/factories/contracts/test/TestRecipient__factory.js +1 -1
  380. package/dist/factories/contracts/test/TestRouter__factory.d.ts +1 -1
  381. package/dist/factories/contracts/test/TestRouter__factory.d.ts.map +1 -1
  382. package/dist/factories/contracts/test/TestRouter__factory.js +34 -83
  383. package/dist/factories/contracts/test/TestRouter__factory.js.map +1 -1
  384. package/dist/factories/contracts/test/TestSendReceiver__factory.d.ts +1 -12
  385. package/dist/factories/contracts/test/TestSendReceiver__factory.d.ts.map +1 -1
  386. package/dist/factories/contracts/test/TestSendReceiver__factory.js +3 -16
  387. package/dist/factories/contracts/test/TestSendReceiver__factory.js.map +1 -1
  388. package/dist/factories/contracts/test/TestTokenRecipient__factory.d.ts +1 -1
  389. package/dist/factories/contracts/test/TestTokenRecipient__factory.js +1 -1
  390. package/dist/factories/contracts/test/TestValidatorManager__factory.d.ts +31 -0
  391. package/dist/factories/contracts/test/TestValidatorManager__factory.d.ts.map +1 -0
  392. package/dist/factories/contracts/test/TestValidatorManager__factory.js +79 -0
  393. package/dist/factories/contracts/test/TestValidatorManager__factory.js.map +1 -0
  394. package/dist/factories/contracts/test/bad-recipient/BadRecipient1__factory.d.ts +1 -1
  395. package/dist/factories/contracts/test/bad-recipient/BadRecipient1__factory.js +1 -1
  396. package/dist/factories/contracts/test/bad-recipient/BadRecipient2__factory.d.ts +1 -1
  397. package/dist/factories/contracts/test/bad-recipient/BadRecipient2__factory.js +1 -1
  398. package/dist/factories/contracts/test/bad-recipient/BadRecipient3__factory.d.ts +1 -1
  399. package/dist/factories/contracts/test/bad-recipient/BadRecipient3__factory.js +1 -1
  400. package/dist/factories/contracts/test/bad-recipient/BadRecipient5__factory.d.ts +1 -1
  401. package/dist/factories/contracts/test/bad-recipient/BadRecipient5__factory.js +1 -1
  402. package/dist/factories/contracts/test/bad-recipient/BadRecipient6__factory.d.ts +1 -1
  403. package/dist/factories/contracts/test/bad-recipient/BadRecipient6__factory.js +1 -1
  404. package/dist/factories/contracts/test/index.d.ts +8 -3
  405. package/dist/factories/contracts/test/index.d.ts.map +1 -1
  406. package/dist/factories/contracts/test/index.js +17 -7
  407. package/dist/factories/contracts/test/index.js.map +1 -1
  408. package/dist/factories/contracts/upgrade/UpgradeBeaconController__factory.d.ts +55 -0
  409. package/dist/factories/contracts/upgrade/UpgradeBeaconController__factory.d.ts.map +1 -0
  410. package/dist/factories/contracts/upgrade/UpgradeBeaconController__factory.js +130 -0
  411. package/dist/factories/contracts/upgrade/UpgradeBeaconController__factory.js.map +1 -0
  412. package/dist/factories/contracts/upgrade/UpgradeBeaconProxy__factory.d.ts +33 -0
  413. package/dist/factories/contracts/upgrade/UpgradeBeaconProxy__factory.d.ts.map +1 -0
  414. package/dist/factories/contracts/upgrade/UpgradeBeaconProxy__factory.js +65 -0
  415. package/dist/factories/contracts/upgrade/UpgradeBeaconProxy__factory.js.map +1 -0
  416. package/dist/factories/contracts/upgrade/UpgradeBeacon__factory.d.ts +48 -0
  417. package/dist/factories/contracts/upgrade/UpgradeBeacon__factory.d.ts.map +1 -0
  418. package/dist/factories/contracts/upgrade/UpgradeBeacon__factory.js +74 -0
  419. package/dist/factories/contracts/upgrade/UpgradeBeacon__factory.js.map +1 -0
  420. package/dist/factories/contracts/upgrade/Versioned__factory.d.ts +1 -1
  421. package/dist/factories/contracts/upgrade/Versioned__factory.js +1 -1
  422. package/dist/factories/contracts/upgrade/index.d.ts +3 -0
  423. package/dist/factories/contracts/upgrade/index.d.ts.map +1 -1
  424. package/dist/factories/contracts/upgrade/index.js +7 -1
  425. package/dist/factories/contracts/upgrade/index.js.map +1 -1
  426. package/dist/factories/contracts/validator-manager/InboxValidatorManager__factory.d.ts +59 -0
  427. package/dist/factories/contracts/validator-manager/InboxValidatorManager__factory.d.ts.map +1 -0
  428. package/dist/factories/contracts/validator-manager/InboxValidatorManager__factory.js +373 -0
  429. package/dist/factories/contracts/validator-manager/InboxValidatorManager__factory.js.map +1 -0
  430. package/dist/factories/contracts/validator-manager/MultisigValidatorManager__factory.d.ts +36 -0
  431. package/dist/factories/contracts/validator-manager/MultisigValidatorManager__factory.d.ts.map +1 -0
  432. package/dist/factories/contracts/validator-manager/MultisigValidatorManager__factory.js +286 -0
  433. package/dist/factories/contracts/validator-manager/MultisigValidatorManager__factory.js.map +1 -0
  434. package/dist/factories/contracts/validator-manager/OutboxValidatorManager__factory.d.ts +59 -0
  435. package/dist/factories/contracts/validator-manager/OutboxValidatorManager__factory.d.ts.map +1 -0
  436. package/dist/factories/contracts/validator-manager/OutboxValidatorManager__factory.js +560 -0
  437. package/dist/factories/contracts/validator-manager/OutboxValidatorManager__factory.js.map +1 -0
  438. package/dist/factories/contracts/validator-manager/index.d.ts +4 -0
  439. package/dist/factories/contracts/validator-manager/index.d.ts.map +1 -0
  440. package/dist/factories/contracts/validator-manager/index.js +13 -0
  441. package/dist/factories/contracts/validator-manager/index.js.map +1 -0
  442. package/dist/factories/interfaces/{IInterchainSecurityModule.sol/IInterchainSecurityModule__factory.d.ts → IAbacusConnectionManager__factory.d.ts} +5 -5
  443. package/dist/factories/interfaces/IAbacusConnectionManager__factory.d.ts.map +1 -0
  444. package/dist/factories/interfaces/IAbacusConnectionManager__factory.js +63 -0
  445. package/dist/factories/interfaces/IAbacusConnectionManager__factory.js.map +1 -0
  446. package/dist/factories/interfaces/IInbox__factory.d.ts +29 -0
  447. package/dist/factories/interfaces/IInbox__factory.d.ts.map +1 -0
  448. package/dist/factories/interfaces/{IMultisigIsm__factory.js → IInbox__factory.js} +43 -57
  449. package/dist/factories/interfaces/IInbox__factory.js.map +1 -0
  450. package/dist/factories/interfaces/IInterchainAccountRouter__factory.js +4 -4
  451. package/dist/factories/interfaces/IInterchainGasPaymaster__factory.d.ts.map +1 -1
  452. package/dist/factories/interfaces/IInterchainGasPaymaster__factory.js +8 -13
  453. package/dist/factories/interfaces/IInterchainGasPaymaster__factory.js.map +1 -1
  454. package/dist/factories/interfaces/IInterchainQueryRouter__factory.js +6 -6
  455. package/dist/factories/interfaces/IMailbox__factory.d.ts +1 -5
  456. package/dist/factories/interfaces/IMailbox__factory.d.ts.map +1 -1
  457. package/dist/factories/interfaces/IMailbox__factory.js +3 -81
  458. package/dist/factories/interfaces/IMailbox__factory.js.map +1 -1
  459. package/dist/factories/{@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable__factory.d.ts → interfaces/IMultisigValidatorManager__factory.d.ts} +5 -5
  460. package/dist/factories/interfaces/IMultisigValidatorManager__factory.d.ts.map +1 -0
  461. package/dist/factories/interfaces/IMultisigValidatorManager__factory.js +57 -0
  462. package/dist/factories/interfaces/IMultisigValidatorManager__factory.js.map +1 -0
  463. package/dist/factories/interfaces/{ILiquidityLayerRouter__factory.d.ts → IOutbox__factory.d.ts} +5 -5
  464. package/dist/factories/interfaces/IOutbox__factory.d.ts.map +1 -0
  465. package/dist/factories/interfaces/IOutbox__factory.js +155 -0
  466. package/dist/factories/interfaces/IOutbox__factory.js.map +1 -0
  467. package/dist/factories/interfaces/index.d.ts +4 -4
  468. package/dist/factories/interfaces/index.d.ts.map +1 -1
  469. package/dist/factories/interfaces/index.js +9 -31
  470. package/dist/factories/interfaces/index.js.map +1 -1
  471. package/dist/index.d.ts +64 -40
  472. package/dist/index.d.ts.map +1 -1
  473. package/dist/index.js +66 -42
  474. package/dist/index.js.map +1 -1
  475. package/dist/interfaces/IAbacusConnectionManager.d.ts +59 -0
  476. package/dist/interfaces/IAbacusConnectionManager.d.ts.map +1 -0
  477. package/dist/interfaces/IAbacusConnectionManager.js +4 -0
  478. package/dist/interfaces/IAbacusConnectionManager.js.map +1 -0
  479. package/dist/interfaces/IInbox.d.ts +83 -0
  480. package/dist/interfaces/IInbox.d.ts.map +1 -0
  481. package/dist/{@openzeppelin/contracts/proxy/index.js → interfaces/IInbox.js} +1 -1
  482. package/dist/interfaces/IInbox.js.map +1 -0
  483. package/dist/interfaces/IInterchainAccountRouter.d.ts +2 -2
  484. package/dist/interfaces/IInterchainAccountRouter.d.ts.map +1 -1
  485. package/dist/interfaces/IInterchainGasPaymaster.d.ts +9 -9
  486. package/dist/interfaces/IInterchainGasPaymaster.d.ts.map +1 -1
  487. package/dist/interfaces/IInterchainQueryRouter.d.ts +3 -3
  488. package/dist/interfaces/IInterchainQueryRouter.d.ts.map +1 -1
  489. package/dist/interfaces/IMailbox.d.ts +10 -58
  490. package/dist/interfaces/IMailbox.d.ts.map +1 -1
  491. package/dist/interfaces/IMultisigValidatorManager.d.ts +59 -0
  492. package/dist/interfaces/IMultisigValidatorManager.d.ts.map +1 -0
  493. package/dist/interfaces/IMultisigValidatorManager.js +4 -0
  494. package/dist/interfaces/IMultisigValidatorManager.js.map +1 -0
  495. package/dist/interfaces/IOutbox.d.ts +148 -0
  496. package/dist/interfaces/IOutbox.d.ts.map +1 -0
  497. package/dist/{@openzeppelin/contracts/proxy/beacon/IBeacon.js → interfaces/IOutbox.js} +1 -1
  498. package/dist/interfaces/IOutbox.js.map +1 -0
  499. package/dist/interfaces/index.d.ts +4 -5
  500. package/dist/interfaces/index.d.ts.map +1 -1
  501. package/dist/interfaces/index.js +0 -1
  502. package/dist/interfaces/index.js.map +1 -1
  503. package/interfaces/IInterchainSecurityModule.sol +15 -1
  504. package/interfaces/IMailbox.sol +7 -0
  505. package/interfaces/IMultisigIsm.sol +10 -9
  506. package/package.json +4 -3
  507. package/dist/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.d.ts +0 -43
  508. package/dist/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.d.ts.map +0 -1
  509. package/dist/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.js.map +0 -1
  510. package/dist/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.d.ts +0 -2
  511. package/dist/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.d.ts.map +0 -1
  512. package/dist/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.js.map +0 -1
  513. package/dist/@openzeppelin/contracts/interfaces/index.d.ts +0 -3
  514. package/dist/@openzeppelin/contracts/interfaces/index.d.ts.map +0 -1
  515. package/dist/@openzeppelin/contracts/interfaces/index.js.map +0 -1
  516. package/dist/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.d.ts +0 -64
  517. package/dist/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.d.ts.map +0 -1
  518. package/dist/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.js.map +0 -1
  519. package/dist/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.d.ts +0 -64
  520. package/dist/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.d.ts.map +0 -1
  521. package/dist/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.js.map +0 -1
  522. package/dist/@openzeppelin/contracts/proxy/ERC1967/index.d.ts +0 -3
  523. package/dist/@openzeppelin/contracts/proxy/ERC1967/index.d.ts.map +0 -1
  524. package/dist/@openzeppelin/contracts/proxy/ERC1967/index.js.map +0 -1
  525. package/dist/@openzeppelin/contracts/proxy/Proxy.d.ts.map +0 -1
  526. package/dist/@openzeppelin/contracts/proxy/Proxy.js.map +0 -1
  527. package/dist/@openzeppelin/contracts/proxy/beacon/IBeacon.d.ts +0 -43
  528. package/dist/@openzeppelin/contracts/proxy/beacon/IBeacon.d.ts.map +0 -1
  529. package/dist/@openzeppelin/contracts/proxy/beacon/IBeacon.js.map +0 -1
  530. package/dist/@openzeppelin/contracts/proxy/beacon/index.d.ts +0 -2
  531. package/dist/@openzeppelin/contracts/proxy/beacon/index.d.ts.map +0 -1
  532. package/dist/@openzeppelin/contracts/proxy/beacon/index.js.map +0 -1
  533. package/dist/@openzeppelin/contracts/proxy/index.d.ts +0 -8
  534. package/dist/@openzeppelin/contracts/proxy/index.d.ts.map +0 -1
  535. package/dist/@openzeppelin/contracts/proxy/index.js.map +0 -1
  536. package/dist/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.d.ts.map +0 -1
  537. package/dist/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.js +0 -4
  538. package/dist/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.js.map +0 -1
  539. package/dist/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.d.ts +0 -150
  540. package/dist/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.d.ts.map +0 -1
  541. package/dist/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.js +0 -4
  542. package/dist/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.js.map +0 -1
  543. package/dist/@openzeppelin/contracts/proxy/transparent/index.d.ts +0 -3
  544. package/dist/@openzeppelin/contracts/proxy/transparent/index.d.ts.map +0 -1
  545. package/dist/@openzeppelin/contracts/proxy/transparent/index.js +0 -3
  546. package/dist/@openzeppelin/contracts/proxy/transparent/index.js.map +0 -1
  547. package/dist/contracts/HyperlaneConnectionClient.d.ts.map +0 -1
  548. package/dist/contracts/HyperlaneConnectionClient.js +0 -4
  549. package/dist/contracts/HyperlaneConnectionClient.js.map +0 -1
  550. package/dist/contracts/PausableReentrancyGuard.sol/PausableReentrancyGuardUpgradeable.d.ts.map +0 -1
  551. package/dist/contracts/PausableReentrancyGuard.sol/PausableReentrancyGuardUpgradeable.js +0 -4
  552. package/dist/contracts/PausableReentrancyGuard.sol/PausableReentrancyGuardUpgradeable.js.map +0 -1
  553. package/dist/contracts/PausableReentrancyGuard.sol/index.d.ts +0 -2
  554. package/dist/contracts/PausableReentrancyGuard.sol/index.d.ts.map +0 -1
  555. package/dist/contracts/PausableReentrancyGuard.sol/index.js +0 -3
  556. package/dist/contracts/PausableReentrancyGuard.sol/index.js.map +0 -1
  557. package/dist/contracts/isms/MultisigIsm.d.ts +0 -274
  558. package/dist/contracts/isms/MultisigIsm.d.ts.map +0 -1
  559. package/dist/contracts/isms/MultisigIsm.js +0 -4
  560. package/dist/contracts/isms/MultisigIsm.js.map +0 -1
  561. package/dist/contracts/isms/index.d.ts +0 -2
  562. package/dist/contracts/isms/index.d.ts.map +0 -1
  563. package/dist/contracts/isms/index.js +0 -3
  564. package/dist/contracts/isms/index.js.map +0 -1
  565. package/dist/contracts/middleware/liquidity-layer/interfaces/circle/ICircleBridge.d.ts.map +0 -1
  566. package/dist/contracts/middleware/liquidity-layer/interfaces/circle/ICircleBridge.js +0 -4
  567. package/dist/contracts/middleware/liquidity-layer/interfaces/circle/ICircleBridge.js.map +0 -1
  568. package/dist/contracts/mock/MockMailbox.d.ts +0 -185
  569. package/dist/contracts/mock/MockMailbox.d.ts.map +0 -1
  570. package/dist/contracts/mock/MockMailbox.js +0 -4
  571. package/dist/contracts/mock/MockMailbox.js.map +0 -1
  572. package/dist/contracts/test/TestHyperlaneConnectionClient.d.ts.map +0 -1
  573. package/dist/contracts/test/TestHyperlaneConnectionClient.js +0 -4
  574. package/dist/contracts/test/TestHyperlaneConnectionClient.js.map +0 -1
  575. package/dist/contracts/test/TestIsm.d.ts +0 -67
  576. package/dist/contracts/test/TestIsm.d.ts.map +0 -1
  577. package/dist/contracts/test/TestIsm.js +0 -4
  578. package/dist/contracts/test/TestIsm.js.map +0 -1
  579. package/dist/contracts/test/TestMultisigIsm.d.ts +0 -290
  580. package/dist/contracts/test/TestMultisigIsm.d.ts.map +0 -1
  581. package/dist/contracts/test/TestMultisigIsm.js +0 -4
  582. package/dist/contracts/test/TestMultisigIsm.js.map +0 -1
  583. package/dist/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable__factory.d.ts.map +0 -1
  584. package/dist/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable__factory.js +0 -31
  585. package/dist/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable__factory.js.map +0 -1
  586. package/dist/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.d.ts +0 -2
  587. package/dist/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.d.ts.map +0 -1
  588. package/dist/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.js +0 -9
  589. package/dist/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.js.map +0 -1
  590. package/dist/factories/@openzeppelin/contracts/interfaces/index.d.ts +0 -2
  591. package/dist/factories/@openzeppelin/contracts/interfaces/index.d.ts.map +0 -1
  592. package/dist/factories/@openzeppelin/contracts/interfaces/index.js +0 -31
  593. package/dist/factories/@openzeppelin/contracts/interfaces/index.js.map +0 -1
  594. package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory.d.ts +0 -48
  595. package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory.d.ts.map +0 -1
  596. package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory.js +0 -110
  597. package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory.js.map +0 -1
  598. package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade__factory.d.ts.map +0 -1
  599. package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade__factory.js +0 -63
  600. package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade__factory.js.map +0 -1
  601. package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/index.d.ts +0 -3
  602. package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/index.d.ts.map +0 -1
  603. package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/index.js +0 -11
  604. package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/index.js.map +0 -1
  605. package/dist/factories/@openzeppelin/contracts/proxy/Proxy__factory.d.ts +0 -12
  606. package/dist/factories/@openzeppelin/contracts/proxy/Proxy__factory.d.ts.map +0 -1
  607. package/dist/factories/@openzeppelin/contracts/proxy/Proxy__factory.js +0 -26
  608. package/dist/factories/@openzeppelin/contracts/proxy/Proxy__factory.js.map +0 -1
  609. package/dist/factories/@openzeppelin/contracts/proxy/beacon/IBeacon__factory.d.ts +0 -19
  610. package/dist/factories/@openzeppelin/contracts/proxy/beacon/IBeacon__factory.d.ts.map +0 -1
  611. package/dist/factories/@openzeppelin/contracts/proxy/beacon/IBeacon__factory.js +0 -31
  612. package/dist/factories/@openzeppelin/contracts/proxy/beacon/IBeacon__factory.js.map +0 -1
  613. package/dist/factories/@openzeppelin/contracts/proxy/beacon/index.d.ts +0 -2
  614. package/dist/factories/@openzeppelin/contracts/proxy/beacon/index.d.ts.map +0 -1
  615. package/dist/factories/@openzeppelin/contracts/proxy/beacon/index.js +0 -9
  616. package/dist/factories/@openzeppelin/contracts/proxy/beacon/index.js.map +0 -1
  617. package/dist/factories/@openzeppelin/contracts/proxy/index.d.ts +0 -5
  618. package/dist/factories/@openzeppelin/contracts/proxy/index.d.ts.map +0 -1
  619. package/dist/factories/@openzeppelin/contracts/proxy/index.js +0 -35
  620. package/dist/factories/@openzeppelin/contracts/proxy/index.js.map +0 -1
  621. package/dist/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.d.ts +0 -48
  622. package/dist/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.d.ts.map +0 -1
  623. package/dist/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.js +0 -190
  624. package/dist/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.js.map +0 -1
  625. package/dist/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy__factory.d.ts +0 -73
  626. package/dist/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy__factory.d.ts.map +0 -1
  627. package/dist/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy__factory.js +0 -185
  628. package/dist/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy__factory.js.map +0 -1
  629. package/dist/factories/@openzeppelin/contracts/proxy/transparent/index.d.ts +0 -3
  630. package/dist/factories/@openzeppelin/contracts/proxy/transparent/index.d.ts.map +0 -1
  631. package/dist/factories/@openzeppelin/contracts/proxy/transparent/index.js +0 -11
  632. package/dist/factories/@openzeppelin/contracts/proxy/transparent/index.js.map +0 -1
  633. package/dist/factories/contracts/HyperlaneConnectionClient__factory.d.ts.map +0 -1
  634. package/dist/factories/contracts/HyperlaneConnectionClient__factory.js.map +0 -1
  635. package/dist/factories/contracts/PausableReentrancyGuard.sol/PausableReentrancyGuardUpgradeable__factory.d.ts +0 -19
  636. package/dist/factories/contracts/PausableReentrancyGuard.sol/PausableReentrancyGuardUpgradeable__factory.d.ts.map +0 -1
  637. package/dist/factories/contracts/PausableReentrancyGuard.sol/PausableReentrancyGuardUpgradeable__factory.js.map +0 -1
  638. package/dist/factories/contracts/PausableReentrancyGuard.sol/index.d.ts +0 -2
  639. package/dist/factories/contracts/PausableReentrancyGuard.sol/index.d.ts.map +0 -1
  640. package/dist/factories/contracts/PausableReentrancyGuard.sol/index.js +0 -9
  641. package/dist/factories/contracts/PausableReentrancyGuard.sol/index.js.map +0 -1
  642. package/dist/factories/contracts/isms/MultisigIsm__factory.d.ts +0 -55
  643. package/dist/factories/contracts/isms/MultisigIsm__factory.d.ts.map +0 -1
  644. package/dist/factories/contracts/isms/MultisigIsm__factory.js +0 -400
  645. package/dist/factories/contracts/isms/MultisigIsm__factory.js.map +0 -1
  646. package/dist/factories/contracts/isms/index.d.ts +0 -2
  647. package/dist/factories/contracts/isms/index.d.ts.map +0 -1
  648. package/dist/factories/contracts/isms/index.js +0 -9
  649. package/dist/factories/contracts/isms/index.js.map +0 -1
  650. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/circle/ICircleBridge__factory.d.ts.map +0 -1
  651. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/circle/ICircleBridge__factory.js.map +0 -1
  652. package/dist/factories/contracts/mock/MockMailbox__factory.d.ts +0 -45
  653. package/dist/factories/contracts/mock/MockMailbox__factory.d.ts.map +0 -1
  654. package/dist/factories/contracts/mock/MockMailbox__factory.js +0 -252
  655. package/dist/factories/contracts/mock/MockMailbox__factory.js.map +0 -1
  656. package/dist/factories/contracts/test/TestHyperlaneConnectionClient__factory.d.ts +0 -55
  657. package/dist/factories/contracts/test/TestHyperlaneConnectionClient__factory.d.ts.map +0 -1
  658. package/dist/factories/contracts/test/TestHyperlaneConnectionClient__factory.js +0 -249
  659. package/dist/factories/contracts/test/TestHyperlaneConnectionClient__factory.js.map +0 -1
  660. package/dist/factories/contracts/test/TestIsm__factory.d.ts +0 -35
  661. package/dist/factories/contracts/test/TestIsm__factory.d.ts.map +0 -1
  662. package/dist/factories/contracts/test/TestIsm__factory.js +0 -91
  663. package/dist/factories/contracts/test/TestIsm__factory.js.map +0 -1
  664. package/dist/factories/contracts/test/TestMultisigIsm__factory.d.ts +0 -48
  665. package/dist/factories/contracts/test/TestMultisigIsm__factory.d.ts.map +0 -1
  666. package/dist/factories/contracts/test/TestMultisigIsm__factory.js +0 -443
  667. package/dist/factories/contracts/test/TestMultisigIsm__factory.js.map +0 -1
  668. package/dist/factories/interfaces/IInterchainSecurityModule.sol/IInterchainSecurityModule__factory.d.ts.map +0 -1
  669. package/dist/factories/interfaces/IInterchainSecurityModule.sol/IInterchainSecurityModule__factory.js +0 -42
  670. package/dist/factories/interfaces/IInterchainSecurityModule.sol/IInterchainSecurityModule__factory.js.map +0 -1
  671. package/dist/factories/interfaces/IInterchainSecurityModule.sol/ISpecifiesInterchainSecurityModule__factory.d.ts +0 -19
  672. package/dist/factories/interfaces/IInterchainSecurityModule.sol/ISpecifiesInterchainSecurityModule__factory.d.ts.map +0 -1
  673. package/dist/factories/interfaces/IInterchainSecurityModule.sol/ISpecifiesInterchainSecurityModule__factory.js +0 -31
  674. package/dist/factories/interfaces/IInterchainSecurityModule.sol/ISpecifiesInterchainSecurityModule__factory.js.map +0 -1
  675. package/dist/factories/interfaces/IInterchainSecurityModule.sol/index.d.ts +0 -3
  676. package/dist/factories/interfaces/IInterchainSecurityModule.sol/index.d.ts.map +0 -1
  677. package/dist/factories/interfaces/IInterchainSecurityModule.sol/index.js +0 -11
  678. package/dist/factories/interfaces/IInterchainSecurityModule.sol/index.js.map +0 -1
  679. package/dist/factories/interfaces/ILiquidityLayerMessageRecipient__factory.d.ts.map +0 -1
  680. package/dist/factories/interfaces/ILiquidityLayerMessageRecipient__factory.js.map +0 -1
  681. package/dist/factories/interfaces/ILiquidityLayerRouter__factory.d.ts.map +0 -1
  682. package/dist/factories/interfaces/ILiquidityLayerRouter__factory.js +0 -62
  683. package/dist/factories/interfaces/ILiquidityLayerRouter__factory.js.map +0 -1
  684. package/dist/factories/interfaces/IMultisigIsm__factory.d.ts.map +0 -1
  685. package/dist/factories/interfaces/IMultisigIsm__factory.js.map +0 -1
  686. package/dist/interfaces/IInterchainSecurityModule.sol/IInterchainSecurityModule.d.ts.map +0 -1
  687. package/dist/interfaces/IInterchainSecurityModule.sol/IInterchainSecurityModule.js +0 -4
  688. package/dist/interfaces/IInterchainSecurityModule.sol/IInterchainSecurityModule.js.map +0 -1
  689. package/dist/interfaces/IInterchainSecurityModule.sol/ISpecifiesInterchainSecurityModule.d.ts +0 -43
  690. package/dist/interfaces/IInterchainSecurityModule.sol/ISpecifiesInterchainSecurityModule.d.ts.map +0 -1
  691. package/dist/interfaces/IInterchainSecurityModule.sol/ISpecifiesInterchainSecurityModule.js +0 -4
  692. package/dist/interfaces/IInterchainSecurityModule.sol/ISpecifiesInterchainSecurityModule.js.map +0 -1
  693. package/dist/interfaces/IInterchainSecurityModule.sol/index.d.ts +0 -3
  694. package/dist/interfaces/IInterchainSecurityModule.sol/index.d.ts.map +0 -1
  695. package/dist/interfaces/IInterchainSecurityModule.sol/index.js +0 -3
  696. package/dist/interfaces/IInterchainSecurityModule.sol/index.js.map +0 -1
  697. package/dist/interfaces/ILiquidityLayerMessageRecipient.d.ts.map +0 -1
  698. package/dist/interfaces/ILiquidityLayerMessageRecipient.js.map +0 -1
  699. package/dist/interfaces/ILiquidityLayerRouter.d.ts +0 -51
  700. package/dist/interfaces/ILiquidityLayerRouter.d.ts.map +0 -1
  701. package/dist/interfaces/ILiquidityLayerRouter.js +0 -4
  702. package/dist/interfaces/ILiquidityLayerRouter.js.map +0 -1
  703. package/dist/interfaces/IMultisigIsm.d.ts +0 -75
  704. package/dist/interfaces/IMultisigIsm.d.ts.map +0 -1
  705. package/dist/interfaces/IMultisigIsm.js +0 -4
  706. package/dist/interfaces/IMultisigIsm.js.map +0 -1
@@ -12,7 +12,7 @@ export declare class MockHyperlaneEnvironment__factory extends ContractFactory {
12
12
  }): TransactionRequest;
13
13
  attach(address: string): MockHyperlaneEnvironment;
14
14
  connect(signer: Signer): MockHyperlaneEnvironment__factory;
15
- static readonly bytecode = "0x608060405234801561001057600080fd5b50604051614b16380380614b1683398101604081905261002f91610675565b6000805463ffffffff838116640100000000026001600160401b031990921690851617178155604051839061006390610628565b63ffffffff9091168152602001604051809103906000f08015801561008c573d6000803e3d6000fd5b50905060008260405161009e90610628565b63ffffffff9091168152602001604051809103906000f0801580156100c7573d6000803e3d6000fd5b506040516302cd9fb760e51b815263ffffffff851660048201526001600160a01b038083166024830152919250908316906359b3f6e090604401600060405180830381600087803b15801561011b57600080fd5b505af115801561012f573d6000803e3d6000fd5b50506040516302cd9fb760e51b815263ffffffff871660048201526001600160a01b038581166024830152841692506359b3f6e09150604401600060405180830381600087803b15801561018257600080fd5b505af1158015610196573d6000803e3d6000fd5b505050506040516101a690610635565b604051809103906000f0801580156101c2573d6000803e3d6000fd5b506000805463ffffffff168152600260205260409081902080546001600160a01b0319166001600160a01b0393909316929092179091555161020390610635565b604051809103906000f08015801561021f573d6000803e3d6000fd5b5060008054640100000000900463ffffffff168152600260205260409081902080546001600160a01b0319166001600160a01b0393909316929092179091555161026890610642565b604051809103906000f080158015610284573d6000803e3d6000fd5b506000805463ffffffff168152600360205260409081902080546001600160a01b0319166001600160a01b039390931692909217909155516102c590610642565b604051809103906000f0801580156102e1573d6000803e3d6000fd5b5060008054640100000000900463ffffffff908116825260036020908152604080842080546001600160a01b03199081166001600160a01b039788161790915589841685526001909252808420805483168887161790559187168352818320805490911693851693909317909255905161035a9061064f565b604051809103906000f080158015610376573d6000803e3d6000fd5b50905060006040516103879061064f565b604051809103906000f0801580156103a3573d6000803e3d6000fd5b506000805463ffffffff1681526002602090815260408083205460039092529182902054915163c0c53b8b60e01b81526001600160a01b038881166004830152918216602482015291811660448301529192509083169063c0c53b8b90606401600060405180830381600087803b15801561041d57600080fd5b505af1158015610431573d6000803e3d6000fd5b505060008054640100000000900463ffffffff1681526002602090815260408083205460039092529182902054915163c0c53b8b60e01b81526001600160a01b038881166004830152918216602482015291811660448301528416925063c0c53b8b9150606401600060405180830381600087803b1580156104b257600080fd5b505af11580156104c6573d6000803e3d6000fd5b50505050816001600160a01b031663b49c53a7866104ed8461061c60201b61029e1760201c565b6040516001600160e01b031960e085901b16815263ffffffff9290921660048301526024820152604401600060405180830381600087803b15801561053157600080fd5b505af1158015610545573d6000803e3d6000fd5b50505050806001600160a01b031663b49c53a78761056c8561061c60201b61029e1760201c565b6040516001600160e01b031960e085901b16815263ffffffff9290921660048301526024820152604401600060405180830381600087803b1580156105b057600080fd5b505af11580156105c4573d6000803e3d6000fd5b5050505063ffffffff95861660009081526004602052604080822080546001600160a01b03199081166001600160a01b0396871617909155969097168152959095208054909416941693909317909155506106a89050565b6001600160a01b031690565b610e2d806109d183390190565b610a55806117fe83390190565b6101f88061225383390190565b6126cb8061244b83390190565b805163ffffffff8116811461067057600080fd5b919050565b6000806040838503121561068857600080fd5b6106918361065c565b915061069f6020840161065c565b90509250929050565b61031a806106b76000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c8063f11a367e11610050578063f11a367e14610142578063f9d2692d14610178578063f9f312ad1461018257600080fd5b80635a007b7e146100775780637a7eada3146100d6578063e9ee46951461010c575b600080fd5b6100ad6100853660046102b7565b60036020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100ad6100e43660046102b7565b60026020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6100ad61011a3660046102b7565b60046020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6100ad6101503660046102b7565b60016020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b61018061018a565b005b61018061021d565b6000805463ffffffff168152600160205260408082205481517f1605c306000000000000000000000000000000000000000000000000000000008152915173ffffffffffffffffffffffffffffffffffffffff90911692631605c306926004808201939182900301818387803b15801561020357600080fd5b505af1158015610217573d6000803e3d6000fd5b50505050565b60008054640100000000900463ffffffff168152600160205260408082205481517f1605c306000000000000000000000000000000000000000000000000000000008152915173ffffffffffffffffffffffffffffffffffffffff90911692631605c306926004808201939182900301818387803b15801561020357600080fd5b73ffffffffffffffffffffffffffffffffffffffff1690565b6000602082840312156102c957600080fd5b813563ffffffff811681146102dd57600080fd5b939250505056fea2646970667358221220a07c9079c93087151b354b30b7bf8ab6829d537d90c64aafd33a20e57c0b81c764736f6c6343000811003360c0604052600060a0819052808055600181905560025534801561002257600080fd5b50604051610e2d380380610e2d8339810160408190526100419161004f565b63ffffffff1660805261007c565b60006020828403121561006157600080fd5b815163ffffffff8116811461007557600080fd5b9392505050565b60805160a051610d866100a7600039600060dd01526000818161022f01526107500152610d866000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c806392d28b3d11610081578063d12164e41161005b578063d12164e414610251578063fa31de011461025a578063fd10ebe51461026d57600080fd5b806392d28b3d146101ac578063a3b4919f146101cf578063c2fb26a61461022a57600080fd5b806359b3f6e0116100b257806359b3f6e0146101195780638209d31214610182578063924324aa1461019957600080fd5b80631605c306146100ce57806354fd4d50146100d8575b600080fd5b6100d6610276565b005b6100ff7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020015b60405180910390f35b6100d6610127366004610811565b63ffffffff91909116600090815260036020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055565b61018b60015481565b604051908152602001610110565b6100d66101a7366004610891565b61043a565b6101bf6101ba36600461090b565b610599565b6040516101109493929190610988565b6102056101dd3660046109d7565b60036020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610110565b6100ff7f000000000000000000000000000000000000000000000000000000000000000081565b61018b60025481565b61018b6102683660046109f9565b61066f565b61018b60005481565b6002805460009081526004602090815260408083208151608081018352815463ffffffff8116825273ffffffffffffffffffffffffffffffffffffffff6401000000009091048116948201949094526001820154909316918301919091529283018054929391926060840191906102ec90610a53565b80601f016020809104026020016040519081016040528092919081815260200182805461031890610a53565b80156103655780601f1061033a57610100808354040283529160200191610365565b820191906000526020600020905b81548152906001019060200180831161034857829003601f168201915b5050505050815250509050806040015173ffffffffffffffffffffffffffffffffffffffff166356d5d47582600001516103cc846020015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1690565b84606001516040518463ffffffff1660e01b81526004016103ef93929190610aa6565b600060405180830381600087803b15801561040957600080fd5b505af115801561041d573d6000803e3d6000fd5b50506002805492509050600061043283610ad4565b919050555050565b60405180608001604052808663ffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff16815260200183838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525093909452505060018054825260046020908152604092839020855181549287015163ffffffff9091167fffffffffffffffff0000000000000000000000000000000000000000000000009093169290921764010000000073ffffffffffffffffffffffffffffffffffffffff938416021781559285015191830180547fffffffffffffffffffffffff000000000000000000000000000000000000000016929091169190911790556060830151909150600282019061057a9082610bb1565b5050600180549150600061058d83610ad4565b91905055505050505050565b60046020526000908152604090208054600182015460028301805463ffffffff84169464010000000090940473ffffffffffffffffffffffffffffffffffffffff9081169493169291906105ec90610a53565b80601f016020809104026020016040519081016040528092919081815260200182805461061890610a53565b80156106655780601f1061063a57610100808354040283529160200191610665565b820191906000526020600020905b81548152906001019060200180831161064857829003601f168201915b5050505050905084565b63ffffffff841660009081526003602052604081205473ffffffffffffffffffffffffffffffffffffffff1680610706576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d697373696e672072656d6f7465206d61696c626f7800000000000000000000604482015260640160405180910390fd5b6040517f924324aa00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063924324aa90610780907f00000000000000000000000000000000000000000000000000000000000000009033908a908a908a90600401610ccb565b600060405180830381600087803b15801561079a57600080fd5b505af11580156107ae573d6000803e3d6000fd5b50506000805492509050806107c283610ad4565b909155506000979650505050505050565b803563ffffffff811681146107e757600080fd5b919050565b73ffffffffffffffffffffffffffffffffffffffff8116811461080e57600080fd5b50565b6000806040838503121561082457600080fd5b61082d836107d3565b9150602083013561083d816107ec565b809150509250929050565b60008083601f84011261085a57600080fd5b50813567ffffffffffffffff81111561087257600080fd5b60208301915083602082850101111561088a57600080fd5b9250929050565b6000806000806000608086880312156108a957600080fd5b6108b2866107d3565b945060208601356108c2816107ec565b935060408601356108d2816107ec565b9250606086013567ffffffffffffffff8111156108ee57600080fd5b6108fa88828901610848565b969995985093965092949392505050565b60006020828403121561091d57600080fd5b5035919050565b6000815180845260005b8181101561094a5760208185018101518683018201520161092e565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b63ffffffff85168152600073ffffffffffffffffffffffffffffffffffffffff8086166020840152808516604084015250608060608301526109cd6080830184610924565b9695505050505050565b6000602082840312156109e957600080fd5b6109f2826107d3565b9392505050565b60008060008060608587031215610a0f57600080fd5b610a18856107d3565b935060208501359250604085013567ffffffffffffffff811115610a3b57600080fd5b610a4787828801610848565b95989497509550505050565b600181811c90821680610a6757607f821691505b602082108103610aa0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b63ffffffff84168152826020820152606060408201526000610acb6060830184610924565b95945050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610b2c577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f821115610bac57600081815260208120601f850160051c81016020861015610b895750805b601f850160051c820191505b81811015610ba857828155600101610b95565b5050505b505050565b815167ffffffffffffffff811115610bcb57610bcb610b33565b610bdf81610bd98454610a53565b84610b62565b602080601f831160018114610c325760008415610bfc5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610ba8565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015610c7f57888601518255948401946001909101908401610c60565b5085821015610cbb57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b63ffffffff86168152600073ffffffffffffffffffffffffffffffffffffffff808716602084015280861660408401525060806060830152826080830152828460a0840137600060a0848401015260a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501168301019050969550505050505056fea264697066735822122050acc55b43f4fd212e40353cfc859a30f004e16849458c3e1566e8dc26381d2464736f6c63430008110033608060405234801561001057600080fd5b5061001961001e565b610266565b600054610100900460ff161580801561003e5750600054600160ff909116105b8061006957506100573061014560201b6104a01760201c565b158015610069575060005460ff166001145b6100d15760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff1916600117905580156100f4576000805461ff0019166101001790555b6100fc610154565b8015610142576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b6001600160a01b03163b151590565b600054610100900460ff166101ad5760405162461bcd60e51b815260206004820152602b6024820152600080516020610a3583398151915260448201526a6e697469616c697a696e6760a81b60648201526084016100c8565b6101b56101b7565b565b600054610100900460ff166102105760405162461bcd60e51b815260206004820152602b6024820152600080516020610a3583398151915260448201526a6e697469616c697a696e6760a81b60648201526084016100c8565b6101b533603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6107c0806102756000396000f3fe6080604052600436106100655760003560e01c80638129fc1c116100435780638129fc1c146100a95780638da5cb5b146100be578063f2fde38b146100f757600080fd5b806311bf2c181461006a5780634e71d92d1461007f578063715018a614610094575b600080fd5b61007d610078366004610717565b610117565b005b34801561008b57600080fd5b5061007d610157565b3480156100a057600080fd5b5061007d610247565b3480156100b557600080fd5b5061007d61025b565b3480156100ca57600080fd5b506033546040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561010357600080fd5b5061007d610112366004610768565b6103ec565b6040805183815234602082015285917ff715e66d2cd2a0179069dcda2a41a4da36a30e1aad12187fbb7c5d100afd621c910160405180910390a250505050565b600061017860335473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff164760405160006040518083038185875af1925050503d80600081146101cf576040519150601f19603f3d011682016040523d82523d6000602084013e6101d4565b606091505b5050905080610244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f217472616e73666572000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b50565b61024f6104bc565b610259600061053d565b565b600054610100900460ff161580801561027b5750600054600160ff909116105b806102955750303b158015610295575060005460ff166001145b610321576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161023b565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561037f57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6103876105b4565b801561024457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b6103f46104bc565b73ffffffffffffffffffffffffffffffffffffffff8116610497576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161023b565b6102448161053d565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b60335473ffffffffffffffffffffffffffffffffffffffff163314610259576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161023b565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff1661064b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161023b565b610259600054610100900460ff166106e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161023b565b6102593361053d565b803573ffffffffffffffffffffffffffffffffffffffff8116811461071257600080fd5b919050565b6000806000806080858703121561072d57600080fd5b84359350602085013563ffffffff8116811461074857600080fd5b92506040850135915061075d606086016106ee565b905092959194509250565b60006020828403121561077a57600080fd5b610783826106ee565b939250505056fea2646970667358221220e1b32a90580df10e30b06aac8f6b1a34fbcd59f2312034e3bb1afb3737fa110d64736f6c63430008110033496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069608060405234801561001057600080fd5b506101d8806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80632852b71c146100465780634fc3aa7c14610067578063f7e83aee146100a8575b600080fd5b6000546100539060ff1681565b604051901515815260200160405180910390f35b6100a66100753660046100c4565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b005b6100536100b6366004610136565b60005460ff16949350505050565b6000602082840312156100d657600080fd5b813580151581146100e657600080fd5b9392505050565b60008083601f8401126100ff57600080fd5b50813567ffffffffffffffff81111561011757600080fd5b60208301915083602082850101111561012f57600080fd5b9250929050565b6000806000806040858703121561014c57600080fd5b843567ffffffffffffffff8082111561016457600080fd5b610170888389016100ed565b9096509450602087013591508082111561018957600080fd5b50610196878288016100ed565b9598949750955050505056fea26469706673582212201a95840450c9fd2015250f4fd92fbf3fb8f81ee8e95e6c7442174ba1c1c6d27a64736f6c63430008110033608060405234801561001057600080fd5b5061001a3361001f565b610071565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b61264b806100806000396000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c80638da5cb5b116100cd578063de523cf311610081578063f1bd6f0a11610066578063f1bd6f0a146102e9578063f2fde38b146102fc578063f3c61d6b1461030f57600080fd5b8063de523cf3146102b6578063e9198bf9146102d657600080fd5b8063b49c53a7116100b2578063b49c53a714610270578063c0c53b8b14610283578063d5438eae1461029657600080fd5b80638da5cb5b1461023f57806395b1f3b31461025d57600080fd5b806339bb4ad911610124578063715018a611610109578063715018a61461021c5780638129fc1c1461022457806388b755141461022c57600080fd5b806339bb4ad9146101c457806356d5d4751461020957600080fd5b80630e72cc06146101565780631227dba91461016b5780632222b452146101915780632ead72f6146101a4575b600080fd5b610169610164366004611a09565b610322565b005b61017e610179366004611d00565b610336565b6040519081526020015b60405180910390f35b61017e61019f366004611dbd565b61043b565b61017e6101b2366004611e50565b60986020526000908152604090205481565b6066546101e49073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610188565b610169610217366004611e6b565b610595565b610169610698565b6101696106ac565b61016961023a366004611f0a565b61083e565b60335473ffffffffffffffffffffffffffffffffffffffff166101e4565b61017e61026b366004611f4c565b610949565b61016961027e366004611fbf565b610a4d565b610169610291366004611fe9565b610a63565b6065546101e49073ffffffffffffffffffffffffffffffffffffffff1681565b6067546101e49073ffffffffffffffffffffffffffffffffffffffff1681565b6101696102e4366004612034565b610bfb565b6101696102f7366004611a09565b610cd8565b61016961030a366004611a09565b610ce9565b61016961031d366004611a09565b610d9d565b61032a610dae565b61033381610e2f565b50565b600081518351146103ce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f496e746572636861696e5175657279526f757465723a2063616c6c7320616e6460448201527f2063616c6c6261636b73206d7573742062652073616d65206c656e677468000060648201526084015b60405180910390fd5b6103fe8460003386866040516020016103ea94939291906121c1565b604051602081830303815290604052610f1e565b604051909150339063ffffffff8616907f11c97c784c298562a796345417aa40e1ce110e6b100f41b801ab23414f72d7e590600090a39392505050565b604080516001808252818301909252600091829190816020015b60408051808201909152600081526060602082015281526020019060019003908161045557905050905060405180604001604052808873ffffffffffffffffffffffffffffffffffffffff16815260200187878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525093909452505083518492506104ef576104ef61228c565b6020908102919091010152604080516001808252818301909252600091816020015b606081526020019060019003908161051157905050905084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052508551869450909250151590506105725761057261228c565b6020026020010181905250610588898383610336565b9998505050505050505050565b60655473ffffffffffffffffffffffffffffffffffffffff163314610616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f216d61696c626f7800000000000000000000000000000000000000000000000060448201526064016103c5565b63ffffffff84166000908152609860205260409020548490849081146040518060800160405280604381526020016125d36043913990610683576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c591906122bb565b5061069086868686610fd2565b505050505050565b6106a0610dae565b6106aa6000611116565b565b600054610100900460ff16158080156106cc5750600054600160ff909116105b806106e65750303b1580156106e6575060005460ff166001145b610772576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016103c5565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156107d057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6107d933611116565b801561033357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b610846610dae565b60005b81811015610944576000808484848181106108665761086661228c565b905060200281019061087891906122ce565b610886906020810190611a09565b73ffffffffffffffffffffffffffffffffffffffff168585858181106108ae576108ae61228c565b90506020028101906108c091906122ce565b6108ce90602081019061230c565b6040516108dc929190612371565b6000604051808303816000865af19150503d8060008114610919576040519150601f19603f3d011682016040523d82523d6000602084013e61091e565b606091505b50915091508161092f578060208201fd5b5061093d90506001826123b0565b9050610849565b505050565b604080516001808252818301909252600091829190816020015b604080518082019091526000815260606020820152815260200190600190039081610963579050509050610996856123c3565b816000815181106109a9576109a961228c565b6020908102919091010152604080516001808252818301909252600091816020015b60608152602001906001900390816109cb57905050905084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250855186945090925015159050610a2c57610a2c61228c565b6020026020010181905250610a42878383610336565b979650505050505050565b610a55610dae565b610a5f828261118d565b5050565b600054610100900460ff1615808015610a835750600054600160ff909116105b80610a9d5750303b158015610a9d575060005460ff166001145b610b29576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016103c5565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610b8757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610b928484846111d1565b8015610bf557600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b610c03610dae565b828114610c6c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e6774680000000000000000000000000000000000000000000000000060448201526064016103c5565b60005b83811015610cd157610cbf858583818110610c8c57610c8c61228c565b9050602002016020810190610ca19190611e50565b848484818110610cb357610cb361228c565b9050602002013561118d565b610cca6001826123b0565b9050610c6f565b5050505050565b610ce0610dae565b6103338161127b565b610cf1610dae565b73ffffffffffffffffffffffffffffffffffffffff8116610d94576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103c5565b61033381611116565b610da5610dae565b6103338161136a565b60335473ffffffffffffffffffffffffffffffffffffffff1633146106aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103c5565b8073ffffffffffffffffffffffffffffffffffffffff81163b610eae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016103c5565b606780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517ffec811ed4e60aebdaf7a79cad8a97196bf56e35362f039705598226d30c9d24890600090a25050565b600080610f2a84611459565b6065546040517ffa31de0100000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff169063fa31de0190610f85908790859088906004016123cf565b6020604051808303816000875af1158015610fa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc891906123fd565b9150505b92915050565b6000610fe082840184612425565b90506000816001811115610ff657610ff6612094565b0361108d576000808061100b85870187612440565b93509350935050600061101e83836114cf565b905061103a89600186846040516020016103ea939291906124c7565b5060405173ffffffffffffffffffffffffffffffffffffffff85169063ffffffff8b16907f23765aea2e90cfa5dadac549945f61c017334d01a9f242f49a070d9fb9a04a4690600090a350505050610cd1565b60018160018111156110a1576110a1612094565b03610cd1576000806110b584860186612503565b92509250506110c482826116b1565b60405173ffffffffffffffffffffffffffffffffffffffff83169063ffffffff8916907fc4416e2fcdf8514178829e5ead195eb13f3241ea71c0e38f998868fe81e4226990600090a350505050505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b63ffffffff8216600081815260986020526040808220849055518392917f97fd51fef1f80c854cbd0150c248e8b2ac4ecdc97cc05e742b5f61c9f4dc645891a35050565b600054610100900460ff16611268576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016103c5565b61127181610e2f565b6109448383611766565b8073ffffffffffffffffffffffffffffffffffffffff81163b6112fa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016103c5565b606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517fb87f5a0bface22cde699143559fb99f990ae54eea236995fc54178af91af859f90600090a25050565b8073ffffffffffffffffffffffffffffffffffffffff81163b6113e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016103c5565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517f7a61e573722ff8b205c8962b59d37e7d30573f368965597a844a94872204ebd790600090a25050565b63ffffffff81166000908152609860209081526040918290205482516080810190935260438084529092831515929091906125d390830139906114c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c591906122bb565b50919050565b6060815167ffffffffffffffff8111156114eb576114eb611a46565b60405190808252806020026020018201604052801561151e57816020015b60608152602001906001900390816115095790505b50905060005b83518110156116aa576000808583815181106115425761154261228c565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff168684815181106115765761157661228c565b60200260200101516020015160405161158f9190612559565b6000604051808303816000865af19150503d80600081146115cc576040519150601f19603f3d011682016040523d82523d6000602084013e6115d1565b606091505b50915091508161163d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d756c746963616c6c3a2063616c6c206661696c65640000000000000000000060448201526064016103c5565b84838151811061164f5761164f61228c565b60200260200101518160405160200161166992919061256b565b60405160208183030381529060405284848151811061168a5761168a61228c565b6020026020010181905250505080806116a29061259a565b915050611524565b5092915050565b60005b8151811015610944576000808473ffffffffffffffffffffffffffffffffffffffff168484815181106116e9576116e961228c565b60200260200101516040516116fe9190612559565b6000604051808303816000865af19150503d806000811461173b576040519150601f19603f3d011682016040523d82523d6000602084013e611740565b606091505b509150915081611751578060208201fd5b5061175f90506001826123b0565b90506116b4565b600054610100900460ff166117fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016103c5565b6118068161127b565b610a5f82600054610100900460ff166118a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016103c5565b6118aa8161136a565b610333600054610100900460ff16611944576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016103c5565b6106aa600054610100900460ff166119de576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016103c5565b6106aa33611116565b73ffffffffffffffffffffffffffffffffffffffff8116811461033357600080fd5b600060208284031215611a1b57600080fd5b8135611a26816119e7565b9392505050565b803563ffffffff81168114611a4157600080fd5b919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715611abc57611abc611a46565b604052919050565b600067ffffffffffffffff821115611ade57611ade611a46565b5060051b60200190565b600082601f830112611af957600080fd5b813567ffffffffffffffff811115611b1357611b13611a46565b611b4460207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601611a75565b818152846020838601011115611b5957600080fd5b816020850160208301376000918101602001919091529392505050565b600060408284031215611b8857600080fd5b6040516040810167ffffffffffffffff8282108183111715611bac57611bac611a46565b8160405282935084359150611bc0826119e7565b90825260208401359080821115611bd657600080fd5b50611be385828601611ae8565b6020830152505092915050565b600082601f830112611c0157600080fd5b81356020611c16611c1183611ac4565b611a75565b82815260059290921b84018101918181019086841115611c3557600080fd5b8286015b84811015611c7557803567ffffffffffffffff811115611c595760008081fd5b611c678986838b0101611b76565b845250918301918301611c39565b509695505050505050565b600082601f830112611c9157600080fd5b81356020611ca1611c1183611ac4565b82815260059290921b84018101918181019086841115611cc057600080fd5b8286015b84811015611c7557803567ffffffffffffffff811115611ce45760008081fd5b611cf28986838b0101611ae8565b845250918301918301611cc4565b600080600060608486031215611d1557600080fd5b611d1e84611a2d565b9250602084013567ffffffffffffffff80821115611d3b57600080fd5b611d4787838801611bf0565b93506040860135915080821115611d5d57600080fd5b50611d6a86828701611c80565b9150509250925092565b60008083601f840112611d8657600080fd5b50813567ffffffffffffffff811115611d9e57600080fd5b602083019150836020828501011115611db657600080fd5b9250929050565b60008060008060008060808789031215611dd657600080fd5b611ddf87611a2d565b95506020870135611def816119e7565b9450604087013567ffffffffffffffff80821115611e0c57600080fd5b611e188a838b01611d74565b90965094506060890135915080821115611e3157600080fd5b50611e3e89828a01611d74565b979a9699509497509295939492505050565b600060208284031215611e6257600080fd5b611a2682611a2d565b60008060008060608587031215611e8157600080fd5b611e8a85611a2d565b935060208501359250604085013567ffffffffffffffff811115611ead57600080fd5b611eb987828801611d74565b95989497509550505050565b60008083601f840112611ed757600080fd5b50813567ffffffffffffffff811115611eef57600080fd5b6020830191508360208260051b8501011115611db657600080fd5b60008060208385031215611f1d57600080fd5b823567ffffffffffffffff811115611f3457600080fd5b611f4085828601611ec5565b90969095509350505050565b60008060008060608587031215611f6257600080fd5b611f6b85611a2d565b9350602085013567ffffffffffffffff80821115611f8857600080fd5b9086019060408289031215611f9c57600080fd5b90935060408601359080821115611fb257600080fd5b50611eb987828801611d74565b60008060408385031215611fd257600080fd5b611fdb83611a2d565b946020939093013593505050565b600080600060608486031215611ffe57600080fd5b8335612009816119e7565b92506020840135612019816119e7565b91506040840135612029816119e7565b809150509250925092565b6000806000806040858703121561204a57600080fd5b843567ffffffffffffffff8082111561206257600080fd5b61206e88838901611ec5565b9096509450602087013591508082111561208757600080fd5b50611eb987828801611ec5565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600281106120fa577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b60005b83811015612119578181015183820152602001612101565b50506000910152565b6000815180845261213a8160208601602086016120fe565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b600081518084526020808501808196508360051b8101915082860160005b858110156121b45782840389526121a2848351612122565b9885019893509084019060010161218a565b5091979650505050505050565b6000608082016121d183886120c3565b602073ffffffffffffffffffffffffffffffffffffffff80881682860152604060808187015283885180865260a08801915060a08160051b8901019550848a0160005b82811015612273578988037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600184528151805187168952870151878901869052612260868a0182612122565b9850509286019290860190600101612214565b505050505050508281036060840152610a42818561216c565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602081526000611a266020830184612122565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc183360301811261230257600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261234157600080fd5b83018035915067ffffffffffffffff82111561235c57600080fd5b602001915036819003821315611db657600080fd5b8183823760009101908152919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610fcc57610fcc612381565b6000610fcc3683611b76565b63ffffffff841681528260208201526060604082015260006123f46060830184612122565b95945050505050565b60006020828403121561240f57600080fd5b5051919050565b803560028110611a4157600080fd5b60006020828403121561243757600080fd5b611a2682612416565b6000806000806080858703121561245657600080fd5b61245f85612416565b9350602085013561246f816119e7565b9250604085013567ffffffffffffffff8082111561248c57600080fd5b61249888838901611bf0565b935060608701359150808211156124ae57600080fd5b506124bb87828801611c80565b91505092959194509250565b6124d181856120c3565b73ffffffffffffffffffffffffffffffffffffffff831660208201526060604082015260006123f4606083018461216c565b60008060006060848603121561251857600080fd5b61252184612416565b92506020840135612531816119e7565b9150604084013567ffffffffffffffff81111561254d57600080fd5b611d6a86828701611c80565b600082516123028184602087016120fe565b6000835161257d8184602088016120fe565b8351908301906125918183602088016120fe565b01949350505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036125cb576125cb612381565b506001019056fe4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e2e2044696420796f7520737065636966792074686520726967687420646f6d61696e2049443fa26469706673582212207c2954d57b49f61bc6b6829ad748fc9bed727011993e7c331befe5d6c433567b64736f6c63430008110033";
15
+ static readonly bytecode = "0x608060405234801561001057600080fd5b506040516200488d3803806200488d833981016040819052610031916106c1565b6000805463ffffffff838116640100000000026001600160401b03199092169085161717815560405161006390610670565b604051809103906000f08015801561007f573d6000803e3d6000fd5b509050600083826040516100929061067e565b63ffffffff90921682526001600160a01b03166020820152604001604051809103906000f0801580156100c9573d6000803e3d6000fd5b50905060006040516100da90610670565b604051809103906000f0801580156100f6573d6000803e3d6000fd5b509050600084826040516101099061067e565b63ffffffff90921682526001600160a01b03166020820152604001604051809103906000f080158015610140573d6000803e3d6000fd5b5063ffffffff808816600081815260016020908152604080832080546001600160a01b03808c166001600160a01b031992831617909255958c168085528285208054838a16908916179055948452600290925280832080548984169087161790559282528282208054918a16919094161790925551919250906101c29061068c565b604051809103906000f0801580156101de573d6000803e3d6000fd5b50905060006040516101ef9061068c565b604051809103906000f08015801561020b573d6000803e3d6000fd5b50604051600162dfb0c560e01b031981526001600160a01b0387811660048301529192509083169063ff204f3b90602401600060405180830381600087803b15801561025657600080fd5b505af115801561026a573d6000803e3d6000fd5b50506040516302100c7160e41b815263ffffffff8a1660048201526001600160a01b03898116602483015284169250632100c7109150604401600060405180830381600087803b1580156102bd57600080fd5b505af11580156102d1573d6000803e3d6000fd5b5050604051600162dfb0c560e01b031981526001600160a01b0386811660048301528416925063ff204f3b9150602401600060405180830381600087803b15801561031b57600080fd5b505af115801561032f573d6000803e3d6000fd5b50506040516302100c7160e41b815263ffffffff8b1660048201526001600160a01b03878116602483015285169250632100c7109150604401600060405180830381600087803b15801561038257600080fd5b505af1158015610396573d6000803e3d6000fd5b50505063ffffffff808a1660009081526003602052604080822080546001600160a01b038089166001600160a01b031992831617909255938c1683528183208054918716919094161790925590519091506103f09061069a565b604051809103906000f08015801561040c573d6000803e3d6000fd5b509050600060405161041d9061069a565b604051809103906000f080158015610439573d6000803e3d6000fd5b5060405163c0c53b8b60e01b81523060048201526001600160a01b038681166024830152600060448301529192509083169063c0c53b8b90606401600060405180830381600087803b15801561048e57600080fd5b505af11580156104a2573d6000803e3d6000fd5b505060405163c0c53b8b60e01b81523060048201526001600160a01b038681166024830152600060448301528416925063c0c53b8b9150606401600060405180830381600087803b1580156104f657600080fd5b505af115801561050a573d6000803e3d6000fd5b50505050816001600160a01b031663b49c53a78a6105318461066460201b6102e51760201c565b6040516001600160e01b031960e085901b16815263ffffffff9290921660048301526024820152604401600060405180830381600087803b15801561057557600080fd5b505af1158015610589573d6000803e3d6000fd5b50505050806001600160a01b031663b49c53a78b6105b08561066460201b6102e51760201c565b6040516001600160e01b031960e085901b16815263ffffffff9290921660048301526024820152604401600060405180830381600087803b1580156105f457600080fd5b505af1158015610608573d6000803e3d6000fd5b5050505063ffffffff998a1660009081526004602052604080822080546001600160a01b03199081166001600160a01b03968716179091559a909b168152999099208054909816981697909717909555506106f4945050505050565b6001600160a01b031690565b6106a38062000a6583390190565b61030c806200110883390190565b61100d806200141483390190565b61246c806200242183390190565b805163ffffffff811681146106bc57600080fd5b919050565b600080604083850312156106d457600080fd5b6106dd836106a8565b91506106eb602084016106a8565b90509250929050565b61036180620007046000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063d34036f51161005b578063d34036f514610153578063e9ee469514610189578063f9d2692d146101bf578063f9f312ad146101c957600080fd5b806387594461146100825780639da05e4c146100e1578063c20b28b21461011d575b600080fd5b6100b86100903660046102fe565b60036020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100b86100ef3660046102fe565b63ffffffff1660009081526003602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b6100b861012b3660046102fe565b60026020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6100b86101613660046102fe565b60016020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6100b86101973660046102fe565b60046020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6101c76101d1565b005b6101c7610264565b6000805463ffffffff168152600260205260408082205481517ff9f312ad000000000000000000000000000000000000000000000000000000008152915173ffffffffffffffffffffffffffffffffffffffff9091169263f9f312ad926004808201939182900301818387803b15801561024a57600080fd5b505af115801561025e573d6000803e3d6000fd5b50505050565b60008054640100000000900463ffffffff168152600260205260408082205481517ff9f312ad000000000000000000000000000000000000000000000000000000008152915173ffffffffffffffffffffffffffffffffffffffff9091169263f9f312ad926004808201939182900301818387803b15801561024a57600080fd5b73ffffffffffffffffffffffffffffffffffffffff1690565b60006020828403121561031057600080fd5b813563ffffffff8116811461032457600080fd5b939250505056fea26469706673582212201bc280605efab9c1b7a56550fd29bf277a3a268b1ee5f72b250ba276ce85aaa564736f6c6343000810003360806040526000600155600060025534801561001a57600080fd5b506106798061002a6000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063a098e0551461003b578063f9f312ad14610050575b600080fd5b61004e6100493660046102c8565b610058565b005b61004e610105565b6040805160808101825263ffffffff86811682526020808301878152838501878152606085018781526001805460009081529485905296909320855181547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000016951694909417845590519483019490945592516002820155915190919060038201906100e49082610468565b5090505060018060008282546100fa9190610582565b909155505050505050565b600280546000908152602081815260408083208151608081018352815463ffffffff168152600182015493810193909352938401549082015260038301805492939192606084019190610157906103c6565b80601f0160208091040260200160405190810160405280929190818152602001828054610183906103c6565b80156101d05780601f106101a5576101008083540402835291602001916101d0565b820191906000526020600020905b8154815290600101906020018083116101b357829003601f168201915b505050505081525050905060006101e8826040015190565b8251602084015160608501516040517f56d5d47500000000000000000000000000000000000000000000000000000000815293945073ffffffffffffffffffffffffffffffffffffffff8516936356d5d4759361024b93909290916004016105c2565b600060405180830381600087803b15801561026557600080fd5b505af1158015610279573d6000803e3d6000fd5b505050506001600260008282546102909190610582565b90915550505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080600080608085870312156102de57600080fd5b843563ffffffff811681146102f257600080fd5b93506020850135925060408501359150606085013567ffffffffffffffff8082111561031d57600080fd5b818701915087601f83011261033157600080fd5b81358181111561034357610343610299565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561038957610389610299565b816040528281528a60208487010111156103a257600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b600181811c908216806103da57607f821691505b602082108103610413577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f82111561046357600081815260208120601f850160051c810160208610156104405750805b601f850160051c820191505b8181101561045f5782815560010161044c565b5050505b505050565b815167ffffffffffffffff81111561048257610482610299565b6104968161049084546103c6565b84610419565b602080601f8311600181146104e957600084156104b35750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b17855561045f565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561053657888601518255948401946001909101908401610517565b508582101561057257878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156105bc577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b92915050565b63ffffffff8416815260006020848184015260606040840152835180606085015260005b81811015610602578581018301518582016080015282016105e6565b5060006080828601015260807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505094935050505056fea2646970667358221220a796d8a7b91beec44a5a1ab9c32ddfb80e71f7ceee941be506115288694960f664736f6c63430008100033608060405234801561001057600080fd5b5060405161030c38038061030c83398101604081905261002f91610071565b600080546001600160c01b031916600160a01b63ffffffff94909416939093026001600160a01b031916929092176001600160a01b03919091161790556100c0565b6000806040838503121561008457600080fd5b825163ffffffff8116811461009857600080fd5b60208401519092506001600160a01b03811681146100b557600080fd5b809150509250929050565b61023d806100cf6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063fa31de0114610030575b600080fd5b61004361003e36600461010d565b610055565b60405190815260200160405180910390f35b600080546040517fa098e05500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169163a098e055916100d09174010000000000000000000000000000000000000000900463ffffffff1690339089908990899060040161019f565b600060405180830381600087803b1580156100ea57600080fd5b505af11580156100fe573d6000803e3d6000fd5b50600198975050505050505050565b6000806000806060858703121561012357600080fd5b843563ffffffff8116811461013757600080fd5b935060208501359250604085013567ffffffffffffffff8082111561015b57600080fd5b818701915087601f83011261016f57600080fd5b81358181111561017e57600080fd5b88602082850101111561019057600080fd5b95989497505060200194505050565b63ffffffff8616815284602082015283604082015260806060820152816080820152818360a0830137600081830160a090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010194935050505056fea2646970667358221220f86feeba81dbabe995ec8e1f19556e02f7113538b179950ddeae358fa5fd8a4b64736f6c63430008100033608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610f8f8061007e6000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c80638d3638f411610081578063ce11e6ab1161005b578063ce11e6ab146101f3578063f2fde38b14610213578063ff204f3b1461022657600080fd5b80638d3638f41461018c5780638da5cb5b14610194578063cdc5d734146101d357600080fd5b8063448f904a116100b2578063448f904a14610136578063715018a6146101495780637904ffb71461015157600080fd5b80632100c710146100ce578063282f51eb146100e3575b600080fd5b6100e16100dc366004610d8c565b610239565b005b6101216100f1366004610dc1565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205463ffffffff16151590565b60405190151581526020015b60405180910390f35b6100e1610144366004610dc1565b610497565b6100e1610524565b61017761015f366004610dc1565b60026020526000908152604090205463ffffffff1681565b60405163ffffffff909116815260200161012d565b6101776105b1565b60005473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161012d565b6101e66101e1366004610ddc565b61064a565b60405161012d9190610e00565b6001546101ae9073ffffffffffffffffffffffffffffffffffffffff1681565b6100e1610221366004610dc1565b61071b565b6100e1610234366004610dc1565b610848565b60005473ffffffffffffffffffffffffffffffffffffffff1633146102bf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81163b61033d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f696e626f782021636f6e7472616374000000000000000000000000000000000060448201526064016102b6565b73ffffffffffffffffffffffffffffffffffffffff811660009081526002602052604090205463ffffffff16156103d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f616c726561647920696e626f780000000000000000000000000000000000000060448201526064016102b6565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260026020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff878116918217909255845260039092529091206104409183906109b616565b5060405173ffffffffffffffffffffffffffffffffffffffff8216815263ffffffff8316907f4d2727478f0991174aa9ce47ef7abbde975765cc9fc1f8e239c1737bb70059c3906020015b60405180910390a25050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610518576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102b6565b610521816109e1565b50565b60005473ffffffffffffffffffffffffffffffffffffffff1633146105a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102b6565b6105af6000610b38565b565b600154604080517f8d3638f4000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691638d3638f49160048083019260209291908290030181865afa158015610621573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106459190610e5a565b905090565b63ffffffff8116600090815260036020526040812060609161066b82610bad565b905060008167ffffffffffffffff81111561068857610688610e77565b6040519080825280602002602001820160405280156106b1578160200160208202803683370190505b50905060005b82811015610712576106c98482610bb7565b8282815181106106db576106db610ea6565b73ffffffffffffffffffffffffffffffffffffffff9092166020928302919091019091015261070b600182610f04565b90506106b7565b50949350505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461079c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102b6565b73ffffffffffffffffffffffffffffffffffffffff811661083f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102b6565b61052181610b38565b60005473ffffffffffffffffffffffffffffffffffffffff1633146108c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102b6565b73ffffffffffffffffffffffffffffffffffffffff81163b610947576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6f7574626f782021636f6e74726163740000000000000000000000000000000060448201526064016102b6565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f0bff4fc5e4cd8fc762bca2b6ff29e3b73a463474097b3f1e972ed2a167b534a790600090a250565b60006109d88373ffffffffffffffffffffffffffffffffffffffff8416610bc3565b90505b92915050565b73ffffffffffffffffffffffffffffffffffffffff811660009081526002602090815260408083205463ffffffff908116808552600390935292209091610a2b91908490610c1216565b610a91576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6e6f7420656e726f6c6c6564000000000000000000000000000000000000000060448201526064016102b6565b63ffffffff8082166000908152600360205260409020610ab3918490610c1216565b5073ffffffffffffffffffffffffffffffffffffffff821660008181526002602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000169055905191825263ffffffff8316917ff2e3d7483b67ee71de83343d173eb00829d4aff848f743b64b49a9dff2182186910161048b565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006109db825490565b60006109d88383610c34565b6000818152600183016020526040812054610c0a575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556109db565b5060006109db565b60006109d88373ffffffffffffffffffffffffffffffffffffffff8416610c5e565b6000826000018281548110610c4b57610c4b610ea6565b9060005260206000200154905092915050565b60008181526001830160205260408120548015610d47576000610c82600183610f17565b8554909150600090610c9690600190610f17565b9050818114610cfb576000866000018281548110610cb657610cb6610ea6565b9060005260206000200154905080876000018481548110610cd957610cd9610ea6565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080610d0c57610d0c610f2a565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506109db565b60009150506109db565b63ffffffff8116811461052157600080fd5b803573ffffffffffffffffffffffffffffffffffffffff81168114610d8757600080fd5b919050565b60008060408385031215610d9f57600080fd5b8235610daa81610d51565b9150610db860208401610d63565b90509250929050565b600060208284031215610dd357600080fd5b6109d882610d63565b600060208284031215610dee57600080fd5b8135610df981610d51565b9392505050565b6020808252825182820181905260009190848201906040850190845b81811015610e4e57835173ffffffffffffffffffffffffffffffffffffffff1683529284019291840191600101610e1c565b50909695505050505050565b600060208284031215610e6c57600080fd5b8151610df981610d51565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156109db576109db610ed5565b818103818111156109db576109db610ed5565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea2646970667358221220f211482c5f3fb069f2e4f8227f68815e60e21a76572e0ea01ac90140ca63b77964736f6c63430008100033608060405234801561001057600080fd5b5061001a3361001f565b610071565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6123ec806100806000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c80638da5cb5b11610097578063c0c53b8b11610066578063c0c53b8b1461024a578063e9198bf91461025d578063f1bd6f0a14610270578063f2fde38b1461028357600080fd5b80638da5cb5b146101e657806395b1f3b3146102045780639a35c35914610217578063b49c53a71461023757600080fd5b806339bb4ad9116100d357806339bb4ad91461017357806356d5d475146101b8578063715018a6146101cb57806388b75514146101d357600080fd5b80631227dba91461010557806312b1d7801461012b5780632222b452146101405780632ead72f614610153575b600080fd5b610118610113366004611a4a565b610296565b6040519081526020015b60405180910390f35b61013e610139366004611abe565b61039b565b005b61011861014e366004611b2b565b610428565b610118610161366004611bbe565b60976020526000908152604090205481565b6066546101939073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610122565b61013e6101c6366004611bd9565b610582565b61013e610673565b61013e6101e1366004611c78565b610700565b60335473ffffffffffffffffffffffffffffffffffffffff16610193565b610118610212366004611cba565b610884565b6065546101939073ffffffffffffffffffffffffffffffffffffffff1681565b61013e610245366004611d2d565b610988565b61013e610258366004611d57565b610a17565b61013e61026b366004611da2565b610adc565b61013e61027e366004611abe565b610c32565b61013e610291366004611abe565b610cbc565b6000815183511461032e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f496e746572636861696e5175657279526f757465723a2063616c6c7320616e6460448201527f2063616c6c6261636b73206d7573742062652073616d65206c656e677468000060648201526084015b60405180910390fd5b61035e84600033868660405160200161034a9493929190611f2c565b604051602081830303815290604052610de9565b604051909150339063ffffffff8616907f11c97c784c298562a796345417aa40e1ce110e6b100f41b801ab23414f72d7e590600090a39392505050565b60335473ffffffffffffffffffffffffffffffffffffffff16331461041c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610325565b61042581610e06565b50565b604080516001808252818301909252600091829190816020015b60408051808201909152600081526060602082015281526020019060019003908161044257905050905060405180604001604052808873ffffffffffffffffffffffffffffffffffffffff16815260200187878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525093909452505083518492506104dc576104dc611ff7565b6020908102919091010152604080516001808252818301909252600091816020015b60608152602001906001900390816104fe57905050905084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525085518694509092501515905061055f5761055f611ff7565b6020026020010181905250610575898383610296565b9998505050505050505050565b61058b33610e75565b6105f1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f21696e626f7800000000000000000000000000000000000000000000000000006044820152606401610325565b63ffffffff8416600090815260976020526040902054849084908114604051806080016040528060438152602001612374604391399061065e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103259190612026565b5061066b86868686610f0a565b505050505050565b60335473ffffffffffffffffffffffffffffffffffffffff1633146106f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610325565b6106fe600061104e565b565b60335473ffffffffffffffffffffffffffffffffffffffff163314610781576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610325565b60005b8181101561087f576000808484848181106107a1576107a1611ff7565b90506020028101906107b39190612039565b6107c1906020810190611abe565b73ffffffffffffffffffffffffffffffffffffffff168585858181106107e9576107e9611ff7565b90506020028101906107fb9190612039565b610809906020810190612077565b6040516108179291906120dc565b6000604051808303816000865af19150503d8060008114610854576040519150601f19603f3d011682016040523d82523d6000602084013e610859565b606091505b50915091508161086a578060208201fd5b50610878905060018261211b565b9050610784565b505050565b604080516001808252818301909252600091829190816020015b60408051808201909152600081526060602082015281526020019060019003908161089e5790505090506108d18561212e565b816000815181106108e4576108e4611ff7565b6020908102919091010152604080516001808252818301909252600091816020015b606081526020019060019003908161090657905050905084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525085518694509092501515905061096757610967611ff7565b602002602001018190525061097d878383610296565b979650505050505050565b60335473ffffffffffffffffffffffffffffffffffffffff163314610a09576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610325565b610a1382826110c5565b5050565b6000610a236001611109565b90508015610a5857600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610a618461104e565b610a6a83610e06565b610a7382611294565b8015610ad657600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60335473ffffffffffffffffffffffffffffffffffffffff163314610b5d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610325565b828114610bc6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e677468000000000000000000000000000000000000000000000000006044820152606401610325565b60005b83811015610c2b57610c19858583818110610be657610be6611ff7565b9050602002016020810190610bfb9190611bbe565b848484818110610c0d57610c0d611ff7565b905060200201356110c5565b610c2460018261211b565b9050610bc9565b5050505050565b60335473ffffffffffffffffffffffffffffffffffffffff163314610cb3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610325565b61042581611294565b60335473ffffffffffffffffffffffffffffffffffffffff163314610d3d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610325565b73ffffffffffffffffffffffffffffffffffffffff8116610de0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610325565b6104258161104e565b6000610dfd610df6611303565b848461139c565b90505b92915050565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f7c10de8878ed89478ff01b9cd8c11a5271ea8ac91d46f662e6aea7e3adf5b11f90600090a250565b6065546040517f282f51eb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152600092169063282f51eb90602401602060405180830381865afa158015610ee6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e00919061213a565b6000610f188284018461216b565b90506000816001811115610f2e57610f2e611e02565b03610fc55760008080610f4385870187612186565b935093509350506000610f56838361144d565b9050610f72896001868460405160200161034a9392919061220d565b5060405173ffffffffffffffffffffffffffffffffffffffff85169063ffffffff8b16907f23765aea2e90cfa5dadac549945f61c017334d01a9f242f49a070d9fb9a04a4690600090a350505050610c2b565b6001816001811115610fd957610fd9611e02565b03610c2b57600080610fed84860186612249565b9250925050610ffc828261162f565b60405173ffffffffffffffffffffffffffffffffffffffff83169063ffffffff8916907fc4416e2fcdf8514178829e5ead195eb13f3241ea71c0e38f998868fe81e4226990600090a350505050505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b63ffffffff8216600081815260976020526040808220849055518392917f97fd51fef1f80c854cbd0150c248e8b2ac4ecdc97cc05e742b5f61c9f4dc645891a35050565b60008054610100900460ff16156111c0578160ff16600114801561112c5750303b155b6111b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610325565b506000919050565b60005460ff808416911610611257576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610325565b50600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff92909216919091179055600190565b919050565b606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fb87f5a0bface22cde699143559fb99f990ae54eea236995fc54178af91af859f90600090a250565b606554604080517fce11e6ab000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163ce11e6ab9160048083019260209291908290030181865afa158015611373573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611397919061229f565b905090565b6000806113a8846116e4565b6040517ffa31de0100000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff86169063fa31de0190611401908790859088906004016122bc565b6020604051808303816000875af1158015611420573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061144491906122e1565b95945050505050565b6060815167ffffffffffffffff8111156114695761146961176e565b60405190808252806020026020018201604052801561149c57816020015b60608152602001906001900390816114875790505b50905060005b8351811015611628576000808583815181106114c0576114c0611ff7565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff168684815181106114f4576114f4611ff7565b60200260200101516020015160405161150d91906122fa565b6000604051808303816000865af19150503d806000811461154a576040519150601f19603f3d011682016040523d82523d6000602084013e61154f565b606091505b5091509150816115bb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d756c746963616c6c3a2063616c6c206661696c6564000000000000000000006044820152606401610325565b8483815181106115cd576115cd611ff7565b6020026020010151816040516020016115e792919061230c565b60405160208183030381529060405284848151811061160857611608611ff7565b6020026020010181905250505080806116209061233b565b9150506114a2565b5092915050565b60005b815181101561087f576000808473ffffffffffffffffffffffffffffffffffffffff1684848151811061166757611667611ff7565b602002602001015160405161167c91906122fa565b6000604051808303816000865af19150503d80600081146116b9576040519150601f19603f3d011682016040523d82523d6000602084013e6116be565b606091505b5091509150816116cf578060208201fd5b506116dd905060018261211b565b9050611632565b63ffffffff81166000908152609760209081526040918290205482516080810190935260438084529092831515929091906123749083013990611754576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103259190612026565b50919050565b803563ffffffff8116811461128f57600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156117e4576117e461176e565b604052919050565b600067ffffffffffffffff8211156118065761180661176e565b5060051b60200190565b73ffffffffffffffffffffffffffffffffffffffff8116811461042557600080fd5b600082601f83011261184357600080fd5b813567ffffffffffffffff81111561185d5761185d61176e565b61188e60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160161179d565b8181528460208386010111156118a357600080fd5b816020850160208301376000918101602001919091529392505050565b6000604082840312156118d257600080fd5b6040516040810167ffffffffffffffff82821081831117156118f6576118f661176e565b816040528293508435915061190a82611810565b9082526020840135908082111561192057600080fd5b5061192d85828601611832565b6020830152505092915050565b600082601f83011261194b57600080fd5b8135602061196061195b836117ec565b61179d565b82815260059290921b8401810191818101908684111561197f57600080fd5b8286015b848110156119bf57803567ffffffffffffffff8111156119a35760008081fd5b6119b18986838b01016118c0565b845250918301918301611983565b509695505050505050565b600082601f8301126119db57600080fd5b813560206119eb61195b836117ec565b82815260059290921b84018101918181019086841115611a0a57600080fd5b8286015b848110156119bf57803567ffffffffffffffff811115611a2e5760008081fd5b611a3c8986838b0101611832565b845250918301918301611a0e565b600080600060608486031215611a5f57600080fd5b611a688461175a565b9250602084013567ffffffffffffffff80821115611a8557600080fd5b611a918783880161193a565b93506040860135915080821115611aa757600080fd5b50611ab4868287016119ca565b9150509250925092565b600060208284031215611ad057600080fd5b8135611adb81611810565b9392505050565b60008083601f840112611af457600080fd5b50813567ffffffffffffffff811115611b0c57600080fd5b602083019150836020828501011115611b2457600080fd5b9250929050565b60008060008060008060808789031215611b4457600080fd5b611b4d8761175a565b95506020870135611b5d81611810565b9450604087013567ffffffffffffffff80821115611b7a57600080fd5b611b868a838b01611ae2565b90965094506060890135915080821115611b9f57600080fd5b50611bac89828a01611ae2565b979a9699509497509295939492505050565b600060208284031215611bd057600080fd5b610dfd8261175a565b60008060008060608587031215611bef57600080fd5b611bf88561175a565b935060208501359250604085013567ffffffffffffffff811115611c1b57600080fd5b611c2787828801611ae2565b95989497509550505050565b60008083601f840112611c4557600080fd5b50813567ffffffffffffffff811115611c5d57600080fd5b6020830191508360208260051b8501011115611b2457600080fd5b60008060208385031215611c8b57600080fd5b823567ffffffffffffffff811115611ca257600080fd5b611cae85828601611c33565b90969095509350505050565b60008060008060608587031215611cd057600080fd5b611cd98561175a565b9350602085013567ffffffffffffffff80821115611cf657600080fd5b9086019060408289031215611d0a57600080fd5b90935060408601359080821115611d2057600080fd5b50611c2787828801611ae2565b60008060408385031215611d4057600080fd5b611d498361175a565b946020939093013593505050565b600080600060608486031215611d6c57600080fd5b8335611d7781611810565b92506020840135611d8781611810565b91506040840135611d9781611810565b809150509250925092565b60008060008060408587031215611db857600080fd5b843567ffffffffffffffff80821115611dd057600080fd5b611ddc88838901611c33565b90965094506020870135915080821115611df557600080fd5b50611c2787828801611c33565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60028110611e68577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b60005b83811015611e87578181015183820152602001611e6f565b50506000910152565b60008151808452611ea8816020860160208601611e6c565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6000815180845260208085019450848260051b860182860160005b85811015611f1f578383038952611f0d838351611e90565b98850198925090840190600101611ef5565b5090979650505050505050565b600060808201611f3c8388611e31565b602073ffffffffffffffffffffffffffffffffffffffff80881682860152604060808187015283885180865260a08801915060a08160051b8901019550848a0160005b82811015611fde578988037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600184528151805187168952870151878901869052611fcb868a0182611e90565b9850509286019290860190600101611f7f565b50505050505050828103606084015261097d8185611eda565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602081526000610dfd6020830184611e90565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc183360301811261206d57600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126120ac57600080fd5b83018035915067ffffffffffffffff8211156120c757600080fd5b602001915036819003821315611b2457600080fd5b8183823760009101908152919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610e0057610e006120ec565b6000610e0036836118c0565b60006020828403121561214c57600080fd5b81518015158114611adb57600080fd5b80356002811061128f57600080fd5b60006020828403121561217d57600080fd5b610dfd8261215c565b6000806000806080858703121561219c57600080fd5b6121a58561215c565b935060208501356121b581611810565b9250604085013567ffffffffffffffff808211156121d257600080fd5b6121de8883890161193a565b935060608701359150808211156121f457600080fd5b50612201878288016119ca565b91505092959194509250565b6122178185611e31565b73ffffffffffffffffffffffffffffffffffffffff831660208201526060604082015260006114446060830184611eda565b60008060006060848603121561225e57600080fd5b6122678461215c565b9250602084013561227781611810565b9150604084013567ffffffffffffffff81111561229357600080fd5b611ab4868287016119ca565b6000602082840312156122b157600080fd5b8151611adb81611810565b63ffffffff841681528260208201526060604082015260006114446060830184611e90565b6000602082840312156122f357600080fd5b5051919050565b6000825161206d818460208701611e6c565b6000835161231e818460208801611e6c565b835190830190612332818360208801611e6c565b01949350505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361236c5761236c6120ec565b506001019056fe4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e2e2044696420796f7520737065636966792074686520726967687420646f6d61696e2049443fa26469706673582212208f0b889fd638d1a66623038098021da566fe73d8e84f6fdf2c3e1f3c9f0516bb64736f6c63430008100033";
16
16
  static readonly abi: ({
17
17
  inputs: {
18
18
  internalType: string;
@@ -1 +1 @@
1
- {"version":3,"file":"MockHyperlaneEnvironment__factory.d.ts","sourceRoot":"","sources":["../../../../types/factories/contracts/mock/MockHyperlaneEnvironment__factory.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,wBAAwB,EACxB,iCAAiC,EAClC,MAAM,kDAAkD,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EACL,MAAM,EAGN,eAAe,EACf,YAAY,EACZ,SAAS,EACV,MAAM,QAAQ,CAAC;AAkHhB,aAAK,yCAAyC,GAC1C,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,GACjB,qBAAqB,CAAC,OAAO,eAAe,CAAC,CAAC;AAMlD,qBAAa,iCAAkC,SAAQ,eAAe;gBACxD,GAAG,IAAI,EAAE,yCAAyC;IAQrD,MAAM,CACb,aAAa,EAAE,YAAY,EAC3B,kBAAkB,EAAE,YAAY,EAChC,SAAS,CAAC,EAAE,SAAS,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;KAAE,GAC1D,OAAO,CAAC,wBAAwB,CAAC;IAO3B,oBAAoB,CAC3B,aAAa,EAAE,YAAY,EAC3B,kBAAkB,EAAE,YAAY,EAChC,SAAS,CAAC,EAAE,SAAS,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;KAAE,GAC1D,kBAAkB;IAOZ,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,wBAAwB;IAGjD,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,iCAAiC;IAInE,MAAM,CAAC,QAAQ,CAAC,QAAQ,ojrCAAa;IACrC,MAAM,CAAC,QAAQ,CAAC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;SAAQ;IAC3B,MAAM,CAAC,eAAe,IAAI,iCAAiC;IAG3D,MAAM,CAAC,OAAO,CACZ,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,GAAG,QAAQ,GAClC,wBAAwB;CAO5B"}
1
+ {"version":3,"file":"MockHyperlaneEnvironment__factory.d.ts","sourceRoot":"","sources":["../../../../types/factories/contracts/mock/MockHyperlaneEnvironment__factory.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,wBAAwB,EACxB,iCAAiC,EAClC,MAAM,kDAAkD,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EACL,MAAM,EAGN,eAAe,EACf,YAAY,EACZ,SAAS,EACV,MAAM,QAAQ,CAAC;AAqIhB,aAAK,yCAAyC,GAC1C,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,GACjB,qBAAqB,CAAC,OAAO,eAAe,CAAC,CAAC;AAMlD,qBAAa,iCAAkC,SAAQ,eAAe;gBACxD,GAAG,IAAI,EAAE,yCAAyC;IAQrD,MAAM,CACb,aAAa,EAAE,YAAY,EAC3B,kBAAkB,EAAE,YAAY,EAChC,SAAS,CAAC,EAAE,SAAS,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;KAAE,GAC1D,OAAO,CAAC,wBAAwB,CAAC;IAO3B,oBAAoB,CAC3B,aAAa,EAAE,YAAY,EAC3B,kBAAkB,EAAE,YAAY,EAChC,SAAS,CAAC,EAAE,SAAS,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;KAAE,GAC1D,kBAAkB;IAOZ,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,wBAAwB;IAGjD,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,iCAAiC;IAInE,MAAM,CAAC,QAAQ,CAAC,QAAQ,kyoCAAa;IACrC,MAAM,CAAC,QAAQ,CAAC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;SAAQ;IAC3B,MAAM,CAAC,eAAe,IAAI,iCAAiC;IAG3D,MAAM,CAAC,OAAO,CACZ,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,GAAG,QAAQ,GAClC,wBAAwB;CAO5B"}
@@ -20,6 +20,25 @@ const _abi = [
20
20
  stateMutability: "nonpayable",
21
21
  type: "constructor",
22
22
  },
23
+ {
24
+ inputs: [
25
+ {
26
+ internalType: "uint32",
27
+ name: "_domain",
28
+ type: "uint32",
29
+ },
30
+ ],
31
+ name: "connectionManager",
32
+ outputs: [
33
+ {
34
+ internalType: "contract AbacusConnectionManager",
35
+ name: "",
36
+ type: "address",
37
+ },
38
+ ],
39
+ stateMutability: "view",
40
+ type: "function",
41
+ },
23
42
  {
24
43
  inputs: [
25
44
  {
@@ -28,10 +47,10 @@ const _abi = [
28
47
  type: "uint32",
29
48
  },
30
49
  ],
31
- name: "igps",
50
+ name: "connectionManagers",
32
51
  outputs: [
33
52
  {
34
- internalType: "contract InterchainGasPaymaster",
53
+ internalType: "contract AbacusConnectionManager",
35
54
  name: "",
36
55
  type: "address",
37
56
  },
@@ -47,10 +66,10 @@ const _abi = [
47
66
  type: "uint32",
48
67
  },
49
68
  ],
50
- name: "isms",
69
+ name: "inboxes",
51
70
  outputs: [
52
71
  {
53
- internalType: "contract IInterchainSecurityModule",
72
+ internalType: "contract MockInbox",
54
73
  name: "",
55
74
  type: "address",
56
75
  },
@@ -66,10 +85,10 @@ const _abi = [
66
85
  type: "uint32",
67
86
  },
68
87
  ],
69
- name: "mailboxes",
88
+ name: "outboxes",
70
89
  outputs: [
71
90
  {
72
- internalType: "contract MockMailbox",
91
+ internalType: "contract MockOutbox",
73
92
  name: "",
74
93
  type: "address",
75
94
  },
@@ -111,7 +130,7 @@ const _abi = [
111
130
  type: "function",
112
131
  },
113
132
  ];
114
- const _bytecode = "0x608060405234801561001057600080fd5b50604051614b16380380614b1683398101604081905261002f91610675565b6000805463ffffffff838116640100000000026001600160401b031990921690851617178155604051839061006390610628565b63ffffffff9091168152602001604051809103906000f08015801561008c573d6000803e3d6000fd5b50905060008260405161009e90610628565b63ffffffff9091168152602001604051809103906000f0801580156100c7573d6000803e3d6000fd5b506040516302cd9fb760e51b815263ffffffff851660048201526001600160a01b038083166024830152919250908316906359b3f6e090604401600060405180830381600087803b15801561011b57600080fd5b505af115801561012f573d6000803e3d6000fd5b50506040516302cd9fb760e51b815263ffffffff871660048201526001600160a01b038581166024830152841692506359b3f6e09150604401600060405180830381600087803b15801561018257600080fd5b505af1158015610196573d6000803e3d6000fd5b505050506040516101a690610635565b604051809103906000f0801580156101c2573d6000803e3d6000fd5b506000805463ffffffff168152600260205260409081902080546001600160a01b0319166001600160a01b0393909316929092179091555161020390610635565b604051809103906000f08015801561021f573d6000803e3d6000fd5b5060008054640100000000900463ffffffff168152600260205260409081902080546001600160a01b0319166001600160a01b0393909316929092179091555161026890610642565b604051809103906000f080158015610284573d6000803e3d6000fd5b506000805463ffffffff168152600360205260409081902080546001600160a01b0319166001600160a01b039390931692909217909155516102c590610642565b604051809103906000f0801580156102e1573d6000803e3d6000fd5b5060008054640100000000900463ffffffff908116825260036020908152604080842080546001600160a01b03199081166001600160a01b039788161790915589841685526001909252808420805483168887161790559187168352818320805490911693851693909317909255905161035a9061064f565b604051809103906000f080158015610376573d6000803e3d6000fd5b50905060006040516103879061064f565b604051809103906000f0801580156103a3573d6000803e3d6000fd5b506000805463ffffffff1681526002602090815260408083205460039092529182902054915163c0c53b8b60e01b81526001600160a01b038881166004830152918216602482015291811660448301529192509083169063c0c53b8b90606401600060405180830381600087803b15801561041d57600080fd5b505af1158015610431573d6000803e3d6000fd5b505060008054640100000000900463ffffffff1681526002602090815260408083205460039092529182902054915163c0c53b8b60e01b81526001600160a01b038881166004830152918216602482015291811660448301528416925063c0c53b8b9150606401600060405180830381600087803b1580156104b257600080fd5b505af11580156104c6573d6000803e3d6000fd5b50505050816001600160a01b031663b49c53a7866104ed8461061c60201b61029e1760201c565b6040516001600160e01b031960e085901b16815263ffffffff9290921660048301526024820152604401600060405180830381600087803b15801561053157600080fd5b505af1158015610545573d6000803e3d6000fd5b50505050806001600160a01b031663b49c53a78761056c8561061c60201b61029e1760201c565b6040516001600160e01b031960e085901b16815263ffffffff9290921660048301526024820152604401600060405180830381600087803b1580156105b057600080fd5b505af11580156105c4573d6000803e3d6000fd5b5050505063ffffffff95861660009081526004602052604080822080546001600160a01b03199081166001600160a01b0396871617909155969097168152959095208054909416941693909317909155506106a89050565b6001600160a01b031690565b610e2d806109d183390190565b610a55806117fe83390190565b6101f88061225383390190565b6126cb8061244b83390190565b805163ffffffff8116811461067057600080fd5b919050565b6000806040838503121561068857600080fd5b6106918361065c565b915061069f6020840161065c565b90509250929050565b61031a806106b76000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c8063f11a367e11610050578063f11a367e14610142578063f9d2692d14610178578063f9f312ad1461018257600080fd5b80635a007b7e146100775780637a7eada3146100d6578063e9ee46951461010c575b600080fd5b6100ad6100853660046102b7565b60036020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100ad6100e43660046102b7565b60026020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6100ad61011a3660046102b7565b60046020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6100ad6101503660046102b7565b60016020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b61018061018a565b005b61018061021d565b6000805463ffffffff168152600160205260408082205481517f1605c306000000000000000000000000000000000000000000000000000000008152915173ffffffffffffffffffffffffffffffffffffffff90911692631605c306926004808201939182900301818387803b15801561020357600080fd5b505af1158015610217573d6000803e3d6000fd5b50505050565b60008054640100000000900463ffffffff168152600160205260408082205481517f1605c306000000000000000000000000000000000000000000000000000000008152915173ffffffffffffffffffffffffffffffffffffffff90911692631605c306926004808201939182900301818387803b15801561020357600080fd5b73ffffffffffffffffffffffffffffffffffffffff1690565b6000602082840312156102c957600080fd5b813563ffffffff811681146102dd57600080fd5b939250505056fea2646970667358221220a07c9079c93087151b354b30b7bf8ab6829d537d90c64aafd33a20e57c0b81c764736f6c6343000811003360c0604052600060a0819052808055600181905560025534801561002257600080fd5b50604051610e2d380380610e2d8339810160408190526100419161004f565b63ffffffff1660805261007c565b60006020828403121561006157600080fd5b815163ffffffff8116811461007557600080fd5b9392505050565b60805160a051610d866100a7600039600060dd01526000818161022f01526107500152610d866000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c806392d28b3d11610081578063d12164e41161005b578063d12164e414610251578063fa31de011461025a578063fd10ebe51461026d57600080fd5b806392d28b3d146101ac578063a3b4919f146101cf578063c2fb26a61461022a57600080fd5b806359b3f6e0116100b257806359b3f6e0146101195780638209d31214610182578063924324aa1461019957600080fd5b80631605c306146100ce57806354fd4d50146100d8575b600080fd5b6100d6610276565b005b6100ff7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020015b60405180910390f35b6100d6610127366004610811565b63ffffffff91909116600090815260036020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055565b61018b60015481565b604051908152602001610110565b6100d66101a7366004610891565b61043a565b6101bf6101ba36600461090b565b610599565b6040516101109493929190610988565b6102056101dd3660046109d7565b60036020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610110565b6100ff7f000000000000000000000000000000000000000000000000000000000000000081565b61018b60025481565b61018b6102683660046109f9565b61066f565b61018b60005481565b6002805460009081526004602090815260408083208151608081018352815463ffffffff8116825273ffffffffffffffffffffffffffffffffffffffff6401000000009091048116948201949094526001820154909316918301919091529283018054929391926060840191906102ec90610a53565b80601f016020809104026020016040519081016040528092919081815260200182805461031890610a53565b80156103655780601f1061033a57610100808354040283529160200191610365565b820191906000526020600020905b81548152906001019060200180831161034857829003601f168201915b5050505050815250509050806040015173ffffffffffffffffffffffffffffffffffffffff166356d5d47582600001516103cc846020015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1690565b84606001516040518463ffffffff1660e01b81526004016103ef93929190610aa6565b600060405180830381600087803b15801561040957600080fd5b505af115801561041d573d6000803e3d6000fd5b50506002805492509050600061043283610ad4565b919050555050565b60405180608001604052808663ffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff16815260200183838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525093909452505060018054825260046020908152604092839020855181549287015163ffffffff9091167fffffffffffffffff0000000000000000000000000000000000000000000000009093169290921764010000000073ffffffffffffffffffffffffffffffffffffffff938416021781559285015191830180547fffffffffffffffffffffffff000000000000000000000000000000000000000016929091169190911790556060830151909150600282019061057a9082610bb1565b5050600180549150600061058d83610ad4565b91905055505050505050565b60046020526000908152604090208054600182015460028301805463ffffffff84169464010000000090940473ffffffffffffffffffffffffffffffffffffffff9081169493169291906105ec90610a53565b80601f016020809104026020016040519081016040528092919081815260200182805461061890610a53565b80156106655780601f1061063a57610100808354040283529160200191610665565b820191906000526020600020905b81548152906001019060200180831161064857829003601f168201915b5050505050905084565b63ffffffff841660009081526003602052604081205473ffffffffffffffffffffffffffffffffffffffff1680610706576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d697373696e672072656d6f7465206d61696c626f7800000000000000000000604482015260640160405180910390fd5b6040517f924324aa00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063924324aa90610780907f00000000000000000000000000000000000000000000000000000000000000009033908a908a908a90600401610ccb565b600060405180830381600087803b15801561079a57600080fd5b505af11580156107ae573d6000803e3d6000fd5b50506000805492509050806107c283610ad4565b909155506000979650505050505050565b803563ffffffff811681146107e757600080fd5b919050565b73ffffffffffffffffffffffffffffffffffffffff8116811461080e57600080fd5b50565b6000806040838503121561082457600080fd5b61082d836107d3565b9150602083013561083d816107ec565b809150509250929050565b60008083601f84011261085a57600080fd5b50813567ffffffffffffffff81111561087257600080fd5b60208301915083602082850101111561088a57600080fd5b9250929050565b6000806000806000608086880312156108a957600080fd5b6108b2866107d3565b945060208601356108c2816107ec565b935060408601356108d2816107ec565b9250606086013567ffffffffffffffff8111156108ee57600080fd5b6108fa88828901610848565b969995985093965092949392505050565b60006020828403121561091d57600080fd5b5035919050565b6000815180845260005b8181101561094a5760208185018101518683018201520161092e565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b63ffffffff85168152600073ffffffffffffffffffffffffffffffffffffffff8086166020840152808516604084015250608060608301526109cd6080830184610924565b9695505050505050565b6000602082840312156109e957600080fd5b6109f2826107d3565b9392505050565b60008060008060608587031215610a0f57600080fd5b610a18856107d3565b935060208501359250604085013567ffffffffffffffff811115610a3b57600080fd5b610a4787828801610848565b95989497509550505050565b600181811c90821680610a6757607f821691505b602082108103610aa0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b63ffffffff84168152826020820152606060408201526000610acb6060830184610924565b95945050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610b2c577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f821115610bac57600081815260208120601f850160051c81016020861015610b895750805b601f850160051c820191505b81811015610ba857828155600101610b95565b5050505b505050565b815167ffffffffffffffff811115610bcb57610bcb610b33565b610bdf81610bd98454610a53565b84610b62565b602080601f831160018114610c325760008415610bfc5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610ba8565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015610c7f57888601518255948401946001909101908401610c60565b5085821015610cbb57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b63ffffffff86168152600073ffffffffffffffffffffffffffffffffffffffff808716602084015280861660408401525060806060830152826080830152828460a0840137600060a0848401015260a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501168301019050969550505050505056fea264697066735822122050acc55b43f4fd212e40353cfc859a30f004e16849458c3e1566e8dc26381d2464736f6c63430008110033608060405234801561001057600080fd5b5061001961001e565b610266565b600054610100900460ff161580801561003e5750600054600160ff909116105b8061006957506100573061014560201b6104a01760201c565b158015610069575060005460ff166001145b6100d15760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff1916600117905580156100f4576000805461ff0019166101001790555b6100fc610154565b8015610142576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b6001600160a01b03163b151590565b600054610100900460ff166101ad5760405162461bcd60e51b815260206004820152602b6024820152600080516020610a3583398151915260448201526a6e697469616c697a696e6760a81b60648201526084016100c8565b6101b56101b7565b565b600054610100900460ff166102105760405162461bcd60e51b815260206004820152602b6024820152600080516020610a3583398151915260448201526a6e697469616c697a696e6760a81b60648201526084016100c8565b6101b533603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6107c0806102756000396000f3fe6080604052600436106100655760003560e01c80638129fc1c116100435780638129fc1c146100a95780638da5cb5b146100be578063f2fde38b146100f757600080fd5b806311bf2c181461006a5780634e71d92d1461007f578063715018a614610094575b600080fd5b61007d610078366004610717565b610117565b005b34801561008b57600080fd5b5061007d610157565b3480156100a057600080fd5b5061007d610247565b3480156100b557600080fd5b5061007d61025b565b3480156100ca57600080fd5b506033546040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561010357600080fd5b5061007d610112366004610768565b6103ec565b6040805183815234602082015285917ff715e66d2cd2a0179069dcda2a41a4da36a30e1aad12187fbb7c5d100afd621c910160405180910390a250505050565b600061017860335473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff164760405160006040518083038185875af1925050503d80600081146101cf576040519150601f19603f3d011682016040523d82523d6000602084013e6101d4565b606091505b5050905080610244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f217472616e73666572000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b50565b61024f6104bc565b610259600061053d565b565b600054610100900460ff161580801561027b5750600054600160ff909116105b806102955750303b158015610295575060005460ff166001145b610321576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161023b565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561037f57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6103876105b4565b801561024457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b6103f46104bc565b73ffffffffffffffffffffffffffffffffffffffff8116610497576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161023b565b6102448161053d565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b60335473ffffffffffffffffffffffffffffffffffffffff163314610259576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161023b565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff1661064b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161023b565b610259600054610100900460ff166106e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161023b565b6102593361053d565b803573ffffffffffffffffffffffffffffffffffffffff8116811461071257600080fd5b919050565b6000806000806080858703121561072d57600080fd5b84359350602085013563ffffffff8116811461074857600080fd5b92506040850135915061075d606086016106ee565b905092959194509250565b60006020828403121561077a57600080fd5b610783826106ee565b939250505056fea2646970667358221220e1b32a90580df10e30b06aac8f6b1a34fbcd59f2312034e3bb1afb3737fa110d64736f6c63430008110033496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069608060405234801561001057600080fd5b506101d8806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80632852b71c146100465780634fc3aa7c14610067578063f7e83aee146100a8575b600080fd5b6000546100539060ff1681565b604051901515815260200160405180910390f35b6100a66100753660046100c4565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b005b6100536100b6366004610136565b60005460ff16949350505050565b6000602082840312156100d657600080fd5b813580151581146100e657600080fd5b9392505050565b60008083601f8401126100ff57600080fd5b50813567ffffffffffffffff81111561011757600080fd5b60208301915083602082850101111561012f57600080fd5b9250929050565b6000806000806040858703121561014c57600080fd5b843567ffffffffffffffff8082111561016457600080fd5b610170888389016100ed565b9096509450602087013591508082111561018957600080fd5b50610196878288016100ed565b9598949750955050505056fea26469706673582212201a95840450c9fd2015250f4fd92fbf3fb8f81ee8e95e6c7442174ba1c1c6d27a64736f6c63430008110033608060405234801561001057600080fd5b5061001a3361001f565b610071565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b61264b806100806000396000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c80638da5cb5b116100cd578063de523cf311610081578063f1bd6f0a11610066578063f1bd6f0a146102e9578063f2fde38b146102fc578063f3c61d6b1461030f57600080fd5b8063de523cf3146102b6578063e9198bf9146102d657600080fd5b8063b49c53a7116100b2578063b49c53a714610270578063c0c53b8b14610283578063d5438eae1461029657600080fd5b80638da5cb5b1461023f57806395b1f3b31461025d57600080fd5b806339bb4ad911610124578063715018a611610109578063715018a61461021c5780638129fc1c1461022457806388b755141461022c57600080fd5b806339bb4ad9146101c457806356d5d4751461020957600080fd5b80630e72cc06146101565780631227dba91461016b5780632222b452146101915780632ead72f6146101a4575b600080fd5b610169610164366004611a09565b610322565b005b61017e610179366004611d00565b610336565b6040519081526020015b60405180910390f35b61017e61019f366004611dbd565b61043b565b61017e6101b2366004611e50565b60986020526000908152604090205481565b6066546101e49073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610188565b610169610217366004611e6b565b610595565b610169610698565b6101696106ac565b61016961023a366004611f0a565b61083e565b60335473ffffffffffffffffffffffffffffffffffffffff166101e4565b61017e61026b366004611f4c565b610949565b61016961027e366004611fbf565b610a4d565b610169610291366004611fe9565b610a63565b6065546101e49073ffffffffffffffffffffffffffffffffffffffff1681565b6067546101e49073ffffffffffffffffffffffffffffffffffffffff1681565b6101696102e4366004612034565b610bfb565b6101696102f7366004611a09565b610cd8565b61016961030a366004611a09565b610ce9565b61016961031d366004611a09565b610d9d565b61032a610dae565b61033381610e2f565b50565b600081518351146103ce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f496e746572636861696e5175657279526f757465723a2063616c6c7320616e6460448201527f2063616c6c6261636b73206d7573742062652073616d65206c656e677468000060648201526084015b60405180910390fd5b6103fe8460003386866040516020016103ea94939291906121c1565b604051602081830303815290604052610f1e565b604051909150339063ffffffff8616907f11c97c784c298562a796345417aa40e1ce110e6b100f41b801ab23414f72d7e590600090a39392505050565b604080516001808252818301909252600091829190816020015b60408051808201909152600081526060602082015281526020019060019003908161045557905050905060405180604001604052808873ffffffffffffffffffffffffffffffffffffffff16815260200187878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525093909452505083518492506104ef576104ef61228c565b6020908102919091010152604080516001808252818301909252600091816020015b606081526020019060019003908161051157905050905084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052508551869450909250151590506105725761057261228c565b6020026020010181905250610588898383610336565b9998505050505050505050565b60655473ffffffffffffffffffffffffffffffffffffffff163314610616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f216d61696c626f7800000000000000000000000000000000000000000000000060448201526064016103c5565b63ffffffff84166000908152609860205260409020548490849081146040518060800160405280604381526020016125d36043913990610683576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c591906122bb565b5061069086868686610fd2565b505050505050565b6106a0610dae565b6106aa6000611116565b565b600054610100900460ff16158080156106cc5750600054600160ff909116105b806106e65750303b1580156106e6575060005460ff166001145b610772576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016103c5565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156107d057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6107d933611116565b801561033357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b610846610dae565b60005b81811015610944576000808484848181106108665761086661228c565b905060200281019061087891906122ce565b610886906020810190611a09565b73ffffffffffffffffffffffffffffffffffffffff168585858181106108ae576108ae61228c565b90506020028101906108c091906122ce565b6108ce90602081019061230c565b6040516108dc929190612371565b6000604051808303816000865af19150503d8060008114610919576040519150601f19603f3d011682016040523d82523d6000602084013e61091e565b606091505b50915091508161092f578060208201fd5b5061093d90506001826123b0565b9050610849565b505050565b604080516001808252818301909252600091829190816020015b604080518082019091526000815260606020820152815260200190600190039081610963579050509050610996856123c3565b816000815181106109a9576109a961228c565b6020908102919091010152604080516001808252818301909252600091816020015b60608152602001906001900390816109cb57905050905084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250855186945090925015159050610a2c57610a2c61228c565b6020026020010181905250610a42878383610336565b979650505050505050565b610a55610dae565b610a5f828261118d565b5050565b600054610100900460ff1615808015610a835750600054600160ff909116105b80610a9d5750303b158015610a9d575060005460ff166001145b610b29576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016103c5565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610b8757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610b928484846111d1565b8015610bf557600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b610c03610dae565b828114610c6c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e6774680000000000000000000000000000000000000000000000000060448201526064016103c5565b60005b83811015610cd157610cbf858583818110610c8c57610c8c61228c565b9050602002016020810190610ca19190611e50565b848484818110610cb357610cb361228c565b9050602002013561118d565b610cca6001826123b0565b9050610c6f565b5050505050565b610ce0610dae565b6103338161127b565b610cf1610dae565b73ffffffffffffffffffffffffffffffffffffffff8116610d94576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103c5565b61033381611116565b610da5610dae565b6103338161136a565b60335473ffffffffffffffffffffffffffffffffffffffff1633146106aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103c5565b8073ffffffffffffffffffffffffffffffffffffffff81163b610eae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016103c5565b606780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517ffec811ed4e60aebdaf7a79cad8a97196bf56e35362f039705598226d30c9d24890600090a25050565b600080610f2a84611459565b6065546040517ffa31de0100000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff169063fa31de0190610f85908790859088906004016123cf565b6020604051808303816000875af1158015610fa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc891906123fd565b9150505b92915050565b6000610fe082840184612425565b90506000816001811115610ff657610ff6612094565b0361108d576000808061100b85870187612440565b93509350935050600061101e83836114cf565b905061103a89600186846040516020016103ea939291906124c7565b5060405173ffffffffffffffffffffffffffffffffffffffff85169063ffffffff8b16907f23765aea2e90cfa5dadac549945f61c017334d01a9f242f49a070d9fb9a04a4690600090a350505050610cd1565b60018160018111156110a1576110a1612094565b03610cd1576000806110b584860186612503565b92509250506110c482826116b1565b60405173ffffffffffffffffffffffffffffffffffffffff83169063ffffffff8916907fc4416e2fcdf8514178829e5ead195eb13f3241ea71c0e38f998868fe81e4226990600090a350505050505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b63ffffffff8216600081815260986020526040808220849055518392917f97fd51fef1f80c854cbd0150c248e8b2ac4ecdc97cc05e742b5f61c9f4dc645891a35050565b600054610100900460ff16611268576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016103c5565b61127181610e2f565b6109448383611766565b8073ffffffffffffffffffffffffffffffffffffffff81163b6112fa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016103c5565b606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517fb87f5a0bface22cde699143559fb99f990ae54eea236995fc54178af91af859f90600090a25050565b8073ffffffffffffffffffffffffffffffffffffffff81163b6113e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016103c5565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517f7a61e573722ff8b205c8962b59d37e7d30573f368965597a844a94872204ebd790600090a25050565b63ffffffff81166000908152609860209081526040918290205482516080810190935260438084529092831515929091906125d390830139906114c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c591906122bb565b50919050565b6060815167ffffffffffffffff8111156114eb576114eb611a46565b60405190808252806020026020018201604052801561151e57816020015b60608152602001906001900390816115095790505b50905060005b83518110156116aa576000808583815181106115425761154261228c565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff168684815181106115765761157661228c565b60200260200101516020015160405161158f9190612559565b6000604051808303816000865af19150503d80600081146115cc576040519150601f19603f3d011682016040523d82523d6000602084013e6115d1565b606091505b50915091508161163d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d756c746963616c6c3a2063616c6c206661696c65640000000000000000000060448201526064016103c5565b84838151811061164f5761164f61228c565b60200260200101518160405160200161166992919061256b565b60405160208183030381529060405284848151811061168a5761168a61228c565b6020026020010181905250505080806116a29061259a565b915050611524565b5092915050565b60005b8151811015610944576000808473ffffffffffffffffffffffffffffffffffffffff168484815181106116e9576116e961228c565b60200260200101516040516116fe9190612559565b6000604051808303816000865af19150503d806000811461173b576040519150601f19603f3d011682016040523d82523d6000602084013e611740565b606091505b509150915081611751578060208201fd5b5061175f90506001826123b0565b90506116b4565b600054610100900460ff166117fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016103c5565b6118068161127b565b610a5f82600054610100900460ff166118a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016103c5565b6118aa8161136a565b610333600054610100900460ff16611944576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016103c5565b6106aa600054610100900460ff166119de576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016103c5565b6106aa33611116565b73ffffffffffffffffffffffffffffffffffffffff8116811461033357600080fd5b600060208284031215611a1b57600080fd5b8135611a26816119e7565b9392505050565b803563ffffffff81168114611a4157600080fd5b919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715611abc57611abc611a46565b604052919050565b600067ffffffffffffffff821115611ade57611ade611a46565b5060051b60200190565b600082601f830112611af957600080fd5b813567ffffffffffffffff811115611b1357611b13611a46565b611b4460207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601611a75565b818152846020838601011115611b5957600080fd5b816020850160208301376000918101602001919091529392505050565b600060408284031215611b8857600080fd5b6040516040810167ffffffffffffffff8282108183111715611bac57611bac611a46565b8160405282935084359150611bc0826119e7565b90825260208401359080821115611bd657600080fd5b50611be385828601611ae8565b6020830152505092915050565b600082601f830112611c0157600080fd5b81356020611c16611c1183611ac4565b611a75565b82815260059290921b84018101918181019086841115611c3557600080fd5b8286015b84811015611c7557803567ffffffffffffffff811115611c595760008081fd5b611c678986838b0101611b76565b845250918301918301611c39565b509695505050505050565b600082601f830112611c9157600080fd5b81356020611ca1611c1183611ac4565b82815260059290921b84018101918181019086841115611cc057600080fd5b8286015b84811015611c7557803567ffffffffffffffff811115611ce45760008081fd5b611cf28986838b0101611ae8565b845250918301918301611cc4565b600080600060608486031215611d1557600080fd5b611d1e84611a2d565b9250602084013567ffffffffffffffff80821115611d3b57600080fd5b611d4787838801611bf0565b93506040860135915080821115611d5d57600080fd5b50611d6a86828701611c80565b9150509250925092565b60008083601f840112611d8657600080fd5b50813567ffffffffffffffff811115611d9e57600080fd5b602083019150836020828501011115611db657600080fd5b9250929050565b60008060008060008060808789031215611dd657600080fd5b611ddf87611a2d565b95506020870135611def816119e7565b9450604087013567ffffffffffffffff80821115611e0c57600080fd5b611e188a838b01611d74565b90965094506060890135915080821115611e3157600080fd5b50611e3e89828a01611d74565b979a9699509497509295939492505050565b600060208284031215611e6257600080fd5b611a2682611a2d565b60008060008060608587031215611e8157600080fd5b611e8a85611a2d565b935060208501359250604085013567ffffffffffffffff811115611ead57600080fd5b611eb987828801611d74565b95989497509550505050565b60008083601f840112611ed757600080fd5b50813567ffffffffffffffff811115611eef57600080fd5b6020830191508360208260051b8501011115611db657600080fd5b60008060208385031215611f1d57600080fd5b823567ffffffffffffffff811115611f3457600080fd5b611f4085828601611ec5565b90969095509350505050565b60008060008060608587031215611f6257600080fd5b611f6b85611a2d565b9350602085013567ffffffffffffffff80821115611f8857600080fd5b9086019060408289031215611f9c57600080fd5b90935060408601359080821115611fb257600080fd5b50611eb987828801611d74565b60008060408385031215611fd257600080fd5b611fdb83611a2d565b946020939093013593505050565b600080600060608486031215611ffe57600080fd5b8335612009816119e7565b92506020840135612019816119e7565b91506040840135612029816119e7565b809150509250925092565b6000806000806040858703121561204a57600080fd5b843567ffffffffffffffff8082111561206257600080fd5b61206e88838901611ec5565b9096509450602087013591508082111561208757600080fd5b50611eb987828801611ec5565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600281106120fa577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b60005b83811015612119578181015183820152602001612101565b50506000910152565b6000815180845261213a8160208601602086016120fe565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b600081518084526020808501808196508360051b8101915082860160005b858110156121b45782840389526121a2848351612122565b9885019893509084019060010161218a565b5091979650505050505050565b6000608082016121d183886120c3565b602073ffffffffffffffffffffffffffffffffffffffff80881682860152604060808187015283885180865260a08801915060a08160051b8901019550848a0160005b82811015612273578988037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600184528151805187168952870151878901869052612260868a0182612122565b9850509286019290860190600101612214565b505050505050508281036060840152610a42818561216c565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602081526000611a266020830184612122565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc183360301811261230257600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261234157600080fd5b83018035915067ffffffffffffffff82111561235c57600080fd5b602001915036819003821315611db657600080fd5b8183823760009101908152919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610fcc57610fcc612381565b6000610fcc3683611b76565b63ffffffff841681528260208201526060604082015260006123f46060830184612122565b95945050505050565b60006020828403121561240f57600080fd5b5051919050565b803560028110611a4157600080fd5b60006020828403121561243757600080fd5b611a2682612416565b6000806000806080858703121561245657600080fd5b61245f85612416565b9350602085013561246f816119e7565b9250604085013567ffffffffffffffff8082111561248c57600080fd5b61249888838901611bf0565b935060608701359150808211156124ae57600080fd5b506124bb87828801611c80565b91505092959194509250565b6124d181856120c3565b73ffffffffffffffffffffffffffffffffffffffff831660208201526060604082015260006123f4606083018461216c565b60008060006060848603121561251857600080fd5b61252184612416565b92506020840135612531816119e7565b9150604084013567ffffffffffffffff81111561254d57600080fd5b611d6a86828701611c80565b600082516123028184602087016120fe565b6000835161257d8184602088016120fe565b8351908301906125918183602088016120fe565b01949350505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036125cb576125cb612381565b506001019056fe4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e2e2044696420796f7520737065636966792074686520726967687420646f6d61696e2049443fa26469706673582212207c2954d57b49f61bc6b6829ad748fc9bed727011993e7c331befe5d6c433567b64736f6c63430008110033";
133
+ const _bytecode = "0x608060405234801561001057600080fd5b506040516200488d3803806200488d833981016040819052610031916106c1565b6000805463ffffffff838116640100000000026001600160401b03199092169085161717815560405161006390610670565b604051809103906000f08015801561007f573d6000803e3d6000fd5b509050600083826040516100929061067e565b63ffffffff90921682526001600160a01b03166020820152604001604051809103906000f0801580156100c9573d6000803e3d6000fd5b50905060006040516100da90610670565b604051809103906000f0801580156100f6573d6000803e3d6000fd5b509050600084826040516101099061067e565b63ffffffff90921682526001600160a01b03166020820152604001604051809103906000f080158015610140573d6000803e3d6000fd5b5063ffffffff808816600081815260016020908152604080832080546001600160a01b03808c166001600160a01b031992831617909255958c168085528285208054838a16908916179055948452600290925280832080548984169087161790559282528282208054918a16919094161790925551919250906101c29061068c565b604051809103906000f0801580156101de573d6000803e3d6000fd5b50905060006040516101ef9061068c565b604051809103906000f08015801561020b573d6000803e3d6000fd5b50604051600162dfb0c560e01b031981526001600160a01b0387811660048301529192509083169063ff204f3b90602401600060405180830381600087803b15801561025657600080fd5b505af115801561026a573d6000803e3d6000fd5b50506040516302100c7160e41b815263ffffffff8a1660048201526001600160a01b03898116602483015284169250632100c7109150604401600060405180830381600087803b1580156102bd57600080fd5b505af11580156102d1573d6000803e3d6000fd5b5050604051600162dfb0c560e01b031981526001600160a01b0386811660048301528416925063ff204f3b9150602401600060405180830381600087803b15801561031b57600080fd5b505af115801561032f573d6000803e3d6000fd5b50506040516302100c7160e41b815263ffffffff8b1660048201526001600160a01b03878116602483015285169250632100c7109150604401600060405180830381600087803b15801561038257600080fd5b505af1158015610396573d6000803e3d6000fd5b50505063ffffffff808a1660009081526003602052604080822080546001600160a01b038089166001600160a01b031992831617909255938c1683528183208054918716919094161790925590519091506103f09061069a565b604051809103906000f08015801561040c573d6000803e3d6000fd5b509050600060405161041d9061069a565b604051809103906000f080158015610439573d6000803e3d6000fd5b5060405163c0c53b8b60e01b81523060048201526001600160a01b038681166024830152600060448301529192509083169063c0c53b8b90606401600060405180830381600087803b15801561048e57600080fd5b505af11580156104a2573d6000803e3d6000fd5b505060405163c0c53b8b60e01b81523060048201526001600160a01b038681166024830152600060448301528416925063c0c53b8b9150606401600060405180830381600087803b1580156104f657600080fd5b505af115801561050a573d6000803e3d6000fd5b50505050816001600160a01b031663b49c53a78a6105318461066460201b6102e51760201c565b6040516001600160e01b031960e085901b16815263ffffffff9290921660048301526024820152604401600060405180830381600087803b15801561057557600080fd5b505af1158015610589573d6000803e3d6000fd5b50505050806001600160a01b031663b49c53a78b6105b08561066460201b6102e51760201c565b6040516001600160e01b031960e085901b16815263ffffffff9290921660048301526024820152604401600060405180830381600087803b1580156105f457600080fd5b505af1158015610608573d6000803e3d6000fd5b5050505063ffffffff998a1660009081526004602052604080822080546001600160a01b03199081166001600160a01b03968716179091559a909b168152999099208054909816981697909717909555506106f4945050505050565b6001600160a01b031690565b6106a38062000a6583390190565b61030c806200110883390190565b61100d806200141483390190565b61246c806200242183390190565b805163ffffffff811681146106bc57600080fd5b919050565b600080604083850312156106d457600080fd5b6106dd836106a8565b91506106eb602084016106a8565b90509250929050565b61036180620007046000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063d34036f51161005b578063d34036f514610153578063e9ee469514610189578063f9d2692d146101bf578063f9f312ad146101c957600080fd5b806387594461146100825780639da05e4c146100e1578063c20b28b21461011d575b600080fd5b6100b86100903660046102fe565b60036020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100b86100ef3660046102fe565b63ffffffff1660009081526003602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b6100b861012b3660046102fe565b60026020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6100b86101613660046102fe565b60016020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6100b86101973660046102fe565b60046020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6101c76101d1565b005b6101c7610264565b6000805463ffffffff168152600260205260408082205481517ff9f312ad000000000000000000000000000000000000000000000000000000008152915173ffffffffffffffffffffffffffffffffffffffff9091169263f9f312ad926004808201939182900301818387803b15801561024a57600080fd5b505af115801561025e573d6000803e3d6000fd5b50505050565b60008054640100000000900463ffffffff168152600260205260408082205481517ff9f312ad000000000000000000000000000000000000000000000000000000008152915173ffffffffffffffffffffffffffffffffffffffff9091169263f9f312ad926004808201939182900301818387803b15801561024a57600080fd5b73ffffffffffffffffffffffffffffffffffffffff1690565b60006020828403121561031057600080fd5b813563ffffffff8116811461032457600080fd5b939250505056fea26469706673582212201bc280605efab9c1b7a56550fd29bf277a3a268b1ee5f72b250ba276ce85aaa564736f6c6343000810003360806040526000600155600060025534801561001a57600080fd5b506106798061002a6000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063a098e0551461003b578063f9f312ad14610050575b600080fd5b61004e6100493660046102c8565b610058565b005b61004e610105565b6040805160808101825263ffffffff86811682526020808301878152838501878152606085018781526001805460009081529485905296909320855181547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000016951694909417845590519483019490945592516002820155915190919060038201906100e49082610468565b5090505060018060008282546100fa9190610582565b909155505050505050565b600280546000908152602081815260408083208151608081018352815463ffffffff168152600182015493810193909352938401549082015260038301805492939192606084019190610157906103c6565b80601f0160208091040260200160405190810160405280929190818152602001828054610183906103c6565b80156101d05780601f106101a5576101008083540402835291602001916101d0565b820191906000526020600020905b8154815290600101906020018083116101b357829003601f168201915b505050505081525050905060006101e8826040015190565b8251602084015160608501516040517f56d5d47500000000000000000000000000000000000000000000000000000000815293945073ffffffffffffffffffffffffffffffffffffffff8516936356d5d4759361024b93909290916004016105c2565b600060405180830381600087803b15801561026557600080fd5b505af1158015610279573d6000803e3d6000fd5b505050506001600260008282546102909190610582565b90915550505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080600080608085870312156102de57600080fd5b843563ffffffff811681146102f257600080fd5b93506020850135925060408501359150606085013567ffffffffffffffff8082111561031d57600080fd5b818701915087601f83011261033157600080fd5b81358181111561034357610343610299565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561038957610389610299565b816040528281528a60208487010111156103a257600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b600181811c908216806103da57607f821691505b602082108103610413577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f82111561046357600081815260208120601f850160051c810160208610156104405750805b601f850160051c820191505b8181101561045f5782815560010161044c565b5050505b505050565b815167ffffffffffffffff81111561048257610482610299565b6104968161049084546103c6565b84610419565b602080601f8311600181146104e957600084156104b35750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b17855561045f565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561053657888601518255948401946001909101908401610517565b508582101561057257878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156105bc577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b92915050565b63ffffffff8416815260006020848184015260606040840152835180606085015260005b81811015610602578581018301518582016080015282016105e6565b5060006080828601015260807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505094935050505056fea2646970667358221220a796d8a7b91beec44a5a1ab9c32ddfb80e71f7ceee941be506115288694960f664736f6c63430008100033608060405234801561001057600080fd5b5060405161030c38038061030c83398101604081905261002f91610071565b600080546001600160c01b031916600160a01b63ffffffff94909416939093026001600160a01b031916929092176001600160a01b03919091161790556100c0565b6000806040838503121561008457600080fd5b825163ffffffff8116811461009857600080fd5b60208401519092506001600160a01b03811681146100b557600080fd5b809150509250929050565b61023d806100cf6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063fa31de0114610030575b600080fd5b61004361003e36600461010d565b610055565b60405190815260200160405180910390f35b600080546040517fa098e05500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169163a098e055916100d09174010000000000000000000000000000000000000000900463ffffffff1690339089908990899060040161019f565b600060405180830381600087803b1580156100ea57600080fd5b505af11580156100fe573d6000803e3d6000fd5b50600198975050505050505050565b6000806000806060858703121561012357600080fd5b843563ffffffff8116811461013757600080fd5b935060208501359250604085013567ffffffffffffffff8082111561015b57600080fd5b818701915087601f83011261016f57600080fd5b81358181111561017e57600080fd5b88602082850101111561019057600080fd5b95989497505060200194505050565b63ffffffff8616815284602082015283604082015260806060820152816080820152818360a0830137600081830160a090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010194935050505056fea2646970667358221220f86feeba81dbabe995ec8e1f19556e02f7113538b179950ddeae358fa5fd8a4b64736f6c63430008100033608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610f8f8061007e6000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c80638d3638f411610081578063ce11e6ab1161005b578063ce11e6ab146101f3578063f2fde38b14610213578063ff204f3b1461022657600080fd5b80638d3638f41461018c5780638da5cb5b14610194578063cdc5d734146101d357600080fd5b8063448f904a116100b2578063448f904a14610136578063715018a6146101495780637904ffb71461015157600080fd5b80632100c710146100ce578063282f51eb146100e3575b600080fd5b6100e16100dc366004610d8c565b610239565b005b6101216100f1366004610dc1565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205463ffffffff16151590565b60405190151581526020015b60405180910390f35b6100e1610144366004610dc1565b610497565b6100e1610524565b61017761015f366004610dc1565b60026020526000908152604090205463ffffffff1681565b60405163ffffffff909116815260200161012d565b6101776105b1565b60005473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161012d565b6101e66101e1366004610ddc565b61064a565b60405161012d9190610e00565b6001546101ae9073ffffffffffffffffffffffffffffffffffffffff1681565b6100e1610221366004610dc1565b61071b565b6100e1610234366004610dc1565b610848565b60005473ffffffffffffffffffffffffffffffffffffffff1633146102bf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81163b61033d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f696e626f782021636f6e7472616374000000000000000000000000000000000060448201526064016102b6565b73ffffffffffffffffffffffffffffffffffffffff811660009081526002602052604090205463ffffffff16156103d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f616c726561647920696e626f780000000000000000000000000000000000000060448201526064016102b6565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260026020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff878116918217909255845260039092529091206104409183906109b616565b5060405173ffffffffffffffffffffffffffffffffffffffff8216815263ffffffff8316907f4d2727478f0991174aa9ce47ef7abbde975765cc9fc1f8e239c1737bb70059c3906020015b60405180910390a25050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610518576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102b6565b610521816109e1565b50565b60005473ffffffffffffffffffffffffffffffffffffffff1633146105a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102b6565b6105af6000610b38565b565b600154604080517f8d3638f4000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691638d3638f49160048083019260209291908290030181865afa158015610621573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106459190610e5a565b905090565b63ffffffff8116600090815260036020526040812060609161066b82610bad565b905060008167ffffffffffffffff81111561068857610688610e77565b6040519080825280602002602001820160405280156106b1578160200160208202803683370190505b50905060005b82811015610712576106c98482610bb7565b8282815181106106db576106db610ea6565b73ffffffffffffffffffffffffffffffffffffffff9092166020928302919091019091015261070b600182610f04565b90506106b7565b50949350505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461079c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102b6565b73ffffffffffffffffffffffffffffffffffffffff811661083f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102b6565b61052181610b38565b60005473ffffffffffffffffffffffffffffffffffffffff1633146108c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102b6565b73ffffffffffffffffffffffffffffffffffffffff81163b610947576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6f7574626f782021636f6e74726163740000000000000000000000000000000060448201526064016102b6565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f0bff4fc5e4cd8fc762bca2b6ff29e3b73a463474097b3f1e972ed2a167b534a790600090a250565b60006109d88373ffffffffffffffffffffffffffffffffffffffff8416610bc3565b90505b92915050565b73ffffffffffffffffffffffffffffffffffffffff811660009081526002602090815260408083205463ffffffff908116808552600390935292209091610a2b91908490610c1216565b610a91576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6e6f7420656e726f6c6c6564000000000000000000000000000000000000000060448201526064016102b6565b63ffffffff8082166000908152600360205260409020610ab3918490610c1216565b5073ffffffffffffffffffffffffffffffffffffffff821660008181526002602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000169055905191825263ffffffff8316917ff2e3d7483b67ee71de83343d173eb00829d4aff848f743b64b49a9dff2182186910161048b565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006109db825490565b60006109d88383610c34565b6000818152600183016020526040812054610c0a575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556109db565b5060006109db565b60006109d88373ffffffffffffffffffffffffffffffffffffffff8416610c5e565b6000826000018281548110610c4b57610c4b610ea6565b9060005260206000200154905092915050565b60008181526001830160205260408120548015610d47576000610c82600183610f17565b8554909150600090610c9690600190610f17565b9050818114610cfb576000866000018281548110610cb657610cb6610ea6565b9060005260206000200154905080876000018481548110610cd957610cd9610ea6565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080610d0c57610d0c610f2a565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506109db565b60009150506109db565b63ffffffff8116811461052157600080fd5b803573ffffffffffffffffffffffffffffffffffffffff81168114610d8757600080fd5b919050565b60008060408385031215610d9f57600080fd5b8235610daa81610d51565b9150610db860208401610d63565b90509250929050565b600060208284031215610dd357600080fd5b6109d882610d63565b600060208284031215610dee57600080fd5b8135610df981610d51565b9392505050565b6020808252825182820181905260009190848201906040850190845b81811015610e4e57835173ffffffffffffffffffffffffffffffffffffffff1683529284019291840191600101610e1c565b50909695505050505050565b600060208284031215610e6c57600080fd5b8151610df981610d51565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156109db576109db610ed5565b818103818111156109db576109db610ed5565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea2646970667358221220f211482c5f3fb069f2e4f8227f68815e60e21a76572e0ea01ac90140ca63b77964736f6c63430008100033608060405234801561001057600080fd5b5061001a3361001f565b610071565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6123ec806100806000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c80638da5cb5b11610097578063c0c53b8b11610066578063c0c53b8b1461024a578063e9198bf91461025d578063f1bd6f0a14610270578063f2fde38b1461028357600080fd5b80638da5cb5b146101e657806395b1f3b3146102045780639a35c35914610217578063b49c53a71461023757600080fd5b806339bb4ad9116100d357806339bb4ad91461017357806356d5d475146101b8578063715018a6146101cb57806388b75514146101d357600080fd5b80631227dba91461010557806312b1d7801461012b5780632222b452146101405780632ead72f614610153575b600080fd5b610118610113366004611a4a565b610296565b6040519081526020015b60405180910390f35b61013e610139366004611abe565b61039b565b005b61011861014e366004611b2b565b610428565b610118610161366004611bbe565b60976020526000908152604090205481565b6066546101939073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610122565b61013e6101c6366004611bd9565b610582565b61013e610673565b61013e6101e1366004611c78565b610700565b60335473ffffffffffffffffffffffffffffffffffffffff16610193565b610118610212366004611cba565b610884565b6065546101939073ffffffffffffffffffffffffffffffffffffffff1681565b61013e610245366004611d2d565b610988565b61013e610258366004611d57565b610a17565b61013e61026b366004611da2565b610adc565b61013e61027e366004611abe565b610c32565b61013e610291366004611abe565b610cbc565b6000815183511461032e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f496e746572636861696e5175657279526f757465723a2063616c6c7320616e6460448201527f2063616c6c6261636b73206d7573742062652073616d65206c656e677468000060648201526084015b60405180910390fd5b61035e84600033868660405160200161034a9493929190611f2c565b604051602081830303815290604052610de9565b604051909150339063ffffffff8616907f11c97c784c298562a796345417aa40e1ce110e6b100f41b801ab23414f72d7e590600090a39392505050565b60335473ffffffffffffffffffffffffffffffffffffffff16331461041c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610325565b61042581610e06565b50565b604080516001808252818301909252600091829190816020015b60408051808201909152600081526060602082015281526020019060019003908161044257905050905060405180604001604052808873ffffffffffffffffffffffffffffffffffffffff16815260200187878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525093909452505083518492506104dc576104dc611ff7565b6020908102919091010152604080516001808252818301909252600091816020015b60608152602001906001900390816104fe57905050905084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525085518694509092501515905061055f5761055f611ff7565b6020026020010181905250610575898383610296565b9998505050505050505050565b61058b33610e75565b6105f1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f21696e626f7800000000000000000000000000000000000000000000000000006044820152606401610325565b63ffffffff8416600090815260976020526040902054849084908114604051806080016040528060438152602001612374604391399061065e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103259190612026565b5061066b86868686610f0a565b505050505050565b60335473ffffffffffffffffffffffffffffffffffffffff1633146106f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610325565b6106fe600061104e565b565b60335473ffffffffffffffffffffffffffffffffffffffff163314610781576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610325565b60005b8181101561087f576000808484848181106107a1576107a1611ff7565b90506020028101906107b39190612039565b6107c1906020810190611abe565b73ffffffffffffffffffffffffffffffffffffffff168585858181106107e9576107e9611ff7565b90506020028101906107fb9190612039565b610809906020810190612077565b6040516108179291906120dc565b6000604051808303816000865af19150503d8060008114610854576040519150601f19603f3d011682016040523d82523d6000602084013e610859565b606091505b50915091508161086a578060208201fd5b50610878905060018261211b565b9050610784565b505050565b604080516001808252818301909252600091829190816020015b60408051808201909152600081526060602082015281526020019060019003908161089e5790505090506108d18561212e565b816000815181106108e4576108e4611ff7565b6020908102919091010152604080516001808252818301909252600091816020015b606081526020019060019003908161090657905050905084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525085518694509092501515905061096757610967611ff7565b602002602001018190525061097d878383610296565b979650505050505050565b60335473ffffffffffffffffffffffffffffffffffffffff163314610a09576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610325565b610a1382826110c5565b5050565b6000610a236001611109565b90508015610a5857600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610a618461104e565b610a6a83610e06565b610a7382611294565b8015610ad657600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60335473ffffffffffffffffffffffffffffffffffffffff163314610b5d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610325565b828114610bc6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e677468000000000000000000000000000000000000000000000000006044820152606401610325565b60005b83811015610c2b57610c19858583818110610be657610be6611ff7565b9050602002016020810190610bfb9190611bbe565b848484818110610c0d57610c0d611ff7565b905060200201356110c5565b610c2460018261211b565b9050610bc9565b5050505050565b60335473ffffffffffffffffffffffffffffffffffffffff163314610cb3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610325565b61042581611294565b60335473ffffffffffffffffffffffffffffffffffffffff163314610d3d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610325565b73ffffffffffffffffffffffffffffffffffffffff8116610de0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610325565b6104258161104e565b6000610dfd610df6611303565b848461139c565b90505b92915050565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f7c10de8878ed89478ff01b9cd8c11a5271ea8ac91d46f662e6aea7e3adf5b11f90600090a250565b6065546040517f282f51eb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152600092169063282f51eb90602401602060405180830381865afa158015610ee6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e00919061213a565b6000610f188284018461216b565b90506000816001811115610f2e57610f2e611e02565b03610fc55760008080610f4385870187612186565b935093509350506000610f56838361144d565b9050610f72896001868460405160200161034a9392919061220d565b5060405173ffffffffffffffffffffffffffffffffffffffff85169063ffffffff8b16907f23765aea2e90cfa5dadac549945f61c017334d01a9f242f49a070d9fb9a04a4690600090a350505050610c2b565b6001816001811115610fd957610fd9611e02565b03610c2b57600080610fed84860186612249565b9250925050610ffc828261162f565b60405173ffffffffffffffffffffffffffffffffffffffff83169063ffffffff8916907fc4416e2fcdf8514178829e5ead195eb13f3241ea71c0e38f998868fe81e4226990600090a350505050505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b63ffffffff8216600081815260976020526040808220849055518392917f97fd51fef1f80c854cbd0150c248e8b2ac4ecdc97cc05e742b5f61c9f4dc645891a35050565b60008054610100900460ff16156111c0578160ff16600114801561112c5750303b155b6111b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610325565b506000919050565b60005460ff808416911610611257576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610325565b50600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff92909216919091179055600190565b919050565b606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fb87f5a0bface22cde699143559fb99f990ae54eea236995fc54178af91af859f90600090a250565b606554604080517fce11e6ab000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163ce11e6ab9160048083019260209291908290030181865afa158015611373573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611397919061229f565b905090565b6000806113a8846116e4565b6040517ffa31de0100000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff86169063fa31de0190611401908790859088906004016122bc565b6020604051808303816000875af1158015611420573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061144491906122e1565b95945050505050565b6060815167ffffffffffffffff8111156114695761146961176e565b60405190808252806020026020018201604052801561149c57816020015b60608152602001906001900390816114875790505b50905060005b8351811015611628576000808583815181106114c0576114c0611ff7565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff168684815181106114f4576114f4611ff7565b60200260200101516020015160405161150d91906122fa565b6000604051808303816000865af19150503d806000811461154a576040519150601f19603f3d011682016040523d82523d6000602084013e61154f565b606091505b5091509150816115bb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d756c746963616c6c3a2063616c6c206661696c6564000000000000000000006044820152606401610325565b8483815181106115cd576115cd611ff7565b6020026020010151816040516020016115e792919061230c565b60405160208183030381529060405284848151811061160857611608611ff7565b6020026020010181905250505080806116209061233b565b9150506114a2565b5092915050565b60005b815181101561087f576000808473ffffffffffffffffffffffffffffffffffffffff1684848151811061166757611667611ff7565b602002602001015160405161167c91906122fa565b6000604051808303816000865af19150503d80600081146116b9576040519150601f19603f3d011682016040523d82523d6000602084013e6116be565b606091505b5091509150816116cf578060208201fd5b506116dd905060018261211b565b9050611632565b63ffffffff81166000908152609760209081526040918290205482516080810190935260438084529092831515929091906123749083013990611754576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103259190612026565b50919050565b803563ffffffff8116811461128f57600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156117e4576117e461176e565b604052919050565b600067ffffffffffffffff8211156118065761180661176e565b5060051b60200190565b73ffffffffffffffffffffffffffffffffffffffff8116811461042557600080fd5b600082601f83011261184357600080fd5b813567ffffffffffffffff81111561185d5761185d61176e565b61188e60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160161179d565b8181528460208386010111156118a357600080fd5b816020850160208301376000918101602001919091529392505050565b6000604082840312156118d257600080fd5b6040516040810167ffffffffffffffff82821081831117156118f6576118f661176e565b816040528293508435915061190a82611810565b9082526020840135908082111561192057600080fd5b5061192d85828601611832565b6020830152505092915050565b600082601f83011261194b57600080fd5b8135602061196061195b836117ec565b61179d565b82815260059290921b8401810191818101908684111561197f57600080fd5b8286015b848110156119bf57803567ffffffffffffffff8111156119a35760008081fd5b6119b18986838b01016118c0565b845250918301918301611983565b509695505050505050565b600082601f8301126119db57600080fd5b813560206119eb61195b836117ec565b82815260059290921b84018101918181019086841115611a0a57600080fd5b8286015b848110156119bf57803567ffffffffffffffff811115611a2e5760008081fd5b611a3c8986838b0101611832565b845250918301918301611a0e565b600080600060608486031215611a5f57600080fd5b611a688461175a565b9250602084013567ffffffffffffffff80821115611a8557600080fd5b611a918783880161193a565b93506040860135915080821115611aa757600080fd5b50611ab4868287016119ca565b9150509250925092565b600060208284031215611ad057600080fd5b8135611adb81611810565b9392505050565b60008083601f840112611af457600080fd5b50813567ffffffffffffffff811115611b0c57600080fd5b602083019150836020828501011115611b2457600080fd5b9250929050565b60008060008060008060808789031215611b4457600080fd5b611b4d8761175a565b95506020870135611b5d81611810565b9450604087013567ffffffffffffffff80821115611b7a57600080fd5b611b868a838b01611ae2565b90965094506060890135915080821115611b9f57600080fd5b50611bac89828a01611ae2565b979a9699509497509295939492505050565b600060208284031215611bd057600080fd5b610dfd8261175a565b60008060008060608587031215611bef57600080fd5b611bf88561175a565b935060208501359250604085013567ffffffffffffffff811115611c1b57600080fd5b611c2787828801611ae2565b95989497509550505050565b60008083601f840112611c4557600080fd5b50813567ffffffffffffffff811115611c5d57600080fd5b6020830191508360208260051b8501011115611b2457600080fd5b60008060208385031215611c8b57600080fd5b823567ffffffffffffffff811115611ca257600080fd5b611cae85828601611c33565b90969095509350505050565b60008060008060608587031215611cd057600080fd5b611cd98561175a565b9350602085013567ffffffffffffffff80821115611cf657600080fd5b9086019060408289031215611d0a57600080fd5b90935060408601359080821115611d2057600080fd5b50611c2787828801611ae2565b60008060408385031215611d4057600080fd5b611d498361175a565b946020939093013593505050565b600080600060608486031215611d6c57600080fd5b8335611d7781611810565b92506020840135611d8781611810565b91506040840135611d9781611810565b809150509250925092565b60008060008060408587031215611db857600080fd5b843567ffffffffffffffff80821115611dd057600080fd5b611ddc88838901611c33565b90965094506020870135915080821115611df557600080fd5b50611c2787828801611c33565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60028110611e68577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b60005b83811015611e87578181015183820152602001611e6f565b50506000910152565b60008151808452611ea8816020860160208601611e6c565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6000815180845260208085019450848260051b860182860160005b85811015611f1f578383038952611f0d838351611e90565b98850198925090840190600101611ef5565b5090979650505050505050565b600060808201611f3c8388611e31565b602073ffffffffffffffffffffffffffffffffffffffff80881682860152604060808187015283885180865260a08801915060a08160051b8901019550848a0160005b82811015611fde578988037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600184528151805187168952870151878901869052611fcb868a0182611e90565b9850509286019290860190600101611f7f565b50505050505050828103606084015261097d8185611eda565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602081526000610dfd6020830184611e90565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc183360301811261206d57600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126120ac57600080fd5b83018035915067ffffffffffffffff8211156120c757600080fd5b602001915036819003821315611b2457600080fd5b8183823760009101908152919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610e0057610e006120ec565b6000610e0036836118c0565b60006020828403121561214c57600080fd5b81518015158114611adb57600080fd5b80356002811061128f57600080fd5b60006020828403121561217d57600080fd5b610dfd8261215c565b6000806000806080858703121561219c57600080fd5b6121a58561215c565b935060208501356121b581611810565b9250604085013567ffffffffffffffff808211156121d257600080fd5b6121de8883890161193a565b935060608701359150808211156121f457600080fd5b50612201878288016119ca565b91505092959194509250565b6122178185611e31565b73ffffffffffffffffffffffffffffffffffffffff831660208201526060604082015260006114446060830184611eda565b60008060006060848603121561225e57600080fd5b6122678461215c565b9250602084013561227781611810565b9150604084013567ffffffffffffffff81111561229357600080fd5b611ab4868287016119ca565b6000602082840312156122b157600080fd5b8151611adb81611810565b63ffffffff841681528260208201526060604082015260006114446060830184611e90565b6000602082840312156122f357600080fd5b5051919050565b6000825161206d818460208701611e6c565b6000835161231e818460208801611e6c565b835190830190612332818360208801611e6c565b01949350505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361236c5761236c6120ec565b506001019056fe4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e2e2044696420796f7520737065636966792074686520726967687420646f6d61696e2049443fa26469706673582212208f0b889fd638d1a66623038098021da566fe73d8e84f6fdf2c3e1f3c9f0516bb64736f6c63430008100033";
115
134
  const isSuperArgs = (xs) => xs.length > 1;
116
135
  class MockHyperlaneEnvironment__factory extends ethers_1.ContractFactory {
117
136
  constructor(...args) {
@@ -1 +1 @@
1
- {"version":3,"file":"MockHyperlaneEnvironment__factory.js","sourceRoot":"","sources":["../../../../types/factories/contracts/mock/MockHyperlaneEnvironment__factory.ts"],"names":[],"mappings":";AAAA,+CAA+C;;;AAU/C,mCAOgB;AAEhB,MAAM,IAAI,GAAG;IACX;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,QAAQ;gBACtB,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,QAAQ;aACf;YACD;gBACE,YAAY,EAAE,QAAQ;gBACtB,IAAI,EAAE,oBAAoB;gBAC1B,IAAI,EAAE,QAAQ;aACf;SACF;QACD,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,aAAa;KACpB;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,QAAQ;gBACtB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,QAAQ;aACf;SACF;QACD,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,iCAAiC;gBAC/C,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,QAAQ;gBACtB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,QAAQ;aACf;SACF;QACD,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,oCAAoC;gBAClD,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,QAAQ;gBACtB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,QAAQ;aACf;SACF;QACD,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,sBAAsB;gBACpC,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,2BAA2B;QACjC,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,0CAA0C;QAChD,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,QAAQ;gBACtB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,QAAQ;aACf;SACF;QACD,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,gCAAgC;gBAC9C,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;CACF,CAAC;AAEF,MAAM,SAAS,GACb,gjrCAAgjrC,CAAC;AAMnjrC,MAAM,WAAW,GAAG,CAClB,EAA6C,EACQ,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAExE,MAAa,iCAAkC,SAAQ,wBAAe;IACpE,YAAY,GAAG,IAA+C;QAC5D,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE;YACrB,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;SAChB;aAAM;YACL,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;SACjC;IACH,CAAC;IAEQ,MAAM,CACb,aAA2B,EAC3B,kBAAgC,EAChC,SAA2D;QAE3D,OAAO,KAAK,CAAC,MAAM,CACjB,aAAa,EACb,kBAAkB,EAClB,SAAS,IAAI,EAAE,CACqB,CAAC;IACzC,CAAC;IACQ,oBAAoB,CAC3B,aAA2B,EAC3B,kBAAgC,EAChC,SAA2D;QAE3D,OAAO,KAAK,CAAC,oBAAoB,CAC/B,aAAa,EACb,kBAAkB,EAClB,SAAS,IAAI,EAAE,CAChB,CAAC;IACJ,CAAC;IACQ,MAAM,CAAC,OAAe;QAC7B,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAA6B,CAAC;IAC3D,CAAC;IACQ,OAAO,CAAC,MAAc;QAC7B,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAsC,CAAC;IACpE,CAAC;IAID,MAAM,CAAC,eAAe;QACpB,OAAO,IAAI,cAAK,CAAC,SAAS,CAAC,IAAI,CAAsC,CAAC;IACxE,CAAC;IACD,MAAM,CAAC,OAAO,CACZ,OAAe,EACf,gBAAmC;QAEnC,OAAO,IAAI,iBAAQ,CACjB,OAAO,EACP,IAAI,EACJ,gBAAgB,CACW,CAAC;IAChC,CAAC;;AApDH,8EAqDC;AAfiB,0CAAQ,GAAG,SAAS,CAAC;AACrB,qCAAG,GAAG,IAAI,CAAC"}
1
+ {"version":3,"file":"MockHyperlaneEnvironment__factory.js","sourceRoot":"","sources":["../../../../types/factories/contracts/mock/MockHyperlaneEnvironment__factory.ts"],"names":[],"mappings":";AAAA,+CAA+C;;;AAU/C,mCAOgB;AAEhB,MAAM,IAAI,GAAG;IACX;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,QAAQ;gBACtB,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,QAAQ;aACf;YACD;gBACE,YAAY,EAAE,QAAQ;gBACtB,IAAI,EAAE,oBAAoB;gBAC1B,IAAI,EAAE,QAAQ;aACf;SACF;QACD,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,aAAa;KACpB;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,QAAQ;gBACtB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,QAAQ;aACf;SACF;QACD,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,kCAAkC;gBAChD,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,QAAQ;gBACtB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,QAAQ;aACf;SACF;QACD,IAAI,EAAE,oBAAoB;QAC1B,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,kCAAkC;gBAChD,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,QAAQ;gBACtB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,QAAQ;aACf;SACF;QACD,IAAI,EAAE,SAAS;QACf,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,oBAAoB;gBAClC,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,QAAQ;gBACtB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,QAAQ;aACf;SACF;QACD,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,qBAAqB;gBACnC,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,2BAA2B;QACjC,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,0CAA0C;QAChD,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,QAAQ;gBACtB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,QAAQ;aACf;SACF;QACD,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,gCAAgC;gBAC9C,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;CACF,CAAC;AAEF,MAAM,SAAS,GACb,8xoCAA8xoC,CAAC;AAMjyoC,MAAM,WAAW,GAAG,CAClB,EAA6C,EACQ,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAExE,MAAa,iCAAkC,SAAQ,wBAAe;IACpE,YAAY,GAAG,IAA+C;QAC5D,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE;YACrB,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;SAChB;aAAM;YACL,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;SACjC;IACH,CAAC;IAEQ,MAAM,CACb,aAA2B,EAC3B,kBAAgC,EAChC,SAA2D;QAE3D,OAAO,KAAK,CAAC,MAAM,CACjB,aAAa,EACb,kBAAkB,EAClB,SAAS,IAAI,EAAE,CACqB,CAAC;IACzC,CAAC;IACQ,oBAAoB,CAC3B,aAA2B,EAC3B,kBAAgC,EAChC,SAA2D;QAE3D,OAAO,KAAK,CAAC,oBAAoB,CAC/B,aAAa,EACb,kBAAkB,EAClB,SAAS,IAAI,EAAE,CAChB,CAAC;IACJ,CAAC;IACQ,MAAM,CAAC,OAAe;QAC7B,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAA6B,CAAC;IAC3D,CAAC;IACQ,OAAO,CAAC,MAAc;QAC7B,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAsC,CAAC;IACpE,CAAC;IAID,MAAM,CAAC,eAAe;QACpB,OAAO,IAAI,cAAK,CAAC,SAAS,CAAC,IAAI,CAAsC,CAAC;IACxE,CAAC;IACD,MAAM,CAAC,OAAO,CACZ,OAAe,EACf,gBAAmC;QAEnC,OAAO,IAAI,iBAAQ,CACjB,OAAO,EACP,IAAI,EACJ,gBAAgB,CACW,CAAC;IAChC,CAAC;;AApDH,8EAqDC;AAfiB,0CAAQ,GAAG,SAAS,CAAC;AACrB,qCAAG,GAAG,IAAI,CAAC"}
@@ -0,0 +1,31 @@
1
+ import type { MockInbox, MockInboxInterface } from "../../../contracts/mock/MockInbox";
2
+ import type { Provider, TransactionRequest } from "@ethersproject/providers";
3
+ import { Signer, ContractFactory, Overrides } from "ethers";
4
+ declare type MockInboxConstructorParams = [signer?: Signer] | ConstructorParameters<typeof ContractFactory>;
5
+ export declare class MockInbox__factory extends ContractFactory {
6
+ constructor(...args: MockInboxConstructorParams);
7
+ deploy(overrides?: Overrides & {
8
+ from?: string | Promise<string>;
9
+ }): Promise<MockInbox>;
10
+ getDeployTransaction(overrides?: Overrides & {
11
+ from?: string | Promise<string>;
12
+ }): TransactionRequest;
13
+ attach(address: string): MockInbox;
14
+ connect(signer: Signer): MockInbox__factory;
15
+ static readonly bytecode = "0x60806040526000600155600060025534801561001a57600080fd5b506106798061002a6000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063a098e0551461003b578063f9f312ad14610050575b600080fd5b61004e6100493660046102c8565b610058565b005b61004e610105565b6040805160808101825263ffffffff86811682526020808301878152838501878152606085018781526001805460009081529485905296909320855181547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000016951694909417845590519483019490945592516002820155915190919060038201906100e49082610468565b5090505060018060008282546100fa9190610582565b909155505050505050565b600280546000908152602081815260408083208151608081018352815463ffffffff168152600182015493810193909352938401549082015260038301805492939192606084019190610157906103c6565b80601f0160208091040260200160405190810160405280929190818152602001828054610183906103c6565b80156101d05780601f106101a5576101008083540402835291602001916101d0565b820191906000526020600020905b8154815290600101906020018083116101b357829003601f168201915b505050505081525050905060006101e8826040015190565b8251602084015160608501516040517f56d5d47500000000000000000000000000000000000000000000000000000000815293945073ffffffffffffffffffffffffffffffffffffffff8516936356d5d4759361024b93909290916004016105c2565b600060405180830381600087803b15801561026557600080fd5b505af1158015610279573d6000803e3d6000fd5b505050506001600260008282546102909190610582565b90915550505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080600080608085870312156102de57600080fd5b843563ffffffff811681146102f257600080fd5b93506020850135925060408501359150606085013567ffffffffffffffff8082111561031d57600080fd5b818701915087601f83011261033157600080fd5b81358181111561034357610343610299565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561038957610389610299565b816040528281528a60208487010111156103a257600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b600181811c908216806103da57607f821691505b602082108103610413577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f82111561046357600081815260208120601f850160051c810160208610156104405750805b601f850160051c820191505b8181101561045f5782815560010161044c565b5050505b505050565b815167ffffffffffffffff81111561048257610482610299565b6104968161049084546103c6565b84610419565b602080601f8311600181146104e957600084156104b35750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b17855561045f565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561053657888601518255948401946001909101908401610517565b508582101561057257878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156105bc577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b92915050565b63ffffffff8416815260006020848184015260606040840152835180606085015260005b81811015610602578581018301518582016080015282016105e6565b5060006080828601015260807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505094935050505056fea2646970667358221220a796d8a7b91beec44a5a1ab9c32ddfb80e71f7ceee941be506115288694960f664736f6c63430008100033";
16
+ static readonly abi: {
17
+ inputs: {
18
+ internalType: string;
19
+ name: string;
20
+ type: string;
21
+ }[];
22
+ name: string;
23
+ outputs: never[];
24
+ stateMutability: string;
25
+ type: string;
26
+ }[];
27
+ static createInterface(): MockInboxInterface;
28
+ static connect(address: string, signerOrProvider: Signer | Provider): MockInbox;
29
+ }
30
+ export {};
31
+ //# sourceMappingURL=MockInbox__factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MockInbox__factory.d.ts","sourceRoot":"","sources":["../../../../types/factories/contracts/mock/MockInbox__factory.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,SAAS,EACT,kBAAkB,EACnB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAmB,eAAe,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AA2C7E,aAAK,0BAA0B,GAC3B,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,GACjB,qBAAqB,CAAC,OAAO,eAAe,CAAC,CAAC;AAMlD,qBAAa,kBAAmB,SAAQ,eAAe;gBACzC,GAAG,IAAI,EAAE,0BAA0B;IAQtC,MAAM,CACb,SAAS,CAAC,EAAE,SAAS,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;KAAE,GAC1D,OAAO,CAAC,SAAS,CAAC;IAGZ,oBAAoB,CAC3B,SAAS,CAAC,EAAE,SAAS,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;KAAE,GAC1D,kBAAkB;IAGZ,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS;IAGlC,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB;IAIpD,MAAM,CAAC,QAAQ,CAAC,QAAQ,80GAAa;IACrC,MAAM,CAAC,QAAQ,CAAC,GAAG;;;;;;;;;;QAAQ;IAC3B,MAAM,CAAC,eAAe,IAAI,kBAAkB;IAG5C,MAAM,CAAC,OAAO,CACZ,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,GAAG,QAAQ,GAClC,SAAS;CAGb"}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ /* Autogenerated file. Do not edit manually. */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.MockInbox__factory = void 0;
5
+ const ethers_1 = require("ethers");
6
+ const _abi = [
7
+ {
8
+ inputs: [
9
+ {
10
+ internalType: "uint32",
11
+ name: "_originDomain",
12
+ type: "uint32",
13
+ },
14
+ {
15
+ internalType: "bytes32",
16
+ name: "_sender",
17
+ type: "bytes32",
18
+ },
19
+ {
20
+ internalType: "bytes32",
21
+ name: "_recipient",
22
+ type: "bytes32",
23
+ },
24
+ {
25
+ internalType: "bytes",
26
+ name: "_messageBody",
27
+ type: "bytes",
28
+ },
29
+ ],
30
+ name: "addPendingMessage",
31
+ outputs: [],
32
+ stateMutability: "nonpayable",
33
+ type: "function",
34
+ },
35
+ {
36
+ inputs: [],
37
+ name: "processNextPendingMessage",
38
+ outputs: [],
39
+ stateMutability: "nonpayable",
40
+ type: "function",
41
+ },
42
+ ];
43
+ const _bytecode = "0x60806040526000600155600060025534801561001a57600080fd5b506106798061002a6000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063a098e0551461003b578063f9f312ad14610050575b600080fd5b61004e6100493660046102c8565b610058565b005b61004e610105565b6040805160808101825263ffffffff86811682526020808301878152838501878152606085018781526001805460009081529485905296909320855181547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000016951694909417845590519483019490945592516002820155915190919060038201906100e49082610468565b5090505060018060008282546100fa9190610582565b909155505050505050565b600280546000908152602081815260408083208151608081018352815463ffffffff168152600182015493810193909352938401549082015260038301805492939192606084019190610157906103c6565b80601f0160208091040260200160405190810160405280929190818152602001828054610183906103c6565b80156101d05780601f106101a5576101008083540402835291602001916101d0565b820191906000526020600020905b8154815290600101906020018083116101b357829003601f168201915b505050505081525050905060006101e8826040015190565b8251602084015160608501516040517f56d5d47500000000000000000000000000000000000000000000000000000000815293945073ffffffffffffffffffffffffffffffffffffffff8516936356d5d4759361024b93909290916004016105c2565b600060405180830381600087803b15801561026557600080fd5b505af1158015610279573d6000803e3d6000fd5b505050506001600260008282546102909190610582565b90915550505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080600080608085870312156102de57600080fd5b843563ffffffff811681146102f257600080fd5b93506020850135925060408501359150606085013567ffffffffffffffff8082111561031d57600080fd5b818701915087601f83011261033157600080fd5b81358181111561034357610343610299565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561038957610389610299565b816040528281528a60208487010111156103a257600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b600181811c908216806103da57607f821691505b602082108103610413577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f82111561046357600081815260208120601f850160051c810160208610156104405750805b601f850160051c820191505b8181101561045f5782815560010161044c565b5050505b505050565b815167ffffffffffffffff81111561048257610482610299565b6104968161049084546103c6565b84610419565b602080601f8311600181146104e957600084156104b35750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b17855561045f565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561053657888601518255948401946001909101908401610517565b508582101561057257878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156105bc577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b92915050565b63ffffffff8416815260006020848184015260606040840152835180606085015260005b81811015610602578581018301518582016080015282016105e6565b5060006080828601015260807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505094935050505056fea2646970667358221220a796d8a7b91beec44a5a1ab9c32ddfb80e71f7ceee941be506115288694960f664736f6c63430008100033";
44
+ const isSuperArgs = (xs) => xs.length > 1;
45
+ class MockInbox__factory extends ethers_1.ContractFactory {
46
+ constructor(...args) {
47
+ if (isSuperArgs(args)) {
48
+ super(...args);
49
+ }
50
+ else {
51
+ super(_abi, _bytecode, args[0]);
52
+ }
53
+ }
54
+ deploy(overrides) {
55
+ return super.deploy(overrides || {});
56
+ }
57
+ getDeployTransaction(overrides) {
58
+ return super.getDeployTransaction(overrides || {});
59
+ }
60
+ attach(address) {
61
+ return super.attach(address);
62
+ }
63
+ connect(signer) {
64
+ return super.connect(signer);
65
+ }
66
+ static createInterface() {
67
+ return new ethers_1.utils.Interface(_abi);
68
+ }
69
+ static connect(address, signerOrProvider) {
70
+ return new ethers_1.Contract(address, _abi, signerOrProvider);
71
+ }
72
+ }
73
+ exports.MockInbox__factory = MockInbox__factory;
74
+ MockInbox__factory.bytecode = _bytecode;
75
+ MockInbox__factory.abi = _abi;
76
+ //# sourceMappingURL=MockInbox__factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MockInbox__factory.js","sourceRoot":"","sources":["../../../../types/factories/contracts/mock/MockInbox__factory.ts"],"names":[],"mappings":";AAAA,+CAA+C;;;AAU/C,mCAA6E;AAE7E,MAAM,IAAI,GAAG;IACX;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,QAAQ;gBACtB,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,QAAQ;aACf;YACD;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,OAAO;gBACrB,IAAI,EAAE,cAAc;gBACpB,IAAI,EAAE,OAAO;aACd;SACF;QACD,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,2BAA2B;QACjC,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACjB;CACF,CAAC;AAEF,MAAM,SAAS,GACb,00GAA00G,CAAC;AAM70G,MAAM,WAAW,GAAG,CAClB,EAA8B,EACuB,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAExE,MAAa,kBAAmB,SAAQ,wBAAe;IACrD,YAAY,GAAG,IAAgC;QAC7C,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE;YACrB,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;SAChB;aAAM;YACL,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;SACjC;IACH,CAAC;IAEQ,MAAM,CACb,SAA2D;QAE3D,OAAO,KAAK,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAuB,CAAC;IAC7D,CAAC;IACQ,oBAAoB,CAC3B,SAA2D;QAE3D,OAAO,KAAK,CAAC,oBAAoB,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IACrD,CAAC;IACQ,MAAM,CAAC,OAAe;QAC7B,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAc,CAAC;IAC5C,CAAC;IACQ,OAAO,CAAC,MAAc;QAC7B,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAuB,CAAC;IACrD,CAAC;IAID,MAAM,CAAC,eAAe;QACpB,OAAO,IAAI,cAAK,CAAC,SAAS,CAAC,IAAI,CAAuB,CAAC;IACzD,CAAC;IACD,MAAM,CAAC,OAAO,CACZ,OAAe,EACf,gBAAmC;QAEnC,OAAO,IAAI,iBAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,gBAAgB,CAAc,CAAC;IACpE,CAAC;;AApCH,gDAqCC;AAXiB,2BAAQ,GAAG,SAAS,CAAC;AACrB,sBAAG,GAAG,IAAI,CAAC"}