@layerzerolabs/lz-evm-sdk-v2 2.0.12-tron-rc.2 → 2.0.12

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 (218) hide show
  1. package/artifacts/contracts/EndpointV2.sol/EndpointV2.json +2 -2
  2. package/artifacts/contracts/EndpointV2Alt.sol/EndpointV2Alt.json +2 -2
  3. package/artifacts/contracts/Executor.sol/Executor.json +2 -2
  4. package/artifacts/contracts/ExecutorFeeLib.sol/ExecutorFeeLib.json +2 -2
  5. package/artifacts/contracts/PriceFeed.sol/PriceFeed.json +2 -2
  6. package/artifacts/contracts/Treasury.sol/Treasury.json +2 -2
  7. package/artifacts/contracts/libs/AddressCast.sol/AddressCast.json +2 -2
  8. package/artifacts/contracts/libs/CalldataBytesLib.sol/CalldataBytesLib.json +2 -2
  9. package/artifacts/contracts/libs/Errors.sol/Errors.json +2 -2
  10. package/artifacts/contracts/libs/GUID.sol/GUID.json +2 -2
  11. package/artifacts/contracts/libs/SafeCall.sol/SafeCall.json +2 -2
  12. package/artifacts/contracts/libs/Transfer.sol/Transfer.json +2 -2
  13. package/artifacts/contracts/messagelib/BlockedMessageLib.sol/BlockedMessageLib.json +2 -2
  14. package/artifacts/contracts/messagelib/SimpleMessageLib.sol/SimpleMessageLib.json +2 -2
  15. package/artifacts/contracts/messagelib/libs/BitMaps.sol/BitMaps.json +2 -2
  16. package/artifacts/contracts/messagelib/libs/ExecutorOptions.sol/ExecutorOptions.json +2 -2
  17. package/artifacts/contracts/messagelib/libs/PacketV1Codec.sol/PacketV1Codec.json +2 -2
  18. package/artifacts/contracts/oapp/examples/OmniCounter.sol/MsgCodec.json +2 -2
  19. package/artifacts/contracts/oapp/examples/OmniCounter.sol/OmniCounter.json +2 -2
  20. package/artifacts/contracts/oapp/examples/OmniCounterPreCrime.sol/OmniCounterPreCrime.json +2 -2
  21. package/artifacts/contracts/oapp/libs/OptionsBuilder.sol/OptionsBuilder.json +2 -2
  22. package/artifacts/contracts/oft/OFT.sol/OFT.json +2 -2
  23. package/artifacts/contracts/oft/OFTAdapter.sol/OFTAdapter.json +2 -2
  24. package/artifacts/contracts/oft/libs/OFTComposeMsgCodec.sol/OFTComposeMsgCodec.json +2 -2
  25. package/artifacts/contracts/oft/libs/OFTMsgCodec.sol/OFTMsgCodec.json +2 -2
  26. package/artifacts/contracts/precrime/libs/Packet.sol/PacketDecoder.json +2 -2
  27. package/artifacts/contracts/uln/LzExecutor.sol/LzExecutor.json +5 -5
  28. package/artifacts/contracts/uln/dvn/DVN.sol/DVN.json +2 -2
  29. package/artifacts/contracts/uln/dvn/DVNFeeLib.sol/DVNFeeLib.json +2 -2
  30. package/artifacts/contracts/uln/dvn/adapters/CCIP/CCIPDVNAdapter.sol/CCIPDVNAdapter.json +2 -2
  31. package/artifacts/contracts/uln/dvn/adapters/CCIP/CCIPDVNAdapterFeeLib.sol/CCIPDVNAdapterFeeLib.json +2 -2
  32. package/artifacts/contracts/uln/dvn/adapters/DVNAdapterFeeLibBase.sol/DVNAdapterFeeLibBase.json +2 -2
  33. package/artifacts/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapter.sol/AxelarDVNAdapter.json +2 -2
  34. package/artifacts/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapterFeeLib.sol/AxelarDVNAdapterFeeLib.json +2 -2
  35. package/artifacts/contracts/uln/libs/DVNOptions.sol/DVNOptions.json +2 -2
  36. package/artifacts/contracts/uln/libs/UlnOptions.sol/UlnOptions.json +2 -2
  37. package/artifacts/contracts/uln/uln301/ReceiveUln301.sol/ReceiveUln301.json +2 -2
  38. package/artifacts/contracts/uln/uln301/SendUln301.sol/SendUln301.json +2 -2
  39. package/artifacts/contracts/uln/uln301/TreasuryFeeHandler.sol/TreasuryFeeHandler.json +2 -2
  40. package/artifacts/contracts/uln/uln302/ReceiveUln302.sol/ReceiveUln302.json +2 -2
  41. package/artifacts/contracts/uln/uln302/SendUln302.sol/SendUln302.json +2 -2
  42. package/deployments/{arbitrum-sandbox-local → bera-testnet}/DVN.json +76 -43
  43. package/deployments/{bsc-sandbox-local → bera-testnet}/DVNFeeLib.json +13 -13
  44. package/deployments/{arbitrum-sandbox-local → bera-testnet}/EndpointV2.json +114 -60
  45. package/deployments/{tron-sandbox-local → bera-testnet}/Executor.json +88 -105
  46. package/deployments/{bsc-sandbox-local → bera-testnet}/ExecutorFeeLib.json +13 -13
  47. package/deployments/{bsc-sandbox-local → bera-testnet}/ExecutorProxyAdmin.json +20 -20
  48. package/deployments/{bsc-sandbox-local → bera-testnet}/Executor_Implementation.json +7 -7
  49. package/deployments/{tron-sandbox-local → bera-testnet}/Executor_Proxy.json +79 -94
  50. package/deployments/bera-testnet/LzExecutor.json +332 -0
  51. package/deployments/bera-testnet/PriceFeed.json +35 -35
  52. package/deployments/bera-testnet/PriceFeedProxyAdmin.json +17 -17
  53. package/deployments/bera-testnet/PriceFeed_Implementation.json +6 -6
  54. package/deployments/bera-testnet/PriceFeed_Proxy.json +34 -34
  55. package/deployments/{bsc-sandbox-local → bera-testnet}/ReceiveUln301.json +15 -15
  56. package/deployments/{avalanche-sandbox-local → bera-testnet}/ReceiveUln302.json +18 -18
  57. package/deployments/{arbitrum-sandbox-local → bera-testnet}/SendUln301.json +17 -17
  58. package/deployments/{arbitrum-sandbox-local → bera-testnet}/SendUln302.json +14 -14
  59. package/deployments/{bsc-sandbox-local → bera-testnet}/Treasury.json +13 -13
  60. package/deployments/{avalanche-sandbox-local → bera-testnet}/TreasuryFeeHandler.json +8 -8
  61. package/deployments/ethereum-sandbox-local/BlockedMessageLib.json +90 -0
  62. package/deployments/ethereum-sandbox-local/DVN.json +5 -5
  63. package/deployments/ethereum-sandbox-local/DVNFeeLib.json +2 -2
  64. package/deployments/ethereum-sandbox-local/Endpoint.json +2355 -0
  65. package/deployments/ethereum-sandbox-local/EndpointV2.json +4 -4
  66. package/deployments/ethereum-sandbox-local/Executor.json +14 -14
  67. package/deployments/ethereum-sandbox-local/ExecutorFeeLib.json +2 -2
  68. package/deployments/ethereum-sandbox-local/ExecutorProxyAdmin.json +3 -3
  69. package/deployments/ethereum-sandbox-local/Executor_Implementation.json +1 -1
  70. package/deployments/ethereum-sandbox-local/Executor_Proxy.json +14 -14
  71. package/deployments/ethereum-sandbox-local/MultiSigOracle.json +1448 -0
  72. package/deployments/ethereum-sandbox-local/NonceContract.json +158 -0
  73. package/deployments/ethereum-sandbox-local/NonceContractMock.json +1 -1
  74. package/deployments/ethereum-sandbox-local/OmniCounter.json +1133 -0
  75. package/deployments/ethereum-sandbox-local/OmniCounterPreCrime.json +493 -0
  76. package/deployments/ethereum-sandbox-local/OmniCounterPreCrimeView.json +672 -0
  77. package/deployments/ethereum-sandbox-local/OmniCounterViewer.json +214 -0
  78. package/deployments/ethereum-sandbox-local/OmniCounterWithPreCrime.json +1646 -0
  79. package/deployments/{arbitrum-sandbox-local/Executor.json → ethereum-sandbox-local/Oracle.json} +400 -658
  80. package/deployments/ethereum-sandbox-local/OracleFeeLib.json +166 -0
  81. package/deployments/ethereum-sandbox-local/OracleProxyAdmin.json +272 -0
  82. package/deployments/ethereum-sandbox-local/Oracle_Implementation.json +1326 -0
  83. package/deployments/{bsc-sandbox-local/PriceFeed_Proxy.json → ethereum-sandbox-local/Oracle_Proxy.json} +96 -35
  84. package/deployments/ethereum-sandbox-local/PriceFeed.json +5 -5
  85. package/deployments/ethereum-sandbox-local/PriceFeedProxyAdmin.json +3 -3
  86. package/deployments/ethereum-sandbox-local/PriceFeed_Implementation.json +1 -1
  87. package/deployments/ethereum-sandbox-local/PriceFeed_Proxy.json +5 -5
  88. package/deployments/ethereum-sandbox-local/ReceiveUln301.json +2 -2
  89. package/deployments/ethereum-sandbox-local/ReceiveUln302.json +2 -2
  90. package/deployments/{tron-sandbox-local/PriceFeed.json → ethereum-sandbox-local/Relayer.json} +445 -339
  91. package/deployments/ethereum-sandbox-local/RelayerFeeLib.json +130 -0
  92. package/deployments/ethereum-sandbox-local/RelayerProxyAdmin.json +272 -0
  93. package/deployments/ethereum-sandbox-local/Relayer_Implementation.json +1014 -0
  94. package/deployments/{tron-sandbox-local/PriceFeed_Proxy.json → ethereum-sandbox-local/Relayer_Proxy.json} +64 -33
  95. package/deployments/ethereum-sandbox-local/SendUln301.json +2 -2
  96. package/deployments/ethereum-sandbox-local/SendUln302.json +2 -2
  97. package/deployments/ethereum-sandbox-local/SimpleMessageLib.json +2 -2
  98. package/deployments/ethereum-sandbox-local/Treasury.json +2 -2
  99. package/deployments/ethereum-sandbox-local/TreasuryFeeHandler.json +1 -1
  100. package/deployments/ethereum-sandbox-local/UlnConfig301.json +1003 -0
  101. package/deployments/ethereum-sandbox-local/UlnConfig302.json +1003 -0
  102. package/deployments/ethereum-sandbox-local/UltraLightNodeE302.json +1696 -0
  103. package/deployments/{bsc-sandbox-local → etherlink-testnet}/PriceFeed.json +34 -34
  104. package/deployments/{arbitrum-sandbox-local/ExecutorProxyAdmin.json → etherlink-testnet/PriceFeedProxyAdmin.json} +22 -22
  105. package/deployments/{arbitrum-sandbox-local → etherlink-testnet}/PriceFeed_Implementation.json +9 -9
  106. package/deployments/{avalanche-sandbox-local → etherlink-testnet}/PriceFeed_Proxy.json +32 -32
  107. package/deployments/{avalanche-sandbox-local → etherlink-testnet}/Treasury.json +15 -15
  108. package/deployments/polygon-sandbox-local/BlockedMessageLib.json +90 -0
  109. package/deployments/polygon-sandbox-local/DVN.json +5 -5
  110. package/deployments/polygon-sandbox-local/DVNFeeLib.json +2 -2
  111. package/deployments/polygon-sandbox-local/Endpoint.json +2355 -0
  112. package/deployments/polygon-sandbox-local/EndpointV2.json +4 -4
  113. package/deployments/polygon-sandbox-local/Executor.json +14 -14
  114. package/deployments/polygon-sandbox-local/ExecutorFeeLib.json +2 -2
  115. package/deployments/polygon-sandbox-local/ExecutorProxyAdmin.json +3 -3
  116. package/deployments/polygon-sandbox-local/Executor_Implementation.json +1 -1
  117. package/deployments/polygon-sandbox-local/Executor_Proxy.json +14 -14
  118. package/deployments/polygon-sandbox-local/MultiSigOracle.json +1448 -0
  119. package/deployments/polygon-sandbox-local/NonceContract.json +158 -0
  120. package/deployments/polygon-sandbox-local/NonceContractMock.json +1 -1
  121. package/deployments/polygon-sandbox-local/OmniCounter.json +1133 -0
  122. package/deployments/polygon-sandbox-local/OmniCounterPreCrime.json +493 -0
  123. package/deployments/polygon-sandbox-local/OmniCounterPreCrimeView.json +672 -0
  124. package/deployments/polygon-sandbox-local/OmniCounterViewer.json +214 -0
  125. package/deployments/polygon-sandbox-local/OmniCounterWithPreCrime.json +1646 -0
  126. package/deployments/{bsc-sandbox-local/Executor.json → polygon-sandbox-local/Oracle.json} +400 -658
  127. package/deployments/polygon-sandbox-local/OracleFeeLib.json +166 -0
  128. package/deployments/polygon-sandbox-local/OracleProxyAdmin.json +272 -0
  129. package/deployments/polygon-sandbox-local/Oracle_Implementation.json +1326 -0
  130. package/deployments/polygon-sandbox-local/Oracle_Proxy.json +305 -0
  131. package/deployments/polygon-sandbox-local/PriceFeed.json +5 -5
  132. package/deployments/polygon-sandbox-local/PriceFeedProxyAdmin.json +3 -3
  133. package/deployments/polygon-sandbox-local/PriceFeed_Implementation.json +1 -1
  134. package/deployments/polygon-sandbox-local/PriceFeed_Proxy.json +5 -5
  135. package/deployments/polygon-sandbox-local/ReceiveUln301.json +2 -2
  136. package/deployments/polygon-sandbox-local/ReceiveUln302.json +2 -2
  137. package/deployments/{arbitrum-sandbox-local/PriceFeed.json → polygon-sandbox-local/Relayer.json} +445 -339
  138. package/deployments/polygon-sandbox-local/RelayerFeeLib.json +130 -0
  139. package/deployments/polygon-sandbox-local/RelayerProxyAdmin.json +272 -0
  140. package/deployments/polygon-sandbox-local/Relayer_Implementation.json +1014 -0
  141. package/deployments/{arbitrum-sandbox-local/PriceFeed_Proxy.json → polygon-sandbox-local/Relayer_Proxy.json} +64 -33
  142. package/deployments/polygon-sandbox-local/SendUln301.json +2 -2
  143. package/deployments/polygon-sandbox-local/SendUln302.json +2 -2
  144. package/deployments/polygon-sandbox-local/SimpleMessageLib.json +2 -2
  145. package/deployments/polygon-sandbox-local/Treasury.json +2 -2
  146. package/deployments/polygon-sandbox-local/TreasuryFeeHandler.json +1 -1
  147. package/deployments/polygon-sandbox-local/UlnConfig301.json +1003 -0
  148. package/deployments/polygon-sandbox-local/UlnConfig302.json +1003 -0
  149. package/deployments/polygon-sandbox-local/UltraLightNodeE302.json +1696 -0
  150. package/dist/{index-cijKSBLK.d.cts → index-pO8kCANF.d.mts} +41 -41
  151. package/dist/{index-cijKSBLK.d.ts → index-pO8kCANF.d.ts} +41 -41
  152. package/dist/index.browser.cjs +34 -34
  153. package/dist/index.browser.cjs.map +1 -1
  154. package/dist/{index.browser.d.cts → index.browser.d.mts} +1 -1
  155. package/dist/index.browser.d.ts +1 -1
  156. package/dist/index.browser.mjs +34 -34
  157. package/dist/index.browser.mjs.map +1 -1
  158. package/dist/index.cjs +34 -34
  159. package/dist/index.cjs.map +1 -1
  160. package/dist/{index.d.cts → index.d.mts} +1 -1
  161. package/dist/index.d.ts +1 -1
  162. package/dist/index.mjs +34 -34
  163. package/dist/index.mjs.map +1 -1
  164. package/package.json +15 -14
  165. package/deployments/arbitrum-sandbox-local/DVNFeeLib.json +0 -387
  166. package/deployments/arbitrum-sandbox-local/ExecutorFeeLib.json +0 -407
  167. package/deployments/arbitrum-sandbox-local/Executor_Implementation.json +0 -1591
  168. package/deployments/arbitrum-sandbox-local/Executor_Proxy.json +0 -380
  169. package/deployments/arbitrum-sandbox-local/NonceContractMock.json +0 -163
  170. package/deployments/arbitrum-sandbox-local/PriceFeedProxyAdmin.json +0 -283
  171. package/deployments/arbitrum-sandbox-local/ReceiveUln301.json +0 -1264
  172. package/deployments/arbitrum-sandbox-local/ReceiveUln302.json +0 -954
  173. package/deployments/arbitrum-sandbox-local/SimpleMessageLib.json +0 -708
  174. package/deployments/arbitrum-sandbox-local/Treasury.json +0 -412
  175. package/deployments/arbitrum-sandbox-local/TreasuryFeeHandler.json +0 -125
  176. package/deployments/avalanche-sandbox-local/DVN.json +0 -1896
  177. package/deployments/avalanche-sandbox-local/DVNFeeLib.json +0 -387
  178. package/deployments/avalanche-sandbox-local/EndpointV2.json +0 -2955
  179. package/deployments/avalanche-sandbox-local/Executor.json +0 -1549
  180. package/deployments/avalanche-sandbox-local/ExecutorFeeLib.json +0 -407
  181. package/deployments/avalanche-sandbox-local/ExecutorProxyAdmin.json +0 -283
  182. package/deployments/avalanche-sandbox-local/Executor_Implementation.json +0 -1591
  183. package/deployments/avalanche-sandbox-local/Executor_Proxy.json +0 -380
  184. package/deployments/avalanche-sandbox-local/NonceContractMock.json +0 -163
  185. package/deployments/avalanche-sandbox-local/PriceFeed.json +0 -890
  186. package/deployments/avalanche-sandbox-local/PriceFeedProxyAdmin.json +0 -283
  187. package/deployments/avalanche-sandbox-local/PriceFeed_Implementation.json +0 -912
  188. package/deployments/avalanche-sandbox-local/ReceiveUln301.json +0 -1264
  189. package/deployments/avalanche-sandbox-local/SendUln301.json +0 -1569
  190. package/deployments/avalanche-sandbox-local/SendUln302.json +0 -1527
  191. package/deployments/avalanche-sandbox-local/SimpleMessageLib.json +0 -708
  192. package/deployments/bsc-sandbox-local/DVN.json +0 -1896
  193. package/deployments/bsc-sandbox-local/EndpointV2.json +0 -2955
  194. package/deployments/bsc-sandbox-local/Executor_Proxy.json +0 -380
  195. package/deployments/bsc-sandbox-local/NonceContractMock.json +0 -163
  196. package/deployments/bsc-sandbox-local/PriceFeedProxyAdmin.json +0 -283
  197. package/deployments/bsc-sandbox-local/PriceFeed_Implementation.json +0 -912
  198. package/deployments/bsc-sandbox-local/ReceiveUln302.json +0 -954
  199. package/deployments/bsc-sandbox-local/SendUln301.json +0 -1569
  200. package/deployments/bsc-sandbox-local/SendUln302.json +0 -1527
  201. package/deployments/bsc-sandbox-local/SimpleMessageLib.json +0 -708
  202. package/deployments/bsc-sandbox-local/TreasuryFeeHandler.json +0 -125
  203. package/deployments/tron-sandbox-local/DVN.json +0 -1896
  204. package/deployments/tron-sandbox-local/DVNFeeLib.json +0 -387
  205. package/deployments/tron-sandbox-local/EndpointV2.json +0 -2955
  206. package/deployments/tron-sandbox-local/ExecutorFeeLib.json +0 -407
  207. package/deployments/tron-sandbox-local/ExecutorProxyAdmin.json +0 -283
  208. package/deployments/tron-sandbox-local/Executor_Implementation.json +0 -1591
  209. package/deployments/tron-sandbox-local/NonceContractMock.json +0 -163
  210. package/deployments/tron-sandbox-local/PriceFeedProxyAdmin.json +0 -283
  211. package/deployments/tron-sandbox-local/PriceFeed_Implementation.json +0 -912
  212. package/deployments/tron-sandbox-local/ReceiveUln301.json +0 -1264
  213. package/deployments/tron-sandbox-local/ReceiveUln302.json +0 -954
  214. package/deployments/tron-sandbox-local/SendUln301.json +0 -1569
  215. package/deployments/tron-sandbox-local/SendUln302.json +0 -1527
  216. package/deployments/tron-sandbox-local/SimpleMessageLib.json +0 -708
  217. package/deployments/tron-sandbox-local/Treasury.json +0 -412
  218. package/deployments/tron-sandbox-local/TreasuryFeeHandler.json +0 -125
@@ -0,0 +1,1133 @@
1
+ {
2
+ "address": "0x39dD11C243Ac4Ac250980FA3AEa016f73C509f37",
3
+ "abi": [
4
+ {
5
+ "inputs": [
6
+ {
7
+ "internalType": "address",
8
+ "name": "_endpoint",
9
+ "type": "address"
10
+ }
11
+ ],
12
+ "stateMutability": "nonpayable",
13
+ "type": "constructor"
14
+ },
15
+ {
16
+ "inputs": [
17
+ {
18
+ "internalType": "address",
19
+ "name": "addr",
20
+ "type": "address"
21
+ }
22
+ ],
23
+ "name": "EndpointOnly",
24
+ "type": "error"
25
+ },
26
+ {
27
+ "inputs": [],
28
+ "name": "InvalidEndpointCall",
29
+ "type": "error"
30
+ },
31
+ {
32
+ "inputs": [
33
+ {
34
+ "internalType": "bytes32",
35
+ "name": "addr",
36
+ "type": "bytes32"
37
+ }
38
+ ],
39
+ "name": "InvalidPeer",
40
+ "type": "error"
41
+ },
42
+ {
43
+ "inputs": [],
44
+ "name": "InvalidPeerState",
45
+ "type": "error"
46
+ },
47
+ {
48
+ "inputs": [
49
+ {
50
+ "internalType": "uint32",
51
+ "name": "eid",
52
+ "type": "uint32"
53
+ }
54
+ ],
55
+ "name": "NoPeerSet",
56
+ "type": "error"
57
+ },
58
+ {
59
+ "inputs": [
60
+ {
61
+ "internalType": "bytes",
62
+ "name": "result",
63
+ "type": "bytes"
64
+ }
65
+ ],
66
+ "name": "SimulationResult",
67
+ "type": "error"
68
+ },
69
+ {
70
+ "anonymous": false,
71
+ "inputs": [
72
+ {
73
+ "indexed": true,
74
+ "internalType": "address",
75
+ "name": "previousOwner",
76
+ "type": "address"
77
+ },
78
+ {
79
+ "indexed": true,
80
+ "internalType": "address",
81
+ "name": "newOwner",
82
+ "type": "address"
83
+ }
84
+ ],
85
+ "name": "OwnershipTransferred",
86
+ "type": "event"
87
+ },
88
+ {
89
+ "anonymous": false,
90
+ "inputs": [
91
+ {
92
+ "components": [
93
+ {
94
+ "internalType": "uint32",
95
+ "name": "eid",
96
+ "type": "uint32"
97
+ },
98
+ {
99
+ "internalType": "uint16",
100
+ "name": "msgType",
101
+ "type": "uint16"
102
+ },
103
+ {
104
+ "internalType": "bytes",
105
+ "name": "options",
106
+ "type": "bytes"
107
+ }
108
+ ],
109
+ "indexed": false,
110
+ "internalType": "struct EnforcedOptionParam[]",
111
+ "name": "_enforcedOptions",
112
+ "type": "tuple[]"
113
+ }
114
+ ],
115
+ "name": "SetEnforcedOption",
116
+ "type": "event"
117
+ },
118
+ {
119
+ "anonymous": false,
120
+ "inputs": [
121
+ {
122
+ "indexed": false,
123
+ "internalType": "uint32",
124
+ "name": "remoteEid",
125
+ "type": "uint32"
126
+ },
127
+ {
128
+ "indexed": false,
129
+ "internalType": "bytes32",
130
+ "name": "peer",
131
+ "type": "bytes32"
132
+ }
133
+ ],
134
+ "name": "SetPeer",
135
+ "type": "event"
136
+ },
137
+ {
138
+ "anonymous": false,
139
+ "inputs": [
140
+ {
141
+ "indexed": false,
142
+ "internalType": "address",
143
+ "name": "precrime",
144
+ "type": "address"
145
+ }
146
+ ],
147
+ "name": "SetPreCrime",
148
+ "type": "event"
149
+ },
150
+ {
151
+ "stateMutability": "payable",
152
+ "type": "fallback"
153
+ },
154
+ {
155
+ "inputs": [],
156
+ "name": "admin",
157
+ "outputs": [
158
+ {
159
+ "internalType": "address",
160
+ "name": "",
161
+ "type": "address"
162
+ }
163
+ ],
164
+ "stateMutability": "view",
165
+ "type": "function"
166
+ },
167
+ {
168
+ "inputs": [
169
+ {
170
+ "internalType": "uint32[]",
171
+ "name": "_eids",
172
+ "type": "uint32[]"
173
+ },
174
+ {
175
+ "internalType": "uint8[]",
176
+ "name": "_types",
177
+ "type": "uint8[]"
178
+ },
179
+ {
180
+ "internalType": "bytes[]",
181
+ "name": "_options",
182
+ "type": "bytes[]"
183
+ }
184
+ ],
185
+ "name": "batchIncrement",
186
+ "outputs": [],
187
+ "stateMutability": "payable",
188
+ "type": "function"
189
+ },
190
+ {
191
+ "inputs": [
192
+ {
193
+ "internalType": "uint32",
194
+ "name": "_eid",
195
+ "type": "uint32"
196
+ },
197
+ {
198
+ "internalType": "uint8",
199
+ "name": "_type",
200
+ "type": "uint8"
201
+ },
202
+ {
203
+ "internalType": "bytes",
204
+ "name": "_options",
205
+ "type": "bytes"
206
+ }
207
+ ],
208
+ "name": "brokenIncrement",
209
+ "outputs": [],
210
+ "stateMutability": "payable",
211
+ "type": "function"
212
+ },
213
+ {
214
+ "inputs": [
215
+ {
216
+ "internalType": "bytes",
217
+ "name": "_callData",
218
+ "type": "bytes"
219
+ }
220
+ ],
221
+ "name": "callEndpoint",
222
+ "outputs": [],
223
+ "stateMutability": "nonpayable",
224
+ "type": "function"
225
+ },
226
+ {
227
+ "inputs": [
228
+ {
229
+ "internalType": "uint32",
230
+ "name": "eid",
231
+ "type": "uint32"
232
+ },
233
+ {
234
+ "internalType": "uint16",
235
+ "name": "msgType",
236
+ "type": "uint16"
237
+ },
238
+ {
239
+ "internalType": "bytes",
240
+ "name": "extraOptions",
241
+ "type": "bytes"
242
+ }
243
+ ],
244
+ "name": "combineOptions",
245
+ "outputs": [
246
+ {
247
+ "internalType": "bytes",
248
+ "name": "options",
249
+ "type": "bytes"
250
+ }
251
+ ],
252
+ "stateMutability": "view",
253
+ "type": "function"
254
+ },
255
+ {
256
+ "inputs": [],
257
+ "name": "composedCount",
258
+ "outputs": [
259
+ {
260
+ "internalType": "uint256",
261
+ "name": "",
262
+ "type": "uint256"
263
+ }
264
+ ],
265
+ "stateMutability": "view",
266
+ "type": "function"
267
+ },
268
+ {
269
+ "inputs": [],
270
+ "name": "count",
271
+ "outputs": [
272
+ {
273
+ "internalType": "uint256",
274
+ "name": "",
275
+ "type": "uint256"
276
+ }
277
+ ],
278
+ "stateMutability": "view",
279
+ "type": "function"
280
+ },
281
+ {
282
+ "inputs": [],
283
+ "name": "eid",
284
+ "outputs": [
285
+ {
286
+ "internalType": "uint32",
287
+ "name": "",
288
+ "type": "uint32"
289
+ }
290
+ ],
291
+ "stateMutability": "view",
292
+ "type": "function"
293
+ },
294
+ {
295
+ "inputs": [],
296
+ "name": "endpoint",
297
+ "outputs": [
298
+ {
299
+ "internalType": "contract ILayerZeroEndpointV2",
300
+ "name": "",
301
+ "type": "address"
302
+ }
303
+ ],
304
+ "stateMutability": "view",
305
+ "type": "function"
306
+ },
307
+ {
308
+ "inputs": [
309
+ {
310
+ "internalType": "uint32",
311
+ "name": "eid",
312
+ "type": "uint32"
313
+ },
314
+ {
315
+ "internalType": "uint16",
316
+ "name": "msgType",
317
+ "type": "uint16"
318
+ }
319
+ ],
320
+ "name": "enforcedOptions",
321
+ "outputs": [
322
+ {
323
+ "internalType": "bytes",
324
+ "name": "",
325
+ "type": "bytes"
326
+ }
327
+ ],
328
+ "stateMutability": "view",
329
+ "type": "function"
330
+ },
331
+ {
332
+ "inputs": [],
333
+ "name": "implementation",
334
+ "outputs": [
335
+ {
336
+ "internalType": "address",
337
+ "name": "",
338
+ "type": "address"
339
+ }
340
+ ],
341
+ "stateMutability": "view",
342
+ "type": "function"
343
+ },
344
+ {
345
+ "inputs": [
346
+ {
347
+ "internalType": "uint32",
348
+ "name": "srcEid",
349
+ "type": "uint32"
350
+ }
351
+ ],
352
+ "name": "inboundCount",
353
+ "outputs": [
354
+ {
355
+ "internalType": "uint256",
356
+ "name": "count",
357
+ "type": "uint256"
358
+ }
359
+ ],
360
+ "stateMutability": "view",
361
+ "type": "function"
362
+ },
363
+ {
364
+ "inputs": [
365
+ {
366
+ "internalType": "uint32",
367
+ "name": "_eid",
368
+ "type": "uint32"
369
+ },
370
+ {
371
+ "internalType": "uint8",
372
+ "name": "_type",
373
+ "type": "uint8"
374
+ },
375
+ {
376
+ "internalType": "bytes",
377
+ "name": "_options",
378
+ "type": "bytes"
379
+ }
380
+ ],
381
+ "name": "increment",
382
+ "outputs": [],
383
+ "stateMutability": "payable",
384
+ "type": "function"
385
+ },
386
+ {
387
+ "inputs": [
388
+ {
389
+ "internalType": "uint32",
390
+ "name": "_eid",
391
+ "type": "uint32"
392
+ },
393
+ {
394
+ "internalType": "bytes32",
395
+ "name": "_peer",
396
+ "type": "bytes32"
397
+ }
398
+ ],
399
+ "name": "isPeer",
400
+ "outputs": [
401
+ {
402
+ "internalType": "bool",
403
+ "name": "",
404
+ "type": "bool"
405
+ }
406
+ ],
407
+ "stateMutability": "view",
408
+ "type": "function"
409
+ },
410
+ {
411
+ "inputs": [
412
+ {
413
+ "internalType": "address",
414
+ "name": "",
415
+ "type": "address"
416
+ },
417
+ {
418
+ "internalType": "bytes32",
419
+ "name": "",
420
+ "type": "bytes32"
421
+ },
422
+ {
423
+ "internalType": "bytes",
424
+ "name": "_message",
425
+ "type": "bytes"
426
+ },
427
+ {
428
+ "internalType": "address",
429
+ "name": "",
430
+ "type": "address"
431
+ },
432
+ {
433
+ "internalType": "bytes",
434
+ "name": "",
435
+ "type": "bytes"
436
+ }
437
+ ],
438
+ "name": "lzCompose",
439
+ "outputs": [],
440
+ "stateMutability": "payable",
441
+ "type": "function"
442
+ },
443
+ {
444
+ "inputs": [
445
+ {
446
+ "components": [
447
+ {
448
+ "internalType": "uint32",
449
+ "name": "srcEid",
450
+ "type": "uint32"
451
+ },
452
+ {
453
+ "internalType": "bytes32",
454
+ "name": "sender",
455
+ "type": "bytes32"
456
+ },
457
+ {
458
+ "internalType": "uint64",
459
+ "name": "nonce",
460
+ "type": "uint64"
461
+ }
462
+ ],
463
+ "internalType": "struct Origin",
464
+ "name": "_origin",
465
+ "type": "tuple"
466
+ },
467
+ {
468
+ "internalType": "bytes32",
469
+ "name": "_guid",
470
+ "type": "bytes32"
471
+ },
472
+ {
473
+ "internalType": "bytes",
474
+ "name": "_message",
475
+ "type": "bytes"
476
+ },
477
+ {
478
+ "internalType": "address",
479
+ "name": "_executor",
480
+ "type": "address"
481
+ },
482
+ {
483
+ "internalType": "bytes",
484
+ "name": "_extraData",
485
+ "type": "bytes"
486
+ }
487
+ ],
488
+ "name": "lzReceive",
489
+ "outputs": [],
490
+ "stateMutability": "payable",
491
+ "type": "function"
492
+ },
493
+ {
494
+ "inputs": [
495
+ {
496
+ "components": [
497
+ {
498
+ "components": [
499
+ {
500
+ "internalType": "uint32",
501
+ "name": "srcEid",
502
+ "type": "uint32"
503
+ },
504
+ {
505
+ "internalType": "bytes32",
506
+ "name": "sender",
507
+ "type": "bytes32"
508
+ },
509
+ {
510
+ "internalType": "uint64",
511
+ "name": "nonce",
512
+ "type": "uint64"
513
+ }
514
+ ],
515
+ "internalType": "struct Origin",
516
+ "name": "origin",
517
+ "type": "tuple"
518
+ },
519
+ {
520
+ "internalType": "uint32",
521
+ "name": "dstEid",
522
+ "type": "uint32"
523
+ },
524
+ {
525
+ "internalType": "address",
526
+ "name": "receiver",
527
+ "type": "address"
528
+ },
529
+ {
530
+ "internalType": "bytes32",
531
+ "name": "guid",
532
+ "type": "bytes32"
533
+ },
534
+ {
535
+ "internalType": "bytes",
536
+ "name": "message",
537
+ "type": "bytes"
538
+ }
539
+ ],
540
+ "internalType": "struct InboundPacket[]",
541
+ "name": "_packets",
542
+ "type": "tuple[]"
543
+ }
544
+ ],
545
+ "name": "lzReceiveAndRevert",
546
+ "outputs": [],
547
+ "stateMutability": "payable",
548
+ "type": "function"
549
+ },
550
+ {
551
+ "inputs": [
552
+ {
553
+ "internalType": "uint32",
554
+ "name": "_srcEid",
555
+ "type": "uint32"
556
+ },
557
+ {
558
+ "internalType": "bytes32",
559
+ "name": "_sender",
560
+ "type": "bytes32"
561
+ }
562
+ ],
563
+ "name": "nextNonce",
564
+ "outputs": [
565
+ {
566
+ "internalType": "uint64",
567
+ "name": "",
568
+ "type": "uint64"
569
+ }
570
+ ],
571
+ "stateMutability": "view",
572
+ "type": "function"
573
+ },
574
+ {
575
+ "inputs": [],
576
+ "name": "oapp",
577
+ "outputs": [
578
+ {
579
+ "internalType": "address",
580
+ "name": "",
581
+ "type": "address"
582
+ }
583
+ ],
584
+ "stateMutability": "view",
585
+ "type": "function"
586
+ },
587
+ {
588
+ "inputs": [
589
+ {
590
+ "internalType": "uint32",
591
+ "name": "dstEid",
592
+ "type": "uint32"
593
+ }
594
+ ],
595
+ "name": "outboundCount",
596
+ "outputs": [
597
+ {
598
+ "internalType": "uint256",
599
+ "name": "count",
600
+ "type": "uint256"
601
+ }
602
+ ],
603
+ "stateMutability": "view",
604
+ "type": "function"
605
+ },
606
+ {
607
+ "inputs": [],
608
+ "name": "owner",
609
+ "outputs": [
610
+ {
611
+ "internalType": "address",
612
+ "name": "",
613
+ "type": "address"
614
+ }
615
+ ],
616
+ "stateMutability": "view",
617
+ "type": "function"
618
+ },
619
+ {
620
+ "inputs": [
621
+ {
622
+ "internalType": "uint32",
623
+ "name": "",
624
+ "type": "uint32"
625
+ }
626
+ ],
627
+ "name": "peers",
628
+ "outputs": [
629
+ {
630
+ "internalType": "bytes32",
631
+ "name": "",
632
+ "type": "bytes32"
633
+ }
634
+ ],
635
+ "stateMutability": "view",
636
+ "type": "function"
637
+ },
638
+ {
639
+ "inputs": [],
640
+ "name": "precrime",
641
+ "outputs": [
642
+ {
643
+ "internalType": "address",
644
+ "name": "",
645
+ "type": "address"
646
+ }
647
+ ],
648
+ "stateMutability": "view",
649
+ "type": "function"
650
+ },
651
+ {
652
+ "inputs": [
653
+ {
654
+ "internalType": "uint32",
655
+ "name": "_eid",
656
+ "type": "uint32"
657
+ },
658
+ {
659
+ "internalType": "uint8",
660
+ "name": "_type",
661
+ "type": "uint8"
662
+ },
663
+ {
664
+ "internalType": "bytes",
665
+ "name": "_options",
666
+ "type": "bytes"
667
+ }
668
+ ],
669
+ "name": "quote",
670
+ "outputs": [
671
+ {
672
+ "internalType": "uint256",
673
+ "name": "nativeFee",
674
+ "type": "uint256"
675
+ },
676
+ {
677
+ "internalType": "uint256",
678
+ "name": "zroFee",
679
+ "type": "uint256"
680
+ }
681
+ ],
682
+ "stateMutability": "view",
683
+ "type": "function"
684
+ },
685
+ {
686
+ "inputs": [],
687
+ "name": "renounceOwnership",
688
+ "outputs": [],
689
+ "stateMutability": "nonpayable",
690
+ "type": "function"
691
+ },
692
+ {
693
+ "inputs": [
694
+ {
695
+ "internalType": "uint32",
696
+ "name": "_eid",
697
+ "type": "uint32"
698
+ }
699
+ ],
700
+ "name": "safeGetPeer",
701
+ "outputs": [
702
+ {
703
+ "internalType": "bytes32",
704
+ "name": "peer",
705
+ "type": "bytes32"
706
+ }
707
+ ],
708
+ "stateMutability": "view",
709
+ "type": "function"
710
+ },
711
+ {
712
+ "inputs": [
713
+ {
714
+ "internalType": "address",
715
+ "name": "_admin",
716
+ "type": "address"
717
+ }
718
+ ],
719
+ "name": "setAdmin",
720
+ "outputs": [],
721
+ "stateMutability": "nonpayable",
722
+ "type": "function"
723
+ },
724
+ {
725
+ "inputs": [
726
+ {
727
+ "components": [
728
+ {
729
+ "internalType": "uint32",
730
+ "name": "eid",
731
+ "type": "uint32"
732
+ },
733
+ {
734
+ "internalType": "uint16",
735
+ "name": "msgType",
736
+ "type": "uint16"
737
+ },
738
+ {
739
+ "internalType": "bytes",
740
+ "name": "options",
741
+ "type": "bytes"
742
+ }
743
+ ],
744
+ "internalType": "struct EnforcedOptionParam[]",
745
+ "name": "_enforcedOptions",
746
+ "type": "tuple[]"
747
+ }
748
+ ],
749
+ "name": "setEnforcedOptions",
750
+ "outputs": [],
751
+ "stateMutability": "nonpayable",
752
+ "type": "function"
753
+ },
754
+ {
755
+ "inputs": [
756
+ {
757
+ "internalType": "bool",
758
+ "name": "_orderedNonce",
759
+ "type": "bool"
760
+ }
761
+ ],
762
+ "name": "setOrderedNonce",
763
+ "outputs": [],
764
+ "stateMutability": "nonpayable",
765
+ "type": "function"
766
+ },
767
+ {
768
+ "inputs": [
769
+ {
770
+ "internalType": "uint32",
771
+ "name": "_eid",
772
+ "type": "uint32"
773
+ },
774
+ {
775
+ "internalType": "bytes32",
776
+ "name": "_peer",
777
+ "type": "bytes32"
778
+ }
779
+ ],
780
+ "name": "setPeer",
781
+ "outputs": [],
782
+ "stateMutability": "nonpayable",
783
+ "type": "function"
784
+ },
785
+ {
786
+ "inputs": [
787
+ {
788
+ "internalType": "address",
789
+ "name": "_precrime",
790
+ "type": "address"
791
+ }
792
+ ],
793
+ "name": "setPreCrime",
794
+ "outputs": [],
795
+ "stateMutability": "nonpayable",
796
+ "type": "function"
797
+ },
798
+ {
799
+ "inputs": [
800
+ {
801
+ "internalType": "uint32",
802
+ "name": "_srcEid",
803
+ "type": "uint32"
804
+ },
805
+ {
806
+ "internalType": "bytes32",
807
+ "name": "_sender",
808
+ "type": "bytes32"
809
+ },
810
+ {
811
+ "internalType": "uint64",
812
+ "name": "_nonce",
813
+ "type": "uint64"
814
+ }
815
+ ],
816
+ "name": "skipInboundNonce",
817
+ "outputs": [],
818
+ "stateMutability": "nonpayable",
819
+ "type": "function"
820
+ },
821
+ {
822
+ "inputs": [
823
+ {
824
+ "internalType": "address",
825
+ "name": "newOwner",
826
+ "type": "address"
827
+ }
828
+ ],
829
+ "name": "transferOwnership",
830
+ "outputs": [],
831
+ "stateMutability": "nonpayable",
832
+ "type": "function"
833
+ },
834
+ {
835
+ "inputs": [],
836
+ "name": "version",
837
+ "outputs": [
838
+ {
839
+ "internalType": "uint256",
840
+ "name": "",
841
+ "type": "uint256"
842
+ }
843
+ ],
844
+ "stateMutability": "view",
845
+ "type": "function"
846
+ },
847
+ {
848
+ "inputs": [
849
+ {
850
+ "internalType": "address payable",
851
+ "name": "_to",
852
+ "type": "address"
853
+ },
854
+ {
855
+ "internalType": "uint256",
856
+ "name": "_amount",
857
+ "type": "uint256"
858
+ }
859
+ ],
860
+ "name": "withdraw",
861
+ "outputs": [],
862
+ "stateMutability": "nonpayable",
863
+ "type": "function"
864
+ },
865
+ {
866
+ "stateMutability": "payable",
867
+ "type": "receive"
868
+ }
869
+ ],
870
+ "transactionHash": "0xa9f6ec2a1621cffe0c556c93624ec006b455c28b8e2a3bc6ba0f794bc106ecc0",
871
+ "receipt": {
872
+ "to": null,
873
+ "from": "0x14dC79964da2C08b23698B3D3cc7Ca32193d9955",
874
+ "contractAddress": "0x39dD11C243Ac4Ac250980FA3AEa016f73C509f37",
875
+ "transactionIndex": 0,
876
+ "gasUsed": "3196348",
877
+ "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000001000000000400000000000000000000000000020000000000000000000800000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002100000000000000000000000000000000000000000000000000000000000000040000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000",
878
+ "blockHash": "0x15876ce7302ad0389d75e2dce1f9ac473f035cb41e850692ec490117ccaaa838",
879
+ "transactionHash": "0xa9f6ec2a1621cffe0c556c93624ec006b455c28b8e2a3bc6ba0f794bc106ecc0",
880
+ "logs": [
881
+ {
882
+ "transactionIndex": 0,
883
+ "blockNumber": 199,
884
+ "transactionHash": "0xa9f6ec2a1621cffe0c556c93624ec006b455c28b8e2a3bc6ba0f794bc106ecc0",
885
+ "address": "0x39dD11C243Ac4Ac250980FA3AEa016f73C509f37",
886
+ "topics": [
887
+ "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0",
888
+ "0x0000000000000000000000000000000000000000000000000000000000000000",
889
+ "0x00000000000000000000000014dc79964da2c08b23698b3d3cc7ca32193d9955"
890
+ ],
891
+ "data": "0x",
892
+ "logIndex": 0,
893
+ "blockHash": "0x15876ce7302ad0389d75e2dce1f9ac473f035cb41e850692ec490117ccaaa838"
894
+ }
895
+ ],
896
+ "blockNumber": 199,
897
+ "cumulativeGasUsed": "3196348",
898
+ "status": 1,
899
+ "byzantium": true
900
+ },
901
+ "args": [
902
+ "0xC6bA8C3233eCF65B761049ef63466945c362EdD2"
903
+ ],
904
+ "numDeployments": 1,
905
+ "solcInputHash": "f65c0d0c247b898d600b992b7f0b15da",
906
+ "bytecode": "0x60a06040523480156200001157600080fd5b5060405162003a2838038062003a28833981016040819052620000349162000139565b806200004033620000e9565b6001600160a01b03166080819052600680546001600160a01b031916331790556040805163416ecebf60e01b8152905163416ecebf916004808201926020929091908290030181865afa1580156200009c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000c291906200016b565b600660146101000a81548163ffffffff021916908363ffffffff1602179055505062000193565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156200014c57600080fd5b81516001600160a01b03811681146200016457600080fd5b9392505050565b6000602082840312156200017e57600080fd5b815163ffffffff811681146200016457600080fd5b608051613848620001e060003960008181610427015281816106e601528181610e2a0152818161158a01528181611b700152818161201a0152818161224a01526123e401526138486000f3fe6080604052600436106102175760003560e01c8063704b6c0211610126578063bc70b354116100a7578063d424388511610079578063f2fde38b11610061578063f2fde38b14610677578063f3fef3a314610697578063f851a440146106b757005b8063d424388514610637578063dbcd3b911461065757005b8063bc70b354146105bc578063c95c55be146105dc578063d0a10260146105ef578063d22446ce1461060257005b80638da5cb5b116100f8578063b7abbb5d116100e0578063b7abbb5d1461055c578063b98bd0701461056f578063bb0b6a531461058f57005b80638da5cb5b14610504578063950c8a741461052f57005b8063704b6c02146104765780637112f86f14610496578063715018a6146104b65780637d25a05e146104cb57005b8063542e7b56116101b05780635a0dfe4d116101825780635c60da1b1161016a5780635c60da1b146102495780635e280f1114610415578063622f17f61461044957005b80635a0dfe4d146103c55780635b849af6146103f557005b8063542e7b561461034357806354fd4d50146103565780635535d4611461036b57806356a472891461039857005b806326b27f84116101e957806326b27f84146102a65780633400288b146102c6578063416ecebf146102e65780635011e5b31461033057005b806306661abd146102205780630931cf881461024957806313137d651461027d578063257f4e051461029057005b3661021e57005b005b34801561022c57600080fd5b5061023660045481565b6040519081526020015b60405180910390f35b34801561025557600080fd5b50305b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610240565b61021e61028b3660046128c6565b6106e4565b34801561029c57600080fd5b5061023660055481565b3480156102b257600080fd5b506102366102c1366004612981565b6107ee565b3480156102d257600080fd5b5061021e6102e136600461299c565b610848565b3480156102f257600080fd5b5060065461031b9074010000000000000000000000000000000000000000900463ffffffff1681565b60405163ffffffff9091168152602001610240565b61021e61033e366004612a0b565b6108f5565b61021e610351366004612a4d565b610a3f565b34801561036257600080fd5b50610236600181565b34801561037757600080fd5b5061038b610386366004612af9565b610c12565b6040516102409190612b9a565b3480156103a457600080fd5b506102366103b3366004612981565b60096020526000908152604090205481565b3480156103d157600080fd5b506103e56103e036600461299c565b610cb7565b6040519015158152602001610240565b34801561040157600080fd5b5061021e610410366004612bad565b610cd6565b34801561042157600080fd5b506102587f000000000000000000000000000000000000000000000000000000000000000081565b34801561045557600080fd5b50610236610464366004612981565b600a6020526000908152604090205481565b34801561048257600080fd5b5061021e610491366004612bcf565b610d0f565b3480156104a257600080fd5b5061021e6104b1366004612c02565b610dd7565b3480156104c257600080fd5b5061021e610f0b565b3480156104d757600080fd5b506104eb6104e636600461299c565b610f1f565b60405167ffffffffffffffff9091168152602001610240565b34801561051057600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff16610258565b34801561053b57600080fd5b506003546102589073ffffffffffffffffffffffffffffffffffffffff1681565b61021e61056a366004612c53565b610f72565b34801561057b57600080fd5b5061021e61058a366004612a0b565b610fff565b34801561059b57600080fd5b506102366105aa366004612981565b60026020526000908152604090205481565b3480156105c857600080fd5b5061038b6105d7366004612cb4565b611213565b61021e6105ea366004612c53565b6114b3565b61021e6105fd366004612ce1565b611572565b34801561060e57600080fd5b5061062261061d366004612c53565b6117f4565b60408051928352602083019190915201610240565b34801561064357600080fd5b5061021e610652366004612bcf565b611840565b34801561066357600080fd5b5061021e610672366004612d62565b6118c1565b34801561068357600080fd5b5061021e610692366004612bcf565b611c09565b3480156106a357600080fd5b5061021e6106b2366004612d98565b611cc0565b3480156106c357600080fd5b506006546102589073ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16331461075a576040517fab08c09e0000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b6020870180359061076f906102c1908a612981565b146107ac576040517fc59a4f6400000000000000000000000000000000000000000000000000000000815260208801356004820152602401610751565b6107d66107bc6020890189612981565b60208901356107d160608b0160408c01612db6565b611d84565b6107e587878787878787611eb9565b50505050505050565b63ffffffff811660009081526002602052604090205480610843576040517f196fb6c000000000000000000000000000000000000000000000000000000000815263ffffffff83166004820152602401610751565b919050565b610850611ec5565b63ffffffff821660009081526002602052604090205481900361089f576040517f9556766100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63ffffffff8216600081815260026020908152604091829020849055815192835282018390527fd81b9101f39c530fa8f18e6c9c5a64e4a3d7cb699e959f5d7abb5951c65e318f91015b60405180910390a15050565b60005b8181101561097a573683838381811061091357610913612dd3565b90506020028101906109259190612e02565b90506109416109376020830183612981565b6020830135610cb7565b61094b5750610968565b6109668160a081013561096160c0830183612e40565b611f46565b505b8061097281612ed4565b9150506108f8565b503373ffffffffffffffffffffffffffffffffffffffff16638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa1580156109c6573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610a0c9190810190612f3b565b6040517f8351eea70000000000000000000000000000000000000000000000000000000081526004016107519190612b9a565b8481148015610a4d57508483145b610ab3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4f6d6e69436f756e7465723a206c656e677468206d69736d61746368000000006044820152606401610751565b610abb612813565b3460005b87811015610c07576000610ad460018a613006565b8214610ae05730610ae2565b335b905060008a8a84818110610af857610af8612dd3565b9050602002016020810190610b0d9190612981565b90506000898985818110610b2357610b23612dd3565b9050602002016020810190610b389190613019565b90506000610b68838360ff168b8b89818110610b5657610b56612dd3565b90506020028101906105d79190612e40565b9050610bd360405180608001604052808563ffffffff168152602001610b8d866107ee565b8152602001610bae85600660149054906101000a900463ffffffff16611f52565b8152602001838152506040518060400160405280898152602001600081525086611fcb565b9650610bde8361209d565b604087015151610bee9087613006565b9550505050508080610bff90612ed4565b915050610abf565b505050505050505050565b600160209081526000928352604080842090915290825290208054610c3690613034565b80601f0160208091040260200160405190810160405280929190818152602001828054610c6290613034565b8015610caf5780601f10610c8457610100808354040283529160200191610caf565b820191906000526020600020905b815481529060010190602001808311610c9257829003601f168201915b505050505081565b63ffffffff821660009081526002602052604090205481145b92915050565b610cde611ec5565b600880547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b60065473ffffffffffffffffffffffffffffffffffffffff163314610d90576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6f6e6c792061646d696e000000000000000000000000000000000000000000006044820152606401610751565b600680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610ddf611ec5565b6040517feaeacd6300000000000000000000000000000000000000000000000000000000815263ffffffff841660048201526024810183905267ffffffffffffffff821660448201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063eaeacd6390606401600060405180830381600087803b158015610e8357600080fd5b505af1158015610e97573d6000803e3d6000fd5b505060085460ff16159150610f0690505763ffffffff831660009081526007602090815260408083208584529091528120805467ffffffffffffffff1691610ede83613087565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550505b505050565b610f13611ec5565b610f1d60006120c6565b565b60085460009060ff1615610f6a5763ffffffff83166000908152600760209081526040808320858452909152902054610f639067ffffffffffffffff1660016130ae565b9050610cd0565b506000610cd0565b6000610f83858560ff168585611213565b9050610fee60405180608001604052808763ffffffff168152602001610fa8886107ee565b8152602001610fc987600660149054906101000a900463ffffffff16611f52565b8152602001838152506040518060400160405280348152602001600081525033611fcb565b50610ff88561209d565b5050505050565b611007611ec5565b60005b818110156111e157600083838381811061102657611026612dd3565b905060200281019061103891906130d6565b611046906040810190612e40565b6110559160029160009161310a565b61105e91613134565b60f01c9050600381146110f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f456e666f726365644f7074696f6e733a206f6e6c7920545950455f33206f707460448201527f696f6e732061726520737570706f7274656400000000000000000000000000006064820152608401610751565b83838381811061110557611105612dd3565b905060200281019061111791906130d6565b611125906040810190612e40565b6001600087878781811061113b5761113b612dd3565b905060200281019061114d91906130d6565b61115b906020810190612981565b63ffffffff1663ffffffff168152602001908152602001600020600087878781811061118957611189612dd3565b905060200281019061119b91906130d6565b6111ac90604081019060200161317c565b61ffff1681526020810191909152604001600020916111cc9190836131dd565b505080806111d990612ed4565b91505061100a565b507fadc065f6ee2d84e4fc04873c88fe72b002dd1bf2faa49da18167494e909ca7e882826040516108e9929190613340565b606060008290036112d25763ffffffff8516600090815260016020908152604080832061ffff881684529091529020805461124d90613034565b80601f016020809104026020016040519081016040528092919081815260200182805461127990613034565b80156112c65780601f1061129b576101008083540402835291602001916112c6565b820191906000526020600020905b8154815290600101906020018083116112a957829003601f168201915b505050505090506114ab565b60006112e1600282858761310a565b6112ea91613134565b60f01c90506003811461137f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f456e666f726365644f7074696f6e733a206f6e6c7920545950455f33206f707460448201527f696f6e732061726520737570706f7274656400000000000000000000000000006064820152608401610751565b63ffffffff8616600090815260016020908152604080832061ffff89168452909152812080546113ae90613034565b80601f01602080910402602001604051908101604052809291908181526020018280546113da90613034565b80156114275780601f106113fc57610100808354040283529160200191611427565b820191906000526020600020905b81548152906001019060200180831161140a57829003601f168201915b5050505050905060008151111561146e5780611446856002818961310a565b6040516020016114589392919061347e565b60405160208183030381529060405292506114a8565b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505050505b50505b949350505050565b60065473ffffffffffffffffffffffffffffffffffffffff163314611534576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6f6e6c792061646d696e000000000000000000000000000000000000000000006044820152606401610751565b6000611545858560ff168585611213565b905061156a60405180608001604052808763ffffffff168152602001610fa8886107ee565b505050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614611611576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21656e64706f696e7400000000000000000000000000000000000000000000006044820152606401610751565b600061161d868661213b565b90507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe60ff8216016116675760016005600082825461165c91906134a6565b909155506117ea9050565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60ff821601611788576001600560008282546116a491906134a6565b90915550600090506116b6878761215d565b90506116c18161209d565b600061171462030d40600061170d604080517e03000000000000000000000000000000000000000000000000000000000000602082015281516002818303018152602290910190915290565b919061217f565b905061178060405180608001604052808463ffffffff168152602001611739856107ee565b815260200161175b6001600660149054906101000a900463ffffffff16611f52565b8152602001838152506040518060400160405280348152602001600081525030611fcb565b5050506117ea565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e76616c6964206d65737361676520747970650000000000000000000000006044820152606401610751565b5050505050505050565b6000806000611808878760ff168787611213565b90506118328761182a88600660149054906101000a900463ffffffff16611f52565b600084612243565b925092505094509492505050565b611848611ec5565b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527f9bfd6b2fbc3428e14e9b2649314854ca348f45338b458b9a4e576760e7f405d59060200160405180910390a150565b6118c9611ec5565b60006118d582846134b9565b905060007fffffffff0000000000000000000000000000000000000000000000000000000082167fb8007ff600000000000000000000000000000000000000000000000000000000148061196a57507fffffffff0000000000000000000000000000000000000000000000000000000082167f9e7fffcc00000000000000000000000000000000000000000000000000000000145b806119b657507fffffffff0000000000000000000000000000000000000000000000000000000082167f0678327f00000000000000000000000000000000000000000000000000000000145b80611a0257507fffffffff0000000000000000000000000000000000000000000000000000000082167fb8849ac900000000000000000000000000000000000000000000000000000000145b80611a4e57507fffffffff0000000000000000000000000000000000000000000000000000000082167fe16f964d00000000000000000000000000000000000000000000000000000000145b80611a9a57507fffffffff0000000000000000000000000000000000000000000000000000000082167f66bf43d600000000000000000000000000000000000000000000000000000000145b80611ae657507fffffffff0000000000000000000000000000000000000000000000000000000082167f965183d400000000000000000000000000000000000000000000000000000000145b80611b3257507fffffffff0000000000000000000000000000000000000000000000000000000082167feaeacd6300000000000000000000000000000000000000000000000000000000145b905080611b6b576040517f0fbdec0a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168686604051611bb59291906134ff565b6000604051808303816000865af19150503d8060008114611bf2576040519150601f19603f3d011682016040523d82523d6000602084013e611bf7565b606091505b50915091508161156a57805160208201fd5b611c11611ec5565b73ffffffffffffffffffffffffffffffffffffffff8116611cb4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610751565b611cbd816120c6565b50565b60065473ffffffffffffffffffffffffffffffffffffffff163314611d41576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6f6e6c792061646d696e000000000000000000000000000000000000000000006044820152606401610751565b60405173ffffffffffffffffffffffffffffffffffffffff83169082156108fc029083906000818181858888f19350505050158015610f06573d6000803e3d6000fd5b63ffffffff8316600090815260076020908152604080832085845290915290205460085467ffffffffffffffff9091169060ff1615611e4457611dc88160016130ae565b67ffffffffffffffff168267ffffffffffffffff1614611e44576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4170703a20696e76616c6964206e6f6e6365000000000000000000000000006044820152606401610751565b8067ffffffffffffffff168267ffffffffffffffff161115611eb35763ffffffff84166000908152600760209081526040808320868452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff84161790555b50505050565b6107e5878787876122ff565b60005473ffffffffffffffffffffffffffffffffffffffff163314610f1d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610751565b611eb3848484846122ff565b6040517fff0000000000000000000000000000000000000000000000000000000000000060f884901b1660208201527fffffffff0000000000000000000000000000000000000000000000000000000060e083901b1660218201526060906025015b604051602081830303815290604052905092915050565b611fd3612813565b825160208401516040517faca1b45a00000000000000000000000000000000000000000000000000000000815260009273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169263aca1b45a92612051918a91899060040161350f565b60806040518083038185885af115801561206f573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061209491906135fd565b95945050505050565b63ffffffff81166000908152600a602052604081208054916120be83612ed4565b919050555050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600061214a600182848661310a565b61215391613665565b60f81c9392505050565b600061216c826001818661310a565b612175916134b9565b60e01c9392505050565b606083600361218f82600061254c565b61ffff161461221f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4f7074696f6e734275696c6465723a20696e76616c6964206f7074696f6e732060448201527f74797065000000000000000000000000000000000000000000000000000000006064820152608401610751565b600061222b85856125cc565b905061223986600183612673565b9695505050505050565b60008060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166383c4755930898989896040518663ffffffff1660e01b81526004016122a99594939291906136ab565b6040805180830381865afa1580156122c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122e9919061370c565b8051602090910151909890975095505050505050565b600061230b838361213b565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff821601612367576004805490600061234783612ed4565b90915550612362905061235d6020870187612981565b61275a565b610ff8565b60ff81166002148061237c575060ff81166004145b15612456576004805490600061239183612ed4565b909155506123a7905061235d6020870187612981565b6040517f754d3b9c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063754d3b9c9061241f903090889088908890600401613728565b600060405180830381600087803b15801561243957600080fd5b505af115801561244d573d6000803e3d6000fd5b50505050610ff8565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd60ff821601611788576004805490600061249083612ed4565b909155506124a6905061235d6020870187612981565b6124bb6124b66020870187612981565b61209d565b600061250762030d40600061170d604080517e03000000000000000000000000000000000000000000000000000000000000602082015281516002818303018152602290910190915290565b6040805160808101909152909150612545908061252760208a018a612981565b63ffffffff168152602090810190611739906102c1908b018b612981565b5050610ff8565b60006125598260026134a6565b835110156125c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f746f55696e7431365f6f75744f66426f756e64730000000000000000000000006044820152606401610751565b50016002015190565b60606fffffffffffffffffffffffffffffffff82161561263557604080517fffffffffffffffffffffffffffffffff00000000000000000000000000000000608086811b8216602084015285901b1660308201520160405160208183030381529060405261266c565b6040517fffffffffffffffffffffffffffffffff00000000000000000000000000000000608085901b166020820152603001611fb4565b9392505050565b606083600361268382600061254c565b61ffff1614612713576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4f7074696f6e734275696c6465723a20696e76616c6964206f7074696f6e732060448201527f74797065000000000000000000000000000000000000000000000000000000006064820152608401610751565b846001612720855161277b565b61272b90600161375e565b8686604051602001612741959493929190613779565b6040516020818303038152906040529150509392505050565b63ffffffff811660009081526009602052604081208054916120be83612ed4565b600061ffff82111561280f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201527f36206269747300000000000000000000000000000000000000000000000000006064820152608401610751565b5090565b604051806060016040528060008019168152602001600067ffffffffffffffff168152602001612856604051806040016040528060008152602001600081525090565b905290565b60008083601f84011261286d57600080fd5b50813567ffffffffffffffff81111561288557600080fd5b60208301915083602082850101111561289d57600080fd5b9250929050565b73ffffffffffffffffffffffffffffffffffffffff81168114611cbd57600080fd5b600080600080600080600087890360e08112156128e257600080fd5b60608112156128f057600080fd5b5087965060608801359550608088013567ffffffffffffffff8082111561291657600080fd5b6129228b838c0161285b565b909750955060a08a01359150612937826128a4565b90935060c0890135908082111561294d57600080fd5b5061295a8a828b0161285b565b989b979a50959850939692959293505050565b803563ffffffff8116811461084357600080fd5b60006020828403121561299357600080fd5b61266c8261296d565b600080604083850312156129af57600080fd5b6129b88361296d565b946020939093013593505050565b60008083601f8401126129d857600080fd5b50813567ffffffffffffffff8111156129f057600080fd5b6020830191508360208260051b850101111561289d57600080fd5b60008060208385031215612a1e57600080fd5b823567ffffffffffffffff811115612a3557600080fd5b612a41858286016129c6565b90969095509350505050565b60008060008060008060608789031215612a6657600080fd5b863567ffffffffffffffff80821115612a7e57600080fd5b612a8a8a838b016129c6565b90985096506020890135915080821115612aa357600080fd5b612aaf8a838b016129c6565b90965094506040890135915080821115612ac857600080fd5b50612ad589828a016129c6565b979a9699509497509295939492505050565b803561ffff8116811461084357600080fd5b60008060408385031215612b0c57600080fd5b612b158361296d565b9150612b2360208401612ae7565b90509250929050565b60005b83811015612b47578181015183820152602001612b2f565b50506000910152565b60008151808452612b68816020860160208601612b2c565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061266c6020830184612b50565b600060208284031215612bbf57600080fd5b8135801515811461266c57600080fd5b600060208284031215612be157600080fd5b813561266c816128a4565b67ffffffffffffffff81168114611cbd57600080fd5b600080600060608486031215612c1757600080fd5b612c208461296d565b9250602084013591506040840135612c3781612bec565b809150509250925092565b803560ff8116811461084357600080fd5b60008060008060608587031215612c6957600080fd5b612c728561296d565b9350612c8060208601612c42565b9250604085013567ffffffffffffffff811115612c9c57600080fd5b612ca88782880161285b565b95989497509550505050565b60008060008060608587031215612cca57600080fd5b612cd38561296d565b9350612c8060208601612ae7565b600080600080600080600060a0888a031215612cfc57600080fd5b8735612d07816128a4565b965060208801359550604088013567ffffffffffffffff80821115612d2b57600080fd5b612d378b838c0161285b565b909750955060608a01359150612d4c826128a4565b9093506080890135908082111561294d57600080fd5b60008060208385031215612d7557600080fd5b823567ffffffffffffffff811115612d8c57600080fd5b612a418582860161285b565b60008060408385031215612dab57600080fd5b82356129b8816128a4565b600060208284031215612dc857600080fd5b813561266c81612bec565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21833603018112612e3657600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612e7557600080fd5b83018035915067ffffffffffffffff821115612e9057600080fd5b60200191503681900382131561289d57600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f0557612f05612ea5565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060208284031215612f4d57600080fd5b815167ffffffffffffffff80821115612f6557600080fd5b818401915084601f830112612f7957600080fd5b815181811115612f8b57612f8b612f0c565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715612fd157612fd1612f0c565b81604052828152876020848701011115612fea57600080fd5b612ffb836020830160208801612b2c565b979650505050505050565b81810381811115610cd057610cd0612ea5565b60006020828403121561302b57600080fd5b61266c82612c42565b600181811c9082168061304857607f821691505b602082108103613081577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b600067ffffffffffffffff8083168181036130a4576130a4612ea5565b6001019392505050565b67ffffffffffffffff8181168382160190808211156130cf576130cf612ea5565b5092915050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112612e3657600080fd5b6000808585111561311a57600080fd5b8386111561312757600080fd5b5050820193919092039150565b7fffff00000000000000000000000000000000000000000000000000000000000081358181169160028510156131745780818660020360031b1b83161692505b505092915050565b60006020828403121561318e57600080fd5b61266c82612ae7565b601f821115610f0657600081815260208120601f850160051c810160208610156131be5750805b601f850160051c820191505b8181101561156a578281556001016131ca565b67ffffffffffffffff8311156131f5576131f5612f0c565b613209836132038354613034565b83613197565b6000601f84116001811461325b57600085156132255750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355610ff8565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b828110156132aa578685013582556020948501946001909201910161328a565b50868210156132e5577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60208082528181018390526000906040808401600586901b8501820187855b88811015613470577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc088840301845281357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa18b36030181126133c057600080fd5b8a01606063ffffffff6133d28361296d565b16855261ffff6133e3898401612ae7565b1688860152868201357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe183360301811261341c57600080fd5b90910187810191903567ffffffffffffffff81111561343a57600080fd5b80360383131561344957600080fd5b818887015261345b82870182856132f7565b9689019695505050918601915060010161335f565b509098975050505050505050565b60008451613490818460208901612b2c565b8201838582376000930192835250909392505050565b80820180821115610cd057610cd0612ea5565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156131745760049490940360031b84901b1690921692915050565b8183823760009101908152919050565b6060815263ffffffff84511660608201526020840151608082015260006040850151608060a084015261354560e0840182612b50565b905060608601517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08483030160c08501526135808282612b50565b9250505083602083015273ffffffffffffffffffffffffffffffffffffffff83166040830152949350505050565b6000604082840312156135c057600080fd5b6040516040810181811067ffffffffffffffff821117156135e3576135e3612f0c565b604052825181526020928301519281019290925250919050565b60006080828403121561360f57600080fd5b6040516060810181811067ffffffffffffffff8211171561363257613632612f0c565b60405282518152602083015161364781612bec565b602082015261365984604085016135ae565b60408201529392505050565b7fff0000000000000000000000000000000000000000000000000000000000000081358181169160018510156131745760019490940360031b84901b1690921692915050565b73ffffffffffffffffffffffffffffffffffffffff8616815263ffffffff8516602082015260a0604082015260006136e660a0830186612b50565b841515606084015282810360808401526137008185612b50565b98975050505050505050565b60006040828403121561371e57600080fd5b61266c83836135ae565b73ffffffffffffffffffffffffffffffffffffffff851681528360208201526060604082015260006122396060830184866132f7565b61ffff8181168382160190808211156130cf576130cf612ea5565b6000865161378b818460208b01612b2c565b80830190507fff00000000000000000000000000000000000000000000000000000000000000808860f81b1682527fffff0000000000000000000000000000000000000000000000000000000000008760f01b166001830152808660f81b166003830152508351613803816004840160208801612b2c565b0160040197965050505050505056fea2646970667358221220734b96e164262d288df6d5fcd5c74953f4c87e36f7b232f63cbef8fdf61bf70164736f6c63430008130033",
907
+ "deployedBytecode": "0x6080604052600436106102175760003560e01c8063704b6c0211610126578063bc70b354116100a7578063d424388511610079578063f2fde38b11610061578063f2fde38b14610677578063f3fef3a314610697578063f851a440146106b757005b8063d424388514610637578063dbcd3b911461065757005b8063bc70b354146105bc578063c95c55be146105dc578063d0a10260146105ef578063d22446ce1461060257005b80638da5cb5b116100f8578063b7abbb5d116100e0578063b7abbb5d1461055c578063b98bd0701461056f578063bb0b6a531461058f57005b80638da5cb5b14610504578063950c8a741461052f57005b8063704b6c02146104765780637112f86f14610496578063715018a6146104b65780637d25a05e146104cb57005b8063542e7b56116101b05780635a0dfe4d116101825780635c60da1b1161016a5780635c60da1b146102495780635e280f1114610415578063622f17f61461044957005b80635a0dfe4d146103c55780635b849af6146103f557005b8063542e7b561461034357806354fd4d50146103565780635535d4611461036b57806356a472891461039857005b806326b27f84116101e957806326b27f84146102a65780633400288b146102c6578063416ecebf146102e65780635011e5b31461033057005b806306661abd146102205780630931cf881461024957806313137d651461027d578063257f4e051461029057005b3661021e57005b005b34801561022c57600080fd5b5061023660045481565b6040519081526020015b60405180910390f35b34801561025557600080fd5b50305b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610240565b61021e61028b3660046128c6565b6106e4565b34801561029c57600080fd5b5061023660055481565b3480156102b257600080fd5b506102366102c1366004612981565b6107ee565b3480156102d257600080fd5b5061021e6102e136600461299c565b610848565b3480156102f257600080fd5b5060065461031b9074010000000000000000000000000000000000000000900463ffffffff1681565b60405163ffffffff9091168152602001610240565b61021e61033e366004612a0b565b6108f5565b61021e610351366004612a4d565b610a3f565b34801561036257600080fd5b50610236600181565b34801561037757600080fd5b5061038b610386366004612af9565b610c12565b6040516102409190612b9a565b3480156103a457600080fd5b506102366103b3366004612981565b60096020526000908152604090205481565b3480156103d157600080fd5b506103e56103e036600461299c565b610cb7565b6040519015158152602001610240565b34801561040157600080fd5b5061021e610410366004612bad565b610cd6565b34801561042157600080fd5b506102587f000000000000000000000000000000000000000000000000000000000000000081565b34801561045557600080fd5b50610236610464366004612981565b600a6020526000908152604090205481565b34801561048257600080fd5b5061021e610491366004612bcf565b610d0f565b3480156104a257600080fd5b5061021e6104b1366004612c02565b610dd7565b3480156104c257600080fd5b5061021e610f0b565b3480156104d757600080fd5b506104eb6104e636600461299c565b610f1f565b60405167ffffffffffffffff9091168152602001610240565b34801561051057600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff16610258565b34801561053b57600080fd5b506003546102589073ffffffffffffffffffffffffffffffffffffffff1681565b61021e61056a366004612c53565b610f72565b34801561057b57600080fd5b5061021e61058a366004612a0b565b610fff565b34801561059b57600080fd5b506102366105aa366004612981565b60026020526000908152604090205481565b3480156105c857600080fd5b5061038b6105d7366004612cb4565b611213565b61021e6105ea366004612c53565b6114b3565b61021e6105fd366004612ce1565b611572565b34801561060e57600080fd5b5061062261061d366004612c53565b6117f4565b60408051928352602083019190915201610240565b34801561064357600080fd5b5061021e610652366004612bcf565b611840565b34801561066357600080fd5b5061021e610672366004612d62565b6118c1565b34801561068357600080fd5b5061021e610692366004612bcf565b611c09565b3480156106a357600080fd5b5061021e6106b2366004612d98565b611cc0565b3480156106c357600080fd5b506006546102589073ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16331461075a576040517fab08c09e0000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b6020870180359061076f906102c1908a612981565b146107ac576040517fc59a4f6400000000000000000000000000000000000000000000000000000000815260208801356004820152602401610751565b6107d66107bc6020890189612981565b60208901356107d160608b0160408c01612db6565b611d84565b6107e587878787878787611eb9565b50505050505050565b63ffffffff811660009081526002602052604090205480610843576040517f196fb6c000000000000000000000000000000000000000000000000000000000815263ffffffff83166004820152602401610751565b919050565b610850611ec5565b63ffffffff821660009081526002602052604090205481900361089f576040517f9556766100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63ffffffff8216600081815260026020908152604091829020849055815192835282018390527fd81b9101f39c530fa8f18e6c9c5a64e4a3d7cb699e959f5d7abb5951c65e318f91015b60405180910390a15050565b60005b8181101561097a573683838381811061091357610913612dd3565b90506020028101906109259190612e02565b90506109416109376020830183612981565b6020830135610cb7565b61094b5750610968565b6109668160a081013561096160c0830183612e40565b611f46565b505b8061097281612ed4565b9150506108f8565b503373ffffffffffffffffffffffffffffffffffffffff16638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa1580156109c6573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610a0c9190810190612f3b565b6040517f8351eea70000000000000000000000000000000000000000000000000000000081526004016107519190612b9a565b8481148015610a4d57508483145b610ab3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4f6d6e69436f756e7465723a206c656e677468206d69736d61746368000000006044820152606401610751565b610abb612813565b3460005b87811015610c07576000610ad460018a613006565b8214610ae05730610ae2565b335b905060008a8a84818110610af857610af8612dd3565b9050602002016020810190610b0d9190612981565b90506000898985818110610b2357610b23612dd3565b9050602002016020810190610b389190613019565b90506000610b68838360ff168b8b89818110610b5657610b56612dd3565b90506020028101906105d79190612e40565b9050610bd360405180608001604052808563ffffffff168152602001610b8d866107ee565b8152602001610bae85600660149054906101000a900463ffffffff16611f52565b8152602001838152506040518060400160405280898152602001600081525086611fcb565b9650610bde8361209d565b604087015151610bee9087613006565b9550505050508080610bff90612ed4565b915050610abf565b505050505050505050565b600160209081526000928352604080842090915290825290208054610c3690613034565b80601f0160208091040260200160405190810160405280929190818152602001828054610c6290613034565b8015610caf5780601f10610c8457610100808354040283529160200191610caf565b820191906000526020600020905b815481529060010190602001808311610c9257829003601f168201915b505050505081565b63ffffffff821660009081526002602052604090205481145b92915050565b610cde611ec5565b600880547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b60065473ffffffffffffffffffffffffffffffffffffffff163314610d90576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6f6e6c792061646d696e000000000000000000000000000000000000000000006044820152606401610751565b600680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610ddf611ec5565b6040517feaeacd6300000000000000000000000000000000000000000000000000000000815263ffffffff841660048201526024810183905267ffffffffffffffff821660448201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063eaeacd6390606401600060405180830381600087803b158015610e8357600080fd5b505af1158015610e97573d6000803e3d6000fd5b505060085460ff16159150610f0690505763ffffffff831660009081526007602090815260408083208584529091528120805467ffffffffffffffff1691610ede83613087565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550505b505050565b610f13611ec5565b610f1d60006120c6565b565b60085460009060ff1615610f6a5763ffffffff83166000908152600760209081526040808320858452909152902054610f639067ffffffffffffffff1660016130ae565b9050610cd0565b506000610cd0565b6000610f83858560ff168585611213565b9050610fee60405180608001604052808763ffffffff168152602001610fa8886107ee565b8152602001610fc987600660149054906101000a900463ffffffff16611f52565b8152602001838152506040518060400160405280348152602001600081525033611fcb565b50610ff88561209d565b5050505050565b611007611ec5565b60005b818110156111e157600083838381811061102657611026612dd3565b905060200281019061103891906130d6565b611046906040810190612e40565b6110559160029160009161310a565b61105e91613134565b60f01c9050600381146110f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f456e666f726365644f7074696f6e733a206f6e6c7920545950455f33206f707460448201527f696f6e732061726520737570706f7274656400000000000000000000000000006064820152608401610751565b83838381811061110557611105612dd3565b905060200281019061111791906130d6565b611125906040810190612e40565b6001600087878781811061113b5761113b612dd3565b905060200281019061114d91906130d6565b61115b906020810190612981565b63ffffffff1663ffffffff168152602001908152602001600020600087878781811061118957611189612dd3565b905060200281019061119b91906130d6565b6111ac90604081019060200161317c565b61ffff1681526020810191909152604001600020916111cc9190836131dd565b505080806111d990612ed4565b91505061100a565b507fadc065f6ee2d84e4fc04873c88fe72b002dd1bf2faa49da18167494e909ca7e882826040516108e9929190613340565b606060008290036112d25763ffffffff8516600090815260016020908152604080832061ffff881684529091529020805461124d90613034565b80601f016020809104026020016040519081016040528092919081815260200182805461127990613034565b80156112c65780601f1061129b576101008083540402835291602001916112c6565b820191906000526020600020905b8154815290600101906020018083116112a957829003601f168201915b505050505090506114ab565b60006112e1600282858761310a565b6112ea91613134565b60f01c90506003811461137f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f456e666f726365644f7074696f6e733a206f6e6c7920545950455f33206f707460448201527f696f6e732061726520737570706f7274656400000000000000000000000000006064820152608401610751565b63ffffffff8616600090815260016020908152604080832061ffff89168452909152812080546113ae90613034565b80601f01602080910402602001604051908101604052809291908181526020018280546113da90613034565b80156114275780601f106113fc57610100808354040283529160200191611427565b820191906000526020600020905b81548152906001019060200180831161140a57829003601f168201915b5050505050905060008151111561146e5780611446856002818961310a565b6040516020016114589392919061347e565b60405160208183030381529060405292506114a8565b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505050505b50505b949350505050565b60065473ffffffffffffffffffffffffffffffffffffffff163314611534576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6f6e6c792061646d696e000000000000000000000000000000000000000000006044820152606401610751565b6000611545858560ff168585611213565b905061156a60405180608001604052808763ffffffff168152602001610fa8886107ee565b505050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614611611576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21656e64706f696e7400000000000000000000000000000000000000000000006044820152606401610751565b600061161d868661213b565b90507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe60ff8216016116675760016005600082825461165c91906134a6565b909155506117ea9050565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60ff821601611788576001600560008282546116a491906134a6565b90915550600090506116b6878761215d565b90506116c18161209d565b600061171462030d40600061170d604080517e03000000000000000000000000000000000000000000000000000000000000602082015281516002818303018152602290910190915290565b919061217f565b905061178060405180608001604052808463ffffffff168152602001611739856107ee565b815260200161175b6001600660149054906101000a900463ffffffff16611f52565b8152602001838152506040518060400160405280348152602001600081525030611fcb565b5050506117ea565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e76616c6964206d65737361676520747970650000000000000000000000006044820152606401610751565b5050505050505050565b6000806000611808878760ff168787611213565b90506118328761182a88600660149054906101000a900463ffffffff16611f52565b600084612243565b925092505094509492505050565b611848611ec5565b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527f9bfd6b2fbc3428e14e9b2649314854ca348f45338b458b9a4e576760e7f405d59060200160405180910390a150565b6118c9611ec5565b60006118d582846134b9565b905060007fffffffff0000000000000000000000000000000000000000000000000000000082167fb8007ff600000000000000000000000000000000000000000000000000000000148061196a57507fffffffff0000000000000000000000000000000000000000000000000000000082167f9e7fffcc00000000000000000000000000000000000000000000000000000000145b806119b657507fffffffff0000000000000000000000000000000000000000000000000000000082167f0678327f00000000000000000000000000000000000000000000000000000000145b80611a0257507fffffffff0000000000000000000000000000000000000000000000000000000082167fb8849ac900000000000000000000000000000000000000000000000000000000145b80611a4e57507fffffffff0000000000000000000000000000000000000000000000000000000082167fe16f964d00000000000000000000000000000000000000000000000000000000145b80611a9a57507fffffffff0000000000000000000000000000000000000000000000000000000082167f66bf43d600000000000000000000000000000000000000000000000000000000145b80611ae657507fffffffff0000000000000000000000000000000000000000000000000000000082167f965183d400000000000000000000000000000000000000000000000000000000145b80611b3257507fffffffff0000000000000000000000000000000000000000000000000000000082167feaeacd6300000000000000000000000000000000000000000000000000000000145b905080611b6b576040517f0fbdec0a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168686604051611bb59291906134ff565b6000604051808303816000865af19150503d8060008114611bf2576040519150601f19603f3d011682016040523d82523d6000602084013e611bf7565b606091505b50915091508161156a57805160208201fd5b611c11611ec5565b73ffffffffffffffffffffffffffffffffffffffff8116611cb4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610751565b611cbd816120c6565b50565b60065473ffffffffffffffffffffffffffffffffffffffff163314611d41576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6f6e6c792061646d696e000000000000000000000000000000000000000000006044820152606401610751565b60405173ffffffffffffffffffffffffffffffffffffffff83169082156108fc029083906000818181858888f19350505050158015610f06573d6000803e3d6000fd5b63ffffffff8316600090815260076020908152604080832085845290915290205460085467ffffffffffffffff9091169060ff1615611e4457611dc88160016130ae565b67ffffffffffffffff168267ffffffffffffffff1614611e44576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4170703a20696e76616c6964206e6f6e6365000000000000000000000000006044820152606401610751565b8067ffffffffffffffff168267ffffffffffffffff161115611eb35763ffffffff84166000908152600760209081526040808320868452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff84161790555b50505050565b6107e5878787876122ff565b60005473ffffffffffffffffffffffffffffffffffffffff163314610f1d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610751565b611eb3848484846122ff565b6040517fff0000000000000000000000000000000000000000000000000000000000000060f884901b1660208201527fffffffff0000000000000000000000000000000000000000000000000000000060e083901b1660218201526060906025015b604051602081830303815290604052905092915050565b611fd3612813565b825160208401516040517faca1b45a00000000000000000000000000000000000000000000000000000000815260009273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169263aca1b45a92612051918a91899060040161350f565b60806040518083038185885af115801561206f573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061209491906135fd565b95945050505050565b63ffffffff81166000908152600a602052604081208054916120be83612ed4565b919050555050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600061214a600182848661310a565b61215391613665565b60f81c9392505050565b600061216c826001818661310a565b612175916134b9565b60e01c9392505050565b606083600361218f82600061254c565b61ffff161461221f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4f7074696f6e734275696c6465723a20696e76616c6964206f7074696f6e732060448201527f74797065000000000000000000000000000000000000000000000000000000006064820152608401610751565b600061222b85856125cc565b905061223986600183612673565b9695505050505050565b60008060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166383c4755930898989896040518663ffffffff1660e01b81526004016122a99594939291906136ab565b6040805180830381865afa1580156122c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122e9919061370c565b8051602090910151909890975095505050505050565b600061230b838361213b565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff821601612367576004805490600061234783612ed4565b90915550612362905061235d6020870187612981565b61275a565b610ff8565b60ff81166002148061237c575060ff81166004145b15612456576004805490600061239183612ed4565b909155506123a7905061235d6020870187612981565b6040517f754d3b9c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063754d3b9c9061241f903090889088908890600401613728565b600060405180830381600087803b15801561243957600080fd5b505af115801561244d573d6000803e3d6000fd5b50505050610ff8565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd60ff821601611788576004805490600061249083612ed4565b909155506124a6905061235d6020870187612981565b6124bb6124b66020870187612981565b61209d565b600061250762030d40600061170d604080517e03000000000000000000000000000000000000000000000000000000000000602082015281516002818303018152602290910190915290565b6040805160808101909152909150612545908061252760208a018a612981565b63ffffffff168152602090810190611739906102c1908b018b612981565b5050610ff8565b60006125598260026134a6565b835110156125c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f746f55696e7431365f6f75744f66426f756e64730000000000000000000000006044820152606401610751565b50016002015190565b60606fffffffffffffffffffffffffffffffff82161561263557604080517fffffffffffffffffffffffffffffffff00000000000000000000000000000000608086811b8216602084015285901b1660308201520160405160208183030381529060405261266c565b6040517fffffffffffffffffffffffffffffffff00000000000000000000000000000000608085901b166020820152603001611fb4565b9392505050565b606083600361268382600061254c565b61ffff1614612713576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4f7074696f6e734275696c6465723a20696e76616c6964206f7074696f6e732060448201527f74797065000000000000000000000000000000000000000000000000000000006064820152608401610751565b846001612720855161277b565b61272b90600161375e565b8686604051602001612741959493929190613779565b6040516020818303038152906040529150509392505050565b63ffffffff811660009081526009602052604081208054916120be83612ed4565b600061ffff82111561280f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201527f36206269747300000000000000000000000000000000000000000000000000006064820152608401610751565b5090565b604051806060016040528060008019168152602001600067ffffffffffffffff168152602001612856604051806040016040528060008152602001600081525090565b905290565b60008083601f84011261286d57600080fd5b50813567ffffffffffffffff81111561288557600080fd5b60208301915083602082850101111561289d57600080fd5b9250929050565b73ffffffffffffffffffffffffffffffffffffffff81168114611cbd57600080fd5b600080600080600080600087890360e08112156128e257600080fd5b60608112156128f057600080fd5b5087965060608801359550608088013567ffffffffffffffff8082111561291657600080fd5b6129228b838c0161285b565b909750955060a08a01359150612937826128a4565b90935060c0890135908082111561294d57600080fd5b5061295a8a828b0161285b565b989b979a50959850939692959293505050565b803563ffffffff8116811461084357600080fd5b60006020828403121561299357600080fd5b61266c8261296d565b600080604083850312156129af57600080fd5b6129b88361296d565b946020939093013593505050565b60008083601f8401126129d857600080fd5b50813567ffffffffffffffff8111156129f057600080fd5b6020830191508360208260051b850101111561289d57600080fd5b60008060208385031215612a1e57600080fd5b823567ffffffffffffffff811115612a3557600080fd5b612a41858286016129c6565b90969095509350505050565b60008060008060008060608789031215612a6657600080fd5b863567ffffffffffffffff80821115612a7e57600080fd5b612a8a8a838b016129c6565b90985096506020890135915080821115612aa357600080fd5b612aaf8a838b016129c6565b90965094506040890135915080821115612ac857600080fd5b50612ad589828a016129c6565b979a9699509497509295939492505050565b803561ffff8116811461084357600080fd5b60008060408385031215612b0c57600080fd5b612b158361296d565b9150612b2360208401612ae7565b90509250929050565b60005b83811015612b47578181015183820152602001612b2f565b50506000910152565b60008151808452612b68816020860160208601612b2c565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061266c6020830184612b50565b600060208284031215612bbf57600080fd5b8135801515811461266c57600080fd5b600060208284031215612be157600080fd5b813561266c816128a4565b67ffffffffffffffff81168114611cbd57600080fd5b600080600060608486031215612c1757600080fd5b612c208461296d565b9250602084013591506040840135612c3781612bec565b809150509250925092565b803560ff8116811461084357600080fd5b60008060008060608587031215612c6957600080fd5b612c728561296d565b9350612c8060208601612c42565b9250604085013567ffffffffffffffff811115612c9c57600080fd5b612ca88782880161285b565b95989497509550505050565b60008060008060608587031215612cca57600080fd5b612cd38561296d565b9350612c8060208601612ae7565b600080600080600080600060a0888a031215612cfc57600080fd5b8735612d07816128a4565b965060208801359550604088013567ffffffffffffffff80821115612d2b57600080fd5b612d378b838c0161285b565b909750955060608a01359150612d4c826128a4565b9093506080890135908082111561294d57600080fd5b60008060208385031215612d7557600080fd5b823567ffffffffffffffff811115612d8c57600080fd5b612a418582860161285b565b60008060408385031215612dab57600080fd5b82356129b8816128a4565b600060208284031215612dc857600080fd5b813561266c81612bec565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21833603018112612e3657600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612e7557600080fd5b83018035915067ffffffffffffffff821115612e9057600080fd5b60200191503681900382131561289d57600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f0557612f05612ea5565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060208284031215612f4d57600080fd5b815167ffffffffffffffff80821115612f6557600080fd5b818401915084601f830112612f7957600080fd5b815181811115612f8b57612f8b612f0c565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715612fd157612fd1612f0c565b81604052828152876020848701011115612fea57600080fd5b612ffb836020830160208801612b2c565b979650505050505050565b81810381811115610cd057610cd0612ea5565b60006020828403121561302b57600080fd5b61266c82612c42565b600181811c9082168061304857607f821691505b602082108103613081577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b600067ffffffffffffffff8083168181036130a4576130a4612ea5565b6001019392505050565b67ffffffffffffffff8181168382160190808211156130cf576130cf612ea5565b5092915050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112612e3657600080fd5b6000808585111561311a57600080fd5b8386111561312757600080fd5b5050820193919092039150565b7fffff00000000000000000000000000000000000000000000000000000000000081358181169160028510156131745780818660020360031b1b83161692505b505092915050565b60006020828403121561318e57600080fd5b61266c82612ae7565b601f821115610f0657600081815260208120601f850160051c810160208610156131be5750805b601f850160051c820191505b8181101561156a578281556001016131ca565b67ffffffffffffffff8311156131f5576131f5612f0c565b613209836132038354613034565b83613197565b6000601f84116001811461325b57600085156132255750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355610ff8565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b828110156132aa578685013582556020948501946001909201910161328a565b50868210156132e5577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60208082528181018390526000906040808401600586901b8501820187855b88811015613470577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc088840301845281357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa18b36030181126133c057600080fd5b8a01606063ffffffff6133d28361296d565b16855261ffff6133e3898401612ae7565b1688860152868201357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe183360301811261341c57600080fd5b90910187810191903567ffffffffffffffff81111561343a57600080fd5b80360383131561344957600080fd5b818887015261345b82870182856132f7565b9689019695505050918601915060010161335f565b509098975050505050505050565b60008451613490818460208901612b2c565b8201838582376000930192835250909392505050565b80820180821115610cd057610cd0612ea5565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156131745760049490940360031b84901b1690921692915050565b8183823760009101908152919050565b6060815263ffffffff84511660608201526020840151608082015260006040850151608060a084015261354560e0840182612b50565b905060608601517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08483030160c08501526135808282612b50565b9250505083602083015273ffffffffffffffffffffffffffffffffffffffff83166040830152949350505050565b6000604082840312156135c057600080fd5b6040516040810181811067ffffffffffffffff821117156135e3576135e3612f0c565b604052825181526020928301519281019290925250919050565b60006080828403121561360f57600080fd5b6040516060810181811067ffffffffffffffff8211171561363257613632612f0c565b60405282518152602083015161364781612bec565b602082015261365984604085016135ae565b60408201529392505050565b7fff0000000000000000000000000000000000000000000000000000000000000081358181169160018510156131745760019490940360031b84901b1690921692915050565b73ffffffffffffffffffffffffffffffffffffffff8616815263ffffffff8516602082015260a0604082015260006136e660a0830186612b50565b841515606084015282810360808401526137008185612b50565b98975050505050505050565b60006040828403121561371e57600080fd5b61266c83836135ae565b73ffffffffffffffffffffffffffffffffffffffff851681528360208201526060604082015260006122396060830184866132f7565b61ffff8181168382160190808211156130cf576130cf612ea5565b6000865161378b818460208b01612b2c565b80830190507fff00000000000000000000000000000000000000000000000000000000000000808860f81b1682527fffff0000000000000000000000000000000000000000000000000000000000008760f01b166001830152808660f81b166003830152508351613803816004840160208801612b2c565b0160040197965050505050505056fea2646970667358221220734b96e164262d288df6d5fcd5c74953f4c87e36f7b232f63cbef8fdf61bf70164736f6c63430008130033",
908
+ "devdoc": {
909
+ "kind": "dev",
910
+ "methods": {
911
+ "callEndpoint(bytes)": {
912
+ "details": "a generic interface to set the endpoint configthis is a low level interface, and should be used with cautionuse our SDK to generate the properly abi.encoded config"
913
+ },
914
+ "lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)": {
915
+ "details": "Oapp can override this interface for custom logics (e.g. more assertion)"
916
+ },
917
+ "lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,bytes)[])": {
918
+ "details": "a generic interface for precrime simulationsthis function reverts at the end with the simulation resultsvalue is provided as a lump sum, does not restrict how much each packet can consume"
919
+ },
920
+ "oapp()": {
921
+ "details": "The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function."
922
+ },
923
+ "owner()": {
924
+ "details": "Returns the address of the current owner."
925
+ },
926
+ "renounceOwnership()": {
927
+ "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."
928
+ },
929
+ "safeGetPeer(uint32)": {
930
+ "details": "check non-zero peer and return it"
931
+ },
932
+ "setPeer(uint32,bytes32)": {
933
+ "details": "set _peer to bytes32(0) (the default value) to \"untrust\""
934
+ },
935
+ "setPreCrime(address)": {
936
+ "details": "set the precrime contract. can upgrade the precrime implementation overtime"
937
+ },
938
+ "transferOwnership(address)": {
939
+ "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
940
+ }
941
+ },
942
+ "version": 1
943
+ },
944
+ "userdoc": {
945
+ "kind": "user",
946
+ "methods": {},
947
+ "version": 1
948
+ },
949
+ "storageLayout": {
950
+ "storage": [
951
+ {
952
+ "astId": 2472,
953
+ "contract": "contracts/examples/OmniCounter.sol:OmniCounter",
954
+ "label": "_owner",
955
+ "offset": 0,
956
+ "slot": "0",
957
+ "type": "t_address"
958
+ },
959
+ {
960
+ "astId": 5593,
961
+ "contract": "contracts/examples/OmniCounter.sol:OmniCounter",
962
+ "label": "enforcedOptions",
963
+ "offset": 0,
964
+ "slot": "1",
965
+ "type": "t_mapping(t_uint32,t_mapping(t_uint16,t_bytes_storage))"
966
+ },
967
+ {
968
+ "astId": 5768,
969
+ "contract": "contracts/examples/OmniCounter.sol:OmniCounter",
970
+ "label": "peers",
971
+ "offset": 0,
972
+ "slot": "2",
973
+ "type": "t_mapping(t_uint32,t_bytes32)"
974
+ },
975
+ {
976
+ "astId": 5770,
977
+ "contract": "contracts/examples/OmniCounter.sol:OmniCounter",
978
+ "label": "precrime",
979
+ "offset": 0,
980
+ "slot": "3",
981
+ "type": "t_address"
982
+ },
983
+ {
984
+ "astId": 6224,
985
+ "contract": "contracts/examples/OmniCounter.sol:OmniCounter",
986
+ "label": "count",
987
+ "offset": 0,
988
+ "slot": "4",
989
+ "type": "t_uint256"
990
+ },
991
+ {
992
+ "astId": 6226,
993
+ "contract": "contracts/examples/OmniCounter.sol:OmniCounter",
994
+ "label": "composedCount",
995
+ "offset": 0,
996
+ "slot": "5",
997
+ "type": "t_uint256"
998
+ },
999
+ {
1000
+ "astId": 6228,
1001
+ "contract": "contracts/examples/OmniCounter.sol:OmniCounter",
1002
+ "label": "admin",
1003
+ "offset": 0,
1004
+ "slot": "6",
1005
+ "type": "t_address"
1006
+ },
1007
+ {
1008
+ "astId": 6230,
1009
+ "contract": "contracts/examples/OmniCounter.sol:OmniCounter",
1010
+ "label": "eid",
1011
+ "offset": 20,
1012
+ "slot": "6",
1013
+ "type": "t_uint32"
1014
+ },
1015
+ {
1016
+ "astId": 6236,
1017
+ "contract": "contracts/examples/OmniCounter.sol:OmniCounter",
1018
+ "label": "maxReceivedNonce",
1019
+ "offset": 0,
1020
+ "slot": "7",
1021
+ "type": "t_mapping(t_uint32,t_mapping(t_bytes32,t_uint64))"
1022
+ },
1023
+ {
1024
+ "astId": 6238,
1025
+ "contract": "contracts/examples/OmniCounter.sol:OmniCounter",
1026
+ "label": "orderedNonce",
1027
+ "offset": 0,
1028
+ "slot": "8",
1029
+ "type": "t_bool"
1030
+ },
1031
+ {
1032
+ "astId": 6242,
1033
+ "contract": "contracts/examples/OmniCounter.sol:OmniCounter",
1034
+ "label": "inboundCount",
1035
+ "offset": 0,
1036
+ "slot": "9",
1037
+ "type": "t_mapping(t_uint32,t_uint256)"
1038
+ },
1039
+ {
1040
+ "astId": 6246,
1041
+ "contract": "contracts/examples/OmniCounter.sol:OmniCounter",
1042
+ "label": "outboundCount",
1043
+ "offset": 0,
1044
+ "slot": "10",
1045
+ "type": "t_mapping(t_uint32,t_uint256)"
1046
+ }
1047
+ ],
1048
+ "types": {
1049
+ "t_address": {
1050
+ "encoding": "inplace",
1051
+ "label": "address",
1052
+ "numberOfBytes": "20"
1053
+ },
1054
+ "t_bool": {
1055
+ "encoding": "inplace",
1056
+ "label": "bool",
1057
+ "numberOfBytes": "1"
1058
+ },
1059
+ "t_bytes32": {
1060
+ "encoding": "inplace",
1061
+ "label": "bytes32",
1062
+ "numberOfBytes": "32"
1063
+ },
1064
+ "t_bytes_storage": {
1065
+ "encoding": "bytes",
1066
+ "label": "bytes",
1067
+ "numberOfBytes": "32"
1068
+ },
1069
+ "t_mapping(t_bytes32,t_uint64)": {
1070
+ "encoding": "mapping",
1071
+ "key": "t_bytes32",
1072
+ "label": "mapping(bytes32 => uint64)",
1073
+ "numberOfBytes": "32",
1074
+ "value": "t_uint64"
1075
+ },
1076
+ "t_mapping(t_uint16,t_bytes_storage)": {
1077
+ "encoding": "mapping",
1078
+ "key": "t_uint16",
1079
+ "label": "mapping(uint16 => bytes)",
1080
+ "numberOfBytes": "32",
1081
+ "value": "t_bytes_storage"
1082
+ },
1083
+ "t_mapping(t_uint32,t_bytes32)": {
1084
+ "encoding": "mapping",
1085
+ "key": "t_uint32",
1086
+ "label": "mapping(uint32 => bytes32)",
1087
+ "numberOfBytes": "32",
1088
+ "value": "t_bytes32"
1089
+ },
1090
+ "t_mapping(t_uint32,t_mapping(t_bytes32,t_uint64))": {
1091
+ "encoding": "mapping",
1092
+ "key": "t_uint32",
1093
+ "label": "mapping(uint32 => mapping(bytes32 => uint64))",
1094
+ "numberOfBytes": "32",
1095
+ "value": "t_mapping(t_bytes32,t_uint64)"
1096
+ },
1097
+ "t_mapping(t_uint32,t_mapping(t_uint16,t_bytes_storage))": {
1098
+ "encoding": "mapping",
1099
+ "key": "t_uint32",
1100
+ "label": "mapping(uint32 => mapping(uint16 => bytes))",
1101
+ "numberOfBytes": "32",
1102
+ "value": "t_mapping(t_uint16,t_bytes_storage)"
1103
+ },
1104
+ "t_mapping(t_uint32,t_uint256)": {
1105
+ "encoding": "mapping",
1106
+ "key": "t_uint32",
1107
+ "label": "mapping(uint32 => uint256)",
1108
+ "numberOfBytes": "32",
1109
+ "value": "t_uint256"
1110
+ },
1111
+ "t_uint16": {
1112
+ "encoding": "inplace",
1113
+ "label": "uint16",
1114
+ "numberOfBytes": "2"
1115
+ },
1116
+ "t_uint256": {
1117
+ "encoding": "inplace",
1118
+ "label": "uint256",
1119
+ "numberOfBytes": "32"
1120
+ },
1121
+ "t_uint32": {
1122
+ "encoding": "inplace",
1123
+ "label": "uint32",
1124
+ "numberOfBytes": "4"
1125
+ },
1126
+ "t_uint64": {
1127
+ "encoding": "inplace",
1128
+ "label": "uint64",
1129
+ "numberOfBytes": "8"
1130
+ }
1131
+ }
1132
+ }
1133
+ }