@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,1448 @@
1
+ {
2
+ "address": "0xfbfbfDdd6e35dA57b7B0F9a2C10E34Be70B3A4E9",
3
+ "abi": [
4
+ {
5
+ "inputs": [
6
+ {
7
+ "internalType": "address[]",
8
+ "name": "_messageLibs",
9
+ "type": "address[]"
10
+ },
11
+ {
12
+ "internalType": "address",
13
+ "name": "_priceFeed",
14
+ "type": "address"
15
+ },
16
+ {
17
+ "internalType": "address[]",
18
+ "name": "_signers",
19
+ "type": "address[]"
20
+ },
21
+ {
22
+ "internalType": "uint64",
23
+ "name": "_quorum",
24
+ "type": "uint64"
25
+ },
26
+ {
27
+ "internalType": "address[]",
28
+ "name": "_admins",
29
+ "type": "address[]"
30
+ }
31
+ ],
32
+ "stateMutability": "nonpayable",
33
+ "type": "constructor"
34
+ },
35
+ {
36
+ "anonymous": false,
37
+ "inputs": [
38
+ {
39
+ "indexed": false,
40
+ "internalType": "uint32",
41
+ "name": "dstEid",
42
+ "type": "uint32"
43
+ },
44
+ {
45
+ "indexed": false,
46
+ "internalType": "address",
47
+ "name": "oapp",
48
+ "type": "address"
49
+ },
50
+ {
51
+ "indexed": false,
52
+ "internalType": "uint64",
53
+ "name": "confirmations",
54
+ "type": "uint64"
55
+ },
56
+ {
57
+ "indexed": false,
58
+ "internalType": "uint256",
59
+ "name": "totalFee",
60
+ "type": "uint256"
61
+ }
62
+ ],
63
+ "name": "AssignJob",
64
+ "type": "event"
65
+ },
66
+ {
67
+ "anonymous": false,
68
+ "inputs": [
69
+ {
70
+ "indexed": false,
71
+ "internalType": "uint256",
72
+ "name": "_index",
73
+ "type": "uint256"
74
+ },
75
+ {
76
+ "indexed": false,
77
+ "internalType": "bytes",
78
+ "name": "_data",
79
+ "type": "bytes"
80
+ }
81
+ ],
82
+ "name": "ExecuteFailed",
83
+ "type": "event"
84
+ },
85
+ {
86
+ "anonymous": false,
87
+ "inputs": [
88
+ {
89
+ "components": [
90
+ {
91
+ "internalType": "address",
92
+ "name": "target",
93
+ "type": "address"
94
+ },
95
+ {
96
+ "internalType": "bytes",
97
+ "name": "callData",
98
+ "type": "bytes"
99
+ },
100
+ {
101
+ "internalType": "uint256",
102
+ "name": "expiration",
103
+ "type": "uint256"
104
+ },
105
+ {
106
+ "internalType": "bytes",
107
+ "name": "signatures",
108
+ "type": "bytes"
109
+ }
110
+ ],
111
+ "indexed": false,
112
+ "internalType": "struct ExecuteParam",
113
+ "name": "param",
114
+ "type": "tuple"
115
+ },
116
+ {
117
+ "indexed": false,
118
+ "internalType": "bytes32",
119
+ "name": "_hash",
120
+ "type": "bytes32"
121
+ }
122
+ ],
123
+ "name": "HashAlreadyUsed",
124
+ "type": "event"
125
+ },
126
+ {
127
+ "anonymous": false,
128
+ "inputs": [
129
+ {
130
+ "indexed": true,
131
+ "internalType": "bytes32",
132
+ "name": "role",
133
+ "type": "bytes32"
134
+ },
135
+ {
136
+ "indexed": true,
137
+ "internalType": "bytes32",
138
+ "name": "previousAdminRole",
139
+ "type": "bytes32"
140
+ },
141
+ {
142
+ "indexed": true,
143
+ "internalType": "bytes32",
144
+ "name": "newAdminRole",
145
+ "type": "bytes32"
146
+ }
147
+ ],
148
+ "name": "RoleAdminChanged",
149
+ "type": "event"
150
+ },
151
+ {
152
+ "anonymous": false,
153
+ "inputs": [
154
+ {
155
+ "indexed": true,
156
+ "internalType": "bytes32",
157
+ "name": "role",
158
+ "type": "bytes32"
159
+ },
160
+ {
161
+ "indexed": true,
162
+ "internalType": "address",
163
+ "name": "account",
164
+ "type": "address"
165
+ },
166
+ {
167
+ "indexed": true,
168
+ "internalType": "address",
169
+ "name": "sender",
170
+ "type": "address"
171
+ }
172
+ ],
173
+ "name": "RoleGranted",
174
+ "type": "event"
175
+ },
176
+ {
177
+ "anonymous": false,
178
+ "inputs": [
179
+ {
180
+ "indexed": true,
181
+ "internalType": "bytes32",
182
+ "name": "role",
183
+ "type": "bytes32"
184
+ },
185
+ {
186
+ "indexed": true,
187
+ "internalType": "address",
188
+ "name": "account",
189
+ "type": "address"
190
+ },
191
+ {
192
+ "indexed": true,
193
+ "internalType": "address",
194
+ "name": "sender",
195
+ "type": "address"
196
+ }
197
+ ],
198
+ "name": "RoleRevoked",
199
+ "type": "event"
200
+ },
201
+ {
202
+ "anonymous": false,
203
+ "inputs": [
204
+ {
205
+ "indexed": false,
206
+ "internalType": "uint16",
207
+ "name": "multiplierBps",
208
+ "type": "uint16"
209
+ }
210
+ ],
211
+ "name": "SetDefaultMultiplierBps",
212
+ "type": "event"
213
+ },
214
+ {
215
+ "anonymous": false,
216
+ "inputs": [
217
+ {
218
+ "components": [
219
+ {
220
+ "internalType": "uint32",
221
+ "name": "dstEid",
222
+ "type": "uint32"
223
+ },
224
+ {
225
+ "internalType": "uint64",
226
+ "name": "gas",
227
+ "type": "uint64"
228
+ },
229
+ {
230
+ "internalType": "uint16",
231
+ "name": "multiplierBps",
232
+ "type": "uint16"
233
+ },
234
+ {
235
+ "internalType": "uint128",
236
+ "name": "floorMarginUSD",
237
+ "type": "uint128"
238
+ }
239
+ ],
240
+ "indexed": false,
241
+ "internalType": "struct IOracle.DstConfigParam[]",
242
+ "name": "params",
243
+ "type": "tuple[]"
244
+ }
245
+ ],
246
+ "name": "SetDstConfig",
247
+ "type": "event"
248
+ },
249
+ {
250
+ "anonymous": false,
251
+ "inputs": [
252
+ {
253
+ "indexed": false,
254
+ "internalType": "address",
255
+ "name": "priceFeed",
256
+ "type": "address"
257
+ }
258
+ ],
259
+ "name": "SetPriceFeed",
260
+ "type": "event"
261
+ },
262
+ {
263
+ "anonymous": false,
264
+ "inputs": [
265
+ {
266
+ "indexed": false,
267
+ "internalType": "address",
268
+ "name": "workerLib",
269
+ "type": "address"
270
+ }
271
+ ],
272
+ "name": "SetWorkerLib",
273
+ "type": "event"
274
+ },
275
+ {
276
+ "anonymous": false,
277
+ "inputs": [
278
+ {
279
+ "indexed": false,
280
+ "internalType": "uint64",
281
+ "name": "_quorum",
282
+ "type": "uint64"
283
+ }
284
+ ],
285
+ "name": "UpdateQuorum",
286
+ "type": "event"
287
+ },
288
+ {
289
+ "anonymous": false,
290
+ "inputs": [
291
+ {
292
+ "indexed": false,
293
+ "internalType": "address",
294
+ "name": "_signer",
295
+ "type": "address"
296
+ },
297
+ {
298
+ "indexed": false,
299
+ "internalType": "bool",
300
+ "name": "_active",
301
+ "type": "bool"
302
+ }
303
+ ],
304
+ "name": "UpdateSigner",
305
+ "type": "event"
306
+ },
307
+ {
308
+ "anonymous": false,
309
+ "inputs": [
310
+ {
311
+ "indexed": false,
312
+ "internalType": "address",
313
+ "name": "lib",
314
+ "type": "address"
315
+ },
316
+ {
317
+ "indexed": false,
318
+ "internalType": "address",
319
+ "name": "to",
320
+ "type": "address"
321
+ },
322
+ {
323
+ "indexed": false,
324
+ "internalType": "uint256",
325
+ "name": "amount",
326
+ "type": "uint256"
327
+ }
328
+ ],
329
+ "name": "Withdraw",
330
+ "type": "event"
331
+ },
332
+ {
333
+ "inputs": [],
334
+ "name": "ADMIN_ROLE",
335
+ "outputs": [
336
+ {
337
+ "internalType": "bytes32",
338
+ "name": "",
339
+ "type": "bytes32"
340
+ }
341
+ ],
342
+ "stateMutability": "view",
343
+ "type": "function"
344
+ },
345
+ {
346
+ "inputs": [],
347
+ "name": "ALLOWLIST",
348
+ "outputs": [
349
+ {
350
+ "internalType": "bytes32",
351
+ "name": "",
352
+ "type": "bytes32"
353
+ }
354
+ ],
355
+ "stateMutability": "view",
356
+ "type": "function"
357
+ },
358
+ {
359
+ "inputs": [],
360
+ "name": "DEFAULT_ADMIN_ROLE",
361
+ "outputs": [
362
+ {
363
+ "internalType": "bytes32",
364
+ "name": "",
365
+ "type": "bytes32"
366
+ }
367
+ ],
368
+ "stateMutability": "view",
369
+ "type": "function"
370
+ },
371
+ {
372
+ "inputs": [],
373
+ "name": "DENYLIST",
374
+ "outputs": [
375
+ {
376
+ "internalType": "bytes32",
377
+ "name": "",
378
+ "type": "bytes32"
379
+ }
380
+ ],
381
+ "stateMutability": "view",
382
+ "type": "function"
383
+ },
384
+ {
385
+ "inputs": [],
386
+ "name": "MESSAGE_LIB_ROLE",
387
+ "outputs": [
388
+ {
389
+ "internalType": "bytes32",
390
+ "name": "",
391
+ "type": "bytes32"
392
+ }
393
+ ],
394
+ "stateMutability": "view",
395
+ "type": "function"
396
+ },
397
+ {
398
+ "inputs": [],
399
+ "name": "allowlistSize",
400
+ "outputs": [
401
+ {
402
+ "internalType": "uint64",
403
+ "name": "",
404
+ "type": "uint64"
405
+ }
406
+ ],
407
+ "stateMutability": "view",
408
+ "type": "function"
409
+ },
410
+ {
411
+ "inputs": [
412
+ {
413
+ "internalType": "uint16",
414
+ "name": "_dstEid",
415
+ "type": "uint16"
416
+ },
417
+ {
418
+ "internalType": "uint16",
419
+ "name": "",
420
+ "type": "uint16"
421
+ },
422
+ {
423
+ "internalType": "uint64",
424
+ "name": "_confirmations",
425
+ "type": "uint64"
426
+ },
427
+ {
428
+ "internalType": "address",
429
+ "name": "_sender",
430
+ "type": "address"
431
+ }
432
+ ],
433
+ "name": "assignJob",
434
+ "outputs": [
435
+ {
436
+ "internalType": "uint256",
437
+ "name": "totalFee",
438
+ "type": "uint256"
439
+ }
440
+ ],
441
+ "stateMutability": "nonpayable",
442
+ "type": "function"
443
+ },
444
+ {
445
+ "inputs": [
446
+ {
447
+ "internalType": "uint32",
448
+ "name": "_dstEid",
449
+ "type": "uint32"
450
+ },
451
+ {
452
+ "internalType": "uint64",
453
+ "name": "_confirmations",
454
+ "type": "uint64"
455
+ },
456
+ {
457
+ "internalType": "address",
458
+ "name": "_sender",
459
+ "type": "address"
460
+ },
461
+ {
462
+ "internalType": "bytes",
463
+ "name": "_options",
464
+ "type": "bytes"
465
+ }
466
+ ],
467
+ "name": "assignJob",
468
+ "outputs": [
469
+ {
470
+ "internalType": "uint256",
471
+ "name": "totalFee",
472
+ "type": "uint256"
473
+ }
474
+ ],
475
+ "stateMutability": "payable",
476
+ "type": "function"
477
+ },
478
+ {
479
+ "inputs": [],
480
+ "name": "defaultMultiplierBps",
481
+ "outputs": [
482
+ {
483
+ "internalType": "uint16",
484
+ "name": "",
485
+ "type": "uint16"
486
+ }
487
+ ],
488
+ "stateMutability": "view",
489
+ "type": "function"
490
+ },
491
+ {
492
+ "inputs": [
493
+ {
494
+ "internalType": "uint32",
495
+ "name": "dstEid",
496
+ "type": "uint32"
497
+ }
498
+ ],
499
+ "name": "dstConfig",
500
+ "outputs": [
501
+ {
502
+ "internalType": "uint64",
503
+ "name": "gas",
504
+ "type": "uint64"
505
+ },
506
+ {
507
+ "internalType": "uint16",
508
+ "name": "multiplierBps",
509
+ "type": "uint16"
510
+ },
511
+ {
512
+ "internalType": "uint128",
513
+ "name": "floorMarginUSD",
514
+ "type": "uint128"
515
+ }
516
+ ],
517
+ "stateMutability": "view",
518
+ "type": "function"
519
+ },
520
+ {
521
+ "inputs": [
522
+ {
523
+ "components": [
524
+ {
525
+ "internalType": "address",
526
+ "name": "target",
527
+ "type": "address"
528
+ },
529
+ {
530
+ "internalType": "bytes",
531
+ "name": "callData",
532
+ "type": "bytes"
533
+ },
534
+ {
535
+ "internalType": "uint256",
536
+ "name": "expiration",
537
+ "type": "uint256"
538
+ },
539
+ {
540
+ "internalType": "bytes",
541
+ "name": "signatures",
542
+ "type": "bytes"
543
+ }
544
+ ],
545
+ "internalType": "struct ExecuteParam[]",
546
+ "name": "_params",
547
+ "type": "tuple[]"
548
+ }
549
+ ],
550
+ "name": "execute",
551
+ "outputs": [],
552
+ "stateMutability": "nonpayable",
553
+ "type": "function"
554
+ },
555
+ {
556
+ "inputs": [
557
+ {
558
+ "internalType": "uint32",
559
+ "name": "_dstEid",
560
+ "type": "uint32"
561
+ },
562
+ {
563
+ "internalType": "uint64",
564
+ "name": "_confirmations",
565
+ "type": "uint64"
566
+ },
567
+ {
568
+ "internalType": "address",
569
+ "name": "_sender",
570
+ "type": "address"
571
+ },
572
+ {
573
+ "internalType": "bytes",
574
+ "name": "_options",
575
+ "type": "bytes"
576
+ }
577
+ ],
578
+ "name": "getFee",
579
+ "outputs": [
580
+ {
581
+ "internalType": "uint256",
582
+ "name": "fee",
583
+ "type": "uint256"
584
+ }
585
+ ],
586
+ "stateMutability": "view",
587
+ "type": "function"
588
+ },
589
+ {
590
+ "inputs": [
591
+ {
592
+ "internalType": "uint16",
593
+ "name": "_dstEid",
594
+ "type": "uint16"
595
+ },
596
+ {
597
+ "internalType": "uint16",
598
+ "name": "",
599
+ "type": "uint16"
600
+ },
601
+ {
602
+ "internalType": "uint64",
603
+ "name": "_confirmations",
604
+ "type": "uint64"
605
+ },
606
+ {
607
+ "internalType": "address",
608
+ "name": "_sender",
609
+ "type": "address"
610
+ }
611
+ ],
612
+ "name": "getFee",
613
+ "outputs": [
614
+ {
615
+ "internalType": "uint256",
616
+ "name": "fee",
617
+ "type": "uint256"
618
+ }
619
+ ],
620
+ "stateMutability": "view",
621
+ "type": "function"
622
+ },
623
+ {
624
+ "inputs": [
625
+ {
626
+ "internalType": "bytes32",
627
+ "name": "role",
628
+ "type": "bytes32"
629
+ }
630
+ ],
631
+ "name": "getRoleAdmin",
632
+ "outputs": [
633
+ {
634
+ "internalType": "bytes32",
635
+ "name": "",
636
+ "type": "bytes32"
637
+ }
638
+ ],
639
+ "stateMutability": "view",
640
+ "type": "function"
641
+ },
642
+ {
643
+ "inputs": [
644
+ {
645
+ "internalType": "bytes32",
646
+ "name": "role",
647
+ "type": "bytes32"
648
+ },
649
+ {
650
+ "internalType": "address",
651
+ "name": "account",
652
+ "type": "address"
653
+ }
654
+ ],
655
+ "name": "grantRole",
656
+ "outputs": [],
657
+ "stateMutability": "nonpayable",
658
+ "type": "function"
659
+ },
660
+ {
661
+ "inputs": [
662
+ {
663
+ "internalType": "bytes32",
664
+ "name": "role",
665
+ "type": "bytes32"
666
+ },
667
+ {
668
+ "internalType": "address",
669
+ "name": "account",
670
+ "type": "address"
671
+ }
672
+ ],
673
+ "name": "hasRole",
674
+ "outputs": [
675
+ {
676
+ "internalType": "bool",
677
+ "name": "",
678
+ "type": "bool"
679
+ }
680
+ ],
681
+ "stateMutability": "view",
682
+ "type": "function"
683
+ },
684
+ {
685
+ "inputs": [
686
+ {
687
+ "internalType": "address",
688
+ "name": "_target",
689
+ "type": "address"
690
+ },
691
+ {
692
+ "internalType": "bytes",
693
+ "name": "_callData",
694
+ "type": "bytes"
695
+ },
696
+ {
697
+ "internalType": "uint256",
698
+ "name": "_expiration",
699
+ "type": "uint256"
700
+ }
701
+ ],
702
+ "name": "hashCallData",
703
+ "outputs": [
704
+ {
705
+ "internalType": "bytes32",
706
+ "name": "",
707
+ "type": "bytes32"
708
+ }
709
+ ],
710
+ "stateMutability": "pure",
711
+ "type": "function"
712
+ },
713
+ {
714
+ "inputs": [],
715
+ "name": "paused",
716
+ "outputs": [
717
+ {
718
+ "internalType": "bool",
719
+ "name": "",
720
+ "type": "bool"
721
+ }
722
+ ],
723
+ "stateMutability": "view",
724
+ "type": "function"
725
+ },
726
+ {
727
+ "inputs": [],
728
+ "name": "priceFeed",
729
+ "outputs": [
730
+ {
731
+ "internalType": "address",
732
+ "name": "",
733
+ "type": "address"
734
+ }
735
+ ],
736
+ "stateMutability": "view",
737
+ "type": "function"
738
+ },
739
+ {
740
+ "inputs": [],
741
+ "name": "quorum",
742
+ "outputs": [
743
+ {
744
+ "internalType": "uint64",
745
+ "name": "",
746
+ "type": "uint64"
747
+ }
748
+ ],
749
+ "stateMutability": "view",
750
+ "type": "function"
751
+ },
752
+ {
753
+ "inputs": [
754
+ {
755
+ "internalType": "bytes32",
756
+ "name": "",
757
+ "type": "bytes32"
758
+ },
759
+ {
760
+ "internalType": "address",
761
+ "name": "",
762
+ "type": "address"
763
+ }
764
+ ],
765
+ "name": "renounceRole",
766
+ "outputs": [],
767
+ "stateMutability": "nonpayable",
768
+ "type": "function"
769
+ },
770
+ {
771
+ "inputs": [
772
+ {
773
+ "internalType": "bytes32",
774
+ "name": "role",
775
+ "type": "bytes32"
776
+ },
777
+ {
778
+ "internalType": "address",
779
+ "name": "account",
780
+ "type": "address"
781
+ }
782
+ ],
783
+ "name": "revokeRole",
784
+ "outputs": [],
785
+ "stateMutability": "nonpayable",
786
+ "type": "function"
787
+ },
788
+ {
789
+ "inputs": [
790
+ {
791
+ "internalType": "uint16",
792
+ "name": "_multiplierBps",
793
+ "type": "uint16"
794
+ }
795
+ ],
796
+ "name": "setDefaultMultiplierBps",
797
+ "outputs": [],
798
+ "stateMutability": "nonpayable",
799
+ "type": "function"
800
+ },
801
+ {
802
+ "inputs": [
803
+ {
804
+ "components": [
805
+ {
806
+ "internalType": "uint32",
807
+ "name": "dstEid",
808
+ "type": "uint32"
809
+ },
810
+ {
811
+ "internalType": "uint64",
812
+ "name": "gas",
813
+ "type": "uint64"
814
+ },
815
+ {
816
+ "internalType": "uint16",
817
+ "name": "multiplierBps",
818
+ "type": "uint16"
819
+ },
820
+ {
821
+ "internalType": "uint128",
822
+ "name": "floorMarginUSD",
823
+ "type": "uint128"
824
+ }
825
+ ],
826
+ "internalType": "struct IOracle.DstConfigParam[]",
827
+ "name": "_params",
828
+ "type": "tuple[]"
829
+ }
830
+ ],
831
+ "name": "setDstConfig",
832
+ "outputs": [],
833
+ "stateMutability": "nonpayable",
834
+ "type": "function"
835
+ },
836
+ {
837
+ "inputs": [
838
+ {
839
+ "internalType": "bool",
840
+ "name": "_paused",
841
+ "type": "bool"
842
+ }
843
+ ],
844
+ "name": "setPaused",
845
+ "outputs": [],
846
+ "stateMutability": "nonpayable",
847
+ "type": "function"
848
+ },
849
+ {
850
+ "inputs": [
851
+ {
852
+ "internalType": "address",
853
+ "name": "_priceFeed",
854
+ "type": "address"
855
+ }
856
+ ],
857
+ "name": "setPriceFeed",
858
+ "outputs": [],
859
+ "stateMutability": "nonpayable",
860
+ "type": "function"
861
+ },
862
+ {
863
+ "inputs": [
864
+ {
865
+ "internalType": "uint64",
866
+ "name": "_quorum",
867
+ "type": "uint64"
868
+ }
869
+ ],
870
+ "name": "setQuorum",
871
+ "outputs": [],
872
+ "stateMutability": "nonpayable",
873
+ "type": "function"
874
+ },
875
+ {
876
+ "inputs": [
877
+ {
878
+ "internalType": "address",
879
+ "name": "_signer",
880
+ "type": "address"
881
+ },
882
+ {
883
+ "internalType": "bool",
884
+ "name": "_active",
885
+ "type": "bool"
886
+ }
887
+ ],
888
+ "name": "setSigner",
889
+ "outputs": [],
890
+ "stateMutability": "nonpayable",
891
+ "type": "function"
892
+ },
893
+ {
894
+ "inputs": [
895
+ {
896
+ "internalType": "address",
897
+ "name": "_workerFeeLib",
898
+ "type": "address"
899
+ }
900
+ ],
901
+ "name": "setWorkerFeeLib",
902
+ "outputs": [],
903
+ "stateMutability": "nonpayable",
904
+ "type": "function"
905
+ },
906
+ {
907
+ "inputs": [
908
+ {
909
+ "internalType": "contract IUltraLightNode",
910
+ "name": "_uln",
911
+ "type": "address"
912
+ },
913
+ {
914
+ "internalType": "bytes",
915
+ "name": "_packetHeader",
916
+ "type": "bytes"
917
+ },
918
+ {
919
+ "internalType": "bytes32",
920
+ "name": "_payloadHash",
921
+ "type": "bytes32"
922
+ },
923
+ {
924
+ "internalType": "uint64",
925
+ "name": "_confirmations",
926
+ "type": "uint64"
927
+ }
928
+ ],
929
+ "name": "signAndDeliver",
930
+ "outputs": [],
931
+ "stateMutability": "nonpayable",
932
+ "type": "function"
933
+ },
934
+ {
935
+ "inputs": [],
936
+ "name": "signerSize",
937
+ "outputs": [
938
+ {
939
+ "internalType": "uint64",
940
+ "name": "",
941
+ "type": "uint64"
942
+ }
943
+ ],
944
+ "stateMutability": "view",
945
+ "type": "function"
946
+ },
947
+ {
948
+ "inputs": [
949
+ {
950
+ "internalType": "address",
951
+ "name": "signer",
952
+ "type": "address"
953
+ }
954
+ ],
955
+ "name": "signers",
956
+ "outputs": [
957
+ {
958
+ "internalType": "bool",
959
+ "name": "active",
960
+ "type": "bool"
961
+ }
962
+ ],
963
+ "stateMutability": "view",
964
+ "type": "function"
965
+ },
966
+ {
967
+ "inputs": [
968
+ {
969
+ "internalType": "bytes4",
970
+ "name": "interfaceId",
971
+ "type": "bytes4"
972
+ }
973
+ ],
974
+ "name": "supportsInterface",
975
+ "outputs": [
976
+ {
977
+ "internalType": "bool",
978
+ "name": "",
979
+ "type": "bool"
980
+ }
981
+ ],
982
+ "stateMutability": "view",
983
+ "type": "function"
984
+ },
985
+ {
986
+ "inputs": [
987
+ {
988
+ "internalType": "bytes32",
989
+ "name": "executableHash",
990
+ "type": "bytes32"
991
+ }
992
+ ],
993
+ "name": "usedHashes",
994
+ "outputs": [
995
+ {
996
+ "internalType": "bool",
997
+ "name": "used",
998
+ "type": "bool"
999
+ }
1000
+ ],
1001
+ "stateMutability": "view",
1002
+ "type": "function"
1003
+ },
1004
+ {
1005
+ "inputs": [
1006
+ {
1007
+ "internalType": "bytes32",
1008
+ "name": "_hash",
1009
+ "type": "bytes32"
1010
+ },
1011
+ {
1012
+ "internalType": "bytes",
1013
+ "name": "_signatures",
1014
+ "type": "bytes"
1015
+ }
1016
+ ],
1017
+ "name": "verifySignatures",
1018
+ "outputs": [
1019
+ {
1020
+ "internalType": "bool",
1021
+ "name": "",
1022
+ "type": "bool"
1023
+ }
1024
+ ],
1025
+ "stateMutability": "view",
1026
+ "type": "function"
1027
+ },
1028
+ {
1029
+ "inputs": [
1030
+ {
1031
+ "internalType": "address",
1032
+ "name": "_lib",
1033
+ "type": "address"
1034
+ },
1035
+ {
1036
+ "internalType": "address payable",
1037
+ "name": "_to",
1038
+ "type": "address"
1039
+ },
1040
+ {
1041
+ "internalType": "uint256",
1042
+ "name": "_amount",
1043
+ "type": "uint256"
1044
+ }
1045
+ ],
1046
+ "name": "withdrawFee",
1047
+ "outputs": [],
1048
+ "stateMutability": "nonpayable",
1049
+ "type": "function"
1050
+ },
1051
+ {
1052
+ "inputs": [
1053
+ {
1054
+ "internalType": "address",
1055
+ "name": "_lib",
1056
+ "type": "address"
1057
+ },
1058
+ {
1059
+ "internalType": "address payable",
1060
+ "name": "_to",
1061
+ "type": "address"
1062
+ },
1063
+ {
1064
+ "internalType": "uint256",
1065
+ "name": "_amount",
1066
+ "type": "uint256"
1067
+ }
1068
+ ],
1069
+ "name": "withdrawFeeFromUlnV2",
1070
+ "outputs": [],
1071
+ "stateMutability": "nonpayable",
1072
+ "type": "function"
1073
+ },
1074
+ {
1075
+ "inputs": [],
1076
+ "name": "workerFeeLib",
1077
+ "outputs": [
1078
+ {
1079
+ "internalType": "address",
1080
+ "name": "",
1081
+ "type": "address"
1082
+ }
1083
+ ],
1084
+ "stateMutability": "view",
1085
+ "type": "function"
1086
+ }
1087
+ ],
1088
+ "transactionHash": "0x0a2b2b8bf6194762ce3545a79f971215367f81717bd38cdf46fc96dcafa14620",
1089
+ "receipt": {
1090
+ "to": null,
1091
+ "from": "0xBcd4042DE499D14e55001CcbB24a551F3b954096",
1092
+ "contractAddress": "0xfbfbfDdd6e35dA57b7B0F9a2C10E34Be70B3A4E9",
1093
+ "transactionIndex": 0,
1094
+ "gasUsed": "3734032",
1095
+ "logsBloom": "0x00000004000000000000000000000000000000000000000000000002000000000000400000000000000000020000000000000000000000000000020000000020000400000000000000000000000000000000080020000000000000000000000000000000030000000000000000000800000000000000000800000000000000000000000000000000000000000000004000000000080000000000000000000020008000000800000000000000000000400000000000000000001000000000000000000000000000000002010000000000000000000000000100010020800060000000000080000000000000000080000000000000000000000000000000000000",
1096
+ "blockHash": "0xbd8cccc311f6fd7341e88f2d777dbc119304ee68ffe9ac502623c8a7f01b32bc",
1097
+ "transactionHash": "0x0a2b2b8bf6194762ce3545a79f971215367f81717bd38cdf46fc96dcafa14620",
1098
+ "logs": [
1099
+ {
1100
+ "transactionIndex": 0,
1101
+ "blockNumber": 228,
1102
+ "transactionHash": "0x0a2b2b8bf6194762ce3545a79f971215367f81717bd38cdf46fc96dcafa14620",
1103
+ "address": "0xfbfbfDdd6e35dA57b7B0F9a2C10E34Be70B3A4E9",
1104
+ "topics": [
1105
+ "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d",
1106
+ "0x0000000000000000000000000000000000000000000000000000000000000000",
1107
+ "0x0000000000000000000000000000000000000000000000000000000000000000",
1108
+ "0x000000000000000000000000bcd4042de499d14e55001ccbb24a551f3b954096"
1109
+ ],
1110
+ "data": "0x",
1111
+ "logIndex": 0,
1112
+ "blockHash": "0xbd8cccc311f6fd7341e88f2d777dbc119304ee68ffe9ac502623c8a7f01b32bc"
1113
+ },
1114
+ {
1115
+ "transactionIndex": 0,
1116
+ "blockNumber": 228,
1117
+ "transactionHash": "0x0a2b2b8bf6194762ce3545a79f971215367f81717bd38cdf46fc96dcafa14620",
1118
+ "address": "0xfbfbfDdd6e35dA57b7B0F9a2C10E34Be70B3A4E9",
1119
+ "topics": [
1120
+ "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d",
1121
+ "0x724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de",
1122
+ "0x0000000000000000000000000f5d1ef48f12b6f691401bfe88c2037c690a6afe",
1123
+ "0x000000000000000000000000bcd4042de499d14e55001ccbb24a551f3b954096"
1124
+ ],
1125
+ "data": "0x",
1126
+ "logIndex": 1,
1127
+ "blockHash": "0xbd8cccc311f6fd7341e88f2d777dbc119304ee68ffe9ac502623c8a7f01b32bc"
1128
+ },
1129
+ {
1130
+ "transactionIndex": 0,
1131
+ "blockNumber": 228,
1132
+ "transactionHash": "0x0a2b2b8bf6194762ce3545a79f971215367f81717bd38cdf46fc96dcafa14620",
1133
+ "address": "0xfbfbfDdd6e35dA57b7B0F9a2C10E34Be70B3A4E9",
1134
+ "topics": [
1135
+ "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d",
1136
+ "0x724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de",
1137
+ "0x000000000000000000000000381445710b5e73d34af196c53a3d5cda58edbf7a",
1138
+ "0x000000000000000000000000bcd4042de499d14e55001ccbb24a551f3b954096"
1139
+ ],
1140
+ "data": "0x",
1141
+ "logIndex": 2,
1142
+ "blockHash": "0xbd8cccc311f6fd7341e88f2d777dbc119304ee68ffe9ac502623c8a7f01b32bc"
1143
+ },
1144
+ {
1145
+ "transactionIndex": 0,
1146
+ "blockNumber": 228,
1147
+ "transactionHash": "0x0a2b2b8bf6194762ce3545a79f971215367f81717bd38cdf46fc96dcafa14620",
1148
+ "address": "0xfbfbfDdd6e35dA57b7B0F9a2C10E34Be70B3A4E9",
1149
+ "topics": [
1150
+ "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d",
1151
+ "0xa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775",
1152
+ "0x000000000000000000000000c13b65f7c53cd6db2ea205a4b574b4a0858720a6",
1153
+ "0x000000000000000000000000bcd4042de499d14e55001ccbb24a551f3b954096"
1154
+ ],
1155
+ "data": "0x",
1156
+ "logIndex": 3,
1157
+ "blockHash": "0xbd8cccc311f6fd7341e88f2d777dbc119304ee68ffe9ac502623c8a7f01b32bc"
1158
+ },
1159
+ {
1160
+ "transactionIndex": 0,
1161
+ "blockNumber": 228,
1162
+ "transactionHash": "0x0a2b2b8bf6194762ce3545a79f971215367f81717bd38cdf46fc96dcafa14620",
1163
+ "address": "0xfbfbfDdd6e35dA57b7B0F9a2C10E34Be70B3A4E9",
1164
+ "topics": [
1165
+ "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d",
1166
+ "0xa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775",
1167
+ "0x0000000000000000000000000e9971c0005d91336c1441b8f03c1c4fe5fb4584",
1168
+ "0x000000000000000000000000bcd4042de499d14e55001ccbb24a551f3b954096"
1169
+ ],
1170
+ "data": "0x",
1171
+ "logIndex": 4,
1172
+ "blockHash": "0xbd8cccc311f6fd7341e88f2d777dbc119304ee68ffe9ac502623c8a7f01b32bc"
1173
+ }
1174
+ ],
1175
+ "blockNumber": 228,
1176
+ "cumulativeGasUsed": "3734032",
1177
+ "status": 1,
1178
+ "byzantium": true
1179
+ },
1180
+ "args": [
1181
+ [
1182
+ "0x0f5D1ef48f12b6f691401bfe88c2037c690a6afe",
1183
+ "0x381445710b5e73d34aF196c53A3D5cDa58EDBf7A"
1184
+ ],
1185
+ "0x13D69Cf7d6CE4218F646B759Dcf334D82c023d8e",
1186
+ [
1187
+ "0x9c79357189d6aF261691ECF48de9A6bbF30438Fc",
1188
+ "0xC4c81D5C1851702d27d602aA8ff830A7689F17cc"
1189
+ ],
1190
+ 1,
1191
+ [
1192
+ "0xc13b65f7c53Cd6db2EA205a4b574b4a0858720A6",
1193
+ "0x0e9971c0005D91336c1441b8F03c1C4fe5FB4584"
1194
+ ]
1195
+ ],
1196
+ "numDeployments": 1,
1197
+ "solcInputHash": "5ffde9e3e6b2b0a4f1d21e15c800c066",
1198
+ "bytecode": "0x60806040523480156200001157600080fd5b50604051620044813803806200448183398101604081905262000034916200050a565b6001805461ffff60e01b191661017760e51b179055600280546001600160a01b0319166001600160a01b03861617905582828686612ee06000866200007a8280620002d0565b60005b8551811015620000ea57620000d57f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de878381518110620000c157620000c1620005c8565b6020026020010151620002d060201b60201c565b80620000e181620005f4565b9150506200007d565b5060005b81518110156200014757620001327fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775838381518110620000c157620000c1620005c8565b806200013e81620005f4565b915050620000ee565b505050505050806001600160401b03168251101580156200017157506000816001600160401b0316115b620001c35760405162461bcd60e51b815260206004820152601960248201527f4d756c74695369673a207369676e65727320746f6f206665770000000000000060448201526064015b60405180910390fd5b6000805b83518110156200028f576000848281518110620001e857620001e8620005c8565b60200260200101519050826001600160a01b0316816001600160a01b031611620002555760405162461bcd60e51b815260206004820152601c60248201527f4d756c74695369673a207369676e657273206e6f7420736f72746564000000006044820152606401620001ba565b6001600160a01b0381166000908152600360205260409020805460ff191660011790559150806200028681620005f4565b915050620001c7565b50509051600480546001600160401b0393841668010000000000000000026001600160801b0319909116939092169290921717905550620006419350505050565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca821480156200032157506000828152602081815260408083206001600160a01b038516845290915290205460ff16155b156200036f5760018054600160a01b90046001600160401b0316906014620003498362000610565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b6200038682826200038a60201b620023111760201c565b5050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1662000386576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620003e63390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b03811681146200045857600080fd5b919050565b600082601f8301126200046f57600080fd5b815160206001600160401b03808311156200048e576200048e6200042a565b8260051b604051601f19603f83011681018181108482111715620004b657620004b66200042a565b604052938452858101830193838101925087851115620004d557600080fd5b83870191505b84821015620004ff57620004ef8262000440565b83529183019190830190620004db565b979650505050505050565b600080600080600060a086880312156200052357600080fd5b85516001600160401b03808211156200053b57600080fd5b6200054989838a016200045d565b9650620005596020890162000440565b955060408801519150808211156200057057600080fd5b6200057e89838a016200045d565b94506060880151915080821682146200059657600080fd5b608088015191935080821115620005ac57600080fd5b50620005bb888289016200045d565b9150509295509295909350565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201620006095762000609620005de565b5060010190565b60006001600160401b038281166002600160401b03198101620006375762000637620005de565b6001019392505050565b613e3080620006516000396000f3fe6080604052600436106102845760003560e01c806375b238fc11610153578063c5e193cd116100cb578063dafe0ccc1161007f578063e4fbd90311610064578063e4fbd903146108f7578063f3ad31f41461090a578063fd62e7501461092a57600080fd5b8063dafe0ccc146108b7578063de980a43146108d757600080fd5b8063c7b2370b116100b0578063c7b2370b1461083e578063d2ae21041461085e578063d547741f1461089757600080fd5b8063c5e193cd146107fe578063c7a823e01461081e57600080fd5b8063a217fddf11610122578063aef18bf711610107578063aef18bf714610781578063c358de0a146107b1578063c416aa51146107d157600080fd5b8063a217fddf14610738578063a98586e11461074d57600080fd5b806375b238fc146105ee5780638585c9451461062257806391d14854146106425780639e9449651461069357600080fd5b80632f2ff15d116102015780635553fb8e116101b5578063724e78da1161019a578063724e78da1461054c578063736c0d5b1461056c578063741bef1a1461059c57600080fd5b80635553fb8e146104fa5780635c975abb1461051a57600080fd5b806331cb6105116101e657806331cb61051461049a57806336568abe146104ba57806352d3b871146104da57600080fd5b80632f2ff15d1461045a57806330bb3aac1461047a57600080fd5b806316c38b3c116102585780631f3a6f041161023d5780631f3a6f04146103d6578063248a9ca31461040a5780632d80eb361461043a57600080fd5b806316c38b3c146103705780631703a0181461039057600080fd5b8062bf2e801461028957806301ffc9a7146102dc578063036c0a2c1461030c5780631095b6d71461034e575b600080fd5b34801561029557600080fd5b506001546102c4907c0100000000000000000000000000000000000000000000000000000000900461ffff1681565b60405161ffff90911681526020015b60405180910390f35b3480156102e857600080fd5b506102fc6102f7366004612f1d565b61094b565b60405190151581526020016102d3565b34801561031857600080fd5b506103407f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e481565b6040519081526020016102d3565b34801561035a57600080fd5b5061036e610369366004612f81565b6109e4565b005b34801561037c57600080fd5b5061036e61038b366004612fd0565b610ba8565b34801561039c57600080fd5b506004546103bd9068010000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016102d3565b3480156103e257600080fd5b506103407f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca81565b34801561041657600080fd5b50610340610425366004612fed565b60009081526020819052604090206001015490565b34801561044657600080fd5b5061036e610455366004613006565b610bfe565b34801561046657600080fd5b5061036e61047536600461307b565b610e43565b34801561048657600080fd5b50610340610495366004613183565b610fef565b3480156104a657600080fd5b5061036e6104b536600461326a565b6112ac565b3480156104c657600080fd5b5061036e6104d536600461307b565b611323565b3480156104e657600080fd5b5061036e6104f53660046132aa565b611385565b34801561050657600080fd5b506103406105153660046133c0565b61150b565b34801561052657600080fd5b506002546102fc9074010000000000000000000000000000000000000000900460ff1681565b34801561055857600080fd5b5061036e610567366004613416565b61171b565b34801561057857600080fd5b506102fc610587366004613416565b60036020526000908152604090205460ff1681565b3480156105a857600080fd5b506002546105c99073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102d3565b3480156105fa57600080fd5b506103407fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b34801561062e57600080fd5b5061036e61063d366004613433565b6117b8565b34801561064e57600080fd5b506102fc61065d36600461307b565b60009182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b34801561069f57600080fd5b506106fd6106ae36600461344e565b60056020526000908152604090205467ffffffffffffffff81169068010000000000000000810461ffff16906a010000000000000000000090046fffffffffffffffffffffffffffffffff1683565b6040805167ffffffffffffffff909416845261ffff90921660208401526fffffffffffffffffffffffffffffffff16908201526060016102d3565b34801561074457600080fd5b50610340600081565b34801561075957600080fd5b506103407f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de81565b34801561078d57600080fd5b506102fc61079c366004612fed565b60066020526000908152604090205460ff1681565b3480156107bd57600080fd5b5061036e6107cc366004613469565b61182d565b3480156107dd57600080fd5b506001546105c99073ffffffffffffffffffffffffffffffffffffffff1681565b34801561080a57600080fd5b506103406108193660046133c0565b6118da565b34801561082a57600080fd5b506102fc6108393660046134cd565b6119a3565b34801561084a57600080fd5b5061036e610859366004613416565b611bb9565b34801561086a57600080fd5b506001546103bd9074010000000000000000000000000000000000000000900467ffffffffffffffff1681565b3480156108a357600080fd5b5061036e6108b236600461307b565b611c5f565b3480156108c357600080fd5b5061036e6108d2366004612f81565b611da4565b3480156108e357600080fd5b5061036e6108f2366004613519565b611f0a565b610340610905366004613589565b6121f1565b34801561091657600080fd5b50610340610925366004613601565b6122d8565b34801561093657600080fd5b506004546103bd9067ffffffffffffffff1681565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806109de57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610a0e81612401565b73ffffffffffffffffffffffffffffffffffffffff841660009081527f9b50f4667d2d24216ccbf0dce3a90c0f620fa4d895e7b069d80ff6247fd25620602052604090205460ff16610ac1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f576f726b65723a20496e76616c6964206d657373616765206c6962000000000060448201526064015b60405180910390fd5b6040517ffd9be52200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301526024820184905285169063fd9be52290604401600060405180830381600087803b158015610b3157600080fd5b505af1158015610b45573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff8089168252871660208201529081018590527f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb9250606001905060405180910390a150505050565b6000610bb381612401565b506002805491151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff909216919091179055565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610c2881612401565b60005b82811015610e3d5736848483818110610c4657610c4661365d565b9050602002810190610c58919061368c565b905042816040013511610c6b5750610e2b565b6000610c94610c7d6020840184613416565b610c8a60208501856136ca565b85604001356122d8565b9050610cb4610ca660208401846136ca565b610caf9161372f565b61240b565b15610d485760008181526006602052604090205460ff1615610d10577f9c26528f222eb4f79639dea7fe30c7257c124af7ed741437170674ca68249e4e8282604051610d01929190613824565b60405180910390a15050610e2b565b600081815260066020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555b610d598161083960608501856136ca565b15610e2857600080610d6e6020850185613416565b73ffffffffffffffffffffffffffffffffffffffff16610d9160208601866136ca565b604051610d9f9291906138d3565b6000604051808303816000865af19150503d8060008114610ddc576040519150601f19603f3d011682016040523d82523d6000602084013e610de1565b606091505b509150915081610e25577fdc8cdd96296241bbefda4a8e18ad2e0985a8da6495b34d409cfc4c886ee3b0cf8582604051610e1c929190613951565b60405180910390a15b50505b50505b80610e35816139a1565b915050610c2b565b50505050565b817f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca811480610e9157507f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e481145b80610ebb57507f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de81145b15610f2e57303314610f29576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4f7261636c653a2063616c6c6572206d7573742062652073656c6600000000006044820152606401610ab8565b610fe0565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217758103610f7e57610f297fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775612401565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f4f7261636c653a20696e76616c696420726f6c650000000000000000000000006044820152606401610ab8565b610fea83836124f4565b505050565b73ffffffffffffffffffffffffffffffffffffffff821660009081527f93c430521711328044ae92d0f1f1286cf040bc4a382f1642bd89984e866305536020526040812054839060ff16156110a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f576f726b65723a206e6f7420616c6c6f776564000000000000000000000000006044820152606401610ab8565b60015474010000000000000000000000000000000000000000900467ffffffffffffffff161580611115575073ffffffffffffffffffffffffffffffffffffffff811660009081527f4ac82e3087b7dedf7f532cbc6915c722df8c1e31f1388c318a617b52760eaf8b602052604090205460ff165b15611241576040805160c08101825260025473ffffffffffffffffffffffffffffffffffffffff908116825263ffffffff8916602080840182905267ffffffffffffffff808b1685870152898416606086015260048054680100000000000000009004909116608086015260015461ffff7c010000000000000000000000000000000000000000000000000000000082041660a0870152600093845260059092529185902094517f7bfa20a90000000000000000000000000000000000000000000000000000000081529394921692637bfa20a9926111f89286928a91016139d9565b602060405180830381865afa158015611215573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112399190613aa6565b9250506112a3565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f576f726b65723a206e6f7420616c6c6f776564000000000000000000000000006044820152606401610ab8565b50949350505050565b303314611315576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4f7261636c653a2063616c6c6572206d7573742062652073656c6600000000006044820152606401610ab8565b61131f82826125ba565b5050565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f576f726b65723a2063616e6e6f742072656e6f756e636520726f6c65000000006044820152606401610ab8565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756113af81612401565b60005b82518110156114cf5760008382815181106113cf576113cf61365d565b60209081029190910181015160408051606080820183528385015167ffffffffffffffff90811683528385015161ffff908116848801908152928601516fffffffffffffffffffffffffffffffff908116858701908152965163ffffffff16600090815260059098529490962092518354925195519094166a0100000000000000000000027fffffffffffff00000000000000000000000000000000ffffffffffffffffffff9590961668010000000000000000027fffffffffffffffffffffffffffffffffffffffffffff00000000000000000000909216931692909217919091179190911691909117905550806114c7816139a1565b9150506113b2565b507f7dd21e42791b013d1929e86f0c59085e4fca24251f0f1aa81917b3b1611766e0826040516114ff9190613abf565b60405180910390a15050565b73ffffffffffffffffffffffffffffffffffffffff811660009081527f93c430521711328044ae92d0f1f1286cf040bc4a382f1642bd89984e866305536020526040812054829060ff16156115bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f576f726b65723a206e6f7420616c6c6f776564000000000000000000000000006044820152606401610ab8565b60015474010000000000000000000000000000000000000000900467ffffffffffffffff161580611631575073ffffffffffffffffffffffffffffffffffffffff811660009081527f4ac82e3087b7dedf7f532cbc6915c722df8c1e31f1388c318a617b52760eaf8b602052604090205460ff165b15611241576040805160c08101825260025473ffffffffffffffffffffffffffffffffffffffff908116825261ffff808a16602080850182905267ffffffffffffffff808b168688015289851660608701526004805468010000000000000000900490911660808701526001547c0100000000000000000000000000000000000000000000000000000000810490941660a08701526000928352600582528683208751928301885292825295517f7bfa20a900000000000000000000000000000000000000000000000000000000815294959290931693637bfa20a9936111f893879392016139d9565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561174581612401565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040519081527ff724a45d041687842411f2b977ef22ab8f43c8f1104f4592b42a00f9b34a643d906020016114ff565b303314611821576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4f7261636c653a2063616c6c6572206d7573742062652073656c6600000000006044820152606401610ab8565b61182a81612824565b50565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561185781612401565b600180547fffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000061ffff8516908102919091179091556040519081527f7af0ac740036ffb1c97b03697859d729e80a44ae5030543d64971c313565ab4d906020016114ff565b60007f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de61190681612401565b60008661ffff16905061192a81868660405180602001604052806000815250610fef565b6040805163ffffffff8416815273ffffffffffffffffffffffffffffffffffffffff8716602082015267ffffffffffffffff8816818301526060810183905290519194507f2fc4e514b16a8f0f9f15009b848663b25939a33de41fa2b98a534b3ac4d5a572919081900360800190a15050949350505050565b6004546000906119ca9068010000000000000000900467ffffffffffffffff166041613b49565b8210156119d957506000611bb2565b6000611a32856040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b90506000805b60045468010000000000000000900467ffffffffffffffff16811015611baa576000806000611a9e89898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525088925061292f915050565b925092509250600060018785858560405160008152602001604052604051611ae2949392919093845260ff9290921660208401526040830152606082015260800190565b6020604051602081039080840390855afa158015611b04573d6000803e3d6000fd5b5050506020604051035190508573ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1611611b53576000975050505050505050611bb2565b73ffffffffffffffffffffffffffffffffffffffff811660009081526003602052604090205460ff16611b90576000975050505050505050611bb2565b809550505050508080611ba2906139a1565b915050611a38565b506001925050505b9392505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775611be381612401565b611bec8261294d565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040519081527f1399be28223800f8669b3ba5f8721d9fc16fc4e8d0bbf98378791c8c5a3015e0906020016114ff565b817f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca811480611cad57507f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e481145b80611cd757507f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de81145b15611d4a57303314611d45576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4f7261636c653a2063616c6c6572206d7573742062652073656c6600000000006044820152606401610ab8565b611d9a565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217758103610f7e57611d457fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775612401565b610fea8383612a87565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775611dce81612401565b73ffffffffffffffffffffffffffffffffffffffff841660009081527f9b50f4667d2d24216ccbf0dce3a90c0f620fa4d895e7b069d80ff6247fd25620602052604090205460ff16611e7c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4f7261636c653a20496e76616c6964206d657373616765206c696200000000006044820152606401610ab8565b6040517f07b18bde00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152602482018490528516906307b18bde90604401600060405180830381600087803b158015611eec57600080fd5b505af1158015611f00573d6000803e3d6000fd5b5050505050505050565b303314611f73576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4f7261636c653a2063616c6c6572206d7573742062652073656c6600000000006044820152606401610ab8565b73ffffffffffffffffffffffffffffffffffffffff851660009081527f9b50f4667d2d24216ccbf0dce3a90c0f620fa4d895e7b069d80ff6247fd25620602052604090205460ff16612021576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f7261636c653a20696e76616c696420756c6e000000000000000000000000006044820152606401610ab8565b6040517f7e09a8d600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff861690637e09a8d690612079908790879087908790600401613b60565b600060405180830381600087803b15801561209357600080fd5b505af11580156120a7573d6000803e3d6000fd5b50600192506120b4915050565b6040517f7c0cf76300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff871690637c0cf7639061210a90889088908890600401613bc4565b602060405180830381865afa158015612127573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061214b9190613be8565b600381111561215c5761215c613b95565b036121ea576040517f5ed31c5900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff861690635ed31c59906121b790879087908790600401613bc4565b600060405180830381600087803b1580156121d157600080fd5b505af11580156121e5573d6000803e3d6000fd5b505050505b5050505050565b60007f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de61221d81612401565b61225f87878787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610fef92505050565b6040805163ffffffff8a16815273ffffffffffffffffffffffffffffffffffffffff8816602082015267ffffffffffffffff8916818301526060810183905290519193507f2fc4e514b16a8f0f9f15009b848663b25939a33de41fa2b98a534b3ac4d5a572919081900360800190a15095945050505050565b6000848285856040516020016122f19493929190613c09565b604051602081830303815290604052805190602001209050949350505050565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1661131f5760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff85168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556123a33390565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61182a8133612b4c565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7e09a8d600000000000000000000000000000000000000000000000000000000148015906124a157507fffffffff0000000000000000000000000000000000000000000000000000000082167fde980a430000000000000000000000000000000000000000000000000000000014155b80156109de57507fffffffff0000000000000000000000000000000000000000000000000000000082167f704316e500000000000000000000000000000000000000000000000000000000141592915050565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca82148015612551575060008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16155b156125b0576001805474010000000000000000000000000000000000000000900467ffffffffffffffff1690601461258883613c4f565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550505b61131f8282612311565b73ffffffffffffffffffffffffffffffffffffffff821660009081526003602052604090205481151560ff909116151503612677576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4d756c74695369673a207369676e657220616c726561647920696e207468617460448201527f20737461746500000000000000000000000000000000000000000000000000006064820152608401610ab8565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016821515179055806126e9576004546126e49060019067ffffffffffffffff16613c76565b612701565b6004546127019067ffffffffffffffff166001613c9e565b600480547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff928316908117918290556801000000000000000090910490911611156127d7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4d756c74695369673a20636f6d6d69747465652073697a65203c20746872657360448201527f686f6c64000000000000000000000000000000000000000000000000000000006064820152608401610ab8565b6040805173ffffffffffffffffffffffffffffffffffffffff8416815282151560208201527f863d338cad74814b108a06288ad5e0e80d56495e0332238b1d2cdcfa0ca8e5ce91016114ff565b60045467ffffffffffffffff9081169082161180159061284e575060008167ffffffffffffffff16115b6128b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4d756c74695369673a20696e76616c69642071756f72756d00000000000000006044820152606401610ab8565b600480547fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff166801000000000000000067ffffffffffffffff8416908102919091179091556040519081527fb600f3cf7f38a4b49bb0c75f722ef69f7e3e39ef3bb4aa8207fd86e724a232499060200160405180910390a150565b60419081029190910160208101516040820151919092015160ff1692565b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f7bfa20a900000000000000000000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff8216906301ffc9a790602401602060405180830381865afa1580156129d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129fb9190613cbf565b61182a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f4f7261636c653a20776f726b657220666565206c696220646f6573206e6f742060448201527f696d706c656d656e7420494f7261636c654665654c69620000000000000000006064820152608401610ab8565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca82148015612ae3575060008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff165b15612b42576001805474010000000000000000000000000000000000000000900467ffffffffffffffff16906014612b1a83613cdc565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550505b61131f8282612c04565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1661131f57612b8a81612cbb565b612b95836020612cda565b604051602001612ba6929190613d1e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a0000000000000000000000000000000000000000000000000000000008252610ab891600401613d9f565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff161561131f5760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60606109de73ffffffffffffffffffffffffffffffffffffffff831660145b60606000612ce9836002613b49565b612cf4906002613db2565b67ffffffffffffffff811115612d0c57612d0c6130dc565b6040519080825280601f01601f191660200182016040528015612d36576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110612d6d57612d6d61365d565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110612dd057612dd061365d565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000612e0c846002613b49565b612e17906001613db2565b90505b6001811115612eb4577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110612e5857612e5861365d565b1a60f81b828281518110612e6e57612e6e61365d565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c93612ead81613dc5565b9050612e1a565b508315611bb2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610ab8565b600060208284031215612f2f57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611bb257600080fd5b73ffffffffffffffffffffffffffffffffffffffff8116811461182a57600080fd5b600080600060608486031215612f9657600080fd5b8335612fa181612f5f565b92506020840135612fb181612f5f565b929592945050506040919091013590565b801515811461182a57600080fd5b600060208284031215612fe257600080fd5b8135611bb281612fc2565b600060208284031215612fff57600080fd5b5035919050565b6000806020838503121561301957600080fd5b823567ffffffffffffffff8082111561303157600080fd5b818501915085601f83011261304557600080fd5b81358181111561305457600080fd5b8660208260051b850101111561306957600080fd5b60209290920196919550909350505050565b6000806040838503121561308e57600080fd5b8235915060208301356130a081612f5f565b809150509250929050565b803563ffffffff811681146130bf57600080fd5b919050565b803567ffffffffffffffff811681146130bf57600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516080810167ffffffffffffffff8111828210171561312e5761312e6130dc565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561317b5761317b6130dc565b604052919050565b6000806000806080858703121561319957600080fd5b6131a2856130ab565b935060206131b18187016130c4565b935060408601356131c181612f5f565b9250606086013567ffffffffffffffff808211156131de57600080fd5b818801915088601f8301126131f257600080fd5b813581811115613204576132046130dc565b613234847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601613134565b9150808252898482850101111561324a57600080fd5b808484018584013760008482840101525080935050505092959194509250565b6000806040838503121561327d57600080fd5b823561328881612f5f565b915060208301356130a081612fc2565b803561ffff811681146130bf57600080fd5b600060208083850312156132bd57600080fd5b823567ffffffffffffffff808211156132d557600080fd5b818501915085601f8301126132e957600080fd5b8135818111156132fb576132fb6130dc565b613309848260051b01613134565b818152848101925060079190911b83018401908782111561332957600080fd5b928401925b818410156133b557608084890312156133475760008081fd5b61334f61310b565b613358856130ab565b81526133658686016130c4565b868201526040613376818701613298565b908201526060858101356fffffffffffffffffffffffffffffffff8116811461339f5760008081fd5b908201528352608093909301929184019161332e565b979650505050505050565b600080600080608085870312156133d657600080fd5b6133df85613298565b93506133ed60208601613298565b92506133fb604086016130c4565b9150606085013561340b81612f5f565b939692955090935050565b60006020828403121561342857600080fd5b8135611bb281612f5f565b60006020828403121561344557600080fd5b611bb2826130c4565b60006020828403121561346057600080fd5b611bb2826130ab565b60006020828403121561347b57600080fd5b611bb282613298565b60008083601f84011261349657600080fd5b50813567ffffffffffffffff8111156134ae57600080fd5b6020830191508360208285010111156134c657600080fd5b9250929050565b6000806000604084860312156134e257600080fd5b83359250602084013567ffffffffffffffff81111561350057600080fd5b61350c86828701613484565b9497909650939450505050565b60008060008060006080868803121561353157600080fd5b853561353c81612f5f565b9450602086013567ffffffffffffffff81111561355857600080fd5b61356488828901613484565b9095509350506040860135915061357d606087016130c4565b90509295509295909350565b6000806000806000608086880312156135a157600080fd5b6135aa866130ab565b94506135b8602087016130c4565b935060408601356135c881612f5f565b9250606086013567ffffffffffffffff8111156135e457600080fd5b6135f088828901613484565b969995985093965092949392505050565b6000806000806060858703121561361757600080fd5b843561362281612f5f565b9350602085013567ffffffffffffffff81111561363e57600080fd5b61364a87828801613484565b9598909750949560400135949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818336030181126136c057600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126136ff57600080fd5b83018035915067ffffffffffffffff82111561371a57600080fd5b6020019150368190038213156134c657600080fd5b7fffffffff00000000000000000000000000000000000000000000000000000000813581811691600485101561376f5780818660040360031b1b83161692505b505092915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126137ac57600080fd5b830160208101925035905067ffffffffffffffff8111156137cc57600080fd5b8036038213156134c657600080fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b604081526000833561383581612f5f565b73ffffffffffffffffffffffffffffffffffffffff16604083015261385d6020850185613777565b6080606085015261387260c0850182846137db565b9150506040850135608084015261388c6060860186613777565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08584030160a08601526138c18382846137db565b93505050508260208301529392505050565b8183823760009101908152919050565b60005b838110156138fe5781810151838201526020016138e6565b50506000910152565b6000815180845261391f8160208601602086016138e3565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b82815260406020820152600061396a6040830184613907565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036139d2576139d2613972565b5060010190565b600061014073ffffffffffffffffffffffffffffffffffffffff80875116845263ffffffff6020880151166020850152604087015167ffffffffffffffff80821660408701528260608a01511660608701528060808a015116608087015250505061ffff60a08701511660a0840152613a8960c08401865467ffffffffffffffff81168252604081811c61ffff16602084015260509190911c6fffffffffffffffffffffffffffffffff16910152565b80610120840152613a9c81840185613907565b9695505050505050565b600060208284031215613ab857600080fd5b5051919050565b602080825282518282018190526000919060409081850190868401855b82811015613b3c578151805163ffffffff1685528681015167ffffffffffffffff16878601528581015161ffff16868601526060908101516fffffffffffffffffffffffffffffffff169085015260809093019290850190600101613adc565b5091979650505050505050565b80820281158282048414176109de576109de613972565b606081526000613b746060830186886137db565b905083602083015267ffffffffffffffff8316604083015295945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b604081526000613bd86040830185876137db565b9050826020830152949350505050565b600060208284031215613bfa57600080fd5b815160048110611bb257600080fd5b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008560601b16815283601482015281836034830137600091016034019081529392505050565b600067ffffffffffffffff808316818103613c6c57613c6c613972565b6001019392505050565b67ffffffffffffffff828116828216039080821115613c9757613c97613972565b5092915050565b67ffffffffffffffff818116838216019080821115613c9757613c97613972565b600060208284031215613cd157600080fd5b8151611bb281612fc2565b600067ffffffffffffffff821680613cf657613cf6613972565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351613d568160178501602088016138e3565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351613d938160288401602088016138e3565b01602801949350505050565b602081526000611bb26020830184613907565b808201808211156109de576109de613972565b600081613dd457613dd4613972565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019056fea2646970667358221220e817ab18a267a996bbdc1adf70f33cba24869bf3f7c98183293b2045b479422a64736f6c63430008120033",
1199
+ "deployedBytecode": "0x6080604052600436106102845760003560e01c806375b238fc11610153578063c5e193cd116100cb578063dafe0ccc1161007f578063e4fbd90311610064578063e4fbd903146108f7578063f3ad31f41461090a578063fd62e7501461092a57600080fd5b8063dafe0ccc146108b7578063de980a43146108d757600080fd5b8063c7b2370b116100b0578063c7b2370b1461083e578063d2ae21041461085e578063d547741f1461089757600080fd5b8063c5e193cd146107fe578063c7a823e01461081e57600080fd5b8063a217fddf11610122578063aef18bf711610107578063aef18bf714610781578063c358de0a146107b1578063c416aa51146107d157600080fd5b8063a217fddf14610738578063a98586e11461074d57600080fd5b806375b238fc146105ee5780638585c9451461062257806391d14854146106425780639e9449651461069357600080fd5b80632f2ff15d116102015780635553fb8e116101b5578063724e78da1161019a578063724e78da1461054c578063736c0d5b1461056c578063741bef1a1461059c57600080fd5b80635553fb8e146104fa5780635c975abb1461051a57600080fd5b806331cb6105116101e657806331cb61051461049a57806336568abe146104ba57806352d3b871146104da57600080fd5b80632f2ff15d1461045a57806330bb3aac1461047a57600080fd5b806316c38b3c116102585780631f3a6f041161023d5780631f3a6f04146103d6578063248a9ca31461040a5780632d80eb361461043a57600080fd5b806316c38b3c146103705780631703a0181461039057600080fd5b8062bf2e801461028957806301ffc9a7146102dc578063036c0a2c1461030c5780631095b6d71461034e575b600080fd5b34801561029557600080fd5b506001546102c4907c0100000000000000000000000000000000000000000000000000000000900461ffff1681565b60405161ffff90911681526020015b60405180910390f35b3480156102e857600080fd5b506102fc6102f7366004612f1d565b61094b565b60405190151581526020016102d3565b34801561031857600080fd5b506103407f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e481565b6040519081526020016102d3565b34801561035a57600080fd5b5061036e610369366004612f81565b6109e4565b005b34801561037c57600080fd5b5061036e61038b366004612fd0565b610ba8565b34801561039c57600080fd5b506004546103bd9068010000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016102d3565b3480156103e257600080fd5b506103407f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca81565b34801561041657600080fd5b50610340610425366004612fed565b60009081526020819052604090206001015490565b34801561044657600080fd5b5061036e610455366004613006565b610bfe565b34801561046657600080fd5b5061036e61047536600461307b565b610e43565b34801561048657600080fd5b50610340610495366004613183565b610fef565b3480156104a657600080fd5b5061036e6104b536600461326a565b6112ac565b3480156104c657600080fd5b5061036e6104d536600461307b565b611323565b3480156104e657600080fd5b5061036e6104f53660046132aa565b611385565b34801561050657600080fd5b506103406105153660046133c0565b61150b565b34801561052657600080fd5b506002546102fc9074010000000000000000000000000000000000000000900460ff1681565b34801561055857600080fd5b5061036e610567366004613416565b61171b565b34801561057857600080fd5b506102fc610587366004613416565b60036020526000908152604090205460ff1681565b3480156105a857600080fd5b506002546105c99073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102d3565b3480156105fa57600080fd5b506103407fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b34801561062e57600080fd5b5061036e61063d366004613433565b6117b8565b34801561064e57600080fd5b506102fc61065d36600461307b565b60009182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b34801561069f57600080fd5b506106fd6106ae36600461344e565b60056020526000908152604090205467ffffffffffffffff81169068010000000000000000810461ffff16906a010000000000000000000090046fffffffffffffffffffffffffffffffff1683565b6040805167ffffffffffffffff909416845261ffff90921660208401526fffffffffffffffffffffffffffffffff16908201526060016102d3565b34801561074457600080fd5b50610340600081565b34801561075957600080fd5b506103407f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de81565b34801561078d57600080fd5b506102fc61079c366004612fed565b60066020526000908152604090205460ff1681565b3480156107bd57600080fd5b5061036e6107cc366004613469565b61182d565b3480156107dd57600080fd5b506001546105c99073ffffffffffffffffffffffffffffffffffffffff1681565b34801561080a57600080fd5b506103406108193660046133c0565b6118da565b34801561082a57600080fd5b506102fc6108393660046134cd565b6119a3565b34801561084a57600080fd5b5061036e610859366004613416565b611bb9565b34801561086a57600080fd5b506001546103bd9074010000000000000000000000000000000000000000900467ffffffffffffffff1681565b3480156108a357600080fd5b5061036e6108b236600461307b565b611c5f565b3480156108c357600080fd5b5061036e6108d2366004612f81565b611da4565b3480156108e357600080fd5b5061036e6108f2366004613519565b611f0a565b610340610905366004613589565b6121f1565b34801561091657600080fd5b50610340610925366004613601565b6122d8565b34801561093657600080fd5b506004546103bd9067ffffffffffffffff1681565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806109de57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610a0e81612401565b73ffffffffffffffffffffffffffffffffffffffff841660009081527f9b50f4667d2d24216ccbf0dce3a90c0f620fa4d895e7b069d80ff6247fd25620602052604090205460ff16610ac1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f576f726b65723a20496e76616c6964206d657373616765206c6962000000000060448201526064015b60405180910390fd5b6040517ffd9be52200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301526024820184905285169063fd9be52290604401600060405180830381600087803b158015610b3157600080fd5b505af1158015610b45573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff8089168252871660208201529081018590527f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb9250606001905060405180910390a150505050565b6000610bb381612401565b506002805491151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff909216919091179055565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610c2881612401565b60005b82811015610e3d5736848483818110610c4657610c4661365d565b9050602002810190610c58919061368c565b905042816040013511610c6b5750610e2b565b6000610c94610c7d6020840184613416565b610c8a60208501856136ca565b85604001356122d8565b9050610cb4610ca660208401846136ca565b610caf9161372f565b61240b565b15610d485760008181526006602052604090205460ff1615610d10577f9c26528f222eb4f79639dea7fe30c7257c124af7ed741437170674ca68249e4e8282604051610d01929190613824565b60405180910390a15050610e2b565b600081815260066020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555b610d598161083960608501856136ca565b15610e2857600080610d6e6020850185613416565b73ffffffffffffffffffffffffffffffffffffffff16610d9160208601866136ca565b604051610d9f9291906138d3565b6000604051808303816000865af19150503d8060008114610ddc576040519150601f19603f3d011682016040523d82523d6000602084013e610de1565b606091505b509150915081610e25577fdc8cdd96296241bbefda4a8e18ad2e0985a8da6495b34d409cfc4c886ee3b0cf8582604051610e1c929190613951565b60405180910390a15b50505b50505b80610e35816139a1565b915050610c2b565b50505050565b817f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca811480610e9157507f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e481145b80610ebb57507f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de81145b15610f2e57303314610f29576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4f7261636c653a2063616c6c6572206d7573742062652073656c6600000000006044820152606401610ab8565b610fe0565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217758103610f7e57610f297fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775612401565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f4f7261636c653a20696e76616c696420726f6c650000000000000000000000006044820152606401610ab8565b610fea83836124f4565b505050565b73ffffffffffffffffffffffffffffffffffffffff821660009081527f93c430521711328044ae92d0f1f1286cf040bc4a382f1642bd89984e866305536020526040812054839060ff16156110a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f576f726b65723a206e6f7420616c6c6f776564000000000000000000000000006044820152606401610ab8565b60015474010000000000000000000000000000000000000000900467ffffffffffffffff161580611115575073ffffffffffffffffffffffffffffffffffffffff811660009081527f4ac82e3087b7dedf7f532cbc6915c722df8c1e31f1388c318a617b52760eaf8b602052604090205460ff165b15611241576040805160c08101825260025473ffffffffffffffffffffffffffffffffffffffff908116825263ffffffff8916602080840182905267ffffffffffffffff808b1685870152898416606086015260048054680100000000000000009004909116608086015260015461ffff7c010000000000000000000000000000000000000000000000000000000082041660a0870152600093845260059092529185902094517f7bfa20a90000000000000000000000000000000000000000000000000000000081529394921692637bfa20a9926111f89286928a91016139d9565b602060405180830381865afa158015611215573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112399190613aa6565b9250506112a3565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f576f726b65723a206e6f7420616c6c6f776564000000000000000000000000006044820152606401610ab8565b50949350505050565b303314611315576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4f7261636c653a2063616c6c6572206d7573742062652073656c6600000000006044820152606401610ab8565b61131f82826125ba565b5050565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f576f726b65723a2063616e6e6f742072656e6f756e636520726f6c65000000006044820152606401610ab8565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756113af81612401565b60005b82518110156114cf5760008382815181106113cf576113cf61365d565b60209081029190910181015160408051606080820183528385015167ffffffffffffffff90811683528385015161ffff908116848801908152928601516fffffffffffffffffffffffffffffffff908116858701908152965163ffffffff16600090815260059098529490962092518354925195519094166a0100000000000000000000027fffffffffffff00000000000000000000000000000000ffffffffffffffffffff9590961668010000000000000000027fffffffffffffffffffffffffffffffffffffffffffff00000000000000000000909216931692909217919091179190911691909117905550806114c7816139a1565b9150506113b2565b507f7dd21e42791b013d1929e86f0c59085e4fca24251f0f1aa81917b3b1611766e0826040516114ff9190613abf565b60405180910390a15050565b73ffffffffffffffffffffffffffffffffffffffff811660009081527f93c430521711328044ae92d0f1f1286cf040bc4a382f1642bd89984e866305536020526040812054829060ff16156115bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f576f726b65723a206e6f7420616c6c6f776564000000000000000000000000006044820152606401610ab8565b60015474010000000000000000000000000000000000000000900467ffffffffffffffff161580611631575073ffffffffffffffffffffffffffffffffffffffff811660009081527f4ac82e3087b7dedf7f532cbc6915c722df8c1e31f1388c318a617b52760eaf8b602052604090205460ff165b15611241576040805160c08101825260025473ffffffffffffffffffffffffffffffffffffffff908116825261ffff808a16602080850182905267ffffffffffffffff808b168688015289851660608701526004805468010000000000000000900490911660808701526001547c0100000000000000000000000000000000000000000000000000000000810490941660a08701526000928352600582528683208751928301885292825295517f7bfa20a900000000000000000000000000000000000000000000000000000000815294959290931693637bfa20a9936111f893879392016139d9565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561174581612401565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040519081527ff724a45d041687842411f2b977ef22ab8f43c8f1104f4592b42a00f9b34a643d906020016114ff565b303314611821576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4f7261636c653a2063616c6c6572206d7573742062652073656c6600000000006044820152606401610ab8565b61182a81612824565b50565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561185781612401565b600180547fffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000061ffff8516908102919091179091556040519081527f7af0ac740036ffb1c97b03697859d729e80a44ae5030543d64971c313565ab4d906020016114ff565b60007f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de61190681612401565b60008661ffff16905061192a81868660405180602001604052806000815250610fef565b6040805163ffffffff8416815273ffffffffffffffffffffffffffffffffffffffff8716602082015267ffffffffffffffff8816818301526060810183905290519194507f2fc4e514b16a8f0f9f15009b848663b25939a33de41fa2b98a534b3ac4d5a572919081900360800190a15050949350505050565b6004546000906119ca9068010000000000000000900467ffffffffffffffff166041613b49565b8210156119d957506000611bb2565b6000611a32856040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b90506000805b60045468010000000000000000900467ffffffffffffffff16811015611baa576000806000611a9e89898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525088925061292f915050565b925092509250600060018785858560405160008152602001604052604051611ae2949392919093845260ff9290921660208401526040830152606082015260800190565b6020604051602081039080840390855afa158015611b04573d6000803e3d6000fd5b5050506020604051035190508573ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1611611b53576000975050505050505050611bb2565b73ffffffffffffffffffffffffffffffffffffffff811660009081526003602052604090205460ff16611b90576000975050505050505050611bb2565b809550505050508080611ba2906139a1565b915050611a38565b506001925050505b9392505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775611be381612401565b611bec8261294d565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040519081527f1399be28223800f8669b3ba5f8721d9fc16fc4e8d0bbf98378791c8c5a3015e0906020016114ff565b817f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca811480611cad57507f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e481145b80611cd757507f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de81145b15611d4a57303314611d45576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4f7261636c653a2063616c6c6572206d7573742062652073656c6600000000006044820152606401610ab8565b611d9a565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217758103610f7e57611d457fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775612401565b610fea8383612a87565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775611dce81612401565b73ffffffffffffffffffffffffffffffffffffffff841660009081527f9b50f4667d2d24216ccbf0dce3a90c0f620fa4d895e7b069d80ff6247fd25620602052604090205460ff16611e7c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4f7261636c653a20496e76616c6964206d657373616765206c696200000000006044820152606401610ab8565b6040517f07b18bde00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152602482018490528516906307b18bde90604401600060405180830381600087803b158015611eec57600080fd5b505af1158015611f00573d6000803e3d6000fd5b5050505050505050565b303314611f73576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4f7261636c653a2063616c6c6572206d7573742062652073656c6600000000006044820152606401610ab8565b73ffffffffffffffffffffffffffffffffffffffff851660009081527f9b50f4667d2d24216ccbf0dce3a90c0f620fa4d895e7b069d80ff6247fd25620602052604090205460ff16612021576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f7261636c653a20696e76616c696420756c6e000000000000000000000000006044820152606401610ab8565b6040517f7e09a8d600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff861690637e09a8d690612079908790879087908790600401613b60565b600060405180830381600087803b15801561209357600080fd5b505af11580156120a7573d6000803e3d6000fd5b50600192506120b4915050565b6040517f7c0cf76300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff871690637c0cf7639061210a90889088908890600401613bc4565b602060405180830381865afa158015612127573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061214b9190613be8565b600381111561215c5761215c613b95565b036121ea576040517f5ed31c5900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff861690635ed31c59906121b790879087908790600401613bc4565b600060405180830381600087803b1580156121d157600080fd5b505af11580156121e5573d6000803e3d6000fd5b505050505b5050505050565b60007f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de61221d81612401565b61225f87878787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610fef92505050565b6040805163ffffffff8a16815273ffffffffffffffffffffffffffffffffffffffff8816602082015267ffffffffffffffff8916818301526060810183905290519193507f2fc4e514b16a8f0f9f15009b848663b25939a33de41fa2b98a534b3ac4d5a572919081900360800190a15095945050505050565b6000848285856040516020016122f19493929190613c09565b604051602081830303815290604052805190602001209050949350505050565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1661131f5760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff85168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556123a33390565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61182a8133612b4c565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7e09a8d600000000000000000000000000000000000000000000000000000000148015906124a157507fffffffff0000000000000000000000000000000000000000000000000000000082167fde980a430000000000000000000000000000000000000000000000000000000014155b80156109de57507fffffffff0000000000000000000000000000000000000000000000000000000082167f704316e500000000000000000000000000000000000000000000000000000000141592915050565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca82148015612551575060008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16155b156125b0576001805474010000000000000000000000000000000000000000900467ffffffffffffffff1690601461258883613c4f565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550505b61131f8282612311565b73ffffffffffffffffffffffffffffffffffffffff821660009081526003602052604090205481151560ff909116151503612677576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4d756c74695369673a207369676e657220616c726561647920696e207468617460448201527f20737461746500000000000000000000000000000000000000000000000000006064820152608401610ab8565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016821515179055806126e9576004546126e49060019067ffffffffffffffff16613c76565b612701565b6004546127019067ffffffffffffffff166001613c9e565b600480547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff928316908117918290556801000000000000000090910490911611156127d7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4d756c74695369673a20636f6d6d69747465652073697a65203c20746872657360448201527f686f6c64000000000000000000000000000000000000000000000000000000006064820152608401610ab8565b6040805173ffffffffffffffffffffffffffffffffffffffff8416815282151560208201527f863d338cad74814b108a06288ad5e0e80d56495e0332238b1d2cdcfa0ca8e5ce91016114ff565b60045467ffffffffffffffff9081169082161180159061284e575060008167ffffffffffffffff16115b6128b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4d756c74695369673a20696e76616c69642071756f72756d00000000000000006044820152606401610ab8565b600480547fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff166801000000000000000067ffffffffffffffff8416908102919091179091556040519081527fb600f3cf7f38a4b49bb0c75f722ef69f7e3e39ef3bb4aa8207fd86e724a232499060200160405180910390a150565b60419081029190910160208101516040820151919092015160ff1692565b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f7bfa20a900000000000000000000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff8216906301ffc9a790602401602060405180830381865afa1580156129d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129fb9190613cbf565b61182a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f4f7261636c653a20776f726b657220666565206c696220646f6573206e6f742060448201527f696d706c656d656e7420494f7261636c654665654c69620000000000000000006064820152608401610ab8565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca82148015612ae3575060008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff165b15612b42576001805474010000000000000000000000000000000000000000900467ffffffffffffffff16906014612b1a83613cdc565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550505b61131f8282612c04565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1661131f57612b8a81612cbb565b612b95836020612cda565b604051602001612ba6929190613d1e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a0000000000000000000000000000000000000000000000000000000008252610ab891600401613d9f565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff161561131f5760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60606109de73ffffffffffffffffffffffffffffffffffffffff831660145b60606000612ce9836002613b49565b612cf4906002613db2565b67ffffffffffffffff811115612d0c57612d0c6130dc565b6040519080825280601f01601f191660200182016040528015612d36576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110612d6d57612d6d61365d565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110612dd057612dd061365d565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000612e0c846002613b49565b612e17906001613db2565b90505b6001811115612eb4577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110612e5857612e5861365d565b1a60f81b828281518110612e6e57612e6e61365d565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c93612ead81613dc5565b9050612e1a565b508315611bb2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610ab8565b600060208284031215612f2f57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611bb257600080fd5b73ffffffffffffffffffffffffffffffffffffffff8116811461182a57600080fd5b600080600060608486031215612f9657600080fd5b8335612fa181612f5f565b92506020840135612fb181612f5f565b929592945050506040919091013590565b801515811461182a57600080fd5b600060208284031215612fe257600080fd5b8135611bb281612fc2565b600060208284031215612fff57600080fd5b5035919050565b6000806020838503121561301957600080fd5b823567ffffffffffffffff8082111561303157600080fd5b818501915085601f83011261304557600080fd5b81358181111561305457600080fd5b8660208260051b850101111561306957600080fd5b60209290920196919550909350505050565b6000806040838503121561308e57600080fd5b8235915060208301356130a081612f5f565b809150509250929050565b803563ffffffff811681146130bf57600080fd5b919050565b803567ffffffffffffffff811681146130bf57600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516080810167ffffffffffffffff8111828210171561312e5761312e6130dc565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561317b5761317b6130dc565b604052919050565b6000806000806080858703121561319957600080fd5b6131a2856130ab565b935060206131b18187016130c4565b935060408601356131c181612f5f565b9250606086013567ffffffffffffffff808211156131de57600080fd5b818801915088601f8301126131f257600080fd5b813581811115613204576132046130dc565b613234847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601613134565b9150808252898482850101111561324a57600080fd5b808484018584013760008482840101525080935050505092959194509250565b6000806040838503121561327d57600080fd5b823561328881612f5f565b915060208301356130a081612fc2565b803561ffff811681146130bf57600080fd5b600060208083850312156132bd57600080fd5b823567ffffffffffffffff808211156132d557600080fd5b818501915085601f8301126132e957600080fd5b8135818111156132fb576132fb6130dc565b613309848260051b01613134565b818152848101925060079190911b83018401908782111561332957600080fd5b928401925b818410156133b557608084890312156133475760008081fd5b61334f61310b565b613358856130ab565b81526133658686016130c4565b868201526040613376818701613298565b908201526060858101356fffffffffffffffffffffffffffffffff8116811461339f5760008081fd5b908201528352608093909301929184019161332e565b979650505050505050565b600080600080608085870312156133d657600080fd5b6133df85613298565b93506133ed60208601613298565b92506133fb604086016130c4565b9150606085013561340b81612f5f565b939692955090935050565b60006020828403121561342857600080fd5b8135611bb281612f5f565b60006020828403121561344557600080fd5b611bb2826130c4565b60006020828403121561346057600080fd5b611bb2826130ab565b60006020828403121561347b57600080fd5b611bb282613298565b60008083601f84011261349657600080fd5b50813567ffffffffffffffff8111156134ae57600080fd5b6020830191508360208285010111156134c657600080fd5b9250929050565b6000806000604084860312156134e257600080fd5b83359250602084013567ffffffffffffffff81111561350057600080fd5b61350c86828701613484565b9497909650939450505050565b60008060008060006080868803121561353157600080fd5b853561353c81612f5f565b9450602086013567ffffffffffffffff81111561355857600080fd5b61356488828901613484565b9095509350506040860135915061357d606087016130c4565b90509295509295909350565b6000806000806000608086880312156135a157600080fd5b6135aa866130ab565b94506135b8602087016130c4565b935060408601356135c881612f5f565b9250606086013567ffffffffffffffff8111156135e457600080fd5b6135f088828901613484565b969995985093965092949392505050565b6000806000806060858703121561361757600080fd5b843561362281612f5f565b9350602085013567ffffffffffffffff81111561363e57600080fd5b61364a87828801613484565b9598909750949560400135949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818336030181126136c057600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126136ff57600080fd5b83018035915067ffffffffffffffff82111561371a57600080fd5b6020019150368190038213156134c657600080fd5b7fffffffff00000000000000000000000000000000000000000000000000000000813581811691600485101561376f5780818660040360031b1b83161692505b505092915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126137ac57600080fd5b830160208101925035905067ffffffffffffffff8111156137cc57600080fd5b8036038213156134c657600080fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b604081526000833561383581612f5f565b73ffffffffffffffffffffffffffffffffffffffff16604083015261385d6020850185613777565b6080606085015261387260c0850182846137db565b9150506040850135608084015261388c6060860186613777565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08584030160a08601526138c18382846137db565b93505050508260208301529392505050565b8183823760009101908152919050565b60005b838110156138fe5781810151838201526020016138e6565b50506000910152565b6000815180845261391f8160208601602086016138e3565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b82815260406020820152600061396a6040830184613907565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036139d2576139d2613972565b5060010190565b600061014073ffffffffffffffffffffffffffffffffffffffff80875116845263ffffffff6020880151166020850152604087015167ffffffffffffffff80821660408701528260608a01511660608701528060808a015116608087015250505061ffff60a08701511660a0840152613a8960c08401865467ffffffffffffffff81168252604081811c61ffff16602084015260509190911c6fffffffffffffffffffffffffffffffff16910152565b80610120840152613a9c81840185613907565b9695505050505050565b600060208284031215613ab857600080fd5b5051919050565b602080825282518282018190526000919060409081850190868401855b82811015613b3c578151805163ffffffff1685528681015167ffffffffffffffff16878601528581015161ffff16868601526060908101516fffffffffffffffffffffffffffffffff169085015260809093019290850190600101613adc565b5091979650505050505050565b80820281158282048414176109de576109de613972565b606081526000613b746060830186886137db565b905083602083015267ffffffffffffffff8316604083015295945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b604081526000613bd86040830185876137db565b9050826020830152949350505050565b600060208284031215613bfa57600080fd5b815160048110611bb257600080fd5b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008560601b16815283601482015281836034830137600091016034019081529392505050565b600067ffffffffffffffff808316818103613c6c57613c6c613972565b6001019392505050565b67ffffffffffffffff828116828216039080821115613c9757613c97613972565b5092915050565b67ffffffffffffffff818116838216019080821115613c9757613c97613972565b600060208284031215613cd157600080fd5b8151611bb281612fc2565b600067ffffffffffffffff821680613cf657613cf6613972565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351613d568160178501602088016138e3565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351613d938160288401602088016138e3565b01602801949350505050565b602081526000611bb26020830184613907565b808201808211156109de576109de613972565b600081613dd457613dd4613972565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019056fea2646970667358221220e817ab18a267a996bbdc1adf70f33cba24869bf3f7c98183293b2045b479422a64736f6c63430008120033",
1200
+ "devdoc": {
1201
+ "events": {
1202
+ "RoleAdminChanged(bytes32,bytes32,bytes32)": {
1203
+ "details": "Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._"
1204
+ },
1205
+ "RoleGranted(bytes32,address,address)": {
1206
+ "details": "Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}."
1207
+ },
1208
+ "RoleRevoked(bytes32,address,address)": {
1209
+ "details": "Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)"
1210
+ }
1211
+ },
1212
+ "kind": "dev",
1213
+ "methods": {
1214
+ "getRoleAdmin(bytes32)": {
1215
+ "details": "Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."
1216
+ },
1217
+ "grantRole(bytes32,address)": {
1218
+ "details": "Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."
1219
+ },
1220
+ "hasRole(bytes32,address)": {
1221
+ "details": "Returns `true` if `account` has been granted `role`."
1222
+ },
1223
+ "revokeRole(bytes32,address)": {
1224
+ "details": "Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."
1225
+ },
1226
+ "supportsInterface(bytes4)": {
1227
+ "details": "See {IERC165-supportsInterface}."
1228
+ }
1229
+ },
1230
+ "version": 1
1231
+ },
1232
+ "userdoc": {
1233
+ "kind": "user",
1234
+ "methods": {},
1235
+ "version": 1
1236
+ },
1237
+ "storageLayout": {
1238
+ "storage": [
1239
+ {
1240
+ "astId": 5255,
1241
+ "contract": "contracts/uln/MultiSigOracle.sol:MultiSigOracle",
1242
+ "label": "_roles",
1243
+ "offset": 0,
1244
+ "slot": "0",
1245
+ "type": "t_mapping(t_bytes32,t_struct(RoleData)5250_storage)"
1246
+ },
1247
+ {
1248
+ "astId": 11407,
1249
+ "contract": "contracts/uln/MultiSigOracle.sol:MultiSigOracle",
1250
+ "label": "workerFeeLib",
1251
+ "offset": 0,
1252
+ "slot": "1",
1253
+ "type": "t_address"
1254
+ },
1255
+ {
1256
+ "astId": 11409,
1257
+ "contract": "contracts/uln/MultiSigOracle.sol:MultiSigOracle",
1258
+ "label": "allowlistSize",
1259
+ "offset": 20,
1260
+ "slot": "1",
1261
+ "type": "t_uint64"
1262
+ },
1263
+ {
1264
+ "astId": 11411,
1265
+ "contract": "contracts/uln/MultiSigOracle.sol:MultiSigOracle",
1266
+ "label": "defaultMultiplierBps",
1267
+ "offset": 28,
1268
+ "slot": "1",
1269
+ "type": "t_uint16"
1270
+ },
1271
+ {
1272
+ "astId": 11413,
1273
+ "contract": "contracts/uln/MultiSigOracle.sol:MultiSigOracle",
1274
+ "label": "priceFeed",
1275
+ "offset": 0,
1276
+ "slot": "2",
1277
+ "type": "t_address"
1278
+ },
1279
+ {
1280
+ "astId": 11415,
1281
+ "contract": "contracts/uln/MultiSigOracle.sol:MultiSigOracle",
1282
+ "label": "paused",
1283
+ "offset": 20,
1284
+ "slot": "2",
1285
+ "type": "t_bool"
1286
+ },
1287
+ {
1288
+ "astId": 12289,
1289
+ "contract": "contracts/uln/MultiSigOracle.sol:MultiSigOracle",
1290
+ "label": "signers",
1291
+ "offset": 0,
1292
+ "slot": "3",
1293
+ "type": "t_mapping(t_address,t_bool)"
1294
+ },
1295
+ {
1296
+ "astId": 12291,
1297
+ "contract": "contracts/uln/MultiSigOracle.sol:MultiSigOracle",
1298
+ "label": "signerSize",
1299
+ "offset": 0,
1300
+ "slot": "4",
1301
+ "type": "t_uint64"
1302
+ },
1303
+ {
1304
+ "astId": 12293,
1305
+ "contract": "contracts/uln/MultiSigOracle.sol:MultiSigOracle",
1306
+ "label": "quorum",
1307
+ "offset": 8,
1308
+ "slot": "4",
1309
+ "type": "t_uint64"
1310
+ },
1311
+ {
1312
+ "astId": 12611,
1313
+ "contract": "contracts/uln/MultiSigOracle.sol:MultiSigOracle",
1314
+ "label": "dstConfig",
1315
+ "offset": 0,
1316
+ "slot": "5",
1317
+ "type": "t_mapping(t_uint32,t_struct(DstConfig)14364_storage)"
1318
+ },
1319
+ {
1320
+ "astId": 12615,
1321
+ "contract": "contracts/uln/MultiSigOracle.sol:MultiSigOracle",
1322
+ "label": "usedHashes",
1323
+ "offset": 0,
1324
+ "slot": "6",
1325
+ "type": "t_mapping(t_bytes32,t_bool)"
1326
+ }
1327
+ ],
1328
+ "types": {
1329
+ "t_address": {
1330
+ "encoding": "inplace",
1331
+ "label": "address",
1332
+ "numberOfBytes": "20"
1333
+ },
1334
+ "t_bool": {
1335
+ "encoding": "inplace",
1336
+ "label": "bool",
1337
+ "numberOfBytes": "1"
1338
+ },
1339
+ "t_bytes32": {
1340
+ "encoding": "inplace",
1341
+ "label": "bytes32",
1342
+ "numberOfBytes": "32"
1343
+ },
1344
+ "t_mapping(t_address,t_bool)": {
1345
+ "encoding": "mapping",
1346
+ "key": "t_address",
1347
+ "label": "mapping(address => bool)",
1348
+ "numberOfBytes": "32",
1349
+ "value": "t_bool"
1350
+ },
1351
+ "t_mapping(t_bytes32,t_bool)": {
1352
+ "encoding": "mapping",
1353
+ "key": "t_bytes32",
1354
+ "label": "mapping(bytes32 => bool)",
1355
+ "numberOfBytes": "32",
1356
+ "value": "t_bool"
1357
+ },
1358
+ "t_mapping(t_bytes32,t_struct(RoleData)5250_storage)": {
1359
+ "encoding": "mapping",
1360
+ "key": "t_bytes32",
1361
+ "label": "mapping(bytes32 => struct AccessControl.RoleData)",
1362
+ "numberOfBytes": "32",
1363
+ "value": "t_struct(RoleData)5250_storage"
1364
+ },
1365
+ "t_mapping(t_uint32,t_struct(DstConfig)14364_storage)": {
1366
+ "encoding": "mapping",
1367
+ "key": "t_uint32",
1368
+ "label": "mapping(uint32 => struct IOracle.DstConfig)",
1369
+ "numberOfBytes": "32",
1370
+ "value": "t_struct(DstConfig)14364_storage"
1371
+ },
1372
+ "t_struct(DstConfig)14364_storage": {
1373
+ "encoding": "inplace",
1374
+ "label": "struct IOracle.DstConfig",
1375
+ "members": [
1376
+ {
1377
+ "astId": 14359,
1378
+ "contract": "contracts/uln/MultiSigOracle.sol:MultiSigOracle",
1379
+ "label": "gas",
1380
+ "offset": 0,
1381
+ "slot": "0",
1382
+ "type": "t_uint64"
1383
+ },
1384
+ {
1385
+ "astId": 14361,
1386
+ "contract": "contracts/uln/MultiSigOracle.sol:MultiSigOracle",
1387
+ "label": "multiplierBps",
1388
+ "offset": 8,
1389
+ "slot": "0",
1390
+ "type": "t_uint16"
1391
+ },
1392
+ {
1393
+ "astId": 14363,
1394
+ "contract": "contracts/uln/MultiSigOracle.sol:MultiSigOracle",
1395
+ "label": "floorMarginUSD",
1396
+ "offset": 10,
1397
+ "slot": "0",
1398
+ "type": "t_uint128"
1399
+ }
1400
+ ],
1401
+ "numberOfBytes": "32"
1402
+ },
1403
+ "t_struct(RoleData)5250_storage": {
1404
+ "encoding": "inplace",
1405
+ "label": "struct AccessControl.RoleData",
1406
+ "members": [
1407
+ {
1408
+ "astId": 5247,
1409
+ "contract": "contracts/uln/MultiSigOracle.sol:MultiSigOracle",
1410
+ "label": "members",
1411
+ "offset": 0,
1412
+ "slot": "0",
1413
+ "type": "t_mapping(t_address,t_bool)"
1414
+ },
1415
+ {
1416
+ "astId": 5249,
1417
+ "contract": "contracts/uln/MultiSigOracle.sol:MultiSigOracle",
1418
+ "label": "adminRole",
1419
+ "offset": 0,
1420
+ "slot": "1",
1421
+ "type": "t_bytes32"
1422
+ }
1423
+ ],
1424
+ "numberOfBytes": "64"
1425
+ },
1426
+ "t_uint128": {
1427
+ "encoding": "inplace",
1428
+ "label": "uint128",
1429
+ "numberOfBytes": "16"
1430
+ },
1431
+ "t_uint16": {
1432
+ "encoding": "inplace",
1433
+ "label": "uint16",
1434
+ "numberOfBytes": "2"
1435
+ },
1436
+ "t_uint32": {
1437
+ "encoding": "inplace",
1438
+ "label": "uint32",
1439
+ "numberOfBytes": "4"
1440
+ },
1441
+ "t_uint64": {
1442
+ "encoding": "inplace",
1443
+ "label": "uint64",
1444
+ "numberOfBytes": "8"
1445
+ }
1446
+ }
1447
+ }
1448
+ }