@hyperlane-xyz/core 1.4.2 → 1.4.3-beta0

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 (1233) hide show
  1. package/contracts/hooks/OptimismMessageHook.sol +1 -1
  2. package/contracts/interfaces/IInterchainSecurityModule.sol +2 -1
  3. package/contracts/interfaces/isms/ICcipReadIsm.sol +28 -0
  4. package/contracts/isms/ccip-read/AbstractCcipReadIsm.sol +32 -0
  5. package/contracts/isms/hook/{optimism/OptimismISM.sol → OptimismISM.sol} +6 -6
  6. package/contracts/isms/hook/{CrossChainEnabled.sol → crossChainEnabled/CrossChainEnabled.sol} +3 -3
  7. package/contracts/isms/hook/crossChainEnabled/errors.sol +7 -0
  8. package/contracts/isms/hook/{optimism → crossChainEnabled/optimism}/LibOptimism.sol +1 -2
  9. package/dist/@eth-optimism/contracts/index.d.ts.map +1 -1
  10. package/dist/@eth-optimism/contracts/index.js +0 -1
  11. package/dist/@eth-optimism/contracts/index.js.map +1 -1
  12. package/dist/@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger.d.ts +8 -8
  13. package/dist/@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger.d.ts.map +1 -1
  14. package/dist/@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger.js +0 -1
  15. package/dist/@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger.js.map +1 -1
  16. package/dist/@eth-optimism/contracts/libraries/index.d.ts.map +1 -1
  17. package/dist/@eth-optimism/contracts/libraries/index.js +0 -1
  18. package/dist/@eth-optimism/contracts/libraries/index.js.map +1 -1
  19. package/dist/@eth-optimism/index.d.ts.map +1 -1
  20. package/dist/@eth-optimism/index.js +0 -1
  21. package/dist/@eth-optimism/index.js.map +1 -1
  22. package/dist/@openzeppelin/contracts/access/AccessControl.d.ts +8 -8
  23. package/dist/@openzeppelin/contracts/access/AccessControl.d.ts.map +1 -1
  24. package/dist/@openzeppelin/contracts/access/AccessControl.js +0 -1
  25. package/dist/@openzeppelin/contracts/access/AccessControl.js.map +1 -1
  26. package/dist/@openzeppelin/contracts/access/IAccessControl.d.ts +8 -8
  27. package/dist/@openzeppelin/contracts/access/IAccessControl.d.ts.map +1 -1
  28. package/dist/@openzeppelin/contracts/access/IAccessControl.js +0 -1
  29. package/dist/@openzeppelin/contracts/access/IAccessControl.js.map +1 -1
  30. package/dist/@openzeppelin/contracts/access/Ownable.d.ts +4 -4
  31. package/dist/@openzeppelin/contracts/access/Ownable.d.ts.map +1 -1
  32. package/dist/@openzeppelin/contracts/access/Ownable.js +0 -1
  33. package/dist/@openzeppelin/contracts/access/Ownable.js.map +1 -1
  34. package/dist/@openzeppelin/contracts/governance/TimelockController.d.ts +16 -16
  35. package/dist/@openzeppelin/contracts/governance/TimelockController.d.ts.map +1 -1
  36. package/dist/@openzeppelin/contracts/governance/TimelockController.js +0 -1
  37. package/dist/@openzeppelin/contracts/governance/TimelockController.js.map +1 -1
  38. package/dist/@openzeppelin/contracts/index.d.ts +5 -5
  39. package/dist/@openzeppelin/contracts/index.d.ts.map +1 -1
  40. package/dist/@openzeppelin/contracts/index.js +0 -1
  41. package/dist/@openzeppelin/contracts/index.js.map +1 -1
  42. package/dist/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.d.ts +2 -2
  43. package/dist/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.d.ts.map +1 -1
  44. package/dist/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.js +0 -1
  45. package/dist/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.js.map +1 -1
  46. package/dist/@openzeppelin/contracts/interfaces/index.d.ts.map +1 -1
  47. package/dist/@openzeppelin/contracts/interfaces/index.js +0 -1
  48. package/dist/@openzeppelin/contracts/interfaces/index.js.map +1 -1
  49. package/dist/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.d.ts +8 -8
  50. package/dist/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.d.ts.map +1 -1
  51. package/dist/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.js +0 -1
  52. package/dist/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.js.map +1 -1
  53. package/dist/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.d.ts +8 -8
  54. package/dist/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.d.ts.map +1 -1
  55. package/dist/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.js +0 -1
  56. package/dist/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.js.map +1 -1
  57. package/dist/@openzeppelin/contracts/proxy/Proxy.d.ts +2 -2
  58. package/dist/@openzeppelin/contracts/proxy/Proxy.d.ts.map +1 -1
  59. package/dist/@openzeppelin/contracts/proxy/Proxy.js +0 -1
  60. package/dist/@openzeppelin/contracts/proxy/Proxy.js.map +1 -1
  61. package/dist/@openzeppelin/contracts/proxy/beacon/IBeacon.d.ts +2 -2
  62. package/dist/@openzeppelin/contracts/proxy/beacon/IBeacon.d.ts.map +1 -1
  63. package/dist/@openzeppelin/contracts/proxy/beacon/IBeacon.js +0 -1
  64. package/dist/@openzeppelin/contracts/proxy/beacon/IBeacon.js.map +1 -1
  65. package/dist/@openzeppelin/contracts/proxy/index.d.ts +2 -2
  66. package/dist/@openzeppelin/contracts/proxy/index.d.ts.map +1 -1
  67. package/dist/@openzeppelin/contracts/proxy/index.js +0 -1
  68. package/dist/@openzeppelin/contracts/proxy/index.js.map +1 -1
  69. package/dist/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.d.ts +4 -4
  70. package/dist/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.d.ts.map +1 -1
  71. package/dist/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.js +0 -1
  72. package/dist/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.js.map +1 -1
  73. package/dist/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.d.ts +8 -8
  74. package/dist/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.d.ts.map +1 -1
  75. package/dist/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.js +0 -1
  76. package/dist/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.js.map +1 -1
  77. package/dist/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.d.ts +2 -2
  78. package/dist/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.d.ts.map +1 -1
  79. package/dist/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.js +0 -1
  80. package/dist/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.js.map +1 -1
  81. package/dist/@openzeppelin/contracts/token/ERC20/IERC20.d.ts +6 -6
  82. package/dist/@openzeppelin/contracts/token/ERC20/IERC20.d.ts.map +1 -1
  83. package/dist/@openzeppelin/contracts/token/ERC20/IERC20.js +0 -1
  84. package/dist/@openzeppelin/contracts/token/ERC20/IERC20.js.map +1 -1
  85. package/dist/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.d.ts +2 -2
  86. package/dist/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.d.ts.map +1 -1
  87. package/dist/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.js +0 -1
  88. package/dist/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.js.map +1 -1
  89. package/dist/@openzeppelin/contracts/token/ERC20/extensions/index.d.ts.map +1 -1
  90. package/dist/@openzeppelin/contracts/token/ERC20/extensions/index.js +0 -1
  91. package/dist/@openzeppelin/contracts/token/ERC20/extensions/index.js.map +1 -1
  92. package/dist/@openzeppelin/contracts/token/ERC20/index.d.ts.map +1 -1
  93. package/dist/@openzeppelin/contracts/token/ERC20/index.js +0 -1
  94. package/dist/@openzeppelin/contracts/token/ERC20/index.js.map +1 -1
  95. package/dist/@openzeppelin/contracts/token/ERC721/IERC721Receiver.d.ts +2 -2
  96. package/dist/@openzeppelin/contracts/token/ERC721/IERC721Receiver.d.ts.map +1 -1
  97. package/dist/@openzeppelin/contracts/token/ERC721/IERC721Receiver.js +0 -1
  98. package/dist/@openzeppelin/contracts/token/ERC721/IERC721Receiver.js.map +1 -1
  99. package/dist/@openzeppelin/contracts/token/index.d.ts +2 -2
  100. package/dist/@openzeppelin/contracts/token/index.d.ts.map +1 -1
  101. package/dist/@openzeppelin/contracts/token/index.js +0 -1
  102. package/dist/@openzeppelin/contracts/token/index.js.map +1 -1
  103. package/dist/@openzeppelin/contracts/utils/index.d.ts.map +1 -1
  104. package/dist/@openzeppelin/contracts/utils/index.js +0 -1
  105. package/dist/@openzeppelin/contracts/utils/index.js.map +1 -1
  106. package/dist/@openzeppelin/contracts/utils/introspection/ERC165.d.ts +2 -2
  107. package/dist/@openzeppelin/contracts/utils/introspection/ERC165.d.ts.map +1 -1
  108. package/dist/@openzeppelin/contracts/utils/introspection/ERC165.js +0 -1
  109. package/dist/@openzeppelin/contracts/utils/introspection/ERC165.js.map +1 -1
  110. package/dist/@openzeppelin/contracts/utils/introspection/IERC165.d.ts +2 -2
  111. package/dist/@openzeppelin/contracts/utils/introspection/IERC165.d.ts.map +1 -1
  112. package/dist/@openzeppelin/contracts/utils/introspection/IERC165.js +0 -1
  113. package/dist/@openzeppelin/contracts/utils/introspection/IERC165.js.map +1 -1
  114. package/dist/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.d.ts +6 -6
  115. package/dist/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.d.ts.map +1 -1
  116. package/dist/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.js +0 -1
  117. package/dist/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.js.map +1 -1
  118. package/dist/@openzeppelin/contracts-upgradeable/index.d.ts +3 -3
  119. package/dist/@openzeppelin/contracts-upgradeable/index.d.ts.map +1 -1
  120. package/dist/@openzeppelin/contracts-upgradeable/index.js +0 -1
  121. package/dist/@openzeppelin/contracts-upgradeable/index.js.map +1 -1
  122. package/dist/@openzeppelin/contracts-upgradeable/proxy/index.d.ts.map +1 -1
  123. package/dist/@openzeppelin/contracts-upgradeable/proxy/index.js +0 -1
  124. package/dist/@openzeppelin/contracts-upgradeable/proxy/index.js.map +1 -1
  125. package/dist/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.d.ts +4 -4
  126. package/dist/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.d.ts.map +1 -1
  127. package/dist/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.js +0 -1
  128. package/dist/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.js.map +1 -1
  129. package/dist/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.d.ts +8 -8
  130. package/dist/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.d.ts.map +1 -1
  131. package/dist/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.js +0 -1
  132. package/dist/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.js.map +1 -1
  133. package/dist/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.d.ts +6 -6
  134. package/dist/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.d.ts.map +1 -1
  135. package/dist/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.js +0 -1
  136. package/dist/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.js.map +1 -1
  137. package/dist/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable.d.ts +6 -6
  138. package/dist/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable.d.ts.map +1 -1
  139. package/dist/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable.js +0 -1
  140. package/dist/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable.js.map +1 -1
  141. package/dist/@openzeppelin/contracts-upgradeable/token/ERC20/index.d.ts.map +1 -1
  142. package/dist/@openzeppelin/contracts-upgradeable/token/ERC20/index.js +0 -1
  143. package/dist/@openzeppelin/contracts-upgradeable/token/ERC20/index.js.map +1 -1
  144. package/dist/@openzeppelin/contracts-upgradeable/token/index.d.ts.map +1 -1
  145. package/dist/@openzeppelin/contracts-upgradeable/token/index.js +0 -1
  146. package/dist/@openzeppelin/contracts-upgradeable/token/index.js.map +1 -1
  147. package/dist/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.d.ts +4 -4
  148. package/dist/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.d.ts.map +1 -1
  149. package/dist/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.js +0 -1
  150. package/dist/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.js.map +1 -1
  151. package/dist/@openzeppelin/index.d.ts +1 -1
  152. package/dist/@openzeppelin/index.d.ts.map +1 -1
  153. package/dist/@openzeppelin/index.js +0 -1
  154. package/dist/@openzeppelin/index.js.map +1 -1
  155. package/dist/common.d.ts +4 -4
  156. package/dist/common.d.ts.map +1 -1
  157. package/dist/common.js +0 -1
  158. package/dist/common.js.map +1 -1
  159. package/dist/contracts/GasRouter.d.ts +16 -16
  160. package/dist/contracts/GasRouter.d.ts.map +1 -1
  161. package/dist/contracts/GasRouter.js +0 -1
  162. package/dist/contracts/GasRouter.js.map +1 -1
  163. package/dist/contracts/HyperlaneConnectionClient.d.ts +12 -12
  164. package/dist/contracts/HyperlaneConnectionClient.d.ts.map +1 -1
  165. package/dist/contracts/HyperlaneConnectionClient.js +0 -1
  166. package/dist/contracts/HyperlaneConnectionClient.js.map +1 -1
  167. package/dist/contracts/Mailbox.d.ts +20 -20
  168. package/dist/contracts/Mailbox.d.ts.map +1 -1
  169. package/dist/contracts/Mailbox.js +0 -1
  170. package/dist/contracts/Mailbox.js.map +1 -1
  171. package/dist/contracts/OwnableMulticall.d.ts +2 -2
  172. package/dist/contracts/OwnableMulticall.d.ts.map +1 -1
  173. package/dist/contracts/OwnableMulticall.js +0 -1
  174. package/dist/contracts/OwnableMulticall.js.map +1 -1
  175. package/dist/contracts/PausableReentrancyGuard.sol/PausableReentrancyGuardUpgradeable.d.ts +4 -4
  176. package/dist/contracts/PausableReentrancyGuard.sol/PausableReentrancyGuardUpgradeable.d.ts.map +1 -1
  177. package/dist/contracts/PausableReentrancyGuard.sol/PausableReentrancyGuardUpgradeable.js +0 -1
  178. package/dist/contracts/PausableReentrancyGuard.sol/PausableReentrancyGuardUpgradeable.js.map +1 -1
  179. package/dist/contracts/Router.d.ts +14 -14
  180. package/dist/contracts/Router.d.ts.map +1 -1
  181. package/dist/contracts/Router.js +0 -1
  182. package/dist/contracts/Router.js.map +1 -1
  183. package/dist/contracts/ValidatorAnnounce.d.ts +4 -4
  184. package/dist/contracts/ValidatorAnnounce.d.ts.map +1 -1
  185. package/dist/contracts/ValidatorAnnounce.js +0 -1
  186. package/dist/contracts/ValidatorAnnounce.js.map +1 -1
  187. package/dist/contracts/hooks/ERC5164/ERC5164MessageHook.d.ts +2 -2
  188. package/dist/contracts/hooks/ERC5164/ERC5164MessageHook.d.ts.map +1 -1
  189. package/dist/contracts/hooks/ERC5164/ERC5164MessageHook.js +0 -1
  190. package/dist/contracts/hooks/ERC5164/ERC5164MessageHook.js.map +1 -1
  191. package/dist/contracts/hooks/ERC5164/index.d.ts.map +1 -1
  192. package/dist/contracts/hooks/ERC5164/index.js +0 -1
  193. package/dist/contracts/hooks/ERC5164/index.js.map +1 -1
  194. package/dist/contracts/hooks/ERC5164/interfaces/IMessageDispatcher.d.ts +4 -4
  195. package/dist/contracts/hooks/ERC5164/interfaces/IMessageDispatcher.d.ts.map +1 -1
  196. package/dist/contracts/hooks/ERC5164/interfaces/IMessageDispatcher.js +0 -1
  197. package/dist/contracts/hooks/ERC5164/interfaces/IMessageDispatcher.js.map +1 -1
  198. package/dist/contracts/hooks/OptimismMessageHook.d.ts +2 -2
  199. package/dist/contracts/hooks/OptimismMessageHook.d.ts.map +1 -1
  200. package/dist/contracts/hooks/OptimismMessageHook.js +0 -1
  201. package/dist/contracts/hooks/OptimismMessageHook.js.map +1 -1
  202. package/dist/contracts/hooks/index.d.ts.map +1 -1
  203. package/dist/contracts/hooks/index.js +0 -1
  204. package/dist/contracts/hooks/index.js.map +1 -1
  205. package/dist/contracts/igps/InterchainGasPaymaster.d.ts +12 -12
  206. package/dist/contracts/igps/InterchainGasPaymaster.d.ts.map +1 -1
  207. package/dist/contracts/igps/InterchainGasPaymaster.js +0 -1
  208. package/dist/contracts/igps/InterchainGasPaymaster.js.map +1 -1
  209. package/dist/contracts/igps/OverheadIgp.d.ts +8 -8
  210. package/dist/contracts/igps/OverheadIgp.d.ts.map +1 -1
  211. package/dist/contracts/igps/OverheadIgp.js +0 -1
  212. package/dist/contracts/igps/OverheadIgp.js.map +1 -1
  213. package/dist/contracts/igps/gas-oracles/StorageGasOracle.d.ts +6 -6
  214. package/dist/contracts/igps/gas-oracles/StorageGasOracle.d.ts.map +1 -1
  215. package/dist/contracts/igps/gas-oracles/StorageGasOracle.js +0 -1
  216. package/dist/contracts/igps/gas-oracles/StorageGasOracle.js.map +1 -1
  217. package/dist/contracts/igps/index.d.ts.map +1 -1
  218. package/dist/contracts/igps/index.js +0 -1
  219. package/dist/contracts/igps/index.js.map +1 -1
  220. package/dist/contracts/index.d.ts +9 -9
  221. package/dist/contracts/index.d.ts.map +1 -1
  222. package/dist/contracts/index.js +0 -1
  223. package/dist/contracts/index.js.map +1 -1
  224. package/dist/contracts/interfaces/IGasOracle.d.ts +2 -2
  225. package/dist/contracts/interfaces/IGasOracle.d.ts.map +1 -1
  226. package/dist/contracts/interfaces/IGasOracle.js +0 -1
  227. package/dist/contracts/interfaces/IGasOracle.js.map +1 -1
  228. package/dist/contracts/interfaces/IHyperlaneConnectionClient.d.ts +2 -2
  229. package/dist/contracts/interfaces/IHyperlaneConnectionClient.d.ts.map +1 -1
  230. package/dist/contracts/interfaces/IHyperlaneConnectionClient.js +0 -1
  231. package/dist/contracts/interfaces/IHyperlaneConnectionClient.js.map +1 -1
  232. package/dist/contracts/interfaces/IInterchainGasPaymaster.d.ts +4 -4
  233. package/dist/contracts/interfaces/IInterchainGasPaymaster.d.ts.map +1 -1
  234. package/dist/contracts/interfaces/IInterchainGasPaymaster.js +0 -1
  235. package/dist/contracts/interfaces/IInterchainGasPaymaster.js.map +1 -1
  236. package/dist/contracts/interfaces/IInterchainSecurityModule.sol/IInterchainSecurityModule.d.ts +2 -2
  237. package/dist/contracts/interfaces/IInterchainSecurityModule.sol/IInterchainSecurityModule.d.ts.map +1 -1
  238. package/dist/contracts/interfaces/IInterchainSecurityModule.sol/IInterchainSecurityModule.js +0 -1
  239. package/dist/contracts/interfaces/IInterchainSecurityModule.sol/IInterchainSecurityModule.js.map +1 -1
  240. package/dist/contracts/interfaces/IInterchainSecurityModule.sol/ISpecifiesInterchainSecurityModule.d.ts +2 -2
  241. package/dist/contracts/interfaces/IInterchainSecurityModule.sol/ISpecifiesInterchainSecurityModule.d.ts.map +1 -1
  242. package/dist/contracts/interfaces/IInterchainSecurityModule.sol/ISpecifiesInterchainSecurityModule.js +0 -1
  243. package/dist/contracts/interfaces/IInterchainSecurityModule.sol/ISpecifiesInterchainSecurityModule.js.map +1 -1
  244. package/dist/contracts/interfaces/ILiquidityLayerMessageRecipient.d.ts +2 -2
  245. package/dist/contracts/interfaces/ILiquidityLayerMessageRecipient.d.ts.map +1 -1
  246. package/dist/contracts/interfaces/ILiquidityLayerMessageRecipient.js +0 -1
  247. package/dist/contracts/interfaces/ILiquidityLayerMessageRecipient.js.map +1 -1
  248. package/dist/contracts/interfaces/ILiquidityLayerRouter.d.ts +2 -2
  249. package/dist/contracts/interfaces/ILiquidityLayerRouter.d.ts.map +1 -1
  250. package/dist/contracts/interfaces/ILiquidityLayerRouter.js +0 -1
  251. package/dist/contracts/interfaces/ILiquidityLayerRouter.js.map +1 -1
  252. package/dist/contracts/interfaces/IMailbox.d.ts +10 -10
  253. package/dist/contracts/interfaces/IMailbox.d.ts.map +1 -1
  254. package/dist/contracts/interfaces/IMailbox.js +0 -1
  255. package/dist/contracts/interfaces/IMailbox.js.map +1 -1
  256. package/dist/contracts/interfaces/IMessageRecipient.d.ts +2 -2
  257. package/dist/contracts/interfaces/IMessageRecipient.d.ts.map +1 -1
  258. package/dist/contracts/interfaces/IMessageRecipient.js +0 -1
  259. package/dist/contracts/interfaces/IMessageRecipient.js.map +1 -1
  260. package/dist/contracts/interfaces/IRouter.d.ts +2 -2
  261. package/dist/contracts/interfaces/IRouter.d.ts.map +1 -1
  262. package/dist/contracts/interfaces/IRouter.js +0 -1
  263. package/dist/contracts/interfaces/IRouter.js.map +1 -1
  264. package/dist/contracts/interfaces/IValidatorAnnounce.d.ts +2 -2
  265. package/dist/contracts/interfaces/IValidatorAnnounce.d.ts.map +1 -1
  266. package/dist/contracts/interfaces/IValidatorAnnounce.js +0 -1
  267. package/dist/contracts/interfaces/IValidatorAnnounce.js.map +1 -1
  268. package/dist/contracts/interfaces/hooks/IMessageHook.d.ts +2 -2
  269. package/dist/contracts/interfaces/hooks/IMessageHook.d.ts.map +1 -1
  270. package/dist/contracts/interfaces/hooks/IMessageHook.js +0 -1
  271. package/dist/contracts/interfaces/hooks/IMessageHook.js.map +1 -1
  272. package/dist/contracts/interfaces/index.d.ts +3 -3
  273. package/dist/contracts/interfaces/index.d.ts.map +1 -1
  274. package/dist/contracts/interfaces/index.js +0 -1
  275. package/dist/contracts/interfaces/index.js.map +1 -1
  276. package/dist/contracts/interfaces/isms/IAggregationIsm.d.ts +2 -2
  277. package/dist/contracts/interfaces/isms/IAggregationIsm.d.ts.map +1 -1
  278. package/dist/contracts/interfaces/isms/IAggregationIsm.js +0 -1
  279. package/dist/contracts/interfaces/isms/IAggregationIsm.js.map +1 -1
  280. package/dist/contracts/interfaces/isms/ICcipReadIsm.d.ts +67 -0
  281. package/dist/contracts/interfaces/isms/ICcipReadIsm.d.ts.map +1 -0
  282. package/dist/contracts/interfaces/isms/ICcipReadIsm.js +3 -0
  283. package/dist/contracts/interfaces/isms/ICcipReadIsm.js.map +1 -0
  284. package/dist/contracts/interfaces/isms/IMultisigIsm.d.ts +2 -2
  285. package/dist/contracts/interfaces/isms/IMultisigIsm.d.ts.map +1 -1
  286. package/dist/contracts/interfaces/isms/IMultisigIsm.js +0 -1
  287. package/dist/contracts/interfaces/isms/IMultisigIsm.js.map +1 -1
  288. package/dist/contracts/interfaces/isms/IRoutingIsm.d.ts +2 -2
  289. package/dist/contracts/interfaces/isms/IRoutingIsm.d.ts.map +1 -1
  290. package/dist/contracts/interfaces/isms/IRoutingIsm.js +0 -1
  291. package/dist/contracts/interfaces/isms/IRoutingIsm.js.map +1 -1
  292. package/dist/contracts/interfaces/isms/index.d.ts +1 -0
  293. package/dist/contracts/interfaces/isms/index.d.ts.map +1 -1
  294. package/dist/contracts/interfaces/middleware/IInterchainAccountRouter.d.ts +2 -2
  295. package/dist/contracts/interfaces/middleware/IInterchainAccountRouter.d.ts.map +1 -1
  296. package/dist/contracts/interfaces/middleware/IInterchainAccountRouter.js +0 -1
  297. package/dist/contracts/interfaces/middleware/IInterchainAccountRouter.js.map +1 -1
  298. package/dist/contracts/interfaces/middleware/IInterchainQueryRouter.d.ts +2 -2
  299. package/dist/contracts/interfaces/middleware/IInterchainQueryRouter.d.ts.map +1 -1
  300. package/dist/contracts/interfaces/middleware/IInterchainQueryRouter.js +0 -1
  301. package/dist/contracts/interfaces/middleware/IInterchainQueryRouter.js.map +1 -1
  302. package/dist/contracts/isms/aggregation/AbstractAggregationIsm.d.ts +2 -2
  303. package/dist/contracts/isms/aggregation/AbstractAggregationIsm.d.ts.map +1 -1
  304. package/dist/contracts/isms/aggregation/AbstractAggregationIsm.js +0 -1
  305. package/dist/contracts/isms/aggregation/AbstractAggregationIsm.js.map +1 -1
  306. package/dist/contracts/isms/aggregation/StaticAggregationIsm.d.ts +2 -2
  307. package/dist/contracts/isms/aggregation/StaticAggregationIsm.d.ts.map +1 -1
  308. package/dist/contracts/isms/aggregation/StaticAggregationIsm.js +0 -1
  309. package/dist/contracts/isms/aggregation/StaticAggregationIsm.js.map +1 -1
  310. package/dist/contracts/isms/aggregation/StaticAggregationIsmFactory.d.ts +2 -2
  311. package/dist/contracts/isms/aggregation/StaticAggregationIsmFactory.d.ts.map +1 -1
  312. package/dist/contracts/isms/aggregation/StaticAggregationIsmFactory.js +0 -1
  313. package/dist/contracts/isms/aggregation/StaticAggregationIsmFactory.js.map +1 -1
  314. package/dist/contracts/isms/ccip-read/AbstractCcipReadIsm.d.ts +67 -0
  315. package/dist/contracts/isms/ccip-read/AbstractCcipReadIsm.d.ts.map +1 -0
  316. package/dist/contracts/isms/ccip-read/AbstractCcipReadIsm.js +3 -0
  317. package/dist/contracts/isms/ccip-read/AbstractCcipReadIsm.js.map +1 -0
  318. package/dist/contracts/isms/ccip-read/index.d.ts +2 -0
  319. package/dist/contracts/isms/ccip-read/index.d.ts.map +1 -0
  320. package/dist/contracts/isms/ccip-read/index.js.map +1 -0
  321. package/dist/contracts/isms/hook/AbstractHookISM.d.ts +6 -6
  322. package/dist/contracts/isms/hook/AbstractHookISM.d.ts.map +1 -1
  323. package/dist/contracts/isms/hook/AbstractHookISM.js +0 -1
  324. package/dist/contracts/isms/hook/AbstractHookISM.js.map +1 -1
  325. package/dist/contracts/isms/hook/ERC5164ISM.d.ts +6 -6
  326. package/dist/contracts/isms/hook/ERC5164ISM.d.ts.map +1 -1
  327. package/dist/contracts/isms/hook/ERC5164ISM.js +0 -1
  328. package/dist/contracts/isms/hook/ERC5164ISM.js.map +1 -1
  329. package/dist/contracts/isms/hook/{optimism/OptimismISM.d.ts → OptimismISM.d.ts} +6 -6
  330. package/dist/contracts/isms/hook/OptimismISM.d.ts.map +1 -0
  331. package/dist/contracts/isms/hook/OptimismISM.js +3 -0
  332. package/dist/contracts/isms/hook/OptimismISM.js.map +1 -0
  333. package/dist/contracts/isms/hook/index.d.ts +1 -3
  334. package/dist/contracts/isms/hook/index.d.ts.map +1 -1
  335. package/dist/contracts/isms/hook/index.js +0 -1
  336. package/dist/contracts/isms/hook/index.js.map +1 -1
  337. package/dist/contracts/isms/index.d.ts +5 -3
  338. package/dist/contracts/isms/index.d.ts.map +1 -1
  339. package/dist/contracts/isms/index.js +0 -1
  340. package/dist/contracts/isms/index.js.map +1 -1
  341. package/dist/contracts/isms/multisig/AbstractMerkleRootMultisigIsm.d.ts +2 -2
  342. package/dist/contracts/isms/multisig/AbstractMerkleRootMultisigIsm.d.ts.map +1 -1
  343. package/dist/contracts/isms/multisig/AbstractMerkleRootMultisigIsm.js +0 -1
  344. package/dist/contracts/isms/multisig/AbstractMerkleRootMultisigIsm.js.map +1 -1
  345. package/dist/contracts/isms/multisig/AbstractMessageIdMultisigIsm.d.ts +2 -2
  346. package/dist/contracts/isms/multisig/AbstractMessageIdMultisigIsm.d.ts.map +1 -1
  347. package/dist/contracts/isms/multisig/AbstractMessageIdMultisigIsm.js +0 -1
  348. package/dist/contracts/isms/multisig/AbstractMessageIdMultisigIsm.js.map +1 -1
  349. package/dist/contracts/isms/multisig/AbstractMultisigIsm.d.ts +2 -2
  350. package/dist/contracts/isms/multisig/AbstractMultisigIsm.d.ts.map +1 -1
  351. package/dist/contracts/isms/multisig/AbstractMultisigIsm.js +0 -1
  352. package/dist/contracts/isms/multisig/AbstractMultisigIsm.js.map +1 -1
  353. package/dist/contracts/isms/multisig/LegacyMultisigIsm.d.ts +12 -12
  354. package/dist/contracts/isms/multisig/LegacyMultisigIsm.d.ts.map +1 -1
  355. package/dist/contracts/isms/multisig/LegacyMultisigIsm.js +0 -1
  356. package/dist/contracts/isms/multisig/LegacyMultisigIsm.js.map +1 -1
  357. package/dist/contracts/isms/multisig/StaticMultisigIsm.sol/AbstractMetaProxyMultisigIsm.d.ts +2 -2
  358. package/dist/contracts/isms/multisig/StaticMultisigIsm.sol/AbstractMetaProxyMultisigIsm.d.ts.map +1 -1
  359. package/dist/contracts/isms/multisig/StaticMultisigIsm.sol/AbstractMetaProxyMultisigIsm.js +0 -1
  360. package/dist/contracts/isms/multisig/StaticMultisigIsm.sol/AbstractMetaProxyMultisigIsm.js.map +1 -1
  361. package/dist/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm.d.ts +2 -2
  362. package/dist/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm.d.ts.map +1 -1
  363. package/dist/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm.js +0 -1
  364. package/dist/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm.js.map +1 -1
  365. package/dist/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory.d.ts +2 -2
  366. package/dist/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory.d.ts.map +1 -1
  367. package/dist/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory.js +0 -1
  368. package/dist/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory.js.map +1 -1
  369. package/dist/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm.d.ts +2 -2
  370. package/dist/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm.d.ts.map +1 -1
  371. package/dist/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm.js +0 -1
  372. package/dist/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm.js.map +1 -1
  373. package/dist/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory.d.ts +2 -2
  374. package/dist/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory.d.ts.map +1 -1
  375. package/dist/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory.js +0 -1
  376. package/dist/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory.js.map +1 -1
  377. package/dist/contracts/isms/multisig/index.d.ts.map +1 -1
  378. package/dist/contracts/isms/multisig/index.js +0 -1
  379. package/dist/contracts/isms/multisig/index.js.map +1 -1
  380. package/dist/contracts/isms/routing/AbstractRoutingIsm.d.ts +2 -2
  381. package/dist/contracts/isms/routing/AbstractRoutingIsm.d.ts.map +1 -1
  382. package/dist/contracts/isms/routing/AbstractRoutingIsm.js +0 -1
  383. package/dist/contracts/isms/routing/AbstractRoutingIsm.js.map +1 -1
  384. package/dist/contracts/isms/routing/DomainRoutingIsm.d.ts +8 -8
  385. package/dist/contracts/isms/routing/DomainRoutingIsm.d.ts.map +1 -1
  386. package/dist/contracts/isms/routing/DomainRoutingIsm.js +0 -1
  387. package/dist/contracts/isms/routing/DomainRoutingIsm.js.map +1 -1
  388. package/dist/contracts/isms/routing/DomainRoutingIsmFactory.d.ts +4 -4
  389. package/dist/contracts/isms/routing/DomainRoutingIsmFactory.d.ts.map +1 -1
  390. package/dist/contracts/isms/routing/DomainRoutingIsmFactory.js +0 -1
  391. package/dist/contracts/isms/routing/DomainRoutingIsmFactory.js.map +1 -1
  392. package/dist/contracts/isms/routing/InterchainAccountIsm.d.ts +2 -2
  393. package/dist/contracts/isms/routing/InterchainAccountIsm.d.ts.map +1 -1
  394. package/dist/contracts/isms/routing/InterchainAccountIsm.js +0 -1
  395. package/dist/contracts/isms/routing/InterchainAccountIsm.js.map +1 -1
  396. package/dist/contracts/libs/StaticMOfNAddressSetFactory.d.ts +2 -2
  397. package/dist/contracts/libs/StaticMOfNAddressSetFactory.d.ts.map +1 -1
  398. package/dist/contracts/libs/StaticMOfNAddressSetFactory.js +0 -1
  399. package/dist/contracts/libs/StaticMOfNAddressSetFactory.js.map +1 -1
  400. package/dist/contracts/middleware/InterchainAccountRouter.d.ts +20 -20
  401. package/dist/contracts/middleware/InterchainAccountRouter.d.ts.map +1 -1
  402. package/dist/contracts/middleware/InterchainAccountRouter.js +0 -1
  403. package/dist/contracts/middleware/InterchainAccountRouter.js.map +1 -1
  404. package/dist/contracts/middleware/InterchainQueryRouter.d.ts +20 -20
  405. package/dist/contracts/middleware/InterchainQueryRouter.d.ts.map +1 -1
  406. package/dist/contracts/middleware/InterchainQueryRouter.js +0 -1
  407. package/dist/contracts/middleware/InterchainQueryRouter.js.map +1 -1
  408. package/dist/contracts/middleware/index.d.ts.map +1 -1
  409. package/dist/contracts/middleware/index.js +0 -1
  410. package/dist/contracts/middleware/index.js.map +1 -1
  411. package/dist/contracts/middleware/liquidity-layer/LiquidityLayerRouter.d.ts +16 -16
  412. package/dist/contracts/middleware/liquidity-layer/LiquidityLayerRouter.d.ts.map +1 -1
  413. package/dist/contracts/middleware/liquidity-layer/LiquidityLayerRouter.js +0 -1
  414. package/dist/contracts/middleware/liquidity-layer/LiquidityLayerRouter.js.map +1 -1
  415. package/dist/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter.d.ts +22 -22
  416. package/dist/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter.d.ts.map +1 -1
  417. package/dist/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter.js +0 -1
  418. package/dist/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter.js.map +1 -1
  419. package/dist/contracts/middleware/liquidity-layer/adapters/PortalAdapter.d.ts +18 -18
  420. package/dist/contracts/middleware/liquidity-layer/adapters/PortalAdapter.d.ts.map +1 -1
  421. package/dist/contracts/middleware/liquidity-layer/adapters/PortalAdapter.js +0 -1
  422. package/dist/contracts/middleware/liquidity-layer/adapters/PortalAdapter.js.map +1 -1
  423. package/dist/contracts/middleware/liquidity-layer/index.d.ts +1 -1
  424. package/dist/contracts/middleware/liquidity-layer/index.d.ts.map +1 -1
  425. package/dist/contracts/middleware/liquidity-layer/index.js +0 -1
  426. package/dist/contracts/middleware/liquidity-layer/index.js.map +1 -1
  427. package/dist/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerAdapter.d.ts +2 -2
  428. package/dist/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerAdapter.d.ts.map +1 -1
  429. package/dist/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerAdapter.js +0 -1
  430. package/dist/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerAdapter.js.map +1 -1
  431. package/dist/contracts/middleware/liquidity-layer/interfaces/circle/ICircleMessageTransmitter.d.ts +2 -2
  432. package/dist/contracts/middleware/liquidity-layer/interfaces/circle/ICircleMessageTransmitter.d.ts.map +1 -1
  433. package/dist/contracts/middleware/liquidity-layer/interfaces/circle/ICircleMessageTransmitter.js +0 -1
  434. package/dist/contracts/middleware/liquidity-layer/interfaces/circle/ICircleMessageTransmitter.js.map +1 -1
  435. package/dist/contracts/middleware/liquidity-layer/interfaces/circle/ITokenMessenger.d.ts +4 -4
  436. package/dist/contracts/middleware/liquidity-layer/interfaces/circle/ITokenMessenger.d.ts.map +1 -1
  437. package/dist/contracts/middleware/liquidity-layer/interfaces/circle/ITokenMessenger.js +0 -1
  438. package/dist/contracts/middleware/liquidity-layer/interfaces/circle/ITokenMessenger.js.map +1 -1
  439. package/dist/contracts/middleware/liquidity-layer/interfaces/index.d.ts +1 -1
  440. package/dist/contracts/middleware/liquidity-layer/interfaces/index.d.ts.map +1 -1
  441. package/dist/contracts/middleware/liquidity-layer/interfaces/index.js +0 -1
  442. package/dist/contracts/middleware/liquidity-layer/interfaces/index.js.map +1 -1
  443. package/dist/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge.d.ts +4 -4
  444. package/dist/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge.d.ts.map +1 -1
  445. package/dist/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge.js +0 -1
  446. package/dist/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge.js.map +1 -1
  447. package/dist/contracts/mock/MockCircleMessageTransmitter.d.ts +2 -2
  448. package/dist/contracts/mock/MockCircleMessageTransmitter.d.ts.map +1 -1
  449. package/dist/contracts/mock/MockCircleMessageTransmitter.js +0 -1
  450. package/dist/contracts/mock/MockCircleMessageTransmitter.js.map +1 -1
  451. package/dist/contracts/mock/MockCircleTokenMessenger.d.ts +4 -4
  452. package/dist/contracts/mock/MockCircleTokenMessenger.d.ts.map +1 -1
  453. package/dist/contracts/mock/MockCircleTokenMessenger.js +0 -1
  454. package/dist/contracts/mock/MockCircleTokenMessenger.js.map +1 -1
  455. package/dist/contracts/mock/MockERC5164.sol/MockMessageDispatcher.d.ts +4 -4
  456. package/dist/contracts/mock/MockERC5164.sol/MockMessageDispatcher.d.ts.map +1 -1
  457. package/dist/contracts/mock/MockERC5164.sol/MockMessageDispatcher.js +0 -1
  458. package/dist/contracts/mock/MockERC5164.sol/MockMessageDispatcher.js.map +1 -1
  459. package/dist/contracts/mock/MockERC5164.sol/MockMessageExecutor.d.ts +4 -4
  460. package/dist/contracts/mock/MockERC5164.sol/MockMessageExecutor.d.ts.map +1 -1
  461. package/dist/contracts/mock/MockERC5164.sol/MockMessageExecutor.js +0 -1
  462. package/dist/contracts/mock/MockERC5164.sol/MockMessageExecutor.js.map +1 -1
  463. package/dist/contracts/mock/MockHyperlaneEnvironment.d.ts +2 -2
  464. package/dist/contracts/mock/MockHyperlaneEnvironment.d.ts.map +1 -1
  465. package/dist/contracts/mock/MockHyperlaneEnvironment.js +0 -1
  466. package/dist/contracts/mock/MockHyperlaneEnvironment.js.map +1 -1
  467. package/dist/contracts/mock/MockMailbox.d.ts +2 -2
  468. package/dist/contracts/mock/MockMailbox.d.ts.map +1 -1
  469. package/dist/contracts/mock/MockMailbox.js +0 -1
  470. package/dist/contracts/mock/MockMailbox.js.map +1 -1
  471. package/dist/contracts/mock/MockPortalBridge.d.ts +4 -4
  472. package/dist/contracts/mock/MockPortalBridge.d.ts.map +1 -1
  473. package/dist/contracts/mock/MockPortalBridge.js +0 -1
  474. package/dist/contracts/mock/MockPortalBridge.js.map +1 -1
  475. package/dist/contracts/mock/MockToken.d.ts +8 -8
  476. package/dist/contracts/mock/MockToken.d.ts.map +1 -1
  477. package/dist/contracts/mock/MockToken.js +0 -1
  478. package/dist/contracts/mock/MockToken.js.map +1 -1
  479. package/dist/contracts/mock/index.d.ts.map +1 -1
  480. package/dist/contracts/mock/index.js +0 -1
  481. package/dist/contracts/mock/index.js.map +1 -1
  482. package/dist/contracts/test/LightTestRecipient.d.ts +8 -8
  483. package/dist/contracts/test/LightTestRecipient.d.ts.map +1 -1
  484. package/dist/contracts/test/LightTestRecipient.js +0 -1
  485. package/dist/contracts/test/LightTestRecipient.js.map +1 -1
  486. package/dist/contracts/test/TestGasRouter.d.ts +18 -18
  487. package/dist/contracts/test/TestGasRouter.d.ts.map +1 -1
  488. package/dist/contracts/test/TestGasRouter.js +0 -1
  489. package/dist/contracts/test/TestGasRouter.js.map +1 -1
  490. package/dist/contracts/test/TestHyperlaneConnectionClient.d.ts +12 -12
  491. package/dist/contracts/test/TestHyperlaneConnectionClient.d.ts.map +1 -1
  492. package/dist/contracts/test/TestHyperlaneConnectionClient.js +0 -1
  493. package/dist/contracts/test/TestHyperlaneConnectionClient.js.map +1 -1
  494. package/dist/contracts/test/TestInterchainGasPaymaster.d.ts +12 -12
  495. package/dist/contracts/test/TestInterchainGasPaymaster.d.ts.map +1 -1
  496. package/dist/contracts/test/TestInterchainGasPaymaster.js +0 -1
  497. package/dist/contracts/test/TestInterchainGasPaymaster.js.map +1 -1
  498. package/dist/contracts/test/TestLegacyMultisigIsm.d.ts +12 -12
  499. package/dist/contracts/test/TestLegacyMultisigIsm.d.ts.map +1 -1
  500. package/dist/contracts/test/TestLegacyMultisigIsm.js +0 -1
  501. package/dist/contracts/test/TestLegacyMultisigIsm.js.map +1 -1
  502. package/dist/contracts/test/TestLiquidityLayerMessageRecipient.d.ts +4 -4
  503. package/dist/contracts/test/TestLiquidityLayerMessageRecipient.d.ts.map +1 -1
  504. package/dist/contracts/test/TestLiquidityLayerMessageRecipient.js +0 -1
  505. package/dist/contracts/test/TestLiquidityLayerMessageRecipient.js.map +1 -1
  506. package/dist/contracts/test/TestMailbox.d.ts +20 -20
  507. package/dist/contracts/test/TestMailbox.d.ts.map +1 -1
  508. package/dist/contracts/test/TestMailbox.js +0 -1
  509. package/dist/contracts/test/TestMailbox.js.map +1 -1
  510. package/dist/contracts/test/TestMerkle.d.ts +2 -2
  511. package/dist/contracts/test/TestMerkle.d.ts.map +1 -1
  512. package/dist/contracts/test/TestMerkle.js +0 -1
  513. package/dist/contracts/test/TestMerkle.js.map +1 -1
  514. package/dist/contracts/test/TestMessage.d.ts +2 -2
  515. package/dist/contracts/test/TestMessage.d.ts.map +1 -1
  516. package/dist/contracts/test/TestMessage.js +0 -1
  517. package/dist/contracts/test/TestMessage.js.map +1 -1
  518. package/dist/contracts/test/TestMultisigIsm.d.ts +2 -2
  519. package/dist/contracts/test/TestMultisigIsm.d.ts.map +1 -1
  520. package/dist/contracts/test/TestMultisigIsm.js +0 -1
  521. package/dist/contracts/test/TestMultisigIsm.js.map +1 -1
  522. package/dist/contracts/test/TestQuery.d.ts +4 -4
  523. package/dist/contracts/test/TestQuery.d.ts.map +1 -1
  524. package/dist/contracts/test/TestQuery.js +0 -1
  525. package/dist/contracts/test/TestQuery.js.map +1 -1
  526. package/dist/contracts/test/TestQuerySender.d.ts +8 -8
  527. package/dist/contracts/test/TestQuerySender.d.ts.map +1 -1
  528. package/dist/contracts/test/TestQuerySender.js +0 -1
  529. package/dist/contracts/test/TestQuerySender.js.map +1 -1
  530. package/dist/contracts/test/TestRecipient.d.ts +8 -8
  531. package/dist/contracts/test/TestRecipient.d.ts.map +1 -1
  532. package/dist/contracts/test/TestRecipient.js +0 -1
  533. package/dist/contracts/test/TestRecipient.js.map +1 -1
  534. package/dist/contracts/test/TestRouter.d.ts +16 -16
  535. package/dist/contracts/test/TestRouter.d.ts.map +1 -1
  536. package/dist/contracts/test/TestRouter.js +0 -1
  537. package/dist/contracts/test/TestRouter.js.map +1 -1
  538. package/dist/contracts/test/TestSendReceiver.d.ts +4 -4
  539. package/dist/contracts/test/TestSendReceiver.d.ts.map +1 -1
  540. package/dist/contracts/test/TestSendReceiver.js +0 -1
  541. package/dist/contracts/test/TestSendReceiver.js.map +1 -1
  542. package/dist/contracts/test/TestTokenRecipient.d.ts +6 -6
  543. package/dist/contracts/test/TestTokenRecipient.d.ts.map +1 -1
  544. package/dist/contracts/test/TestTokenRecipient.js +0 -1
  545. package/dist/contracts/test/TestTokenRecipient.js.map +1 -1
  546. package/dist/contracts/test/bad-recipient/BadRecipient1.d.ts +2 -2
  547. package/dist/contracts/test/bad-recipient/BadRecipient1.d.ts.map +1 -1
  548. package/dist/contracts/test/bad-recipient/BadRecipient1.js +0 -1
  549. package/dist/contracts/test/bad-recipient/BadRecipient1.js.map +1 -1
  550. package/dist/contracts/test/bad-recipient/BadRecipient2.d.ts +2 -2
  551. package/dist/contracts/test/bad-recipient/BadRecipient2.d.ts.map +1 -1
  552. package/dist/contracts/test/bad-recipient/BadRecipient2.js +0 -1
  553. package/dist/contracts/test/bad-recipient/BadRecipient2.js.map +1 -1
  554. package/dist/contracts/test/bad-recipient/BadRecipient3.d.ts +2 -2
  555. package/dist/contracts/test/bad-recipient/BadRecipient3.d.ts.map +1 -1
  556. package/dist/contracts/test/bad-recipient/BadRecipient3.js +0 -1
  557. package/dist/contracts/test/bad-recipient/BadRecipient3.js.map +1 -1
  558. package/dist/contracts/test/bad-recipient/BadRecipient5.d.ts +2 -2
  559. package/dist/contracts/test/bad-recipient/BadRecipient5.d.ts.map +1 -1
  560. package/dist/contracts/test/bad-recipient/BadRecipient5.js +0 -1
  561. package/dist/contracts/test/bad-recipient/BadRecipient5.js.map +1 -1
  562. package/dist/contracts/test/bad-recipient/BadRecipient6.d.ts +2 -2
  563. package/dist/contracts/test/bad-recipient/BadRecipient6.d.ts.map +1 -1
  564. package/dist/contracts/test/bad-recipient/BadRecipient6.js +0 -1
  565. package/dist/contracts/test/bad-recipient/BadRecipient6.js.map +1 -1
  566. package/dist/contracts/test/index.d.ts.map +1 -1
  567. package/dist/contracts/test/index.js +0 -1
  568. package/dist/contracts/test/index.js.map +1 -1
  569. package/dist/contracts/upgrade/Versioned.d.ts +2 -2
  570. package/dist/contracts/upgrade/Versioned.d.ts.map +1 -1
  571. package/dist/contracts/upgrade/Versioned.js +0 -1
  572. package/dist/contracts/upgrade/Versioned.js.map +1 -1
  573. package/dist/factories/@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger__factory.d.ts +2 -2
  574. package/dist/factories/@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger__factory.d.ts.map +1 -1
  575. package/dist/factories/@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger__factory.js +2 -0
  576. package/dist/factories/@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger__factory.js.map +1 -1
  577. package/dist/factories/@openzeppelin/contracts/access/AccessControl__factory.d.ts +2 -2
  578. package/dist/factories/@openzeppelin/contracts/access/AccessControl__factory.d.ts.map +1 -1
  579. package/dist/factories/@openzeppelin/contracts/access/AccessControl__factory.js +2 -0
  580. package/dist/factories/@openzeppelin/contracts/access/AccessControl__factory.js.map +1 -1
  581. package/dist/factories/@openzeppelin/contracts/access/IAccessControl__factory.d.ts +2 -2
  582. package/dist/factories/@openzeppelin/contracts/access/IAccessControl__factory.d.ts.map +1 -1
  583. package/dist/factories/@openzeppelin/contracts/access/IAccessControl__factory.js +2 -0
  584. package/dist/factories/@openzeppelin/contracts/access/IAccessControl__factory.js.map +1 -1
  585. package/dist/factories/@openzeppelin/contracts/access/Ownable__factory.d.ts +2 -2
  586. package/dist/factories/@openzeppelin/contracts/access/Ownable__factory.d.ts.map +1 -1
  587. package/dist/factories/@openzeppelin/contracts/access/Ownable__factory.js +2 -0
  588. package/dist/factories/@openzeppelin/contracts/access/Ownable__factory.js.map +1 -1
  589. package/dist/factories/@openzeppelin/contracts/governance/TimelockController__factory.d.ts +3 -3
  590. package/dist/factories/@openzeppelin/contracts/governance/TimelockController__factory.d.ts.map +1 -1
  591. package/dist/factories/@openzeppelin/contracts/governance/TimelockController__factory.js +3 -1
  592. package/dist/factories/@openzeppelin/contracts/governance/TimelockController__factory.js.map +1 -1
  593. package/dist/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable__factory.d.ts +2 -2
  594. package/dist/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable__factory.d.ts.map +1 -1
  595. package/dist/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable__factory.js +2 -0
  596. package/dist/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable__factory.js.map +1 -1
  597. package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory.d.ts +3 -3
  598. package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory.d.ts.map +1 -1
  599. package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory.js +3 -1
  600. package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory.js.map +1 -1
  601. package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade__factory.d.ts +2 -2
  602. package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade__factory.d.ts.map +1 -1
  603. package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade__factory.js +2 -0
  604. package/dist/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade__factory.js.map +1 -1
  605. package/dist/factories/@openzeppelin/contracts/proxy/Proxy__factory.d.ts +2 -2
  606. package/dist/factories/@openzeppelin/contracts/proxy/Proxy__factory.d.ts.map +1 -1
  607. package/dist/factories/@openzeppelin/contracts/proxy/Proxy__factory.js +2 -0
  608. package/dist/factories/@openzeppelin/contracts/proxy/Proxy__factory.js.map +1 -1
  609. package/dist/factories/@openzeppelin/contracts/proxy/beacon/IBeacon__factory.d.ts +2 -2
  610. package/dist/factories/@openzeppelin/contracts/proxy/beacon/IBeacon__factory.d.ts.map +1 -1
  611. package/dist/factories/@openzeppelin/contracts/proxy/beacon/IBeacon__factory.js +2 -0
  612. package/dist/factories/@openzeppelin/contracts/proxy/beacon/IBeacon__factory.js.map +1 -1
  613. package/dist/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.d.ts +3 -3
  614. package/dist/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.d.ts.map +1 -1
  615. package/dist/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.js +3 -1
  616. package/dist/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.js.map +1 -1
  617. package/dist/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy__factory.d.ts +3 -3
  618. package/dist/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy__factory.d.ts.map +1 -1
  619. package/dist/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy__factory.js +3 -1
  620. package/dist/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy__factory.js.map +1 -1
  621. package/dist/factories/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver__factory.d.ts +2 -2
  622. package/dist/factories/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver__factory.d.ts.map +1 -1
  623. package/dist/factories/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver__factory.js +2 -0
  624. package/dist/factories/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver__factory.js.map +1 -1
  625. package/dist/factories/@openzeppelin/contracts/token/ERC20/IERC20__factory.d.ts +2 -2
  626. package/dist/factories/@openzeppelin/contracts/token/ERC20/IERC20__factory.d.ts.map +1 -1
  627. package/dist/factories/@openzeppelin/contracts/token/ERC20/IERC20__factory.js +2 -0
  628. package/dist/factories/@openzeppelin/contracts/token/ERC20/IERC20__factory.js.map +1 -1
  629. package/dist/factories/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit__factory.d.ts +2 -2
  630. package/dist/factories/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit__factory.d.ts.map +1 -1
  631. package/dist/factories/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit__factory.js +2 -0
  632. package/dist/factories/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit__factory.js.map +1 -1
  633. package/dist/factories/@openzeppelin/contracts/token/ERC721/IERC721Receiver__factory.d.ts +2 -2
  634. package/dist/factories/@openzeppelin/contracts/token/ERC721/IERC721Receiver__factory.d.ts.map +1 -1
  635. package/dist/factories/@openzeppelin/contracts/token/ERC721/IERC721Receiver__factory.js +2 -0
  636. package/dist/factories/@openzeppelin/contracts/token/ERC721/IERC721Receiver__factory.js.map +1 -1
  637. package/dist/factories/@openzeppelin/contracts/utils/introspection/ERC165__factory.d.ts +2 -2
  638. package/dist/factories/@openzeppelin/contracts/utils/introspection/ERC165__factory.d.ts.map +1 -1
  639. package/dist/factories/@openzeppelin/contracts/utils/introspection/ERC165__factory.js +2 -0
  640. package/dist/factories/@openzeppelin/contracts/utils/introspection/ERC165__factory.js.map +1 -1
  641. package/dist/factories/@openzeppelin/contracts/utils/introspection/IERC165__factory.d.ts +2 -2
  642. package/dist/factories/@openzeppelin/contracts/utils/introspection/IERC165__factory.d.ts.map +1 -1
  643. package/dist/factories/@openzeppelin/contracts/utils/introspection/IERC165__factory.js +2 -0
  644. package/dist/factories/@openzeppelin/contracts/utils/introspection/IERC165__factory.js.map +1 -1
  645. package/dist/factories/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable__factory.d.ts +2 -2
  646. package/dist/factories/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable__factory.d.ts.map +1 -1
  647. package/dist/factories/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable__factory.js +2 -0
  648. package/dist/factories/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable__factory.js.map +1 -1
  649. package/dist/factories/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable__factory.d.ts +2 -2
  650. package/dist/factories/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable__factory.d.ts.map +1 -1
  651. package/dist/factories/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable__factory.js +2 -0
  652. package/dist/factories/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable__factory.js.map +1 -1
  653. package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable__factory.d.ts +3 -3
  654. package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable__factory.d.ts.map +1 -1
  655. package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable__factory.js +3 -1
  656. package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable__factory.js.map +1 -1
  657. package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable__factory.d.ts +2 -2
  658. package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable__factory.d.ts.map +1 -1
  659. package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable__factory.js +2 -0
  660. package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable__factory.js.map +1 -1
  661. package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable__factory.d.ts +2 -2
  662. package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable__factory.d.ts.map +1 -1
  663. package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable__factory.js +2 -0
  664. package/dist/factories/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable__factory.js.map +1 -1
  665. package/dist/factories/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable__factory.d.ts +2 -2
  666. package/dist/factories/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable__factory.d.ts.map +1 -1
  667. package/dist/factories/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable__factory.js +2 -0
  668. package/dist/factories/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable__factory.js.map +1 -1
  669. package/dist/factories/contracts/GasRouter__factory.d.ts +2 -2
  670. package/dist/factories/contracts/GasRouter__factory.d.ts.map +1 -1
  671. package/dist/factories/contracts/GasRouter__factory.js +2 -0
  672. package/dist/factories/contracts/GasRouter__factory.js.map +1 -1
  673. package/dist/factories/contracts/HyperlaneConnectionClient__factory.d.ts +2 -2
  674. package/dist/factories/contracts/HyperlaneConnectionClient__factory.d.ts.map +1 -1
  675. package/dist/factories/contracts/HyperlaneConnectionClient__factory.js +2 -0
  676. package/dist/factories/contracts/HyperlaneConnectionClient__factory.js.map +1 -1
  677. package/dist/factories/contracts/Mailbox__factory.d.ts +4 -4
  678. package/dist/factories/contracts/Mailbox__factory.d.ts.map +1 -1
  679. package/dist/factories/contracts/Mailbox__factory.js +4 -2
  680. package/dist/factories/contracts/Mailbox__factory.js.map +1 -1
  681. package/dist/factories/contracts/OwnableMulticall__factory.d.ts +3 -3
  682. package/dist/factories/contracts/OwnableMulticall__factory.d.ts.map +1 -1
  683. package/dist/factories/contracts/OwnableMulticall__factory.js +3 -1
  684. package/dist/factories/contracts/OwnableMulticall__factory.js.map +1 -1
  685. package/dist/factories/contracts/PausableReentrancyGuard.sol/PausableReentrancyGuardUpgradeable__factory.d.ts +2 -2
  686. package/dist/factories/contracts/PausableReentrancyGuard.sol/PausableReentrancyGuardUpgradeable__factory.d.ts.map +1 -1
  687. package/dist/factories/contracts/PausableReentrancyGuard.sol/PausableReentrancyGuardUpgradeable__factory.js +2 -0
  688. package/dist/factories/contracts/PausableReentrancyGuard.sol/PausableReentrancyGuardUpgradeable__factory.js.map +1 -1
  689. package/dist/factories/contracts/Router__factory.d.ts +2 -2
  690. package/dist/factories/contracts/Router__factory.d.ts.map +1 -1
  691. package/dist/factories/contracts/Router__factory.js +2 -0
  692. package/dist/factories/contracts/Router__factory.js.map +1 -1
  693. package/dist/factories/contracts/ValidatorAnnounce__factory.d.ts +4 -4
  694. package/dist/factories/contracts/ValidatorAnnounce__factory.d.ts.map +1 -1
  695. package/dist/factories/contracts/ValidatorAnnounce__factory.js +4 -2
  696. package/dist/factories/contracts/ValidatorAnnounce__factory.js.map +1 -1
  697. package/dist/factories/contracts/hooks/ERC5164/ERC5164MessageHook__factory.d.ts +4 -4
  698. package/dist/factories/contracts/hooks/ERC5164/ERC5164MessageHook__factory.d.ts.map +1 -1
  699. package/dist/factories/contracts/hooks/ERC5164/ERC5164MessageHook__factory.js +4 -2
  700. package/dist/factories/contracts/hooks/ERC5164/ERC5164MessageHook__factory.js.map +1 -1
  701. package/dist/factories/contracts/hooks/ERC5164/interfaces/IMessageDispatcher__factory.d.ts +2 -2
  702. package/dist/factories/contracts/hooks/ERC5164/interfaces/IMessageDispatcher__factory.d.ts.map +1 -1
  703. package/dist/factories/contracts/hooks/ERC5164/interfaces/IMessageDispatcher__factory.js +2 -0
  704. package/dist/factories/contracts/hooks/ERC5164/interfaces/IMessageDispatcher__factory.js.map +1 -1
  705. package/dist/factories/contracts/hooks/OptimismMessageHook__factory.d.ts +4 -4
  706. package/dist/factories/contracts/hooks/OptimismMessageHook__factory.d.ts.map +1 -1
  707. package/dist/factories/contracts/hooks/OptimismMessageHook__factory.js +4 -2
  708. package/dist/factories/contracts/hooks/OptimismMessageHook__factory.js.map +1 -1
  709. package/dist/factories/contracts/igps/InterchainGasPaymaster__factory.d.ts +3 -3
  710. package/dist/factories/contracts/igps/InterchainGasPaymaster__factory.d.ts.map +1 -1
  711. package/dist/factories/contracts/igps/InterchainGasPaymaster__factory.js +3 -1
  712. package/dist/factories/contracts/igps/InterchainGasPaymaster__factory.js.map +1 -1
  713. package/dist/factories/contracts/igps/OverheadIgp__factory.d.ts +3 -3
  714. package/dist/factories/contracts/igps/OverheadIgp__factory.d.ts.map +1 -1
  715. package/dist/factories/contracts/igps/OverheadIgp__factory.js +3 -1
  716. package/dist/factories/contracts/igps/OverheadIgp__factory.js.map +1 -1
  717. package/dist/factories/contracts/igps/gas-oracles/StorageGasOracle__factory.d.ts +3 -3
  718. package/dist/factories/contracts/igps/gas-oracles/StorageGasOracle__factory.d.ts.map +1 -1
  719. package/dist/factories/contracts/igps/gas-oracles/StorageGasOracle__factory.js +3 -1
  720. package/dist/factories/contracts/igps/gas-oracles/StorageGasOracle__factory.js.map +1 -1
  721. package/dist/factories/contracts/interfaces/IGasOracle__factory.d.ts +2 -2
  722. package/dist/factories/contracts/interfaces/IGasOracle__factory.d.ts.map +1 -1
  723. package/dist/factories/contracts/interfaces/IGasOracle__factory.js +2 -0
  724. package/dist/factories/contracts/interfaces/IGasOracle__factory.js.map +1 -1
  725. package/dist/factories/contracts/interfaces/IHyperlaneConnectionClient__factory.d.ts +2 -2
  726. package/dist/factories/contracts/interfaces/IHyperlaneConnectionClient__factory.d.ts.map +1 -1
  727. package/dist/factories/contracts/interfaces/IHyperlaneConnectionClient__factory.js +2 -0
  728. package/dist/factories/contracts/interfaces/IHyperlaneConnectionClient__factory.js.map +1 -1
  729. package/dist/factories/contracts/interfaces/IInterchainGasPaymaster__factory.d.ts +2 -2
  730. package/dist/factories/contracts/interfaces/IInterchainGasPaymaster__factory.d.ts.map +1 -1
  731. package/dist/factories/contracts/interfaces/IInterchainGasPaymaster__factory.js +2 -0
  732. package/dist/factories/contracts/interfaces/IInterchainGasPaymaster__factory.js.map +1 -1
  733. package/dist/factories/contracts/interfaces/IInterchainSecurityModule.sol/IInterchainSecurityModule__factory.d.ts +2 -2
  734. package/dist/factories/contracts/interfaces/IInterchainSecurityModule.sol/IInterchainSecurityModule__factory.d.ts.map +1 -1
  735. package/dist/factories/contracts/interfaces/IInterchainSecurityModule.sol/IInterchainSecurityModule__factory.js +2 -0
  736. package/dist/factories/contracts/interfaces/IInterchainSecurityModule.sol/IInterchainSecurityModule__factory.js.map +1 -1
  737. package/dist/factories/contracts/interfaces/IInterchainSecurityModule.sol/ISpecifiesInterchainSecurityModule__factory.d.ts +2 -2
  738. package/dist/factories/contracts/interfaces/IInterchainSecurityModule.sol/ISpecifiesInterchainSecurityModule__factory.d.ts.map +1 -1
  739. package/dist/factories/contracts/interfaces/IInterchainSecurityModule.sol/ISpecifiesInterchainSecurityModule__factory.js +2 -0
  740. package/dist/factories/contracts/interfaces/IInterchainSecurityModule.sol/ISpecifiesInterchainSecurityModule__factory.js.map +1 -1
  741. package/dist/factories/contracts/interfaces/ILiquidityLayerMessageRecipient__factory.d.ts +2 -2
  742. package/dist/factories/contracts/interfaces/ILiquidityLayerMessageRecipient__factory.d.ts.map +1 -1
  743. package/dist/factories/contracts/interfaces/ILiquidityLayerMessageRecipient__factory.js +2 -0
  744. package/dist/factories/contracts/interfaces/ILiquidityLayerMessageRecipient__factory.js.map +1 -1
  745. package/dist/factories/contracts/interfaces/ILiquidityLayerRouter__factory.d.ts +2 -2
  746. package/dist/factories/contracts/interfaces/ILiquidityLayerRouter__factory.d.ts.map +1 -1
  747. package/dist/factories/contracts/interfaces/ILiquidityLayerRouter__factory.js +2 -0
  748. package/dist/factories/contracts/interfaces/ILiquidityLayerRouter__factory.js.map +1 -1
  749. package/dist/factories/contracts/interfaces/IMailbox__factory.d.ts +2 -2
  750. package/dist/factories/contracts/interfaces/IMailbox__factory.d.ts.map +1 -1
  751. package/dist/factories/contracts/interfaces/IMailbox__factory.js +2 -0
  752. package/dist/factories/contracts/interfaces/IMailbox__factory.js.map +1 -1
  753. package/dist/factories/contracts/interfaces/IMessageRecipient__factory.d.ts +2 -2
  754. package/dist/factories/contracts/interfaces/IMessageRecipient__factory.d.ts.map +1 -1
  755. package/dist/factories/contracts/interfaces/IMessageRecipient__factory.js +2 -0
  756. package/dist/factories/contracts/interfaces/IMessageRecipient__factory.js.map +1 -1
  757. package/dist/factories/contracts/interfaces/IRouter__factory.d.ts +2 -2
  758. package/dist/factories/contracts/interfaces/IRouter__factory.d.ts.map +1 -1
  759. package/dist/factories/contracts/interfaces/IRouter__factory.js +2 -0
  760. package/dist/factories/contracts/interfaces/IRouter__factory.js.map +1 -1
  761. package/dist/factories/contracts/interfaces/IValidatorAnnounce__factory.d.ts +2 -2
  762. package/dist/factories/contracts/interfaces/IValidatorAnnounce__factory.d.ts.map +1 -1
  763. package/dist/factories/contracts/interfaces/IValidatorAnnounce__factory.js +2 -0
  764. package/dist/factories/contracts/interfaces/IValidatorAnnounce__factory.js.map +1 -1
  765. package/dist/factories/contracts/interfaces/hooks/IMessageHook__factory.d.ts +2 -2
  766. package/dist/factories/contracts/interfaces/hooks/IMessageHook__factory.d.ts.map +1 -1
  767. package/dist/factories/contracts/interfaces/hooks/IMessageHook__factory.js +2 -0
  768. package/dist/factories/contracts/interfaces/hooks/IMessageHook__factory.js.map +1 -1
  769. package/dist/factories/contracts/interfaces/isms/IAggregationIsm__factory.d.ts +2 -2
  770. package/dist/factories/contracts/interfaces/isms/IAggregationIsm__factory.d.ts.map +1 -1
  771. package/dist/factories/contracts/interfaces/isms/IAggregationIsm__factory.js +2 -0
  772. package/dist/factories/contracts/interfaces/isms/IAggregationIsm__factory.js.map +1 -1
  773. package/dist/factories/contracts/interfaces/isms/ICcipReadIsm__factory.d.ts +33 -0
  774. package/dist/factories/contracts/interfaces/isms/ICcipReadIsm__factory.d.ts.map +1 -0
  775. package/dist/factories/contracts/interfaces/isms/ICcipReadIsm__factory.js +101 -0
  776. package/dist/factories/contracts/interfaces/isms/ICcipReadIsm__factory.js.map +1 -0
  777. package/dist/factories/contracts/interfaces/isms/IMultisigIsm__factory.d.ts +2 -2
  778. package/dist/factories/contracts/interfaces/isms/IMultisigIsm__factory.d.ts.map +1 -1
  779. package/dist/factories/contracts/interfaces/isms/IMultisigIsm__factory.js +2 -0
  780. package/dist/factories/contracts/interfaces/isms/IMultisigIsm__factory.js.map +1 -1
  781. package/dist/factories/contracts/interfaces/isms/IRoutingIsm__factory.d.ts +2 -2
  782. package/dist/factories/contracts/interfaces/isms/IRoutingIsm__factory.d.ts.map +1 -1
  783. package/dist/factories/contracts/interfaces/isms/IRoutingIsm__factory.js +2 -0
  784. package/dist/factories/contracts/interfaces/isms/IRoutingIsm__factory.js.map +1 -1
  785. package/dist/factories/contracts/interfaces/isms/index.d.ts +1 -0
  786. package/dist/factories/contracts/interfaces/isms/index.d.ts.map +1 -1
  787. package/dist/factories/contracts/interfaces/isms/index.js +3 -1
  788. package/dist/factories/contracts/interfaces/isms/index.js.map +1 -1
  789. package/dist/factories/contracts/interfaces/middleware/IInterchainAccountRouter__factory.d.ts +2 -2
  790. package/dist/factories/contracts/interfaces/middleware/IInterchainAccountRouter__factory.d.ts.map +1 -1
  791. package/dist/factories/contracts/interfaces/middleware/IInterchainAccountRouter__factory.js +2 -0
  792. package/dist/factories/contracts/interfaces/middleware/IInterchainAccountRouter__factory.js.map +1 -1
  793. package/dist/factories/contracts/interfaces/middleware/IInterchainQueryRouter__factory.d.ts +2 -2
  794. package/dist/factories/contracts/interfaces/middleware/IInterchainQueryRouter__factory.d.ts.map +1 -1
  795. package/dist/factories/contracts/interfaces/middleware/IInterchainQueryRouter__factory.js +2 -0
  796. package/dist/factories/contracts/interfaces/middleware/IInterchainQueryRouter__factory.js.map +1 -1
  797. package/dist/factories/contracts/isms/aggregation/AbstractAggregationIsm__factory.d.ts +2 -2
  798. package/dist/factories/contracts/isms/aggregation/AbstractAggregationIsm__factory.d.ts.map +1 -1
  799. package/dist/factories/contracts/isms/aggregation/AbstractAggregationIsm__factory.js +2 -0
  800. package/dist/factories/contracts/isms/aggregation/AbstractAggregationIsm__factory.js.map +1 -1
  801. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsmFactory__factory.d.ts +4 -4
  802. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsmFactory__factory.d.ts.map +1 -1
  803. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsmFactory__factory.js +4 -2
  804. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsmFactory__factory.js.map +1 -1
  805. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.d.ts +4 -4
  806. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.d.ts.map +1 -1
  807. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.js +4 -2
  808. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.js.map +1 -1
  809. package/dist/factories/contracts/isms/ccip-read/AbstractCcipReadIsm__factory.d.ts +33 -0
  810. package/dist/factories/contracts/isms/ccip-read/AbstractCcipReadIsm__factory.d.ts.map +1 -0
  811. package/dist/factories/contracts/isms/ccip-read/AbstractCcipReadIsm__factory.js +101 -0
  812. package/dist/factories/contracts/isms/ccip-read/AbstractCcipReadIsm__factory.js.map +1 -0
  813. package/dist/factories/contracts/isms/ccip-read/index.d.ts +2 -0
  814. package/dist/factories/contracts/isms/ccip-read/index.d.ts.map +1 -0
  815. package/dist/factories/contracts/isms/ccip-read/index.js +9 -0
  816. package/dist/factories/contracts/isms/ccip-read/index.js.map +1 -0
  817. package/dist/factories/contracts/isms/hook/AbstractHookISM__factory.d.ts +2 -2
  818. package/dist/factories/contracts/isms/hook/AbstractHookISM__factory.d.ts.map +1 -1
  819. package/dist/factories/contracts/isms/hook/AbstractHookISM__factory.js +2 -0
  820. package/dist/factories/contracts/isms/hook/AbstractHookISM__factory.js.map +1 -1
  821. package/dist/factories/contracts/isms/hook/ERC5164ISM__factory.d.ts +4 -4
  822. package/dist/factories/contracts/isms/hook/ERC5164ISM__factory.d.ts.map +1 -1
  823. package/dist/factories/contracts/isms/hook/ERC5164ISM__factory.js +4 -2
  824. package/dist/factories/contracts/isms/hook/ERC5164ISM__factory.js.map +1 -1
  825. package/dist/factories/contracts/isms/hook/{optimism/OptimismISM__factory.d.ts → OptimismISM__factory.d.ts} +5 -9
  826. package/dist/factories/contracts/isms/hook/OptimismISM__factory.d.ts.map +1 -0
  827. package/dist/factories/contracts/isms/hook/{optimism/OptimismISM__factory.js → OptimismISM__factory.js} +4 -23
  828. package/dist/factories/contracts/isms/hook/OptimismISM__factory.js.map +1 -0
  829. package/dist/factories/contracts/isms/hook/index.d.ts +1 -2
  830. package/dist/factories/contracts/isms/hook/index.d.ts.map +1 -1
  831. package/dist/factories/contracts/isms/hook/index.js +3 -27
  832. package/dist/factories/contracts/isms/hook/index.js.map +1 -1
  833. package/dist/factories/contracts/isms/index.d.ts +1 -0
  834. package/dist/factories/contracts/isms/index.d.ts.map +1 -1
  835. package/dist/factories/contracts/isms/index.js +2 -1
  836. package/dist/factories/contracts/isms/index.js.map +1 -1
  837. package/dist/factories/contracts/isms/multisig/AbstractMerkleRootMultisigIsm__factory.d.ts +2 -2
  838. package/dist/factories/contracts/isms/multisig/AbstractMerkleRootMultisigIsm__factory.d.ts.map +1 -1
  839. package/dist/factories/contracts/isms/multisig/AbstractMerkleRootMultisigIsm__factory.js +2 -0
  840. package/dist/factories/contracts/isms/multisig/AbstractMerkleRootMultisigIsm__factory.js.map +1 -1
  841. package/dist/factories/contracts/isms/multisig/AbstractMessageIdMultisigIsm__factory.d.ts +2 -2
  842. package/dist/factories/contracts/isms/multisig/AbstractMessageIdMultisigIsm__factory.d.ts.map +1 -1
  843. package/dist/factories/contracts/isms/multisig/AbstractMessageIdMultisigIsm__factory.js +2 -0
  844. package/dist/factories/contracts/isms/multisig/AbstractMessageIdMultisigIsm__factory.js.map +1 -1
  845. package/dist/factories/contracts/isms/multisig/AbstractMultisigIsm__factory.d.ts +2 -2
  846. package/dist/factories/contracts/isms/multisig/AbstractMultisigIsm__factory.d.ts.map +1 -1
  847. package/dist/factories/contracts/isms/multisig/AbstractMultisigIsm__factory.js +2 -0
  848. package/dist/factories/contracts/isms/multisig/AbstractMultisigIsm__factory.js.map +1 -1
  849. package/dist/factories/contracts/isms/multisig/LegacyMultisigIsm__factory.d.ts +4 -4
  850. package/dist/factories/contracts/isms/multisig/LegacyMultisigIsm__factory.d.ts.map +1 -1
  851. package/dist/factories/contracts/isms/multisig/LegacyMultisigIsm__factory.js +4 -2
  852. package/dist/factories/contracts/isms/multisig/LegacyMultisigIsm__factory.js.map +1 -1
  853. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/AbstractMetaProxyMultisigIsm__factory.d.ts +2 -2
  854. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/AbstractMetaProxyMultisigIsm__factory.d.ts.map +1 -1
  855. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/AbstractMetaProxyMultisigIsm__factory.js +2 -0
  856. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/AbstractMetaProxyMultisigIsm__factory.js.map +1 -1
  857. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.d.ts +4 -4
  858. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.d.ts.map +1 -1
  859. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.js +4 -2
  860. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.js.map +1 -1
  861. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.d.ts +4 -4
  862. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.d.ts.map +1 -1
  863. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.js +4 -2
  864. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.js.map +1 -1
  865. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.d.ts +4 -4
  866. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.d.ts.map +1 -1
  867. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.js +4 -2
  868. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.js.map +1 -1
  869. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.d.ts +4 -4
  870. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.d.ts.map +1 -1
  871. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.js +4 -2
  872. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.js.map +1 -1
  873. package/dist/factories/contracts/isms/routing/AbstractRoutingIsm__factory.d.ts +2 -2
  874. package/dist/factories/contracts/isms/routing/AbstractRoutingIsm__factory.d.ts.map +1 -1
  875. package/dist/factories/contracts/isms/routing/AbstractRoutingIsm__factory.js +2 -0
  876. package/dist/factories/contracts/isms/routing/AbstractRoutingIsm__factory.js.map +1 -1
  877. package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory__factory.d.ts +4 -4
  878. package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory__factory.d.ts.map +1 -1
  879. package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory__factory.js +4 -2
  880. package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory__factory.js.map +1 -1
  881. package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.d.ts +4 -4
  882. package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.d.ts.map +1 -1
  883. package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.js +4 -2
  884. package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.js.map +1 -1
  885. package/dist/factories/contracts/isms/routing/InterchainAccountIsm__factory.d.ts +4 -4
  886. package/dist/factories/contracts/isms/routing/InterchainAccountIsm__factory.d.ts.map +1 -1
  887. package/dist/factories/contracts/isms/routing/InterchainAccountIsm__factory.js +4 -2
  888. package/dist/factories/contracts/isms/routing/InterchainAccountIsm__factory.js.map +1 -1
  889. package/dist/factories/contracts/libs/StaticMOfNAddressSetFactory__factory.d.ts +2 -2
  890. package/dist/factories/contracts/libs/StaticMOfNAddressSetFactory__factory.d.ts.map +1 -1
  891. package/dist/factories/contracts/libs/StaticMOfNAddressSetFactory__factory.js +2 -0
  892. package/dist/factories/contracts/libs/StaticMOfNAddressSetFactory__factory.js.map +1 -1
  893. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts +4 -4
  894. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts.map +1 -1
  895. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.js +4 -2
  896. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.js.map +1 -1
  897. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.d.ts +4 -4
  898. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.d.ts.map +1 -1
  899. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.js +4 -2
  900. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.js.map +1 -1
  901. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.d.ts +4 -4
  902. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.d.ts.map +1 -1
  903. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.js +4 -2
  904. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.js.map +1 -1
  905. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.d.ts +4 -4
  906. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.d.ts.map +1 -1
  907. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.js +4 -2
  908. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.js.map +1 -1
  909. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.d.ts +4 -4
  910. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.d.ts.map +1 -1
  911. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.js +4 -2
  912. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.js.map +1 -1
  913. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerAdapter__factory.d.ts +2 -2
  914. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerAdapter__factory.d.ts.map +1 -1
  915. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerAdapter__factory.js +2 -0
  916. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerAdapter__factory.js.map +1 -1
  917. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/circle/ICircleMessageTransmitter__factory.d.ts +2 -2
  918. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/circle/ICircleMessageTransmitter__factory.d.ts.map +1 -1
  919. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/circle/ICircleMessageTransmitter__factory.js +2 -0
  920. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/circle/ICircleMessageTransmitter__factory.js.map +1 -1
  921. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/circle/ITokenMessenger__factory.d.ts +2 -2
  922. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/circle/ITokenMessenger__factory.d.ts.map +1 -1
  923. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/circle/ITokenMessenger__factory.js +2 -0
  924. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/circle/ITokenMessenger__factory.js.map +1 -1
  925. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge__factory.d.ts +2 -2
  926. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge__factory.d.ts.map +1 -1
  927. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge__factory.js +2 -0
  928. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge__factory.js.map +1 -1
  929. package/dist/factories/contracts/mock/MockCircleMessageTransmitter__factory.d.ts +3 -3
  930. package/dist/factories/contracts/mock/MockCircleMessageTransmitter__factory.d.ts.map +1 -1
  931. package/dist/factories/contracts/mock/MockCircleMessageTransmitter__factory.js +3 -1
  932. package/dist/factories/contracts/mock/MockCircleMessageTransmitter__factory.js.map +1 -1
  933. package/dist/factories/contracts/mock/MockCircleTokenMessenger__factory.d.ts +3 -3
  934. package/dist/factories/contracts/mock/MockCircleTokenMessenger__factory.d.ts.map +1 -1
  935. package/dist/factories/contracts/mock/MockCircleTokenMessenger__factory.js +3 -1
  936. package/dist/factories/contracts/mock/MockCircleTokenMessenger__factory.js.map +1 -1
  937. package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageDispatcher__factory.d.ts +3 -3
  938. package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageDispatcher__factory.d.ts.map +1 -1
  939. package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageDispatcher__factory.js +3 -1
  940. package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageDispatcher__factory.js.map +1 -1
  941. package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageExecutor__factory.d.ts +3 -3
  942. package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageExecutor__factory.d.ts.map +1 -1
  943. package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageExecutor__factory.js +3 -1
  944. package/dist/factories/contracts/mock/MockERC5164.sol/MockMessageExecutor__factory.js.map +1 -1
  945. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts +4 -4
  946. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts.map +1 -1
  947. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js +4 -2
  948. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js.map +1 -1
  949. package/dist/factories/contracts/mock/MockMailbox__factory.d.ts +4 -4
  950. package/dist/factories/contracts/mock/MockMailbox__factory.d.ts.map +1 -1
  951. package/dist/factories/contracts/mock/MockMailbox__factory.js +4 -2
  952. package/dist/factories/contracts/mock/MockMailbox__factory.js.map +1 -1
  953. package/dist/factories/contracts/mock/MockPortalBridge__factory.d.ts +3 -3
  954. package/dist/factories/contracts/mock/MockPortalBridge__factory.d.ts.map +1 -1
  955. package/dist/factories/contracts/mock/MockPortalBridge__factory.js +3 -1
  956. package/dist/factories/contracts/mock/MockPortalBridge__factory.js.map +1 -1
  957. package/dist/factories/contracts/mock/MockToken__factory.d.ts +3 -3
  958. package/dist/factories/contracts/mock/MockToken__factory.d.ts.map +1 -1
  959. package/dist/factories/contracts/mock/MockToken__factory.js +3 -1
  960. package/dist/factories/contracts/mock/MockToken__factory.js.map +1 -1
  961. package/dist/factories/contracts/test/LightTestRecipient__factory.d.ts +4 -4
  962. package/dist/factories/contracts/test/LightTestRecipient__factory.d.ts.map +1 -1
  963. package/dist/factories/contracts/test/LightTestRecipient__factory.js +4 -2
  964. package/dist/factories/contracts/test/LightTestRecipient__factory.js.map +1 -1
  965. package/dist/factories/contracts/test/TestGasRouter__factory.d.ts +4 -4
  966. package/dist/factories/contracts/test/TestGasRouter__factory.d.ts.map +1 -1
  967. package/dist/factories/contracts/test/TestGasRouter__factory.js +4 -2
  968. package/dist/factories/contracts/test/TestGasRouter__factory.js.map +1 -1
  969. package/dist/factories/contracts/test/TestHyperlaneConnectionClient__factory.d.ts +4 -4
  970. package/dist/factories/contracts/test/TestHyperlaneConnectionClient__factory.d.ts.map +1 -1
  971. package/dist/factories/contracts/test/TestHyperlaneConnectionClient__factory.js +4 -2
  972. package/dist/factories/contracts/test/TestHyperlaneConnectionClient__factory.js.map +1 -1
  973. package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.d.ts +3 -3
  974. package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.d.ts.map +1 -1
  975. package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.js +3 -1
  976. package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.js.map +1 -1
  977. package/dist/factories/contracts/test/TestLegacyMultisigIsm__factory.d.ts +4 -4
  978. package/dist/factories/contracts/test/TestLegacyMultisigIsm__factory.d.ts.map +1 -1
  979. package/dist/factories/contracts/test/TestLegacyMultisigIsm__factory.js +4 -2
  980. package/dist/factories/contracts/test/TestLegacyMultisigIsm__factory.js.map +1 -1
  981. package/dist/factories/contracts/test/TestLiquidityLayerMessageRecipient__factory.d.ts +3 -3
  982. package/dist/factories/contracts/test/TestLiquidityLayerMessageRecipient__factory.d.ts.map +1 -1
  983. package/dist/factories/contracts/test/TestLiquidityLayerMessageRecipient__factory.js +3 -1
  984. package/dist/factories/contracts/test/TestLiquidityLayerMessageRecipient__factory.js.map +1 -1
  985. package/dist/factories/contracts/test/TestMailbox__factory.d.ts +4 -4
  986. package/dist/factories/contracts/test/TestMailbox__factory.d.ts.map +1 -1
  987. package/dist/factories/contracts/test/TestMailbox__factory.js +4 -2
  988. package/dist/factories/contracts/test/TestMailbox__factory.js.map +1 -1
  989. package/dist/factories/contracts/test/TestMerkle__factory.d.ts +3 -3
  990. package/dist/factories/contracts/test/TestMerkle__factory.d.ts.map +1 -1
  991. package/dist/factories/contracts/test/TestMerkle__factory.js +3 -1
  992. package/dist/factories/contracts/test/TestMerkle__factory.js.map +1 -1
  993. package/dist/factories/contracts/test/TestMessage__factory.d.ts +3 -3
  994. package/dist/factories/contracts/test/TestMessage__factory.d.ts.map +1 -1
  995. package/dist/factories/contracts/test/TestMessage__factory.js +3 -1
  996. package/dist/factories/contracts/test/TestMessage__factory.js.map +1 -1
  997. package/dist/factories/contracts/test/TestMultisigIsm__factory.d.ts +4 -4
  998. package/dist/factories/contracts/test/TestMultisigIsm__factory.d.ts.map +1 -1
  999. package/dist/factories/contracts/test/TestMultisigIsm__factory.js +4 -2
  1000. package/dist/factories/contracts/test/TestMultisigIsm__factory.js.map +1 -1
  1001. package/dist/factories/contracts/test/TestQuerySender__factory.d.ts +3 -3
  1002. package/dist/factories/contracts/test/TestQuerySender__factory.d.ts.map +1 -1
  1003. package/dist/factories/contracts/test/TestQuerySender__factory.js +3 -1
  1004. package/dist/factories/contracts/test/TestQuerySender__factory.js.map +1 -1
  1005. package/dist/factories/contracts/test/TestQuery__factory.d.ts +4 -4
  1006. package/dist/factories/contracts/test/TestQuery__factory.d.ts.map +1 -1
  1007. package/dist/factories/contracts/test/TestQuery__factory.js +4 -2
  1008. package/dist/factories/contracts/test/TestQuery__factory.js.map +1 -1
  1009. package/dist/factories/contracts/test/TestRecipient__factory.d.ts +4 -4
  1010. package/dist/factories/contracts/test/TestRecipient__factory.d.ts.map +1 -1
  1011. package/dist/factories/contracts/test/TestRecipient__factory.js +4 -2
  1012. package/dist/factories/contracts/test/TestRecipient__factory.js.map +1 -1
  1013. package/dist/factories/contracts/test/TestRouter__factory.d.ts +4 -4
  1014. package/dist/factories/contracts/test/TestRouter__factory.d.ts.map +1 -1
  1015. package/dist/factories/contracts/test/TestRouter__factory.js +4 -2
  1016. package/dist/factories/contracts/test/TestRouter__factory.js.map +1 -1
  1017. package/dist/factories/contracts/test/TestSendReceiver__factory.d.ts +4 -4
  1018. package/dist/factories/contracts/test/TestSendReceiver__factory.d.ts.map +1 -1
  1019. package/dist/factories/contracts/test/TestSendReceiver__factory.js +4 -2
  1020. package/dist/factories/contracts/test/TestSendReceiver__factory.js.map +1 -1
  1021. package/dist/factories/contracts/test/TestTokenRecipient__factory.d.ts +3 -3
  1022. package/dist/factories/contracts/test/TestTokenRecipient__factory.d.ts.map +1 -1
  1023. package/dist/factories/contracts/test/TestTokenRecipient__factory.js +3 -1
  1024. package/dist/factories/contracts/test/TestTokenRecipient__factory.js.map +1 -1
  1025. package/dist/factories/contracts/test/bad-recipient/BadRecipient1__factory.d.ts +3 -3
  1026. package/dist/factories/contracts/test/bad-recipient/BadRecipient1__factory.d.ts.map +1 -1
  1027. package/dist/factories/contracts/test/bad-recipient/BadRecipient1__factory.js +3 -1
  1028. package/dist/factories/contracts/test/bad-recipient/BadRecipient1__factory.js.map +1 -1
  1029. package/dist/factories/contracts/test/bad-recipient/BadRecipient2__factory.d.ts +3 -3
  1030. package/dist/factories/contracts/test/bad-recipient/BadRecipient2__factory.d.ts.map +1 -1
  1031. package/dist/factories/contracts/test/bad-recipient/BadRecipient2__factory.js +3 -1
  1032. package/dist/factories/contracts/test/bad-recipient/BadRecipient2__factory.js.map +1 -1
  1033. package/dist/factories/contracts/test/bad-recipient/BadRecipient3__factory.d.ts +3 -3
  1034. package/dist/factories/contracts/test/bad-recipient/BadRecipient3__factory.d.ts.map +1 -1
  1035. package/dist/factories/contracts/test/bad-recipient/BadRecipient3__factory.js +3 -1
  1036. package/dist/factories/contracts/test/bad-recipient/BadRecipient3__factory.js.map +1 -1
  1037. package/dist/factories/contracts/test/bad-recipient/BadRecipient5__factory.d.ts +3 -3
  1038. package/dist/factories/contracts/test/bad-recipient/BadRecipient5__factory.d.ts.map +1 -1
  1039. package/dist/factories/contracts/test/bad-recipient/BadRecipient5__factory.js +3 -1
  1040. package/dist/factories/contracts/test/bad-recipient/BadRecipient5__factory.js.map +1 -1
  1041. package/dist/factories/contracts/test/bad-recipient/BadRecipient6__factory.d.ts +3 -3
  1042. package/dist/factories/contracts/test/bad-recipient/BadRecipient6__factory.d.ts.map +1 -1
  1043. package/dist/factories/contracts/test/bad-recipient/BadRecipient6__factory.js +3 -1
  1044. package/dist/factories/contracts/test/bad-recipient/BadRecipient6__factory.js.map +1 -1
  1045. package/dist/factories/contracts/upgrade/Versioned__factory.d.ts +3 -3
  1046. package/dist/factories/contracts/upgrade/Versioned__factory.d.ts.map +1 -1
  1047. package/dist/factories/contracts/upgrade/Versioned__factory.js +3 -1
  1048. package/dist/factories/contracts/upgrade/Versioned__factory.js.map +1 -1
  1049. package/dist/index.d.ts +8 -10
  1050. package/dist/index.d.ts.map +1 -1
  1051. package/dist/index.js +8 -11
  1052. package/dist/index.js.map +1 -1
  1053. package/package.json +9 -7
  1054. package/dist/contracts/isms/hook/CrossChainEnabled.d.ts +0 -28
  1055. package/dist/contracts/isms/hook/CrossChainEnabled.d.ts.map +0 -1
  1056. package/dist/contracts/isms/hook/CrossChainEnabled.js +0 -4
  1057. package/dist/contracts/isms/hook/CrossChainEnabled.js.map +0 -1
  1058. package/dist/contracts/isms/hook/optimism/CrossChainEnabledOptimism.d.ts +0 -28
  1059. package/dist/contracts/isms/hook/optimism/CrossChainEnabledOptimism.d.ts.map +0 -1
  1060. package/dist/contracts/isms/hook/optimism/CrossChainEnabledOptimism.js +0 -4
  1061. package/dist/contracts/isms/hook/optimism/CrossChainEnabledOptimism.js.map +0 -1
  1062. package/dist/contracts/isms/hook/optimism/LibOptimism.d.ts +0 -28
  1063. package/dist/contracts/isms/hook/optimism/LibOptimism.d.ts.map +0 -1
  1064. package/dist/contracts/isms/hook/optimism/LibOptimism.js +0 -4
  1065. package/dist/contracts/isms/hook/optimism/LibOptimism.js.map +0 -1
  1066. package/dist/contracts/isms/hook/optimism/OptimismISM.d.ts.map +0 -1
  1067. package/dist/contracts/isms/hook/optimism/OptimismISM.js +0 -4
  1068. package/dist/contracts/isms/hook/optimism/OptimismISM.js.map +0 -1
  1069. package/dist/contracts/isms/hook/optimism/index.d.ts +0 -4
  1070. package/dist/contracts/isms/hook/optimism/index.d.ts.map +0 -1
  1071. package/dist/contracts/isms/hook/optimism/index.js.map +0 -1
  1072. package/dist/factories/contracts/isms/hook/CrossChainEnabled__factory.d.ts +0 -17
  1073. package/dist/factories/contracts/isms/hook/CrossChainEnabled__factory.d.ts.map +0 -1
  1074. package/dist/factories/contracts/isms/hook/CrossChainEnabled__factory.js +0 -39
  1075. package/dist/factories/contracts/isms/hook/CrossChainEnabled__factory.js.map +0 -1
  1076. package/dist/factories/contracts/isms/hook/optimism/CrossChainEnabledOptimism__factory.d.ts +0 -17
  1077. package/dist/factories/contracts/isms/hook/optimism/CrossChainEnabledOptimism__factory.d.ts.map +0 -1
  1078. package/dist/factories/contracts/isms/hook/optimism/CrossChainEnabledOptimism__factory.js +0 -39
  1079. package/dist/factories/contracts/isms/hook/optimism/CrossChainEnabledOptimism__factory.js.map +0 -1
  1080. package/dist/factories/contracts/isms/hook/optimism/LibOptimism__factory.d.ts +0 -25
  1081. package/dist/factories/contracts/isms/hook/optimism/LibOptimism__factory.d.ts.map +0 -1
  1082. package/dist/factories/contracts/isms/hook/optimism/LibOptimism__factory.js +0 -46
  1083. package/dist/factories/contracts/isms/hook/optimism/LibOptimism__factory.js.map +0 -1
  1084. package/dist/factories/contracts/isms/hook/optimism/OptimismISM__factory.d.ts.map +0 -1
  1085. package/dist/factories/contracts/isms/hook/optimism/OptimismISM__factory.js.map +0 -1
  1086. package/dist/factories/contracts/isms/hook/optimism/index.d.ts +0 -4
  1087. package/dist/factories/contracts/isms/hook/optimism/index.d.ts.map +0 -1
  1088. package/dist/factories/contracts/isms/hook/optimism/index.js +0 -13
  1089. package/dist/factories/contracts/isms/hook/optimism/index.js.map +0 -1
  1090. package/docs/book.css +0 -13
  1091. package/docs/book.toml +0 -12
  1092. package/docs/solidity.min.js +0 -74
  1093. package/docs/src/README.md +0 -15
  1094. package/docs/src/SUMMARY.md +0 -139
  1095. package/docs/src/contracts/GasRouter.sol/abstract.GasRouter.md +0 -124
  1096. package/docs/src/contracts/HyperlaneConnectionClient.sol/abstract.HyperlaneConnectionClient.md +0 -191
  1097. package/docs/src/contracts/Mailbox.sol/contract.Mailbox.md +0 -251
  1098. package/docs/src/contracts/OwnableMulticall.sol/contract.OwnableMulticall.md +0 -41
  1099. package/docs/src/contracts/PausableReentrancyGuard.sol/abstract.PausableReentrancyGuardUpgradeable.md +0 -100
  1100. package/docs/src/contracts/README.md +0 -19
  1101. package/docs/src/contracts/Router.sol/abstract.Router.md +0 -255
  1102. package/docs/src/contracts/ValidatorAnnounce.sol/contract.ValidatorAnnounce.md +0 -117
  1103. package/docs/src/contracts/hooks/ERC5164/ERC5164MessageHook.sol/contract.ERC5164MessageHook.md +0 -64
  1104. package/docs/src/contracts/hooks/ERC5164/README.md +0 -5
  1105. package/docs/src/contracts/hooks/ERC5164/interfaces/IMessageDispatcher.sol/interface.IMessageDispatcher.md +0 -25
  1106. package/docs/src/contracts/hooks/ERC5164/interfaces/README.md +0 -4
  1107. package/docs/src/contracts/hooks/OptimismMessageHook.sol/contract.OptimismMessageHook.md +0 -71
  1108. package/docs/src/contracts/hooks/README.md +0 -5
  1109. package/docs/src/contracts/igps/InterchainGasPaymaster.sol/contract.InterchainGasPaymaster.md +0 -231
  1110. package/docs/src/contracts/igps/OverheadIgp.sol/contract.OverheadIgp.md +0 -161
  1111. package/docs/src/contracts/igps/README.md +0 -6
  1112. package/docs/src/contracts/igps/gas-oracles/README.md +0 -4
  1113. package/docs/src/contracts/igps/gas-oracles/StorageGasOracle.sol/contract.StorageGasOracle.md +0 -114
  1114. package/docs/src/contracts/interfaces/IGasOracle.sol/interface.IGasOracle.md +0 -25
  1115. package/docs/src/contracts/interfaces/IHyperlaneConnectionClient.sol/interface.IHyperlaneConnectionClient.md +0 -43
  1116. package/docs/src/contracts/interfaces/IInterchainGasPaymaster.sol/interface.IInterchainGasPaymaster.md +0 -33
  1117. package/docs/src/contracts/interfaces/IInterchainSecurityModule.sol/interface.IInterchainSecurityModule.md +0 -55
  1118. package/docs/src/contracts/interfaces/IInterchainSecurityModule.sol/interface.ISpecifiesInterchainSecurityModule.md +0 -12
  1119. package/docs/src/contracts/interfaces/ILiquidityLayerMessageRecipient.sol/interface.ILiquidityLayerMessageRecipient.md +0 -13
  1120. package/docs/src/contracts/interfaces/ILiquidityLayerRouter.sol/interface.ILiquidityLayerRouter.md +0 -19
  1121. package/docs/src/contracts/interfaces/IMailbox.sol/interface.IMailbox.md +0 -103
  1122. package/docs/src/contracts/interfaces/IMessageRecipient.sol/interface.IMessageRecipient.md +0 -12
  1123. package/docs/src/contracts/interfaces/IRouter.sol/interface.IRouter.md +0 -33
  1124. package/docs/src/contracts/interfaces/IValidatorAnnounce.sol/interface.IValidatorAnnounce.md +0 -78
  1125. package/docs/src/contracts/interfaces/README.md +0 -17
  1126. package/docs/src/contracts/interfaces/hooks/IMessageHook.sol/interface.IMessageHook.md +0 -12
  1127. package/docs/src/contracts/interfaces/hooks/README.md +0 -4
  1128. package/docs/src/contracts/interfaces/isms/IAggregationIsm.sol/interface.IAggregationIsm.md +0 -36
  1129. package/docs/src/contracts/interfaces/isms/IMultisigIsm.sol/interface.IMultisigIsm.md +0 -36
  1130. package/docs/src/contracts/interfaces/isms/IRoutingIsm.sol/interface.IRoutingIsm.md +0 -31
  1131. package/docs/src/contracts/interfaces/isms/README.md +0 -6
  1132. package/docs/src/contracts/interfaces/middleware/IInterchainAccountRouter.sol/interface.IInterchainAccountRouter.md +0 -64
  1133. package/docs/src/contracts/interfaces/middleware/IInterchainQueryRouter.sol/interface.IInterchainQueryRouter.md +0 -21
  1134. package/docs/src/contracts/interfaces/middleware/README.md +0 -5
  1135. package/docs/src/contracts/isms/README.md +0 -7
  1136. package/docs/src/contracts/isms/aggregation/AbstractAggregationIsm.sol/abstract.AbstractAggregationIsm.md +0 -60
  1137. package/docs/src/contracts/isms/aggregation/README.md +0 -6
  1138. package/docs/src/contracts/isms/aggregation/StaticAggregationIsm.sol/contract.StaticAggregationIsm.md +0 -30
  1139. package/docs/src/contracts/isms/aggregation/StaticAggregationIsmFactory.sol/contract.StaticAggregationIsmFactory.md +0 -15
  1140. package/docs/src/contracts/isms/hook/AbstractHookISM.sol/abstract.AbstractHookISM.md +0 -44
  1141. package/docs/src/contracts/isms/hook/CrossChainEnabled.sol/abstract.CrossChainEnabled.md +0 -74
  1142. package/docs/src/contracts/isms/hook/ERC5164ISM.sol/contract.ERC5164ISM.md +0 -57
  1143. package/docs/src/contracts/isms/hook/README.md +0 -7
  1144. package/docs/src/contracts/isms/hook/optimism/CrossChainEnabledOptimism.sol/abstract.CrossChainEnabledOptimism.md +0 -53
  1145. package/docs/src/contracts/isms/hook/optimism/LibOptimism.sol/library.LibOptimism.md +0 -39
  1146. package/docs/src/contracts/isms/hook/optimism/OptimismISM.sol/contract.OptimismISM.md +0 -66
  1147. package/docs/src/contracts/isms/hook/optimism/README.md +0 -6
  1148. package/docs/src/contracts/isms/multisig/AbstractMerkleRootMultisigIsm.sol/abstract.AbstractMerkleRootMultisigIsm.md +0 -78
  1149. package/docs/src/contracts/isms/multisig/AbstractMessageIdMultisigIsm.sol/abstract.AbstractMessageIdMultisigIsm.md +0 -69
  1150. package/docs/src/contracts/isms/multisig/AbstractMultisigIsm.sol/abstract.AbstractMultisigIsm.md +0 -102
  1151. package/docs/src/contracts/isms/multisig/LegacyMultisigIsm.sol/contract.LegacyMultisigIsm.md +0 -355
  1152. package/docs/src/contracts/isms/multisig/README.md +0 -12
  1153. package/docs/src/contracts/isms/multisig/StaticMultisigIsm.sol/abstract.AbstractMetaProxyMultisigIsm.md +0 -36
  1154. package/docs/src/contracts/isms/multisig/StaticMultisigIsm.sol/contract.StaticMerkleRootMultisigIsm.md +0 -11
  1155. package/docs/src/contracts/isms/multisig/StaticMultisigIsm.sol/contract.StaticMerkleRootMultisigIsmFactory.md +0 -15
  1156. package/docs/src/contracts/isms/multisig/StaticMultisigIsm.sol/contract.StaticMessageIdMultisigIsm.md +0 -10
  1157. package/docs/src/contracts/isms/multisig/StaticMultisigIsm.sol/contract.StaticMessageIdMultisigIsmFactory.md +0 -15
  1158. package/docs/src/contracts/isms/routing/AbstractRoutingIsm.sol/abstract.AbstractRoutingIsm.md +0 -55
  1159. package/docs/src/contracts/isms/routing/DomainRoutingIsm.sol/contract.DomainRoutingIsm.md +0 -112
  1160. package/docs/src/contracts/isms/routing/DomainRoutingIsmFactory.sol/contract.DomainRoutingIsmFactory.md +0 -47
  1161. package/docs/src/contracts/isms/routing/InterchainAccountIsm.sol/contract.InterchainAccountIsm.md +0 -44
  1162. package/docs/src/contracts/isms/routing/README.md +0 -7
  1163. package/docs/src/contracts/libs/Call.sol/library.CallLib.md +0 -124
  1164. package/docs/src/contracts/libs/CheckpointLib.sol/library.CheckpointLib.md +0 -61
  1165. package/docs/src/contracts/libs/EnumerableMapExtended.sol/library.EnumerableMapExtended.md +0 -63
  1166. package/docs/src/contracts/libs/LegacyCheckpointLib.sol/library.LegacyCheckpointLib.md +0 -55
  1167. package/docs/src/contracts/libs/Merkle.sol/library.MerkleLib.md +0 -354
  1168. package/docs/src/contracts/libs/Message.sol/library.Message.md +0 -304
  1169. package/docs/src/contracts/libs/MetaProxy.sol/library.MetaProxy.md +0 -36
  1170. package/docs/src/contracts/libs/MinimalProxy.sol/library.MinimalProxy.md +0 -34
  1171. package/docs/src/contracts/libs/README.md +0 -16
  1172. package/docs/src/contracts/libs/StaticMOfNAddressSetFactory.sol/abstract.StaticMOfNAddressSetFactory.md +0 -123
  1173. package/docs/src/contracts/libs/TypeCasts.sol/library.TypeCasts.md +0 -19
  1174. package/docs/src/contracts/libs/ValidatorAnnouncements.sol/library.ValidatorAnnouncements.md +0 -31
  1175. package/docs/src/contracts/libs/isms/AggregationIsmMetadata.sol/library.AggregationIsmMetadata.md +0 -97
  1176. package/docs/src/contracts/libs/isms/LegacyMultisigIsmMetadata.sol/library.LegacyMultisigIsmMetadata.md +0 -296
  1177. package/docs/src/contracts/libs/isms/MerkleRootMultisigIsmMetadata.sol/library.MerkleRootMultisigIsmMetadata.md +0 -177
  1178. package/docs/src/contracts/libs/isms/MessageIdMultisigIsmMetadata.sol/library.MessageIdMultisigIsmMetadata.md +0 -109
  1179. package/docs/src/contracts/libs/isms/README.md +0 -7
  1180. package/docs/src/contracts/libs/middleware/InterchainAccountMessage.sol/library.InterchainAccountMessage.md +0 -134
  1181. package/docs/src/contracts/libs/middleware/InterchainQueryMessage.sol/library.InterchainQueryMessage.md +0 -203
  1182. package/docs/src/contracts/libs/middleware/README.md +0 -5
  1183. package/docs/src/contracts/middleware/InterchainAccountRouter.sol/contract.InterchainAccountRouter.md +0 -542
  1184. package/docs/src/contracts/middleware/InterchainQueryRouter.sol/contract.InterchainQueryRouter.md +0 -119
  1185. package/docs/src/contracts/middleware/README.md +0 -6
  1186. package/docs/src/contracts/middleware/liquidity-layer/LiquidityLayerRouter.sol/contract.LiquidityLayerRouter.md +0 -81
  1187. package/docs/src/contracts/middleware/liquidity-layer/README.md +0 -6
  1188. package/docs/src/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter.sol/contract.CircleBridgeAdapter.md +0 -197
  1189. package/docs/src/contracts/middleware/liquidity-layer/adapters/PortalAdapter.sol/contract.PortalAdapter.md +0 -189
  1190. package/docs/src/contracts/middleware/liquidity-layer/adapters/README.md +0 -5
  1191. package/docs/src/contracts/middleware/liquidity-layer/interfaces/ILiquidityLayerAdapter.sol/interface.ILiquidityLayerAdapter.md +0 -23
  1192. package/docs/src/contracts/middleware/liquidity-layer/interfaces/README.md +0 -6
  1193. package/docs/src/contracts/middleware/liquidity-layer/interfaces/circle/ICircleMessageTransmitter.sol/interface.ICircleMessageTransmitter.md +0 -54
  1194. package/docs/src/contracts/middleware/liquidity-layer/interfaces/circle/ITokenMessenger.sol/interface.ITokenMessenger.md +0 -92
  1195. package/docs/src/contracts/middleware/liquidity-layer/interfaces/circle/README.md +0 -5
  1196. package/docs/src/contracts/middleware/liquidity-layer/interfaces/portal/IPortalTokenBridge.sol/interface.IPortalTokenBridge.md +0 -131
  1197. package/docs/src/contracts/middleware/liquidity-layer/interfaces/portal/README.md +0 -4
  1198. package/docs/src/contracts/mock/MockCircleMessageTransmitter.sol/contract.MockCircleMessageTransmitter.md +0 -58
  1199. package/docs/src/contracts/mock/MockCircleTokenMessenger.sol/contract.MockCircleTokenMessenger.md +0 -44
  1200. package/docs/src/contracts/mock/MockERC5164.sol/contract.MockMessageDispatcher.md +0 -15
  1201. package/docs/src/contracts/mock/MockERC5164.sol/contract.MockMessageExecutor.md +0 -11
  1202. package/docs/src/contracts/mock/MockHyperlaneEnvironment.sol/contract.MockHyperlaneEnvironment.md +0 -69
  1203. package/docs/src/contracts/mock/MockMailbox.sol/contract.MockMailbox.md +0 -137
  1204. package/docs/src/contracts/mock/MockPortalBridge.sol/contract.MockPortalBridge.md +0 -82
  1205. package/docs/src/contracts/mock/MockToken.sol/contract.MockToken.md +0 -22
  1206. package/docs/src/contracts/mock/README.md +0 -11
  1207. package/docs/src/contracts/test/LightTestRecipient.sol/contract.LightTestRecipient.md +0 -15
  1208. package/docs/src/contracts/test/README.md +0 -20
  1209. package/docs/src/contracts/test/TestGasRouter.sol/contract.TestGasRouter.md +0 -27
  1210. package/docs/src/contracts/test/TestHyperlaneConnectionClient.sol/contract.TestHyperlaneConnectionClient.md +0 -29
  1211. package/docs/src/contracts/test/TestInterchainGasPaymaster.sol/contract.TestInterchainGasPaymaster.md +0 -30
  1212. package/docs/src/contracts/test/TestLegacyMultisigIsm.sol/contract.TestLegacyMultisigIsm.md +0 -15
  1213. package/docs/src/contracts/test/TestLiquidityLayerMessageRecipient.sol/contract.TestLiquidityLayerMessageRecipient.md +0 -23
  1214. package/docs/src/contracts/test/TestMailbox.sol/contract.TestMailbox.md +0 -29
  1215. package/docs/src/contracts/test/TestMerkle.sol/contract.TestMerkle.md +0 -50
  1216. package/docs/src/contracts/test/TestMessage.sol/contract.TestMessage.md +0 -68
  1217. package/docs/src/contracts/test/TestMultisigIsm.sol/contract.TestMultisigIsm.md +0 -51
  1218. package/docs/src/contracts/test/TestQuery.sol/contract.TestQuery.md +0 -45
  1219. package/docs/src/contracts/test/TestQuerySender.sol/contract.TestQuerySender.md +0 -128
  1220. package/docs/src/contracts/test/TestRecipient.sol/contract.TestRecipient.md +0 -78
  1221. package/docs/src/contracts/test/TestRouter.sol/contract.TestRouter.md +0 -63
  1222. package/docs/src/contracts/test/TestSendReceiver.sol/contract.TestSendReceiver.md +0 -49
  1223. package/docs/src/contracts/test/TestTokenRecipient.sol/contract.TestTokenRecipient.md +0 -80
  1224. package/docs/src/contracts/test/bad-recipient/BadRecipient1.sol/contract.BadRecipient1.md +0 -15
  1225. package/docs/src/contracts/test/bad-recipient/BadRecipient2.sol/contract.BadRecipient2.md +0 -12
  1226. package/docs/src/contracts/test/bad-recipient/BadRecipient3.sol/contract.BadRecipient3.md +0 -15
  1227. package/docs/src/contracts/test/bad-recipient/BadRecipient5.sol/contract.BadRecipient5.md +0 -15
  1228. package/docs/src/contracts/test/bad-recipient/BadRecipient6.sol/contract.BadRecipient6.md +0 -15
  1229. package/docs/src/contracts/test/bad-recipient/README.md +0 -8
  1230. package/docs/src/contracts/upgrade/README.md +0 -4
  1231. package/docs/src/contracts/upgrade/Versioned.sol/contract.Versioned.md +0 -14
  1232. /package/contracts/isms/hook/{optimism → crossChainEnabled/optimism}/CrossChainEnabledOptimism.sol +0 -0
  1233. /package/dist/contracts/isms/{hook/optimism → ccip-read}/index.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"MockCircleTokenMessenger__factory.js","sourceRoot":"","sources":["../../../../types/factories/contracts/mock/MockCircleTokenMessenger__factory.ts"],"names":[],"mappings":";AAAA,+CAA+C;;;AAU/C,mCAA6E;AAE7E,MAAM,IAAI,GAAG;IACX;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,oBAAoB;gBAClC,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,aAAa;KACpB;IACD;QACE,SAAS,EAAE,KAAK;QAChB,MAAM,EAAE;YACN;gBACE,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE,OAAO;gBACrB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,OAAO;aACd;SACF;QACD,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,OAAO;KACd;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,QAAQ;gBACtB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,QAAQ;aACf;YACD;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,QAAQ;gBACtB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ;aACf;SACF;QACD,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,QAAQ;gBACtB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,QAAQ;aACf;YACD;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,0BAA0B;QAChC,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,QAAQ;gBACtB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ;aACf;SACF;QACD,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,QAAQ;gBACtB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,QAAQ;aACf;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;CACF,CAAC;AAEF,MAAM,SAAS,GACb,0+EAA0+E,CAAC;AAM7+E,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,MAAc,EACd,SAA2D;QAE3D,OAAO,KAAK,CAAC,MAAM,CACjB,MAAM,EACN,SAAS,IAAI,EAAE,CACqB,CAAC;IACzC,CAAC;IACQ,oBAAoB,CAC3B,MAAc,EACd,SAA2D;QAE3D,OAAO,KAAK,CAAC,oBAAoB,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;IAC7D,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;;AA7CH,8EA8CC;AAfiB,0CAAQ,GAAG,SAAS,CAAC;AACrB,qCAAG,GAAG,IAAI,CAAC"}
1
+ {"version":3,"file":"MockCircleTokenMessenger__factory.js","sourceRoot":"","sources":["../../../../types/factories/contracts/mock/MockCircleTokenMessenger__factory.ts"],"names":[],"mappings":";;;AAAA,+CAA+C;AAC/C,oBAAoB;AACpB,oBAAoB;AACpB,mCAA6E;AAO7E,MAAM,IAAI,GAAG;IACX;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,oBAAoB;gBAClC,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,aAAa;KACpB;IACD;QACE,SAAS,EAAE,KAAK;QAChB,MAAM,EAAE;YACN;gBACE,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE,OAAO;gBACrB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,OAAO;aACd;SACF;QACD,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,OAAO;KACd;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,QAAQ;gBACtB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,QAAQ;aACf;YACD;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,QAAQ;gBACtB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ;aACf;SACF;QACD,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,QAAQ;gBACtB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,QAAQ;aACf;YACD;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,0BAA0B;QAChC,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,QAAQ;gBACtB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ;aACf;SACF;QACD,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,QAAQ;gBACtB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,QAAQ;aACf;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;CACF,CAAC;AAEF,MAAM,SAAS,GACb,0+EAA0+E,CAAC;AAM7+E,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,MAAc,EACd,SAA2D;QAE3D,OAAO,KAAK,CAAC,MAAM,CACjB,MAAM,EACN,SAAS,IAAI,EAAE,CACqB,CAAC;IACzC,CAAC;IACQ,oBAAoB,CAC3B,MAAc,EACd,SAA2D;QAE3D,OAAO,KAAK,CAAC,oBAAoB,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;IAC7D,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;;AA7CH,8EA8CC;AAfiB,0CAAQ,GAAG,SAAS,CAAC;AACrB,qCAAG,GAAG,IAAI,CAAC"}
@@ -1,7 +1,7 @@
1
- import type { MockMessageDispatcher, MockMessageDispatcherInterface } from "../../../../contracts/mock/MockERC5164.sol/MockMessageDispatcher";
2
- import type { Provider, TransactionRequest } from "@ethersproject/providers";
3
1
  import { Signer, ContractFactory, Overrides } from "ethers";
4
- declare type MockMessageDispatcherConstructorParams = [signer?: Signer] | ConstructorParameters<typeof ContractFactory>;
2
+ import type { Provider, TransactionRequest } from "@ethersproject/providers";
3
+ import type { MockMessageDispatcher, MockMessageDispatcherInterface } from "../../../../contracts/mock/MockERC5164.sol/MockMessageDispatcher";
4
+ type MockMessageDispatcherConstructorParams = [signer?: Signer] | ConstructorParameters<typeof ContractFactory>;
5
5
  export declare class MockMessageDispatcher__factory extends ContractFactory {
6
6
  constructor(...args: MockMessageDispatcherConstructorParams);
7
7
  deploy(overrides?: Overrides & {
@@ -1 +1 @@
1
- {"version":3,"file":"MockMessageDispatcher__factory.d.ts","sourceRoot":"","sources":["../../../../../types/factories/contracts/mock/MockERC5164.sol/MockMessageDispatcher__factory.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,qBAAqB,EACrB,8BAA8B,EAC/B,MAAM,kEAAkE,CAAC;AAC1E,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAmB,eAAe,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AA0E7E,aAAK,sCAAsC,GACvC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,GACjB,qBAAqB,CAAC,OAAO,eAAe,CAAC,CAAC;AAMlD,qBAAa,8BAA+B,SAAQ,eAAe;gBACrD,GAAG,IAAI,EAAE,sCAAsC;IAQlD,MAAM,CACb,SAAS,CAAC,EAAE,SAAS,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;KAAE,GAC1D,OAAO,CAAC,qBAAqB,CAAC;IAGxB,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,qBAAqB;IAG9C,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,8BAA8B;IAIhE,MAAM,CAAC,QAAQ,CAAC,QAAQ,gyCAAa;IACrC,MAAM,CAAC,QAAQ,CAAC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;SAAQ;IAC3B,MAAM,CAAC,eAAe,IAAI,8BAA8B;IAGxD,MAAM,CAAC,OAAO,CACZ,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,GAAG,QAAQ,GAClC,qBAAqB;CAOzB"}
1
+ {"version":3,"file":"MockMessageDispatcher__factory.d.ts","sourceRoot":"","sources":["../../../../../types/factories/contracts/mock/MockERC5164.sol/MockMessageDispatcher__factory.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAmB,eAAe,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC7E,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,KAAK,EACV,qBAAqB,EACrB,8BAA8B,EAC/B,MAAM,kEAAkE,CAAC;AA0E1E,KAAK,sCAAsC,GACvC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,GACjB,qBAAqB,CAAC,OAAO,eAAe,CAAC,CAAC;AAMlD,qBAAa,8BAA+B,SAAQ,eAAe;gBACrD,GAAG,IAAI,EAAE,sCAAsC;IAQlD,MAAM,CACb,SAAS,CAAC,EAAE,SAAS,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;KAAE,GAC1D,OAAO,CAAC,qBAAqB,CAAC;IAGxB,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,qBAAqB;IAG9C,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,8BAA8B;IAIhE,MAAM,CAAC,QAAQ,CAAC,QAAQ,gyCAAa;IACrC,MAAM,CAAC,QAAQ,CAAC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;SAAQ;IAC3B,MAAM,CAAC,eAAe,IAAI,8BAA8B;IAGxD,MAAM,CAAC,OAAO,CACZ,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,GAAG,QAAQ,GAClC,qBAAqB;CAOzB"}
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
- /* Autogenerated file. Do not edit manually. */
3
2
  Object.defineProperty(exports, "__esModule", { value: true });
4
3
  exports.MockMessageDispatcher__factory = void 0;
4
+ /* Autogenerated file. Do not edit manually. */
5
+ /* tslint:disable */
6
+ /* eslint-disable */
5
7
  const ethers_1 = require("ethers");
6
8
  const _abi = [
7
9
  {
@@ -1 +1 @@
1
- {"version":3,"file":"MockMessageDispatcher__factory.js","sourceRoot":"","sources":["../../../../../types/factories/contracts/mock/MockERC5164.sol/MockMessageDispatcher__factory.ts"],"names":[],"mappings":";AAAA,+CAA+C;;;AAU/C,mCAA6E;AAE7E,MAAM,IAAI,GAAG;IACX;QACE,SAAS,EAAE,KAAK;QAChB,MAAM,EAAE;YACN;gBACE,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE,OAAO;gBACrB,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,OAAO;aACd;SACF;QACD,IAAI,EAAE,mBAAmB;QACzB,IAAI,EAAE,OAAO;KACd;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,OAAO;gBACrB,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,OAAO;aACd;SACF;QACD,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACjB;CACF,CAAC;AAEF,MAAM,SAAS,GACb,4xCAA4xC,CAAC;AAM/xC,MAAM,WAAW,GAAG,CAClB,EAA0C,EACW,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAExE,MAAa,8BAA+B,SAAQ,wBAAe;IACjE,YAAY,GAAG,IAA4C;QACzD,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,CAAmC,CAAC;IACzE,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,CAA0B,CAAC;IACxD,CAAC;IACQ,OAAO,CAAC,MAAc;QAC7B,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAmC,CAAC;IACjE,CAAC;IAID,MAAM,CAAC,eAAe;QACpB,OAAO,IAAI,cAAK,CAAC,SAAS,CAAC,IAAI,CAAmC,CAAC;IACrE,CAAC;IACD,MAAM,CAAC,OAAO,CACZ,OAAe,EACf,gBAAmC;QAEnC,OAAO,IAAI,iBAAQ,CACjB,OAAO,EACP,IAAI,EACJ,gBAAgB,CACQ,CAAC;IAC7B,CAAC;;AAxCH,wEAyCC;AAfiB,uCAAQ,GAAG,SAAS,CAAC;AACrB,kCAAG,GAAG,IAAI,CAAC"}
1
+ {"version":3,"file":"MockMessageDispatcher__factory.js","sourceRoot":"","sources":["../../../../../types/factories/contracts/mock/MockERC5164.sol/MockMessageDispatcher__factory.ts"],"names":[],"mappings":";;;AAAA,+CAA+C;AAC/C,oBAAoB;AACpB,oBAAoB;AACpB,mCAA6E;AAO7E,MAAM,IAAI,GAAG;IACX;QACE,SAAS,EAAE,KAAK;QAChB,MAAM,EAAE;YACN;gBACE,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE,OAAO;gBACrB,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,OAAO;aACd;SACF;QACD,IAAI,EAAE,mBAAmB;QACzB,IAAI,EAAE,OAAO;KACd;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,OAAO;gBACrB,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,OAAO;aACd;SACF;QACD,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACjB;CACF,CAAC;AAEF,MAAM,SAAS,GACb,4xCAA4xC,CAAC;AAM/xC,MAAM,WAAW,GAAG,CAClB,EAA0C,EACW,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAExE,MAAa,8BAA+B,SAAQ,wBAAe;IACjE,YAAY,GAAG,IAA4C;QACzD,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,CAAmC,CAAC;IACzE,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,CAA0B,CAAC;IACxD,CAAC;IACQ,OAAO,CAAC,MAAc;QAC7B,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAmC,CAAC;IACjE,CAAC;IAID,MAAM,CAAC,eAAe;QACpB,OAAO,IAAI,cAAK,CAAC,SAAS,CAAC,IAAI,CAAmC,CAAC;IACrE,CAAC;IACD,MAAM,CAAC,OAAO,CACZ,OAAe,EACf,gBAAmC;QAEnC,OAAO,IAAI,iBAAQ,CACjB,OAAO,EACP,IAAI,EACJ,gBAAgB,CACQ,CAAC;IAC7B,CAAC;;AAxCH,wEAyCC;AAfiB,uCAAQ,GAAG,SAAS,CAAC;AACrB,kCAAG,GAAG,IAAI,CAAC"}
@@ -1,7 +1,7 @@
1
- import type { MockMessageExecutor, MockMessageExecutorInterface } from "../../../../contracts/mock/MockERC5164.sol/MockMessageExecutor";
2
- import type { Provider, TransactionRequest } from "@ethersproject/providers";
3
1
  import { Signer, ContractFactory, Overrides } from "ethers";
4
- declare type MockMessageExecutorConstructorParams = [signer?: Signer] | ConstructorParameters<typeof ContractFactory>;
2
+ import type { Provider, TransactionRequest } from "@ethersproject/providers";
3
+ import type { MockMessageExecutor, MockMessageExecutorInterface } from "../../../../contracts/mock/MockERC5164.sol/MockMessageExecutor";
4
+ type MockMessageExecutorConstructorParams = [signer?: Signer] | ConstructorParameters<typeof ContractFactory>;
5
5
  export declare class MockMessageExecutor__factory extends ContractFactory {
6
6
  constructor(...args: MockMessageExecutorConstructorParams);
7
7
  deploy(overrides?: Overrides & {
@@ -1 +1 @@
1
- {"version":3,"file":"MockMessageExecutor__factory.d.ts","sourceRoot":"","sources":["../../../../../types/factories/contracts/mock/MockERC5164.sol/MockMessageExecutor__factory.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,mBAAmB,EACnB,4BAA4B,EAC7B,MAAM,gEAAgE,CAAC;AACxE,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAmB,eAAe,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AA2B7E,aAAK,oCAAoC,GACrC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,GACjB,qBAAqB,CAAC,OAAO,eAAe,CAAC,CAAC;AAMlD,qBAAa,4BAA6B,SAAQ,eAAe;gBACnD,GAAG,IAAI,EAAE,oCAAoC;IAQhD,MAAM,CACb,SAAS,CAAC,EAAE,SAAS,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;KAAE,GAC1D,OAAO,CAAC,mBAAmB,CAAC;IAGtB,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,mBAAmB;IAG5C,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,4BAA4B;IAI9D,MAAM,CAAC,QAAQ,CAAC,QAAQ,gMAAa;IACrC,MAAM,CAAC,QAAQ,CAAC,GAAG;;;;;;;;;;QAAQ;IAC3B,MAAM,CAAC,eAAe,IAAI,4BAA4B;IAGtD,MAAM,CAAC,OAAO,CACZ,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,GAAG,QAAQ,GAClC,mBAAmB;CAGvB"}
1
+ {"version":3,"file":"MockMessageExecutor__factory.d.ts","sourceRoot":"","sources":["../../../../../types/factories/contracts/mock/MockERC5164.sol/MockMessageExecutor__factory.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAmB,eAAe,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC7E,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,KAAK,EACV,mBAAmB,EACnB,4BAA4B,EAC7B,MAAM,gEAAgE,CAAC;AA2BxE,KAAK,oCAAoC,GACrC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,GACjB,qBAAqB,CAAC,OAAO,eAAe,CAAC,CAAC;AAMlD,qBAAa,4BAA6B,SAAQ,eAAe;gBACnD,GAAG,IAAI,EAAE,oCAAoC;IAQhD,MAAM,CACb,SAAS,CAAC,EAAE,SAAS,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;KAAE,GAC1D,OAAO,CAAC,mBAAmB,CAAC;IAGtB,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,mBAAmB;IAG5C,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,4BAA4B;IAI9D,MAAM,CAAC,QAAQ,CAAC,QAAQ,gMAAa;IACrC,MAAM,CAAC,QAAQ,CAAC,GAAG;;;;;;;;;;QAAQ;IAC3B,MAAM,CAAC,eAAe,IAAI,4BAA4B;IAGtD,MAAM,CAAC,OAAO,CACZ,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,GAAG,QAAQ,GAClC,mBAAmB;CAGvB"}
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
- /* Autogenerated file. Do not edit manually. */
3
2
  Object.defineProperty(exports, "__esModule", { value: true });
4
3
  exports.MockMessageExecutor__factory = void 0;
4
+ /* Autogenerated file. Do not edit manually. */
5
+ /* tslint:disable */
6
+ /* eslint-disable */
5
7
  const ethers_1 = require("ethers");
6
8
  const _abi = [
7
9
  {
@@ -1 +1 @@
1
- {"version":3,"file":"MockMessageExecutor__factory.js","sourceRoot":"","sources":["../../../../../types/factories/contracts/mock/MockERC5164.sol/MockMessageExecutor__factory.ts"],"names":[],"mappings":";AAAA,+CAA+C;;;AAU/C,mCAA6E;AAE7E,MAAM,IAAI,GAAG;IACX;QACE,SAAS,EAAE,KAAK;QAChB,MAAM,EAAE;YACN;gBACE,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,mBAAmB;QACzB,IAAI,EAAE,OAAO;KACd;CACF,CAAC;AAEF,MAAM,SAAS,GACb,4LAA4L,CAAC;AAM/L,MAAM,WAAW,GAAG,CAClB,EAAwC,EACa,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAExE,MAAa,4BAA6B,SAAQ,wBAAe;IAC/D,YAAY,GAAG,IAA0C;QACvD,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,CAAiC,CAAC;IACvE,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,CAAwB,CAAC;IACtD,CAAC;IACQ,OAAO,CAAC,MAAc;QAC7B,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAiC,CAAC;IAC/D,CAAC;IAID,MAAM,CAAC,eAAe;QACpB,OAAO,IAAI,cAAK,CAAC,SAAS,CAAC,IAAI,CAAiC,CAAC;IACnE,CAAC;IACD,MAAM,CAAC,OAAO,CACZ,OAAe,EACf,gBAAmC;QAEnC,OAAO,IAAI,iBAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,gBAAgB,CAAwB,CAAC;IAC9E,CAAC;;AApCH,oEAqCC;AAXiB,qCAAQ,GAAG,SAAS,CAAC;AACrB,gCAAG,GAAG,IAAI,CAAC"}
1
+ {"version":3,"file":"MockMessageExecutor__factory.js","sourceRoot":"","sources":["../../../../../types/factories/contracts/mock/MockERC5164.sol/MockMessageExecutor__factory.ts"],"names":[],"mappings":";;;AAAA,+CAA+C;AAC/C,oBAAoB;AACpB,oBAAoB;AACpB,mCAA6E;AAO7E,MAAM,IAAI,GAAG;IACX;QACE,SAAS,EAAE,KAAK;QAChB,MAAM,EAAE;YACN;gBACE,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,mBAAmB;QACzB,IAAI,EAAE,OAAO;KACd;CACF,CAAC;AAEF,MAAM,SAAS,GACb,4LAA4L,CAAC;AAM/L,MAAM,WAAW,GAAG,CAClB,EAAwC,EACa,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAExE,MAAa,4BAA6B,SAAQ,wBAAe;IAC/D,YAAY,GAAG,IAA0C;QACvD,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,CAAiC,CAAC;IACvE,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,CAAwB,CAAC;IACtD,CAAC;IACQ,OAAO,CAAC,MAAc;QAC7B,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAiC,CAAC;IAC/D,CAAC;IAID,MAAM,CAAC,eAAe;QACpB,OAAO,IAAI,cAAK,CAAC,SAAS,CAAC,IAAI,CAAiC,CAAC;IACnE,CAAC;IACD,MAAM,CAAC,OAAO,CACZ,OAAe,EACf,gBAAmC;QAEnC,OAAO,IAAI,iBAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,gBAAgB,CAAwB,CAAC;IAC9E,CAAC;;AApCH,oEAqCC;AAXiB,qCAAQ,GAAG,SAAS,CAAC;AACrB,gCAAG,GAAG,IAAI,CAAC"}
@@ -1,7 +1,7 @@
1
- import type { MockHyperlaneEnvironment, MockHyperlaneEnvironmentInterface } from "../../../contracts/mock/MockHyperlaneEnvironment";
2
- import type { Provider, TransactionRequest } from "@ethersproject/providers";
3
1
  import { Signer, ContractFactory, BigNumberish, Overrides } from "ethers";
4
- declare type MockHyperlaneEnvironmentConstructorParams = [signer?: Signer] | ConstructorParameters<typeof ContractFactory>;
2
+ import type { Provider, TransactionRequest } from "@ethersproject/providers";
3
+ import type { MockHyperlaneEnvironment, MockHyperlaneEnvironmentInterface } from "../../../contracts/mock/MockHyperlaneEnvironment";
4
+ type MockHyperlaneEnvironmentConstructorParams = [signer?: Signer] | ConstructorParameters<typeof ContractFactory>;
5
5
  export declare class MockHyperlaneEnvironment__factory extends ContractFactory {
6
6
  constructor(...args: MockHyperlaneEnvironmentConstructorParams);
7
7
  deploy(_originDomain: BigNumberish, _destinationDomain: BigNumberish, overrides?: Overrides & {
@@ -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 = "0x608060405234801561001057600080fd5b5060405162005c4438038062005c448339810160408190526100319161079d565b6000805463ffffffff838116640100000000026001600160401b03199092169085161717815560405183906100659061074c565b63ffffffff9091168152602001604051809103906000f08015801561008e573d6000803e3d6000fd5b5090506000826040516100a09061074c565b63ffffffff9091168152602001604051809103906000f0801580156100c9573d6000803e3d6000fd5b506040516302cd9fb760e51b815263ffffffff851660048201526001600160a01b038083166024830152919250908316906359b3f6e090604401600060405180830381600087803b15801561011d57600080fd5b505af1158015610131573d6000803e3d6000fd5b50506040516302cd9fb760e51b815263ffffffff871660048201526001600160a01b038581166024830152841692506359b3f6e09150604401600060405180830381600087803b15801561018457600080fd5b505af1158015610198573d6000803e3d6000fd5b50505050306040516101a99061075a565b6001600160a01b039091168152602001604051809103906000f0801580156101d5573d6000803e3d6000fd5b506000805463ffffffff168152600260205260409081902080546001600160a01b0319166001600160a01b0393909316929092179091555130906102189061075a565b6001600160a01b039091168152602001604051809103906000f080158015610244573d6000803e3d6000fd5b5060008054640100000000900463ffffffff168152600260205260409081902080546001600160a01b0319166001600160a01b0393909316929092179091555161028d90610768565b604051809103906000f0801580156102a9573d6000803e3d6000fd5b506000805463ffffffff168152600360205260409081902080546001600160a01b0319166001600160a01b039390931692909217909155516102ea90610768565b604051809103906000f080158015610306573d6000803e3d6000fd5b5060008054640100000000900463ffffffff90811682526003602052604080832080546001600160a01b0319166001600160a01b039586161790558254909116825290819020549051637bca343d60e11b815290821660048201529083169063f794687a90602401600060405180830381600087803b15801561038857600080fd5b505af115801561039c573d6000803e3d6000fd5b505060008054640100000000900463ffffffff1681526003602052604090819020549051637bca343d60e11b81526001600160a01b039182166004820152908416925063f794687a9150602401600060405180830381600087803b15801561040357600080fd5b505af1158015610417573d6000803e3d6000fd5b50505063ffffffff80861660009081526001602052604080822080546001600160a01b038089166001600160a01b031992831617909255938816835281832080549187169190941617909255905190915061047190610776565b604051809103906000f08015801561048d573d6000803e3d6000fd5b509050600060405161049e90610776565b604051809103906000f0801580156104ba573d6000803e3d6000fd5b506000805463ffffffff16815260026020908152604080832054600390925291829020549151637c643b2f60e11b81526001600160a01b03888116600483015291821660248201529181166044830152306064830181905292935084169063f8c8765e90608401600060405180830381600087803b15801561053b57600080fd5b505af115801561054f573d6000803e3d6000fd5b505060008054640100000000900463ffffffff16815260026020908152604080832054600390925291829020549151637c643b2f60e11b81526001600160a01b0389811660048301529182166024820152918116604483015284811660648301528516925063f8c8765e9150608401600060405180830381600087803b1580156105d857600080fd5b505af11580156105ec573d6000803e3d6000fd5b50505050826001600160a01b031663b49c53a7876106138561074060201b61029e1760201c565b6040516001600160e01b031960e085901b16815263ffffffff9290921660048301526024820152604401600060405180830381600087803b15801561065757600080fd5b505af115801561066b573d6000803e3d6000fd5b50505050816001600160a01b031663b49c53a7886106928661074060201b61029e1760201c565b6040516001600160e01b031960e085901b16815263ffffffff9290921660048301526024820152604401600060405180830381600087803b1580156106d657600080fd5b505af11580156106ea573d6000803e3d6000fd5b5050505063ffffffff96871660009081526004602052604080822080546001600160a01b03199081166001600160a01b0397881617909155979098168152969096208054909516911617909255506107d0915050565b6001600160a01b031690565b61141f8062000afa83390190565b6113888062001f1983390190565b6103a480620032a183390190565b6125ff806200364583390190565b805163ffffffff8116811461079857600080fd5b919050565b600080604083850312156107b057600080fd5b6107b983610784565b91506107c760208401610784565b90509250929050565b61031a80620007e06000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c8063f11a367e11610050578063f11a367e14610142578063f9d2692d14610178578063f9f312ad1461018257600080fd5b80635a007b7e146100775780637a7eada3146100d6578063e9ee46951461010c575b600080fd5b6100ad6100853660046102b7565b60036020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100ad6100e43660046102b7565b60026020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6100ad61011a3660046102b7565b60046020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6100ad6101503660046102b7565b60016020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b61018061018a565b005b61018061021d565b6000805463ffffffff168152600160205260408082205481517f1605c306000000000000000000000000000000000000000000000000000000008152915173ffffffffffffffffffffffffffffffffffffffff90911692631605c306926004808201939182900301818387803b15801561020357600080fd5b505af1158015610217573d6000803e3d6000fd5b50505050565b60008054640100000000900463ffffffff168152600160205260408082205481517f1605c306000000000000000000000000000000000000000000000000000000008152915173ffffffffffffffffffffffffffffffffffffffff90911692631605c306926004808201939182900301818387803b15801561020357600080fd5b73ffffffffffffffffffffffffffffffffffffffff1690565b6000602082840312156102c957600080fd5b813563ffffffff811681146102dd57600080fd5b939250505056fea26469706673582212201e6bffcabcf45a6894e234104e2109777f76976c95f96940bc3967f12f6c3d1b64736f6c6343000811003360a0604052600080546001600160601b031916905534801561002057600080fd5b5060405161141f38038061141f83398101604081905261003f9161004d565b63ffffffff1660805261007a565b60006020828403121561005f57600080fd5b815163ffffffff8116811461007357600080fd5b9392505050565b60805161137c6100a36000396000818161021801528181610a710152610c26015261137c6000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806392d28b3d1161008c578063f794687a11610066578063f794687a146102b0578063fa31de0114610301578063fd10ebe514610314578063ffa1ad741461032457600080fd5b806392d28b3d1461023a578063a3b4919f1461025e578063d12164e41461029457600080fd5b80636b791ca1116100c85780636b791ca11461017e5780636e5f516e146101915780638209d312146101e65780638d3638f41461021357600080fd5b80631605c306146100ef578063522ae002146100f957806359b3f6e014610115575b600080fd5b6100f761033e565b005b61010261080081565b6040519081526020015b60405180910390f35b6100f7610123366004610cd5565b63ffffffff91909116600090815260016020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055565b6100f761018c366004610d55565b610660565b6000546101c1906c01000000000000000000000000900473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161010c565b6000546101fe90640100000000900463ffffffff1681565b60405163ffffffff909116815260200161010c565b6101fe7f000000000000000000000000000000000000000000000000000000000000000081565b61024d610248366004610ddf565b610833565b60405161010c959493929190610e66565b6101c161026c366004610ebe565b60016020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6000546101fe9068010000000000000000900463ffffffff1681565b6100f76102be366004610ee0565b6000805473ffffffffffffffffffffffffffffffffffffffff9092166c01000000000000000000000000026bffffffffffffffffffffffff909216919091179055565b61010261030f366004610efd565b61091c565b6000546101fe9063ffffffff1681565b61032c600081565b60405160ff909116815260200161010c565b6000805463ffffffff680100000000000000009182900481168352600260208181526040808620815160a0810183528154808716825264010000000081049096169381019390935273ffffffffffffffffffffffffffffffffffffffff9590940485169082015260018301549093166060840152810180546080840191906103c590610f57565b80601f01602080910402602001604051908101604052809291908181526020018280546103f190610f57565b801561043e5780601f106104135761010080835404028352916020019161043e565b820191906000526020600020905b81548152906001019060200180831161042157829003601f168201915b505050919092525050506060810151909150600061045b82610b17565b905073ffffffffffffffffffffffffffffffffffffffff811615610568578073ffffffffffffffffffffffffffffffffffffffff1663f7e83aee61049e85610bf5565b6040518263ffffffff1660e01b81526004016104ba9190610faa565b6020604051808303816000875af11580156104d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104fd9190610fcb565b610568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f49534d20766572696679206661696c656400000000000000000000000000000060448201526064015b60405180910390fd5b826060015173ffffffffffffffffffffffffffffffffffffffff166356d5d47584602001516105c4866040015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1690565b86608001516040518463ffffffff1660e01b81526004016105e793929190610fed565b600060405180830381600087803b15801561060157600080fd5b505af1158015610615573d6000803e3d6000fd5b50506000805468010000000000000000900463ffffffff1692509050600861063c8361101b565b91906101000a81548163ffffffff021916908363ffffffff16021790555050505050565b6040518060a001604052808763ffffffff1681526020018663ffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff16815260200183838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525093909452505080546401000000009081900463ffffffff9081168352600260208181526040948590208751815492890151968901519085167fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000009093169290921795909316909302939093177fffffffff0000000000000000000000000000000000000000ffffffffffffffff166801000000000000000073ffffffffffffffffffffffffffffffffffffffff9384160217815560608501516001820180547fffffffffffffffffffffffff00000000000000000000000000000000000000001691909316179091556080840151909250908201906107eb90826110e3565b505060008054640100000000900463ffffffff169150600461080c8361101b565b91906101000a81548163ffffffff021916908363ffffffff16021790555050505050505050565b600260208190526000918252604090912080546001820154928201805463ffffffff808416956401000000008504909116946801000000000000000090940473ffffffffffffffffffffffffffffffffffffffff90811694911692909161089990610f57565b80601f01602080910402602001604051908101604052809291908181526020018280546108c590610f57565b80156109125780601f106108e757610100808354040283529160200191610912565b820191906000526020600020905b8154815290600101906020018083116108f557829003601f168201915b5050505050905085565b600061080082111561098a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6d736720746f6f206c6f6e670000000000000000000000000000000000000000604482015260640161055f565b63ffffffff851660009081526001602052604090205473ffffffffffffffffffffffffffffffffffffffff1680610a1d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d697373696e672072656d6f7465206d61696c626f7800000000000000000000604482015260640161055f565b6000546040517f6b791ca100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831691636b791ca191610aa19163ffffffff16907f00000000000000000000000000000000000000000000000000000000000000009033908b908b908b906004016111fd565b600060405180830381600087803b158015610abb57600080fd5b505af1158015610acf573d6000803e3d6000fd5b50506000805463ffffffff169250905080610ae98361101b565b91906101000a81548163ffffffff021916908363ffffffff160217905550506000801b915050949350505050565b60008173ffffffffffffffffffffffffffffffffffffffff1663de523cf36040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610b9e575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252610b9b9181019061128a565b60015b15610bc75773ffffffffffffffffffffffffffffffffffffffff811615610bc55792915050565b505b50506000546c01000000000000000000000000900473ffffffffffffffffffffffffffffffffffffffff1690565b6060600082600001518360200151610c24856040015173ffffffffffffffffffffffffffffffffffffffff1690565b7f0000000000000000000000000000000000000000000000000000000000000000610c66876060015173ffffffffffffffffffffffffffffffffffffffff1690565b8760800151604051602001610c8197969594939291906112a7565b6040516020818303038152906040529050919050565b803563ffffffff81168114610cab57600080fd5b919050565b73ffffffffffffffffffffffffffffffffffffffff81168114610cd257600080fd5b50565b60008060408385031215610ce857600080fd5b610cf183610c97565b91506020830135610d0181610cb0565b809150509250929050565b60008083601f840112610d1e57600080fd5b50813567ffffffffffffffff811115610d3657600080fd5b602083019150836020828501011115610d4e57600080fd5b9250929050565b60008060008060008060a08789031215610d6e57600080fd5b610d7787610c97565b9550610d8560208801610c97565b94506040870135610d9581610cb0565b93506060870135610da581610cb0565b9250608087013567ffffffffffffffff811115610dc157600080fd5b610dcd89828a01610d0c565b979a9699509497509295939492505050565b600060208284031215610df157600080fd5b5035919050565b60005b83811015610e13578181015183820152602001610dfb565b50506000910152565b60008151808452610e34816020860160208601610df8565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b63ffffffff86811682528516602082015273ffffffffffffffffffffffffffffffffffffffff84811660408301528316606082015260a060808201819052600090610eb390830184610e1c565b979650505050505050565b600060208284031215610ed057600080fd5b610ed982610c97565b9392505050565b600060208284031215610ef257600080fd5b8135610ed981610cb0565b60008060008060608587031215610f1357600080fd5b610f1c85610c97565b935060208501359250604085013567ffffffffffffffff811115610f3f57600080fd5b610f4b87828801610d0c565b95989497509550505050565b600181811c90821680610f6b57607f821691505b602082108103610fa4577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b6040815260006040820152606060208201526000610ed96060830184610e1c565b600060208284031215610fdd57600080fd5b81518015158114610ed957600080fd5b63ffffffff841681528260208201526060604082015260006110126060830184610e1c565b95945050505050565b600063ffffffff80831681810361105b577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6001019392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f8211156110de57600081815260208120601f850160051c810160208610156110bb5750805b601f850160051c820191505b818110156110da578281556001016110c7565b5050505b505050565b815167ffffffffffffffff8111156110fd576110fd611065565b6111118161110b8454610f57565b84611094565b602080601f831160018114611164576000841561112e5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556110da565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156111b157888601518255948401946001909101908401611192565b50858210156111ed57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b63ffffffff87811682528616602082015273ffffffffffffffffffffffffffffffffffffffff85811660408301528416606082015260a06080820181905281018290526000828460c0840137600060c0848401015260c07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501168301019050979650505050505050565b60006020828403121561129c57600080fd5b8151610ed981610cb0565b7fff000000000000000000000000000000000000000000000000000000000000008860f81b16815260007fffffffff00000000000000000000000000000000000000000000000000000000808960e01b166001840152808860e01b166005840152866009840152808660e01b1660298401525083602d830152825161133381604d850160208701610df8565b91909101604d019897505050505050505056fea2646970667358221220978c1f82f22d39cb9c6cedb697d843f828cc347e4a3555d75ad216a15f3a682064736f6c6343000811003360806040523480156200001157600080fd5b506040516200138838038062001388833981016040819052620000349162000315565b62000040338262000047565b5062000347565b600054610100900460ff1615808015620000685750600054600160ff909116105b8062000098575062000085306200019160201b620009ec1760201c565b15801562000098575060005460ff166001145b620001015760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801562000125576000805461ff0019166101001790555b6200012f620001a0565b6200013a8362000208565b62000145826200025a565b80156200018c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b6001600160a01b03163b151590565b600054610100900460ff16620001fc5760405162461bcd60e51b815260206004820152602b60248201526000805160206200136883398151915260448201526a6e697469616c697a696e6760a81b6064820152608401620000f8565b62000206620002ae565b565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b606680546001600160a01b0319166001600160a01b0383169081179091556040519081527f04d55a8be181fb8d75b76f2d48aa0b2ee40f47e53d6e61763eeeec46feea8a249060200160405180910390a150565b600054610100900460ff166200030a5760405162461bcd60e51b815260206004820152602b60248201526000805160206200136883398151915260448201526a6e697469616c697a696e6760a81b6064820152608401620000f8565b620002063362000208565b6000602082840312156200032857600080fd5b81516001600160a01b03811681146200034057600080fd5b9392505050565b61101180620003576000396000f3fe6080604052600436106100d25760003560e01c80634e71d92d1161007f5780638da5cb5b116100595780638da5cb5b14610259578063a692979314610284578063f2fde38b146102b2578063fe173b97146102d257600080fd5b80634e71d92d146101e657806360fcef7c146101fb578063715018a61461024457600080fd5b80632f202650116100b05780632f2026501461017957806338af3eed14610199578063485cc955146101c657600080fd5b806311bf2c18146100d75780631c31f710146100ec5780631d16c8c81461010c575b600080fd5b6100ea6100e5366004610d83565b6102e7565b005b3480156100f857600080fd5b506100ea610107366004610dc9565b6104d2565b34801561011857600080fd5b5061014f610127366004610de4565b60656020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561018557600080fd5b506100ea610194366004610dff565b6104e6565b3480156101a557600080fd5b5060665461014f9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156101d257600080fd5b506100ea6101e1366004610e74565b61056c565b3480156101f257600080fd5b506100ea610712565b34801561020757600080fd5b5061021b610216366004610de4565b6107dc565b604080516fffffffffffffffffffffffffffffffff938416815292909116602083015201610170565b34801561025057600080fd5b506100ea61090e565b34801561026557600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff1661014f565b34801561029057600080fd5b506102a461029f366004610ea7565b610922565b604051908152602001610170565b3480156102be57600080fd5b506100ea6102cd366004610dc9565b610938565b3480156102de57600080fd5b506102a4600a81565b60006102f38484610922565b90508034101561038a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f696e73756666696369656e7420696e746572636861696e20676173207061796d60448201527f656e74000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b60006103968234610f00565b9050801561048f5760008373ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d80600081146103f8576040519150601f19603f3d011682016040523d82523d6000602084013e6103fd565b606091505b505090508061048d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f496e746572636861696e20676173207061796d656e7420726566756e6420666160448201527f696c6564000000000000000000000000000000000000000000000000000000006064820152608401610381565b505b604080518581526020810184905287917ff715e66d2cd2a0179069dcda2a41a4da36a30e1aad12187fbb7c5d100afd621c910160405180910390a2505050505050565b6104da610a08565b6104e381610a89565b50565b6104ee610a08565b8060005b818110156105665761055484848381811061050f5761050f610f13565b6105259260206040909202019081019150610de4565b85858481811061053757610537610f13565b905060400201602001602081019061054f9190610dc9565b610b02565b8061055e81610f42565b9150506104f2565b50505050565b600054610100900460ff161580801561058c5750600054600160ff909116105b806105a65750303b1580156105a6575060005460ff166001145b610632576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610381565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561069057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610698610b90565b6106a183610c2f565b6106aa82610a89565b801561070d57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60665460405160009173ffffffffffffffffffffffffffffffffffffffff169047908381818185875af1925050503d806000811461076c576040519150601f19603f3d011682016040523d82523d6000602084013e610771565b606091505b50509050806104e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f217472616e7366657200000000000000000000000000000000000000000000006044820152606401610381565b63ffffffff8116600090815260656020526040812054819073ffffffffffffffffffffffffffffffffffffffff1680610871576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21676173206f7261636c650000000000000000000000000000000000000000006044820152606401610381565b6040517f60fcef7c00000000000000000000000000000000000000000000000000000000815263ffffffff8516600482015273ffffffffffffffffffffffffffffffffffffffff8216906360fcef7c906024016040805180830381865afa1580156108e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109049190610f9a565b9250925050915091565b610916610a08565b6109206000610c2f565b565b600061092f82600a610fc4565b90505b92915050565b610940610a08565b73ffffffffffffffffffffffffffffffffffffffff81166109e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610381565b6104e381610c2f565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b60335473ffffffffffffffffffffffffffffffffffffffff163314610920576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610381565b606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527f04d55a8be181fb8d75b76f2d48aa0b2ee40f47e53d6e61763eeeec46feea8a249060200160405180910390a150565b63ffffffff821660008181526065602090815260409182902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff861690811790915591519182527f38b842e116ff320f6a79ba4cf434eee927fa156b226c65c90d62989de589b4e7910160405180910390a25050565b600054610100900460ff16610c27576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610381565b610920610ca6565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16610d3d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610381565b61092033610c2f565b803563ffffffff81168114610d5a57600080fd5b919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610d5a57600080fd5b60008060008060808587031215610d9957600080fd5b84359350610da960208601610d46565b925060408501359150610dbe60608601610d5f565b905092959194509250565b600060208284031215610ddb57600080fd5b61092f82610d5f565b600060208284031215610df657600080fd5b61092f82610d46565b60008060208385031215610e1257600080fd5b823567ffffffffffffffff80821115610e2a57600080fd5b818501915085601f830112610e3e57600080fd5b813581811115610e4d57600080fd5b8660208260061b8501011115610e6257600080fd5b60209290920196919550909350505050565b60008060408385031215610e8757600080fd5b610e9083610d5f565b9150610e9e60208401610d5f565b90509250929050565b60008060408385031215610eba57600080fd5b610ec383610d46565b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181038181111561093257610932610ed1565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610f7357610f73610ed1565b5060010190565b80516fffffffffffffffffffffffffffffffff81168114610d5a57600080fd5b60008060408385031215610fad57600080fd5b610fb683610f7a565b9150610e9e60208401610f7a565b808202811582820484141761093257610932610ed156fea2646970667358221220c0c7e5463aed39a02073f1ebf4a03bb5c9fd30d0b97285dfad72394239fdc66c64736f6c63430008110033496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069608060405234801561001057600080fd5b506000805460ff191660011790556103778061002d6000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c80634fc3aa7c116100505780634fc3aa7c146100af5780636465e69f146100f0578063f7e83aee1461010a57600080fd5b80632852b71c1461006c5780632e0ed2341461008e575b600080fd5b6000546100799060ff1681565b60405190151581526020015b60405180910390f35b6100a161009c3660046101d7565b610126565b604051610085929190610219565b6100ee6100bd36600461027d565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b005b6100f8600481565b60405160ff9091168152602001610085565b6100796101183660046102a6565b60005460ff16949350505050565b60408051600180825281830190925260609160009182916020808301908036833701905050905060008160008151811061016257610162610312565b73ffffffffffffffffffffffffffffffffffffffff909216602092830291909101909101529150600190505b9250929050565b60008083601f8401126101a757600080fd5b50813567ffffffffffffffff8111156101bf57600080fd5b60208301915083602082850101111561018e57600080fd5b600080602083850312156101ea57600080fd5b823567ffffffffffffffff81111561020157600080fd5b61020d85828601610195565b90969095509350505050565b604080825283519082018190526000906020906060840190828701845b8281101561026857815173ffffffffffffffffffffffffffffffffffffffff1684529284019290840190600101610236565b50505060ff9490941692019190915250919050565b60006020828403121561028f57600080fd5b8135801515811461029f57600080fd5b9392505050565b600080600080604085870312156102bc57600080fd5b843567ffffffffffffffff808211156102d457600080fd5b6102e088838901610195565b909650945060208701359150808211156102f957600080fd5b5061030687828801610195565b95989497509550505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea26469706673582212200c9837d66c644e2248f06a18f1a5e14051323dd9a0527ecbb09e815caab2cc2164736f6c63430008110033608060405234801561001057600080fd5b506125df806100206000396000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c80638da5cb5b116100b2578063e9198bf911610081578063f2fde38b11610066578063f2fde38b1461028d578063f3c61d6b146102a0578063f8c8765e146102b357600080fd5b8063e9198bf914610267578063f1bd6f0a1461027a57600080fd5b80638da5cb5b146101f6578063b49c53a714610214578063d5438eae14610227578063de523cf31461024757600080fd5b8063440df4f4116100ee578063440df4f4146101b357806356d5d475146101c8578063715018a6146101db5780638cc02cab146101e357600080fd5b80630e72cc06146101205780632222b452146101355780632ead72f61461015b57806339bb4ad91461016e575b600080fd5b61013361012e366004611839565b6102c6565b005b61014861014336600461199d565b6102da565b6040519081526020015b60405180910390f35b610148610169366004611a22565b61032d565b60665461018e9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610152565b6101bb61036f565b6040516101529190611a3d565b6101336101d6366004611a87565b61042a565b610133610522565b6101486101f1366004611b5a565b610536565b60335473ffffffffffffffffffffffffffffffffffffffff1661018e565b610133610222366004611bad565b610582565b60655461018e9073ffffffffffffffffffffffffffffffffffffffff1681565b60675461018e9073ffffffffffffffffffffffffffffffffffffffff1681565b610133610275366004611bd7565b610598565b610133610288366004611839565b61066f565b61013361029b366004611839565b610680565b6101336102ae366004611839565b610734565b6101336102c1366004611c43565b610745565b6102ce6108df565b6102d781610960565b50565b604051600090339063ffffffff8716907f11c97c784c298562a796345417aa40e1ce110e6b100f41b801ab23414f72d7e5908490a36103248561031f33878787610a6e565b610b22565b95945050505050565b6000610343609863ffffffff80851690610bcc16565b156103625761035c609863ffffffff80851690610bdf16565b92915050565b506000919050565b919050565b609880546060919060008167ffffffffffffffff81111561039257610392611868565b6040519080825280602002602001820160405280156103bb578160200160208202803683370190505b50905060005b82811015610422578381815481106103db576103db611c97565b906000526020600020015460001c8282815181106103fb576103fb611c97565b63ffffffff909216602092830291909101909101528061041a81611cf5565b9150506103c1565b509392505050565b60655473ffffffffffffffffffffffffffffffffffffffff1633146104b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f216d61696c626f7800000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b83836104bc8282610beb565b604051806080016040528060438152602001612542604391399061050d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104a79190611d9b565b5061051a86868686610bff565b505050505050565b61052a6108df565b6105346000610d23565b565b604051600090339063ffffffff8616907f11c97c784c298562a796345417aa40e1ce110e6b100f41b801ab23414f72d7e5908490a361057a8461031f338686610d9a565b949350505050565b61058a6108df565b6105948282610dcc565b5050565b6105a06108df565b828114610609576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e6774680000000000000000000000000000000000000000000000000060448201526064016104a7565b8260005b8181101561051a5761065d86868381811061062a5761062a611c97565b905060200201602081019061063f9190611a22565b85858481811061065157610651611c97565b90506020020135610dcc565b610668600182611dae565b905061060d565b6106776108df565b6102d781610e26565b6106886108df565b73ffffffffffffffffffffffffffffffffffffffff811661072b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016104a7565b6102d781610d23565b61073c6108df565b6102d781610f15565b600054610100900460ff16158080156107655750600054600160ff909116105b8061077f5750303b15801561077f575060005460ff166001145b61080b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016104a7565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561086957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61087585858585611004565b80156108d857600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60335473ffffffffffffffffffffffffffffffffffffffff163314610534576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104a7565b73ffffffffffffffffffffffffffffffffffffffff81161580610999575073ffffffffffffffffffffffffffffffffffffffff81163b15155b6109ff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016104a7565b606780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517ffec811ed4e60aebdaf7a79cad8a97196bf56e35362f039705598226d30c9d24890600090a250565b60408051600180825281830190925260609160009190816020015b610ab46040805160808101825260009181019182526060808201529081908152602001606081525090565b815260200190600190039081610a89579050509050610ad48585856110c5565b81600081518110610ae757610ae7611c97565b602002602001018190525085600082604051602001610b0893929190611e2b565b604051602081830303815290604052915050949350505050565b600080610b2e84611115565b6065546040517ffa31de0100000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff169063fa31de0190610b8990879085908890600401611ef6565b6020604051808303816000875af1158015610ba8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057a9190611f1b565b6000610bd88383611180565b9392505050565b6000610bd8838361118c565b600081610bf78461032d565b149392505050565b6000610c0b8383611216565b90506000610c198484611250565b90506000826001811115610c2f57610c2f611dc1565b03610c99576000610c408585611268565b90506000610c4d826112a0565b9050828863ffffffff167fb689f7016112eaacc7edebd6ea5eb700790a103e79c39ce0118e075de87d797660405160405180910390a3610c918861031f858461134b565b50505061051a565b6001826001811115610cad57610cad611dc1565b03610d1b57806000610cbf868661137a565b9050610ccb82826113b2565b60405173ffffffffffffffffffffffffffffffffffffffff83169063ffffffff8a16907fc4416e2fcdf8514178829e5ead195eb13f3241ea71c0e38f998868fe81e4226990600090a3505061051a565b61051a611f34565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60608360008484604051602001610db4949392919061204d565b60405160208183030381529060405290509392505050565b610de2609863ffffffff8085169084906113ef16565b8163ffffffff167f97fd51fef1f80c854cbd0150c248e8b2ac4ecdc97cc05e742b5f61c9f4dc645882604051610e1a91815260200190565b60405180910390a25050565b8073ffffffffffffffffffffffffffffffffffffffff81163b610ea5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016104a7565b606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517fb87f5a0bface22cde699143559fb99f990ae54eea236995fc54178af91af859f90600090a25050565b8073ffffffffffffffffffffffffffffffffffffffff81163b610f94576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016104a7565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517f7a61e573722ff8b205c8962b59d37e7d30573f368965597a844a94872204ebd790600090a25050565b600054610100900460ff1661109b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016104a7565b6110a484610f15565b6110ad83610e26565b6110b682610960565b6110bf81610d23565b50505050565b6110f06040805160808101825260009181019182526060808201529081908152602001606081525090565b604051806040016040528061110586866113fa565b8152602001929092525092915050565b60006111208261032d565b90506000801b811415604051806080016040528060438152602001612542604391399061117a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104a79190611d9b565b50919050565b6000610bd8838361144c565b6000818152600283016020526040812054801515806111b057506111b08484611180565b610bd8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579000060448201526064016104a7565b6000828261122660016040612128565b81811061123557611235611c97565b919091013560f81c90506001811115610bd857610bd8611dc1565b600061125f602082848661213b565b610bd891612165565b606060006112768484611216565b600181111561128757611287611dc1565b1461129457611294611f34565b610324828401846121d4565b8051606090600090818167ffffffffffffffff8111156112c2576112c2611868565b6040519080825280602002602001820160405280156112f557816020015b60608152602001906001900390816112e05790505b5090505b8183101561057a5761132385848151811061131657611316611c97565b6020026020010151611464565b81848151811061133557611335611c97565b60200260200101819052508260010192506112f9565b60608260018360405160200161136393929190612393565b604051602081830303815290604052905092915050565b606060016113888484611216565b600181111561139957611399611dc1565b146113a6576113a6611f34565b61032482840184612429565b80516000905b808210156110bf576113e3848484815181106113d6576113d6611c97565b602002602001015161149f565b508160010191506113b8565b6110bf8383836114e3565b6040805180820182526000808252606060208084018290528451808601865292835291820152825180840190935273ffffffffffffffffffffffffffffffffffffffff85168352820183905290610bd8565b60008181526001830160205260408120541515610bd8565b606081602001516114788360000151611500565b6040516020016114899291906124f6565b6040516020818303038152906040529050919050565b6060610bd8838360006040518060400160405280601e81526020017f416464726573733a206c6f772d6c6576656c2063616c6c206661696c65640000815250611513565b6000828152600284016020526040812082905561057a848461162c565b805160609061035c908360200151611638565b6060824710156115a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016104a7565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516115ce9190612525565b60006040518083038185875af1925050503d806000811461160b576040519150601f19603f3d011682016040523d82523d6000602084013e611610565b606091505b50915091506116218783838761165d565b979650505050505050565b6000610bd883836116fd565b6060610bd883836040518060600160405280602581526020016125856025913961174c565b606083156116f35782516000036116ec5773ffffffffffffffffffffffffffffffffffffffff85163b6116ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016104a7565b508161057a565b61057a83836117d1565b60008181526001830160205260408120546117445750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561035c565b50600061035c565b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516117769190612525565b600060405180830381855afa9150503d80600081146117b1576040519150601f19603f3d011682016040523d82523d6000602084013e6117b6565b606091505b50915091506117c78683838761165d565b9695505050505050565b8151156117e15781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104a79190611d9b565b803573ffffffffffffffffffffffffffffffffffffffff8116811461036a57600080fd5b60006020828403121561184b57600080fd5b610bd882611815565b803563ffffffff8116811461036a57600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156118ba576118ba611868565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561190757611907611868565b604052919050565b600082601f83011261192057600080fd5b813567ffffffffffffffff81111561193a5761193a611868565b61196b60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016118c0565b81815284602083860101111561198057600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080608085870312156119b357600080fd5b6119bc85611854565b93506119ca60208601611815565b9250604085013567ffffffffffffffff808211156119e757600080fd5b6119f38883890161190f565b93506060870135915080821115611a0957600080fd5b50611a168782880161190f565b91505092959194509250565b600060208284031215611a3457600080fd5b610bd882611854565b6020808252825182820181905260009190848201906040850190845b81811015611a7b57835163ffffffff1683529284019291840191600101611a59565b50909695505050505050565b60008060008060608587031215611a9d57600080fd5b611aa685611854565b935060208501359250604085013567ffffffffffffffff80821115611aca57600080fd5b818701915087601f830112611ade57600080fd5b813581811115611aed57600080fd5b886020828501011115611aff57600080fd5b95989497505060200194505050565b60008083601f840112611b2057600080fd5b50813567ffffffffffffffff811115611b3857600080fd5b6020830191508360208260051b8501011115611b5357600080fd5b9250929050565b600080600060408486031215611b6f57600080fd5b611b7884611854565b9250602084013567ffffffffffffffff811115611b9457600080fd5b611ba086828701611b0e565b9497909650939450505050565b60008060408385031215611bc057600080fd5b611bc983611854565b946020939093013593505050565b60008060008060408587031215611bed57600080fd5b843567ffffffffffffffff80821115611c0557600080fd5b611c1188838901611b0e565b90965094506020870135915080821115611c2a57600080fd5b50611c3787828801611b0e565b95989497509550505050565b60008060008060808587031215611c5957600080fd5b611c6285611815565b9350611c7060208601611815565b9250611c7e60408601611815565b9150611c8c60608601611815565b905092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611d2657611d26611cc6565b5060010190565b60005b83811015611d48578181015183820152602001611d30565b50506000910152565b60008151808452611d69816020860160208601611d2d565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610bd86020830184611d51565b8082018082111561035c5761035c611cc6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60028110611e27577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b600060608083018684526020611e4381860188611df0565b60408381870152828751808552608094508488019150848160051b890101848a0160005b83811015611ee4578a83037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80018552815180518785528051888601528801518a8501889052611eb88a860182611d51565b91890151858303868b0152919050611ed08183611d51565b968901969450505090860190600101611e67565b50909c9b505050505050505050505050565b63ffffffff841681528260208201526060604082015260006103246060830184611d51565b600060208284031215611f2d57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112611f9757600080fd5b90910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112611fd557600080fd5b830160208101925035905067ffffffffffffffff811115611ff557600080fd5b803603821315611b5357600080fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60006060808301878452602061206581860189611df0565b604085810184905291869052608091828601600588901b870184018960005b8a811015611ee4577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808a84030184526120bd828d611f63565b6120c78182611f63565b8685528035878601526120dc88820182611fa0565b9150878b8701526120f08a87018383612004565b9150506120ff88830183611fa0565b925085820389870152612113828483612004565b96890196955050509186019150600101612084565b8181038181111561035c5761035c611cc6565b6000808585111561214b57600080fd5b8386111561215857600080fd5b5050820193919092039150565b8035602083101561035c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b80356002811061036a57600080fd5b600067ffffffffffffffff8211156121ca576121ca611868565b5060051b60200190565b6000806000606084860312156121e957600080fd5b833592506121f9602085016121a1565b915067ffffffffffffffff6040850135111561221457600080fd5b6040840135840185601f82011261222a57600080fd5b61223c61223782356121b0565b6118c0565b81358082526020808301929160051b84010188101561225a57600080fd5b602083015b6020843560051b8501018110156123855767ffffffffffffffff8135111561228657600080fd5b803584017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0604081838d030112156122bd57600080fd5b6122c5611897565b67ffffffffffffffff602084013511156122de57600080fd5b60208301358301604083828f030112156122f757600080fd5b6122ff611897565b92506020810135835267ffffffffffffffff6040820135111561232157600080fd5b6123348d6020604084013584010161190f565b60208401525081815267ffffffffffffffff6040840135111561235657600080fd5b6123698c6020604086013586010161190f565b602082015280865250505060208301925060208101905061225f565b508093505050509250925092565b60006060820185835260206123aa81850187611df0565b6060604085015281855180845260808601915060808160051b870101935082870160005b8281101561241a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80888703018452612408868351611d51565b955092840192908401906001016123ce565b50939998505050505050505050565b60008060006060848603121561243e57600080fd5b83359250602061244f8186016121a1565b9250604085013567ffffffffffffffff8082111561246c57600080fd5b818701915087601f83011261248057600080fd5b813561248e612237826121b0565b81815260059190911b8301840190848101908a8311156124ad57600080fd5b8585015b838110156124e5578035858111156124c95760008081fd5b6124d78d89838a010161190f565b8452509186019186016124b1565b508096505050505050509250925092565b60008351612508818460208801611d2d565b83519083019061251c818360208801611d2d565b01949350505050565b60008251612537818460208701611d2d565b919091019291505056fe4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e2e2044696420796f7520737065636966792074686520726967687420646f6d61696e2049443f416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564a264697066735822122013ba5a6a44dcbe7476be0e0f3e61d399a94c2717da0b34f4e4b2d54975b9ebf864736f6c63430008110033";
15
+ static readonly bytecode = "0x608060405234801561001057600080fd5b5060405162005c4438038062005c448339810160408190526100319161079d565b6000805463ffffffff838116640100000000026001600160401b03199092169085161717815560405183906100659061074c565b63ffffffff9091168152602001604051809103906000f08015801561008e573d6000803e3d6000fd5b5090506000826040516100a09061074c565b63ffffffff9091168152602001604051809103906000f0801580156100c9573d6000803e3d6000fd5b506040516302cd9fb760e51b815263ffffffff851660048201526001600160a01b038083166024830152919250908316906359b3f6e090604401600060405180830381600087803b15801561011d57600080fd5b505af1158015610131573d6000803e3d6000fd5b50506040516302cd9fb760e51b815263ffffffff871660048201526001600160a01b038581166024830152841692506359b3f6e09150604401600060405180830381600087803b15801561018457600080fd5b505af1158015610198573d6000803e3d6000fd5b50505050306040516101a99061075a565b6001600160a01b039091168152602001604051809103906000f0801580156101d5573d6000803e3d6000fd5b506000805463ffffffff168152600260205260409081902080546001600160a01b0319166001600160a01b0393909316929092179091555130906102189061075a565b6001600160a01b039091168152602001604051809103906000f080158015610244573d6000803e3d6000fd5b5060008054640100000000900463ffffffff168152600260205260409081902080546001600160a01b0319166001600160a01b0393909316929092179091555161028d90610768565b604051809103906000f0801580156102a9573d6000803e3d6000fd5b506000805463ffffffff168152600360205260409081902080546001600160a01b0319166001600160a01b039390931692909217909155516102ea90610768565b604051809103906000f080158015610306573d6000803e3d6000fd5b5060008054640100000000900463ffffffff90811682526003602052604080832080546001600160a01b0319166001600160a01b039586161790558254909116825290819020549051637bca343d60e11b815290821660048201529083169063f794687a90602401600060405180830381600087803b15801561038857600080fd5b505af115801561039c573d6000803e3d6000fd5b505060008054640100000000900463ffffffff1681526003602052604090819020549051637bca343d60e11b81526001600160a01b039182166004820152908416925063f794687a9150602401600060405180830381600087803b15801561040357600080fd5b505af1158015610417573d6000803e3d6000fd5b50505063ffffffff80861660009081526001602052604080822080546001600160a01b038089166001600160a01b031992831617909255938816835281832080549187169190941617909255905190915061047190610776565b604051809103906000f08015801561048d573d6000803e3d6000fd5b509050600060405161049e90610776565b604051809103906000f0801580156104ba573d6000803e3d6000fd5b506000805463ffffffff16815260026020908152604080832054600390925291829020549151637c643b2f60e11b81526001600160a01b03888116600483015291821660248201529181166044830152306064830181905292935084169063f8c8765e90608401600060405180830381600087803b15801561053b57600080fd5b505af115801561054f573d6000803e3d6000fd5b505060008054640100000000900463ffffffff16815260026020908152604080832054600390925291829020549151637c643b2f60e11b81526001600160a01b0389811660048301529182166024820152918116604483015284811660648301528516925063f8c8765e9150608401600060405180830381600087803b1580156105d857600080fd5b505af11580156105ec573d6000803e3d6000fd5b50505050826001600160a01b031663b49c53a7876106138561074060201b61029e1760201c565b6040516001600160e01b031960e085901b16815263ffffffff9290921660048301526024820152604401600060405180830381600087803b15801561065757600080fd5b505af115801561066b573d6000803e3d6000fd5b50505050816001600160a01b031663b49c53a7886106928661074060201b61029e1760201c565b6040516001600160e01b031960e085901b16815263ffffffff9290921660048301526024820152604401600060405180830381600087803b1580156106d657600080fd5b505af11580156106ea573d6000803e3d6000fd5b5050505063ffffffff96871660009081526004602052604080822080546001600160a01b03199081166001600160a01b0397881617909155979098168152969096208054909516911617909255506107d0915050565b6001600160a01b031690565b61141f8062000afa83390190565b6113888062001f1983390190565b6103a480620032a183390190565b6125ff806200364583390190565b805163ffffffff8116811461079857600080fd5b919050565b600080604083850312156107b057600080fd5b6107b983610784565b91506107c760208401610784565b90509250929050565b61031a80620007e06000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c8063f11a367e11610050578063f11a367e14610142578063f9d2692d14610178578063f9f312ad1461018257600080fd5b80635a007b7e146100775780637a7eada3146100d6578063e9ee46951461010c575b600080fd5b6100ad6100853660046102b7565b60036020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100ad6100e43660046102b7565b60026020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6100ad61011a3660046102b7565b60046020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6100ad6101503660046102b7565b60016020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b61018061018a565b005b61018061021d565b6000805463ffffffff168152600160205260408082205481517f1605c306000000000000000000000000000000000000000000000000000000008152915173ffffffffffffffffffffffffffffffffffffffff90911692631605c306926004808201939182900301818387803b15801561020357600080fd5b505af1158015610217573d6000803e3d6000fd5b50505050565b60008054640100000000900463ffffffff168152600160205260408082205481517f1605c306000000000000000000000000000000000000000000000000000000008152915173ffffffffffffffffffffffffffffffffffffffff90911692631605c306926004808201939182900301818387803b15801561020357600080fd5b73ffffffffffffffffffffffffffffffffffffffff1690565b6000602082840312156102c957600080fd5b813563ffffffff811681146102dd57600080fd5b939250505056fea26469706673582212208034e3b2c77c3241dfadc390188b88e7013dd1809ee068aa875af93963d4dbe664736f6c6343000811003360a0604052600080546001600160601b031916905534801561002057600080fd5b5060405161141f38038061141f83398101604081905261003f9161004d565b63ffffffff1660805261007a565b60006020828403121561005f57600080fd5b815163ffffffff8116811461007357600080fd5b9392505050565b60805161137c6100a36000396000818161021801528181610a710152610c26015261137c6000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806392d28b3d1161008c578063f794687a11610066578063f794687a146102b0578063fa31de0114610301578063fd10ebe514610314578063ffa1ad741461032457600080fd5b806392d28b3d1461023a578063a3b4919f1461025e578063d12164e41461029457600080fd5b80636b791ca1116100c85780636b791ca11461017e5780636e5f516e146101915780638209d312146101e65780638d3638f41461021357600080fd5b80631605c306146100ef578063522ae002146100f957806359b3f6e014610115575b600080fd5b6100f761033e565b005b61010261080081565b6040519081526020015b60405180910390f35b6100f7610123366004610cd5565b63ffffffff91909116600090815260016020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055565b6100f761018c366004610d55565b610660565b6000546101c1906c01000000000000000000000000900473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161010c565b6000546101fe90640100000000900463ffffffff1681565b60405163ffffffff909116815260200161010c565b6101fe7f000000000000000000000000000000000000000000000000000000000000000081565b61024d610248366004610ddf565b610833565b60405161010c959493929190610e66565b6101c161026c366004610ebe565b60016020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6000546101fe9068010000000000000000900463ffffffff1681565b6100f76102be366004610ee0565b6000805473ffffffffffffffffffffffffffffffffffffffff9092166c01000000000000000000000000026bffffffffffffffffffffffff909216919091179055565b61010261030f366004610efd565b61091c565b6000546101fe9063ffffffff1681565b61032c600081565b60405160ff909116815260200161010c565b6000805463ffffffff680100000000000000009182900481168352600260208181526040808620815160a0810183528154808716825264010000000081049096169381019390935273ffffffffffffffffffffffffffffffffffffffff9590940485169082015260018301549093166060840152810180546080840191906103c590610f57565b80601f01602080910402602001604051908101604052809291908181526020018280546103f190610f57565b801561043e5780601f106104135761010080835404028352916020019161043e565b820191906000526020600020905b81548152906001019060200180831161042157829003601f168201915b505050919092525050506060810151909150600061045b82610b17565b905073ffffffffffffffffffffffffffffffffffffffff811615610568578073ffffffffffffffffffffffffffffffffffffffff1663f7e83aee61049e85610bf5565b6040518263ffffffff1660e01b81526004016104ba9190610faa565b6020604051808303816000875af11580156104d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104fd9190610fcb565b610568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f49534d20766572696679206661696c656400000000000000000000000000000060448201526064015b60405180910390fd5b826060015173ffffffffffffffffffffffffffffffffffffffff166356d5d47584602001516105c4866040015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1690565b86608001516040518463ffffffff1660e01b81526004016105e793929190610fed565b600060405180830381600087803b15801561060157600080fd5b505af1158015610615573d6000803e3d6000fd5b50506000805468010000000000000000900463ffffffff1692509050600861063c8361101b565b91906101000a81548163ffffffff021916908363ffffffff16021790555050505050565b6040518060a001604052808763ffffffff1681526020018663ffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff16815260200183838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525093909452505080546401000000009081900463ffffffff9081168352600260208181526040948590208751815492890151968901519085167fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000009093169290921795909316909302939093177fffffffff0000000000000000000000000000000000000000ffffffffffffffff166801000000000000000073ffffffffffffffffffffffffffffffffffffffff9384160217815560608501516001820180547fffffffffffffffffffffffff00000000000000000000000000000000000000001691909316179091556080840151909250908201906107eb90826110e3565b505060008054640100000000900463ffffffff169150600461080c8361101b565b91906101000a81548163ffffffff021916908363ffffffff16021790555050505050505050565b600260208190526000918252604090912080546001820154928201805463ffffffff808416956401000000008504909116946801000000000000000090940473ffffffffffffffffffffffffffffffffffffffff90811694911692909161089990610f57565b80601f01602080910402602001604051908101604052809291908181526020018280546108c590610f57565b80156109125780601f106108e757610100808354040283529160200191610912565b820191906000526020600020905b8154815290600101906020018083116108f557829003601f168201915b5050505050905085565b600061080082111561098a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6d736720746f6f206c6f6e670000000000000000000000000000000000000000604482015260640161055f565b63ffffffff851660009081526001602052604090205473ffffffffffffffffffffffffffffffffffffffff1680610a1d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d697373696e672072656d6f7465206d61696c626f7800000000000000000000604482015260640161055f565b6000546040517f6b791ca100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831691636b791ca191610aa19163ffffffff16907f00000000000000000000000000000000000000000000000000000000000000009033908b908b908b906004016111fd565b600060405180830381600087803b158015610abb57600080fd5b505af1158015610acf573d6000803e3d6000fd5b50506000805463ffffffff169250905080610ae98361101b565b91906101000a81548163ffffffff021916908363ffffffff160217905550506000801b915050949350505050565b60008173ffffffffffffffffffffffffffffffffffffffff1663de523cf36040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610b9e575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252610b9b9181019061128a565b60015b15610bc75773ffffffffffffffffffffffffffffffffffffffff811615610bc55792915050565b505b50506000546c01000000000000000000000000900473ffffffffffffffffffffffffffffffffffffffff1690565b6060600082600001518360200151610c24856040015173ffffffffffffffffffffffffffffffffffffffff1690565b7f0000000000000000000000000000000000000000000000000000000000000000610c66876060015173ffffffffffffffffffffffffffffffffffffffff1690565b8760800151604051602001610c8197969594939291906112a7565b6040516020818303038152906040529050919050565b803563ffffffff81168114610cab57600080fd5b919050565b73ffffffffffffffffffffffffffffffffffffffff81168114610cd257600080fd5b50565b60008060408385031215610ce857600080fd5b610cf183610c97565b91506020830135610d0181610cb0565b809150509250929050565b60008083601f840112610d1e57600080fd5b50813567ffffffffffffffff811115610d3657600080fd5b602083019150836020828501011115610d4e57600080fd5b9250929050565b60008060008060008060a08789031215610d6e57600080fd5b610d7787610c97565b9550610d8560208801610c97565b94506040870135610d9581610cb0565b93506060870135610da581610cb0565b9250608087013567ffffffffffffffff811115610dc157600080fd5b610dcd89828a01610d0c565b979a9699509497509295939492505050565b600060208284031215610df157600080fd5b5035919050565b60005b83811015610e13578181015183820152602001610dfb565b50506000910152565b60008151808452610e34816020860160208601610df8565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b63ffffffff86811682528516602082015273ffffffffffffffffffffffffffffffffffffffff84811660408301528316606082015260a060808201819052600090610eb390830184610e1c565b979650505050505050565b600060208284031215610ed057600080fd5b610ed982610c97565b9392505050565b600060208284031215610ef257600080fd5b8135610ed981610cb0565b60008060008060608587031215610f1357600080fd5b610f1c85610c97565b935060208501359250604085013567ffffffffffffffff811115610f3f57600080fd5b610f4b87828801610d0c565b95989497509550505050565b600181811c90821680610f6b57607f821691505b602082108103610fa4577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b6040815260006040820152606060208201526000610ed96060830184610e1c565b600060208284031215610fdd57600080fd5b81518015158114610ed957600080fd5b63ffffffff841681528260208201526060604082015260006110126060830184610e1c565b95945050505050565b600063ffffffff80831681810361105b577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6001019392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f8211156110de57600081815260208120601f850160051c810160208610156110bb5750805b601f850160051c820191505b818110156110da578281556001016110c7565b5050505b505050565b815167ffffffffffffffff8111156110fd576110fd611065565b6111118161110b8454610f57565b84611094565b602080601f831160018114611164576000841561112e5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556110da565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156111b157888601518255948401946001909101908401611192565b50858210156111ed57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b63ffffffff87811682528616602082015273ffffffffffffffffffffffffffffffffffffffff85811660408301528416606082015260a06080820181905281018290526000828460c0840137600060c0848401015260c07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501168301019050979650505050505050565b60006020828403121561129c57600080fd5b8151610ed981610cb0565b7fff000000000000000000000000000000000000000000000000000000000000008860f81b16815260007fffffffff00000000000000000000000000000000000000000000000000000000808960e01b166001840152808860e01b166005840152866009840152808660e01b1660298401525083602d830152825161133381604d850160208701610df8565b91909101604d019897505050505050505056fea264697066735822122065b0f7b2155f8f53d2767c52080a8915df605ce13ec8e5c785cdf6c4e74abfb764736f6c6343000811003360806040523480156200001157600080fd5b506040516200138838038062001388833981016040819052620000349162000315565b62000040338262000047565b5062000347565b600054610100900460ff1615808015620000685750600054600160ff909116105b8062000098575062000085306200019160201b620009ec1760201c565b15801562000098575060005460ff166001145b620001015760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801562000125576000805461ff0019166101001790555b6200012f620001a0565b6200013a8362000208565b62000145826200025a565b80156200018c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b6001600160a01b03163b151590565b600054610100900460ff16620001fc5760405162461bcd60e51b815260206004820152602b60248201526000805160206200136883398151915260448201526a6e697469616c697a696e6760a81b6064820152608401620000f8565b62000206620002ae565b565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b606680546001600160a01b0319166001600160a01b0383169081179091556040519081527f04d55a8be181fb8d75b76f2d48aa0b2ee40f47e53d6e61763eeeec46feea8a249060200160405180910390a150565b600054610100900460ff166200030a5760405162461bcd60e51b815260206004820152602b60248201526000805160206200136883398151915260448201526a6e697469616c697a696e6760a81b6064820152608401620000f8565b620002063362000208565b6000602082840312156200032857600080fd5b81516001600160a01b03811681146200034057600080fd5b9392505050565b61101180620003576000396000f3fe6080604052600436106100d25760003560e01c80634e71d92d1161007f5780638da5cb5b116100595780638da5cb5b14610259578063a692979314610284578063f2fde38b146102b2578063fe173b97146102d257600080fd5b80634e71d92d146101e657806360fcef7c146101fb578063715018a61461024457600080fd5b80632f202650116100b05780632f2026501461017957806338af3eed14610199578063485cc955146101c657600080fd5b806311bf2c18146100d75780631c31f710146100ec5780631d16c8c81461010c575b600080fd5b6100ea6100e5366004610d83565b6102e7565b005b3480156100f857600080fd5b506100ea610107366004610dc9565b6104d2565b34801561011857600080fd5b5061014f610127366004610de4565b60656020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561018557600080fd5b506100ea610194366004610dff565b6104e6565b3480156101a557600080fd5b5060665461014f9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156101d257600080fd5b506100ea6101e1366004610e74565b61056c565b3480156101f257600080fd5b506100ea610712565b34801561020757600080fd5b5061021b610216366004610de4565b6107dc565b604080516fffffffffffffffffffffffffffffffff938416815292909116602083015201610170565b34801561025057600080fd5b506100ea61090e565b34801561026557600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff1661014f565b34801561029057600080fd5b506102a461029f366004610ea7565b610922565b604051908152602001610170565b3480156102be57600080fd5b506100ea6102cd366004610dc9565b610938565b3480156102de57600080fd5b506102a4600a81565b60006102f38484610922565b90508034101561038a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f696e73756666696369656e7420696e746572636861696e20676173207061796d60448201527f656e74000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b60006103968234610f00565b9050801561048f5760008373ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d80600081146103f8576040519150601f19603f3d011682016040523d82523d6000602084013e6103fd565b606091505b505090508061048d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f496e746572636861696e20676173207061796d656e7420726566756e6420666160448201527f696c6564000000000000000000000000000000000000000000000000000000006064820152608401610381565b505b604080518581526020810184905287917ff715e66d2cd2a0179069dcda2a41a4da36a30e1aad12187fbb7c5d100afd621c910160405180910390a2505050505050565b6104da610a08565b6104e381610a89565b50565b6104ee610a08565b8060005b818110156105665761055484848381811061050f5761050f610f13565b6105259260206040909202019081019150610de4565b85858481811061053757610537610f13565b905060400201602001602081019061054f9190610dc9565b610b02565b8061055e81610f42565b9150506104f2565b50505050565b600054610100900460ff161580801561058c5750600054600160ff909116105b806105a65750303b1580156105a6575060005460ff166001145b610632576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610381565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561069057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610698610b90565b6106a183610c2f565b6106aa82610a89565b801561070d57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60665460405160009173ffffffffffffffffffffffffffffffffffffffff169047908381818185875af1925050503d806000811461076c576040519150601f19603f3d011682016040523d82523d6000602084013e610771565b606091505b50509050806104e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f217472616e7366657200000000000000000000000000000000000000000000006044820152606401610381565b63ffffffff8116600090815260656020526040812054819073ffffffffffffffffffffffffffffffffffffffff1680610871576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21676173206f7261636c650000000000000000000000000000000000000000006044820152606401610381565b6040517f60fcef7c00000000000000000000000000000000000000000000000000000000815263ffffffff8516600482015273ffffffffffffffffffffffffffffffffffffffff8216906360fcef7c906024016040805180830381865afa1580156108e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109049190610f9a565b9250925050915091565b610916610a08565b6109206000610c2f565b565b600061092f82600a610fc4565b90505b92915050565b610940610a08565b73ffffffffffffffffffffffffffffffffffffffff81166109e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610381565b6104e381610c2f565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b60335473ffffffffffffffffffffffffffffffffffffffff163314610920576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610381565b606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527f04d55a8be181fb8d75b76f2d48aa0b2ee40f47e53d6e61763eeeec46feea8a249060200160405180910390a150565b63ffffffff821660008181526065602090815260409182902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff861690811790915591519182527f38b842e116ff320f6a79ba4cf434eee927fa156b226c65c90d62989de589b4e7910160405180910390a25050565b600054610100900460ff16610c27576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610381565b610920610ca6565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16610d3d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610381565b61092033610c2f565b803563ffffffff81168114610d5a57600080fd5b919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610d5a57600080fd5b60008060008060808587031215610d9957600080fd5b84359350610da960208601610d46565b925060408501359150610dbe60608601610d5f565b905092959194509250565b600060208284031215610ddb57600080fd5b61092f82610d5f565b600060208284031215610df657600080fd5b61092f82610d46565b60008060208385031215610e1257600080fd5b823567ffffffffffffffff80821115610e2a57600080fd5b818501915085601f830112610e3e57600080fd5b813581811115610e4d57600080fd5b8660208260061b8501011115610e6257600080fd5b60209290920196919550909350505050565b60008060408385031215610e8757600080fd5b610e9083610d5f565b9150610e9e60208401610d5f565b90509250929050565b60008060408385031215610eba57600080fd5b610ec383610d46565b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181038181111561093257610932610ed1565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610f7357610f73610ed1565b5060010190565b80516fffffffffffffffffffffffffffffffff81168114610d5a57600080fd5b60008060408385031215610fad57600080fd5b610fb683610f7a565b9150610e9e60208401610f7a565b808202811582820484141761093257610932610ed156fea2646970667358221220c0c7e5463aed39a02073f1ebf4a03bb5c9fd30d0b97285dfad72394239fdc66c64736f6c63430008110033496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069608060405234801561001057600080fd5b506000805460ff191660011790556103778061002d6000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c80634fc3aa7c116100505780634fc3aa7c146100af5780636465e69f146100f0578063f7e83aee1461010a57600080fd5b80632852b71c1461006c5780632e0ed2341461008e575b600080fd5b6000546100799060ff1681565b60405190151581526020015b60405180910390f35b6100a161009c3660046101d7565b610126565b604051610085929190610219565b6100ee6100bd36600461027d565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b005b6100f8600481565b60405160ff9091168152602001610085565b6100796101183660046102a6565b60005460ff16949350505050565b60408051600180825281830190925260609160009182916020808301908036833701905050905060008160008151811061016257610162610312565b73ffffffffffffffffffffffffffffffffffffffff909216602092830291909101909101529150600190505b9250929050565b60008083601f8401126101a757600080fd5b50813567ffffffffffffffff8111156101bf57600080fd5b60208301915083602082850101111561018e57600080fd5b600080602083850312156101ea57600080fd5b823567ffffffffffffffff81111561020157600080fd5b61020d85828601610195565b90969095509350505050565b604080825283519082018190526000906020906060840190828701845b8281101561026857815173ffffffffffffffffffffffffffffffffffffffff1684529284019290840190600101610236565b50505060ff9490941692019190915250919050565b60006020828403121561028f57600080fd5b8135801515811461029f57600080fd5b9392505050565b600080600080604085870312156102bc57600080fd5b843567ffffffffffffffff808211156102d457600080fd5b6102e088838901610195565b909650945060208701359150808211156102f957600080fd5b5061030687828801610195565b95989497509550505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea264697066735822122017c3918e1ebea8ac9a9de746c40c8b031b8fef948d0933d04030e580d6ee3bfa64736f6c63430008110033608060405234801561001057600080fd5b506125df806100206000396000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c80638da5cb5b116100b2578063e9198bf911610081578063f2fde38b11610066578063f2fde38b1461028d578063f3c61d6b146102a0578063f8c8765e146102b357600080fd5b8063e9198bf914610267578063f1bd6f0a1461027a57600080fd5b80638da5cb5b146101f6578063b49c53a714610214578063d5438eae14610227578063de523cf31461024757600080fd5b8063440df4f4116100ee578063440df4f4146101b357806356d5d475146101c8578063715018a6146101db5780638cc02cab146101e357600080fd5b80630e72cc06146101205780632222b452146101355780632ead72f61461015b57806339bb4ad91461016e575b600080fd5b61013361012e366004611839565b6102c6565b005b61014861014336600461199d565b6102da565b6040519081526020015b60405180910390f35b610148610169366004611a22565b61032d565b60665461018e9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610152565b6101bb61036f565b6040516101529190611a3d565b6101336101d6366004611a87565b61042a565b610133610522565b6101486101f1366004611b5a565b610536565b60335473ffffffffffffffffffffffffffffffffffffffff1661018e565b610133610222366004611bad565b610582565b60655461018e9073ffffffffffffffffffffffffffffffffffffffff1681565b60675461018e9073ffffffffffffffffffffffffffffffffffffffff1681565b610133610275366004611bd7565b610598565b610133610288366004611839565b61066f565b61013361029b366004611839565b610680565b6101336102ae366004611839565b610734565b6101336102c1366004611c43565b610745565b6102ce6108df565b6102d781610960565b50565b604051600090339063ffffffff8716907f11c97c784c298562a796345417aa40e1ce110e6b100f41b801ab23414f72d7e5908490a36103248561031f33878787610a6e565b610b22565b95945050505050565b6000610343609863ffffffff80851690610bcc16565b156103625761035c609863ffffffff80851690610bdf16565b92915050565b506000919050565b919050565b609880546060919060008167ffffffffffffffff81111561039257610392611868565b6040519080825280602002602001820160405280156103bb578160200160208202803683370190505b50905060005b82811015610422578381815481106103db576103db611c97565b906000526020600020015460001c8282815181106103fb576103fb611c97565b63ffffffff909216602092830291909101909101528061041a81611cf5565b9150506103c1565b509392505050565b60655473ffffffffffffffffffffffffffffffffffffffff1633146104b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f216d61696c626f7800000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b83836104bc8282610beb565b604051806080016040528060438152602001612542604391399061050d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104a79190611d9b565b5061051a86868686610bff565b505050505050565b61052a6108df565b6105346000610d23565b565b604051600090339063ffffffff8616907f11c97c784c298562a796345417aa40e1ce110e6b100f41b801ab23414f72d7e5908490a361057a8461031f338686610d9a565b949350505050565b61058a6108df565b6105948282610dcc565b5050565b6105a06108df565b828114610609576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e6774680000000000000000000000000000000000000000000000000060448201526064016104a7565b8260005b8181101561051a5761065d86868381811061062a5761062a611c97565b905060200201602081019061063f9190611a22565b85858481811061065157610651611c97565b90506020020135610dcc565b610668600182611dae565b905061060d565b6106776108df565b6102d781610e26565b6106886108df565b73ffffffffffffffffffffffffffffffffffffffff811661072b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016104a7565b6102d781610d23565b61073c6108df565b6102d781610f15565b600054610100900460ff16158080156107655750600054600160ff909116105b8061077f5750303b15801561077f575060005460ff166001145b61080b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016104a7565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561086957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61087585858585611004565b80156108d857600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60335473ffffffffffffffffffffffffffffffffffffffff163314610534576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104a7565b73ffffffffffffffffffffffffffffffffffffffff81161580610999575073ffffffffffffffffffffffffffffffffffffffff81163b15155b6109ff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016104a7565b606780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517ffec811ed4e60aebdaf7a79cad8a97196bf56e35362f039705598226d30c9d24890600090a250565b60408051600180825281830190925260609160009190816020015b610ab46040805160808101825260009181019182526060808201529081908152602001606081525090565b815260200190600190039081610a89579050509050610ad48585856110c5565b81600081518110610ae757610ae7611c97565b602002602001018190525085600082604051602001610b0893929190611e2b565b604051602081830303815290604052915050949350505050565b600080610b2e84611115565b6065546040517ffa31de0100000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff169063fa31de0190610b8990879085908890600401611ef6565b6020604051808303816000875af1158015610ba8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057a9190611f1b565b6000610bd88383611180565b9392505050565b6000610bd8838361118c565b600081610bf78461032d565b149392505050565b6000610c0b8383611216565b90506000610c198484611250565b90506000826001811115610c2f57610c2f611dc1565b03610c99576000610c408585611268565b90506000610c4d826112a0565b9050828863ffffffff167fb689f7016112eaacc7edebd6ea5eb700790a103e79c39ce0118e075de87d797660405160405180910390a3610c918861031f858461134b565b50505061051a565b6001826001811115610cad57610cad611dc1565b03610d1b57806000610cbf868661137a565b9050610ccb82826113b2565b60405173ffffffffffffffffffffffffffffffffffffffff83169063ffffffff8a16907fc4416e2fcdf8514178829e5ead195eb13f3241ea71c0e38f998868fe81e4226990600090a3505061051a565b61051a611f34565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60608360008484604051602001610db4949392919061204d565b60405160208183030381529060405290509392505050565b610de2609863ffffffff8085169084906113ef16565b8163ffffffff167f97fd51fef1f80c854cbd0150c248e8b2ac4ecdc97cc05e742b5f61c9f4dc645882604051610e1a91815260200190565b60405180910390a25050565b8073ffffffffffffffffffffffffffffffffffffffff81163b610ea5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016104a7565b606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517fb87f5a0bface22cde699143559fb99f990ae54eea236995fc54178af91af859f90600090a25050565b8073ffffffffffffffffffffffffffffffffffffffff81163b610f94576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016104a7565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517f7a61e573722ff8b205c8962b59d37e7d30573f368965597a844a94872204ebd790600090a25050565b600054610100900460ff1661109b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016104a7565b6110a484610f15565b6110ad83610e26565b6110b682610960565b6110bf81610d23565b50505050565b6110f06040805160808101825260009181019182526060808201529081908152602001606081525090565b604051806040016040528061110586866113fa565b8152602001929092525092915050565b60006111208261032d565b90506000801b811415604051806080016040528060438152602001612542604391399061117a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104a79190611d9b565b50919050565b6000610bd8838361144c565b6000818152600283016020526040812054801515806111b057506111b08484611180565b610bd8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579000060448201526064016104a7565b6000828261122660016040612128565b81811061123557611235611c97565b919091013560f81c90506001811115610bd857610bd8611dc1565b600061125f602082848661213b565b610bd891612165565b606060006112768484611216565b600181111561128757611287611dc1565b1461129457611294611f34565b610324828401846121d4565b8051606090600090818167ffffffffffffffff8111156112c2576112c2611868565b6040519080825280602002602001820160405280156112f557816020015b60608152602001906001900390816112e05790505b5090505b8183101561057a5761132385848151811061131657611316611c97565b6020026020010151611464565b81848151811061133557611335611c97565b60200260200101819052508260010192506112f9565b60608260018360405160200161136393929190612393565b604051602081830303815290604052905092915050565b606060016113888484611216565b600181111561139957611399611dc1565b146113a6576113a6611f34565b61032482840184612429565b80516000905b808210156110bf576113e3848484815181106113d6576113d6611c97565b602002602001015161149f565b508160010191506113b8565b6110bf8383836114e3565b6040805180820182526000808252606060208084018290528451808601865292835291820152825180840190935273ffffffffffffffffffffffffffffffffffffffff85168352820183905290610bd8565b60008181526001830160205260408120541515610bd8565b606081602001516114788360000151611500565b6040516020016114899291906124f6565b6040516020818303038152906040529050919050565b6060610bd8838360006040518060400160405280601e81526020017f416464726573733a206c6f772d6c6576656c2063616c6c206661696c65640000815250611513565b6000828152600284016020526040812082905561057a848461162c565b805160609061035c908360200151611638565b6060824710156115a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016104a7565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516115ce9190612525565b60006040518083038185875af1925050503d806000811461160b576040519150601f19603f3d011682016040523d82523d6000602084013e611610565b606091505b50915091506116218783838761165d565b979650505050505050565b6000610bd883836116fd565b6060610bd883836040518060600160405280602581526020016125856025913961174c565b606083156116f35782516000036116ec5773ffffffffffffffffffffffffffffffffffffffff85163b6116ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016104a7565b508161057a565b61057a83836117d1565b60008181526001830160205260408120546117445750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561035c565b50600061035c565b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516117769190612525565b600060405180830381855afa9150503d80600081146117b1576040519150601f19603f3d011682016040523d82523d6000602084013e6117b6565b606091505b50915091506117c78683838761165d565b9695505050505050565b8151156117e15781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104a79190611d9b565b803573ffffffffffffffffffffffffffffffffffffffff8116811461036a57600080fd5b60006020828403121561184b57600080fd5b610bd882611815565b803563ffffffff8116811461036a57600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156118ba576118ba611868565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561190757611907611868565b604052919050565b600082601f83011261192057600080fd5b813567ffffffffffffffff81111561193a5761193a611868565b61196b60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016118c0565b81815284602083860101111561198057600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080608085870312156119b357600080fd5b6119bc85611854565b93506119ca60208601611815565b9250604085013567ffffffffffffffff808211156119e757600080fd5b6119f38883890161190f565b93506060870135915080821115611a0957600080fd5b50611a168782880161190f565b91505092959194509250565b600060208284031215611a3457600080fd5b610bd882611854565b6020808252825182820181905260009190848201906040850190845b81811015611a7b57835163ffffffff1683529284019291840191600101611a59565b50909695505050505050565b60008060008060608587031215611a9d57600080fd5b611aa685611854565b935060208501359250604085013567ffffffffffffffff80821115611aca57600080fd5b818701915087601f830112611ade57600080fd5b813581811115611aed57600080fd5b886020828501011115611aff57600080fd5b95989497505060200194505050565b60008083601f840112611b2057600080fd5b50813567ffffffffffffffff811115611b3857600080fd5b6020830191508360208260051b8501011115611b5357600080fd5b9250929050565b600080600060408486031215611b6f57600080fd5b611b7884611854565b9250602084013567ffffffffffffffff811115611b9457600080fd5b611ba086828701611b0e565b9497909650939450505050565b60008060408385031215611bc057600080fd5b611bc983611854565b946020939093013593505050565b60008060008060408587031215611bed57600080fd5b843567ffffffffffffffff80821115611c0557600080fd5b611c1188838901611b0e565b90965094506020870135915080821115611c2a57600080fd5b50611c3787828801611b0e565b95989497509550505050565b60008060008060808587031215611c5957600080fd5b611c6285611815565b9350611c7060208601611815565b9250611c7e60408601611815565b9150611c8c60608601611815565b905092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611d2657611d26611cc6565b5060010190565b60005b83811015611d48578181015183820152602001611d30565b50506000910152565b60008151808452611d69816020860160208601611d2d565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610bd86020830184611d51565b8082018082111561035c5761035c611cc6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60028110611e27577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b600060608083018684526020611e4381860188611df0565b60408381870152828751808552608094508488019150848160051b890101848a0160005b83811015611ee4578a83037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80018552815180518785528051888601528801518a8501889052611eb88a860182611d51565b91890151858303868b0152919050611ed08183611d51565b968901969450505090860190600101611e67565b50909c9b505050505050505050505050565b63ffffffff841681528260208201526060604082015260006103246060830184611d51565b600060208284031215611f2d57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112611f9757600080fd5b90910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112611fd557600080fd5b830160208101925035905067ffffffffffffffff811115611ff557600080fd5b803603821315611b5357600080fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60006060808301878452602061206581860189611df0565b604085810184905291869052608091828601600588901b870184018960005b8a811015611ee4577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808a84030184526120bd828d611f63565b6120c78182611f63565b8685528035878601526120dc88820182611fa0565b9150878b8701526120f08a87018383612004565b9150506120ff88830183611fa0565b925085820389870152612113828483612004565b96890196955050509186019150600101612084565b8181038181111561035c5761035c611cc6565b6000808585111561214b57600080fd5b8386111561215857600080fd5b5050820193919092039150565b8035602083101561035c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b80356002811061036a57600080fd5b600067ffffffffffffffff8211156121ca576121ca611868565b5060051b60200190565b6000806000606084860312156121e957600080fd5b833592506121f9602085016121a1565b915067ffffffffffffffff6040850135111561221457600080fd5b6040840135840185601f82011261222a57600080fd5b61223c61223782356121b0565b6118c0565b81358082526020808301929160051b84010188101561225a57600080fd5b602083015b6020843560051b8501018110156123855767ffffffffffffffff8135111561228657600080fd5b803584017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0604081838d030112156122bd57600080fd5b6122c5611897565b67ffffffffffffffff602084013511156122de57600080fd5b60208301358301604083828f030112156122f757600080fd5b6122ff611897565b92506020810135835267ffffffffffffffff6040820135111561232157600080fd5b6123348d6020604084013584010161190f565b60208401525081815267ffffffffffffffff6040840135111561235657600080fd5b6123698c6020604086013586010161190f565b602082015280865250505060208301925060208101905061225f565b508093505050509250925092565b60006060820185835260206123aa81850187611df0565b6060604085015281855180845260808601915060808160051b870101935082870160005b8281101561241a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80888703018452612408868351611d51565b955092840192908401906001016123ce565b50939998505050505050505050565b60008060006060848603121561243e57600080fd5b83359250602061244f8186016121a1565b9250604085013567ffffffffffffffff8082111561246c57600080fd5b818701915087601f83011261248057600080fd5b813561248e612237826121b0565b81815260059190911b8301840190848101908a8311156124ad57600080fd5b8585015b838110156124e5578035858111156124c95760008081fd5b6124d78d89838a010161190f565b8452509186019186016124b1565b508096505050505050509250925092565b60008351612508818460208801611d2d565b83519083019061251c818360208801611d2d565b01949350505050565b60008251612537818460208701611d2d565b919091019291505056fe4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e2e2044696420796f7520737065636966792074686520726967687420646f6d61696e2049443f416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564a26469706673582212209c66069227b42b4fca2a0189103b448e8ac3091670fffe8af86dca32ade2822a64736f6c63430008110033";
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,gp8CAAa;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":"AAGA,OAAO,EACL,MAAM,EAGN,eAAe,EACf,YAAY,EACZ,SAAS,EACV,MAAM,QAAQ,CAAC;AAChB,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,KAAK,EACV,wBAAwB,EACxB,iCAAiC,EAClC,MAAM,kDAAkD,CAAC;AAkH1D,KAAK,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,gp8CAAa;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,7 +1,9 @@
1
1
  "use strict";
2
- /* Autogenerated file. Do not edit manually. */
3
2
  Object.defineProperty(exports, "__esModule", { value: true });
4
3
  exports.MockHyperlaneEnvironment__factory = void 0;
4
+ /* Autogenerated file. Do not edit manually. */
5
+ /* tslint:disable */
6
+ /* eslint-disable */
5
7
  const ethers_1 = require("ethers");
6
8
  const _abi = [
7
9
  {
@@ -111,7 +113,7 @@ const _abi = [
111
113
  type: "function",
112
114
  },
113
115
  ];
114
- const _bytecode = "0x608060405234801561001057600080fd5b5060405162005c4438038062005c448339810160408190526100319161079d565b6000805463ffffffff838116640100000000026001600160401b03199092169085161717815560405183906100659061074c565b63ffffffff9091168152602001604051809103906000f08015801561008e573d6000803e3d6000fd5b5090506000826040516100a09061074c565b63ffffffff9091168152602001604051809103906000f0801580156100c9573d6000803e3d6000fd5b506040516302cd9fb760e51b815263ffffffff851660048201526001600160a01b038083166024830152919250908316906359b3f6e090604401600060405180830381600087803b15801561011d57600080fd5b505af1158015610131573d6000803e3d6000fd5b50506040516302cd9fb760e51b815263ffffffff871660048201526001600160a01b038581166024830152841692506359b3f6e09150604401600060405180830381600087803b15801561018457600080fd5b505af1158015610198573d6000803e3d6000fd5b50505050306040516101a99061075a565b6001600160a01b039091168152602001604051809103906000f0801580156101d5573d6000803e3d6000fd5b506000805463ffffffff168152600260205260409081902080546001600160a01b0319166001600160a01b0393909316929092179091555130906102189061075a565b6001600160a01b039091168152602001604051809103906000f080158015610244573d6000803e3d6000fd5b5060008054640100000000900463ffffffff168152600260205260409081902080546001600160a01b0319166001600160a01b0393909316929092179091555161028d90610768565b604051809103906000f0801580156102a9573d6000803e3d6000fd5b506000805463ffffffff168152600360205260409081902080546001600160a01b0319166001600160a01b039390931692909217909155516102ea90610768565b604051809103906000f080158015610306573d6000803e3d6000fd5b5060008054640100000000900463ffffffff90811682526003602052604080832080546001600160a01b0319166001600160a01b039586161790558254909116825290819020549051637bca343d60e11b815290821660048201529083169063f794687a90602401600060405180830381600087803b15801561038857600080fd5b505af115801561039c573d6000803e3d6000fd5b505060008054640100000000900463ffffffff1681526003602052604090819020549051637bca343d60e11b81526001600160a01b039182166004820152908416925063f794687a9150602401600060405180830381600087803b15801561040357600080fd5b505af1158015610417573d6000803e3d6000fd5b50505063ffffffff80861660009081526001602052604080822080546001600160a01b038089166001600160a01b031992831617909255938816835281832080549187169190941617909255905190915061047190610776565b604051809103906000f08015801561048d573d6000803e3d6000fd5b509050600060405161049e90610776565b604051809103906000f0801580156104ba573d6000803e3d6000fd5b506000805463ffffffff16815260026020908152604080832054600390925291829020549151637c643b2f60e11b81526001600160a01b03888116600483015291821660248201529181166044830152306064830181905292935084169063f8c8765e90608401600060405180830381600087803b15801561053b57600080fd5b505af115801561054f573d6000803e3d6000fd5b505060008054640100000000900463ffffffff16815260026020908152604080832054600390925291829020549151637c643b2f60e11b81526001600160a01b0389811660048301529182166024820152918116604483015284811660648301528516925063f8c8765e9150608401600060405180830381600087803b1580156105d857600080fd5b505af11580156105ec573d6000803e3d6000fd5b50505050826001600160a01b031663b49c53a7876106138561074060201b61029e1760201c565b6040516001600160e01b031960e085901b16815263ffffffff9290921660048301526024820152604401600060405180830381600087803b15801561065757600080fd5b505af115801561066b573d6000803e3d6000fd5b50505050816001600160a01b031663b49c53a7886106928661074060201b61029e1760201c565b6040516001600160e01b031960e085901b16815263ffffffff9290921660048301526024820152604401600060405180830381600087803b1580156106d657600080fd5b505af11580156106ea573d6000803e3d6000fd5b5050505063ffffffff96871660009081526004602052604080822080546001600160a01b03199081166001600160a01b0397881617909155979098168152969096208054909516911617909255506107d0915050565b6001600160a01b031690565b61141f8062000afa83390190565b6113888062001f1983390190565b6103a480620032a183390190565b6125ff806200364583390190565b805163ffffffff8116811461079857600080fd5b919050565b600080604083850312156107b057600080fd5b6107b983610784565b91506107c760208401610784565b90509250929050565b61031a80620007e06000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c8063f11a367e11610050578063f11a367e14610142578063f9d2692d14610178578063f9f312ad1461018257600080fd5b80635a007b7e146100775780637a7eada3146100d6578063e9ee46951461010c575b600080fd5b6100ad6100853660046102b7565b60036020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100ad6100e43660046102b7565b60026020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6100ad61011a3660046102b7565b60046020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6100ad6101503660046102b7565b60016020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b61018061018a565b005b61018061021d565b6000805463ffffffff168152600160205260408082205481517f1605c306000000000000000000000000000000000000000000000000000000008152915173ffffffffffffffffffffffffffffffffffffffff90911692631605c306926004808201939182900301818387803b15801561020357600080fd5b505af1158015610217573d6000803e3d6000fd5b50505050565b60008054640100000000900463ffffffff168152600160205260408082205481517f1605c306000000000000000000000000000000000000000000000000000000008152915173ffffffffffffffffffffffffffffffffffffffff90911692631605c306926004808201939182900301818387803b15801561020357600080fd5b73ffffffffffffffffffffffffffffffffffffffff1690565b6000602082840312156102c957600080fd5b813563ffffffff811681146102dd57600080fd5b939250505056fea26469706673582212201e6bffcabcf45a6894e234104e2109777f76976c95f96940bc3967f12f6c3d1b64736f6c6343000811003360a0604052600080546001600160601b031916905534801561002057600080fd5b5060405161141f38038061141f83398101604081905261003f9161004d565b63ffffffff1660805261007a565b60006020828403121561005f57600080fd5b815163ffffffff8116811461007357600080fd5b9392505050565b60805161137c6100a36000396000818161021801528181610a710152610c26015261137c6000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806392d28b3d1161008c578063f794687a11610066578063f794687a146102b0578063fa31de0114610301578063fd10ebe514610314578063ffa1ad741461032457600080fd5b806392d28b3d1461023a578063a3b4919f1461025e578063d12164e41461029457600080fd5b80636b791ca1116100c85780636b791ca11461017e5780636e5f516e146101915780638209d312146101e65780638d3638f41461021357600080fd5b80631605c306146100ef578063522ae002146100f957806359b3f6e014610115575b600080fd5b6100f761033e565b005b61010261080081565b6040519081526020015b60405180910390f35b6100f7610123366004610cd5565b63ffffffff91909116600090815260016020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055565b6100f761018c366004610d55565b610660565b6000546101c1906c01000000000000000000000000900473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161010c565b6000546101fe90640100000000900463ffffffff1681565b60405163ffffffff909116815260200161010c565b6101fe7f000000000000000000000000000000000000000000000000000000000000000081565b61024d610248366004610ddf565b610833565b60405161010c959493929190610e66565b6101c161026c366004610ebe565b60016020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6000546101fe9068010000000000000000900463ffffffff1681565b6100f76102be366004610ee0565b6000805473ffffffffffffffffffffffffffffffffffffffff9092166c01000000000000000000000000026bffffffffffffffffffffffff909216919091179055565b61010261030f366004610efd565b61091c565b6000546101fe9063ffffffff1681565b61032c600081565b60405160ff909116815260200161010c565b6000805463ffffffff680100000000000000009182900481168352600260208181526040808620815160a0810183528154808716825264010000000081049096169381019390935273ffffffffffffffffffffffffffffffffffffffff9590940485169082015260018301549093166060840152810180546080840191906103c590610f57565b80601f01602080910402602001604051908101604052809291908181526020018280546103f190610f57565b801561043e5780601f106104135761010080835404028352916020019161043e565b820191906000526020600020905b81548152906001019060200180831161042157829003601f168201915b505050919092525050506060810151909150600061045b82610b17565b905073ffffffffffffffffffffffffffffffffffffffff811615610568578073ffffffffffffffffffffffffffffffffffffffff1663f7e83aee61049e85610bf5565b6040518263ffffffff1660e01b81526004016104ba9190610faa565b6020604051808303816000875af11580156104d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104fd9190610fcb565b610568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f49534d20766572696679206661696c656400000000000000000000000000000060448201526064015b60405180910390fd5b826060015173ffffffffffffffffffffffffffffffffffffffff166356d5d47584602001516105c4866040015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1690565b86608001516040518463ffffffff1660e01b81526004016105e793929190610fed565b600060405180830381600087803b15801561060157600080fd5b505af1158015610615573d6000803e3d6000fd5b50506000805468010000000000000000900463ffffffff1692509050600861063c8361101b565b91906101000a81548163ffffffff021916908363ffffffff16021790555050505050565b6040518060a001604052808763ffffffff1681526020018663ffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff16815260200183838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525093909452505080546401000000009081900463ffffffff9081168352600260208181526040948590208751815492890151968901519085167fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000009093169290921795909316909302939093177fffffffff0000000000000000000000000000000000000000ffffffffffffffff166801000000000000000073ffffffffffffffffffffffffffffffffffffffff9384160217815560608501516001820180547fffffffffffffffffffffffff00000000000000000000000000000000000000001691909316179091556080840151909250908201906107eb90826110e3565b505060008054640100000000900463ffffffff169150600461080c8361101b565b91906101000a81548163ffffffff021916908363ffffffff16021790555050505050505050565b600260208190526000918252604090912080546001820154928201805463ffffffff808416956401000000008504909116946801000000000000000090940473ffffffffffffffffffffffffffffffffffffffff90811694911692909161089990610f57565b80601f01602080910402602001604051908101604052809291908181526020018280546108c590610f57565b80156109125780601f106108e757610100808354040283529160200191610912565b820191906000526020600020905b8154815290600101906020018083116108f557829003601f168201915b5050505050905085565b600061080082111561098a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6d736720746f6f206c6f6e670000000000000000000000000000000000000000604482015260640161055f565b63ffffffff851660009081526001602052604090205473ffffffffffffffffffffffffffffffffffffffff1680610a1d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d697373696e672072656d6f7465206d61696c626f7800000000000000000000604482015260640161055f565b6000546040517f6b791ca100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831691636b791ca191610aa19163ffffffff16907f00000000000000000000000000000000000000000000000000000000000000009033908b908b908b906004016111fd565b600060405180830381600087803b158015610abb57600080fd5b505af1158015610acf573d6000803e3d6000fd5b50506000805463ffffffff169250905080610ae98361101b565b91906101000a81548163ffffffff021916908363ffffffff160217905550506000801b915050949350505050565b60008173ffffffffffffffffffffffffffffffffffffffff1663de523cf36040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610b9e575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252610b9b9181019061128a565b60015b15610bc75773ffffffffffffffffffffffffffffffffffffffff811615610bc55792915050565b505b50506000546c01000000000000000000000000900473ffffffffffffffffffffffffffffffffffffffff1690565b6060600082600001518360200151610c24856040015173ffffffffffffffffffffffffffffffffffffffff1690565b7f0000000000000000000000000000000000000000000000000000000000000000610c66876060015173ffffffffffffffffffffffffffffffffffffffff1690565b8760800151604051602001610c8197969594939291906112a7565b6040516020818303038152906040529050919050565b803563ffffffff81168114610cab57600080fd5b919050565b73ffffffffffffffffffffffffffffffffffffffff81168114610cd257600080fd5b50565b60008060408385031215610ce857600080fd5b610cf183610c97565b91506020830135610d0181610cb0565b809150509250929050565b60008083601f840112610d1e57600080fd5b50813567ffffffffffffffff811115610d3657600080fd5b602083019150836020828501011115610d4e57600080fd5b9250929050565b60008060008060008060a08789031215610d6e57600080fd5b610d7787610c97565b9550610d8560208801610c97565b94506040870135610d9581610cb0565b93506060870135610da581610cb0565b9250608087013567ffffffffffffffff811115610dc157600080fd5b610dcd89828a01610d0c565b979a9699509497509295939492505050565b600060208284031215610df157600080fd5b5035919050565b60005b83811015610e13578181015183820152602001610dfb565b50506000910152565b60008151808452610e34816020860160208601610df8565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b63ffffffff86811682528516602082015273ffffffffffffffffffffffffffffffffffffffff84811660408301528316606082015260a060808201819052600090610eb390830184610e1c565b979650505050505050565b600060208284031215610ed057600080fd5b610ed982610c97565b9392505050565b600060208284031215610ef257600080fd5b8135610ed981610cb0565b60008060008060608587031215610f1357600080fd5b610f1c85610c97565b935060208501359250604085013567ffffffffffffffff811115610f3f57600080fd5b610f4b87828801610d0c565b95989497509550505050565b600181811c90821680610f6b57607f821691505b602082108103610fa4577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b6040815260006040820152606060208201526000610ed96060830184610e1c565b600060208284031215610fdd57600080fd5b81518015158114610ed957600080fd5b63ffffffff841681528260208201526060604082015260006110126060830184610e1c565b95945050505050565b600063ffffffff80831681810361105b577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6001019392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f8211156110de57600081815260208120601f850160051c810160208610156110bb5750805b601f850160051c820191505b818110156110da578281556001016110c7565b5050505b505050565b815167ffffffffffffffff8111156110fd576110fd611065565b6111118161110b8454610f57565b84611094565b602080601f831160018114611164576000841561112e5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556110da565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156111b157888601518255948401946001909101908401611192565b50858210156111ed57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b63ffffffff87811682528616602082015273ffffffffffffffffffffffffffffffffffffffff85811660408301528416606082015260a06080820181905281018290526000828460c0840137600060c0848401015260c07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501168301019050979650505050505050565b60006020828403121561129c57600080fd5b8151610ed981610cb0565b7fff000000000000000000000000000000000000000000000000000000000000008860f81b16815260007fffffffff00000000000000000000000000000000000000000000000000000000808960e01b166001840152808860e01b166005840152866009840152808660e01b1660298401525083602d830152825161133381604d850160208701610df8565b91909101604d019897505050505050505056fea2646970667358221220978c1f82f22d39cb9c6cedb697d843f828cc347e4a3555d75ad216a15f3a682064736f6c6343000811003360806040523480156200001157600080fd5b506040516200138838038062001388833981016040819052620000349162000315565b62000040338262000047565b5062000347565b600054610100900460ff1615808015620000685750600054600160ff909116105b8062000098575062000085306200019160201b620009ec1760201c565b15801562000098575060005460ff166001145b620001015760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801562000125576000805461ff0019166101001790555b6200012f620001a0565b6200013a8362000208565b62000145826200025a565b80156200018c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b6001600160a01b03163b151590565b600054610100900460ff16620001fc5760405162461bcd60e51b815260206004820152602b60248201526000805160206200136883398151915260448201526a6e697469616c697a696e6760a81b6064820152608401620000f8565b62000206620002ae565b565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b606680546001600160a01b0319166001600160a01b0383169081179091556040519081527f04d55a8be181fb8d75b76f2d48aa0b2ee40f47e53d6e61763eeeec46feea8a249060200160405180910390a150565b600054610100900460ff166200030a5760405162461bcd60e51b815260206004820152602b60248201526000805160206200136883398151915260448201526a6e697469616c697a696e6760a81b6064820152608401620000f8565b620002063362000208565b6000602082840312156200032857600080fd5b81516001600160a01b03811681146200034057600080fd5b9392505050565b61101180620003576000396000f3fe6080604052600436106100d25760003560e01c80634e71d92d1161007f5780638da5cb5b116100595780638da5cb5b14610259578063a692979314610284578063f2fde38b146102b2578063fe173b97146102d257600080fd5b80634e71d92d146101e657806360fcef7c146101fb578063715018a61461024457600080fd5b80632f202650116100b05780632f2026501461017957806338af3eed14610199578063485cc955146101c657600080fd5b806311bf2c18146100d75780631c31f710146100ec5780631d16c8c81461010c575b600080fd5b6100ea6100e5366004610d83565b6102e7565b005b3480156100f857600080fd5b506100ea610107366004610dc9565b6104d2565b34801561011857600080fd5b5061014f610127366004610de4565b60656020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561018557600080fd5b506100ea610194366004610dff565b6104e6565b3480156101a557600080fd5b5060665461014f9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156101d257600080fd5b506100ea6101e1366004610e74565b61056c565b3480156101f257600080fd5b506100ea610712565b34801561020757600080fd5b5061021b610216366004610de4565b6107dc565b604080516fffffffffffffffffffffffffffffffff938416815292909116602083015201610170565b34801561025057600080fd5b506100ea61090e565b34801561026557600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff1661014f565b34801561029057600080fd5b506102a461029f366004610ea7565b610922565b604051908152602001610170565b3480156102be57600080fd5b506100ea6102cd366004610dc9565b610938565b3480156102de57600080fd5b506102a4600a81565b60006102f38484610922565b90508034101561038a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f696e73756666696369656e7420696e746572636861696e20676173207061796d60448201527f656e74000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b60006103968234610f00565b9050801561048f5760008373ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d80600081146103f8576040519150601f19603f3d011682016040523d82523d6000602084013e6103fd565b606091505b505090508061048d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f496e746572636861696e20676173207061796d656e7420726566756e6420666160448201527f696c6564000000000000000000000000000000000000000000000000000000006064820152608401610381565b505b604080518581526020810184905287917ff715e66d2cd2a0179069dcda2a41a4da36a30e1aad12187fbb7c5d100afd621c910160405180910390a2505050505050565b6104da610a08565b6104e381610a89565b50565b6104ee610a08565b8060005b818110156105665761055484848381811061050f5761050f610f13565b6105259260206040909202019081019150610de4565b85858481811061053757610537610f13565b905060400201602001602081019061054f9190610dc9565b610b02565b8061055e81610f42565b9150506104f2565b50505050565b600054610100900460ff161580801561058c5750600054600160ff909116105b806105a65750303b1580156105a6575060005460ff166001145b610632576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610381565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561069057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610698610b90565b6106a183610c2f565b6106aa82610a89565b801561070d57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60665460405160009173ffffffffffffffffffffffffffffffffffffffff169047908381818185875af1925050503d806000811461076c576040519150601f19603f3d011682016040523d82523d6000602084013e610771565b606091505b50509050806104e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f217472616e7366657200000000000000000000000000000000000000000000006044820152606401610381565b63ffffffff8116600090815260656020526040812054819073ffffffffffffffffffffffffffffffffffffffff1680610871576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21676173206f7261636c650000000000000000000000000000000000000000006044820152606401610381565b6040517f60fcef7c00000000000000000000000000000000000000000000000000000000815263ffffffff8516600482015273ffffffffffffffffffffffffffffffffffffffff8216906360fcef7c906024016040805180830381865afa1580156108e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109049190610f9a565b9250925050915091565b610916610a08565b6109206000610c2f565b565b600061092f82600a610fc4565b90505b92915050565b610940610a08565b73ffffffffffffffffffffffffffffffffffffffff81166109e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610381565b6104e381610c2f565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b60335473ffffffffffffffffffffffffffffffffffffffff163314610920576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610381565b606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527f04d55a8be181fb8d75b76f2d48aa0b2ee40f47e53d6e61763eeeec46feea8a249060200160405180910390a150565b63ffffffff821660008181526065602090815260409182902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff861690811790915591519182527f38b842e116ff320f6a79ba4cf434eee927fa156b226c65c90d62989de589b4e7910160405180910390a25050565b600054610100900460ff16610c27576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610381565b610920610ca6565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16610d3d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610381565b61092033610c2f565b803563ffffffff81168114610d5a57600080fd5b919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610d5a57600080fd5b60008060008060808587031215610d9957600080fd5b84359350610da960208601610d46565b925060408501359150610dbe60608601610d5f565b905092959194509250565b600060208284031215610ddb57600080fd5b61092f82610d5f565b600060208284031215610df657600080fd5b61092f82610d46565b60008060208385031215610e1257600080fd5b823567ffffffffffffffff80821115610e2a57600080fd5b818501915085601f830112610e3e57600080fd5b813581811115610e4d57600080fd5b8660208260061b8501011115610e6257600080fd5b60209290920196919550909350505050565b60008060408385031215610e8757600080fd5b610e9083610d5f565b9150610e9e60208401610d5f565b90509250929050565b60008060408385031215610eba57600080fd5b610ec383610d46565b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181038181111561093257610932610ed1565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610f7357610f73610ed1565b5060010190565b80516fffffffffffffffffffffffffffffffff81168114610d5a57600080fd5b60008060408385031215610fad57600080fd5b610fb683610f7a565b9150610e9e60208401610f7a565b808202811582820484141761093257610932610ed156fea2646970667358221220c0c7e5463aed39a02073f1ebf4a03bb5c9fd30d0b97285dfad72394239fdc66c64736f6c63430008110033496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069608060405234801561001057600080fd5b506000805460ff191660011790556103778061002d6000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c80634fc3aa7c116100505780634fc3aa7c146100af5780636465e69f146100f0578063f7e83aee1461010a57600080fd5b80632852b71c1461006c5780632e0ed2341461008e575b600080fd5b6000546100799060ff1681565b60405190151581526020015b60405180910390f35b6100a161009c3660046101d7565b610126565b604051610085929190610219565b6100ee6100bd36600461027d565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b005b6100f8600481565b60405160ff9091168152602001610085565b6100796101183660046102a6565b60005460ff16949350505050565b60408051600180825281830190925260609160009182916020808301908036833701905050905060008160008151811061016257610162610312565b73ffffffffffffffffffffffffffffffffffffffff909216602092830291909101909101529150600190505b9250929050565b60008083601f8401126101a757600080fd5b50813567ffffffffffffffff8111156101bf57600080fd5b60208301915083602082850101111561018e57600080fd5b600080602083850312156101ea57600080fd5b823567ffffffffffffffff81111561020157600080fd5b61020d85828601610195565b90969095509350505050565b604080825283519082018190526000906020906060840190828701845b8281101561026857815173ffffffffffffffffffffffffffffffffffffffff1684529284019290840190600101610236565b50505060ff9490941692019190915250919050565b60006020828403121561028f57600080fd5b8135801515811461029f57600080fd5b9392505050565b600080600080604085870312156102bc57600080fd5b843567ffffffffffffffff808211156102d457600080fd5b6102e088838901610195565b909650945060208701359150808211156102f957600080fd5b5061030687828801610195565b95989497509550505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea26469706673582212200c9837d66c644e2248f06a18f1a5e14051323dd9a0527ecbb09e815caab2cc2164736f6c63430008110033608060405234801561001057600080fd5b506125df806100206000396000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c80638da5cb5b116100b2578063e9198bf911610081578063f2fde38b11610066578063f2fde38b1461028d578063f3c61d6b146102a0578063f8c8765e146102b357600080fd5b8063e9198bf914610267578063f1bd6f0a1461027a57600080fd5b80638da5cb5b146101f6578063b49c53a714610214578063d5438eae14610227578063de523cf31461024757600080fd5b8063440df4f4116100ee578063440df4f4146101b357806356d5d475146101c8578063715018a6146101db5780638cc02cab146101e357600080fd5b80630e72cc06146101205780632222b452146101355780632ead72f61461015b57806339bb4ad91461016e575b600080fd5b61013361012e366004611839565b6102c6565b005b61014861014336600461199d565b6102da565b6040519081526020015b60405180910390f35b610148610169366004611a22565b61032d565b60665461018e9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610152565b6101bb61036f565b6040516101529190611a3d565b6101336101d6366004611a87565b61042a565b610133610522565b6101486101f1366004611b5a565b610536565b60335473ffffffffffffffffffffffffffffffffffffffff1661018e565b610133610222366004611bad565b610582565b60655461018e9073ffffffffffffffffffffffffffffffffffffffff1681565b60675461018e9073ffffffffffffffffffffffffffffffffffffffff1681565b610133610275366004611bd7565b610598565b610133610288366004611839565b61066f565b61013361029b366004611839565b610680565b6101336102ae366004611839565b610734565b6101336102c1366004611c43565b610745565b6102ce6108df565b6102d781610960565b50565b604051600090339063ffffffff8716907f11c97c784c298562a796345417aa40e1ce110e6b100f41b801ab23414f72d7e5908490a36103248561031f33878787610a6e565b610b22565b95945050505050565b6000610343609863ffffffff80851690610bcc16565b156103625761035c609863ffffffff80851690610bdf16565b92915050565b506000919050565b919050565b609880546060919060008167ffffffffffffffff81111561039257610392611868565b6040519080825280602002602001820160405280156103bb578160200160208202803683370190505b50905060005b82811015610422578381815481106103db576103db611c97565b906000526020600020015460001c8282815181106103fb576103fb611c97565b63ffffffff909216602092830291909101909101528061041a81611cf5565b9150506103c1565b509392505050565b60655473ffffffffffffffffffffffffffffffffffffffff1633146104b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f216d61696c626f7800000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b83836104bc8282610beb565b604051806080016040528060438152602001612542604391399061050d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104a79190611d9b565b5061051a86868686610bff565b505050505050565b61052a6108df565b6105346000610d23565b565b604051600090339063ffffffff8616907f11c97c784c298562a796345417aa40e1ce110e6b100f41b801ab23414f72d7e5908490a361057a8461031f338686610d9a565b949350505050565b61058a6108df565b6105948282610dcc565b5050565b6105a06108df565b828114610609576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e6774680000000000000000000000000000000000000000000000000060448201526064016104a7565b8260005b8181101561051a5761065d86868381811061062a5761062a611c97565b905060200201602081019061063f9190611a22565b85858481811061065157610651611c97565b90506020020135610dcc565b610668600182611dae565b905061060d565b6106776108df565b6102d781610e26565b6106886108df565b73ffffffffffffffffffffffffffffffffffffffff811661072b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016104a7565b6102d781610d23565b61073c6108df565b6102d781610f15565b600054610100900460ff16158080156107655750600054600160ff909116105b8061077f5750303b15801561077f575060005460ff166001145b61080b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016104a7565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561086957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61087585858585611004565b80156108d857600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60335473ffffffffffffffffffffffffffffffffffffffff163314610534576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104a7565b73ffffffffffffffffffffffffffffffffffffffff81161580610999575073ffffffffffffffffffffffffffffffffffffffff81163b15155b6109ff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016104a7565b606780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517ffec811ed4e60aebdaf7a79cad8a97196bf56e35362f039705598226d30c9d24890600090a250565b60408051600180825281830190925260609160009190816020015b610ab46040805160808101825260009181019182526060808201529081908152602001606081525090565b815260200190600190039081610a89579050509050610ad48585856110c5565b81600081518110610ae757610ae7611c97565b602002602001018190525085600082604051602001610b0893929190611e2b565b604051602081830303815290604052915050949350505050565b600080610b2e84611115565b6065546040517ffa31de0100000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff169063fa31de0190610b8990879085908890600401611ef6565b6020604051808303816000875af1158015610ba8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057a9190611f1b565b6000610bd88383611180565b9392505050565b6000610bd8838361118c565b600081610bf78461032d565b149392505050565b6000610c0b8383611216565b90506000610c198484611250565b90506000826001811115610c2f57610c2f611dc1565b03610c99576000610c408585611268565b90506000610c4d826112a0565b9050828863ffffffff167fb689f7016112eaacc7edebd6ea5eb700790a103e79c39ce0118e075de87d797660405160405180910390a3610c918861031f858461134b565b50505061051a565b6001826001811115610cad57610cad611dc1565b03610d1b57806000610cbf868661137a565b9050610ccb82826113b2565b60405173ffffffffffffffffffffffffffffffffffffffff83169063ffffffff8a16907fc4416e2fcdf8514178829e5ead195eb13f3241ea71c0e38f998868fe81e4226990600090a3505061051a565b61051a611f34565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60608360008484604051602001610db4949392919061204d565b60405160208183030381529060405290509392505050565b610de2609863ffffffff8085169084906113ef16565b8163ffffffff167f97fd51fef1f80c854cbd0150c248e8b2ac4ecdc97cc05e742b5f61c9f4dc645882604051610e1a91815260200190565b60405180910390a25050565b8073ffffffffffffffffffffffffffffffffffffffff81163b610ea5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016104a7565b606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517fb87f5a0bface22cde699143559fb99f990ae54eea236995fc54178af91af859f90600090a25050565b8073ffffffffffffffffffffffffffffffffffffffff81163b610f94576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016104a7565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517f7a61e573722ff8b205c8962b59d37e7d30573f368965597a844a94872204ebd790600090a25050565b600054610100900460ff1661109b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016104a7565b6110a484610f15565b6110ad83610e26565b6110b682610960565b6110bf81610d23565b50505050565b6110f06040805160808101825260009181019182526060808201529081908152602001606081525090565b604051806040016040528061110586866113fa565b8152602001929092525092915050565b60006111208261032d565b90506000801b811415604051806080016040528060438152602001612542604391399061117a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104a79190611d9b565b50919050565b6000610bd8838361144c565b6000818152600283016020526040812054801515806111b057506111b08484611180565b610bd8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579000060448201526064016104a7565b6000828261122660016040612128565b81811061123557611235611c97565b919091013560f81c90506001811115610bd857610bd8611dc1565b600061125f602082848661213b565b610bd891612165565b606060006112768484611216565b600181111561128757611287611dc1565b1461129457611294611f34565b610324828401846121d4565b8051606090600090818167ffffffffffffffff8111156112c2576112c2611868565b6040519080825280602002602001820160405280156112f557816020015b60608152602001906001900390816112e05790505b5090505b8183101561057a5761132385848151811061131657611316611c97565b6020026020010151611464565b81848151811061133557611335611c97565b60200260200101819052508260010192506112f9565b60608260018360405160200161136393929190612393565b604051602081830303815290604052905092915050565b606060016113888484611216565b600181111561139957611399611dc1565b146113a6576113a6611f34565b61032482840184612429565b80516000905b808210156110bf576113e3848484815181106113d6576113d6611c97565b602002602001015161149f565b508160010191506113b8565b6110bf8383836114e3565b6040805180820182526000808252606060208084018290528451808601865292835291820152825180840190935273ffffffffffffffffffffffffffffffffffffffff85168352820183905290610bd8565b60008181526001830160205260408120541515610bd8565b606081602001516114788360000151611500565b6040516020016114899291906124f6565b6040516020818303038152906040529050919050565b6060610bd8838360006040518060400160405280601e81526020017f416464726573733a206c6f772d6c6576656c2063616c6c206661696c65640000815250611513565b6000828152600284016020526040812082905561057a848461162c565b805160609061035c908360200151611638565b6060824710156115a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016104a7565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516115ce9190612525565b60006040518083038185875af1925050503d806000811461160b576040519150601f19603f3d011682016040523d82523d6000602084013e611610565b606091505b50915091506116218783838761165d565b979650505050505050565b6000610bd883836116fd565b6060610bd883836040518060600160405280602581526020016125856025913961174c565b606083156116f35782516000036116ec5773ffffffffffffffffffffffffffffffffffffffff85163b6116ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016104a7565b508161057a565b61057a83836117d1565b60008181526001830160205260408120546117445750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561035c565b50600061035c565b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516117769190612525565b600060405180830381855afa9150503d80600081146117b1576040519150601f19603f3d011682016040523d82523d6000602084013e6117b6565b606091505b50915091506117c78683838761165d565b9695505050505050565b8151156117e15781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104a79190611d9b565b803573ffffffffffffffffffffffffffffffffffffffff8116811461036a57600080fd5b60006020828403121561184b57600080fd5b610bd882611815565b803563ffffffff8116811461036a57600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156118ba576118ba611868565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561190757611907611868565b604052919050565b600082601f83011261192057600080fd5b813567ffffffffffffffff81111561193a5761193a611868565b61196b60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016118c0565b81815284602083860101111561198057600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080608085870312156119b357600080fd5b6119bc85611854565b93506119ca60208601611815565b9250604085013567ffffffffffffffff808211156119e757600080fd5b6119f38883890161190f565b93506060870135915080821115611a0957600080fd5b50611a168782880161190f565b91505092959194509250565b600060208284031215611a3457600080fd5b610bd882611854565b6020808252825182820181905260009190848201906040850190845b81811015611a7b57835163ffffffff1683529284019291840191600101611a59565b50909695505050505050565b60008060008060608587031215611a9d57600080fd5b611aa685611854565b935060208501359250604085013567ffffffffffffffff80821115611aca57600080fd5b818701915087601f830112611ade57600080fd5b813581811115611aed57600080fd5b886020828501011115611aff57600080fd5b95989497505060200194505050565b60008083601f840112611b2057600080fd5b50813567ffffffffffffffff811115611b3857600080fd5b6020830191508360208260051b8501011115611b5357600080fd5b9250929050565b600080600060408486031215611b6f57600080fd5b611b7884611854565b9250602084013567ffffffffffffffff811115611b9457600080fd5b611ba086828701611b0e565b9497909650939450505050565b60008060408385031215611bc057600080fd5b611bc983611854565b946020939093013593505050565b60008060008060408587031215611bed57600080fd5b843567ffffffffffffffff80821115611c0557600080fd5b611c1188838901611b0e565b90965094506020870135915080821115611c2a57600080fd5b50611c3787828801611b0e565b95989497509550505050565b60008060008060808587031215611c5957600080fd5b611c6285611815565b9350611c7060208601611815565b9250611c7e60408601611815565b9150611c8c60608601611815565b905092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611d2657611d26611cc6565b5060010190565b60005b83811015611d48578181015183820152602001611d30565b50506000910152565b60008151808452611d69816020860160208601611d2d565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610bd86020830184611d51565b8082018082111561035c5761035c611cc6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60028110611e27577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b600060608083018684526020611e4381860188611df0565b60408381870152828751808552608094508488019150848160051b890101848a0160005b83811015611ee4578a83037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80018552815180518785528051888601528801518a8501889052611eb88a860182611d51565b91890151858303868b0152919050611ed08183611d51565b968901969450505090860190600101611e67565b50909c9b505050505050505050505050565b63ffffffff841681528260208201526060604082015260006103246060830184611d51565b600060208284031215611f2d57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112611f9757600080fd5b90910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112611fd557600080fd5b830160208101925035905067ffffffffffffffff811115611ff557600080fd5b803603821315611b5357600080fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60006060808301878452602061206581860189611df0565b604085810184905291869052608091828601600588901b870184018960005b8a811015611ee4577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808a84030184526120bd828d611f63565b6120c78182611f63565b8685528035878601526120dc88820182611fa0565b9150878b8701526120f08a87018383612004565b9150506120ff88830183611fa0565b925085820389870152612113828483612004565b96890196955050509186019150600101612084565b8181038181111561035c5761035c611cc6565b6000808585111561214b57600080fd5b8386111561215857600080fd5b5050820193919092039150565b8035602083101561035c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b80356002811061036a57600080fd5b600067ffffffffffffffff8211156121ca576121ca611868565b5060051b60200190565b6000806000606084860312156121e957600080fd5b833592506121f9602085016121a1565b915067ffffffffffffffff6040850135111561221457600080fd5b6040840135840185601f82011261222a57600080fd5b61223c61223782356121b0565b6118c0565b81358082526020808301929160051b84010188101561225a57600080fd5b602083015b6020843560051b8501018110156123855767ffffffffffffffff8135111561228657600080fd5b803584017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0604081838d030112156122bd57600080fd5b6122c5611897565b67ffffffffffffffff602084013511156122de57600080fd5b60208301358301604083828f030112156122f757600080fd5b6122ff611897565b92506020810135835267ffffffffffffffff6040820135111561232157600080fd5b6123348d6020604084013584010161190f565b60208401525081815267ffffffffffffffff6040840135111561235657600080fd5b6123698c6020604086013586010161190f565b602082015280865250505060208301925060208101905061225f565b508093505050509250925092565b60006060820185835260206123aa81850187611df0565b6060604085015281855180845260808601915060808160051b870101935082870160005b8281101561241a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80888703018452612408868351611d51565b955092840192908401906001016123ce565b50939998505050505050505050565b60008060006060848603121561243e57600080fd5b83359250602061244f8186016121a1565b9250604085013567ffffffffffffffff8082111561246c57600080fd5b818701915087601f83011261248057600080fd5b813561248e612237826121b0565b81815260059190911b8301840190848101908a8311156124ad57600080fd5b8585015b838110156124e5578035858111156124c95760008081fd5b6124d78d89838a010161190f565b8452509186019186016124b1565b508096505050505050509250925092565b60008351612508818460208801611d2d565b83519083019061251c818360208801611d2d565b01949350505050565b60008251612537818460208701611d2d565b919091019291505056fe4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e2e2044696420796f7520737065636966792074686520726967687420646f6d61696e2049443f416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564a264697066735822122013ba5a6a44dcbe7476be0e0f3e61d399a94c2717da0b34f4e4b2d54975b9ebf864736f6c63430008110033";
116
+ const _bytecode = "0x608060405234801561001057600080fd5b5060405162005c4438038062005c448339810160408190526100319161079d565b6000805463ffffffff838116640100000000026001600160401b03199092169085161717815560405183906100659061074c565b63ffffffff9091168152602001604051809103906000f08015801561008e573d6000803e3d6000fd5b5090506000826040516100a09061074c565b63ffffffff9091168152602001604051809103906000f0801580156100c9573d6000803e3d6000fd5b506040516302cd9fb760e51b815263ffffffff851660048201526001600160a01b038083166024830152919250908316906359b3f6e090604401600060405180830381600087803b15801561011d57600080fd5b505af1158015610131573d6000803e3d6000fd5b50506040516302cd9fb760e51b815263ffffffff871660048201526001600160a01b038581166024830152841692506359b3f6e09150604401600060405180830381600087803b15801561018457600080fd5b505af1158015610198573d6000803e3d6000fd5b50505050306040516101a99061075a565b6001600160a01b039091168152602001604051809103906000f0801580156101d5573d6000803e3d6000fd5b506000805463ffffffff168152600260205260409081902080546001600160a01b0319166001600160a01b0393909316929092179091555130906102189061075a565b6001600160a01b039091168152602001604051809103906000f080158015610244573d6000803e3d6000fd5b5060008054640100000000900463ffffffff168152600260205260409081902080546001600160a01b0319166001600160a01b0393909316929092179091555161028d90610768565b604051809103906000f0801580156102a9573d6000803e3d6000fd5b506000805463ffffffff168152600360205260409081902080546001600160a01b0319166001600160a01b039390931692909217909155516102ea90610768565b604051809103906000f080158015610306573d6000803e3d6000fd5b5060008054640100000000900463ffffffff90811682526003602052604080832080546001600160a01b0319166001600160a01b039586161790558254909116825290819020549051637bca343d60e11b815290821660048201529083169063f794687a90602401600060405180830381600087803b15801561038857600080fd5b505af115801561039c573d6000803e3d6000fd5b505060008054640100000000900463ffffffff1681526003602052604090819020549051637bca343d60e11b81526001600160a01b039182166004820152908416925063f794687a9150602401600060405180830381600087803b15801561040357600080fd5b505af1158015610417573d6000803e3d6000fd5b50505063ffffffff80861660009081526001602052604080822080546001600160a01b038089166001600160a01b031992831617909255938816835281832080549187169190941617909255905190915061047190610776565b604051809103906000f08015801561048d573d6000803e3d6000fd5b509050600060405161049e90610776565b604051809103906000f0801580156104ba573d6000803e3d6000fd5b506000805463ffffffff16815260026020908152604080832054600390925291829020549151637c643b2f60e11b81526001600160a01b03888116600483015291821660248201529181166044830152306064830181905292935084169063f8c8765e90608401600060405180830381600087803b15801561053b57600080fd5b505af115801561054f573d6000803e3d6000fd5b505060008054640100000000900463ffffffff16815260026020908152604080832054600390925291829020549151637c643b2f60e11b81526001600160a01b0389811660048301529182166024820152918116604483015284811660648301528516925063f8c8765e9150608401600060405180830381600087803b1580156105d857600080fd5b505af11580156105ec573d6000803e3d6000fd5b50505050826001600160a01b031663b49c53a7876106138561074060201b61029e1760201c565b6040516001600160e01b031960e085901b16815263ffffffff9290921660048301526024820152604401600060405180830381600087803b15801561065757600080fd5b505af115801561066b573d6000803e3d6000fd5b50505050816001600160a01b031663b49c53a7886106928661074060201b61029e1760201c565b6040516001600160e01b031960e085901b16815263ffffffff9290921660048301526024820152604401600060405180830381600087803b1580156106d657600080fd5b505af11580156106ea573d6000803e3d6000fd5b5050505063ffffffff96871660009081526004602052604080822080546001600160a01b03199081166001600160a01b0397881617909155979098168152969096208054909516911617909255506107d0915050565b6001600160a01b031690565b61141f8062000afa83390190565b6113888062001f1983390190565b6103a480620032a183390190565b6125ff806200364583390190565b805163ffffffff8116811461079857600080fd5b919050565b600080604083850312156107b057600080fd5b6107b983610784565b91506107c760208401610784565b90509250929050565b61031a80620007e06000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c8063f11a367e11610050578063f11a367e14610142578063f9d2692d14610178578063f9f312ad1461018257600080fd5b80635a007b7e146100775780637a7eada3146100d6578063e9ee46951461010c575b600080fd5b6100ad6100853660046102b7565b60036020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100ad6100e43660046102b7565b60026020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6100ad61011a3660046102b7565b60046020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6100ad6101503660046102b7565b60016020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b61018061018a565b005b61018061021d565b6000805463ffffffff168152600160205260408082205481517f1605c306000000000000000000000000000000000000000000000000000000008152915173ffffffffffffffffffffffffffffffffffffffff90911692631605c306926004808201939182900301818387803b15801561020357600080fd5b505af1158015610217573d6000803e3d6000fd5b50505050565b60008054640100000000900463ffffffff168152600160205260408082205481517f1605c306000000000000000000000000000000000000000000000000000000008152915173ffffffffffffffffffffffffffffffffffffffff90911692631605c306926004808201939182900301818387803b15801561020357600080fd5b73ffffffffffffffffffffffffffffffffffffffff1690565b6000602082840312156102c957600080fd5b813563ffffffff811681146102dd57600080fd5b939250505056fea26469706673582212208034e3b2c77c3241dfadc390188b88e7013dd1809ee068aa875af93963d4dbe664736f6c6343000811003360a0604052600080546001600160601b031916905534801561002057600080fd5b5060405161141f38038061141f83398101604081905261003f9161004d565b63ffffffff1660805261007a565b60006020828403121561005f57600080fd5b815163ffffffff8116811461007357600080fd5b9392505050565b60805161137c6100a36000396000818161021801528181610a710152610c26015261137c6000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806392d28b3d1161008c578063f794687a11610066578063f794687a146102b0578063fa31de0114610301578063fd10ebe514610314578063ffa1ad741461032457600080fd5b806392d28b3d1461023a578063a3b4919f1461025e578063d12164e41461029457600080fd5b80636b791ca1116100c85780636b791ca11461017e5780636e5f516e146101915780638209d312146101e65780638d3638f41461021357600080fd5b80631605c306146100ef578063522ae002146100f957806359b3f6e014610115575b600080fd5b6100f761033e565b005b61010261080081565b6040519081526020015b60405180910390f35b6100f7610123366004610cd5565b63ffffffff91909116600090815260016020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055565b6100f761018c366004610d55565b610660565b6000546101c1906c01000000000000000000000000900473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161010c565b6000546101fe90640100000000900463ffffffff1681565b60405163ffffffff909116815260200161010c565b6101fe7f000000000000000000000000000000000000000000000000000000000000000081565b61024d610248366004610ddf565b610833565b60405161010c959493929190610e66565b6101c161026c366004610ebe565b60016020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6000546101fe9068010000000000000000900463ffffffff1681565b6100f76102be366004610ee0565b6000805473ffffffffffffffffffffffffffffffffffffffff9092166c01000000000000000000000000026bffffffffffffffffffffffff909216919091179055565b61010261030f366004610efd565b61091c565b6000546101fe9063ffffffff1681565b61032c600081565b60405160ff909116815260200161010c565b6000805463ffffffff680100000000000000009182900481168352600260208181526040808620815160a0810183528154808716825264010000000081049096169381019390935273ffffffffffffffffffffffffffffffffffffffff9590940485169082015260018301549093166060840152810180546080840191906103c590610f57565b80601f01602080910402602001604051908101604052809291908181526020018280546103f190610f57565b801561043e5780601f106104135761010080835404028352916020019161043e565b820191906000526020600020905b81548152906001019060200180831161042157829003601f168201915b505050919092525050506060810151909150600061045b82610b17565b905073ffffffffffffffffffffffffffffffffffffffff811615610568578073ffffffffffffffffffffffffffffffffffffffff1663f7e83aee61049e85610bf5565b6040518263ffffffff1660e01b81526004016104ba9190610faa565b6020604051808303816000875af11580156104d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104fd9190610fcb565b610568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f49534d20766572696679206661696c656400000000000000000000000000000060448201526064015b60405180910390fd5b826060015173ffffffffffffffffffffffffffffffffffffffff166356d5d47584602001516105c4866040015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1690565b86608001516040518463ffffffff1660e01b81526004016105e793929190610fed565b600060405180830381600087803b15801561060157600080fd5b505af1158015610615573d6000803e3d6000fd5b50506000805468010000000000000000900463ffffffff1692509050600861063c8361101b565b91906101000a81548163ffffffff021916908363ffffffff16021790555050505050565b6040518060a001604052808763ffffffff1681526020018663ffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff16815260200183838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525093909452505080546401000000009081900463ffffffff9081168352600260208181526040948590208751815492890151968901519085167fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000009093169290921795909316909302939093177fffffffff0000000000000000000000000000000000000000ffffffffffffffff166801000000000000000073ffffffffffffffffffffffffffffffffffffffff9384160217815560608501516001820180547fffffffffffffffffffffffff00000000000000000000000000000000000000001691909316179091556080840151909250908201906107eb90826110e3565b505060008054640100000000900463ffffffff169150600461080c8361101b565b91906101000a81548163ffffffff021916908363ffffffff16021790555050505050505050565b600260208190526000918252604090912080546001820154928201805463ffffffff808416956401000000008504909116946801000000000000000090940473ffffffffffffffffffffffffffffffffffffffff90811694911692909161089990610f57565b80601f01602080910402602001604051908101604052809291908181526020018280546108c590610f57565b80156109125780601f106108e757610100808354040283529160200191610912565b820191906000526020600020905b8154815290600101906020018083116108f557829003601f168201915b5050505050905085565b600061080082111561098a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6d736720746f6f206c6f6e670000000000000000000000000000000000000000604482015260640161055f565b63ffffffff851660009081526001602052604090205473ffffffffffffffffffffffffffffffffffffffff1680610a1d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d697373696e672072656d6f7465206d61696c626f7800000000000000000000604482015260640161055f565b6000546040517f6b791ca100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831691636b791ca191610aa19163ffffffff16907f00000000000000000000000000000000000000000000000000000000000000009033908b908b908b906004016111fd565b600060405180830381600087803b158015610abb57600080fd5b505af1158015610acf573d6000803e3d6000fd5b50506000805463ffffffff169250905080610ae98361101b565b91906101000a81548163ffffffff021916908363ffffffff160217905550506000801b915050949350505050565b60008173ffffffffffffffffffffffffffffffffffffffff1663de523cf36040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610b9e575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252610b9b9181019061128a565b60015b15610bc75773ffffffffffffffffffffffffffffffffffffffff811615610bc55792915050565b505b50506000546c01000000000000000000000000900473ffffffffffffffffffffffffffffffffffffffff1690565b6060600082600001518360200151610c24856040015173ffffffffffffffffffffffffffffffffffffffff1690565b7f0000000000000000000000000000000000000000000000000000000000000000610c66876060015173ffffffffffffffffffffffffffffffffffffffff1690565b8760800151604051602001610c8197969594939291906112a7565b6040516020818303038152906040529050919050565b803563ffffffff81168114610cab57600080fd5b919050565b73ffffffffffffffffffffffffffffffffffffffff81168114610cd257600080fd5b50565b60008060408385031215610ce857600080fd5b610cf183610c97565b91506020830135610d0181610cb0565b809150509250929050565b60008083601f840112610d1e57600080fd5b50813567ffffffffffffffff811115610d3657600080fd5b602083019150836020828501011115610d4e57600080fd5b9250929050565b60008060008060008060a08789031215610d6e57600080fd5b610d7787610c97565b9550610d8560208801610c97565b94506040870135610d9581610cb0565b93506060870135610da581610cb0565b9250608087013567ffffffffffffffff811115610dc157600080fd5b610dcd89828a01610d0c565b979a9699509497509295939492505050565b600060208284031215610df157600080fd5b5035919050565b60005b83811015610e13578181015183820152602001610dfb565b50506000910152565b60008151808452610e34816020860160208601610df8565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b63ffffffff86811682528516602082015273ffffffffffffffffffffffffffffffffffffffff84811660408301528316606082015260a060808201819052600090610eb390830184610e1c565b979650505050505050565b600060208284031215610ed057600080fd5b610ed982610c97565b9392505050565b600060208284031215610ef257600080fd5b8135610ed981610cb0565b60008060008060608587031215610f1357600080fd5b610f1c85610c97565b935060208501359250604085013567ffffffffffffffff811115610f3f57600080fd5b610f4b87828801610d0c565b95989497509550505050565b600181811c90821680610f6b57607f821691505b602082108103610fa4577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b6040815260006040820152606060208201526000610ed96060830184610e1c565b600060208284031215610fdd57600080fd5b81518015158114610ed957600080fd5b63ffffffff841681528260208201526060604082015260006110126060830184610e1c565b95945050505050565b600063ffffffff80831681810361105b577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6001019392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f8211156110de57600081815260208120601f850160051c810160208610156110bb5750805b601f850160051c820191505b818110156110da578281556001016110c7565b5050505b505050565b815167ffffffffffffffff8111156110fd576110fd611065565b6111118161110b8454610f57565b84611094565b602080601f831160018114611164576000841561112e5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556110da565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156111b157888601518255948401946001909101908401611192565b50858210156111ed57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b63ffffffff87811682528616602082015273ffffffffffffffffffffffffffffffffffffffff85811660408301528416606082015260a06080820181905281018290526000828460c0840137600060c0848401015260c07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501168301019050979650505050505050565b60006020828403121561129c57600080fd5b8151610ed981610cb0565b7fff000000000000000000000000000000000000000000000000000000000000008860f81b16815260007fffffffff00000000000000000000000000000000000000000000000000000000808960e01b166001840152808860e01b166005840152866009840152808660e01b1660298401525083602d830152825161133381604d850160208701610df8565b91909101604d019897505050505050505056fea264697066735822122065b0f7b2155f8f53d2767c52080a8915df605ce13ec8e5c785cdf6c4e74abfb764736f6c6343000811003360806040523480156200001157600080fd5b506040516200138838038062001388833981016040819052620000349162000315565b62000040338262000047565b5062000347565b600054610100900460ff1615808015620000685750600054600160ff909116105b8062000098575062000085306200019160201b620009ec1760201c565b15801562000098575060005460ff166001145b620001015760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801562000125576000805461ff0019166101001790555b6200012f620001a0565b6200013a8362000208565b62000145826200025a565b80156200018c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b6001600160a01b03163b151590565b600054610100900460ff16620001fc5760405162461bcd60e51b815260206004820152602b60248201526000805160206200136883398151915260448201526a6e697469616c697a696e6760a81b6064820152608401620000f8565b62000206620002ae565b565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b606680546001600160a01b0319166001600160a01b0383169081179091556040519081527f04d55a8be181fb8d75b76f2d48aa0b2ee40f47e53d6e61763eeeec46feea8a249060200160405180910390a150565b600054610100900460ff166200030a5760405162461bcd60e51b815260206004820152602b60248201526000805160206200136883398151915260448201526a6e697469616c697a696e6760a81b6064820152608401620000f8565b620002063362000208565b6000602082840312156200032857600080fd5b81516001600160a01b03811681146200034057600080fd5b9392505050565b61101180620003576000396000f3fe6080604052600436106100d25760003560e01c80634e71d92d1161007f5780638da5cb5b116100595780638da5cb5b14610259578063a692979314610284578063f2fde38b146102b2578063fe173b97146102d257600080fd5b80634e71d92d146101e657806360fcef7c146101fb578063715018a61461024457600080fd5b80632f202650116100b05780632f2026501461017957806338af3eed14610199578063485cc955146101c657600080fd5b806311bf2c18146100d75780631c31f710146100ec5780631d16c8c81461010c575b600080fd5b6100ea6100e5366004610d83565b6102e7565b005b3480156100f857600080fd5b506100ea610107366004610dc9565b6104d2565b34801561011857600080fd5b5061014f610127366004610de4565b60656020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561018557600080fd5b506100ea610194366004610dff565b6104e6565b3480156101a557600080fd5b5060665461014f9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156101d257600080fd5b506100ea6101e1366004610e74565b61056c565b3480156101f257600080fd5b506100ea610712565b34801561020757600080fd5b5061021b610216366004610de4565b6107dc565b604080516fffffffffffffffffffffffffffffffff938416815292909116602083015201610170565b34801561025057600080fd5b506100ea61090e565b34801561026557600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff1661014f565b34801561029057600080fd5b506102a461029f366004610ea7565b610922565b604051908152602001610170565b3480156102be57600080fd5b506100ea6102cd366004610dc9565b610938565b3480156102de57600080fd5b506102a4600a81565b60006102f38484610922565b90508034101561038a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f696e73756666696369656e7420696e746572636861696e20676173207061796d60448201527f656e74000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b60006103968234610f00565b9050801561048f5760008373ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d80600081146103f8576040519150601f19603f3d011682016040523d82523d6000602084013e6103fd565b606091505b505090508061048d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f496e746572636861696e20676173207061796d656e7420726566756e6420666160448201527f696c6564000000000000000000000000000000000000000000000000000000006064820152608401610381565b505b604080518581526020810184905287917ff715e66d2cd2a0179069dcda2a41a4da36a30e1aad12187fbb7c5d100afd621c910160405180910390a2505050505050565b6104da610a08565b6104e381610a89565b50565b6104ee610a08565b8060005b818110156105665761055484848381811061050f5761050f610f13565b6105259260206040909202019081019150610de4565b85858481811061053757610537610f13565b905060400201602001602081019061054f9190610dc9565b610b02565b8061055e81610f42565b9150506104f2565b50505050565b600054610100900460ff161580801561058c5750600054600160ff909116105b806105a65750303b1580156105a6575060005460ff166001145b610632576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610381565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561069057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610698610b90565b6106a183610c2f565b6106aa82610a89565b801561070d57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60665460405160009173ffffffffffffffffffffffffffffffffffffffff169047908381818185875af1925050503d806000811461076c576040519150601f19603f3d011682016040523d82523d6000602084013e610771565b606091505b50509050806104e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f217472616e7366657200000000000000000000000000000000000000000000006044820152606401610381565b63ffffffff8116600090815260656020526040812054819073ffffffffffffffffffffffffffffffffffffffff1680610871576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21676173206f7261636c650000000000000000000000000000000000000000006044820152606401610381565b6040517f60fcef7c00000000000000000000000000000000000000000000000000000000815263ffffffff8516600482015273ffffffffffffffffffffffffffffffffffffffff8216906360fcef7c906024016040805180830381865afa1580156108e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109049190610f9a565b9250925050915091565b610916610a08565b6109206000610c2f565b565b600061092f82600a610fc4565b90505b92915050565b610940610a08565b73ffffffffffffffffffffffffffffffffffffffff81166109e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610381565b6104e381610c2f565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b60335473ffffffffffffffffffffffffffffffffffffffff163314610920576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610381565b606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527f04d55a8be181fb8d75b76f2d48aa0b2ee40f47e53d6e61763eeeec46feea8a249060200160405180910390a150565b63ffffffff821660008181526065602090815260409182902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff861690811790915591519182527f38b842e116ff320f6a79ba4cf434eee927fa156b226c65c90d62989de589b4e7910160405180910390a25050565b600054610100900460ff16610c27576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610381565b610920610ca6565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16610d3d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610381565b61092033610c2f565b803563ffffffff81168114610d5a57600080fd5b919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610d5a57600080fd5b60008060008060808587031215610d9957600080fd5b84359350610da960208601610d46565b925060408501359150610dbe60608601610d5f565b905092959194509250565b600060208284031215610ddb57600080fd5b61092f82610d5f565b600060208284031215610df657600080fd5b61092f82610d46565b60008060208385031215610e1257600080fd5b823567ffffffffffffffff80821115610e2a57600080fd5b818501915085601f830112610e3e57600080fd5b813581811115610e4d57600080fd5b8660208260061b8501011115610e6257600080fd5b60209290920196919550909350505050565b60008060408385031215610e8757600080fd5b610e9083610d5f565b9150610e9e60208401610d5f565b90509250929050565b60008060408385031215610eba57600080fd5b610ec383610d46565b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181038181111561093257610932610ed1565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610f7357610f73610ed1565b5060010190565b80516fffffffffffffffffffffffffffffffff81168114610d5a57600080fd5b60008060408385031215610fad57600080fd5b610fb683610f7a565b9150610e9e60208401610f7a565b808202811582820484141761093257610932610ed156fea2646970667358221220c0c7e5463aed39a02073f1ebf4a03bb5c9fd30d0b97285dfad72394239fdc66c64736f6c63430008110033496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069608060405234801561001057600080fd5b506000805460ff191660011790556103778061002d6000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c80634fc3aa7c116100505780634fc3aa7c146100af5780636465e69f146100f0578063f7e83aee1461010a57600080fd5b80632852b71c1461006c5780632e0ed2341461008e575b600080fd5b6000546100799060ff1681565b60405190151581526020015b60405180910390f35b6100a161009c3660046101d7565b610126565b604051610085929190610219565b6100ee6100bd36600461027d565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b005b6100f8600481565b60405160ff9091168152602001610085565b6100796101183660046102a6565b60005460ff16949350505050565b60408051600180825281830190925260609160009182916020808301908036833701905050905060008160008151811061016257610162610312565b73ffffffffffffffffffffffffffffffffffffffff909216602092830291909101909101529150600190505b9250929050565b60008083601f8401126101a757600080fd5b50813567ffffffffffffffff8111156101bf57600080fd5b60208301915083602082850101111561018e57600080fd5b600080602083850312156101ea57600080fd5b823567ffffffffffffffff81111561020157600080fd5b61020d85828601610195565b90969095509350505050565b604080825283519082018190526000906020906060840190828701845b8281101561026857815173ffffffffffffffffffffffffffffffffffffffff1684529284019290840190600101610236565b50505060ff9490941692019190915250919050565b60006020828403121561028f57600080fd5b8135801515811461029f57600080fd5b9392505050565b600080600080604085870312156102bc57600080fd5b843567ffffffffffffffff808211156102d457600080fd5b6102e088838901610195565b909650945060208701359150808211156102f957600080fd5b5061030687828801610195565b95989497509550505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea264697066735822122017c3918e1ebea8ac9a9de746c40c8b031b8fef948d0933d04030e580d6ee3bfa64736f6c63430008110033608060405234801561001057600080fd5b506125df806100206000396000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c80638da5cb5b116100b2578063e9198bf911610081578063f2fde38b11610066578063f2fde38b1461028d578063f3c61d6b146102a0578063f8c8765e146102b357600080fd5b8063e9198bf914610267578063f1bd6f0a1461027a57600080fd5b80638da5cb5b146101f6578063b49c53a714610214578063d5438eae14610227578063de523cf31461024757600080fd5b8063440df4f4116100ee578063440df4f4146101b357806356d5d475146101c8578063715018a6146101db5780638cc02cab146101e357600080fd5b80630e72cc06146101205780632222b452146101355780632ead72f61461015b57806339bb4ad91461016e575b600080fd5b61013361012e366004611839565b6102c6565b005b61014861014336600461199d565b6102da565b6040519081526020015b60405180910390f35b610148610169366004611a22565b61032d565b60665461018e9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610152565b6101bb61036f565b6040516101529190611a3d565b6101336101d6366004611a87565b61042a565b610133610522565b6101486101f1366004611b5a565b610536565b60335473ffffffffffffffffffffffffffffffffffffffff1661018e565b610133610222366004611bad565b610582565b60655461018e9073ffffffffffffffffffffffffffffffffffffffff1681565b60675461018e9073ffffffffffffffffffffffffffffffffffffffff1681565b610133610275366004611bd7565b610598565b610133610288366004611839565b61066f565b61013361029b366004611839565b610680565b6101336102ae366004611839565b610734565b6101336102c1366004611c43565b610745565b6102ce6108df565b6102d781610960565b50565b604051600090339063ffffffff8716907f11c97c784c298562a796345417aa40e1ce110e6b100f41b801ab23414f72d7e5908490a36103248561031f33878787610a6e565b610b22565b95945050505050565b6000610343609863ffffffff80851690610bcc16565b156103625761035c609863ffffffff80851690610bdf16565b92915050565b506000919050565b919050565b609880546060919060008167ffffffffffffffff81111561039257610392611868565b6040519080825280602002602001820160405280156103bb578160200160208202803683370190505b50905060005b82811015610422578381815481106103db576103db611c97565b906000526020600020015460001c8282815181106103fb576103fb611c97565b63ffffffff909216602092830291909101909101528061041a81611cf5565b9150506103c1565b509392505050565b60655473ffffffffffffffffffffffffffffffffffffffff1633146104b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f216d61696c626f7800000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b83836104bc8282610beb565b604051806080016040528060438152602001612542604391399061050d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104a79190611d9b565b5061051a86868686610bff565b505050505050565b61052a6108df565b6105346000610d23565b565b604051600090339063ffffffff8616907f11c97c784c298562a796345417aa40e1ce110e6b100f41b801ab23414f72d7e5908490a361057a8461031f338686610d9a565b949350505050565b61058a6108df565b6105948282610dcc565b5050565b6105a06108df565b828114610609576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e6774680000000000000000000000000000000000000000000000000060448201526064016104a7565b8260005b8181101561051a5761065d86868381811061062a5761062a611c97565b905060200201602081019061063f9190611a22565b85858481811061065157610651611c97565b90506020020135610dcc565b610668600182611dae565b905061060d565b6106776108df565b6102d781610e26565b6106886108df565b73ffffffffffffffffffffffffffffffffffffffff811661072b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016104a7565b6102d781610d23565b61073c6108df565b6102d781610f15565b600054610100900460ff16158080156107655750600054600160ff909116105b8061077f5750303b15801561077f575060005460ff166001145b61080b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016104a7565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561086957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61087585858585611004565b80156108d857600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60335473ffffffffffffffffffffffffffffffffffffffff163314610534576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104a7565b73ffffffffffffffffffffffffffffffffffffffff81161580610999575073ffffffffffffffffffffffffffffffffffffffff81163b15155b6109ff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016104a7565b606780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517ffec811ed4e60aebdaf7a79cad8a97196bf56e35362f039705598226d30c9d24890600090a250565b60408051600180825281830190925260609160009190816020015b610ab46040805160808101825260009181019182526060808201529081908152602001606081525090565b815260200190600190039081610a89579050509050610ad48585856110c5565b81600081518110610ae757610ae7611c97565b602002602001018190525085600082604051602001610b0893929190611e2b565b604051602081830303815290604052915050949350505050565b600080610b2e84611115565b6065546040517ffa31de0100000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff169063fa31de0190610b8990879085908890600401611ef6565b6020604051808303816000875af1158015610ba8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057a9190611f1b565b6000610bd88383611180565b9392505050565b6000610bd8838361118c565b600081610bf78461032d565b149392505050565b6000610c0b8383611216565b90506000610c198484611250565b90506000826001811115610c2f57610c2f611dc1565b03610c99576000610c408585611268565b90506000610c4d826112a0565b9050828863ffffffff167fb689f7016112eaacc7edebd6ea5eb700790a103e79c39ce0118e075de87d797660405160405180910390a3610c918861031f858461134b565b50505061051a565b6001826001811115610cad57610cad611dc1565b03610d1b57806000610cbf868661137a565b9050610ccb82826113b2565b60405173ffffffffffffffffffffffffffffffffffffffff83169063ffffffff8a16907fc4416e2fcdf8514178829e5ead195eb13f3241ea71c0e38f998868fe81e4226990600090a3505061051a565b61051a611f34565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60608360008484604051602001610db4949392919061204d565b60405160208183030381529060405290509392505050565b610de2609863ffffffff8085169084906113ef16565b8163ffffffff167f97fd51fef1f80c854cbd0150c248e8b2ac4ecdc97cc05e742b5f61c9f4dc645882604051610e1a91815260200190565b60405180910390a25050565b8073ffffffffffffffffffffffffffffffffffffffff81163b610ea5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016104a7565b606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517fb87f5a0bface22cde699143559fb99f990ae54eea236995fc54178af91af859f90600090a25050565b8073ffffffffffffffffffffffffffffffffffffffff81163b610f94576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016104a7565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517f7a61e573722ff8b205c8962b59d37e7d30573f368965597a844a94872204ebd790600090a25050565b600054610100900460ff1661109b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016104a7565b6110a484610f15565b6110ad83610e26565b6110b682610960565b6110bf81610d23565b50505050565b6110f06040805160808101825260009181019182526060808201529081908152602001606081525090565b604051806040016040528061110586866113fa565b8152602001929092525092915050565b60006111208261032d565b90506000801b811415604051806080016040528060438152602001612542604391399061117a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104a79190611d9b565b50919050565b6000610bd8838361144c565b6000818152600283016020526040812054801515806111b057506111b08484611180565b610bd8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579000060448201526064016104a7565b6000828261122660016040612128565b81811061123557611235611c97565b919091013560f81c90506001811115610bd857610bd8611dc1565b600061125f602082848661213b565b610bd891612165565b606060006112768484611216565b600181111561128757611287611dc1565b1461129457611294611f34565b610324828401846121d4565b8051606090600090818167ffffffffffffffff8111156112c2576112c2611868565b6040519080825280602002602001820160405280156112f557816020015b60608152602001906001900390816112e05790505b5090505b8183101561057a5761132385848151811061131657611316611c97565b6020026020010151611464565b81848151811061133557611335611c97565b60200260200101819052508260010192506112f9565b60608260018360405160200161136393929190612393565b604051602081830303815290604052905092915050565b606060016113888484611216565b600181111561139957611399611dc1565b146113a6576113a6611f34565b61032482840184612429565b80516000905b808210156110bf576113e3848484815181106113d6576113d6611c97565b602002602001015161149f565b508160010191506113b8565b6110bf8383836114e3565b6040805180820182526000808252606060208084018290528451808601865292835291820152825180840190935273ffffffffffffffffffffffffffffffffffffffff85168352820183905290610bd8565b60008181526001830160205260408120541515610bd8565b606081602001516114788360000151611500565b6040516020016114899291906124f6565b6040516020818303038152906040529050919050565b6060610bd8838360006040518060400160405280601e81526020017f416464726573733a206c6f772d6c6576656c2063616c6c206661696c65640000815250611513565b6000828152600284016020526040812082905561057a848461162c565b805160609061035c908360200151611638565b6060824710156115a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016104a7565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516115ce9190612525565b60006040518083038185875af1925050503d806000811461160b576040519150601f19603f3d011682016040523d82523d6000602084013e611610565b606091505b50915091506116218783838761165d565b979650505050505050565b6000610bd883836116fd565b6060610bd883836040518060600160405280602581526020016125856025913961174c565b606083156116f35782516000036116ec5773ffffffffffffffffffffffffffffffffffffffff85163b6116ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016104a7565b508161057a565b61057a83836117d1565b60008181526001830160205260408120546117445750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561035c565b50600061035c565b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516117769190612525565b600060405180830381855afa9150503d80600081146117b1576040519150601f19603f3d011682016040523d82523d6000602084013e6117b6565b606091505b50915091506117c78683838761165d565b9695505050505050565b8151156117e15781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104a79190611d9b565b803573ffffffffffffffffffffffffffffffffffffffff8116811461036a57600080fd5b60006020828403121561184b57600080fd5b610bd882611815565b803563ffffffff8116811461036a57600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156118ba576118ba611868565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561190757611907611868565b604052919050565b600082601f83011261192057600080fd5b813567ffffffffffffffff81111561193a5761193a611868565b61196b60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016118c0565b81815284602083860101111561198057600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080608085870312156119b357600080fd5b6119bc85611854565b93506119ca60208601611815565b9250604085013567ffffffffffffffff808211156119e757600080fd5b6119f38883890161190f565b93506060870135915080821115611a0957600080fd5b50611a168782880161190f565b91505092959194509250565b600060208284031215611a3457600080fd5b610bd882611854565b6020808252825182820181905260009190848201906040850190845b81811015611a7b57835163ffffffff1683529284019291840191600101611a59565b50909695505050505050565b60008060008060608587031215611a9d57600080fd5b611aa685611854565b935060208501359250604085013567ffffffffffffffff80821115611aca57600080fd5b818701915087601f830112611ade57600080fd5b813581811115611aed57600080fd5b886020828501011115611aff57600080fd5b95989497505060200194505050565b60008083601f840112611b2057600080fd5b50813567ffffffffffffffff811115611b3857600080fd5b6020830191508360208260051b8501011115611b5357600080fd5b9250929050565b600080600060408486031215611b6f57600080fd5b611b7884611854565b9250602084013567ffffffffffffffff811115611b9457600080fd5b611ba086828701611b0e565b9497909650939450505050565b60008060408385031215611bc057600080fd5b611bc983611854565b946020939093013593505050565b60008060008060408587031215611bed57600080fd5b843567ffffffffffffffff80821115611c0557600080fd5b611c1188838901611b0e565b90965094506020870135915080821115611c2a57600080fd5b50611c3787828801611b0e565b95989497509550505050565b60008060008060808587031215611c5957600080fd5b611c6285611815565b9350611c7060208601611815565b9250611c7e60408601611815565b9150611c8c60608601611815565b905092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611d2657611d26611cc6565b5060010190565b60005b83811015611d48578181015183820152602001611d30565b50506000910152565b60008151808452611d69816020860160208601611d2d565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610bd86020830184611d51565b8082018082111561035c5761035c611cc6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60028110611e27577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b600060608083018684526020611e4381860188611df0565b60408381870152828751808552608094508488019150848160051b890101848a0160005b83811015611ee4578a83037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80018552815180518785528051888601528801518a8501889052611eb88a860182611d51565b91890151858303868b0152919050611ed08183611d51565b968901969450505090860190600101611e67565b50909c9b505050505050505050505050565b63ffffffff841681528260208201526060604082015260006103246060830184611d51565b600060208284031215611f2d57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112611f9757600080fd5b90910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112611fd557600080fd5b830160208101925035905067ffffffffffffffff811115611ff557600080fd5b803603821315611b5357600080fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60006060808301878452602061206581860189611df0565b604085810184905291869052608091828601600588901b870184018960005b8a811015611ee4577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808a84030184526120bd828d611f63565b6120c78182611f63565b8685528035878601526120dc88820182611fa0565b9150878b8701526120f08a87018383612004565b9150506120ff88830183611fa0565b925085820389870152612113828483612004565b96890196955050509186019150600101612084565b8181038181111561035c5761035c611cc6565b6000808585111561214b57600080fd5b8386111561215857600080fd5b5050820193919092039150565b8035602083101561035c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b80356002811061036a57600080fd5b600067ffffffffffffffff8211156121ca576121ca611868565b5060051b60200190565b6000806000606084860312156121e957600080fd5b833592506121f9602085016121a1565b915067ffffffffffffffff6040850135111561221457600080fd5b6040840135840185601f82011261222a57600080fd5b61223c61223782356121b0565b6118c0565b81358082526020808301929160051b84010188101561225a57600080fd5b602083015b6020843560051b8501018110156123855767ffffffffffffffff8135111561228657600080fd5b803584017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0604081838d030112156122bd57600080fd5b6122c5611897565b67ffffffffffffffff602084013511156122de57600080fd5b60208301358301604083828f030112156122f757600080fd5b6122ff611897565b92506020810135835267ffffffffffffffff6040820135111561232157600080fd5b6123348d6020604084013584010161190f565b60208401525081815267ffffffffffffffff6040840135111561235657600080fd5b6123698c6020604086013586010161190f565b602082015280865250505060208301925060208101905061225f565b508093505050509250925092565b60006060820185835260206123aa81850187611df0565b6060604085015281855180845260808601915060808160051b870101935082870160005b8281101561241a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80888703018452612408868351611d51565b955092840192908401906001016123ce565b50939998505050505050505050565b60008060006060848603121561243e57600080fd5b83359250602061244f8186016121a1565b9250604085013567ffffffffffffffff8082111561246c57600080fd5b818701915087601f83011261248057600080fd5b813561248e612237826121b0565b81815260059190911b8301840190848101908a8311156124ad57600080fd5b8585015b838110156124e5578035858111156124c95760008081fd5b6124d78d89838a010161190f565b8452509186019186016124b1565b508096505050505050509250925092565b60008351612508818460208801611d2d565b83519083019061251c818360208801611d2d565b01949350505050565b60008251612537818460208701611d2d565b919091019291505056fe4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e2e2044696420796f7520737065636966792074686520726967687420646f6d61696e2049443f416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564a26469706673582212209c66069227b42b4fca2a0189103b448e8ac3091670fffe8af86dca32ade2822a64736f6c63430008110033";
115
117
  const isSuperArgs = (xs) => xs.length > 1;
116
118
  class MockHyperlaneEnvironment__factory extends ethers_1.ContractFactory {
117
119
  constructor(...args) {