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

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,1040 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "CCIPDVNAdapter",
4
+ "sourceName": "contracts/uln/dvn/adapters/CCIP/CCIPDVNAdapter.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address[]",
10
+ "name": "_admins",
11
+ "type": "address[]"
12
+ },
13
+ {
14
+ "internalType": "address",
15
+ "name": "_router",
16
+ "type": "address"
17
+ }
18
+ ],
19
+ "stateMutability": "nonpayable",
20
+ "type": "constructor"
21
+ },
22
+ {
23
+ "inputs": [
24
+ {
25
+ "internalType": "address",
26
+ "name": "router",
27
+ "type": "address"
28
+ }
29
+ ],
30
+ "name": "CCIPDVNAdapter_InvalidRouter",
31
+ "type": "error"
32
+ },
33
+ {
34
+ "inputs": [
35
+ {
36
+ "internalType": "uint64",
37
+ "name": "chainSelector",
38
+ "type": "uint64"
39
+ },
40
+ {
41
+ "internalType": "bytes",
42
+ "name": "peer",
43
+ "type": "bytes"
44
+ }
45
+ ],
46
+ "name": "CCIPDVNAdapter_UntrustedPeer",
47
+ "type": "error"
48
+ },
49
+ {
50
+ "inputs": [
51
+ {
52
+ "internalType": "uint256",
53
+ "name": "actual",
54
+ "type": "uint256"
55
+ },
56
+ {
57
+ "internalType": "uint256",
58
+ "name": "requested",
59
+ "type": "uint256"
60
+ }
61
+ ],
62
+ "name": "DVNAdapter_InsufficientBalance",
63
+ "type": "error"
64
+ },
65
+ {
66
+ "inputs": [],
67
+ "name": "DVNAdapter_InvalidMessageSize",
68
+ "type": "error"
69
+ },
70
+ {
71
+ "inputs": [
72
+ {
73
+ "internalType": "address",
74
+ "name": "sendLib",
75
+ "type": "address"
76
+ },
77
+ {
78
+ "internalType": "uint32",
79
+ "name": "dstEid",
80
+ "type": "uint32"
81
+ }
82
+ ],
83
+ "name": "DVNAdapter_MissingRecieveLib",
84
+ "type": "error"
85
+ },
86
+ {
87
+ "inputs": [],
88
+ "name": "DVNAdapter_NotImplemented",
89
+ "type": "error"
90
+ },
91
+ {
92
+ "inputs": [
93
+ {
94
+ "internalType": "address",
95
+ "name": "_to",
96
+ "type": "address"
97
+ },
98
+ {
99
+ "internalType": "uint256",
100
+ "name": "_value",
101
+ "type": "uint256"
102
+ }
103
+ ],
104
+ "name": "Transfer_NativeFailed",
105
+ "type": "error"
106
+ },
107
+ {
108
+ "inputs": [],
109
+ "name": "Transfer_ToAddressIsZero",
110
+ "type": "error"
111
+ },
112
+ {
113
+ "inputs": [],
114
+ "name": "Worker_NotAllowed",
115
+ "type": "error"
116
+ },
117
+ {
118
+ "inputs": [],
119
+ "name": "Worker_OnlyMessageLib",
120
+ "type": "error"
121
+ },
122
+ {
123
+ "inputs": [],
124
+ "name": "Worker_RoleRenouncingDisabled",
125
+ "type": "error"
126
+ },
127
+ {
128
+ "anonymous": false,
129
+ "inputs": [
130
+ {
131
+ "components": [
132
+ {
133
+ "internalType": "uint32",
134
+ "name": "eid",
135
+ "type": "uint32"
136
+ },
137
+ {
138
+ "internalType": "uint16",
139
+ "name": "multiplierBps",
140
+ "type": "uint16"
141
+ },
142
+ {
143
+ "internalType": "uint64",
144
+ "name": "chainSelector",
145
+ "type": "uint64"
146
+ },
147
+ {
148
+ "internalType": "uint256",
149
+ "name": "gas",
150
+ "type": "uint256"
151
+ },
152
+ {
153
+ "internalType": "bytes",
154
+ "name": "peer",
155
+ "type": "bytes"
156
+ }
157
+ ],
158
+ "indexed": false,
159
+ "internalType": "struct ICCIPDVNAdapter.DstConfigParam[]",
160
+ "name": "params",
161
+ "type": "tuple[]"
162
+ }
163
+ ],
164
+ "name": "DstConfigSet",
165
+ "type": "event"
166
+ },
167
+ {
168
+ "anonymous": false,
169
+ "inputs": [
170
+ {
171
+ "indexed": false,
172
+ "internalType": "address",
173
+ "name": "account",
174
+ "type": "address"
175
+ }
176
+ ],
177
+ "name": "Paused",
178
+ "type": "event"
179
+ },
180
+ {
181
+ "anonymous": false,
182
+ "inputs": [
183
+ {
184
+ "components": [
185
+ {
186
+ "internalType": "address",
187
+ "name": "sendLib",
188
+ "type": "address"
189
+ },
190
+ {
191
+ "internalType": "uint32",
192
+ "name": "dstEid",
193
+ "type": "uint32"
194
+ },
195
+ {
196
+ "internalType": "bytes32",
197
+ "name": "receiveLib",
198
+ "type": "bytes32"
199
+ }
200
+ ],
201
+ "indexed": false,
202
+ "internalType": "struct ReceiveLibParam[]",
203
+ "name": "params",
204
+ "type": "tuple[]"
205
+ }
206
+ ],
207
+ "name": "ReceiveLibsSet",
208
+ "type": "event"
209
+ },
210
+ {
211
+ "anonymous": false,
212
+ "inputs": [
213
+ {
214
+ "indexed": true,
215
+ "internalType": "bytes32",
216
+ "name": "role",
217
+ "type": "bytes32"
218
+ },
219
+ {
220
+ "indexed": true,
221
+ "internalType": "bytes32",
222
+ "name": "previousAdminRole",
223
+ "type": "bytes32"
224
+ },
225
+ {
226
+ "indexed": true,
227
+ "internalType": "bytes32",
228
+ "name": "newAdminRole",
229
+ "type": "bytes32"
230
+ }
231
+ ],
232
+ "name": "RoleAdminChanged",
233
+ "type": "event"
234
+ },
235
+ {
236
+ "anonymous": false,
237
+ "inputs": [
238
+ {
239
+ "indexed": true,
240
+ "internalType": "bytes32",
241
+ "name": "role",
242
+ "type": "bytes32"
243
+ },
244
+ {
245
+ "indexed": true,
246
+ "internalType": "address",
247
+ "name": "account",
248
+ "type": "address"
249
+ },
250
+ {
251
+ "indexed": true,
252
+ "internalType": "address",
253
+ "name": "sender",
254
+ "type": "address"
255
+ }
256
+ ],
257
+ "name": "RoleGranted",
258
+ "type": "event"
259
+ },
260
+ {
261
+ "anonymous": false,
262
+ "inputs": [
263
+ {
264
+ "indexed": true,
265
+ "internalType": "bytes32",
266
+ "name": "role",
267
+ "type": "bytes32"
268
+ },
269
+ {
270
+ "indexed": true,
271
+ "internalType": "address",
272
+ "name": "account",
273
+ "type": "address"
274
+ },
275
+ {
276
+ "indexed": true,
277
+ "internalType": "address",
278
+ "name": "sender",
279
+ "type": "address"
280
+ }
281
+ ],
282
+ "name": "RoleRevoked",
283
+ "type": "event"
284
+ },
285
+ {
286
+ "anonymous": false,
287
+ "inputs": [
288
+ {
289
+ "indexed": false,
290
+ "internalType": "uint16",
291
+ "name": "multiplierBps",
292
+ "type": "uint16"
293
+ }
294
+ ],
295
+ "name": "SetDefaultMultiplierBps",
296
+ "type": "event"
297
+ },
298
+ {
299
+ "anonymous": false,
300
+ "inputs": [
301
+ {
302
+ "indexed": false,
303
+ "internalType": "address",
304
+ "name": "priceFeed",
305
+ "type": "address"
306
+ }
307
+ ],
308
+ "name": "SetPriceFeed",
309
+ "type": "event"
310
+ },
311
+ {
312
+ "anonymous": false,
313
+ "inputs": [
314
+ {
315
+ "indexed": false,
316
+ "internalType": "uint32",
317
+ "name": "dstEid",
318
+ "type": "uint32"
319
+ },
320
+ {
321
+ "indexed": false,
322
+ "internalType": "uint8[]",
323
+ "name": "optionTypes",
324
+ "type": "uint8[]"
325
+ }
326
+ ],
327
+ "name": "SetSupportedOptionTypes",
328
+ "type": "event"
329
+ },
330
+ {
331
+ "anonymous": false,
332
+ "inputs": [
333
+ {
334
+ "indexed": false,
335
+ "internalType": "address",
336
+ "name": "workerLib",
337
+ "type": "address"
338
+ }
339
+ ],
340
+ "name": "SetWorkerLib",
341
+ "type": "event"
342
+ },
343
+ {
344
+ "anonymous": false,
345
+ "inputs": [
346
+ {
347
+ "indexed": false,
348
+ "internalType": "address",
349
+ "name": "account",
350
+ "type": "address"
351
+ }
352
+ ],
353
+ "name": "Unpaused",
354
+ "type": "event"
355
+ },
356
+ {
357
+ "anonymous": false,
358
+ "inputs": [
359
+ {
360
+ "indexed": false,
361
+ "internalType": "address",
362
+ "name": "lib",
363
+ "type": "address"
364
+ },
365
+ {
366
+ "indexed": false,
367
+ "internalType": "address",
368
+ "name": "to",
369
+ "type": "address"
370
+ },
371
+ {
372
+ "indexed": false,
373
+ "internalType": "uint256",
374
+ "name": "amount",
375
+ "type": "uint256"
376
+ }
377
+ ],
378
+ "name": "Withdraw",
379
+ "type": "event"
380
+ },
381
+ {
382
+ "inputs": [],
383
+ "name": "DEFAULT_ADMIN_ROLE",
384
+ "outputs": [
385
+ {
386
+ "internalType": "bytes32",
387
+ "name": "",
388
+ "type": "bytes32"
389
+ }
390
+ ],
391
+ "stateMutability": "view",
392
+ "type": "function"
393
+ },
394
+ {
395
+ "inputs": [],
396
+ "name": "allowlistSize",
397
+ "outputs": [
398
+ {
399
+ "internalType": "uint64",
400
+ "name": "",
401
+ "type": "uint64"
402
+ }
403
+ ],
404
+ "stateMutability": "view",
405
+ "type": "function"
406
+ },
407
+ {
408
+ "inputs": [
409
+ {
410
+ "components": [
411
+ {
412
+ "internalType": "uint32",
413
+ "name": "dstEid",
414
+ "type": "uint32"
415
+ },
416
+ {
417
+ "internalType": "bytes",
418
+ "name": "packetHeader",
419
+ "type": "bytes"
420
+ },
421
+ {
422
+ "internalType": "bytes32",
423
+ "name": "payloadHash",
424
+ "type": "bytes32"
425
+ },
426
+ {
427
+ "internalType": "uint64",
428
+ "name": "confirmations",
429
+ "type": "uint64"
430
+ },
431
+ {
432
+ "internalType": "address",
433
+ "name": "sender",
434
+ "type": "address"
435
+ }
436
+ ],
437
+ "internalType": "struct ILayerZeroDVN.AssignJobParam",
438
+ "name": "_param",
439
+ "type": "tuple"
440
+ },
441
+ {
442
+ "internalType": "bytes",
443
+ "name": "_options",
444
+ "type": "bytes"
445
+ }
446
+ ],
447
+ "name": "assignJob",
448
+ "outputs": [
449
+ {
450
+ "internalType": "uint256",
451
+ "name": "totalFee",
452
+ "type": "uint256"
453
+ }
454
+ ],
455
+ "stateMutability": "payable",
456
+ "type": "function"
457
+ },
458
+ {
459
+ "inputs": [
460
+ {
461
+ "components": [
462
+ {
463
+ "internalType": "bytes32",
464
+ "name": "messageId",
465
+ "type": "bytes32"
466
+ },
467
+ {
468
+ "internalType": "uint64",
469
+ "name": "sourceChainSelector",
470
+ "type": "uint64"
471
+ },
472
+ {
473
+ "internalType": "bytes",
474
+ "name": "sender",
475
+ "type": "bytes"
476
+ },
477
+ {
478
+ "internalType": "bytes",
479
+ "name": "data",
480
+ "type": "bytes"
481
+ },
482
+ {
483
+ "components": [
484
+ {
485
+ "internalType": "address",
486
+ "name": "token",
487
+ "type": "address"
488
+ },
489
+ {
490
+ "internalType": "uint256",
491
+ "name": "amount",
492
+ "type": "uint256"
493
+ }
494
+ ],
495
+ "internalType": "struct Client.EVMTokenAmount[]",
496
+ "name": "destTokenAmounts",
497
+ "type": "tuple[]"
498
+ }
499
+ ],
500
+ "internalType": "struct Client.Any2EVMMessage",
501
+ "name": "_message",
502
+ "type": "tuple"
503
+ }
504
+ ],
505
+ "name": "ccipReceive",
506
+ "outputs": [],
507
+ "stateMutability": "nonpayable",
508
+ "type": "function"
509
+ },
510
+ {
511
+ "inputs": [],
512
+ "name": "defaultMultiplierBps",
513
+ "outputs": [
514
+ {
515
+ "internalType": "uint16",
516
+ "name": "",
517
+ "type": "uint16"
518
+ }
519
+ ],
520
+ "stateMutability": "view",
521
+ "type": "function"
522
+ },
523
+ {
524
+ "inputs": [
525
+ {
526
+ "internalType": "uint32",
527
+ "name": "dstEid",
528
+ "type": "uint32"
529
+ }
530
+ ],
531
+ "name": "dstConfig",
532
+ "outputs": [
533
+ {
534
+ "internalType": "uint64",
535
+ "name": "chainSelector",
536
+ "type": "uint64"
537
+ },
538
+ {
539
+ "internalType": "uint16",
540
+ "name": "multiplierBps",
541
+ "type": "uint16"
542
+ },
543
+ {
544
+ "internalType": "bytes",
545
+ "name": "peer",
546
+ "type": "bytes"
547
+ },
548
+ {
549
+ "internalType": "uint256",
550
+ "name": "gas",
551
+ "type": "uint256"
552
+ }
553
+ ],
554
+ "stateMutability": "view",
555
+ "type": "function"
556
+ },
557
+ {
558
+ "inputs": [
559
+ {
560
+ "internalType": "uint32",
561
+ "name": "_dstEid",
562
+ "type": "uint32"
563
+ },
564
+ {
565
+ "internalType": "uint64",
566
+ "name": "_confirmations",
567
+ "type": "uint64"
568
+ },
569
+ {
570
+ "internalType": "address",
571
+ "name": "_sender",
572
+ "type": "address"
573
+ },
574
+ {
575
+ "internalType": "bytes",
576
+ "name": "_options",
577
+ "type": "bytes"
578
+ }
579
+ ],
580
+ "name": "getFee",
581
+ "outputs": [
582
+ {
583
+ "internalType": "uint256",
584
+ "name": "totalFee",
585
+ "type": "uint256"
586
+ }
587
+ ],
588
+ "stateMutability": "view",
589
+ "type": "function"
590
+ },
591
+ {
592
+ "inputs": [
593
+ {
594
+ "internalType": "bytes32",
595
+ "name": "role",
596
+ "type": "bytes32"
597
+ }
598
+ ],
599
+ "name": "getRoleAdmin",
600
+ "outputs": [
601
+ {
602
+ "internalType": "bytes32",
603
+ "name": "",
604
+ "type": "bytes32"
605
+ }
606
+ ],
607
+ "stateMutability": "view",
608
+ "type": "function"
609
+ },
610
+ {
611
+ "inputs": [
612
+ {
613
+ "internalType": "uint32",
614
+ "name": "_eid",
615
+ "type": "uint32"
616
+ }
617
+ ],
618
+ "name": "getSupportedOptionTypes",
619
+ "outputs": [
620
+ {
621
+ "internalType": "uint8[]",
622
+ "name": "",
623
+ "type": "uint8[]"
624
+ }
625
+ ],
626
+ "stateMutability": "view",
627
+ "type": "function"
628
+ },
629
+ {
630
+ "inputs": [
631
+ {
632
+ "internalType": "bytes32",
633
+ "name": "role",
634
+ "type": "bytes32"
635
+ },
636
+ {
637
+ "internalType": "address",
638
+ "name": "account",
639
+ "type": "address"
640
+ }
641
+ ],
642
+ "name": "grantRole",
643
+ "outputs": [],
644
+ "stateMutability": "nonpayable",
645
+ "type": "function"
646
+ },
647
+ {
648
+ "inputs": [
649
+ {
650
+ "internalType": "address",
651
+ "name": "_sender",
652
+ "type": "address"
653
+ }
654
+ ],
655
+ "name": "hasAcl",
656
+ "outputs": [
657
+ {
658
+ "internalType": "bool",
659
+ "name": "",
660
+ "type": "bool"
661
+ }
662
+ ],
663
+ "stateMutability": "view",
664
+ "type": "function"
665
+ },
666
+ {
667
+ "inputs": [
668
+ {
669
+ "internalType": "bytes32",
670
+ "name": "role",
671
+ "type": "bytes32"
672
+ },
673
+ {
674
+ "internalType": "address",
675
+ "name": "account",
676
+ "type": "address"
677
+ }
678
+ ],
679
+ "name": "hasRole",
680
+ "outputs": [
681
+ {
682
+ "internalType": "bool",
683
+ "name": "",
684
+ "type": "bool"
685
+ }
686
+ ],
687
+ "stateMutability": "view",
688
+ "type": "function"
689
+ },
690
+ {
691
+ "inputs": [],
692
+ "name": "paused",
693
+ "outputs": [
694
+ {
695
+ "internalType": "bool",
696
+ "name": "",
697
+ "type": "bool"
698
+ }
699
+ ],
700
+ "stateMutability": "view",
701
+ "type": "function"
702
+ },
703
+ {
704
+ "inputs": [],
705
+ "name": "priceFeed",
706
+ "outputs": [
707
+ {
708
+ "internalType": "address",
709
+ "name": "",
710
+ "type": "address"
711
+ }
712
+ ],
713
+ "stateMutability": "view",
714
+ "type": "function"
715
+ },
716
+ {
717
+ "inputs": [
718
+ {
719
+ "internalType": "address",
720
+ "name": "sendLib",
721
+ "type": "address"
722
+ },
723
+ {
724
+ "internalType": "uint32",
725
+ "name": "dstEid",
726
+ "type": "uint32"
727
+ }
728
+ ],
729
+ "name": "receiveLibs",
730
+ "outputs": [
731
+ {
732
+ "internalType": "bytes32",
733
+ "name": "receiveLib",
734
+ "type": "bytes32"
735
+ }
736
+ ],
737
+ "stateMutability": "view",
738
+ "type": "function"
739
+ },
740
+ {
741
+ "inputs": [
742
+ {
743
+ "internalType": "bytes32",
744
+ "name": "",
745
+ "type": "bytes32"
746
+ },
747
+ {
748
+ "internalType": "address",
749
+ "name": "",
750
+ "type": "address"
751
+ }
752
+ ],
753
+ "name": "renounceRole",
754
+ "outputs": [],
755
+ "stateMutability": "pure",
756
+ "type": "function"
757
+ },
758
+ {
759
+ "inputs": [
760
+ {
761
+ "internalType": "bytes32",
762
+ "name": "role",
763
+ "type": "bytes32"
764
+ },
765
+ {
766
+ "internalType": "address",
767
+ "name": "account",
768
+ "type": "address"
769
+ }
770
+ ],
771
+ "name": "revokeRole",
772
+ "outputs": [],
773
+ "stateMutability": "nonpayable",
774
+ "type": "function"
775
+ },
776
+ {
777
+ "inputs": [],
778
+ "name": "router",
779
+ "outputs": [
780
+ {
781
+ "internalType": "contract IRouterClient",
782
+ "name": "",
783
+ "type": "address"
784
+ }
785
+ ],
786
+ "stateMutability": "view",
787
+ "type": "function"
788
+ },
789
+ {
790
+ "inputs": [
791
+ {
792
+ "internalType": "uint16",
793
+ "name": "_multiplierBps",
794
+ "type": "uint16"
795
+ }
796
+ ],
797
+ "name": "setDefaultMultiplierBps",
798
+ "outputs": [],
799
+ "stateMutability": "nonpayable",
800
+ "type": "function"
801
+ },
802
+ {
803
+ "inputs": [
804
+ {
805
+ "components": [
806
+ {
807
+ "internalType": "uint32",
808
+ "name": "eid",
809
+ "type": "uint32"
810
+ },
811
+ {
812
+ "internalType": "uint16",
813
+ "name": "multiplierBps",
814
+ "type": "uint16"
815
+ },
816
+ {
817
+ "internalType": "uint64",
818
+ "name": "chainSelector",
819
+ "type": "uint64"
820
+ },
821
+ {
822
+ "internalType": "uint256",
823
+ "name": "gas",
824
+ "type": "uint256"
825
+ },
826
+ {
827
+ "internalType": "bytes",
828
+ "name": "peer",
829
+ "type": "bytes"
830
+ }
831
+ ],
832
+ "internalType": "struct ICCIPDVNAdapter.DstConfigParam[]",
833
+ "name": "_params",
834
+ "type": "tuple[]"
835
+ }
836
+ ],
837
+ "name": "setDstConfig",
838
+ "outputs": [],
839
+ "stateMutability": "nonpayable",
840
+ "type": "function"
841
+ },
842
+ {
843
+ "inputs": [
844
+ {
845
+ "internalType": "bool",
846
+ "name": "_paused",
847
+ "type": "bool"
848
+ }
849
+ ],
850
+ "name": "setPaused",
851
+ "outputs": [],
852
+ "stateMutability": "nonpayable",
853
+ "type": "function"
854
+ },
855
+ {
856
+ "inputs": [
857
+ {
858
+ "internalType": "address",
859
+ "name": "_priceFeed",
860
+ "type": "address"
861
+ }
862
+ ],
863
+ "name": "setPriceFeed",
864
+ "outputs": [],
865
+ "stateMutability": "nonpayable",
866
+ "type": "function"
867
+ },
868
+ {
869
+ "inputs": [
870
+ {
871
+ "components": [
872
+ {
873
+ "internalType": "address",
874
+ "name": "sendLib",
875
+ "type": "address"
876
+ },
877
+ {
878
+ "internalType": "uint32",
879
+ "name": "dstEid",
880
+ "type": "uint32"
881
+ },
882
+ {
883
+ "internalType": "bytes32",
884
+ "name": "receiveLib",
885
+ "type": "bytes32"
886
+ }
887
+ ],
888
+ "internalType": "struct ReceiveLibParam[]",
889
+ "name": "_params",
890
+ "type": "tuple[]"
891
+ }
892
+ ],
893
+ "name": "setReceiveLibs",
894
+ "outputs": [],
895
+ "stateMutability": "nonpayable",
896
+ "type": "function"
897
+ },
898
+ {
899
+ "inputs": [
900
+ {
901
+ "internalType": "uint32",
902
+ "name": "_eid",
903
+ "type": "uint32"
904
+ },
905
+ {
906
+ "internalType": "uint8[]",
907
+ "name": "_optionTypes",
908
+ "type": "uint8[]"
909
+ }
910
+ ],
911
+ "name": "setSupportedOptionTypes",
912
+ "outputs": [],
913
+ "stateMutability": "nonpayable",
914
+ "type": "function"
915
+ },
916
+ {
917
+ "inputs": [
918
+ {
919
+ "internalType": "address",
920
+ "name": "_workerFeeLib",
921
+ "type": "address"
922
+ }
923
+ ],
924
+ "name": "setWorkerFeeLib",
925
+ "outputs": [],
926
+ "stateMutability": "nonpayable",
927
+ "type": "function"
928
+ },
929
+ {
930
+ "inputs": [
931
+ {
932
+ "internalType": "uint64",
933
+ "name": "srcChainSelector",
934
+ "type": "uint64"
935
+ }
936
+ ],
937
+ "name": "srcConfig",
938
+ "outputs": [
939
+ {
940
+ "internalType": "uint32",
941
+ "name": "eid",
942
+ "type": "uint32"
943
+ },
944
+ {
945
+ "internalType": "bytes",
946
+ "name": "peer",
947
+ "type": "bytes"
948
+ }
949
+ ],
950
+ "stateMutability": "view",
951
+ "type": "function"
952
+ },
953
+ {
954
+ "inputs": [
955
+ {
956
+ "internalType": "bytes4",
957
+ "name": "interfaceId",
958
+ "type": "bytes4"
959
+ }
960
+ ],
961
+ "name": "supportsInterface",
962
+ "outputs": [
963
+ {
964
+ "internalType": "bool",
965
+ "name": "",
966
+ "type": "bool"
967
+ }
968
+ ],
969
+ "stateMutability": "view",
970
+ "type": "function"
971
+ },
972
+ {
973
+ "inputs": [
974
+ {
975
+ "internalType": "address",
976
+ "name": "_lib",
977
+ "type": "address"
978
+ },
979
+ {
980
+ "internalType": "address",
981
+ "name": "_to",
982
+ "type": "address"
983
+ },
984
+ {
985
+ "internalType": "uint256",
986
+ "name": "_amount",
987
+ "type": "uint256"
988
+ }
989
+ ],
990
+ "name": "withdrawFee",
991
+ "outputs": [],
992
+ "stateMutability": "nonpayable",
993
+ "type": "function"
994
+ },
995
+ {
996
+ "inputs": [
997
+ {
998
+ "internalType": "address",
999
+ "name": "_token",
1000
+ "type": "address"
1001
+ },
1002
+ {
1003
+ "internalType": "address",
1004
+ "name": "_to",
1005
+ "type": "address"
1006
+ },
1007
+ {
1008
+ "internalType": "uint256",
1009
+ "name": "_amount",
1010
+ "type": "uint256"
1011
+ }
1012
+ ],
1013
+ "name": "withdrawToken",
1014
+ "outputs": [],
1015
+ "stateMutability": "nonpayable",
1016
+ "type": "function"
1017
+ },
1018
+ {
1019
+ "inputs": [],
1020
+ "name": "workerFeeLib",
1021
+ "outputs": [
1022
+ {
1023
+ "internalType": "address",
1024
+ "name": "",
1025
+ "type": "address"
1026
+ }
1027
+ ],
1028
+ "stateMutability": "view",
1029
+ "type": "function"
1030
+ },
1031
+ {
1032
+ "stateMutability": "payable",
1033
+ "type": "receive"
1034
+ }
1035
+ ],
1036
+ "bytecode": "0x60a06040523480156200001157600080fd5b50d380156200001f57600080fd5b50d280156200002d57600080fd5b50604051620047573803806200475783398101604081905262000050916200031d565b604080516000808252602082019092526001805460ff61ffff60e81b01191661017760ed1b179055600280546001600160a01b031916905533918491612ee0918285858115620000a757620000a76000836200018f565b60005b85518110156200011557620001027f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de878381518110620000ee57620000ee62000403565b60200260200101516200018f60201b60201c565b6200010d816200042f565b9050620000aa565b5060005b815181101562000170576200015d7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775838381518110620000ee57620000ee62000403565b62000168816200042f565b905062000119565b5050506001600160a01b03909616608052506200047c95505050505050565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca82148015620001e057506000828152602081815260408083206001600160a01b038516845290915290205460ff16155b156200022d57600180546015906200020890600160a81b90046001600160401b03166200044b565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b6200023982826200023d565b5050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1662000239576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620002993390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b634e487b7160e01b600052604160045260246000fd5b80516000906001600160a81b03811681146200030e57600080fd5b6001600160a01b031692915050565b600080604083850312156200033157600080fd5b82516001600160401b03808211156200034957600080fd5b818501915085601f8301126200035e57600080fd5b8151602082821115620003755762000375620002dd565b8160051b604051601f19603f830116810181811086821117156200039d576200039d620002dd565b604052928352818301935084810182019289841115620003bc57600080fd5b948201945b83861015620003e557620003d586620002f3565b85529482019493820193620003c1565b9650620003f69050878201620002f3565b9450505050509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820162000444576200044462000419565b5060010190565b60006001600160401b038281166002600160401b0319810162000472576200047262000419565b6001019392505050565b6080516142aa620004ad600039600081816109af01528181610fdb015281816114d6015261191301526142aa6000f3fe6080604052600436106101d05760003560e01c8063741bef1a116100f7578063becc1fe311610095578063cd88b90311610064578063cd88b903146108a2578063d2ae2104146108dc578063d547741f14610949578063f887ea401461098357600080fd5b8063becc1fe31461079a578063c358de0a146107e2578063c416aa511461081c578063c7b2370b1461086857600080fd5b806391d14854116100d157806391d14854146106a357806395d376d71461070e5780639e94496514610721578063a217fddf1461076b57600080fd5b8063741bef1a146105c35780637a6ce2cc1461062f57806385572ffb1461066957600080fd5b80632de113761161016f5780634cfa6d2c1161013e5780634cfa6d2c146104cb57806351b6a0fd1461051d5780635c975abb14610557578063724e78da1461058957600080fd5b80632de11376146103e35780632f2ff15d1461041d57806330bb3aac1461045757806336568abe1461049157600080fd5b80631095b6d7116101ab5780631095b6d7146102d057806316c38b3c1461030a578063248a9ca31461034457806326e67a371461039c57600080fd5b8062bf2e80146101dc57806301e336671461024a57806301ffc9a71461028657600080fd5b366101d757005b600080fd5b3480156101e857600080fd5b50d380156101f557600080fd5b50d2801561020257600080fd5b50600154610232907d010000000000000000000000000000000000000000000000000000000000900461ffff1681565b60405161ffff90911681526020015b60405180910390f35b34801561025657600080fd5b50d3801561026357600080fd5b50d2801561027057600080fd5b5061028461027f36600461327a565b6109d1565b005b34801561029257600080fd5b50d3801561029f57600080fd5b50d280156102ac57600080fd5b506102c06102bb3660046132b6565b610a0c565b6040519015158152602001610241565b3480156102dc57600080fd5b50d380156102e957600080fd5b50d280156102f657600080fd5b5061028461030536600461327a565b610a68565b34801561031657600080fd5b50d3801561032357600080fd5b50d2801561033057600080fd5b5061028461033f366004613306565b610bf7565b34801561035057600080fd5b50d3801561035d57600080fd5b50d2801561036a57600080fd5b5061038e610379366004613323565b60009081526020819052604090206001015490565b604051908152602001610241565b3480156103a857600080fd5b50d380156103b557600080fd5b50d280156103c257600080fd5b506103d66103d1366004613350565b610c1c565b604051610241919061336b565b3480156103ef57600080fd5b50d380156103fc57600080fd5b50d2801561040957600080fd5b506102c06104183660046133b2565b610ca3565b34801561042957600080fd5b50d3801561043657600080fd5b50d2801561044357600080fd5b506102846104523660046133cd565b610d88565b34801561046357600080fd5b50d3801561047057600080fd5b50d2801561047d57600080fd5b5061038e61048c36600461345a565b610db2565b34801561049d57600080fd5b50d380156104aa57600080fd5b50d280156104b757600080fd5b506102846104c63660046133cd565b611053565b3480156104d757600080fd5b50d380156104e457600080fd5b50d280156104f157600080fd5b5061038e6105003660046134d0565b600460209081526000928352604080842090915290825290205481565b34801561052957600080fd5b50d3801561053657600080fd5b50d2801561054357600080fd5b506102846105523660046134fa565b611085565b34801561056357600080fd5b50d3801561057057600080fd5b50d2801561057d57600080fd5b5060015460ff166102c0565b34801561059557600080fd5b50d380156105a257600080fd5b50d280156105af57600080fd5b506102846105be3660046133b2565b611186565b3480156105cf57600080fd5b50d380156105dc57600080fd5b50d280156105e957600080fd5b5060025461060a9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610241565b34801561063b57600080fd5b50d3801561064857600080fd5b50d2801561065557600080fd5b506102846106643660046135b4565b61122b565b34801561067557600080fd5b50d3801561068257600080fd5b50d2801561068f57600080fd5b5061028461069e36600461360e565b6114be565b3480156106af57600080fd5b50d380156106bc57600080fd5b50d280156106c957600080fd5b506102c06106d83660046133cd565b60009182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b61038e61071c366004613643565b61168c565b34801561072d57600080fd5b50d3801561073a57600080fd5b50d2801561074757600080fd5b5061075b610756366004613350565b611a92565b604051610241949392919061371a565b34801561077757600080fd5b50d3801561078457600080fd5b50d2801561079157600080fd5b5061038e600081565b3480156107a657600080fd5b50d380156107b357600080fd5b50d280156107c057600080fd5b506107d46107cf366004613758565b611b5a565b604051610241929190613773565b3480156107ee57600080fd5b50d380156107fb57600080fd5b50d2801561080857600080fd5b506102846108173660046137a4565b611c06565b34801561082857600080fd5b50d3801561083557600080fd5b50d2801561084257600080fd5b5060015461060a90610100900473ffffffffffffffffffffffffffffffffffffffff1681565b34801561087457600080fd5b50d3801561088157600080fd5b50d2801561088e57600080fd5b5061028461089d3660046133b2565b611cb4565b3480156108ae57600080fd5b50d380156108bb57600080fd5b50d280156108c857600080fd5b506102846108d73660046137bf565b611d58565b3480156108e857600080fd5b50d380156108f557600080fd5b50d2801561090257600080fd5b50600154610930907501000000000000000000000000000000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610241565b34801561095557600080fd5b50d3801561096257600080fd5b50d2801561096f57600080fd5b5061028461097e3660046133cd565b611da9565b34801561098f57600080fd5b50d3801561099c57600080fd5b50d280156109a957600080fd5b5061060a7f000000000000000000000000000000000000000000000000000000000000000081565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756109fb81611dce565b610a06848484611ddb565b50505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f85572ffb000000000000000000000000000000000000000000000000000000001480610a625750610a6282611e0b565b92915050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610a9281611dce565b73ffffffffffffffffffffffffffffffffffffffff841660009081527f9b50f4667d2d24216ccbf0dce3a90c0f620fa4d895e7b069d80ff6247fd25620602052604090205460ff16610b10576040517f5ee08b9700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517ffd9be52200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301526024820184905285169063fd9be52290604401600060405180830381600087803b158015610b8057600080fd5b505af1158015610b94573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff8089168252871660208201529081018590527f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb9250606001905060405180910390a150505050565b6000610c0281611dce565b8115610c1457610c10611ea2565b5050565b610c10611f21565b63ffffffff8116600090815260036020908152604091829020805483518184028101840190945280845260609392830182828015610c9757602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610c685790505b50505050509050919050565b73ffffffffffffffffffffffffffffffffffffffff811660009081527f93c430521711328044ae92d0f1f1286cf040bc4a382f1642bd89984e86630553602052604081205460ff1615610cf857506000919050565b6001547501000000000000000000000000000000000000000000900467ffffffffffffffff161580610d6e575073ffffffffffffffffffffffffffffffffffffffff821660009081527f4ac82e3087b7dedf7f532cbc6915c722df8c1e31f1388c318a617b52760eaf8b602052604090205460ff165b15610d7b57506001919050565b506000919050565b919050565b600082815260208190526040902060010154610da381611dce565b610dad8383611f78565b505050565b600083610dbe81610ca3565b610df4576040517f4ab5ebcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160808101825263ffffffff8916815267ffffffffffffffff8816602082015273ffffffffffffffffffffffffffffffffffffffff8716918101919091526001547d010000000000000000000000000000000000000000000000000000000000900461ffff1660608201526000600581610e736175308c613805565b63ffffffff16815260208082019290925260409081016000208151608081018352815467ffffffffffffffff8116825268010000000000000000900461ffff16938101939093526001810180549192840191610ece9061384f565b80601f0160208091040260200160405190810160405280929190818152602001828054610efa9061384f565b8015610f475780601f10610f1c57610100808354040283529160200191610f47565b820191906000526020600020905b815481529060010190602001808311610f2a57829003601f168201915b5050505050815260200160028201548152505090506000610f6661203e565b90506000610f7d8284604001518560600151612071565b6001546040517fcbe56fcc000000000000000000000000000000000000000000000000000000008152919250610100900473ffffffffffffffffffffffffffffffffffffffff169063cbe56fcc90611003908790879086908e908e907f0000000000000000000000000000000000000000000000000000000000000000906004016139c2565b602060405180830381865afa158015611020573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110449190613aac565b9b9a5050505050505050505050565b6040517fdec9f03100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061109081611dce565b60005b8281101561114757368484838181106110ae576110ae613ac5565b606002919091019150506040810135600460006110ce60208501856133b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083602001602081019061111d9190613350565b63ffffffff168152602081019190915260400160002055508061113f81613b23565b915050611093565b507f360a0efdea8fcc9a11ee20a2099e314ddcf49a941d66790cd4e5adea30faa0748383604051611179929190613b5b565b60405180910390a1505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756111b081611dce565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040519081527ff724a45d041687842411f2b977ef22ab8f43c8f1104f4592b42a00f9b34a643d906020015b60405180910390a15050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561125581611dce565b60005b8281101561148c573684848381811061127357611273613ac5565b90506020028101906112859190613bd6565b905060006175306112996020840184613350565b6112a39190613805565b63ffffffff811660009081526005602052604081205491925067ffffffffffffffff909116900361140a576112de6060830160408401613758565b63ffffffff8216600090815260056020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff929092169190911790556113376080830183613c14565b63ffffffff831660009081526005602052604090206001019161135b919083613cf6565b5080600660006113716060860160408701613758565b67ffffffffffffffff168152602081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff929092169190911790556113cb6080830183613c14565b600660006113df6060870160408801613758565b67ffffffffffffffff168152602081019190915260400160002060010191611408919083613cf6565b505b61141a60408301602084016137a4565b63ffffffff9091166000908152600560205260409020805461ffff9290921668010000000000000000027fffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffff9092169190911781556060909101356002909101558061148481613b23565b915050611258565b507f3e45c9c6c5ff16903cc7bc124fa7a101346d0e71bd9326e3f9370e2a90d57dd08383604051611179929190613e10565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614611534576040517f4641de990000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b60006006816115496040850160208601613758565b67ffffffffffffffff16815260208082019290925260409081016000208151808301909252805463ffffffff168252600181018054929391929184019161158f9061384f565b80601f01602080910402602001604051908101604052809291908181526020018280546115bb9061384f565b80156116085780601f106115dd57610100808354040283529160200191611608565b820191906000526020600020905b8154815290600101906020018083116115eb57829003601f168201915b50505050508152505090506116748260200160208101906116299190613758565b6116366040850185613c14565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505060208401516121a4565b8051610c10906116876060850185613c14565b6121ef565b600061169e60a08501608086016133b2565b6116a781610ca3565b6116dd576040517f4ab5ebcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006116f5336116f06020890189613350565b61230e565b60408051608081019091529091506000908061171460208a018a613350565b63ffffffff16815260200161172f60808a0160608b01613758565b67ffffffffffffffff16815260200161174e60a08a0160808b016133b2565b73ffffffffffffffffffffffffffffffffffffffff1681526001547d010000000000000000000000000000000000000000000000000000000000900461ffff166020918201529091506000906005908290617530906117af908c018c613350565b6117b99190613805565b63ffffffff16815260208082019290925260409081016000208151608081018352815467ffffffffffffffff8116825268010000000000000000900461ffff169381019390935260018101805491928401916118149061384f565b80601f01602080910402602001604051908101604052809291908181526020018280546118409061384f565b801561188d5780601f106118625761010080835404028352916020019161188d565b820191906000526020600020905b81548152906001019060200180831161187057829003601f168201915b50505050508152602001600282015481525050905060006118f6848a80602001906118b89190613c14565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505060408c01356123a0565b9050600061190d8284604001518560600151612071565b905060007f00000000000000000000000000000000000000000000000000000000000000009050600060018054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637e034df88787868f8f886040518763ffffffff1660e01b8152600401611999969594939291906139c2565b60408051808303816000875af11580156119b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119db9190613f71565b995090506119e933826123b5565b84516040517f96f4e9f900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416916396f4e9f9918491611a3f918890600401613f95565b60206040518083038185885af1158015611a5d573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a829190613aac565b5050505050505050509392505050565b6005602052600090815260409020805460018201805467ffffffffffffffff8316936801000000000000000090930461ffff16929190611ad19061384f565b80601f0160208091040260200160405190810160405280929190818152602001828054611afd9061384f565b8015611b4a5780601f10611b1f57610100808354040283529160200191611b4a565b820191906000526020600020905b815481529060010190602001808311611b2d57829003601f168201915b5050505050908060020154905084565b6006602052600090815260409020805460018201805463ffffffff9092169291611b839061384f565b80601f0160208091040260200160405190810160405280929190818152602001828054611baf9061384f565b8015611bfc5780601f10611bd157610100808354040283529160200191611bfc565b820191906000526020600020905b815481529060010190602001808311611bdf57829003601f168201915b5050505050905082565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775611c3081611dce565b600180547fff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167d01000000000000000000000000000000000000000000000000000000000061ffff8516908102919091179091556040519081527f7af0ac740036ffb1c97b03697859d729e80a44ae5030543d64971c313565ab4d9060200161121f565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775611cde81611dce565b600180547fffffffffffffffffffffff0000000000000000000000000000000000000000ff1661010073ffffffffffffffffffffffffffffffffffffffff8516908102919091179091556040519081527f1399be28223800f8669b3ba5f8721d9fc16fc4e8d0bbf98378791c8c5a3015e09060200161121f565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775611d8281611dce565b63ffffffff84166000908152600360205260409020611da2908484613179565b5050505050565b600082815260208190526040902060010154611dc481611dce565b610dad838361240e565b611dd881336124d3565b50565b73ffffffffffffffffffffffffffffffffffffffff8316611e0057610dad828261258b565b610dad838383612691565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b000000000000000000000000000000000000000000000000000000001480610a6257507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610a62565b611eaa6126ff565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b611f2961276e565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33611ef7565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca82148015611fd5575060008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16155b15612034576001805460159061200d907501000000000000000000000000000000000000000000900467ffffffffffffffff16613fb8565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b610c1082826127da565b6040805160518082526080820190925260609161206c916000916020820181803683370190505060006128ca565b905090565b6120b96040518060a00160405280606081526020016060815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001606081525090565b6040805160a081018252848152602080820187905282516000808252918101845291928301919061210c565b60408051808201909152600080825260208201528152602001906001900390816120e55790505b50815260006020808301829052604080518082018252878152820192835280516024810188905292511515604480850191909152815180850390910181526064909301815290820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f97a657c90000000000000000000000000000000000000000000000000000000017905290910152949350505050565b8080519060200120828051906020012014610dad5782826040517f0b4f78c200000000000000000000000000000000000000000000000000000000815260040161152b929190613fdf565b8263ffffffff1661753061220384846128f9565b61220d9190613805565b63ffffffff161461227a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f44564e41646170746572426173653a20696e76616c6964207372634569640000604482015260640161152b565b6000806000612289858561292a565b9250925092508273ffffffffffffffffffffffffffffffffffffffff16630223536e838367ffffffffffffffff6040518463ffffffff1660e01b81526004016122d493929190614002565b600060405180830381600087803b1580156122ee57600080fd5b505af1158015612302573d6000803e3d6000fd5b50505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260046020908152604080832063ffffffff8516845290915290205480610a62576040517ff25127e600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015263ffffffff8316602482015260440161152b565b60606123ad8484846128ca565b949350505050565b4781811015610dad576123c883306129f9565b504781811015610dad576040517f6079581f000000000000000000000000000000000000000000000000000000008152600481018290526024810183905260440161152b565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca8214801561246a575060008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff165b156124c957600180546015906124a2907501000000000000000000000000000000000000000000900467ffffffffffffffff16614035565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b610c108282612b70565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610c105761251181612c27565b61251c836020612c46565b60405160200161252d929190614077565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a000000000000000000000000000000000000000000000000000000000825261152b916004016140f8565b73ffffffffffffffffffffffffffffffffffffffff82166125d8576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114612632576040519150601f19603f3d011682016040523d82523d6000602084013e612637565b606091505b5050905080610dad576040517f465bc83400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024810183905260440161152b565b73ffffffffffffffffffffffffffffffffffffffff82166126de576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610dad73ffffffffffffffffffffffffffffffffffffffff84168383612e90565b60015460ff161561276c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015260640161152b565b565b60015460ff1661276c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f7420706175736564000000000000000000000000604482015260640161152b565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610c105760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff85168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905561286c3390565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60608382846040516020016128e19392919061410b565b60405160208183030381529060405290509392505050565b60008260498361290a826004614138565b926129179392919061414b565b61292091614175565b60e01c9392505050565b600060608161293b60516040614138565b8414612973576040517ff1d10e0d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61299061298460206000878961414b565b61298d916141bd565b90565b92506129a060406020868861414b565b6129a9916141bd565b90506129b8846040818861414b565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509598929750929550909350505050565b6040517ffaaebd2100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff84169063faaebd2190602401602060405180830381865afa158015612a66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a8a9190613aac565b90508015610dad576040517ffd9be52200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301526024820183905284169063fd9be52290604401600060405180830381600087803b158015612b0257600080fd5b505af1158015612b16573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff8088168252861660208201529081018490527f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb92506060019050611179565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1615610c105760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6060610a6273ffffffffffffffffffffffffffffffffffffffff831660145b60606000612c558360026141f9565b612c60906002614138565b67ffffffffffffffff811115612c7857612c78613c79565b6040519080825280601f01601f191660200182016040528015612ca2576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110612cd957612cd9613ac5565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110612d3c57612d3c613ac5565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000612d788460026141f9565b612d83906001614138565b90505b6001811115612e20577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110612dc457612dc4613ac5565b1a60f81b828281518110612dda57612dda613ac5565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c93612e1981614210565b9050612d86565b508315612e89576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161152b565b9392505050565b6040805173ffffffffffffffffffffffffffffffffffffffff848116602483015260448083018590528351808403909101815260649092018352602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656490840152610dad92869291600091612f5b918516908490613008565b9050805160001480612f7c575080806020019051810190612f7c9190614245565b610dad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161152b565b60606123ad8484600085856000808673ffffffffffffffffffffffffffffffffffffffff16858760405161303c9190614262565b60006040518083038185875af1925050503d8060008114613079576040519150601f19603f3d011682016040523d82523d6000602084013e61307e565b606091505b509150915061308f8783838761309a565b979650505050505050565b606083156131305782516000036131295773ffffffffffffffffffffffffffffffffffffffff85163b613129576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161152b565b50816123ad565b6123ad83838151156131455781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152b91906140f8565b82805482825590600052602060002090601f016020900481019282156132125791602002820160005b838211156131e357833560ff1683826101000a81548160ff021916908360ff16021790555092602001926001016020816000010492830192600103026131a2565b80156132105782816101000a81549060ff02191690556001016020816000010492830192600103026131e3565b505b5061321e929150613222565b5090565b5b8082111561321e5760008155600101613223565b6000813574ffffffffffffffffffffffffffffffffffffffffff8116811461325e57600080fd5b73ffffffffffffffffffffffffffffffffffffffff1692915050565b60008060006060848603121561328f57600080fd5b61329884613237565b92506132a660208501613237565b9150604084013590509250925092565b6000602082840312156132c857600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114612e8957600080fd5b8015158114611dd857600080fd5b60006020828403121561331857600080fd5b8135612e89816132f8565b60006020828403121561333557600080fd5b5035919050565b803563ffffffff81168114610d8357600080fd5b60006020828403121561336257600080fd5b612e898261333c565b6020808252825182820181905260009190848201906040850190845b818110156133a657835160ff1683529284019291840191600101613387565b50909695505050505050565b6000602082840312156133c457600080fd5b612e8982613237565b600080604083850312156133e057600080fd5b823591506133f060208401613237565b90509250929050565b803567ffffffffffffffff81168114610d8357600080fd5b60008083601f84011261342357600080fd5b50813567ffffffffffffffff81111561343b57600080fd5b60208301915083602082850101111561345357600080fd5b9250929050565b60008060008060006080868803121561347257600080fd5b61347b8661333c565b9450613489602087016133f9565b935061349760408701613237565b9250606086013567ffffffffffffffff8111156134b357600080fd5b6134bf88828901613411565b969995985093965092949392505050565b600080604083850312156134e357600080fd5b6134ec83613237565b91506133f06020840161333c565b6000806020838503121561350d57600080fd5b823567ffffffffffffffff8082111561352557600080fd5b818501915085601f83011261353957600080fd5b81358181111561354857600080fd5b86602060608302850101111561355d57600080fd5b60209290920196919550909350505050565b60008083601f84011261358157600080fd5b50813567ffffffffffffffff81111561359957600080fd5b6020830191508360208260051b850101111561345357600080fd5b600080602083850312156135c757600080fd5b823567ffffffffffffffff8111156135de57600080fd5b6135ea8582860161356f565b90969095509350505050565b600060a0828403121561360857600080fd5b50919050565b60006020828403121561362057600080fd5b813567ffffffffffffffff81111561363757600080fd5b6123ad848285016135f6565b60008060006040848603121561365857600080fd5b833567ffffffffffffffff8082111561367057600080fd5b61367c878388016135f6565b9450602086013591508082111561369257600080fd5b5061369f86828701613411565b9497909650939450505050565b60005b838110156136c75781810151838201526020016136af565b50506000910152565b600081518084526136e88160208601602086016136ac565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b67ffffffffffffffff8516815261ffff8416602082015260806040820152600061374760808301856136d0565b905082606083015295945050505050565b60006020828403121561376a57600080fd5b612e89826133f9565b63ffffffff831681526040602082015260006123ad60408301846136d0565b803561ffff81168114610d8357600080fd5b6000602082840312156137b657600080fd5b612e8982613792565b6000806000604084860312156137d457600080fd5b6137dd8461333c565b9250602084013567ffffffffffffffff8111156137f957600080fd5b61369f8682870161356f565b600063ffffffff80841680613843577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b92169190910692915050565b600181811c9082168061386357607f821691505b602082108103613608577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000815160a084526138b160a08501826136d0565b9050602080840151858303828701526138ca83826136d0565b60408681015188830389830152805180845290850195509092506000918401905b8083101561392a578551805173ffffffffffffffffffffffffffffffffffffffff168352850151858301529484019460019290920191908301906138eb565b5060608701519450613954606089018673ffffffffffffffffffffffffffffffffffffffff169052565b60808701519450878103608089015261396d81866136d0565b98975050505050505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b600061010063ffffffff8951168352602089015167ffffffffffffffff808216602086015273ffffffffffffffffffffffffffffffffffffffff60408c015116604086015260608b0151915061ffff8083166060870152836080870152818b5116848701528060208c0151166101208701525050505060408701516080610140840152613a536101808401826136d0565b9050606088015161016084015282810360a0840152613a72818861389c565b905082810360c0840152613a87818688613979565b91505061308f60e083018473ffffffffffffffffffffffffffffffffffffffff169052565b600060208284031215613abe57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613b5457613b54613af4565b5060010190565b6020808252818101839052600090604080840186845b87811015613bc95773ffffffffffffffffffffffffffffffffffffffff613b9783613237565b16835263ffffffff613baa86840161333c565b1683860152818401358484015260609283019290910190600101613b71565b5090979650505050505050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61833603018112613c0a57600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112613c4957600080fd5b83018035915067ffffffffffffffff821115613c6457600080fd5b60200191503681900382131561345357600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f821115610dad57600081815260208120601f850160051c81016020861015613ccf5750805b601f850160051c820191505b81811015613cee57828155600101613cdb565b505050505050565b67ffffffffffffffff831115613d0e57613d0e613c79565b613d2283613d1c835461384f565b83613ca8565b6000601f841160018114613d745760008515613d3e5750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355611da2565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b82811015613dc35786850135825560209485019460019092019101613da3565b5086821015613dfe577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b60208082528181018390526000906040808401600586901b8501820187855b88811015613f63577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc088840301845281357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618b3603018112613e9057600080fd5b8a0160a063ffffffff613ea28361333c565b16855261ffff613eb3898401613792565b1688860152613ec38783016133f9565b67ffffffffffffffff908116868901526060838101359087015260809081840135368590037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1018112613f1557600080fd5b90930189810193903581811115613f2b57600080fd5b803603851315613f3a57600080fd5b8383890152613f4c8489018287613979565b988b01989750505093880193505050600101613e2f565b509098975050505050505050565b60008060408385031215613f8457600080fd5b505080516020909101519092909150565b67ffffffffffffffff831681526040602082015260006123ad604083018461389c565b600067ffffffffffffffff808316818103613fd557613fd5613af4565b6001019392505050565b67ffffffffffffffff831681526040602082015260006123ad60408301846136d0565b60608152600061401560608301866136d0565b905083602083015267ffffffffffffffff83166040830152949350505050565b600067ffffffffffffffff82168061404f5761404f613af4565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516140af8160178501602088016136ac565b7f206973206d697373696e6720726f6c652000000000000000000000000000000060179184019182015283516140ec8160288401602088016136ac565b01602801949350505050565b602081526000612e8960208301846136d0565b838152826020820152600082516141298160408501602087016136ac565b91909101604001949350505050565b80820180821115610a6257610a62613af4565b6000808585111561415b57600080fd5b8386111561416857600080fd5b5050820193919092039150565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156141b55780818660040360031b1b83161692505b505092915050565b80356020831015610a62577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b8082028115828204841417610a6257610a62613af4565b60008161421f5761421f613af4565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b60006020828403121561425757600080fd5b8151612e89816132f8565b60008251613c0a8184602087016136ac56fea26474726f6e582212204b6dea0ffab30446a43dae6969bc2a69154faad01e34918d172ecd072114ea4b64736f6c63430008140033",
1037
+ "deployedBytecode": "0x6080604052600436106101d05760003560e01c8063741bef1a116100f7578063becc1fe311610095578063cd88b90311610064578063cd88b903146108a2578063d2ae2104146108dc578063d547741f14610949578063f887ea401461098357600080fd5b8063becc1fe31461079a578063c358de0a146107e2578063c416aa511461081c578063c7b2370b1461086857600080fd5b806391d14854116100d157806391d14854146106a357806395d376d71461070e5780639e94496514610721578063a217fddf1461076b57600080fd5b8063741bef1a146105c35780637a6ce2cc1461062f57806385572ffb1461066957600080fd5b80632de113761161016f5780634cfa6d2c1161013e5780634cfa6d2c146104cb57806351b6a0fd1461051d5780635c975abb14610557578063724e78da1461058957600080fd5b80632de11376146103e35780632f2ff15d1461041d57806330bb3aac1461045757806336568abe1461049157600080fd5b80631095b6d7116101ab5780631095b6d7146102d057806316c38b3c1461030a578063248a9ca31461034457806326e67a371461039c57600080fd5b8062bf2e80146101dc57806301e336671461024a57806301ffc9a71461028657600080fd5b366101d757005b600080fd5b3480156101e857600080fd5b50d380156101f557600080fd5b50d2801561020257600080fd5b50600154610232907d010000000000000000000000000000000000000000000000000000000000900461ffff1681565b60405161ffff90911681526020015b60405180910390f35b34801561025657600080fd5b50d3801561026357600080fd5b50d2801561027057600080fd5b5061028461027f36600461327a565b6109d1565b005b34801561029257600080fd5b50d3801561029f57600080fd5b50d280156102ac57600080fd5b506102c06102bb3660046132b6565b610a0c565b6040519015158152602001610241565b3480156102dc57600080fd5b50d380156102e957600080fd5b50d280156102f657600080fd5b5061028461030536600461327a565b610a68565b34801561031657600080fd5b50d3801561032357600080fd5b50d2801561033057600080fd5b5061028461033f366004613306565b610bf7565b34801561035057600080fd5b50d3801561035d57600080fd5b50d2801561036a57600080fd5b5061038e610379366004613323565b60009081526020819052604090206001015490565b604051908152602001610241565b3480156103a857600080fd5b50d380156103b557600080fd5b50d280156103c257600080fd5b506103d66103d1366004613350565b610c1c565b604051610241919061336b565b3480156103ef57600080fd5b50d380156103fc57600080fd5b50d2801561040957600080fd5b506102c06104183660046133b2565b610ca3565b34801561042957600080fd5b50d3801561043657600080fd5b50d2801561044357600080fd5b506102846104523660046133cd565b610d88565b34801561046357600080fd5b50d3801561047057600080fd5b50d2801561047d57600080fd5b5061038e61048c36600461345a565b610db2565b34801561049d57600080fd5b50d380156104aa57600080fd5b50d280156104b757600080fd5b506102846104c63660046133cd565b611053565b3480156104d757600080fd5b50d380156104e457600080fd5b50d280156104f157600080fd5b5061038e6105003660046134d0565b600460209081526000928352604080842090915290825290205481565b34801561052957600080fd5b50d3801561053657600080fd5b50d2801561054357600080fd5b506102846105523660046134fa565b611085565b34801561056357600080fd5b50d3801561057057600080fd5b50d2801561057d57600080fd5b5060015460ff166102c0565b34801561059557600080fd5b50d380156105a257600080fd5b50d280156105af57600080fd5b506102846105be3660046133b2565b611186565b3480156105cf57600080fd5b50d380156105dc57600080fd5b50d280156105e957600080fd5b5060025461060a9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610241565b34801561063b57600080fd5b50d3801561064857600080fd5b50d2801561065557600080fd5b506102846106643660046135b4565b61122b565b34801561067557600080fd5b50d3801561068257600080fd5b50d2801561068f57600080fd5b5061028461069e36600461360e565b6114be565b3480156106af57600080fd5b50d380156106bc57600080fd5b50d280156106c957600080fd5b506102c06106d83660046133cd565b60009182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b61038e61071c366004613643565b61168c565b34801561072d57600080fd5b50d3801561073a57600080fd5b50d2801561074757600080fd5b5061075b610756366004613350565b611a92565b604051610241949392919061371a565b34801561077757600080fd5b50d3801561078457600080fd5b50d2801561079157600080fd5b5061038e600081565b3480156107a657600080fd5b50d380156107b357600080fd5b50d280156107c057600080fd5b506107d46107cf366004613758565b611b5a565b604051610241929190613773565b3480156107ee57600080fd5b50d380156107fb57600080fd5b50d2801561080857600080fd5b506102846108173660046137a4565b611c06565b34801561082857600080fd5b50d3801561083557600080fd5b50d2801561084257600080fd5b5060015461060a90610100900473ffffffffffffffffffffffffffffffffffffffff1681565b34801561087457600080fd5b50d3801561088157600080fd5b50d2801561088e57600080fd5b5061028461089d3660046133b2565b611cb4565b3480156108ae57600080fd5b50d380156108bb57600080fd5b50d280156108c857600080fd5b506102846108d73660046137bf565b611d58565b3480156108e857600080fd5b50d380156108f557600080fd5b50d2801561090257600080fd5b50600154610930907501000000000000000000000000000000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610241565b34801561095557600080fd5b50d3801561096257600080fd5b50d2801561096f57600080fd5b5061028461097e3660046133cd565b611da9565b34801561098f57600080fd5b50d3801561099c57600080fd5b50d280156109a957600080fd5b5061060a7f000000000000000000000000000000000000000000000000000000000000000081565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756109fb81611dce565b610a06848484611ddb565b50505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f85572ffb000000000000000000000000000000000000000000000000000000001480610a625750610a6282611e0b565b92915050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610a9281611dce565b73ffffffffffffffffffffffffffffffffffffffff841660009081527f9b50f4667d2d24216ccbf0dce3a90c0f620fa4d895e7b069d80ff6247fd25620602052604090205460ff16610b10576040517f5ee08b9700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517ffd9be52200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301526024820184905285169063fd9be52290604401600060405180830381600087803b158015610b8057600080fd5b505af1158015610b94573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff8089168252871660208201529081018590527f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb9250606001905060405180910390a150505050565b6000610c0281611dce565b8115610c1457610c10611ea2565b5050565b610c10611f21565b63ffffffff8116600090815260036020908152604091829020805483518184028101840190945280845260609392830182828015610c9757602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610c685790505b50505050509050919050565b73ffffffffffffffffffffffffffffffffffffffff811660009081527f93c430521711328044ae92d0f1f1286cf040bc4a382f1642bd89984e86630553602052604081205460ff1615610cf857506000919050565b6001547501000000000000000000000000000000000000000000900467ffffffffffffffff161580610d6e575073ffffffffffffffffffffffffffffffffffffffff821660009081527f4ac82e3087b7dedf7f532cbc6915c722df8c1e31f1388c318a617b52760eaf8b602052604090205460ff165b15610d7b57506001919050565b506000919050565b919050565b600082815260208190526040902060010154610da381611dce565b610dad8383611f78565b505050565b600083610dbe81610ca3565b610df4576040517f4ab5ebcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160808101825263ffffffff8916815267ffffffffffffffff8816602082015273ffffffffffffffffffffffffffffffffffffffff8716918101919091526001547d010000000000000000000000000000000000000000000000000000000000900461ffff1660608201526000600581610e736175308c613805565b63ffffffff16815260208082019290925260409081016000208151608081018352815467ffffffffffffffff8116825268010000000000000000900461ffff16938101939093526001810180549192840191610ece9061384f565b80601f0160208091040260200160405190810160405280929190818152602001828054610efa9061384f565b8015610f475780601f10610f1c57610100808354040283529160200191610f47565b820191906000526020600020905b815481529060010190602001808311610f2a57829003601f168201915b5050505050815260200160028201548152505090506000610f6661203e565b90506000610f7d8284604001518560600151612071565b6001546040517fcbe56fcc000000000000000000000000000000000000000000000000000000008152919250610100900473ffffffffffffffffffffffffffffffffffffffff169063cbe56fcc90611003908790879086908e908e907f0000000000000000000000000000000000000000000000000000000000000000906004016139c2565b602060405180830381865afa158015611020573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110449190613aac565b9b9a5050505050505050505050565b6040517fdec9f03100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061109081611dce565b60005b8281101561114757368484838181106110ae576110ae613ac5565b606002919091019150506040810135600460006110ce60208501856133b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083602001602081019061111d9190613350565b63ffffffff168152602081019190915260400160002055508061113f81613b23565b915050611093565b507f360a0efdea8fcc9a11ee20a2099e314ddcf49a941d66790cd4e5adea30faa0748383604051611179929190613b5b565b60405180910390a1505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756111b081611dce565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040519081527ff724a45d041687842411f2b977ef22ab8f43c8f1104f4592b42a00f9b34a643d906020015b60405180910390a15050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561125581611dce565b60005b8281101561148c573684848381811061127357611273613ac5565b90506020028101906112859190613bd6565b905060006175306112996020840184613350565b6112a39190613805565b63ffffffff811660009081526005602052604081205491925067ffffffffffffffff909116900361140a576112de6060830160408401613758565b63ffffffff8216600090815260056020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff929092169190911790556113376080830183613c14565b63ffffffff831660009081526005602052604090206001019161135b919083613cf6565b5080600660006113716060860160408701613758565b67ffffffffffffffff168152602081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff929092169190911790556113cb6080830183613c14565b600660006113df6060870160408801613758565b67ffffffffffffffff168152602081019190915260400160002060010191611408919083613cf6565b505b61141a60408301602084016137a4565b63ffffffff9091166000908152600560205260409020805461ffff9290921668010000000000000000027fffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffff9092169190911781556060909101356002909101558061148481613b23565b915050611258565b507f3e45c9c6c5ff16903cc7bc124fa7a101346d0e71bd9326e3f9370e2a90d57dd08383604051611179929190613e10565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614611534576040517f4641de990000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b60006006816115496040850160208601613758565b67ffffffffffffffff16815260208082019290925260409081016000208151808301909252805463ffffffff168252600181018054929391929184019161158f9061384f565b80601f01602080910402602001604051908101604052809291908181526020018280546115bb9061384f565b80156116085780601f106115dd57610100808354040283529160200191611608565b820191906000526020600020905b8154815290600101906020018083116115eb57829003601f168201915b50505050508152505090506116748260200160208101906116299190613758565b6116366040850185613c14565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505060208401516121a4565b8051610c10906116876060850185613c14565b6121ef565b600061169e60a08501608086016133b2565b6116a781610ca3565b6116dd576040517f4ab5ebcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006116f5336116f06020890189613350565b61230e565b60408051608081019091529091506000908061171460208a018a613350565b63ffffffff16815260200161172f60808a0160608b01613758565b67ffffffffffffffff16815260200161174e60a08a0160808b016133b2565b73ffffffffffffffffffffffffffffffffffffffff1681526001547d010000000000000000000000000000000000000000000000000000000000900461ffff166020918201529091506000906005908290617530906117af908c018c613350565b6117b99190613805565b63ffffffff16815260208082019290925260409081016000208151608081018352815467ffffffffffffffff8116825268010000000000000000900461ffff169381019390935260018101805491928401916118149061384f565b80601f01602080910402602001604051908101604052809291908181526020018280546118409061384f565b801561188d5780601f106118625761010080835404028352916020019161188d565b820191906000526020600020905b81548152906001019060200180831161187057829003601f168201915b50505050508152602001600282015481525050905060006118f6848a80602001906118b89190613c14565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505060408c01356123a0565b9050600061190d8284604001518560600151612071565b905060007f00000000000000000000000000000000000000000000000000000000000000009050600060018054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637e034df88787868f8f886040518763ffffffff1660e01b8152600401611999969594939291906139c2565b60408051808303816000875af11580156119b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119db9190613f71565b995090506119e933826123b5565b84516040517f96f4e9f900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416916396f4e9f9918491611a3f918890600401613f95565b60206040518083038185885af1158015611a5d573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a829190613aac565b5050505050505050509392505050565b6005602052600090815260409020805460018201805467ffffffffffffffff8316936801000000000000000090930461ffff16929190611ad19061384f565b80601f0160208091040260200160405190810160405280929190818152602001828054611afd9061384f565b8015611b4a5780601f10611b1f57610100808354040283529160200191611b4a565b820191906000526020600020905b815481529060010190602001808311611b2d57829003601f168201915b5050505050908060020154905084565b6006602052600090815260409020805460018201805463ffffffff9092169291611b839061384f565b80601f0160208091040260200160405190810160405280929190818152602001828054611baf9061384f565b8015611bfc5780601f10611bd157610100808354040283529160200191611bfc565b820191906000526020600020905b815481529060010190602001808311611bdf57829003601f168201915b5050505050905082565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775611c3081611dce565b600180547fff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167d01000000000000000000000000000000000000000000000000000000000061ffff8516908102919091179091556040519081527f7af0ac740036ffb1c97b03697859d729e80a44ae5030543d64971c313565ab4d9060200161121f565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775611cde81611dce565b600180547fffffffffffffffffffffff0000000000000000000000000000000000000000ff1661010073ffffffffffffffffffffffffffffffffffffffff8516908102919091179091556040519081527f1399be28223800f8669b3ba5f8721d9fc16fc4e8d0bbf98378791c8c5a3015e09060200161121f565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775611d8281611dce565b63ffffffff84166000908152600360205260409020611da2908484613179565b5050505050565b600082815260208190526040902060010154611dc481611dce565b610dad838361240e565b611dd881336124d3565b50565b73ffffffffffffffffffffffffffffffffffffffff8316611e0057610dad828261258b565b610dad838383612691565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b000000000000000000000000000000000000000000000000000000001480610a6257507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610a62565b611eaa6126ff565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b611f2961276e565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33611ef7565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca82148015611fd5575060008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16155b15612034576001805460159061200d907501000000000000000000000000000000000000000000900467ffffffffffffffff16613fb8565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b610c1082826127da565b6040805160518082526080820190925260609161206c916000916020820181803683370190505060006128ca565b905090565b6120b96040518060a00160405280606081526020016060815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001606081525090565b6040805160a081018252848152602080820187905282516000808252918101845291928301919061210c565b60408051808201909152600080825260208201528152602001906001900390816120e55790505b50815260006020808301829052604080518082018252878152820192835280516024810188905292511515604480850191909152815180850390910181526064909301815290820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f97a657c90000000000000000000000000000000000000000000000000000000017905290910152949350505050565b8080519060200120828051906020012014610dad5782826040517f0b4f78c200000000000000000000000000000000000000000000000000000000815260040161152b929190613fdf565b8263ffffffff1661753061220384846128f9565b61220d9190613805565b63ffffffff161461227a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f44564e41646170746572426173653a20696e76616c6964207372634569640000604482015260640161152b565b6000806000612289858561292a565b9250925092508273ffffffffffffffffffffffffffffffffffffffff16630223536e838367ffffffffffffffff6040518463ffffffff1660e01b81526004016122d493929190614002565b600060405180830381600087803b1580156122ee57600080fd5b505af1158015612302573d6000803e3d6000fd5b50505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260046020908152604080832063ffffffff8516845290915290205480610a62576040517ff25127e600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015263ffffffff8316602482015260440161152b565b60606123ad8484846128ca565b949350505050565b4781811015610dad576123c883306129f9565b504781811015610dad576040517f6079581f000000000000000000000000000000000000000000000000000000008152600481018290526024810183905260440161152b565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca8214801561246a575060008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff165b156124c957600180546015906124a2907501000000000000000000000000000000000000000000900467ffffffffffffffff16614035565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b610c108282612b70565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610c105761251181612c27565b61251c836020612c46565b60405160200161252d929190614077565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a000000000000000000000000000000000000000000000000000000000825261152b916004016140f8565b73ffffffffffffffffffffffffffffffffffffffff82166125d8576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114612632576040519150601f19603f3d011682016040523d82523d6000602084013e612637565b606091505b5050905080610dad576040517f465bc83400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024810183905260440161152b565b73ffffffffffffffffffffffffffffffffffffffff82166126de576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610dad73ffffffffffffffffffffffffffffffffffffffff84168383612e90565b60015460ff161561276c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015260640161152b565b565b60015460ff1661276c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f7420706175736564000000000000000000000000604482015260640161152b565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610c105760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff85168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905561286c3390565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60608382846040516020016128e19392919061410b565b60405160208183030381529060405290509392505050565b60008260498361290a826004614138565b926129179392919061414b565b61292091614175565b60e01c9392505050565b600060608161293b60516040614138565b8414612973576040517ff1d10e0d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61299061298460206000878961414b565b61298d916141bd565b90565b92506129a060406020868861414b565b6129a9916141bd565b90506129b8846040818861414b565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509598929750929550909350505050565b6040517ffaaebd2100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff84169063faaebd2190602401602060405180830381865afa158015612a66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a8a9190613aac565b90508015610dad576040517ffd9be52200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301526024820183905284169063fd9be52290604401600060405180830381600087803b158015612b0257600080fd5b505af1158015612b16573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff8088168252861660208201529081018490527f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb92506060019050611179565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1615610c105760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6060610a6273ffffffffffffffffffffffffffffffffffffffff831660145b60606000612c558360026141f9565b612c60906002614138565b67ffffffffffffffff811115612c7857612c78613c79565b6040519080825280601f01601f191660200182016040528015612ca2576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110612cd957612cd9613ac5565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110612d3c57612d3c613ac5565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000612d788460026141f9565b612d83906001614138565b90505b6001811115612e20577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110612dc457612dc4613ac5565b1a60f81b828281518110612dda57612dda613ac5565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c93612e1981614210565b9050612d86565b508315612e89576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161152b565b9392505050565b6040805173ffffffffffffffffffffffffffffffffffffffff848116602483015260448083018590528351808403909101815260649092018352602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656490840152610dad92869291600091612f5b918516908490613008565b9050805160001480612f7c575080806020019051810190612f7c9190614245565b610dad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161152b565b60606123ad8484600085856000808673ffffffffffffffffffffffffffffffffffffffff16858760405161303c9190614262565b60006040518083038185875af1925050503d8060008114613079576040519150601f19603f3d011682016040523d82523d6000602084013e61307e565b606091505b509150915061308f8783838761309a565b979650505050505050565b606083156131305782516000036131295773ffffffffffffffffffffffffffffffffffffffff85163b613129576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161152b565b50816123ad565b6123ad83838151156131455781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152b91906140f8565b82805482825590600052602060002090601f016020900481019282156132125791602002820160005b838211156131e357833560ff1683826101000a81548160ff021916908360ff16021790555092602001926001016020816000010492830192600103026131a2565b80156132105782816101000a81549060ff02191690556001016020816000010492830192600103026131e3565b505b5061321e929150613222565b5090565b5b8082111561321e5760008155600101613223565b6000813574ffffffffffffffffffffffffffffffffffffffffff8116811461325e57600080fd5b73ffffffffffffffffffffffffffffffffffffffff1692915050565b60008060006060848603121561328f57600080fd5b61329884613237565b92506132a660208501613237565b9150604084013590509250925092565b6000602082840312156132c857600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114612e8957600080fd5b8015158114611dd857600080fd5b60006020828403121561331857600080fd5b8135612e89816132f8565b60006020828403121561333557600080fd5b5035919050565b803563ffffffff81168114610d8357600080fd5b60006020828403121561336257600080fd5b612e898261333c565b6020808252825182820181905260009190848201906040850190845b818110156133a657835160ff1683529284019291840191600101613387565b50909695505050505050565b6000602082840312156133c457600080fd5b612e8982613237565b600080604083850312156133e057600080fd5b823591506133f060208401613237565b90509250929050565b803567ffffffffffffffff81168114610d8357600080fd5b60008083601f84011261342357600080fd5b50813567ffffffffffffffff81111561343b57600080fd5b60208301915083602082850101111561345357600080fd5b9250929050565b60008060008060006080868803121561347257600080fd5b61347b8661333c565b9450613489602087016133f9565b935061349760408701613237565b9250606086013567ffffffffffffffff8111156134b357600080fd5b6134bf88828901613411565b969995985093965092949392505050565b600080604083850312156134e357600080fd5b6134ec83613237565b91506133f06020840161333c565b6000806020838503121561350d57600080fd5b823567ffffffffffffffff8082111561352557600080fd5b818501915085601f83011261353957600080fd5b81358181111561354857600080fd5b86602060608302850101111561355d57600080fd5b60209290920196919550909350505050565b60008083601f84011261358157600080fd5b50813567ffffffffffffffff81111561359957600080fd5b6020830191508360208260051b850101111561345357600080fd5b600080602083850312156135c757600080fd5b823567ffffffffffffffff8111156135de57600080fd5b6135ea8582860161356f565b90969095509350505050565b600060a0828403121561360857600080fd5b50919050565b60006020828403121561362057600080fd5b813567ffffffffffffffff81111561363757600080fd5b6123ad848285016135f6565b60008060006040848603121561365857600080fd5b833567ffffffffffffffff8082111561367057600080fd5b61367c878388016135f6565b9450602086013591508082111561369257600080fd5b5061369f86828701613411565b9497909650939450505050565b60005b838110156136c75781810151838201526020016136af565b50506000910152565b600081518084526136e88160208601602086016136ac565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b67ffffffffffffffff8516815261ffff8416602082015260806040820152600061374760808301856136d0565b905082606083015295945050505050565b60006020828403121561376a57600080fd5b612e89826133f9565b63ffffffff831681526040602082015260006123ad60408301846136d0565b803561ffff81168114610d8357600080fd5b6000602082840312156137b657600080fd5b612e8982613792565b6000806000604084860312156137d457600080fd5b6137dd8461333c565b9250602084013567ffffffffffffffff8111156137f957600080fd5b61369f8682870161356f565b600063ffffffff80841680613843577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b92169190910692915050565b600181811c9082168061386357607f821691505b602082108103613608577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000815160a084526138b160a08501826136d0565b9050602080840151858303828701526138ca83826136d0565b60408681015188830389830152805180845290850195509092506000918401905b8083101561392a578551805173ffffffffffffffffffffffffffffffffffffffff168352850151858301529484019460019290920191908301906138eb565b5060608701519450613954606089018673ffffffffffffffffffffffffffffffffffffffff169052565b60808701519450878103608089015261396d81866136d0565b98975050505050505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b600061010063ffffffff8951168352602089015167ffffffffffffffff808216602086015273ffffffffffffffffffffffffffffffffffffffff60408c015116604086015260608b0151915061ffff8083166060870152836080870152818b5116848701528060208c0151166101208701525050505060408701516080610140840152613a536101808401826136d0565b9050606088015161016084015282810360a0840152613a72818861389c565b905082810360c0840152613a87818688613979565b91505061308f60e083018473ffffffffffffffffffffffffffffffffffffffff169052565b600060208284031215613abe57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613b5457613b54613af4565b5060010190565b6020808252818101839052600090604080840186845b87811015613bc95773ffffffffffffffffffffffffffffffffffffffff613b9783613237565b16835263ffffffff613baa86840161333c565b1683860152818401358484015260609283019290910190600101613b71565b5090979650505050505050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61833603018112613c0a57600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112613c4957600080fd5b83018035915067ffffffffffffffff821115613c6457600080fd5b60200191503681900382131561345357600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f821115610dad57600081815260208120601f850160051c81016020861015613ccf5750805b601f850160051c820191505b81811015613cee57828155600101613cdb565b505050505050565b67ffffffffffffffff831115613d0e57613d0e613c79565b613d2283613d1c835461384f565b83613ca8565b6000601f841160018114613d745760008515613d3e5750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355611da2565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b82811015613dc35786850135825560209485019460019092019101613da3565b5086821015613dfe577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b60208082528181018390526000906040808401600586901b8501820187855b88811015613f63577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc088840301845281357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618b3603018112613e9057600080fd5b8a0160a063ffffffff613ea28361333c565b16855261ffff613eb3898401613792565b1688860152613ec38783016133f9565b67ffffffffffffffff908116868901526060838101359087015260809081840135368590037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1018112613f1557600080fd5b90930189810193903581811115613f2b57600080fd5b803603851315613f3a57600080fd5b8383890152613f4c8489018287613979565b988b01989750505093880193505050600101613e2f565b509098975050505050505050565b60008060408385031215613f8457600080fd5b505080516020909101519092909150565b67ffffffffffffffff831681526040602082015260006123ad604083018461389c565b600067ffffffffffffffff808316818103613fd557613fd5613af4565b6001019392505050565b67ffffffffffffffff831681526040602082015260006123ad60408301846136d0565b60608152600061401560608301866136d0565b905083602083015267ffffffffffffffff83166040830152949350505050565b600067ffffffffffffffff82168061404f5761404f613af4565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516140af8160178501602088016136ac565b7f206973206d697373696e6720726f6c652000000000000000000000000000000060179184019182015283516140ec8160288401602088016136ac565b01602801949350505050565b602081526000612e8960208301846136d0565b838152826020820152600082516141298160408501602087016136ac565b91909101604001949350505050565b80820180821115610a6257610a62613af4565b6000808585111561415b57600080fd5b8386111561416857600080fd5b5050820193919092039150565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156141b55780818660040360031b1b83161692505b505092915050565b80356020831015610a62577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b8082028115828204841417610a6257610a62613af4565b60008161421f5761421f613af4565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b60006020828403121561425757600080fd5b8151612e89816132f8565b60008251613c0a8184602087016136ac56fea26474726f6e582212204b6dea0ffab30446a43dae6969bc2a69154faad01e34918d172ecd072114ea4b64736f6c63430008140033",
1038
+ "linkReferences": {},
1039
+ "deployedLinkReferences": {}
1040
+ }