@layerzerolabs/protocol-v2-messagelib-evm-contracts 1.2.96 → 1.2.98

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 (272) hide show
  1. package/README.md +1 -1
  2. package/artifacts/contracts/Executor.sol/Executor.json +1413 -0
  3. package/artifacts/contracts/Executor.sol/ILayerZeroEndpointV2.json +230 -0
  4. package/artifacts/contracts/ExecutorFeeLib.sol/ExecutorFeeLib.json +546 -0
  5. package/artifacts/contracts/MessageLibBase.sol/MessageLibBase.json +16 -0
  6. package/artifacts/contracts/PriceFeed.sol/PriceFeed.json +694 -0
  7. package/artifacts/contracts/ReceiveLibBaseE2.sol/ReceiveLibBaseE2.json +154 -0
  8. package/artifacts/contracts/SendLibBase.sol/SendLibBase.json +381 -0
  9. package/artifacts/contracts/SendLibBaseE2.sol/SendLibBaseE2.json +819 -0
  10. package/artifacts/contracts/SimpleReadExecutor.sol/ILayerZeroEndpointV2.json +139 -0
  11. package/artifacts/contracts/SimpleReadExecutor.sol/SimpleReadExecutor.json +260 -0
  12. package/artifacts/contracts/Treasury.sol/Treasury.json +309 -0
  13. package/artifacts/contracts/Worker.sol/Worker.json +579 -0
  14. package/artifacts/contracts/decompressor/DVNDecoder.sol/DVNDecoder.json +10 -0
  15. package/artifacts/contracts/decompressor/DVNDecompressor.sol/DVNDecompressor.json +329 -0
  16. package/artifacts/contracts/decompressor/DecompressorExtension.sol/DecompressorExtension.json +92 -0
  17. package/artifacts/contracts/decompressor/ExecutorDecoder.sol/ExecutorDecoder.json +10 -0
  18. package/artifacts/contracts/decompressor/ExecutorDecompressor.sol/ExecutorDecompressor.json +220 -0
  19. package/artifacts/contracts/interfaces/IExecutor.sol/IExecutor.json +487 -0
  20. package/artifacts/contracts/interfaces/IExecutorFeeLib.sol/IExecutorFeeLib.json +410 -0
  21. package/artifacts/contracts/interfaces/ILayerZeroExecutor.sol/ILayerZeroExecutor.json +79 -0
  22. package/artifacts/contracts/interfaces/ILayerZeroPriceFeed.sol/ILayerZeroPriceFeed.json +222 -0
  23. package/artifacts/contracts/interfaces/ILayerZeroReadExecutor.sol/ILayerZeroReadExecutor.json +59 -0
  24. package/artifacts/contracts/interfaces/ILayerZeroTreasury.sol/ILayerZeroTreasury.json +79 -0
  25. package/artifacts/contracts/interfaces/IWorker.sol/IWorker.json +221 -0
  26. package/artifacts/contracts/libs/ExecutorOptions.sol/ExecutorOptions.json +31 -0
  27. package/artifacts/contracts/libs/SafeCall.sol/SafeCall.json +10 -0
  28. package/artifacts/contracts/lowlat/EssenceDVNWrapper.sol/EssenceDVNWrapper.json +369 -0
  29. package/artifacts/contracts/lowlat/MultiCall.sol/MultiCall.json +120 -0
  30. package/artifacts/contracts/mocks/DVNMock.sol/DVNMock.json +135 -0
  31. package/artifacts/contracts/mocks/ExecutorMock.sol/ExecutorMock.json +397 -0
  32. package/artifacts/contracts/uln/LzExecutor.sol/IReceiveUlnView.json +35 -0
  33. package/artifacts/contracts/uln/LzExecutor.sol/LzExecutor.json +515 -0
  34. package/artifacts/contracts/uln/ReceiveUlnBase.sol/ReceiveUlnBase.json +551 -0
  35. package/artifacts/contracts/uln/SendUlnBase.sol/SendUlnBase.json +412 -0
  36. package/artifacts/contracts/uln/UlnBase.sol/UlnBase.json +387 -0
  37. package/artifacts/contracts/uln/dvn/DVN.sol/DVN.json +1509 -0
  38. package/artifacts/contracts/uln/dvn/DVNFeeLib.sol/DVNFeeLib.json +695 -0
  39. package/artifacts/contracts/uln/dvn/DeadDVN.sol/DeadDVN.json +164 -0
  40. package/artifacts/contracts/uln/dvn/MultiSig.sol/MultiSig.json +217 -0
  41. package/artifacts/contracts/uln/dvn/SimpleReadDVN.sol/SimpleReadDVN.json +231 -0
  42. package/artifacts/contracts/uln/dvn/adapters/CCIP/CCIPDVNAdapter.sol/CCIPDVNAdapter.json +1040 -0
  43. package/artifacts/contracts/uln/dvn/adapters/CCIP/CCIPDVNAdapterFeeLib.sol/CCIPDVNAdapterFeeLib.json +417 -0
  44. package/artifacts/contracts/uln/dvn/adapters/DVNAdapterBase.sol/DVNAdapterBase.json +789 -0
  45. package/artifacts/contracts/uln/dvn/adapters/DVNAdapterBase.sol/IReceiveUln.json +34 -0
  46. package/artifacts/contracts/uln/dvn/adapters/DVNAdapterBase.sol/ISendLibBase.json +30 -0
  47. package/artifacts/contracts/uln/dvn/adapters/arbitrum/ArbitrumDVNAdapterL1.sol/ArbitrumDVNAdapterL1.json +936 -0
  48. package/artifacts/contracts/uln/dvn/adapters/arbitrum/ArbitrumDVNAdapterL2.sol/ArbitrumDVNAdapterL2.json +868 -0
  49. package/artifacts/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapter.sol/AxelarDVNAdapter.json +1171 -0
  50. package/artifacts/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapter.sol/ISendLibBase.json +30 -0
  51. package/artifacts/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapterFeeLib.sol/AxelarDVNAdapterFeeLib.json +574 -0
  52. package/artifacts/contracts/uln/dvn/adapters/libs/DVNAdapterMessageCodec.sol/DVNAdapterMessageCodec.json +16 -0
  53. package/artifacts/contracts/uln/dvn/adapters/optimism/OptimismDVNAdapterL1.sol/OptimismDVNAdapterL1.json +924 -0
  54. package/artifacts/contracts/uln/dvn/adapters/optimism/OptimismDVNAdapterL2.sol/OptimismDVNAdapterL2.json +891 -0
  55. package/artifacts/contracts/uln/interfaces/IDVN.sol/IDVN.json +438 -0
  56. package/artifacts/contracts/uln/interfaces/IDVNFeeLib.sol/IDVNFeeLib.json +374 -0
  57. package/artifacts/contracts/uln/interfaces/ILayerZeroDVN.sol/ILayerZeroDVN.json +96 -0
  58. package/artifacts/contracts/uln/interfaces/ILayerZeroReadDVN.sol/ILayerZeroReadDVN.json +79 -0
  59. package/artifacts/contracts/uln/interfaces/IReceiveUlnE2.sol/IReceiveUlnE2.json +52 -0
  60. package/artifacts/contracts/uln/interfaces/adapters/IAxelarDVNAdapter.sol/IAxelarDVNAdapter.json +160 -0
  61. package/artifacts/contracts/uln/interfaces/adapters/IAxelarDVNAdapterFeeLib.sol/IAxelarDVNAdapterFeeLib.json +293 -0
  62. package/artifacts/contracts/uln/interfaces/adapters/ICCIPDVNAdapter.sol/ICCIPDVNAdapter.json +78 -0
  63. package/artifacts/contracts/uln/interfaces/adapters/ICCIPDVNAdapterFeeLib.sol/ICCIPDVNAdapterFeeLib.json +301 -0
  64. package/artifacts/contracts/uln/libs/DVNOptions.sol/DVNOptions.json +27 -0
  65. package/artifacts/contracts/uln/libs/ReadCmdCodecV1.sol/ReadCmdCodecV1.json +26 -0
  66. package/artifacts/contracts/uln/libs/SupportedCmdTypes.sol/SupportedCmdTypesLib.json +16 -0
  67. package/artifacts/contracts/uln/libs/UlnOptions.sol/UlnOptions.json +54 -0
  68. package/artifacts/contracts/uln/readlib/ReadLib1002.sol/ReadLib1002.json +1288 -0
  69. package/artifacts/contracts/uln/readlib/ReadLib1002View.sol/ReadLib1002View.json +285 -0
  70. package/artifacts/contracts/uln/readlib/ReadLibBase.sol/ReadLibBase.json +387 -0
  71. package/artifacts/contracts/uln/uln301/AddressSizeConfig.sol/AddressSizeConfig.json +129 -0
  72. package/artifacts/contracts/uln/uln301/ReceiveLibBaseE1.sol/ILayerZeroReceiveLibrary.json +68 -0
  73. package/artifacts/contracts/uln/uln301/ReceiveLibBaseE1.sol/ReceiveLibBaseE1.json +416 -0
  74. package/artifacts/contracts/uln/uln301/ReceiveUln301.sol/ReceiveUln301.json +1000 -0
  75. package/artifacts/contracts/uln/uln301/ReceiveUln301View.sol/IReceiveUln301.json +178 -0
  76. package/artifacts/contracts/uln/uln301/ReceiveUln301View.sol/ReceiveUln301View.json +126 -0
  77. package/artifacts/contracts/uln/uln301/SendLibBaseE1.sol/SendLibBaseE1.json +804 -0
  78. package/artifacts/contracts/uln/uln301/SendUln301.sol/SendUln301.json +1278 -0
  79. package/artifacts/contracts/uln/uln301/TreasuryFeeHandler.sol/TreasuryFeeHandler.json +94 -0
  80. package/artifacts/contracts/uln/uln301/interfaces/IMessageLibE1.sol/IMessageLibE1.json +247 -0
  81. package/artifacts/contracts/uln/uln301/interfaces/INonceContract.sol/INonceContract.json +40 -0
  82. package/artifacts/contracts/uln/uln301/interfaces/ITreasuryFeeHandler.sol/ITreasuryFeeHandler.json +44 -0
  83. package/artifacts/contracts/uln/uln301/interfaces/IUltraLightNode301.sol/IUltraLightNode301.json +29 -0
  84. package/artifacts/contracts/uln/uln301/mocks/NonceContractMock.sol/NonceContractMock.json +93 -0
  85. package/artifacts/contracts/uln/uln302/ReceiveUln302.sol/ReceiveUln302.json +757 -0
  86. package/artifacts/contracts/uln/uln302/ReceiveUln302View.sol/IReceiveUln302.json +146 -0
  87. package/artifacts/contracts/uln/uln302/ReceiveUln302View.sol/ReceiveUln302View.json +251 -0
  88. package/artifacts/contracts/uln/uln302/SendUln302.sol/SendUln302.json +1259 -0
  89. package/artifacts/contracts/upgradeable/WorkerUpgradeable.sol/WorkerUpgradeable.json +592 -0
  90. package/artifacts/contracts/upgradeable/proxy/ProxyAdmin.sol/ProxyAdmin.json +181 -0
  91. package/artifacts/contracts/upgradeable/proxy/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +160 -0
  92. package/artifacts-tron/contracts/Executor.sol/Executor.json +1413 -0
  93. package/artifacts-tron/contracts/Executor.sol/ILayerZeroEndpointV2.json +230 -0
  94. package/artifacts-tron/contracts/ExecutorFeeLib.sol/ExecutorFeeLib.json +546 -0
  95. package/artifacts-tron/contracts/MessageLibBase.sol/MessageLibBase.json +16 -0
  96. package/artifacts-tron/contracts/PriceFeed.sol/PriceFeed.json +694 -0
  97. package/artifacts-tron/contracts/ReceiveLibBaseE2.sol/ReceiveLibBaseE2.json +154 -0
  98. package/artifacts-tron/contracts/SendLibBase.sol/SendLibBase.json +381 -0
  99. package/artifacts-tron/contracts/SendLibBaseE2.sol/SendLibBaseE2.json +819 -0
  100. package/artifacts-tron/contracts/SimpleReadExecutor.sol/ILayerZeroEndpointV2.json +139 -0
  101. package/artifacts-tron/contracts/SimpleReadExecutor.sol/SimpleReadExecutor.json +260 -0
  102. package/artifacts-tron/contracts/Treasury.sol/Treasury.json +309 -0
  103. package/artifacts-tron/contracts/Worker.sol/Worker.json +579 -0
  104. package/artifacts-tron/contracts/decompressor/DVNDecoder.sol/DVNDecoder.json +10 -0
  105. package/artifacts-tron/contracts/decompressor/DVNDecompressor.sol/DVNDecompressor.json +329 -0
  106. package/artifacts-tron/contracts/decompressor/DecompressorExtension.sol/DecompressorExtension.json +92 -0
  107. package/artifacts-tron/contracts/decompressor/ExecutorDecoder.sol/ExecutorDecoder.json +10 -0
  108. package/artifacts-tron/contracts/decompressor/ExecutorDecompressor.sol/ExecutorDecompressor.json +220 -0
  109. package/artifacts-tron/contracts/interfaces/IExecutor.sol/IExecutor.json +487 -0
  110. package/artifacts-tron/contracts/interfaces/IExecutorFeeLib.sol/IExecutorFeeLib.json +410 -0
  111. package/artifacts-tron/contracts/interfaces/ILayerZeroExecutor.sol/ILayerZeroExecutor.json +79 -0
  112. package/artifacts-tron/contracts/interfaces/ILayerZeroPriceFeed.sol/ILayerZeroPriceFeed.json +222 -0
  113. package/artifacts-tron/contracts/interfaces/ILayerZeroReadExecutor.sol/ILayerZeroReadExecutor.json +59 -0
  114. package/artifacts-tron/contracts/interfaces/ILayerZeroTreasury.sol/ILayerZeroTreasury.json +79 -0
  115. package/artifacts-tron/contracts/interfaces/IWorker.sol/IWorker.json +221 -0
  116. package/artifacts-tron/contracts/libs/ExecutorOptions.sol/ExecutorOptions.json +31 -0
  117. package/artifacts-tron/contracts/libs/SafeCall.sol/SafeCall.json +10 -0
  118. package/artifacts-tron/contracts/lowlat/EssenceDVNWrapper.sol/EssenceDVNWrapper.json +369 -0
  119. package/artifacts-tron/contracts/lowlat/MultiCall.sol/MultiCall.json +120 -0
  120. package/artifacts-tron/contracts/mocks/DVNMock.sol/DVNMock.json +135 -0
  121. package/artifacts-tron/contracts/mocks/ExecutorMock.sol/ExecutorMock.json +397 -0
  122. package/artifacts-tron/contracts/uln/LzExecutor.sol/IReceiveUlnView.json +35 -0
  123. package/artifacts-tron/contracts/uln/LzExecutor.sol/LzExecutor.json +515 -0
  124. package/artifacts-tron/contracts/uln/ReceiveUlnBase.sol/ReceiveUlnBase.json +551 -0
  125. package/artifacts-tron/contracts/uln/SendUlnBase.sol/SendUlnBase.json +412 -0
  126. package/artifacts-tron/contracts/uln/UlnBase.sol/UlnBase.json +387 -0
  127. package/artifacts-tron/contracts/uln/dvn/DVN.sol/DVN.json +1509 -0
  128. package/artifacts-tron/contracts/uln/dvn/DVNFeeLib.sol/DVNFeeLib.json +695 -0
  129. package/artifacts-tron/contracts/uln/dvn/DeadDVN.sol/DeadDVN.json +164 -0
  130. package/artifacts-tron/contracts/uln/dvn/MultiSig.sol/MultiSig.json +217 -0
  131. package/artifacts-tron/contracts/uln/dvn/SimpleReadDVN.sol/SimpleReadDVN.json +231 -0
  132. package/artifacts-tron/contracts/uln/dvn/adapters/CCIP/CCIPDVNAdapter.sol/CCIPDVNAdapter.json +1040 -0
  133. package/artifacts-tron/contracts/uln/dvn/adapters/CCIP/CCIPDVNAdapterFeeLib.sol/CCIPDVNAdapterFeeLib.json +417 -0
  134. package/artifacts-tron/contracts/uln/dvn/adapters/DVNAdapterBase.sol/DVNAdapterBase.json +789 -0
  135. package/artifacts-tron/contracts/uln/dvn/adapters/DVNAdapterBase.sol/IReceiveUln.json +34 -0
  136. package/artifacts-tron/contracts/uln/dvn/adapters/DVNAdapterBase.sol/ISendLibBase.json +30 -0
  137. package/artifacts-tron/contracts/uln/dvn/adapters/arbitrum/ArbitrumDVNAdapterL1.sol/ArbitrumDVNAdapterL1.json +936 -0
  138. package/artifacts-tron/contracts/uln/dvn/adapters/arbitrum/ArbitrumDVNAdapterL2.sol/ArbitrumDVNAdapterL2.json +868 -0
  139. package/artifacts-tron/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapter.sol/AxelarDVNAdapter.json +1171 -0
  140. package/artifacts-tron/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapter.sol/ISendLibBase.json +30 -0
  141. package/artifacts-tron/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapterFeeLib.sol/AxelarDVNAdapterFeeLib.json +574 -0
  142. package/artifacts-tron/contracts/uln/dvn/adapters/libs/DVNAdapterMessageCodec.sol/DVNAdapterMessageCodec.json +16 -0
  143. package/artifacts-tron/contracts/uln/dvn/adapters/optimism/OptimismDVNAdapterL1.sol/OptimismDVNAdapterL1.json +924 -0
  144. package/artifacts-tron/contracts/uln/dvn/adapters/optimism/OptimismDVNAdapterL2.sol/OptimismDVNAdapterL2.json +891 -0
  145. package/artifacts-tron/contracts/uln/interfaces/IDVN.sol/IDVN.json +438 -0
  146. package/artifacts-tron/contracts/uln/interfaces/IDVNFeeLib.sol/IDVNFeeLib.json +374 -0
  147. package/artifacts-tron/contracts/uln/interfaces/ILayerZeroDVN.sol/ILayerZeroDVN.json +96 -0
  148. package/artifacts-tron/contracts/uln/interfaces/ILayerZeroReadDVN.sol/ILayerZeroReadDVN.json +79 -0
  149. package/artifacts-tron/contracts/uln/interfaces/IReceiveUlnE2.sol/IReceiveUlnE2.json +52 -0
  150. package/artifacts-tron/contracts/uln/interfaces/adapters/IAxelarDVNAdapter.sol/IAxelarDVNAdapter.json +160 -0
  151. package/artifacts-tron/contracts/uln/interfaces/adapters/IAxelarDVNAdapterFeeLib.sol/IAxelarDVNAdapterFeeLib.json +293 -0
  152. package/artifacts-tron/contracts/uln/interfaces/adapters/ICCIPDVNAdapter.sol/ICCIPDVNAdapter.json +78 -0
  153. package/artifacts-tron/contracts/uln/interfaces/adapters/ICCIPDVNAdapterFeeLib.sol/ICCIPDVNAdapterFeeLib.json +301 -0
  154. package/artifacts-tron/contracts/uln/libs/DVNOptions.sol/DVNOptions.json +27 -0
  155. package/artifacts-tron/contracts/uln/libs/ReadCmdCodecV1.sol/ReadCmdCodecV1.json +26 -0
  156. package/artifacts-tron/contracts/uln/libs/SupportedCmdTypes.sol/SupportedCmdTypesLib.json +16 -0
  157. package/artifacts-tron/contracts/uln/libs/UlnOptions.sol/UlnOptions.json +54 -0
  158. package/artifacts-tron/contracts/uln/readlib/ReadLib1002.sol/ReadLib1002.json +1288 -0
  159. package/artifacts-tron/contracts/uln/readlib/ReadLib1002View.sol/ReadLib1002View.json +285 -0
  160. package/artifacts-tron/contracts/uln/readlib/ReadLibBase.sol/ReadLibBase.json +387 -0
  161. package/artifacts-tron/contracts/uln/uln301/AddressSizeConfig.sol/AddressSizeConfig.json +129 -0
  162. package/artifacts-tron/contracts/uln/uln301/ReceiveLibBaseE1.sol/ILayerZeroReceiveLibrary.json +68 -0
  163. package/artifacts-tron/contracts/uln/uln301/ReceiveLibBaseE1.sol/ReceiveLibBaseE1.json +416 -0
  164. package/artifacts-tron/contracts/uln/uln301/ReceiveUln301.sol/ReceiveUln301.json +1000 -0
  165. package/artifacts-tron/contracts/uln/uln301/ReceiveUln301View.sol/IReceiveUln301.json +178 -0
  166. package/artifacts-tron/contracts/uln/uln301/ReceiveUln301View.sol/ReceiveUln301View.json +126 -0
  167. package/artifacts-tron/contracts/uln/uln301/SendLibBaseE1.sol/SendLibBaseE1.json +804 -0
  168. package/artifacts-tron/contracts/uln/uln301/SendUln301.sol/SendUln301.json +1278 -0
  169. package/artifacts-tron/contracts/uln/uln301/TreasuryFeeHandler.sol/TreasuryFeeHandler.json +94 -0
  170. package/artifacts-tron/contracts/uln/uln301/interfaces/IMessageLibE1.sol/IMessageLibE1.json +247 -0
  171. package/artifacts-tron/contracts/uln/uln301/interfaces/INonceContract.sol/INonceContract.json +40 -0
  172. package/artifacts-tron/contracts/uln/uln301/interfaces/ITreasuryFeeHandler.sol/ITreasuryFeeHandler.json +44 -0
  173. package/artifacts-tron/contracts/uln/uln301/interfaces/IUltraLightNode301.sol/IUltraLightNode301.json +29 -0
  174. package/artifacts-tron/contracts/uln/uln301/mocks/NonceContractMock.sol/NonceContractMock.json +93 -0
  175. package/artifacts-tron/contracts/uln/uln302/ReceiveUln302.sol/ReceiveUln302.json +757 -0
  176. package/artifacts-tron/contracts/uln/uln302/ReceiveUln302View.sol/IReceiveUln302.json +146 -0
  177. package/artifacts-tron/contracts/uln/uln302/ReceiveUln302View.sol/ReceiveUln302View.json +251 -0
  178. package/artifacts-tron/contracts/uln/uln302/SendUln302.sol/SendUln302.json +1259 -0
  179. package/artifacts-tron/contracts/upgradeable/WorkerUpgradeable.sol/WorkerUpgradeable.json +592 -0
  180. package/artifacts-tron/contracts/upgradeable/proxy/ProxyAdmin.sol/ProxyAdmin.json +181 -0
  181. package/artifacts-tron/contracts/upgradeable/proxy/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +160 -0
  182. package/artifacts-zk/contracts/Executor.sol/Executor.json +1414 -0
  183. package/artifacts-zk/contracts/Executor.sol/ILayerZeroEndpointV2.json +231 -0
  184. package/artifacts-zk/contracts/ExecutorFeeLib.sol/ExecutorFeeLib.json +547 -0
  185. package/artifacts-zk/contracts/MessageLibBase.sol/MessageLibBase.json +17 -0
  186. package/artifacts-zk/contracts/PriceFeed.sol/PriceFeed.json +695 -0
  187. package/artifacts-zk/contracts/ReceiveLibBaseE2.sol/ReceiveLibBaseE2.json +155 -0
  188. package/artifacts-zk/contracts/SendLibBase.sol/SendLibBase.json +382 -0
  189. package/artifacts-zk/contracts/SendLibBaseE2.sol/SendLibBaseE2.json +820 -0
  190. package/artifacts-zk/contracts/SimpleReadExecutor.sol/ILayerZeroEndpointV2.json +140 -0
  191. package/artifacts-zk/contracts/SimpleReadExecutor.sol/SimpleReadExecutor.json +261 -0
  192. package/artifacts-zk/contracts/Treasury.sol/Treasury.json +310 -0
  193. package/artifacts-zk/contracts/Worker.sol/Worker.json +580 -0
  194. package/artifacts-zk/contracts/decompressor/DVNDecoder.sol/DVNDecoder.json +11 -0
  195. package/artifacts-zk/contracts/decompressor/DVNDecompressor.sol/DVNDecompressor.json +330 -0
  196. package/artifacts-zk/contracts/decompressor/DecompressorExtension.sol/DecompressorExtension.json +93 -0
  197. package/artifacts-zk/contracts/decompressor/ExecutorDecoder.sol/ExecutorDecoder.json +11 -0
  198. package/artifacts-zk/contracts/decompressor/ExecutorDecompressor.sol/ExecutorDecompressor.json +221 -0
  199. package/artifacts-zk/contracts/interfaces/IExecutor.sol/IExecutor.json +488 -0
  200. package/artifacts-zk/contracts/interfaces/IExecutorFeeLib.sol/IExecutorFeeLib.json +411 -0
  201. package/artifacts-zk/contracts/interfaces/ILayerZeroExecutor.sol/ILayerZeroExecutor.json +80 -0
  202. package/artifacts-zk/contracts/interfaces/ILayerZeroPriceFeed.sol/ILayerZeroPriceFeed.json +223 -0
  203. package/artifacts-zk/contracts/interfaces/ILayerZeroReadExecutor.sol/ILayerZeroReadExecutor.json +60 -0
  204. package/artifacts-zk/contracts/interfaces/ILayerZeroTreasury.sol/ILayerZeroTreasury.json +80 -0
  205. package/artifacts-zk/contracts/interfaces/IWorker.sol/IWorker.json +222 -0
  206. package/artifacts-zk/contracts/libs/ExecutorOptions.sol/ExecutorOptions.json +32 -0
  207. package/artifacts-zk/contracts/libs/SafeCall.sol/SafeCall.json +11 -0
  208. package/artifacts-zk/contracts/lowlat/EssenceDVNWrapper.sol/EssenceDVNWrapper.json +370 -0
  209. package/artifacts-zk/contracts/lowlat/MultiCall.sol/MultiCall.json +121 -0
  210. package/artifacts-zk/contracts/mocks/DVNMock.sol/DVNMock.json +136 -0
  211. package/artifacts-zk/contracts/mocks/ExecutorMock.sol/ExecutorMock.json +398 -0
  212. package/artifacts-zk/contracts/uln/LzExecutor.sol/IReceiveUlnView.json +36 -0
  213. package/artifacts-zk/contracts/uln/LzExecutor.sol/LzExecutor.json +516 -0
  214. package/artifacts-zk/contracts/uln/ReceiveUlnBase.sol/ReceiveUlnBase.json +552 -0
  215. package/artifacts-zk/contracts/uln/SendUlnBase.sol/SendUlnBase.json +413 -0
  216. package/artifacts-zk/contracts/uln/UlnBase.sol/UlnBase.json +388 -0
  217. package/artifacts-zk/contracts/uln/dvn/DVN.sol/DVN.json +1510 -0
  218. package/artifacts-zk/contracts/uln/dvn/DVNFeeLib.sol/DVNFeeLib.json +696 -0
  219. package/artifacts-zk/contracts/uln/dvn/DeadDVN.sol/DeadDVN.json +165 -0
  220. package/artifacts-zk/contracts/uln/dvn/MultiSig.sol/MultiSig.json +218 -0
  221. package/artifacts-zk/contracts/uln/dvn/SimpleReadDVN.sol/SimpleReadDVN.json +232 -0
  222. package/artifacts-zk/contracts/uln/dvn/adapters/CCIP/CCIPDVNAdapter.sol/CCIPDVNAdapter.json +1041 -0
  223. package/artifacts-zk/contracts/uln/dvn/adapters/CCIP/CCIPDVNAdapterFeeLib.sol/CCIPDVNAdapterFeeLib.json +418 -0
  224. package/artifacts-zk/contracts/uln/dvn/adapters/DVNAdapterBase.sol/DVNAdapterBase.json +790 -0
  225. package/artifacts-zk/contracts/uln/dvn/adapters/DVNAdapterBase.sol/IReceiveUln.json +35 -0
  226. package/artifacts-zk/contracts/uln/dvn/adapters/DVNAdapterBase.sol/ISendLibBase.json +31 -0
  227. package/artifacts-zk/contracts/uln/dvn/adapters/arbitrum/ArbitrumDVNAdapterL1.sol/ArbitrumDVNAdapterL1.json +937 -0
  228. package/artifacts-zk/contracts/uln/dvn/adapters/arbitrum/ArbitrumDVNAdapterL2.sol/ArbitrumDVNAdapterL2.json +869 -0
  229. package/artifacts-zk/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapter.sol/AxelarDVNAdapter.json +1172 -0
  230. package/artifacts-zk/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapter.sol/ISendLibBase.json +31 -0
  231. package/artifacts-zk/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapterFeeLib.sol/AxelarDVNAdapterFeeLib.json +575 -0
  232. package/artifacts-zk/contracts/uln/dvn/adapters/libs/DVNAdapterMessageCodec.sol/DVNAdapterMessageCodec.json +17 -0
  233. package/artifacts-zk/contracts/uln/dvn/adapters/optimism/OptimismDVNAdapterL1.sol/OptimismDVNAdapterL1.json +925 -0
  234. package/artifacts-zk/contracts/uln/dvn/adapters/optimism/OptimismDVNAdapterL2.sol/OptimismDVNAdapterL2.json +892 -0
  235. package/artifacts-zk/contracts/uln/interfaces/IDVN.sol/IDVN.json +439 -0
  236. package/artifacts-zk/contracts/uln/interfaces/IDVNFeeLib.sol/IDVNFeeLib.json +375 -0
  237. package/artifacts-zk/contracts/uln/interfaces/ILayerZeroDVN.sol/ILayerZeroDVN.json +97 -0
  238. package/artifacts-zk/contracts/uln/interfaces/ILayerZeroReadDVN.sol/ILayerZeroReadDVN.json +80 -0
  239. package/artifacts-zk/contracts/uln/interfaces/IReceiveUlnE2.sol/IReceiveUlnE2.json +53 -0
  240. package/artifacts-zk/contracts/uln/interfaces/adapters/IAxelarDVNAdapter.sol/IAxelarDVNAdapter.json +161 -0
  241. package/artifacts-zk/contracts/uln/interfaces/adapters/IAxelarDVNAdapterFeeLib.sol/IAxelarDVNAdapterFeeLib.json +294 -0
  242. package/artifacts-zk/contracts/uln/interfaces/adapters/ICCIPDVNAdapter.sol/ICCIPDVNAdapter.json +79 -0
  243. package/artifacts-zk/contracts/uln/interfaces/adapters/ICCIPDVNAdapterFeeLib.sol/ICCIPDVNAdapterFeeLib.json +302 -0
  244. package/artifacts-zk/contracts/uln/libs/DVNOptions.sol/DVNOptions.json +28 -0
  245. package/artifacts-zk/contracts/uln/libs/ReadCmdCodecV1.sol/ReadCmdCodecV1.json +27 -0
  246. package/artifacts-zk/contracts/uln/libs/SupportedCmdTypes.sol/SupportedCmdTypesLib.json +17 -0
  247. package/artifacts-zk/contracts/uln/libs/UlnOptions.sol/UlnOptions.json +55 -0
  248. package/artifacts-zk/contracts/uln/readlib/ReadLib1002.sol/ReadLib1002.json +1289 -0
  249. package/artifacts-zk/contracts/uln/readlib/ReadLib1002View.sol/ReadLib1002View.json +286 -0
  250. package/artifacts-zk/contracts/uln/readlib/ReadLibBase.sol/ReadLibBase.json +388 -0
  251. package/artifacts-zk/contracts/uln/uln301/AddressSizeConfig.sol/AddressSizeConfig.json +130 -0
  252. package/artifacts-zk/contracts/uln/uln301/ReceiveLibBaseE1.sol/ILayerZeroReceiveLibrary.json +69 -0
  253. package/artifacts-zk/contracts/uln/uln301/ReceiveLibBaseE1.sol/ReceiveLibBaseE1.json +417 -0
  254. package/artifacts-zk/contracts/uln/uln301/ReceiveUln301.sol/ReceiveUln301.json +1001 -0
  255. package/artifacts-zk/contracts/uln/uln301/ReceiveUln301View.sol/IReceiveUln301.json +179 -0
  256. package/artifacts-zk/contracts/uln/uln301/ReceiveUln301View.sol/ReceiveUln301View.json +127 -0
  257. package/artifacts-zk/contracts/uln/uln301/SendLibBaseE1.sol/SendLibBaseE1.json +805 -0
  258. package/artifacts-zk/contracts/uln/uln301/SendUln301.sol/SendUln301.json +1279 -0
  259. package/artifacts-zk/contracts/uln/uln301/TreasuryFeeHandler.sol/TreasuryFeeHandler.json +95 -0
  260. package/artifacts-zk/contracts/uln/uln301/interfaces/IMessageLibE1.sol/IMessageLibE1.json +248 -0
  261. package/artifacts-zk/contracts/uln/uln301/interfaces/INonceContract.sol/INonceContract.json +41 -0
  262. package/artifacts-zk/contracts/uln/uln301/interfaces/ITreasuryFeeHandler.sol/ITreasuryFeeHandler.json +45 -0
  263. package/artifacts-zk/contracts/uln/uln301/interfaces/IUltraLightNode301.sol/IUltraLightNode301.json +30 -0
  264. package/artifacts-zk/contracts/uln/uln301/mocks/NonceContractMock.sol/NonceContractMock.json +94 -0
  265. package/artifacts-zk/contracts/uln/uln302/ReceiveUln302.sol/ReceiveUln302.json +758 -0
  266. package/artifacts-zk/contracts/uln/uln302/ReceiveUln302View.sol/IReceiveUln302.json +147 -0
  267. package/artifacts-zk/contracts/uln/uln302/ReceiveUln302View.sol/ReceiveUln302View.json +252 -0
  268. package/artifacts-zk/contracts/uln/uln302/SendUln302.sol/SendUln302.json +1260 -0
  269. package/artifacts-zk/contracts/upgradeable/WorkerUpgradeable.sol/WorkerUpgradeable.json +593 -0
  270. package/artifacts-zk/contracts/upgradeable/proxy/ProxyAdmin.sol/ProxyAdmin.json +182 -0
  271. package/artifacts-zk/contracts/upgradeable/proxy/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +161 -0
  272. package/package.json +6 -6
@@ -0,0 +1,1171 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "AxelarDVNAdapter",
4
+ "sourceName": "contracts/uln/dvn/adapters/axelar/AxelarDVNAdapter.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address[]",
10
+ "name": "_admins",
11
+ "type": "address[]"
12
+ },
13
+ {
14
+ "internalType": "address",
15
+ "name": "_gateway",
16
+ "type": "address"
17
+ }
18
+ ],
19
+ "stateMutability": "nonpayable",
20
+ "type": "constructor"
21
+ },
22
+ {
23
+ "inputs": [],
24
+ "name": "AxelarDVNAdapter_OnlyWorkerFeeLib",
25
+ "type": "error"
26
+ },
27
+ {
28
+ "inputs": [
29
+ {
30
+ "internalType": "string",
31
+ "name": "chainName",
32
+ "type": "string"
33
+ },
34
+ {
35
+ "internalType": "string",
36
+ "name": "peer",
37
+ "type": "string"
38
+ }
39
+ ],
40
+ "name": "AxelarDVNAdapter_UntrustedPeer",
41
+ "type": "error"
42
+ },
43
+ {
44
+ "inputs": [
45
+ {
46
+ "internalType": "uint256",
47
+ "name": "actual",
48
+ "type": "uint256"
49
+ },
50
+ {
51
+ "internalType": "uint256",
52
+ "name": "requested",
53
+ "type": "uint256"
54
+ }
55
+ ],
56
+ "name": "DVNAdapter_InsufficientBalance",
57
+ "type": "error"
58
+ },
59
+ {
60
+ "inputs": [],
61
+ "name": "DVNAdapter_InvalidMessageSize",
62
+ "type": "error"
63
+ },
64
+ {
65
+ "inputs": [
66
+ {
67
+ "internalType": "address",
68
+ "name": "sendLib",
69
+ "type": "address"
70
+ },
71
+ {
72
+ "internalType": "uint32",
73
+ "name": "dstEid",
74
+ "type": "uint32"
75
+ }
76
+ ],
77
+ "name": "DVNAdapter_MissingRecieveLib",
78
+ "type": "error"
79
+ },
80
+ {
81
+ "inputs": [],
82
+ "name": "DVNAdapter_NotImplemented",
83
+ "type": "error"
84
+ },
85
+ {
86
+ "inputs": [],
87
+ "name": "InvalidAddress",
88
+ "type": "error"
89
+ },
90
+ {
91
+ "inputs": [],
92
+ "name": "NotApprovedByGateway",
93
+ "type": "error"
94
+ },
95
+ {
96
+ "inputs": [
97
+ {
98
+ "internalType": "address",
99
+ "name": "_to",
100
+ "type": "address"
101
+ },
102
+ {
103
+ "internalType": "uint256",
104
+ "name": "_value",
105
+ "type": "uint256"
106
+ }
107
+ ],
108
+ "name": "Transfer_NativeFailed",
109
+ "type": "error"
110
+ },
111
+ {
112
+ "inputs": [],
113
+ "name": "Transfer_ToAddressIsZero",
114
+ "type": "error"
115
+ },
116
+ {
117
+ "inputs": [],
118
+ "name": "Worker_NotAllowed",
119
+ "type": "error"
120
+ },
121
+ {
122
+ "inputs": [],
123
+ "name": "Worker_OnlyMessageLib",
124
+ "type": "error"
125
+ },
126
+ {
127
+ "inputs": [],
128
+ "name": "Worker_RoleRenouncingDisabled",
129
+ "type": "error"
130
+ },
131
+ {
132
+ "anonymous": false,
133
+ "inputs": [
134
+ {
135
+ "components": [
136
+ {
137
+ "internalType": "uint32",
138
+ "name": "eid",
139
+ "type": "uint32"
140
+ },
141
+ {
142
+ "internalType": "string",
143
+ "name": "chainName",
144
+ "type": "string"
145
+ },
146
+ {
147
+ "internalType": "string",
148
+ "name": "peer",
149
+ "type": "string"
150
+ },
151
+ {
152
+ "internalType": "uint16",
153
+ "name": "multiplierBps",
154
+ "type": "uint16"
155
+ },
156
+ {
157
+ "internalType": "uint256",
158
+ "name": "nativeGasFee",
159
+ "type": "uint256"
160
+ }
161
+ ],
162
+ "indexed": false,
163
+ "internalType": "struct IAxelarDVNAdapter.DstConfigParam[]",
164
+ "name": "params",
165
+ "type": "tuple[]"
166
+ }
167
+ ],
168
+ "name": "DstConfigSet",
169
+ "type": "event"
170
+ },
171
+ {
172
+ "anonymous": false,
173
+ "inputs": [
174
+ {
175
+ "components": [
176
+ {
177
+ "internalType": "uint32",
178
+ "name": "dstEid",
179
+ "type": "uint32"
180
+ },
181
+ {
182
+ "internalType": "uint128",
183
+ "name": "floorMarginUSD",
184
+ "type": "uint128"
185
+ }
186
+ ],
187
+ "indexed": false,
188
+ "internalType": "struct IAxelarDVNAdapter.FloorMarginUSDParam[]",
189
+ "name": "params",
190
+ "type": "tuple[]"
191
+ }
192
+ ],
193
+ "name": "FloorMarginUSDSet",
194
+ "type": "event"
195
+ },
196
+ {
197
+ "anonymous": false,
198
+ "inputs": [
199
+ {
200
+ "components": [
201
+ {
202
+ "internalType": "uint32",
203
+ "name": "dstEid",
204
+ "type": "uint32"
205
+ },
206
+ {
207
+ "internalType": "uint16",
208
+ "name": "multiplierBps",
209
+ "type": "uint16"
210
+ }
211
+ ],
212
+ "indexed": false,
213
+ "internalType": "struct IAxelarDVNAdapter.MultiplierParam[]",
214
+ "name": "params",
215
+ "type": "tuple[]"
216
+ }
217
+ ],
218
+ "name": "MultiplierSet",
219
+ "type": "event"
220
+ },
221
+ {
222
+ "anonymous": false,
223
+ "inputs": [
224
+ {
225
+ "components": [
226
+ {
227
+ "internalType": "uint32",
228
+ "name": "dstEid",
229
+ "type": "uint32"
230
+ },
231
+ {
232
+ "internalType": "uint256",
233
+ "name": "nativeGasFee",
234
+ "type": "uint256"
235
+ }
236
+ ],
237
+ "indexed": false,
238
+ "internalType": "struct IAxelarDVNAdapter.NativeGasFeeParam[]",
239
+ "name": "params",
240
+ "type": "tuple[]"
241
+ }
242
+ ],
243
+ "name": "NativeGasFeeSet",
244
+ "type": "event"
245
+ },
246
+ {
247
+ "anonymous": false,
248
+ "inputs": [
249
+ {
250
+ "indexed": false,
251
+ "internalType": "address",
252
+ "name": "account",
253
+ "type": "address"
254
+ }
255
+ ],
256
+ "name": "Paused",
257
+ "type": "event"
258
+ },
259
+ {
260
+ "anonymous": false,
261
+ "inputs": [
262
+ {
263
+ "components": [
264
+ {
265
+ "internalType": "address",
266
+ "name": "sendLib",
267
+ "type": "address"
268
+ },
269
+ {
270
+ "internalType": "uint32",
271
+ "name": "dstEid",
272
+ "type": "uint32"
273
+ },
274
+ {
275
+ "internalType": "bytes32",
276
+ "name": "receiveLib",
277
+ "type": "bytes32"
278
+ }
279
+ ],
280
+ "indexed": false,
281
+ "internalType": "struct ReceiveLibParam[]",
282
+ "name": "params",
283
+ "type": "tuple[]"
284
+ }
285
+ ],
286
+ "name": "ReceiveLibsSet",
287
+ "type": "event"
288
+ },
289
+ {
290
+ "anonymous": false,
291
+ "inputs": [
292
+ {
293
+ "indexed": true,
294
+ "internalType": "bytes32",
295
+ "name": "role",
296
+ "type": "bytes32"
297
+ },
298
+ {
299
+ "indexed": true,
300
+ "internalType": "bytes32",
301
+ "name": "previousAdminRole",
302
+ "type": "bytes32"
303
+ },
304
+ {
305
+ "indexed": true,
306
+ "internalType": "bytes32",
307
+ "name": "newAdminRole",
308
+ "type": "bytes32"
309
+ }
310
+ ],
311
+ "name": "RoleAdminChanged",
312
+ "type": "event"
313
+ },
314
+ {
315
+ "anonymous": false,
316
+ "inputs": [
317
+ {
318
+ "indexed": true,
319
+ "internalType": "bytes32",
320
+ "name": "role",
321
+ "type": "bytes32"
322
+ },
323
+ {
324
+ "indexed": true,
325
+ "internalType": "address",
326
+ "name": "account",
327
+ "type": "address"
328
+ },
329
+ {
330
+ "indexed": true,
331
+ "internalType": "address",
332
+ "name": "sender",
333
+ "type": "address"
334
+ }
335
+ ],
336
+ "name": "RoleGranted",
337
+ "type": "event"
338
+ },
339
+ {
340
+ "anonymous": false,
341
+ "inputs": [
342
+ {
343
+ "indexed": true,
344
+ "internalType": "bytes32",
345
+ "name": "role",
346
+ "type": "bytes32"
347
+ },
348
+ {
349
+ "indexed": true,
350
+ "internalType": "address",
351
+ "name": "account",
352
+ "type": "address"
353
+ },
354
+ {
355
+ "indexed": true,
356
+ "internalType": "address",
357
+ "name": "sender",
358
+ "type": "address"
359
+ }
360
+ ],
361
+ "name": "RoleRevoked",
362
+ "type": "event"
363
+ },
364
+ {
365
+ "anonymous": false,
366
+ "inputs": [
367
+ {
368
+ "indexed": false,
369
+ "internalType": "uint16",
370
+ "name": "multiplierBps",
371
+ "type": "uint16"
372
+ }
373
+ ],
374
+ "name": "SetDefaultMultiplierBps",
375
+ "type": "event"
376
+ },
377
+ {
378
+ "anonymous": false,
379
+ "inputs": [
380
+ {
381
+ "indexed": false,
382
+ "internalType": "address",
383
+ "name": "priceFeed",
384
+ "type": "address"
385
+ }
386
+ ],
387
+ "name": "SetPriceFeed",
388
+ "type": "event"
389
+ },
390
+ {
391
+ "anonymous": false,
392
+ "inputs": [
393
+ {
394
+ "indexed": false,
395
+ "internalType": "uint32",
396
+ "name": "dstEid",
397
+ "type": "uint32"
398
+ },
399
+ {
400
+ "indexed": false,
401
+ "internalType": "uint8[]",
402
+ "name": "optionTypes",
403
+ "type": "uint8[]"
404
+ }
405
+ ],
406
+ "name": "SetSupportedOptionTypes",
407
+ "type": "event"
408
+ },
409
+ {
410
+ "anonymous": false,
411
+ "inputs": [
412
+ {
413
+ "indexed": false,
414
+ "internalType": "address",
415
+ "name": "workerLib",
416
+ "type": "address"
417
+ }
418
+ ],
419
+ "name": "SetWorkerLib",
420
+ "type": "event"
421
+ },
422
+ {
423
+ "anonymous": false,
424
+ "inputs": [
425
+ {
426
+ "indexed": false,
427
+ "internalType": "address",
428
+ "name": "account",
429
+ "type": "address"
430
+ }
431
+ ],
432
+ "name": "Unpaused",
433
+ "type": "event"
434
+ },
435
+ {
436
+ "anonymous": false,
437
+ "inputs": [
438
+ {
439
+ "indexed": false,
440
+ "internalType": "address",
441
+ "name": "lib",
442
+ "type": "address"
443
+ },
444
+ {
445
+ "indexed": false,
446
+ "internalType": "address",
447
+ "name": "to",
448
+ "type": "address"
449
+ },
450
+ {
451
+ "indexed": false,
452
+ "internalType": "uint256",
453
+ "name": "amount",
454
+ "type": "uint256"
455
+ }
456
+ ],
457
+ "name": "Withdraw",
458
+ "type": "event"
459
+ },
460
+ {
461
+ "inputs": [],
462
+ "name": "DEFAULT_ADMIN_ROLE",
463
+ "outputs": [
464
+ {
465
+ "internalType": "bytes32",
466
+ "name": "",
467
+ "type": "bytes32"
468
+ }
469
+ ],
470
+ "stateMutability": "view",
471
+ "type": "function"
472
+ },
473
+ {
474
+ "inputs": [],
475
+ "name": "allowlistSize",
476
+ "outputs": [
477
+ {
478
+ "internalType": "uint64",
479
+ "name": "",
480
+ "type": "uint64"
481
+ }
482
+ ],
483
+ "stateMutability": "view",
484
+ "type": "function"
485
+ },
486
+ {
487
+ "inputs": [
488
+ {
489
+ "components": [
490
+ {
491
+ "internalType": "uint32",
492
+ "name": "dstEid",
493
+ "type": "uint32"
494
+ },
495
+ {
496
+ "internalType": "bytes",
497
+ "name": "packetHeader",
498
+ "type": "bytes"
499
+ },
500
+ {
501
+ "internalType": "bytes32",
502
+ "name": "payloadHash",
503
+ "type": "bytes32"
504
+ },
505
+ {
506
+ "internalType": "uint64",
507
+ "name": "confirmations",
508
+ "type": "uint64"
509
+ },
510
+ {
511
+ "internalType": "address",
512
+ "name": "sender",
513
+ "type": "address"
514
+ }
515
+ ],
516
+ "internalType": "struct ILayerZeroDVN.AssignJobParam",
517
+ "name": "_param",
518
+ "type": "tuple"
519
+ },
520
+ {
521
+ "internalType": "bytes",
522
+ "name": "_options",
523
+ "type": "bytes"
524
+ }
525
+ ],
526
+ "name": "assignJob",
527
+ "outputs": [
528
+ {
529
+ "internalType": "uint256",
530
+ "name": "totalFee",
531
+ "type": "uint256"
532
+ }
533
+ ],
534
+ "stateMutability": "payable",
535
+ "type": "function"
536
+ },
537
+ {
538
+ "inputs": [],
539
+ "name": "defaultMultiplierBps",
540
+ "outputs": [
541
+ {
542
+ "internalType": "uint16",
543
+ "name": "",
544
+ "type": "uint16"
545
+ }
546
+ ],
547
+ "stateMutability": "view",
548
+ "type": "function"
549
+ },
550
+ {
551
+ "inputs": [
552
+ {
553
+ "internalType": "uint32",
554
+ "name": "dstEid",
555
+ "type": "uint32"
556
+ }
557
+ ],
558
+ "name": "dstConfig",
559
+ "outputs": [
560
+ {
561
+ "internalType": "string",
562
+ "name": "chainName",
563
+ "type": "string"
564
+ },
565
+ {
566
+ "internalType": "string",
567
+ "name": "peer",
568
+ "type": "string"
569
+ },
570
+ {
571
+ "internalType": "uint16",
572
+ "name": "multiplierBps",
573
+ "type": "uint16"
574
+ },
575
+ {
576
+ "internalType": "uint256",
577
+ "name": "nativeGasFee",
578
+ "type": "uint256"
579
+ }
580
+ ],
581
+ "stateMutability": "view",
582
+ "type": "function"
583
+ },
584
+ {
585
+ "inputs": [
586
+ {
587
+ "internalType": "bytes32",
588
+ "name": "commandId",
589
+ "type": "bytes32"
590
+ },
591
+ {
592
+ "internalType": "string",
593
+ "name": "sourceChain",
594
+ "type": "string"
595
+ },
596
+ {
597
+ "internalType": "string",
598
+ "name": "sourceAddress",
599
+ "type": "string"
600
+ },
601
+ {
602
+ "internalType": "bytes",
603
+ "name": "payload",
604
+ "type": "bytes"
605
+ }
606
+ ],
607
+ "name": "execute",
608
+ "outputs": [],
609
+ "stateMutability": "nonpayable",
610
+ "type": "function"
611
+ },
612
+ {
613
+ "inputs": [
614
+ {
615
+ "internalType": "bytes32",
616
+ "name": "commandId",
617
+ "type": "bytes32"
618
+ },
619
+ {
620
+ "internalType": "string",
621
+ "name": "sourceChain",
622
+ "type": "string"
623
+ },
624
+ {
625
+ "internalType": "string",
626
+ "name": "sourceAddress",
627
+ "type": "string"
628
+ },
629
+ {
630
+ "internalType": "bytes",
631
+ "name": "payload",
632
+ "type": "bytes"
633
+ },
634
+ {
635
+ "internalType": "string",
636
+ "name": "tokenSymbol",
637
+ "type": "string"
638
+ },
639
+ {
640
+ "internalType": "uint256",
641
+ "name": "amount",
642
+ "type": "uint256"
643
+ }
644
+ ],
645
+ "name": "executeWithToken",
646
+ "outputs": [],
647
+ "stateMutability": "nonpayable",
648
+ "type": "function"
649
+ },
650
+ {
651
+ "inputs": [],
652
+ "name": "gateway",
653
+ "outputs": [
654
+ {
655
+ "internalType": "contract IAxelarGateway",
656
+ "name": "",
657
+ "type": "address"
658
+ }
659
+ ],
660
+ "stateMutability": "view",
661
+ "type": "function"
662
+ },
663
+ {
664
+ "inputs": [
665
+ {
666
+ "internalType": "uint32",
667
+ "name": "_dstEid",
668
+ "type": "uint32"
669
+ },
670
+ {
671
+ "internalType": "uint64",
672
+ "name": "_confirmations",
673
+ "type": "uint64"
674
+ },
675
+ {
676
+ "internalType": "address",
677
+ "name": "_sender",
678
+ "type": "address"
679
+ },
680
+ {
681
+ "internalType": "bytes",
682
+ "name": "_options",
683
+ "type": "bytes"
684
+ }
685
+ ],
686
+ "name": "getFee",
687
+ "outputs": [
688
+ {
689
+ "internalType": "uint256",
690
+ "name": "totalFee",
691
+ "type": "uint256"
692
+ }
693
+ ],
694
+ "stateMutability": "view",
695
+ "type": "function"
696
+ },
697
+ {
698
+ "inputs": [
699
+ {
700
+ "internalType": "bytes32",
701
+ "name": "role",
702
+ "type": "bytes32"
703
+ }
704
+ ],
705
+ "name": "getRoleAdmin",
706
+ "outputs": [
707
+ {
708
+ "internalType": "bytes32",
709
+ "name": "",
710
+ "type": "bytes32"
711
+ }
712
+ ],
713
+ "stateMutability": "view",
714
+ "type": "function"
715
+ },
716
+ {
717
+ "inputs": [
718
+ {
719
+ "internalType": "uint32",
720
+ "name": "_eid",
721
+ "type": "uint32"
722
+ }
723
+ ],
724
+ "name": "getSupportedOptionTypes",
725
+ "outputs": [
726
+ {
727
+ "internalType": "uint8[]",
728
+ "name": "",
729
+ "type": "uint8[]"
730
+ }
731
+ ],
732
+ "stateMutability": "view",
733
+ "type": "function"
734
+ },
735
+ {
736
+ "inputs": [
737
+ {
738
+ "internalType": "bytes32",
739
+ "name": "role",
740
+ "type": "bytes32"
741
+ },
742
+ {
743
+ "internalType": "address",
744
+ "name": "account",
745
+ "type": "address"
746
+ }
747
+ ],
748
+ "name": "grantRole",
749
+ "outputs": [],
750
+ "stateMutability": "nonpayable",
751
+ "type": "function"
752
+ },
753
+ {
754
+ "inputs": [
755
+ {
756
+ "internalType": "address",
757
+ "name": "_sender",
758
+ "type": "address"
759
+ }
760
+ ],
761
+ "name": "hasAcl",
762
+ "outputs": [
763
+ {
764
+ "internalType": "bool",
765
+ "name": "",
766
+ "type": "bool"
767
+ }
768
+ ],
769
+ "stateMutability": "view",
770
+ "type": "function"
771
+ },
772
+ {
773
+ "inputs": [
774
+ {
775
+ "internalType": "bytes32",
776
+ "name": "role",
777
+ "type": "bytes32"
778
+ },
779
+ {
780
+ "internalType": "address",
781
+ "name": "account",
782
+ "type": "address"
783
+ }
784
+ ],
785
+ "name": "hasRole",
786
+ "outputs": [
787
+ {
788
+ "internalType": "bool",
789
+ "name": "",
790
+ "type": "bool"
791
+ }
792
+ ],
793
+ "stateMutability": "view",
794
+ "type": "function"
795
+ },
796
+ {
797
+ "inputs": [],
798
+ "name": "paused",
799
+ "outputs": [
800
+ {
801
+ "internalType": "bool",
802
+ "name": "",
803
+ "type": "bool"
804
+ }
805
+ ],
806
+ "stateMutability": "view",
807
+ "type": "function"
808
+ },
809
+ {
810
+ "inputs": [],
811
+ "name": "priceFeed",
812
+ "outputs": [
813
+ {
814
+ "internalType": "address",
815
+ "name": "",
816
+ "type": "address"
817
+ }
818
+ ],
819
+ "stateMutability": "view",
820
+ "type": "function"
821
+ },
822
+ {
823
+ "inputs": [
824
+ {
825
+ "internalType": "address",
826
+ "name": "sendLib",
827
+ "type": "address"
828
+ },
829
+ {
830
+ "internalType": "uint32",
831
+ "name": "dstEid",
832
+ "type": "uint32"
833
+ }
834
+ ],
835
+ "name": "receiveLibs",
836
+ "outputs": [
837
+ {
838
+ "internalType": "bytes32",
839
+ "name": "receiveLib",
840
+ "type": "bytes32"
841
+ }
842
+ ],
843
+ "stateMutability": "view",
844
+ "type": "function"
845
+ },
846
+ {
847
+ "inputs": [
848
+ {
849
+ "internalType": "bytes32",
850
+ "name": "",
851
+ "type": "bytes32"
852
+ },
853
+ {
854
+ "internalType": "address",
855
+ "name": "",
856
+ "type": "address"
857
+ }
858
+ ],
859
+ "name": "renounceRole",
860
+ "outputs": [],
861
+ "stateMutability": "pure",
862
+ "type": "function"
863
+ },
864
+ {
865
+ "inputs": [
866
+ {
867
+ "internalType": "bytes32",
868
+ "name": "role",
869
+ "type": "bytes32"
870
+ },
871
+ {
872
+ "internalType": "address",
873
+ "name": "account",
874
+ "type": "address"
875
+ }
876
+ ],
877
+ "name": "revokeRole",
878
+ "outputs": [],
879
+ "stateMutability": "nonpayable",
880
+ "type": "function"
881
+ },
882
+ {
883
+ "inputs": [
884
+ {
885
+ "internalType": "uint16",
886
+ "name": "_multiplierBps",
887
+ "type": "uint16"
888
+ }
889
+ ],
890
+ "name": "setDefaultMultiplierBps",
891
+ "outputs": [],
892
+ "stateMutability": "nonpayable",
893
+ "type": "function"
894
+ },
895
+ {
896
+ "inputs": [
897
+ {
898
+ "components": [
899
+ {
900
+ "internalType": "uint32",
901
+ "name": "eid",
902
+ "type": "uint32"
903
+ },
904
+ {
905
+ "internalType": "string",
906
+ "name": "chainName",
907
+ "type": "string"
908
+ },
909
+ {
910
+ "internalType": "string",
911
+ "name": "peer",
912
+ "type": "string"
913
+ },
914
+ {
915
+ "internalType": "uint16",
916
+ "name": "multiplierBps",
917
+ "type": "uint16"
918
+ },
919
+ {
920
+ "internalType": "uint256",
921
+ "name": "nativeGasFee",
922
+ "type": "uint256"
923
+ }
924
+ ],
925
+ "internalType": "struct IAxelarDVNAdapter.DstConfigParam[]",
926
+ "name": "_params",
927
+ "type": "tuple[]"
928
+ }
929
+ ],
930
+ "name": "setDstConfig",
931
+ "outputs": [],
932
+ "stateMutability": "nonpayable",
933
+ "type": "function"
934
+ },
935
+ {
936
+ "inputs": [
937
+ {
938
+ "components": [
939
+ {
940
+ "internalType": "uint32",
941
+ "name": "dstEid",
942
+ "type": "uint32"
943
+ },
944
+ {
945
+ "internalType": "uint256",
946
+ "name": "nativeGasFee",
947
+ "type": "uint256"
948
+ }
949
+ ],
950
+ "internalType": "struct IAxelarDVNAdapter.NativeGasFeeParam[]",
951
+ "name": "_params",
952
+ "type": "tuple[]"
953
+ }
954
+ ],
955
+ "name": "setNativeGasFee",
956
+ "outputs": [],
957
+ "stateMutability": "nonpayable",
958
+ "type": "function"
959
+ },
960
+ {
961
+ "inputs": [
962
+ {
963
+ "internalType": "bool",
964
+ "name": "_paused",
965
+ "type": "bool"
966
+ }
967
+ ],
968
+ "name": "setPaused",
969
+ "outputs": [],
970
+ "stateMutability": "nonpayable",
971
+ "type": "function"
972
+ },
973
+ {
974
+ "inputs": [
975
+ {
976
+ "internalType": "address",
977
+ "name": "_priceFeed",
978
+ "type": "address"
979
+ }
980
+ ],
981
+ "name": "setPriceFeed",
982
+ "outputs": [],
983
+ "stateMutability": "nonpayable",
984
+ "type": "function"
985
+ },
986
+ {
987
+ "inputs": [
988
+ {
989
+ "components": [
990
+ {
991
+ "internalType": "address",
992
+ "name": "sendLib",
993
+ "type": "address"
994
+ },
995
+ {
996
+ "internalType": "uint32",
997
+ "name": "dstEid",
998
+ "type": "uint32"
999
+ },
1000
+ {
1001
+ "internalType": "bytes32",
1002
+ "name": "receiveLib",
1003
+ "type": "bytes32"
1004
+ }
1005
+ ],
1006
+ "internalType": "struct ReceiveLibParam[]",
1007
+ "name": "_params",
1008
+ "type": "tuple[]"
1009
+ }
1010
+ ],
1011
+ "name": "setReceiveLibs",
1012
+ "outputs": [],
1013
+ "stateMutability": "nonpayable",
1014
+ "type": "function"
1015
+ },
1016
+ {
1017
+ "inputs": [
1018
+ {
1019
+ "internalType": "uint32",
1020
+ "name": "_eid",
1021
+ "type": "uint32"
1022
+ },
1023
+ {
1024
+ "internalType": "uint8[]",
1025
+ "name": "_optionTypes",
1026
+ "type": "uint8[]"
1027
+ }
1028
+ ],
1029
+ "name": "setSupportedOptionTypes",
1030
+ "outputs": [],
1031
+ "stateMutability": "nonpayable",
1032
+ "type": "function"
1033
+ },
1034
+ {
1035
+ "inputs": [
1036
+ {
1037
+ "internalType": "address",
1038
+ "name": "_workerFeeLib",
1039
+ "type": "address"
1040
+ }
1041
+ ],
1042
+ "name": "setWorkerFeeLib",
1043
+ "outputs": [],
1044
+ "stateMutability": "nonpayable",
1045
+ "type": "function"
1046
+ },
1047
+ {
1048
+ "inputs": [
1049
+ {
1050
+ "internalType": "string",
1051
+ "name": "srcChainName",
1052
+ "type": "string"
1053
+ }
1054
+ ],
1055
+ "name": "srcConfig",
1056
+ "outputs": [
1057
+ {
1058
+ "internalType": "uint32",
1059
+ "name": "eid",
1060
+ "type": "uint32"
1061
+ },
1062
+ {
1063
+ "internalType": "string",
1064
+ "name": "peer",
1065
+ "type": "string"
1066
+ }
1067
+ ],
1068
+ "stateMutability": "view",
1069
+ "type": "function"
1070
+ },
1071
+ {
1072
+ "inputs": [
1073
+ {
1074
+ "internalType": "bytes4",
1075
+ "name": "interfaceId",
1076
+ "type": "bytes4"
1077
+ }
1078
+ ],
1079
+ "name": "supportsInterface",
1080
+ "outputs": [
1081
+ {
1082
+ "internalType": "bool",
1083
+ "name": "",
1084
+ "type": "bool"
1085
+ }
1086
+ ],
1087
+ "stateMutability": "view",
1088
+ "type": "function"
1089
+ },
1090
+ {
1091
+ "inputs": [
1092
+ {
1093
+ "internalType": "address",
1094
+ "name": "_lib",
1095
+ "type": "address"
1096
+ },
1097
+ {
1098
+ "internalType": "address",
1099
+ "name": "_to",
1100
+ "type": "address"
1101
+ },
1102
+ {
1103
+ "internalType": "uint256",
1104
+ "name": "_amount",
1105
+ "type": "uint256"
1106
+ }
1107
+ ],
1108
+ "name": "withdrawFee",
1109
+ "outputs": [],
1110
+ "stateMutability": "nonpayable",
1111
+ "type": "function"
1112
+ },
1113
+ {
1114
+ "inputs": [
1115
+ {
1116
+ "internalType": "address",
1117
+ "name": "_sendLib",
1118
+ "type": "address"
1119
+ }
1120
+ ],
1121
+ "name": "withdrawToFeeLib",
1122
+ "outputs": [],
1123
+ "stateMutability": "nonpayable",
1124
+ "type": "function"
1125
+ },
1126
+ {
1127
+ "inputs": [
1128
+ {
1129
+ "internalType": "address",
1130
+ "name": "_token",
1131
+ "type": "address"
1132
+ },
1133
+ {
1134
+ "internalType": "address",
1135
+ "name": "_to",
1136
+ "type": "address"
1137
+ },
1138
+ {
1139
+ "internalType": "uint256",
1140
+ "name": "_amount",
1141
+ "type": "uint256"
1142
+ }
1143
+ ],
1144
+ "name": "withdrawToken",
1145
+ "outputs": [],
1146
+ "stateMutability": "nonpayable",
1147
+ "type": "function"
1148
+ },
1149
+ {
1150
+ "inputs": [],
1151
+ "name": "workerFeeLib",
1152
+ "outputs": [
1153
+ {
1154
+ "internalType": "address",
1155
+ "name": "",
1156
+ "type": "address"
1157
+ }
1158
+ ],
1159
+ "stateMutability": "view",
1160
+ "type": "function"
1161
+ },
1162
+ {
1163
+ "stateMutability": "payable",
1164
+ "type": "receive"
1165
+ }
1166
+ ],
1167
+ "bytecode": "0x60a06040523480156200001157600080fd5b50604051620048eb380380620048eb833981016040819052620000349162000334565b803383612710600060405190808252806020026020018201604052801562000066578160200160208202803683370190505b506001805460ff61ffff60e81b011916600160e81b61ffff851602179055600280546001600160a01b031916905560008285856001600160a01b03821615620000b657620000b6600083620001b3565b60005b85518110156200011a57620001117f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de878381518110620000fd57620000fd6200041a565b6020026020010151620001b360201b60201c565b600101620000b9565b5060005b81518110156200016b57620001627fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775838381518110620000fd57620000fd6200041a565b6001016200011e565b5050506001600160a01b03871695506200019e9450505050505760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0316608052506200046d9050565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca821480156200020457506000828152602081815260408083206001600160a01b038516845290915290205460ff16155b156200025157600180546015906200022c90600160a81b90046001600160401b031662000430565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b6200025d828262000261565b5050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166200025d576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620002bd3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b03811681146200032f57600080fd5b919050565b600080604083850312156200034857600080fd5b82516001600160401b03808211156200036057600080fd5b818501915085601f8301126200037557600080fd5b81516020828211156200038c576200038c62000301565b8160051b604051601f19603f83011681018181108682111715620003b457620003b462000301565b604052928352818301935084810182019289841115620003d357600080fd5b948201945b83861015620003fc57620003ec8662000317565b85529482019493820193620003d8565b96506200040d905087820162000317565b9450505050509250929050565b634e487b7160e01b600052603260045260246000fd5b60006001600160401b038281166002600160401b031981016200046357634e487b7160e01b600052601160045260246000fd5b6001019392505050565b60805161444d6200049e6000396000818161030501528181610c6401528181611063015261169b015261444d6000f3fe6080604052600436106102015760003560e01c8063491606581161011d5780639e944965116100b0578063c416aa511161007f578063cd88b90311610064578063cd88b903146106dd578063d2ae2104146106fd578063d547741f1461075057600080fd5b8063c416aa511461068b578063c7b2370b146106bd57600080fd5b80639e94496514610606578063a217fddf14610636578063af896a3b1461064b578063c358de0a1461066b57600080fd5b8063724e78da116100ec578063724e78da14610555578063741bef1a1461057557806391d14854146105a257806395d376d7146105f357600080fd5b806349160658146104c55780634cfa6d2c146104e557806351b6a0fd1461051d5780635c975abb1461053d57600080fd5b806316c38b3c116101955780632de11376116101645780632de11376146104455780632f2ff15d1461046557806330bb3aac1461048557806336568abe146104a557600080fd5b806316c38b3c1461039a5780631a98b2e0146103ba578063248a9ca3146103da57806326e67a371461041857600080fd5b80631095b6d7116101d15780631095b6d7146102d3578063116191b6146102f3578063127124171461034c578063143b165f1461036c57600080fd5b8062bf2e801461020d57806301e336671461026157806301ffc9a71461028357806302d6e8b0146102b357600080fd5b3661020857005b600080fd5b34801561021957600080fd5b50600154610249907d010000000000000000000000000000000000000000000000000000000000900461ffff1681565b60405161ffff90911681526020015b60405180910390f35b34801561026d57600080fd5b5061028161027c366004613013565b610770565b005b34801561028f57600080fd5b506102a361029e36600461304f565b6107ab565b6040519015158152602001610258565b3480156102bf57600080fd5b506102816102ce366004613091565b610844565b3480156102df57600080fd5b506102816102ee366004613013565b61091f565b3480156102ff57600080fd5b506103277f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610258565b34801561035857600080fd5b50610281610367366004613106565b610aae565b34801561037857600080fd5b5061038c610387366004613150565b610b31565b60405161025892919061328d565b3480156103a657600080fd5b506102816103b53660046132ba565b610be8565b3480156103c657600080fd5b506102816103d5366004613320565b610c0d565b3480156103e657600080fd5b5061040a6103f53660046133fa565b60009081526020819052604090206001015490565b604051908152602001610258565b34801561042457600080fd5b50610438610433366004613427565b610d2f565b6040516102589190613442565b34801561045157600080fd5b506102a3610460366004613106565b610db6565b34801561047157600080fd5b50610281610480366004613489565b610e9b565b34801561049157600080fd5b5061040a6104a03660046134cd565b610ec5565b3480156104b157600080fd5b506102816104c0366004613489565b610fda565b3480156104d157600080fd5b506102816104e0366004613543565b61100c565b3480156104f157600080fd5b5061040a6105003660046135e7565b600460209081526000928352604080842090915290825290205481565b34801561052957600080fd5b50610281610538366004613611565b611133565b34801561054957600080fd5b5060015460ff166102a3565b34801561056157600080fd5b50610281610570366004613106565b61121d565b34801561058157600080fd5b506002546103279073ffffffffffffffffffffffffffffffffffffffff1681565b3480156105ae57600080fd5b506102a36105bd366004613489565b60009182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b61040a610601366004613674565b6112c2565b34801561061257600080fd5b50610626610621366004613427565b611710565b60405161025894939291906136e5565b34801561064257600080fd5b5061040a600081565b34801561065757600080fd5b50610281610666366004613767565b61184d565b34801561067757600080fd5b506102816106863660046137bb565b611aa4565b34801561069757600080fd5b5060015461032790610100900473ffffffffffffffffffffffffffffffffffffffff1681565b3480156106c957600080fd5b506102816106d8366004613106565b611b52565b3480156106e957600080fd5b506102816106f83660046137d6565b611bf6565b34801561070957600080fd5b50600154610737907501000000000000000000000000000000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610258565b34801561075c57600080fd5b5061028161076b366004613489565b611c47565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561079a81611c6c565b6107a5848484611c76565b50505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061083e57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561086e81611c6c565b60005b828110156108e0573684848381811061088c5761088c61381c565b90506040020190508060200135600660006175308460000160208101906108b39190613427565b6108bd919061384b565b63ffffffff16815260208101919091526040016000206003015550600101610871565b507fd6dac4a884ac5f80781f154f28ed88464b2097f6b866143bb77e46736572136a8383604051610912929190613895565b60405180910390a1505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561094981611c6c565b73ffffffffffffffffffffffffffffffffffffffff841660009081527f9b50f4667d2d24216ccbf0dce3a90c0f620fa4d895e7b069d80ff6247fd25620602052604090205460ff166109c7576040517f5ee08b9700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517ffd9be52200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301526024820184905285169063fd9be52290604401600060405180830381600087803b158015610a3757600080fd5b505af1158015610a4b573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff8089168252871660208201529081018590527f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb9250606001905060405180910390a150505050565b600154610100900473ffffffffffffffffffffffffffffffffffffffff163314610b04576040517f611136c800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b2e8160018054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611ca6565b50565b80516020818301810180516005825292820191909301209152805460018201805463ffffffff9092169291610b65906138e9565b80601f0160208091040260200160405190810160405280929190818152602001828054610b91906138e9565b8015610bde5780601f10610bb357610100808354040283529160200191610bde565b820191906000526020600020905b815481529060010190602001808311610bc157829003601f168201915b5050505050905082565b6000610bf381611c6c565b8115610c0557610c01611e1d565b5050565b610c01611e9c565b60008585604051610c1f92919061393c565b6040519081900381207f1876eed9000000000000000000000000000000000000000000000000000000008252915073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690631876eed990610ca9908e908e908e908e908e9089908d908d908d90600401613995565b6020604051808303816000875af1158015610cc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cec91906139f4565b610d22576040517f500c44b400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050505050505050565b63ffffffff8116600090815260036020908152604091829020805483518184028101840190945280845260609392830182828015610daa57602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610d7b5790505b50505050509050919050565b73ffffffffffffffffffffffffffffffffffffffff811660009081527f93c430521711328044ae92d0f1f1286cf040bc4a382f1642bd89984e86630553602052604081205460ff1615610e0b57506000919050565b6001547501000000000000000000000000000000000000000000900467ffffffffffffffff161580610e81575073ffffffffffffffffffffffffffffffffffffffff821660009081527f4ac82e3087b7dedf7f532cbc6915c722df8c1e31f1388c318a617b52760eaf8b602052604090205460ff165b15610e8e57506001919050565b506000919050565b919050565b600082815260208190526040902060010154610eb681611c6c565b610ec08383611ef3565b505050565b6040805160808101825263ffffffff8716815267ffffffffffffffff8616602082015273ffffffffffffffffffffffffffffffffffffffff8086169282019290925260015461ffff7d01000000000000000000000000000000000000000000000000000000000082041660608301526000926101009091041663f0b81bb482600685610f536175308d61384b565b63ffffffff1663ffffffff16815260200190815260200160002087876040518563ffffffff1660e01b8152600401610f8e9493929190613aac565b602060405180830381865afa158015610fab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fcf9190613b7c565b979650505050505050565b6040517fdec9f03100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000828260405161101e92919061393c565b6040519081900381207f5f6970c3000000000000000000000000000000000000000000000000000000008252915073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690635f6970c3906110a2908b908b908b908b908b908990600401613b95565b6020604051808303816000875af11580156110c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e591906139f4565b61111b576040517f500c44b400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611129878787878787611fb9565b5050505050505050565b600061113e81611c6c565b60005b828110156111eb573684848381811061115c5761115c61381c565b6060029190910191505060408101356004600061117c6020850185613106565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008360200160208101906111cb9190613427565b63ffffffff16815260208101919091526040016000205550600101611141565b507f360a0efdea8fcc9a11ee20a2099e314ddcf49a941d66790cd4e5adea30faa0748383604051610912929190613bd6565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561124781611c6c565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040519081527ff724a45d041687842411f2b977ef22ab8f43c8f1104f4592b42a00f9b34a643d906020015b60405180910390a15050565b60006112d460a0850160808601613106565b6112dd81610db6565b611313576040517f4ab5ebcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061132b336113266020890189613427565b612113565b60408051608081019091529091506000908061134a60208a018a613427565b63ffffffff16815260200161136560808a0160608b01613c44565b67ffffffffffffffff16815260200161138460a08a0160808b01613106565b73ffffffffffffffffffffffffffffffffffffffff1681526001547d010000000000000000000000000000000000000000000000000000000000900461ffff166020918201529091506000906006908290617530906113e5908c018c613427565b6113ef919061384b565b63ffffffff1663ffffffff168152602001908152602001600020604051806080016040529081600082018054611424906138e9565b80601f0160208091040260200160405190810160405280929190818152602001828054611450906138e9565b801561149d5780601f106114725761010080835404028352916020019161149d565b820191906000526020600020905b81548152906001019060200180831161148057829003601f168201915b505050505081526020016001820180546114b6906138e9565b80601f01602080910402602001604051908101604052809291908181526020018280546114e2906138e9565b801561152f5780601f106115045761010080835404028352916020019161152f565b820191906000526020600020905b81548152906001019060200180831161151257829003601f168201915b5050509183525050600282015461ffff166020808301919091526003909201546040909101529091506000906115ab90859061156d908c018c613c5f565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505060408c01356121aa565b6001546040517fd135ca93000000000000000000000000000000000000000000000000000000008152919250610100900473ffffffffffffffffffffffffffffffffffffffff169063d135ca9390611611908690869086908e908e903390600401613cc4565b6020604051808303816000875af1158015611630573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116549190613b7c565b825160208401516040517f1c92115f00000000000000000000000000000000000000000000000000000000815292985073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001692631c92115f926116d29290918690600401613dd7565b600060405180830381600087803b1580156116ec57600080fd5b505af1158015611700573d6000803e3d6000fd5b5050505050505050509392505050565b60066020526000908152604090208054819061172b906138e9565b80601f0160208091040260200160405190810160405280929190818152602001828054611757906138e9565b80156117a45780601f10611779576101008083540402835291602001916117a4565b820191906000526020600020905b81548152906001019060200180831161178757829003601f168201915b5050505050908060010180546117b9906138e9565b80601f01602080910402602001604051908101604052809291908181526020018280546117e5906138e9565b80156118325780601f1061180757610100808354040283529160200191611832565b820191906000526020600020905b81548152906001019060200180831161181557829003601f168201915b505050506002830154600390930154919261ffff1691905084565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561187781611c6c565b60005b82811015611a7257368484838181106118955761189561381c565b90506020028101906118a79190613e1a565b905060006175306118bb6020840184613427565b6118c5919061384b565b63ffffffff811660009081526006602052604090208054919250906118e9906138e9565b9050600003611a01576118ff6020830183613c5f565b63ffffffff8316600090815260066020526040902091611920919083613ea8565b5061192e6040830183613c5f565b63ffffffff8316600090815260066020526040902060010191611952919083613ea8565b508060056119636020850185613c5f565b60405161197192919061393c565b9081526040805191829003602001909120805463ffffffff939093167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000909316929092179091556119c490830183613c5f565b60056119d36020860186613c5f565b6040516119e192919061393c565b908152602001604051809103902060010191826119ff929190613ea8565b505b611a1160808301606084016137bb565b63ffffffff9190911660009081526006602052604090206002810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001661ffff909316929092179091556080919091013560039091015560010161187a565b507f53ede267f8a00cf87be90c85641900454b96a922b10a82a0d5f5b4d93b16b38a8383604051610912929190614026565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775611ace81611c6c565b600180547fff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167d01000000000000000000000000000000000000000000000000000000000061ffff8516908102919091179091556040519081527f7af0ac740036ffb1c97b03697859d729e80a44ae5030543d64971c313565ab4d906020016112b6565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775611b7c81611c6c565b600180547fffffffffffffffffffffff0000000000000000000000000000000000000000ff1661010073ffffffffffffffffffffffffffffffffffffffff8516908102919091179091556040519081527f1399be28223800f8669b3ba5f8721d9fc16fc4e8d0bbf98378791c8c5a3015e0906020016112b6565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775611c2081611c6c565b63ffffffff84166000908152600360205260409020611c40908484612f31565b5050505050565b600082815260208190526040902060010154611c6281611c6c565b610ec083836121bf565b610b2e8133612284565b73ffffffffffffffffffffffffffffffffffffffff8316611c9b57610ec0828261233c565b610ec0838383612442565b6040517ffaaebd2100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff84169063faaebd2190602401602060405180830381865afa158015611d13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d379190613b7c565b90508015610ec0576040517ffd9be52200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301526024820183905284169063fd9be52290604401600060405180830381600087803b158015611daf57600080fd5b505af1158015611dc3573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff8088168252861660208201529081018490527f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb92506060019050610912565b611e256124b0565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b611ea461251f565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33611e72565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca82148015611f50575060008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16155b15611faf5760018054601590611f88907501000000000000000000000000000000000000000000900467ffffffffffffffff1661416d565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b610c01828261258b565b600060058787604051611fcd92919061393c565b908152604080519182900360209081018320838301909252815463ffffffff16835260018201805491840191612002906138e9565b80601f016020809104026020016040519081016040528092919081815260200182805461202e906138e9565b801561207b5780601f106120505761010080835404028352916020019161207b565b820191906000526020600020905b81548152906001019060200180831161205e57829003601f168201915b50505050508152505090506120fd87878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8b018190048102820181019092528981529250899150889081908401838280828437600092019190915250505050602084015161267b565b805161210a9084846126c6565b50505050505050565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260046020908152604080832063ffffffff851684529091529020548061083e576040517ff25127e600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015263ffffffff831660248201526044015b60405180910390fd5b60606121b78484846127e5565b949350505050565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca8214801561221b575060008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff165b1561227a5760018054601590612253907501000000000000000000000000000000000000000000900467ffffffffffffffff16614194565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b610c018282612814565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610c01576122c2816128cb565b6122cd8360206128ea565b6040516020016122de9291906141d6565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a00000000000000000000000000000000000000000000000000000000082526121a191600401614257565b73ffffffffffffffffffffffffffffffffffffffff8216612389576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d80600081146123e3576040519150601f19603f3d011682016040523d82523d6000602084013e6123e8565b606091505b5050905080610ec0576040517f465bc83400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152602481018390526044016121a1565b73ffffffffffffffffffffffffffffffffffffffff821661248f576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610ec073ffffffffffffffffffffffffffffffffffffffff84168383612b34565b60015460ff161561251d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016121a1565b565b60015460ff1661251d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016121a1565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610c015760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff85168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905561261d3390565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b8080519060200120828051906020012014610ec05782826040517f5cc0c62a0000000000000000000000000000000000000000000000000000000081526004016121a192919061426a565b8263ffffffff166175306126da8484612bc1565b6126e4919061384b565b63ffffffff1614612751576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f44564e41646170746572426173653a20696e76616c696420737263456964000060448201526064016121a1565b60008060006127608585612bf2565b9250925092508273ffffffffffffffffffffffffffffffffffffffff16630223536e838367ffffffffffffffff6040518463ffffffff1660e01b81526004016127ab93929190614298565b600060405180830381600087803b1580156127c557600080fd5b505af11580156127d9573d6000803e3d6000fd5b50505050505050505050565b60608382846040516020016127fc939291906142cb565b60405160208183030381529060405290509392505050565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1615610c015760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b606061083e73ffffffffffffffffffffffffffffffffffffffff831660145b606060006128f98360026142f8565b61290490600261430f565b67ffffffffffffffff81111561291c5761291c613121565b6040519080825280601f01601f191660200182016040528015612946576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061297d5761297d61381c565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106129e0576129e061381c565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000612a1c8460026142f8565b612a2790600161430f565b90505b6001811115612ac4577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110612a6857612a6861381c565b1a60f81b828281518110612a7e57612a7e61381c565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c93612abd81614322565b9050612a2a565b508315612b2d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016121a1565b9392505050565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052610ec0908490612cc1565b600082604983612bd282600461430f565b92612bdf93929190614357565b612be891614381565b60e01c9392505050565b6000606081612c036051604061430f565b8414612c3b576040517ff1d10e0d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612c58612c4c602060008789614357565b612c55916143c9565b90565b9250612c68604060208688614357565b612c71916143c9565b9050612c808460408188614357565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509598929750929550909350505050565b6000612d23826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16612dd09092919063ffffffff16565b9050805160001480612d44575080806020019051810190612d4491906139f4565b610ec0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016121a1565b60606121b78484600085856000808673ffffffffffffffffffffffffffffffffffffffff168587604051612e049190614405565b60006040518083038185875af1925050503d8060008114612e41576040519150601f19603f3d011682016040523d82523d6000602084013e612e46565b606091505b5091509150610fcf8783838760608315612ee8578251600003612ee15773ffffffffffffffffffffffffffffffffffffffff85163b612ee1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016121a1565b50816121b7565b6121b78383815115612efd5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a19190614257565b82805482825590600052602060002090601f01602090048101928215612fca5791602002820160005b83821115612f9b57833560ff1683826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302612f5a565b8015612fc85782816101000a81549060ff0219169055600101602081600001049283019260010302612f9b565b505b50612fd6929150612fda565b5090565b5b80821115612fd65760008155600101612fdb565b803573ffffffffffffffffffffffffffffffffffffffff81168114610e9657600080fd5b60008060006060848603121561302857600080fd5b61303184612fef565b925061303f60208501612fef565b9150604084013590509250925092565b60006020828403121561306157600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114612b2d57600080fd5b600080602083850312156130a457600080fd5b823567ffffffffffffffff808211156130bc57600080fd5b818501915085601f8301126130d057600080fd5b8135818111156130df57600080fd5b8660208260061b85010111156130f457600080fd5b60209290920196919550909350505050565b60006020828403121561311857600080fd5b612b2d82612fef565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561316257600080fd5b813567ffffffffffffffff8082111561317a57600080fd5b818401915084601f83011261318e57600080fd5b8135818111156131a0576131a0613121565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156131e6576131e6613121565b816040528281528760208487010111156131ff57600080fd5b826020860160208301376000928101602001929092525095945050505050565b60005b8381101561323a578181015183820152602001613222565b50506000910152565b6000815180845261325b81602086016020860161321f565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b63ffffffff831681526040602082015260006121b76040830184613243565b8015158114610b2e57600080fd5b6000602082840312156132cc57600080fd5b8135612b2d816132ac565b60008083601f8401126132e957600080fd5b50813567ffffffffffffffff81111561330157600080fd5b60208301915083602082850101111561331957600080fd5b9250929050565b60008060008060008060008060008060c08b8d03121561333f57600080fd5b8a35995060208b013567ffffffffffffffff8082111561335e57600080fd5b61336a8e838f016132d7565b909b50995060408d013591508082111561338357600080fd5b61338f8e838f016132d7565b909950975060608d01359150808211156133a857600080fd5b6133b48e838f016132d7565b909750955060808d01359150808211156133cd57600080fd5b506133da8d828e016132d7565b9150809450508092505060a08b013590509295989b9194979a5092959850565b60006020828403121561340c57600080fd5b5035919050565b803563ffffffff81168114610e9657600080fd5b60006020828403121561343957600080fd5b612b2d82613413565b6020808252825182820181905260009190848201906040850190845b8181101561347d57835160ff168352928401929184019160010161345e565b50909695505050505050565b6000806040838503121561349c57600080fd5b823591506134ac60208401612fef565b90509250929050565b803567ffffffffffffffff81168114610e9657600080fd5b6000806000806000608086880312156134e557600080fd5b6134ee86613413565b94506134fc602087016134b5565b935061350a60408701612fef565b9250606086013567ffffffffffffffff81111561352657600080fd5b613532888289016132d7565b969995985093965092949392505050565b60008060008060008060006080888a03121561355e57600080fd5b87359650602088013567ffffffffffffffff8082111561357d57600080fd5b6135898b838c016132d7565b909850965060408a01359150808211156135a257600080fd5b6135ae8b838c016132d7565b909650945060608a01359150808211156135c757600080fd5b506135d48a828b016132d7565b989b979a50959850939692959293505050565b600080604083850312156135fa57600080fd5b61360383612fef565b91506134ac60208401613413565b6000806020838503121561362457600080fd5b823567ffffffffffffffff8082111561363c57600080fd5b818501915085601f83011261365057600080fd5b81358181111561365f57600080fd5b8660206060830285010111156130f457600080fd5b60008060006040848603121561368957600080fd5b833567ffffffffffffffff808211156136a157600080fd5b9085019060a082880312156136b557600080fd5b909350602085013590808211156136cb57600080fd5b506136d8868287016132d7565b9497909650939450505050565b6080815260006136f86080830187613243565b828103602084015261370a8187613243565b61ffff95909516604084015250506060015292915050565b60008083601f84011261373457600080fd5b50813567ffffffffffffffff81111561374c57600080fd5b6020830191508360208260051b850101111561331957600080fd5b6000806020838503121561377a57600080fd5b823567ffffffffffffffff81111561379157600080fd5b61379d85828601613722565b90969095509350505050565b803561ffff81168114610e9657600080fd5b6000602082840312156137cd57600080fd5b612b2d826137a9565b6000806000604084860312156137eb57600080fd5b6137f484613413565b9250602084013567ffffffffffffffff81111561381057600080fd5b6136d886828701613722565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600063ffffffff80841680613889577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b92169190910692915050565b6020808252818101839052600090604080840186845b878110156138dc5763ffffffff6138c183613413565b168352818501358584015291830191908301906001016138ab565b5090979650505050505050565b600181811c908216806138fd57607f821691505b602082108103613936577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b8183823760009101908152919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b89815260c0602082015260006139af60c083018a8c61394c565b82810360408401526139c281898b61394c565b905086606084015282810360808401526139dd81868861394c565b9150508260a08301529a9950505050505050505050565b600060208284031215613a0657600080fd5b8151612b2d816132ac565b60008154613a1e816138e9565b808552602060018381168015613a3b5760018114613a7357613aa1565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008516838901528284151560051b8901019550613aa1565b866000528260002060005b85811015613a995781548a8201860152908301908401613a7e565b890184019650505b505050505092915050565b845163ffffffff16815260208086015167ffffffffffffffff169082015260408086015173ffffffffffffffffffffffffffffffffffffffff169082015260608086015161ffff169082015260c06080820152608060c08201526000613b16610140830186613a11565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff408382030160e0840152613b4d8160018801613a11565b905061ffff600287015416610100840152600386015461012084015282810360a0840152610fcf81858761394c565b600060208284031215613b8e57600080fd5b5051919050565b868152608060208201526000613baf60808301878961394c565b8281036040840152613bc281868861394c565b915050826060830152979650505050505050565b6020808252818101839052600090604080840186845b878110156138dc5773ffffffffffffffffffffffffffffffffffffffff613c1283612fef565b16835263ffffffff613c25868401613413565b1683860152818401358484015260609283019290910190600101613bec565b600060208284031215613c5657600080fd5b612b2d826134b5565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112613c9457600080fd5b83018035915067ffffffffffffffff821115613caf57600080fd5b60200191503681900382131561331957600080fd5b865163ffffffff16815260208088015167ffffffffffffffff169082015260408088015173ffffffffffffffffffffffffffffffffffffffff169082015260608088015161ffff169082015260006101008060808401528751608082850152613d31610180850182613243565b91505060208801517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0084830301610120850152613d6e8282613243565b91505061ffff604089015116610140840152606088015161016084015282810360a0840152613d9d8188613243565b905082810360c0840152613db281868861394c565b915050610fcf60e083018473ffffffffffffffffffffffffffffffffffffffff169052565b606081526000613dea6060830186613243565b8281036020840152613dfc8186613243565b90508281036040840152613e108185613243565b9695505050505050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61833603018112613e4e57600080fd5b9190910192915050565b601f821115610ec0576000816000526020600020601f850160051c81016020861015613e815750805b601f850160051c820191505b81811015613ea057828155600101613e8d565b505050505050565b67ffffffffffffffff831115613ec057613ec0613121565b613ed483613ece83546138e9565b83613e58565b6000601f841160018114613f265760008515613ef05750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355611c40565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b82811015613f755786850135825560209485019460019092019101613f55565b5086821015613fb0577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112613ff757600080fd5b830160208101925035905067ffffffffffffffff81111561401757600080fd5b80360382131561331957600080fd5b60208082528181018390526000906040808401600586901b850182018785805b8981101561412f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc089850301855282357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618c36030181126140a6578283fd5b8b0160a063ffffffff6140b883613413565b1686526140c789830183613fc2565b828b8901526140d9838901828461394c565b925050506140e988830183613fc2565b8783038a8901526140fb83828461394c565b92505050606061ffff61410f8285016137a9565b169087015260809182013591909501529386019391860191600101614046565b50919998505050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff80831681810361418a5761418a61413e565b6001019392505050565b600067ffffffffffffffff8216806141ae576141ae61413e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161420e81601785016020880161321f565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000601791840191820152835161424b81602884016020880161321f565b01602801949350505050565b602081526000612b2d6020830184613243565b60408152600061427d6040830185613243565b828103602084015261428f8185613243565b95945050505050565b6060815260006142ab6060830186613243565b905083602083015267ffffffffffffffff83166040830152949350505050565b838152826020820152600082516142e981604085016020870161321f565b91909101604001949350505050565b808202811582820484141761083e5761083e61413e565b8082018082111561083e5761083e61413e565b6000816143315761433161413e565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b6000808585111561436757600080fd5b8386111561437457600080fd5b5050820193919092039150565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156143c15780818660040360031b1b83161692505b505092915050565b8035602083101561083e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b60008251613e4e81846020870161321f56fea2646970667358221220c432de4619f1b6b97b29e23070c396e94d4d0d4e5328ef11f66a519f79d1663964736f6c63430008160033",
1168
+ "deployedBytecode": "0x6080604052600436106102015760003560e01c8063491606581161011d5780639e944965116100b0578063c416aa511161007f578063cd88b90311610064578063cd88b903146106dd578063d2ae2104146106fd578063d547741f1461075057600080fd5b8063c416aa511461068b578063c7b2370b146106bd57600080fd5b80639e94496514610606578063a217fddf14610636578063af896a3b1461064b578063c358de0a1461066b57600080fd5b8063724e78da116100ec578063724e78da14610555578063741bef1a1461057557806391d14854146105a257806395d376d7146105f357600080fd5b806349160658146104c55780634cfa6d2c146104e557806351b6a0fd1461051d5780635c975abb1461053d57600080fd5b806316c38b3c116101955780632de11376116101645780632de11376146104455780632f2ff15d1461046557806330bb3aac1461048557806336568abe146104a557600080fd5b806316c38b3c1461039a5780631a98b2e0146103ba578063248a9ca3146103da57806326e67a371461041857600080fd5b80631095b6d7116101d15780631095b6d7146102d3578063116191b6146102f3578063127124171461034c578063143b165f1461036c57600080fd5b8062bf2e801461020d57806301e336671461026157806301ffc9a71461028357806302d6e8b0146102b357600080fd5b3661020857005b600080fd5b34801561021957600080fd5b50600154610249907d010000000000000000000000000000000000000000000000000000000000900461ffff1681565b60405161ffff90911681526020015b60405180910390f35b34801561026d57600080fd5b5061028161027c366004613013565b610770565b005b34801561028f57600080fd5b506102a361029e36600461304f565b6107ab565b6040519015158152602001610258565b3480156102bf57600080fd5b506102816102ce366004613091565b610844565b3480156102df57600080fd5b506102816102ee366004613013565b61091f565b3480156102ff57600080fd5b506103277f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610258565b34801561035857600080fd5b50610281610367366004613106565b610aae565b34801561037857600080fd5b5061038c610387366004613150565b610b31565b60405161025892919061328d565b3480156103a657600080fd5b506102816103b53660046132ba565b610be8565b3480156103c657600080fd5b506102816103d5366004613320565b610c0d565b3480156103e657600080fd5b5061040a6103f53660046133fa565b60009081526020819052604090206001015490565b604051908152602001610258565b34801561042457600080fd5b50610438610433366004613427565b610d2f565b6040516102589190613442565b34801561045157600080fd5b506102a3610460366004613106565b610db6565b34801561047157600080fd5b50610281610480366004613489565b610e9b565b34801561049157600080fd5b5061040a6104a03660046134cd565b610ec5565b3480156104b157600080fd5b506102816104c0366004613489565b610fda565b3480156104d157600080fd5b506102816104e0366004613543565b61100c565b3480156104f157600080fd5b5061040a6105003660046135e7565b600460209081526000928352604080842090915290825290205481565b34801561052957600080fd5b50610281610538366004613611565b611133565b34801561054957600080fd5b5060015460ff166102a3565b34801561056157600080fd5b50610281610570366004613106565b61121d565b34801561058157600080fd5b506002546103279073ffffffffffffffffffffffffffffffffffffffff1681565b3480156105ae57600080fd5b506102a36105bd366004613489565b60009182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b61040a610601366004613674565b6112c2565b34801561061257600080fd5b50610626610621366004613427565b611710565b60405161025894939291906136e5565b34801561064257600080fd5b5061040a600081565b34801561065757600080fd5b50610281610666366004613767565b61184d565b34801561067757600080fd5b506102816106863660046137bb565b611aa4565b34801561069757600080fd5b5060015461032790610100900473ffffffffffffffffffffffffffffffffffffffff1681565b3480156106c957600080fd5b506102816106d8366004613106565b611b52565b3480156106e957600080fd5b506102816106f83660046137d6565b611bf6565b34801561070957600080fd5b50600154610737907501000000000000000000000000000000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610258565b34801561075c57600080fd5b5061028161076b366004613489565b611c47565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561079a81611c6c565b6107a5848484611c76565b50505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061083e57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561086e81611c6c565b60005b828110156108e0573684848381811061088c5761088c61381c565b90506040020190508060200135600660006175308460000160208101906108b39190613427565b6108bd919061384b565b63ffffffff16815260208101919091526040016000206003015550600101610871565b507fd6dac4a884ac5f80781f154f28ed88464b2097f6b866143bb77e46736572136a8383604051610912929190613895565b60405180910390a1505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561094981611c6c565b73ffffffffffffffffffffffffffffffffffffffff841660009081527f9b50f4667d2d24216ccbf0dce3a90c0f620fa4d895e7b069d80ff6247fd25620602052604090205460ff166109c7576040517f5ee08b9700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517ffd9be52200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301526024820184905285169063fd9be52290604401600060405180830381600087803b158015610a3757600080fd5b505af1158015610a4b573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff8089168252871660208201529081018590527f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb9250606001905060405180910390a150505050565b600154610100900473ffffffffffffffffffffffffffffffffffffffff163314610b04576040517f611136c800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b2e8160018054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611ca6565b50565b80516020818301810180516005825292820191909301209152805460018201805463ffffffff9092169291610b65906138e9565b80601f0160208091040260200160405190810160405280929190818152602001828054610b91906138e9565b8015610bde5780601f10610bb357610100808354040283529160200191610bde565b820191906000526020600020905b815481529060010190602001808311610bc157829003601f168201915b5050505050905082565b6000610bf381611c6c565b8115610c0557610c01611e1d565b5050565b610c01611e9c565b60008585604051610c1f92919061393c565b6040519081900381207f1876eed9000000000000000000000000000000000000000000000000000000008252915073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690631876eed990610ca9908e908e908e908e908e9089908d908d908d90600401613995565b6020604051808303816000875af1158015610cc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cec91906139f4565b610d22576040517f500c44b400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050505050505050565b63ffffffff8116600090815260036020908152604091829020805483518184028101840190945280845260609392830182828015610daa57602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610d7b5790505b50505050509050919050565b73ffffffffffffffffffffffffffffffffffffffff811660009081527f93c430521711328044ae92d0f1f1286cf040bc4a382f1642bd89984e86630553602052604081205460ff1615610e0b57506000919050565b6001547501000000000000000000000000000000000000000000900467ffffffffffffffff161580610e81575073ffffffffffffffffffffffffffffffffffffffff821660009081527f4ac82e3087b7dedf7f532cbc6915c722df8c1e31f1388c318a617b52760eaf8b602052604090205460ff165b15610e8e57506001919050565b506000919050565b919050565b600082815260208190526040902060010154610eb681611c6c565b610ec08383611ef3565b505050565b6040805160808101825263ffffffff8716815267ffffffffffffffff8616602082015273ffffffffffffffffffffffffffffffffffffffff8086169282019290925260015461ffff7d01000000000000000000000000000000000000000000000000000000000082041660608301526000926101009091041663f0b81bb482600685610f536175308d61384b565b63ffffffff1663ffffffff16815260200190815260200160002087876040518563ffffffff1660e01b8152600401610f8e9493929190613aac565b602060405180830381865afa158015610fab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fcf9190613b7c565b979650505050505050565b6040517fdec9f03100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000828260405161101e92919061393c565b6040519081900381207f5f6970c3000000000000000000000000000000000000000000000000000000008252915073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690635f6970c3906110a2908b908b908b908b908b908990600401613b95565b6020604051808303816000875af11580156110c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e591906139f4565b61111b576040517f500c44b400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611129878787878787611fb9565b5050505050505050565b600061113e81611c6c565b60005b828110156111eb573684848381811061115c5761115c61381c565b6060029190910191505060408101356004600061117c6020850185613106565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008360200160208101906111cb9190613427565b63ffffffff16815260208101919091526040016000205550600101611141565b507f360a0efdea8fcc9a11ee20a2099e314ddcf49a941d66790cd4e5adea30faa0748383604051610912929190613bd6565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561124781611c6c565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040519081527ff724a45d041687842411f2b977ef22ab8f43c8f1104f4592b42a00f9b34a643d906020015b60405180910390a15050565b60006112d460a0850160808601613106565b6112dd81610db6565b611313576040517f4ab5ebcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061132b336113266020890189613427565b612113565b60408051608081019091529091506000908061134a60208a018a613427565b63ffffffff16815260200161136560808a0160608b01613c44565b67ffffffffffffffff16815260200161138460a08a0160808b01613106565b73ffffffffffffffffffffffffffffffffffffffff1681526001547d010000000000000000000000000000000000000000000000000000000000900461ffff166020918201529091506000906006908290617530906113e5908c018c613427565b6113ef919061384b565b63ffffffff1663ffffffff168152602001908152602001600020604051806080016040529081600082018054611424906138e9565b80601f0160208091040260200160405190810160405280929190818152602001828054611450906138e9565b801561149d5780601f106114725761010080835404028352916020019161149d565b820191906000526020600020905b81548152906001019060200180831161148057829003601f168201915b505050505081526020016001820180546114b6906138e9565b80601f01602080910402602001604051908101604052809291908181526020018280546114e2906138e9565b801561152f5780601f106115045761010080835404028352916020019161152f565b820191906000526020600020905b81548152906001019060200180831161151257829003601f168201915b5050509183525050600282015461ffff166020808301919091526003909201546040909101529091506000906115ab90859061156d908c018c613c5f565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505060408c01356121aa565b6001546040517fd135ca93000000000000000000000000000000000000000000000000000000008152919250610100900473ffffffffffffffffffffffffffffffffffffffff169063d135ca9390611611908690869086908e908e903390600401613cc4565b6020604051808303816000875af1158015611630573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116549190613b7c565b825160208401516040517f1c92115f00000000000000000000000000000000000000000000000000000000815292985073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001692631c92115f926116d29290918690600401613dd7565b600060405180830381600087803b1580156116ec57600080fd5b505af1158015611700573d6000803e3d6000fd5b5050505050505050509392505050565b60066020526000908152604090208054819061172b906138e9565b80601f0160208091040260200160405190810160405280929190818152602001828054611757906138e9565b80156117a45780601f10611779576101008083540402835291602001916117a4565b820191906000526020600020905b81548152906001019060200180831161178757829003601f168201915b5050505050908060010180546117b9906138e9565b80601f01602080910402602001604051908101604052809291908181526020018280546117e5906138e9565b80156118325780601f1061180757610100808354040283529160200191611832565b820191906000526020600020905b81548152906001019060200180831161181557829003601f168201915b505050506002830154600390930154919261ffff1691905084565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561187781611c6c565b60005b82811015611a7257368484838181106118955761189561381c565b90506020028101906118a79190613e1a565b905060006175306118bb6020840184613427565b6118c5919061384b565b63ffffffff811660009081526006602052604090208054919250906118e9906138e9565b9050600003611a01576118ff6020830183613c5f565b63ffffffff8316600090815260066020526040902091611920919083613ea8565b5061192e6040830183613c5f565b63ffffffff8316600090815260066020526040902060010191611952919083613ea8565b508060056119636020850185613c5f565b60405161197192919061393c565b9081526040805191829003602001909120805463ffffffff939093167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000909316929092179091556119c490830183613c5f565b60056119d36020860186613c5f565b6040516119e192919061393c565b908152602001604051809103902060010191826119ff929190613ea8565b505b611a1160808301606084016137bb565b63ffffffff9190911660009081526006602052604090206002810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001661ffff909316929092179091556080919091013560039091015560010161187a565b507f53ede267f8a00cf87be90c85641900454b96a922b10a82a0d5f5b4d93b16b38a8383604051610912929190614026565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775611ace81611c6c565b600180547fff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167d01000000000000000000000000000000000000000000000000000000000061ffff8516908102919091179091556040519081527f7af0ac740036ffb1c97b03697859d729e80a44ae5030543d64971c313565ab4d906020016112b6565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775611b7c81611c6c565b600180547fffffffffffffffffffffff0000000000000000000000000000000000000000ff1661010073ffffffffffffffffffffffffffffffffffffffff8516908102919091179091556040519081527f1399be28223800f8669b3ba5f8721d9fc16fc4e8d0bbf98378791c8c5a3015e0906020016112b6565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775611c2081611c6c565b63ffffffff84166000908152600360205260409020611c40908484612f31565b5050505050565b600082815260208190526040902060010154611c6281611c6c565b610ec083836121bf565b610b2e8133612284565b73ffffffffffffffffffffffffffffffffffffffff8316611c9b57610ec0828261233c565b610ec0838383612442565b6040517ffaaebd2100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff84169063faaebd2190602401602060405180830381865afa158015611d13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d379190613b7c565b90508015610ec0576040517ffd9be52200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301526024820183905284169063fd9be52290604401600060405180830381600087803b158015611daf57600080fd5b505af1158015611dc3573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff8088168252861660208201529081018490527f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb92506060019050610912565b611e256124b0565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b611ea461251f565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33611e72565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca82148015611f50575060008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16155b15611faf5760018054601590611f88907501000000000000000000000000000000000000000000900467ffffffffffffffff1661416d565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b610c01828261258b565b600060058787604051611fcd92919061393c565b908152604080519182900360209081018320838301909252815463ffffffff16835260018201805491840191612002906138e9565b80601f016020809104026020016040519081016040528092919081815260200182805461202e906138e9565b801561207b5780601f106120505761010080835404028352916020019161207b565b820191906000526020600020905b81548152906001019060200180831161205e57829003601f168201915b50505050508152505090506120fd87878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8b018190048102820181019092528981529250899150889081908401838280828437600092019190915250505050602084015161267b565b805161210a9084846126c6565b50505050505050565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260046020908152604080832063ffffffff851684529091529020548061083e576040517ff25127e600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015263ffffffff831660248201526044015b60405180910390fd5b60606121b78484846127e5565b949350505050565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca8214801561221b575060008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff165b1561227a5760018054601590612253907501000000000000000000000000000000000000000000900467ffffffffffffffff16614194565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b610c018282612814565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610c01576122c2816128cb565b6122cd8360206128ea565b6040516020016122de9291906141d6565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a00000000000000000000000000000000000000000000000000000000082526121a191600401614257565b73ffffffffffffffffffffffffffffffffffffffff8216612389576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d80600081146123e3576040519150601f19603f3d011682016040523d82523d6000602084013e6123e8565b606091505b5050905080610ec0576040517f465bc83400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152602481018390526044016121a1565b73ffffffffffffffffffffffffffffffffffffffff821661248f576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610ec073ffffffffffffffffffffffffffffffffffffffff84168383612b34565b60015460ff161561251d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016121a1565b565b60015460ff1661251d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016121a1565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610c015760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff85168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905561261d3390565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b8080519060200120828051906020012014610ec05782826040517f5cc0c62a0000000000000000000000000000000000000000000000000000000081526004016121a192919061426a565b8263ffffffff166175306126da8484612bc1565b6126e4919061384b565b63ffffffff1614612751576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f44564e41646170746572426173653a20696e76616c696420737263456964000060448201526064016121a1565b60008060006127608585612bf2565b9250925092508273ffffffffffffffffffffffffffffffffffffffff16630223536e838367ffffffffffffffff6040518463ffffffff1660e01b81526004016127ab93929190614298565b600060405180830381600087803b1580156127c557600080fd5b505af11580156127d9573d6000803e3d6000fd5b50505050505050505050565b60608382846040516020016127fc939291906142cb565b60405160208183030381529060405290509392505050565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1615610c015760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b606061083e73ffffffffffffffffffffffffffffffffffffffff831660145b606060006128f98360026142f8565b61290490600261430f565b67ffffffffffffffff81111561291c5761291c613121565b6040519080825280601f01601f191660200182016040528015612946576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061297d5761297d61381c565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106129e0576129e061381c565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000612a1c8460026142f8565b612a2790600161430f565b90505b6001811115612ac4577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110612a6857612a6861381c565b1a60f81b828281518110612a7e57612a7e61381c565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c93612abd81614322565b9050612a2a565b508315612b2d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016121a1565b9392505050565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052610ec0908490612cc1565b600082604983612bd282600461430f565b92612bdf93929190614357565b612be891614381565b60e01c9392505050565b6000606081612c036051604061430f565b8414612c3b576040517ff1d10e0d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612c58612c4c602060008789614357565b612c55916143c9565b90565b9250612c68604060208688614357565b612c71916143c9565b9050612c808460408188614357565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509598929750929550909350505050565b6000612d23826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16612dd09092919063ffffffff16565b9050805160001480612d44575080806020019051810190612d4491906139f4565b610ec0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016121a1565b60606121b78484600085856000808673ffffffffffffffffffffffffffffffffffffffff168587604051612e049190614405565b60006040518083038185875af1925050503d8060008114612e41576040519150601f19603f3d011682016040523d82523d6000602084013e612e46565b606091505b5091509150610fcf8783838760608315612ee8578251600003612ee15773ffffffffffffffffffffffffffffffffffffffff85163b612ee1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016121a1565b50816121b7565b6121b78383815115612efd5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a19190614257565b82805482825590600052602060002090601f01602090048101928215612fca5791602002820160005b83821115612f9b57833560ff1683826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302612f5a565b8015612fc85782816101000a81549060ff0219169055600101602081600001049283019260010302612f9b565b505b50612fd6929150612fda565b5090565b5b80821115612fd65760008155600101612fdb565b803573ffffffffffffffffffffffffffffffffffffffff81168114610e9657600080fd5b60008060006060848603121561302857600080fd5b61303184612fef565b925061303f60208501612fef565b9150604084013590509250925092565b60006020828403121561306157600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114612b2d57600080fd5b600080602083850312156130a457600080fd5b823567ffffffffffffffff808211156130bc57600080fd5b818501915085601f8301126130d057600080fd5b8135818111156130df57600080fd5b8660208260061b85010111156130f457600080fd5b60209290920196919550909350505050565b60006020828403121561311857600080fd5b612b2d82612fef565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561316257600080fd5b813567ffffffffffffffff8082111561317a57600080fd5b818401915084601f83011261318e57600080fd5b8135818111156131a0576131a0613121565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156131e6576131e6613121565b816040528281528760208487010111156131ff57600080fd5b826020860160208301376000928101602001929092525095945050505050565b60005b8381101561323a578181015183820152602001613222565b50506000910152565b6000815180845261325b81602086016020860161321f565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b63ffffffff831681526040602082015260006121b76040830184613243565b8015158114610b2e57600080fd5b6000602082840312156132cc57600080fd5b8135612b2d816132ac565b60008083601f8401126132e957600080fd5b50813567ffffffffffffffff81111561330157600080fd5b60208301915083602082850101111561331957600080fd5b9250929050565b60008060008060008060008060008060c08b8d03121561333f57600080fd5b8a35995060208b013567ffffffffffffffff8082111561335e57600080fd5b61336a8e838f016132d7565b909b50995060408d013591508082111561338357600080fd5b61338f8e838f016132d7565b909950975060608d01359150808211156133a857600080fd5b6133b48e838f016132d7565b909750955060808d01359150808211156133cd57600080fd5b506133da8d828e016132d7565b9150809450508092505060a08b013590509295989b9194979a5092959850565b60006020828403121561340c57600080fd5b5035919050565b803563ffffffff81168114610e9657600080fd5b60006020828403121561343957600080fd5b612b2d82613413565b6020808252825182820181905260009190848201906040850190845b8181101561347d57835160ff168352928401929184019160010161345e565b50909695505050505050565b6000806040838503121561349c57600080fd5b823591506134ac60208401612fef565b90509250929050565b803567ffffffffffffffff81168114610e9657600080fd5b6000806000806000608086880312156134e557600080fd5b6134ee86613413565b94506134fc602087016134b5565b935061350a60408701612fef565b9250606086013567ffffffffffffffff81111561352657600080fd5b613532888289016132d7565b969995985093965092949392505050565b60008060008060008060006080888a03121561355e57600080fd5b87359650602088013567ffffffffffffffff8082111561357d57600080fd5b6135898b838c016132d7565b909850965060408a01359150808211156135a257600080fd5b6135ae8b838c016132d7565b909650945060608a01359150808211156135c757600080fd5b506135d48a828b016132d7565b989b979a50959850939692959293505050565b600080604083850312156135fa57600080fd5b61360383612fef565b91506134ac60208401613413565b6000806020838503121561362457600080fd5b823567ffffffffffffffff8082111561363c57600080fd5b818501915085601f83011261365057600080fd5b81358181111561365f57600080fd5b8660206060830285010111156130f457600080fd5b60008060006040848603121561368957600080fd5b833567ffffffffffffffff808211156136a157600080fd5b9085019060a082880312156136b557600080fd5b909350602085013590808211156136cb57600080fd5b506136d8868287016132d7565b9497909650939450505050565b6080815260006136f86080830187613243565b828103602084015261370a8187613243565b61ffff95909516604084015250506060015292915050565b60008083601f84011261373457600080fd5b50813567ffffffffffffffff81111561374c57600080fd5b6020830191508360208260051b850101111561331957600080fd5b6000806020838503121561377a57600080fd5b823567ffffffffffffffff81111561379157600080fd5b61379d85828601613722565b90969095509350505050565b803561ffff81168114610e9657600080fd5b6000602082840312156137cd57600080fd5b612b2d826137a9565b6000806000604084860312156137eb57600080fd5b6137f484613413565b9250602084013567ffffffffffffffff81111561381057600080fd5b6136d886828701613722565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600063ffffffff80841680613889577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b92169190910692915050565b6020808252818101839052600090604080840186845b878110156138dc5763ffffffff6138c183613413565b168352818501358584015291830191908301906001016138ab565b5090979650505050505050565b600181811c908216806138fd57607f821691505b602082108103613936577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b8183823760009101908152919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b89815260c0602082015260006139af60c083018a8c61394c565b82810360408401526139c281898b61394c565b905086606084015282810360808401526139dd81868861394c565b9150508260a08301529a9950505050505050505050565b600060208284031215613a0657600080fd5b8151612b2d816132ac565b60008154613a1e816138e9565b808552602060018381168015613a3b5760018114613a7357613aa1565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008516838901528284151560051b8901019550613aa1565b866000528260002060005b85811015613a995781548a8201860152908301908401613a7e565b890184019650505b505050505092915050565b845163ffffffff16815260208086015167ffffffffffffffff169082015260408086015173ffffffffffffffffffffffffffffffffffffffff169082015260608086015161ffff169082015260c06080820152608060c08201526000613b16610140830186613a11565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff408382030160e0840152613b4d8160018801613a11565b905061ffff600287015416610100840152600386015461012084015282810360a0840152610fcf81858761394c565b600060208284031215613b8e57600080fd5b5051919050565b868152608060208201526000613baf60808301878961394c565b8281036040840152613bc281868861394c565b915050826060830152979650505050505050565b6020808252818101839052600090604080840186845b878110156138dc5773ffffffffffffffffffffffffffffffffffffffff613c1283612fef565b16835263ffffffff613c25868401613413565b1683860152818401358484015260609283019290910190600101613bec565b600060208284031215613c5657600080fd5b612b2d826134b5565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112613c9457600080fd5b83018035915067ffffffffffffffff821115613caf57600080fd5b60200191503681900382131561331957600080fd5b865163ffffffff16815260208088015167ffffffffffffffff169082015260408088015173ffffffffffffffffffffffffffffffffffffffff169082015260608088015161ffff169082015260006101008060808401528751608082850152613d31610180850182613243565b91505060208801517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0084830301610120850152613d6e8282613243565b91505061ffff604089015116610140840152606088015161016084015282810360a0840152613d9d8188613243565b905082810360c0840152613db281868861394c565b915050610fcf60e083018473ffffffffffffffffffffffffffffffffffffffff169052565b606081526000613dea6060830186613243565b8281036020840152613dfc8186613243565b90508281036040840152613e108185613243565b9695505050505050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61833603018112613e4e57600080fd5b9190910192915050565b601f821115610ec0576000816000526020600020601f850160051c81016020861015613e815750805b601f850160051c820191505b81811015613ea057828155600101613e8d565b505050505050565b67ffffffffffffffff831115613ec057613ec0613121565b613ed483613ece83546138e9565b83613e58565b6000601f841160018114613f265760008515613ef05750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355611c40565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b82811015613f755786850135825560209485019460019092019101613f55565b5086821015613fb0577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112613ff757600080fd5b830160208101925035905067ffffffffffffffff81111561401757600080fd5b80360382131561331957600080fd5b60208082528181018390526000906040808401600586901b850182018785805b8981101561412f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc089850301855282357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618c36030181126140a6578283fd5b8b0160a063ffffffff6140b883613413565b1686526140c789830183613fc2565b828b8901526140d9838901828461394c565b925050506140e988830183613fc2565b8783038a8901526140fb83828461394c565b92505050606061ffff61410f8285016137a9565b169087015260809182013591909501529386019391860191600101614046565b50919998505050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff80831681810361418a5761418a61413e565b6001019392505050565b600067ffffffffffffffff8216806141ae576141ae61413e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161420e81601785016020880161321f565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000601791840191820152835161424b81602884016020880161321f565b01602801949350505050565b602081526000612b2d6020830184613243565b60408152600061427d6040830185613243565b828103602084015261428f8185613243565b95945050505050565b6060815260006142ab6060830186613243565b905083602083015267ffffffffffffffff83166040830152949350505050565b838152826020820152600082516142e981604085016020870161321f565b91909101604001949350505050565b808202811582820484141761083e5761083e61413e565b8082018082111561083e5761083e61413e565b6000816143315761433161413e565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b6000808585111561436757600080fd5b8386111561437457600080fd5b5050820193919092039150565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156143c15780818660040360031b1b83161692505b505092915050565b8035602083101561083e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b60008251613e4e81846020870161321f56fea2646970667358221220c432de4619f1b6b97b29e23070c396e94d4d0d4e5328ef11f66a519f79d1663964736f6c63430008160033",
1169
+ "linkReferences": {},
1170
+ "deployedLinkReferences": {}
1171
+ }