@layerzerolabs/lz-evm-sdk-v1 2.3.9 → 2.3.10

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 (146) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/artifacts-tron/contracts/Endpoint.sol/Endpoint.json +958 -0
  3. package/artifacts-tron/contracts/NonceContract.sol/NonceContract.json +88 -0
  4. package/artifacts-tron/contracts/PriceFeed.sol/PriceFeed.json +531 -0
  5. package/artifacts-tron/contracts/RelayerV2.sol/RelayerV2.json +1170 -0
  6. package/artifacts-tron/contracts/UltraLightNode.sol/UltraLightNode.json +1475 -0
  7. package/artifacts-tron/contracts/UltraLightNodeV2.sol/UltraLightNodeV2.json +1423 -0
  8. package/artifacts-tron/contracts/interfaces/IContractOne.sol/IContractOne.json +24 -0
  9. package/artifacts-tron/contracts/interfaces/ILayerZeroEndpoint.sol/ILayerZeroEndpoint.json +447 -0
  10. package/artifacts-tron/contracts/interfaces/ILayerZeroMessagingLibrary.sol/ILayerZeroMessagingLibrary.json +160 -0
  11. package/artifacts-tron/contracts/interfaces/ILayerZeroMessagingLibraryV2.sol/ILayerZeroMessagingLibraryV2.json +184 -0
  12. package/artifacts-tron/contracts/interfaces/ILayerZeroOracle.sol/ILayerZeroOracle.json +77 -0
  13. package/artifacts-tron/contracts/interfaces/ILayerZeroOracleV2.sol/ILayerZeroOracleV2.json +97 -0
  14. package/artifacts-tron/contracts/interfaces/ILayerZeroPriceFeed.sol/ILayerZeroPriceFeed.json +107 -0
  15. package/artifacts-tron/contracts/interfaces/ILayerZeroPriceFeedV2.sol/ILayerZeroPriceFeedV2.json +104 -0
  16. package/artifacts-tron/contracts/interfaces/ILayerZeroReceiver.sol/ILayerZeroReceiver.json +39 -0
  17. package/artifacts-tron/contracts/interfaces/ILayerZeroRelayer.sol/ILayerZeroRelayer.json +92 -0
  18. package/artifacts-tron/contracts/interfaces/ILayerZeroRelayerV2.sol/ILayerZeroRelayerV2.json +107 -0
  19. package/artifacts-tron/contracts/interfaces/ILayerZeroRelayerV2PriceData.sol/ILayerZeroRelayerV2PriceData.json +83 -0
  20. package/artifacts-tron/contracts/interfaces/ILayerZeroTreasury.sol/ILayerZeroTreasury.json +40 -0
  21. package/artifacts-tron/contracts/interfaces/ILayerZeroUltraLightNodeV1.sol/ILayerZeroUltraLightNodeV1.json +156 -0
  22. package/artifacts-tron/contracts/interfaces/ILayerZeroUltraLightNodeV2.sol/ILayerZeroUltraLightNodeV2.json +582 -0
  23. package/artifacts-tron/contracts/interfaces/ILayerZeroUserApplicationConfig.sol/ILayerZeroUserApplicationConfig.json +83 -0
  24. package/artifacts-tron/contracts/interfaces/ILayerZeroValidationLibrary.sol/ILayerZeroValidationLibrary.json +77 -0
  25. package/artifacts-tron/contracts/interfaces/IValidationLibraryHelper.sol/IValidationLibraryHelper.json +146 -0
  26. package/artifacts-tron/contracts/interfaces/IValidationLibraryHelperV2.sol/IValidationLibraryHelperV2.json +154 -0
  27. package/artifacts-tron/contracts/precrime/PreCrime.sol/PreCrime.json +353 -0
  28. package/artifacts-tron/contracts/precrime/PreCrimeBase.sol/PreCrimeBase.json +259 -0
  29. package/artifacts-tron/contracts/precrime/PreCrimeView.sol/PreCrimeView.json +318 -0
  30. package/artifacts-tron/contracts/precrime/interfaces/IPreCrime.sol/IPreCrime.json +162 -0
  31. package/artifacts-tron/contracts/precrime/interfaces/IPreCrimeBase.sol/IPreCrimeBase.json +116 -0
  32. package/artifacts-tron/contracts/precrime/interfaces/IPreCrimeView.sol/IPreCrimeView.json +162 -0
  33. package/artifacts-tron/contracts/proof/FPValidator.sol/FPValidator.json +326 -0
  34. package/artifacts-tron/contracts/proof/FPValidator.sol/IStargate.json +10 -0
  35. package/artifacts-tron/contracts/proof/MPTValidator.sol/MPTValidator.json +146 -0
  36. package/artifacts-tron/contracts/proof/MPTValidator01.sol/IStargate.json +10 -0
  37. package/artifacts-tron/contracts/proof/MPTValidator01.sol/MPTValidator01.json +339 -0
  38. package/artifacts-tron/contracts/proof/MPTValidatorStgV3.sol/MPTValidatorStgV3.json +310 -0
  39. package/artifacts-tron/contracts/proof/MPTValidatorV2.sol/MPTValidatorV2.json +212 -0
  40. package/artifacts-tron/contracts/proof/MPTValidatorV4.sol/IStargate.json +10 -0
  41. package/artifacts-tron/contracts/proof/MPTValidatorV4.sol/IUltraLightNode.json +108 -0
  42. package/artifacts-tron/contracts/proof/MPTValidatorV4.sol/MPTValidatorV4.json +414 -0
  43. package/artifacts-tron/contracts/proof/MPTValidatorV5.sol/IStargate.json +10 -0
  44. package/artifacts-tron/contracts/proof/MPTValidatorV5.sol/IUltraLightNode.json +108 -0
  45. package/artifacts-tron/contracts/proof/MPTValidatorV5.sol/MPTValidatorV5.json +432 -0
  46. package/artifacts-tron/contracts/proof/utility/Buffer.sol/Buffer.json +10 -0
  47. package/artifacts-tron/contracts/proof/utility/LayerZeroPacket.sol/LayerZeroPacket.json +10 -0
  48. package/artifacts-tron/contracts/proof/utility/RLPDecode.sol/RLPDecode.json +10 -0
  49. package/artifacts-tron/contracts/proof/utility/UltraLightNodeEVMDecoder.sol/UltraLightNodeEVMDecoder.json +10 -0
  50. package/artifacts-zk/contracts/Endpoint.sol/Endpoint.json +959 -0
  51. package/artifacts-zk/contracts/NonceContract.sol/NonceContract.json +89 -0
  52. package/artifacts-zk/contracts/PriceFeed.sol/PriceFeed.json +545 -0
  53. package/artifacts-zk/contracts/RelayerV2.sol/RelayerV2.json +1020 -0
  54. package/artifacts-zk/contracts/TreasuryV2.sol/TreasuryV2.json +309 -0
  55. package/artifacts-zk/contracts/UltraLightNodeV2.sol/UltraLightNodeV2.json +1424 -0
  56. package/artifacts-zk/contracts/interfaces/IContractOne.sol/IContractOne.json +25 -0
  57. package/artifacts-zk/contracts/interfaces/ILayerZeroEndpoint.sol/ILayerZeroEndpoint.json +448 -0
  58. package/artifacts-zk/contracts/interfaces/ILayerZeroMessagingLibrary.sol/ILayerZeroMessagingLibrary.json +161 -0
  59. package/artifacts-zk/contracts/interfaces/ILayerZeroMessagingLibraryV2.sol/ILayerZeroMessagingLibraryV2.json +185 -0
  60. package/artifacts-zk/contracts/interfaces/ILayerZeroOracleV2.sol/ILayerZeroOracleV2.json +98 -0
  61. package/artifacts-zk/contracts/interfaces/ILayerZeroPriceFeed.sol/ILayerZeroPriceFeed.json +108 -0
  62. package/artifacts-zk/contracts/interfaces/ILayerZeroPriceFeedV2.sol/ILayerZeroPriceFeedV2.json +105 -0
  63. package/artifacts-zk/contracts/interfaces/ILayerZeroReceiver.sol/ILayerZeroReceiver.json +40 -0
  64. package/artifacts-zk/contracts/interfaces/ILayerZeroRelayerV2.sol/ILayerZeroRelayerV2.json +108 -0
  65. package/artifacts-zk/contracts/interfaces/ILayerZeroTreasury.sol/ILayerZeroTreasury.json +41 -0
  66. package/artifacts-zk/contracts/interfaces/ILayerZeroUltraLightNodeV2.sol/ILayerZeroUltraLightNodeV2.json +583 -0
  67. package/artifacts-zk/contracts/interfaces/ILayerZeroUserApplicationConfig.sol/ILayerZeroUserApplicationConfig.json +84 -0
  68. package/artifacts-zk/contracts/interfaces/ILayerZeroValidationLibrary.sol/ILayerZeroValidationLibrary.json +78 -0
  69. package/artifacts-zk/contracts/interfaces/IValidationLibraryHelper.sol/IValidationLibraryHelper.json +147 -0
  70. package/artifacts-zk/contracts/interfaces/IValidationLibraryHelperV2.sol/IValidationLibraryHelperV2.json +155 -0
  71. package/artifacts-zk/contracts/oracle/OracleV2.sol/OracleV2.json +1527 -0
  72. package/artifacts-zk/contracts/precrime/PreCrime.sol/PreCrime.json +354 -0
  73. package/artifacts-zk/contracts/precrime/PreCrimeBase.sol/PreCrimeBase.json +260 -0
  74. package/artifacts-zk/contracts/precrime/PreCrimeView.sol/PreCrimeView.json +319 -0
  75. package/artifacts-zk/contracts/precrime/example/inherit/CounterI.sol/CounterI.json +624 -0
  76. package/artifacts-zk/contracts/precrime/example/inherit/CounterPrecrime.sol/CounterPrecrime.json +458 -0
  77. package/artifacts-zk/contracts/precrime/example/view/CounterPrecrimeView.sol/CounterPrecrimeView.json +417 -0
  78. package/artifacts-zk/contracts/precrime/example/view/CounterV.sol/CounterV.json +178 -0
  79. package/artifacts-zk/contracts/precrime/example/view/CounterView.sol/CounterView.json +166 -0
  80. package/artifacts-zk/contracts/precrime/interfaces/IPreCrime.sol/IPreCrime.json +163 -0
  81. package/artifacts-zk/contracts/precrime/interfaces/IPreCrimeBase.sol/IPreCrimeBase.json +117 -0
  82. package/artifacts-zk/contracts/precrime/interfaces/IPreCrimeView.sol/IPreCrimeView.json +163 -0
  83. package/artifacts-zk/contracts/proof/FPValidator.sol/FPValidator.json +327 -0
  84. package/artifacts-zk/contracts/proof/FPValidator.sol/IStargate.json +11 -0
  85. package/artifacts-zk/contracts/proof/utility/Buffer.sol/Buffer.json +11 -0
  86. package/artifacts-zk/contracts/proof/utility/LayerZeroPacket.sol/LayerZeroPacket.json +11 -0
  87. package/artifacts-zk/contracts/proof/utility/RLPDecode.sol/RLPDecode.json +11 -0
  88. package/artifacts-zk/contracts/proof/utility/UltraLightNodeEVMDecoder.sol/UltraLightNodeEVMDecoder.json +11 -0
  89. package/artifacts-zk/contracts/proxy/ProxyAdmin.sol/ProxyAdmin.json +172 -0
  90. package/artifacts-zk/contracts/proxy/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +156 -0
  91. package/deployments/arbitrum-sandbox-local/DefaultProxyAdmin.json +3 -3
  92. package/deployments/arbitrum-sandbox-local/Endpoint.json +2 -2
  93. package/deployments/arbitrum-sandbox-local/FPValidator.json +1 -1
  94. package/deployments/arbitrum-sandbox-local/MPTValidator01.json +1 -1
  95. package/deployments/arbitrum-sandbox-local/NonceContract.json +1 -1
  96. package/deployments/arbitrum-sandbox-local/RelayerV2.json +5 -5
  97. package/deployments/arbitrum-sandbox-local/RelayerV2_Implementation.json +1 -1
  98. package/deployments/arbitrum-sandbox-local/RelayerV2_Proxy.json +5 -5
  99. package/deployments/arbitrum-sandbox-local/TreasuryV2.json +2 -2
  100. package/deployments/arbitrum-sandbox-local/UltraLightNode.json +2 -2
  101. package/deployments/arbitrum-sandbox-local/UltraLightNodeV2.json +2 -2
  102. package/deployments/bsc-sandbox-local/DefaultProxyAdmin.json +10 -10
  103. package/deployments/bsc-sandbox-local/Endpoint.json +7 -7
  104. package/deployments/bsc-sandbox-local/FPValidator.json +4 -4
  105. package/deployments/bsc-sandbox-local/MPTValidator01.json +4 -4
  106. package/deployments/bsc-sandbox-local/NonceContract.json +4 -4
  107. package/deployments/bsc-sandbox-local/RelayerV2.json +16 -16
  108. package/deployments/bsc-sandbox-local/RelayerV2_Implementation.json +4 -4
  109. package/deployments/bsc-sandbox-local/RelayerV2_Proxy.json +16 -16
  110. package/deployments/bsc-sandbox-local/TreasuryV2.json +7 -7
  111. package/deployments/bsc-sandbox-local/UltraLightNode.json +7 -7
  112. package/deployments/bsc-sandbox-local/UltraLightNodeV2.json +7 -7
  113. package/deployments/ethereum-sandbox-local/DefaultProxyAdmin.json +3 -3
  114. package/deployments/ethereum-sandbox-local/Endpoint.json +2 -2
  115. package/deployments/ethereum-sandbox-local/FPValidator.json +1 -1
  116. package/deployments/ethereum-sandbox-local/MPTValidator01.json +1 -1
  117. package/deployments/ethereum-sandbox-local/NonceContract.json +1 -1
  118. package/deployments/ethereum-sandbox-local/RelayerV2.json +5 -5
  119. package/deployments/ethereum-sandbox-local/RelayerV2_Implementation.json +1 -1
  120. package/deployments/ethereum-sandbox-local/RelayerV2_Proxy.json +5 -5
  121. package/deployments/ethereum-sandbox-local/TreasuryV2.json +2 -2
  122. package/deployments/ethereum-sandbox-local/UltraLightNode.json +2 -2
  123. package/deployments/ethereum-sandbox-local/UltraLightNodeV2.json +2 -2
  124. package/deployments/polygon-sandbox-local/DefaultProxyAdmin.json +10 -10
  125. package/deployments/polygon-sandbox-local/Endpoint.json +7 -7
  126. package/deployments/polygon-sandbox-local/FPValidator.json +4 -4
  127. package/deployments/polygon-sandbox-local/MPTValidator01.json +4 -4
  128. package/deployments/polygon-sandbox-local/NonceContract.json +4 -4
  129. package/deployments/polygon-sandbox-local/RelayerV2.json +16 -16
  130. package/deployments/polygon-sandbox-local/RelayerV2_Implementation.json +4 -4
  131. package/deployments/polygon-sandbox-local/RelayerV2_Proxy.json +16 -16
  132. package/deployments/polygon-sandbox-local/TreasuryV2.json +7 -7
  133. package/deployments/polygon-sandbox-local/UltraLightNode.json +7 -7
  134. package/deployments/polygon-sandbox-local/UltraLightNodeV2.json +7 -7
  135. package/deployments/tron-sandbox-local/DefaultProxyAdmin.json +14 -14
  136. package/deployments/tron-sandbox-local/Endpoint.json +10 -10
  137. package/deployments/tron-sandbox-local/FPValidator.json +6 -6
  138. package/deployments/tron-sandbox-local/MPTValidator01.json +6 -6
  139. package/deployments/tron-sandbox-local/NonceContract.json +7 -7
  140. package/deployments/tron-sandbox-local/RelayerV2.json +31 -31
  141. package/deployments/tron-sandbox-local/RelayerV2_Implementation.json +6 -6
  142. package/deployments/tron-sandbox-local/RelayerV2_Proxy.json +28 -28
  143. package/deployments/tron-sandbox-local/TreasuryV2.json +11 -11
  144. package/deployments/tron-sandbox-local/UltraLightNode.json +11 -11
  145. package/deployments/tron-sandbox-local/UltraLightNodeV2.json +12 -12
  146. package/package.json +23 -7
@@ -0,0 +1,1170 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "RelayerV2",
4
+ "sourceName": "contracts/RelayerV2.sol",
5
+ "abi": [
6
+ {
7
+ "anonymous": false,
8
+ "inputs": [
9
+ {
10
+ "indexed": false,
11
+ "internalType": "address",
12
+ "name": "addr",
13
+ "type": "address"
14
+ },
15
+ {
16
+ "indexed": false,
17
+ "internalType": "bool",
18
+ "name": "approved",
19
+ "type": "bool"
20
+ }
21
+ ],
22
+ "name": "ApproveAddress",
23
+ "type": "event"
24
+ },
25
+ {
26
+ "anonymous": false,
27
+ "inputs": [
28
+ {
29
+ "indexed": false,
30
+ "internalType": "uint256",
31
+ "name": "totalFee",
32
+ "type": "uint256"
33
+ }
34
+ ],
35
+ "name": "AssignJob",
36
+ "type": "event"
37
+ },
38
+ {
39
+ "anonymous": false,
40
+ "inputs": [
41
+ {
42
+ "indexed": false,
43
+ "internalType": "uint16",
44
+ "name": "dstChain",
45
+ "type": "uint16"
46
+ },
47
+ {
48
+ "indexed": false,
49
+ "internalType": "uint64",
50
+ "name": "capacity",
51
+ "type": "uint64"
52
+ },
53
+ {
54
+ "indexed": false,
55
+ "internalType": "uint64",
56
+ "name": "rate",
57
+ "type": "uint64"
58
+ }
59
+ ],
60
+ "name": "DstRateLimiterSet",
61
+ "type": "event"
62
+ },
63
+ {
64
+ "anonymous": false,
65
+ "inputs": [
66
+ {
67
+ "indexed": true,
68
+ "internalType": "address",
69
+ "name": "previousOwner",
70
+ "type": "address"
71
+ },
72
+ {
73
+ "indexed": true,
74
+ "internalType": "address",
75
+ "name": "newOwner",
76
+ "type": "address"
77
+ }
78
+ ],
79
+ "name": "OwnershipTransferred",
80
+ "type": "event"
81
+ },
82
+ {
83
+ "anonymous": false,
84
+ "inputs": [
85
+ {
86
+ "indexed": false,
87
+ "internalType": "uint64",
88
+ "name": "capacity",
89
+ "type": "uint64"
90
+ },
91
+ {
92
+ "indexed": false,
93
+ "internalType": "uint64",
94
+ "name": "rate",
95
+ "type": "uint64"
96
+ }
97
+ ],
98
+ "name": "RateLimiterSet",
99
+ "type": "event"
100
+ },
101
+ {
102
+ "anonymous": false,
103
+ "inputs": [
104
+ {
105
+ "indexed": false,
106
+ "internalType": "uint16",
107
+ "name": "chainId",
108
+ "type": "uint16"
109
+ },
110
+ {
111
+ "indexed": false,
112
+ "internalType": "uint16",
113
+ "name": "outboundProofType",
114
+ "type": "uint16"
115
+ },
116
+ {
117
+ "indexed": false,
118
+ "internalType": "uint128",
119
+ "name": "dstNativeAmtCap",
120
+ "type": "uint128"
121
+ },
122
+ {
123
+ "indexed": false,
124
+ "internalType": "uint64",
125
+ "name": "baseGas",
126
+ "type": "uint64"
127
+ },
128
+ {
129
+ "indexed": false,
130
+ "internalType": "uint64",
131
+ "name": "gasPerByte",
132
+ "type": "uint64"
133
+ }
134
+ ],
135
+ "name": "SetDstConfig",
136
+ "type": "event"
137
+ },
138
+ {
139
+ "anonymous": false,
140
+ "inputs": [
141
+ {
142
+ "indexed": false,
143
+ "internalType": "uint16",
144
+ "name": "chainId",
145
+ "type": "uint16"
146
+ },
147
+ {
148
+ "indexed": false,
149
+ "internalType": "uint128",
150
+ "name": "dstPriceRatio",
151
+ "type": "uint128"
152
+ },
153
+ {
154
+ "indexed": false,
155
+ "internalType": "uint128",
156
+ "name": "dstGasPriceInWei",
157
+ "type": "uint128"
158
+ }
159
+ ],
160
+ "name": "SetDstPrice",
161
+ "type": "event"
162
+ },
163
+ {
164
+ "anonymous": false,
165
+ "inputs": [
166
+ {
167
+ "indexed": false,
168
+ "internalType": "address",
169
+ "name": "priceConfigUpdater",
170
+ "type": "address"
171
+ },
172
+ {
173
+ "indexed": false,
174
+ "internalType": "bool",
175
+ "name": "allow",
176
+ "type": "bool"
177
+ }
178
+ ],
179
+ "name": "SetPriceConfigUpdater",
180
+ "type": "event"
181
+ },
182
+ {
183
+ "anonymous": false,
184
+ "inputs": [
185
+ {
186
+ "indexed": true,
187
+ "internalType": "address",
188
+ "name": "to",
189
+ "type": "address"
190
+ },
191
+ {
192
+ "indexed": true,
193
+ "internalType": "uint256",
194
+ "name": "quantity",
195
+ "type": "uint256"
196
+ }
197
+ ],
198
+ "name": "ValueTransferFailed",
199
+ "type": "event"
200
+ },
201
+ {
202
+ "anonymous": false,
203
+ "inputs": [
204
+ {
205
+ "indexed": false,
206
+ "internalType": "address",
207
+ "name": "to",
208
+ "type": "address"
209
+ },
210
+ {
211
+ "indexed": false,
212
+ "internalType": "uint256",
213
+ "name": "amount",
214
+ "type": "uint256"
215
+ }
216
+ ],
217
+ "name": "Withdraw",
218
+ "type": "event"
219
+ },
220
+ {
221
+ "inputs": [],
222
+ "name": "AIRDROP_GAS_LIMIT",
223
+ "outputs": [
224
+ {
225
+ "internalType": "uint256",
226
+ "name": "",
227
+ "type": "uint256"
228
+ }
229
+ ],
230
+ "stateMutability": "view",
231
+ "type": "function"
232
+ },
233
+ {
234
+ "inputs": [
235
+ {
236
+ "internalType": "address",
237
+ "name": "",
238
+ "type": "address"
239
+ }
240
+ ],
241
+ "name": "approvedAddresses",
242
+ "outputs": [
243
+ {
244
+ "internalType": "bool",
245
+ "name": "",
246
+ "type": "bool"
247
+ }
248
+ ],
249
+ "stateMutability": "view",
250
+ "type": "function"
251
+ },
252
+ {
253
+ "inputs": [
254
+ {
255
+ "internalType": "uint16",
256
+ "name": "_dstChainId",
257
+ "type": "uint16"
258
+ },
259
+ {
260
+ "internalType": "uint16",
261
+ "name": "_outboundProofType",
262
+ "type": "uint16"
263
+ },
264
+ {
265
+ "internalType": "address",
266
+ "name": "_userApplication",
267
+ "type": "address"
268
+ },
269
+ {
270
+ "internalType": "uint256",
271
+ "name": "_payloadSize",
272
+ "type": "uint256"
273
+ },
274
+ {
275
+ "internalType": "bytes",
276
+ "name": "_adapterParams",
277
+ "type": "bytes"
278
+ }
279
+ ],
280
+ "name": "assignJob",
281
+ "outputs": [
282
+ {
283
+ "internalType": "uint256",
284
+ "name": "fee",
285
+ "type": "uint256"
286
+ }
287
+ ],
288
+ "stateMutability": "nonpayable",
289
+ "type": "function"
290
+ },
291
+ {
292
+ "inputs": [
293
+ {
294
+ "internalType": "uint16",
295
+ "name": "_dstChainId",
296
+ "type": "uint16"
297
+ },
298
+ {
299
+ "internalType": "uint64",
300
+ "name": "_capacity",
301
+ "type": "uint64"
302
+ },
303
+ {
304
+ "internalType": "uint64",
305
+ "name": "_rate",
306
+ "type": "uint64"
307
+ }
308
+ ],
309
+ "name": "configRateLimiter",
310
+ "outputs": [],
311
+ "stateMutability": "nonpayable",
312
+ "type": "function"
313
+ },
314
+ {
315
+ "inputs": [
316
+ {
317
+ "internalType": "uint16",
318
+ "name": "",
319
+ "type": "uint16"
320
+ },
321
+ {
322
+ "internalType": "uint16",
323
+ "name": "",
324
+ "type": "uint16"
325
+ }
326
+ ],
327
+ "name": "dstConfigLookup",
328
+ "outputs": [
329
+ {
330
+ "internalType": "uint128",
331
+ "name": "dstNativeAmtCap",
332
+ "type": "uint128"
333
+ },
334
+ {
335
+ "internalType": "uint64",
336
+ "name": "baseGas",
337
+ "type": "uint64"
338
+ },
339
+ {
340
+ "internalType": "uint64",
341
+ "name": "gasPerByte",
342
+ "type": "uint64"
343
+ }
344
+ ],
345
+ "stateMutability": "view",
346
+ "type": "function"
347
+ },
348
+ {
349
+ "inputs": [
350
+ {
351
+ "internalType": "uint16",
352
+ "name": "",
353
+ "type": "uint16"
354
+ }
355
+ ],
356
+ "name": "dstFloorMarginsUSD",
357
+ "outputs": [
358
+ {
359
+ "internalType": "uint128",
360
+ "name": "",
361
+ "type": "uint128"
362
+ }
363
+ ],
364
+ "stateMutability": "view",
365
+ "type": "function"
366
+ },
367
+ {
368
+ "inputs": [
369
+ {
370
+ "internalType": "uint16",
371
+ "name": "",
372
+ "type": "uint16"
373
+ }
374
+ ],
375
+ "name": "dstMultipliers",
376
+ "outputs": [
377
+ {
378
+ "internalType": "uint128",
379
+ "name": "",
380
+ "type": "uint128"
381
+ }
382
+ ],
383
+ "stateMutability": "view",
384
+ "type": "function"
385
+ },
386
+ {
387
+ "inputs": [
388
+ {
389
+ "internalType": "uint16",
390
+ "name": "_dstChainId",
391
+ "type": "uint16"
392
+ }
393
+ ],
394
+ "name": "dstPriceLookup",
395
+ "outputs": [
396
+ {
397
+ "components": [
398
+ {
399
+ "internalType": "uint128",
400
+ "name": "dstPriceRatio",
401
+ "type": "uint128"
402
+ },
403
+ {
404
+ "internalType": "uint128",
405
+ "name": "dstGasPriceInWei",
406
+ "type": "uint128"
407
+ }
408
+ ],
409
+ "internalType": "struct RelayerV2.DstPrice",
410
+ "name": "",
411
+ "type": "tuple"
412
+ }
413
+ ],
414
+ "stateMutability": "view",
415
+ "type": "function"
416
+ },
417
+ {
418
+ "inputs": [
419
+ {
420
+ "internalType": "uint16",
421
+ "name": "",
422
+ "type": "uint16"
423
+ }
424
+ ],
425
+ "name": "dstPriceLookupOld",
426
+ "outputs": [
427
+ {
428
+ "internalType": "uint128",
429
+ "name": "dstPriceRatio",
430
+ "type": "uint128"
431
+ },
432
+ {
433
+ "internalType": "uint128",
434
+ "name": "dstGasPriceInWei",
435
+ "type": "uint128"
436
+ }
437
+ ],
438
+ "stateMutability": "view",
439
+ "type": "function"
440
+ },
441
+ {
442
+ "inputs": [],
443
+ "name": "fpBytes",
444
+ "outputs": [
445
+ {
446
+ "internalType": "uint16",
447
+ "name": "",
448
+ "type": "uint16"
449
+ }
450
+ ],
451
+ "stateMutability": "view",
452
+ "type": "function"
453
+ },
454
+ {
455
+ "inputs": [
456
+ {
457
+ "internalType": "uint16",
458
+ "name": "_dstChainId",
459
+ "type": "uint16"
460
+ },
461
+ {
462
+ "internalType": "uint16",
463
+ "name": "_outboundProofType",
464
+ "type": "uint16"
465
+ },
466
+ {
467
+ "internalType": "address",
468
+ "name": "_userApplication",
469
+ "type": "address"
470
+ },
471
+ {
472
+ "internalType": "uint256",
473
+ "name": "_payloadSize",
474
+ "type": "uint256"
475
+ },
476
+ {
477
+ "internalType": "bytes",
478
+ "name": "_adapterParams",
479
+ "type": "bytes"
480
+ }
481
+ ],
482
+ "name": "getFee",
483
+ "outputs": [
484
+ {
485
+ "internalType": "uint256",
486
+ "name": "",
487
+ "type": "uint256"
488
+ }
489
+ ],
490
+ "stateMutability": "view",
491
+ "type": "function"
492
+ },
493
+ {
494
+ "inputs": [
495
+ {
496
+ "internalType": "address",
497
+ "name": "_uln",
498
+ "type": "address"
499
+ },
500
+ {
501
+ "internalType": "address",
502
+ "name": "_priceFeed",
503
+ "type": "address"
504
+ },
505
+ {
506
+ "internalType": "address",
507
+ "name": "_stargateBridgeAddr",
508
+ "type": "address"
509
+ },
510
+ {
511
+ "internalType": "address",
512
+ "name": "_stargateComposer",
513
+ "type": "address"
514
+ },
515
+ {
516
+ "internalType": "uint256",
517
+ "name": "_nativeDecimalsRate",
518
+ "type": "uint256"
519
+ }
520
+ ],
521
+ "name": "initialize",
522
+ "outputs": [],
523
+ "stateMutability": "nonpayable",
524
+ "type": "function"
525
+ },
526
+ {
527
+ "inputs": [
528
+ {
529
+ "internalType": "address",
530
+ "name": "_relayerAddress",
531
+ "type": "address"
532
+ }
533
+ ],
534
+ "name": "isApproved",
535
+ "outputs": [
536
+ {
537
+ "internalType": "bool",
538
+ "name": "",
539
+ "type": "bool"
540
+ }
541
+ ],
542
+ "stateMutability": "view",
543
+ "type": "function"
544
+ },
545
+ {
546
+ "inputs": [],
547
+ "name": "limiter",
548
+ "outputs": [
549
+ {
550
+ "internalType": "uint64",
551
+ "name": "capacity",
552
+ "type": "uint64"
553
+ },
554
+ {
555
+ "internalType": "uint64",
556
+ "name": "tokens",
557
+ "type": "uint64"
558
+ },
559
+ {
560
+ "internalType": "uint64",
561
+ "name": "rate",
562
+ "type": "uint64"
563
+ },
564
+ {
565
+ "internalType": "uint64",
566
+ "name": "lastRefillTime",
567
+ "type": "uint64"
568
+ }
569
+ ],
570
+ "stateMutability": "view",
571
+ "type": "function"
572
+ },
573
+ {
574
+ "inputs": [
575
+ {
576
+ "internalType": "address",
577
+ "name": "",
578
+ "type": "address"
579
+ }
580
+ ],
581
+ "name": "limiterWhitelist",
582
+ "outputs": [
583
+ {
584
+ "internalType": "bool",
585
+ "name": "",
586
+ "type": "bool"
587
+ }
588
+ ],
589
+ "stateMutability": "view",
590
+ "type": "function"
591
+ },
592
+ {
593
+ "inputs": [
594
+ {
595
+ "internalType": "uint16",
596
+ "name": "",
597
+ "type": "uint16"
598
+ }
599
+ ],
600
+ "name": "limiters",
601
+ "outputs": [
602
+ {
603
+ "internalType": "uint64",
604
+ "name": "capacity",
605
+ "type": "uint64"
606
+ },
607
+ {
608
+ "internalType": "uint64",
609
+ "name": "tokens",
610
+ "type": "uint64"
611
+ },
612
+ {
613
+ "internalType": "uint64",
614
+ "name": "rate",
615
+ "type": "uint64"
616
+ },
617
+ {
618
+ "internalType": "uint64",
619
+ "name": "lastRefillTime",
620
+ "type": "uint64"
621
+ }
622
+ ],
623
+ "stateMutability": "view",
624
+ "type": "function"
625
+ },
626
+ {
627
+ "inputs": [],
628
+ "name": "mptOverhead",
629
+ "outputs": [
630
+ {
631
+ "internalType": "uint16",
632
+ "name": "",
633
+ "type": "uint16"
634
+ }
635
+ ],
636
+ "stateMutability": "view",
637
+ "type": "function"
638
+ },
639
+ {
640
+ "inputs": [],
641
+ "name": "multiplierBps",
642
+ "outputs": [
643
+ {
644
+ "internalType": "uint128",
645
+ "name": "",
646
+ "type": "uint128"
647
+ }
648
+ ],
649
+ "stateMutability": "view",
650
+ "type": "function"
651
+ },
652
+ {
653
+ "inputs": [],
654
+ "name": "nativeDecimalsRate",
655
+ "outputs": [
656
+ {
657
+ "internalType": "uint256",
658
+ "name": "",
659
+ "type": "uint256"
660
+ }
661
+ ],
662
+ "stateMutability": "view",
663
+ "type": "function"
664
+ },
665
+ {
666
+ "inputs": [
667
+ {
668
+ "internalType": "address",
669
+ "name": "_stargateBridgeAddr",
670
+ "type": "address"
671
+ },
672
+ {
673
+ "internalType": "address",
674
+ "name": "_stargateComposer",
675
+ "type": "address"
676
+ },
677
+ {
678
+ "internalType": "uint256",
679
+ "name": "_nativeDecimalsRate",
680
+ "type": "uint256"
681
+ }
682
+ ],
683
+ "name": "onUpgrade",
684
+ "outputs": [],
685
+ "stateMutability": "nonpayable",
686
+ "type": "function"
687
+ },
688
+ {
689
+ "inputs": [],
690
+ "name": "owner",
691
+ "outputs": [
692
+ {
693
+ "internalType": "address",
694
+ "name": "",
695
+ "type": "address"
696
+ }
697
+ ],
698
+ "stateMutability": "view",
699
+ "type": "function"
700
+ },
701
+ {
702
+ "inputs": [],
703
+ "name": "paused",
704
+ "outputs": [
705
+ {
706
+ "internalType": "bool",
707
+ "name": "",
708
+ "type": "bool"
709
+ }
710
+ ],
711
+ "stateMutability": "view",
712
+ "type": "function"
713
+ },
714
+ {
715
+ "inputs": [
716
+ {
717
+ "internalType": "address",
718
+ "name": "",
719
+ "type": "address"
720
+ }
721
+ ],
722
+ "name": "priceConfigUpdaters",
723
+ "outputs": [
724
+ {
725
+ "internalType": "bool",
726
+ "name": "",
727
+ "type": "bool"
728
+ }
729
+ ],
730
+ "stateMutability": "view",
731
+ "type": "function"
732
+ },
733
+ {
734
+ "inputs": [],
735
+ "name": "priceFeed",
736
+ "outputs": [
737
+ {
738
+ "internalType": "contract ILayerZeroPriceFeedV2",
739
+ "name": "",
740
+ "type": "address"
741
+ }
742
+ ],
743
+ "stateMutability": "view",
744
+ "type": "function"
745
+ },
746
+ {
747
+ "inputs": [],
748
+ "name": "renounceOwnership",
749
+ "outputs": [],
750
+ "stateMutability": "nonpayable",
751
+ "type": "function"
752
+ },
753
+ {
754
+ "inputs": [
755
+ {
756
+ "internalType": "address",
757
+ "name": "_relayerAddress",
758
+ "type": "address"
759
+ },
760
+ {
761
+ "internalType": "bool",
762
+ "name": "_approve",
763
+ "type": "bool"
764
+ }
765
+ ],
766
+ "name": "setApprovedAddress",
767
+ "outputs": [],
768
+ "stateMutability": "nonpayable",
769
+ "type": "function"
770
+ },
771
+ {
772
+ "inputs": [
773
+ {
774
+ "internalType": "uint16",
775
+ "name": "_chainId",
776
+ "type": "uint16"
777
+ },
778
+ {
779
+ "internalType": "uint16",
780
+ "name": "_outboundProofType",
781
+ "type": "uint16"
782
+ },
783
+ {
784
+ "internalType": "uint128",
785
+ "name": "_dstNativeAmtCap",
786
+ "type": "uint128"
787
+ },
788
+ {
789
+ "internalType": "uint64",
790
+ "name": "_baseGas",
791
+ "type": "uint64"
792
+ },
793
+ {
794
+ "internalType": "uint64",
795
+ "name": "_gasPerByte",
796
+ "type": "uint64"
797
+ }
798
+ ],
799
+ "name": "setDstConfig",
800
+ "outputs": [],
801
+ "stateMutability": "nonpayable",
802
+ "type": "function"
803
+ },
804
+ {
805
+ "inputs": [
806
+ {
807
+ "components": [
808
+ {
809
+ "internalType": "uint16",
810
+ "name": "chainId",
811
+ "type": "uint16"
812
+ },
813
+ {
814
+ "internalType": "uint128",
815
+ "name": "floorMargin",
816
+ "type": "uint128"
817
+ }
818
+ ],
819
+ "internalType": "struct RelayerV2.DstFloorMargin[]",
820
+ "name": "_margins",
821
+ "type": "tuple[]"
822
+ }
823
+ ],
824
+ "name": "setDstFloorMarginsUSD",
825
+ "outputs": [],
826
+ "stateMutability": "nonpayable",
827
+ "type": "function"
828
+ },
829
+ {
830
+ "inputs": [
831
+ {
832
+ "internalType": "uint16",
833
+ "name": "_chainId",
834
+ "type": "uint16"
835
+ },
836
+ {
837
+ "internalType": "uint128",
838
+ "name": "_dstPriceRatio",
839
+ "type": "uint128"
840
+ },
841
+ {
842
+ "internalType": "uint128",
843
+ "name": "_dstGasPriceInWei",
844
+ "type": "uint128"
845
+ }
846
+ ],
847
+ "name": "setDstPrice",
848
+ "outputs": [],
849
+ "stateMutability": "nonpayable",
850
+ "type": "function"
851
+ },
852
+ {
853
+ "inputs": [
854
+ {
855
+ "components": [
856
+ {
857
+ "internalType": "uint16",
858
+ "name": "chainId",
859
+ "type": "uint16"
860
+ },
861
+ {
862
+ "internalType": "uint128",
863
+ "name": "multiplier",
864
+ "type": "uint128"
865
+ }
866
+ ],
867
+ "internalType": "struct RelayerV2.DstMultiplier[]",
868
+ "name": "_multipliers",
869
+ "type": "tuple[]"
870
+ }
871
+ ],
872
+ "name": "setDstPriceMultipliers",
873
+ "outputs": [],
874
+ "stateMutability": "nonpayable",
875
+ "type": "function"
876
+ },
877
+ {
878
+ "inputs": [
879
+ {
880
+ "internalType": "address",
881
+ "name": "_addr",
882
+ "type": "address"
883
+ },
884
+ {
885
+ "internalType": "bool",
886
+ "name": "_skipRateLimits",
887
+ "type": "bool"
888
+ }
889
+ ],
890
+ "name": "setLimiterWhitelist",
891
+ "outputs": [],
892
+ "stateMutability": "nonpayable",
893
+ "type": "function"
894
+ },
895
+ {
896
+ "inputs": [
897
+ {
898
+ "internalType": "bool",
899
+ "name": "_paused",
900
+ "type": "bool"
901
+ }
902
+ ],
903
+ "name": "setPause",
904
+ "outputs": [],
905
+ "stateMutability": "nonpayable",
906
+ "type": "function"
907
+ },
908
+ {
909
+ "inputs": [
910
+ {
911
+ "internalType": "address",
912
+ "name": "_priceConfigUpdater",
913
+ "type": "address"
914
+ },
915
+ {
916
+ "internalType": "bool",
917
+ "name": "_allow",
918
+ "type": "bool"
919
+ }
920
+ ],
921
+ "name": "setPriceConfigUpdater",
922
+ "outputs": [],
923
+ "stateMutability": "nonpayable",
924
+ "type": "function"
925
+ },
926
+ {
927
+ "inputs": [
928
+ {
929
+ "internalType": "address",
930
+ "name": "_priceFeed",
931
+ "type": "address"
932
+ }
933
+ ],
934
+ "name": "setPriceFeed",
935
+ "outputs": [],
936
+ "stateMutability": "nonpayable",
937
+ "type": "function"
938
+ },
939
+ {
940
+ "inputs": [
941
+ {
942
+ "internalType": "uint128",
943
+ "name": "_multiplierBps",
944
+ "type": "uint128"
945
+ }
946
+ ],
947
+ "name": "setPriceMultiplierBps",
948
+ "outputs": [],
949
+ "stateMutability": "nonpayable",
950
+ "type": "function"
951
+ },
952
+ {
953
+ "inputs": [
954
+ {
955
+ "internalType": "address",
956
+ "name": "_stargateAddress",
957
+ "type": "address"
958
+ }
959
+ ],
960
+ "name": "setStargateAddress",
961
+ "outputs": [],
962
+ "stateMutability": "nonpayable",
963
+ "type": "function"
964
+ },
965
+ {
966
+ "inputs": [],
967
+ "name": "stargateBridgeAddr",
968
+ "outputs": [
969
+ {
970
+ "internalType": "address",
971
+ "name": "",
972
+ "type": "address"
973
+ }
974
+ ],
975
+ "stateMutability": "view",
976
+ "type": "function"
977
+ },
978
+ {
979
+ "inputs": [],
980
+ "name": "stargateBridgeAddress",
981
+ "outputs": [
982
+ {
983
+ "internalType": "address",
984
+ "name": "",
985
+ "type": "address"
986
+ }
987
+ ],
988
+ "stateMutability": "view",
989
+ "type": "function"
990
+ },
991
+ {
992
+ "inputs": [],
993
+ "name": "stargateComposer",
994
+ "outputs": [
995
+ {
996
+ "internalType": "contract IStargateComposer",
997
+ "name": "",
998
+ "type": "address"
999
+ }
1000
+ ],
1001
+ "stateMutability": "view",
1002
+ "type": "function"
1003
+ },
1004
+ {
1005
+ "inputs": [
1006
+ {
1007
+ "internalType": "address",
1008
+ "name": "newOwner",
1009
+ "type": "address"
1010
+ }
1011
+ ],
1012
+ "name": "transferOwnership",
1013
+ "outputs": [],
1014
+ "stateMutability": "nonpayable",
1015
+ "type": "function"
1016
+ },
1017
+ {
1018
+ "inputs": [],
1019
+ "name": "uln",
1020
+ "outputs": [
1021
+ {
1022
+ "internalType": "contract ILayerZeroUltraLightNodeV2",
1023
+ "name": "",
1024
+ "type": "address"
1025
+ }
1026
+ ],
1027
+ "stateMutability": "view",
1028
+ "type": "function"
1029
+ },
1030
+ {
1031
+ "inputs": [],
1032
+ "name": "validateProofBytes",
1033
+ "outputs": [
1034
+ {
1035
+ "internalType": "uint16",
1036
+ "name": "",
1037
+ "type": "uint16"
1038
+ }
1039
+ ],
1040
+ "stateMutability": "view",
1041
+ "type": "function"
1042
+ },
1043
+ {
1044
+ "inputs": [
1045
+ {
1046
+ "internalType": "uint16",
1047
+ "name": "_srcChainId",
1048
+ "type": "uint16"
1049
+ },
1050
+ {
1051
+ "internalType": "address",
1052
+ "name": "_dstAddress",
1053
+ "type": "address"
1054
+ },
1055
+ {
1056
+ "internalType": "uint256",
1057
+ "name": "_gasLimit",
1058
+ "type": "uint256"
1059
+ },
1060
+ {
1061
+ "internalType": "bytes32",
1062
+ "name": "_blockHash",
1063
+ "type": "bytes32"
1064
+ },
1065
+ {
1066
+ "internalType": "bytes32",
1067
+ "name": "_data",
1068
+ "type": "bytes32"
1069
+ },
1070
+ {
1071
+ "internalType": "bytes",
1072
+ "name": "_transactionProof",
1073
+ "type": "bytes"
1074
+ }
1075
+ ],
1076
+ "name": "validateTransactionProofV1",
1077
+ "outputs": [],
1078
+ "stateMutability": "nonpayable",
1079
+ "type": "function"
1080
+ },
1081
+ {
1082
+ "inputs": [
1083
+ {
1084
+ "internalType": "uint16",
1085
+ "name": "_srcChainId",
1086
+ "type": "uint16"
1087
+ },
1088
+ {
1089
+ "internalType": "address",
1090
+ "name": "_dstAddress",
1091
+ "type": "address"
1092
+ },
1093
+ {
1094
+ "internalType": "uint256",
1095
+ "name": "_gasLimit",
1096
+ "type": "uint256"
1097
+ },
1098
+ {
1099
+ "internalType": "bytes32",
1100
+ "name": "_blockHash",
1101
+ "type": "bytes32"
1102
+ },
1103
+ {
1104
+ "internalType": "bytes32",
1105
+ "name": "_data",
1106
+ "type": "bytes32"
1107
+ },
1108
+ {
1109
+ "internalType": "bytes",
1110
+ "name": "_transactionProof",
1111
+ "type": "bytes"
1112
+ },
1113
+ {
1114
+ "internalType": "address payable",
1115
+ "name": "_to",
1116
+ "type": "address"
1117
+ }
1118
+ ],
1119
+ "name": "validateTransactionProofV2",
1120
+ "outputs": [],
1121
+ "stateMutability": "payable",
1122
+ "type": "function"
1123
+ },
1124
+ {
1125
+ "inputs": [
1126
+ {
1127
+ "internalType": "address payable",
1128
+ "name": "_to",
1129
+ "type": "address"
1130
+ },
1131
+ {
1132
+ "internalType": "uint256",
1133
+ "name": "_amount",
1134
+ "type": "uint256"
1135
+ }
1136
+ ],
1137
+ "name": "withdrawFee",
1138
+ "outputs": [],
1139
+ "stateMutability": "nonpayable",
1140
+ "type": "function"
1141
+ },
1142
+ {
1143
+ "inputs": [
1144
+ {
1145
+ "internalType": "address",
1146
+ "name": "_token",
1147
+ "type": "address"
1148
+ },
1149
+ {
1150
+ "internalType": "address",
1151
+ "name": "_to",
1152
+ "type": "address"
1153
+ },
1154
+ {
1155
+ "internalType": "uint256",
1156
+ "name": "_amount",
1157
+ "type": "uint256"
1158
+ }
1159
+ ],
1160
+ "name": "withdrawToken",
1161
+ "outputs": [],
1162
+ "stateMutability": "nonpayable",
1163
+ "type": "function"
1164
+ }
1165
+ ],
1166
+ "bytecode": "0x60806040523480156200001157600080fd5b50d380156200001f57600080fd5b50d280156200002d57600080fd5b5060016000556143da80620000436000396000f3fe6080604052600436106102fd5760003560e01c806374b87f671161018f578063ac353e04116100e1578063d5f8b0141161008a578063f2fde38b11610064578063f2fde38b14610c7a578063f7013ef614610cb4578063fd9be52214610cee576102fd565b8063d5f8b01414610bcc578063efbf196a14610c06578063f136a87414610c40576102fd565b8063bf4dab51116100bb578063bf4dab5114610b1e578063c03f152914610b58578063c3b04e7f14610b92576102fd565b8063ac353e0414610a7b578063b8f8bad414610aaa578063bedb86fb14610ae4576102fd565b80638644c57811610143578063993d5af61161011d578063993d5af6146109d85780639e8c717814610a12578063ac0bfd7314610a41576102fd565b80638644c578146109325780638da5cb5b1461097a57806398dabd50146109a9576102fd565b8063801db1fe11610174578063801db1fe1461088f57806381ba209a146108c95780638576db67146108f8576102fd565b806374b87f6714610819578063765a8a5414610848576102fd565b806355b352491161025357806369cf4e3a116101fc578063715018a6116101d6578063715018a614610781578063724e78da146107b0578063741bef1a146107ea576102fd565b806369cf4e3a146106cc5780636c473aff14610708578063704ed15214610737576102fd565b80635c975abb1161022d5780635c975abb146106275780636348d26914610663578063673448dd14610692576102fd565b806355b3524914610579578063575765e2146105b35780635886ea65146105ed576102fd565b80633352b608116102b557806343b9a0c41161028f57806343b9a0c4146104bc5780634c0fc8d0146104f85780634eeba25014610532576102fd565b80633352b608146104175780633bfb4047146104535780633f10348714610482576102fd565b80630508941e116102e65780630508941e1461037857806323161ff81461038b578063252f7b01146103dd576102fd565b806301e336671461030257806303343f541461033e575b600080fd5b34801561030e57600080fd5b50d3801561031b57600080fd5b50d2801561032857600080fd5b5061033c61033736600461377c565b610d28565b005b34801561034a57600080fd5b50d3801561035757600080fd5b50d2801561036457600080fd5b5061033c6103733660046136a1565b610ef4565b61033c6103863660046139b6565b610f6a565b34801561039757600080fd5b50d380156103a457600080fd5b50d280156103b157600080fd5b506103c56103c0366004613aa3565b61113c565b6040516103d4939291906140cc565b60405180910390f35b3480156103e957600080fd5b50d380156103f657600080fd5b50d2801561040357600080fd5b5061033c61041236600461392b565b6111aa565b34801561042357600080fd5b50d3801561043057600080fd5b50d2801561043d57600080fd5b506104466112d8565b6040516103d49190613c75565b34801561045f57600080fd5b50d3801561046c57600080fd5b50d2801561047957600080fd5b506104466112e7565b34801561048e57600080fd5b50d3801561049b57600080fd5b50d280156104a857600080fd5b5061033c6104b7366004613b5d565b6112f6565b3480156104c857600080fd5b50d380156104d557600080fd5b50d280156104e257600080fd5b506104eb611481565b6040516103d49190614218565b34801561050457600080fd5b50d3801561051157600080fd5b50d2801561051e57600080fd5b5061033c61052d3660046137c9565b611487565b34801561053e57600080fd5b50d3801561054b57600080fd5b50d2801561055857600080fd5b5061056c610567366004613911565b6114ee565b6040516103d4919061408c565b34801561058557600080fd5b50d3801561059257600080fd5b50d2801561059f57600080fd5b5061056c6105ae366004613911565b611512565b3480156105bf57600080fd5b50d380156105cc57600080fd5b50d280156105d957600080fd5b5061033c6105e83660046137c9565b611536565b3480156105f957600080fd5b50d3801561060657600080fd5b50d2801561061357600080fd5b506104eb610622366004613ad5565b61160c565b34801561063357600080fd5b50d3801561064057600080fd5b50d2801561064d57600080fd5b50610656611832565b6040516103d49190613cbd565b34801561066f57600080fd5b50d3801561067c57600080fd5b50d2801561068957600080fd5b5061044661183b565b34801561069e57600080fd5b50d380156106ab57600080fd5b50d280156106b857600080fd5b506106566106c73660046136a1565b61184a565b3480156106d857600080fd5b50d380156106e557600080fd5b50d280156106f257600080fd5b506106fb61186c565b6040516103d49190614100565b34801561071457600080fd5b50d3801561072157600080fd5b50d2801561072e57600080fd5b5061044661188c565b34801561074357600080fd5b50d3801561075057600080fd5b50d2801561075d57600080fd5b5061077161076c366004613911565b61189b565b6040516103d49493929190614221565b34801561078d57600080fd5b50d3801561079a57600080fd5b50d280156107a757600080fd5b5061033c6118fd565b3480156107bc57600080fd5b50d380156107c957600080fd5b50d280156107d657600080fd5b5061033c6107e53660046136a1565b6119d3565b3480156107f657600080fd5b50d3801561080357600080fd5b50d2801561081057600080fd5b50610446611a4e565b34801561082557600080fd5b50d3801561083257600080fd5b50d2801561083f57600080fd5b50610771611a62565b34801561085457600080fd5b50d3801561086157600080fd5b50d2801561086e57600080fd5b5061088261087d366004613911565b611ab8565b6040516103d49190614060565b34801561089b57600080fd5b50d380156108a857600080fd5b50d280156108b557600080fd5b5061033c6108c43660046137c9565b611b9d565b3480156108d557600080fd5b50d380156108e257600080fd5b50d280156108ef57600080fd5b506106fb611c67565b34801561090457600080fd5b50d3801561091157600080fd5b50d2801561091e57600080fd5b5061065661092d3660046136a1565b611c89565b34801561093e57600080fd5b50d3801561094b57600080fd5b50d2801561095857600080fd5b5061096c610967366004613911565b611c9e565b6040516103d49291906140a9565b34801561098657600080fd5b50d3801561099357600080fd5b50d280156109a057600080fd5b50610446611cda565b3480156109b557600080fd5b50d380156109c257600080fd5b50d280156109cf57600080fd5b506106fb611ce9565b3480156109e457600080fd5b50d380156109f157600080fd5b50d280156109fe57600080fd5b50610656610a0d3660046136a1565b611d07565b348015610a1e57600080fd5b50d38015610a2b57600080fd5b50d28015610a3857600080fd5b506104eb611d1c565b348015610a4d57600080fd5b50d38015610a5a57600080fd5b50d28015610a6757600080fd5b5061033c610a76366004613bc9565b611d22565b348015610a8757600080fd5b50d38015610a9457600080fd5b50d28015610aa157600080fd5b5061056c611dfe565b348015610ab657600080fd5b50d38015610ac357600080fd5b50d28015610ad057600080fd5b5061033c610adf366004613a5b565b611e16565b348015610af057600080fd5b50d38015610afd57600080fd5b50d28015610b0a57600080fd5b5061033c610b1936600461384a565b611e52565b348015610b2a57600080fd5b50d38015610b3757600080fd5b50d28015610b4457600080fd5b5061033c610b5336600461380a565b611ed9565b348015610b6457600080fd5b50d38015610b7157600080fd5b50d28015610b7e57600080fd5b506104eb610b8d366004613ad5565b611fdd565b348015610b9e57600080fd5b50d38015610bab57600080fd5b50d28015610bb857600080fd5b5061033c610bc73660046138f5565b61204f565b348015610bd857600080fd5b50d38015610be557600080fd5b50d28015610bf257600080fd5b5061033c610c0136600461380a565b6120ce565b348015610c1257600080fd5b50d38015610c1f57600080fd5b50d28015610c2c57600080fd5b5061033c610c3b36600461377c565b6121d2565b348015610c4c57600080fd5b50d38015610c5957600080fd5b50d28015610c6657600080fd5b50610656610c753660046136a1565b61227e565b348015610c8657600080fd5b50d38015610c9357600080fd5b50d28015610ca057600080fd5b5061033c610caf3660046136a1565b612293565b348015610cc057600080fd5b50d38015610ccd57600080fd5b50d28015610cda57600080fd5b5061033c610ce9366004613701565b6123c0565b348015610cfa57600080fd5b50d38015610d0757600080fd5b50d28015610d1457600080fd5b5061033c610d233660046136cd565b612666565b33610d31611cda565b6001600160a01b031614610d6d57610d483361184a565b610d6d5760405162461bcd60e51b8152600401610d6490613cc8565b60405180910390fd5b6001600160a01b038316610e1f574780821115610d9c5760405162461bcd60e51b8152600401610d6490613dff565b6000836001600160a01b031683604051610db590613c72565b60006040518083038185875af1925050503d8060008114610df2576040519150601f19603f3d011682016040523d82523d6000602084013e610df7565b606091505b5050905080610e185760405162461bcd60e51b8152600401610d6490613d91565b5050610eef565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526000906001600160a01b038516906370a0823190610e67903090600401613c75565b60206040518083038186803b158015610e7f57600080fd5b505afa158015610e93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb79190613c06565b905080821115610ed95760405162461bcd60e51b8152600401610d6490613e93565b610eed6001600160a01b03851684846127d7565b505b505050565b33610efd611cda565b6001600160a01b031614610f3057610f143361184a565b610f305760405162461bcd60e51b8152600401610d6490613cc8565b606780547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b33610f73611cda565b6001600160a01b031614610fa657610f8a3361184a565b610fa65760405162461bcd60e51b8152600401610d6490613cc8565b60026000541415610ffe576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026000819055506000816001600160a01b03166127103460405161102290613c72565b600060405180830381858888f193505050503d8060008114611060576040519150601f19603f3d011682016040523d82523d6000602084013e611065565b606091505b50509050806110a55760405134906001600160a01b038416907f2c7a964ca3de5ec1d42d9822f9bbd0eb142a59cc9f855e9d93813b773192c7a390600090a35b6066546040517f987fa2d50000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063987fa2d5906110fa908c908c908c908c908c908c908c9060040161410f565b600060405180830381600087803b15801561111457600080fd5b505af1158015611128573d6000803e3d6000fd5b505060016000555050505050505050505050565b60696020908152600092835260408084209091529082529020546fffffffffffffffffffffffffffffffff81169067ffffffffffffffff7001000000000000000000000000000000008204811691780100000000000000000000000000000000000000000000000090041683565b336111b3611cda565b6001600160a01b0316146111e6576111ca3361184a565b6111e65760405162461bcd60e51b8152600401610d6490613cc8565b6002600054141561123e576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026000556066546040517f987fa2d50000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063987fa2d590611298908a908a908a908a908a908a908a9060040161410f565b600060405180830381600087803b1580156112b257600080fd5b505af11580156112c6573d6000803e3d6000fd5b50506001600055505050505050505050565b6070546001600160a01b031681565b6071546001600160a01b031681565b336112ff611cda565b6001600160a01b031614611332576113163361184a565b6113325760405162461bcd60e51b8152600401610d6490613cc8565b604080516060810182526fffffffffffffffffffffffffffffffff858116825267ffffffffffffffff858116602080850191825286831685870190815261ffff8c8116600090815260698452888120918d16815292529086902094518554925191517fffffffffffffffffffffffffffffffff000000000000000000000000000000009093169416939093177fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff16700100000000000000000000000000000000938316939093029290921777ffffffffffffffffffffffffffffffffffffffffffffffff1678010000000000000000000000000000000000000000000000009290911691909102179055517fd053e021dda81c7c2794ff89e320caea5379962d49ed383a3bd0a54ffc4b932f90611472908790879087908790879061418c565b60405180910390a15050505050565b61271081565b33611490611cda565b6001600160a01b0316146114c3576114a73361184a565b6114c35760405162461bcd60e51b8152600401610d6490613cc8565b6001600160a01b03919091166000908152607460205260409020805460ff1916911515919091179055565b606d602052600090815260409020546fffffffffffffffffffffffffffffffff1681565b606e602052600090815260409020546fffffffffffffffffffffffffffffffff1681565b61153e612857565b6001600160a01b031661154f611cda565b6001600160a01b0316146115aa576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0382166000908152606a602052604090819020805460ff1916831515179055517fb10786d0bfa68fb1aa29552d9203e5f545f7c073ff0784da1de1d800986f1023906116009084908490613ca2565b60405180910390a15050565b60006127108761ffff16106116755761ffff871660009081526075602090815260408083206001600160a01b038916845260749092529091205460ff161580156116605750805467ffffffffffffffff1615155b15611673576116718161271061285b565b505b505b6066546001600160a01b0316331461169f5760405162461bcd60e51b8152600401610d6490613ef0565b6127108411156116c15760405162461bcd60e51b8152600401610d6490613fbb565b6071546001600160a01b03868116911614156117ac5760008461022014806116ea575084610140145b806116f6575084610120145b8061170157508460a0145b9050806117aa57607060009054906101000a90046001600160a01b03166001600160a01b0316634b60b4256040518163ffffffff1660e01b815260040160206040518083038186803b15801561175657600080fd5b505afa15801561176a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061178e9190613866565b6117aa5760405162461bcd60e51b8152600401610d6490613f27565b505b6117ef8787878787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061291092505050565b90507fdf21c415b78ed2552cc9971249e32a053abce6087a0ae0fbf3f78db5174a3493816040516118209190614218565b60405180910390a19695505050505050565b606b5460ff1681565b6067546001600160a01b031681565b6001600160a01b0381166000908152606a602052604090205460ff165b919050565b606c547201000000000000000000000000000000000000900461ffff1681565b6066546001600160a01b031681565b60756020526000908152604090205467ffffffffffffffff808216916801000000000000000081048216917001000000000000000000000000000000008204811691780100000000000000000000000000000000000000000000000090041684565b611905612857565b6001600160a01b0316611916611cda565b6001600160a01b031614611971576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6034546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603480547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b336119dc611cda565b6001600160a01b031614611a0f576119f33361184a565b611a0f5760405162461bcd60e51b8152600401610d6490613cc8565b606b80546001600160a01b03909216610100027fffffffffffffffffffffff0000000000000000000000000000000000000000ff909216919091179055565b606b5461010090046001600160a01b031681565b60735467ffffffffffffffff808216916801000000000000000081048216917001000000000000000000000000000000008204811691780100000000000000000000000000000000000000000000000090041684565b611ac06135ee565b606b546040517fda26663a00000000000000000000000000000000000000000000000000000000815260009161010090046001600160a01b03169063da26663a90611b0f908690600401614100565b60606040518083038186803b158015611b2757600080fd5b505afa158015611b3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5f9190613882565b6040805180820190915281516fffffffffffffffffffffffffffffffff16815260209182015167ffffffffffffffff16918101919091529392505050565b611ba5612857565b6001600160a01b0316611bb6611cda565b6001600160a01b031614611c11576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0382166000908152606f602052604090819020805460ff1916831515179055517fde6b048d6c4e63d85fde37ccbe03f4380c6d12cb2a1e9ce9268bbf47a1ef6878906116009084908490613ca2565b606c5474010000000000000000000000000000000000000000900461ffff1681565b606f6020526000908152604090205460ff1681565b6068602052600090815260409020546fffffffffffffffffffffffffffffffff8082169170010000000000000000000000000000000090041682565b6034546001600160a01b031690565b606c54700100000000000000000000000000000000900461ffff1681565b60746020526000908152604090205460ff1681565b60725481565b611d2a612857565b6001600160a01b0316611d3b611cda565b6001600160a01b031614611d96576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61ffff83166000908152607560205260409020611db38184612c26565b611dbd8183612ccc565b7fef8c12209e343995996ccec80a634ec26a6a9def842e54066ef89fef38528038848484604051611df0939291906141f2565b60405180910390a150505050565b606c546fffffffffffffffffffffffffffffffff1681565b33611e1f611cda565b6001600160a01b031614610eef57611e363361184a565b610eef5760405162461bcd60e51b8152600401610d6490613cc8565b611e5a612857565b6001600160a01b0316611e6b611cda565b6001600160a01b031614611ec6576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b606b805460ff1916911515919091179055565b33611ee2611cda565b6001600160a01b031614158015611f095750336000908152606a602052604090205460ff16155b15611f3d57336000908152606f602052604090205460ff16611f3d5760405162461bcd60e51b8152600401610d6490613e5c565b60005b81811015610eef5736838383818110611f5557fe5b9050604002019050806020016020810190611f7091906138f5565b606d6000611f816020850185613911565b61ffff168152602081019190915260400160002080547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff9290921691909117905550600101611f40565b60006127108411156120015760405162461bcd60e51b8152600401610d6490613cff565b6120448787878787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061291092505050565b979650505050505050565b33612058611cda565b6001600160a01b03161461208b5761206f3361184a565b61208b5760405162461bcd60e51b8152600401610d6490613cc8565b606c80547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff92909216919091179055565b336120d7611cda565b6001600160a01b0316141580156120fe5750336000908152606a602052604090205460ff16155b1561213257336000908152606f602052604090205460ff166121325760405162461bcd60e51b8152600401610d6490613e5c565b60005b81811015610eef573683838381811061214a57fe5b905060400201905080602001602081019061216591906138f5565b606e60006121766020850185613911565b61ffff168152602081019190915260400160002080547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff9290921691909117905550600101612135565b60006121dc612d21565b90506001600160a01b03811661221b576001600160a01b037fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355612230565b336001600160a01b0382161461223057600080fd5b50607180546001600160a01b039485167fffffffffffffffffffffffff0000000000000000000000000000000000000000918216179091556070805493909416921691909117909155607255565b606a6020526000908152604090205460ff1681565b61229b612857565b6001600160a01b03166122ac611cda565b6001600160a01b031614612307576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b03811661234c5760405162461bcd60e51b81526004018080602001828103825260268152602001806142b36026913960400191505060405180910390fd5b6034546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603480547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b60006123ca612d21565b90506001600160a01b038116612409576001600160a01b037fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035561241e565b336001600160a01b0382161461241e57600080fd5b600154610100900460ff16806124375750612437612d46565b80612445575060015460ff16155b6124805760405162461bcd60e51b815260040180806020018281038252602e8152602001806142ff602e913960400191505060405180910390fd5b600154610100900460ff161580156124aa576001805460ff1961ff00199091166101001716811790555b6124b2612d57565b606680547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0389161790556124f0306001611536565b606c8054606b80547fffffffffffffffffffffff0000000000000000000000000000000000000000ff166101006001600160a01b038b81169190910291909117909155612ee07fffffffffffffffffffffffffffffffff00000000000000000000000000000000909216919091177fffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffff1670a400000000000000000000000000000000177fffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffff1672a0000000000000000000000000000000000000177fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff167501f4000000000000000000000000000000000000000017909155607180547fffffffffffffffffffffffff000000000000000000000000000000000000000090811688841617909155607080549091169186169190911790556072839055801561265d576001805461ff00191690555b50505050505050565b3361266f611cda565b6001600160a01b0316146126a2576126863361184a565b6126a25760405162461bcd60e51b8152600401610d6490613cc8565b6066546040517f69412bfa0000000000000000000000000000000000000000000000000000000081526000916001600160a01b0316906369412bfa906126ec903090600401613c75565b60206040518083038186803b15801561270457600080fd5b505afa158015612718573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061273c9190613c06565b90508082111561275e5760405162461bcd60e51b8152600401610d6490613e93565b6066546040517f07b18bde0000000000000000000000000000000000000000000000000000000081526001600160a01b03909116906307b18bde906127a99086908690600401613c89565b600060405180830381600087803b1580156127c357600080fd5b505af115801561265d573d6000803e3d6000fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052610eef908490612e08565b3390565b6000612868836000612eb9565b825467ffffffffffffffff6801000000000000000090910481169083168110156128c35760405162461bcd60e51b815260040180806020018281038252602d81526020018061434e602d913960400191505060405180910390fd5b835467ffffffffffffffff9184900391821668010000000000000000027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff90911617845590505b92915050565b606b5460009060ff16156129365760405162461bcd60e51b8152600401610d6490613f84565b815160221480612947575060428251115b6129635760405162461bcd60e51b8152600401610d6490613d34565b600282015160228301518061298a5760405162461bcd60e51b8152600401610d6490613ff2565b8161ffff16600114806129a157508161ffff166002145b6129bd5760405162461bcd60e51b8152600401610d6490613dc8565b61ffff88811660009081526069602090815260408083208b851684529091528120918416600214612a0857606c54700100000000000000000000000000000000900461ffff16612a2e565b606c54612a2e90700100000000000000000000000000000000900461ffff16602061300a565b905060008961ffff16600214612a6d57606c54612a6890899074010000000000000000000000000000000000000000900461ffff1661300a565b612a95565b606c54612a959089907201000000000000000000000000000000000000900461ffff1661300a565b606b549091508b9060009081908190819061010090046001600160a01b03166388a4124c86612ac48a8a61300a565b8b54612aee90700100000000000000000000000000000000900467ffffffffffffffff168e61300a565b6040518463ffffffff1660e01b8152600401612b0c939291906141d6565b60806040518083038186803b158015612b2457600080fd5b505afa158015612b38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b5c9190613c1e565b935093509350935060008a61ffff1660021415612bac575060428c015188546fffffffffffffffffffffffffffffffff16811115612bac5760405162461bcd60e51b8152600401610d6490614029565b60008115612bfa57606c54612bf79061271090612beb906fffffffffffffffffffffffffffffffff90811690612bf19089811690849089908d1661306b565b906130c4565b9061306b565b90505b612c0f81612c0989898761312b565b9061300a565b9c5050505050505050505050505095945050505050565b81547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff9182169081177fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff1668010000000000000000919091021777ffffffffffffffffffffffffffffffffffffffffffffffff167801000000000000000000000000000000000000000000000000429290921691909102179055565b612cd7826000612eb9565b815467ffffffffffffffff909116700100000000000000000000000000000000027fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff909116179055565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6000612d5130613215565b15905090565b600154610100900460ff1680612d705750612d70612d46565b80612d7e575060015460ff16155b612db95760405162461bcd60e51b815260040180806020018281038252602e8152602001806142ff602e913960400191505060405180910390fd5b600154610100900460ff16158015612de3576001805460ff1961ff00199091166101001716811790555b612deb61321b565b612df36132ba565b8015612e05576001805461ff00191690555b50565b6000612e5d826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166133ca9092919063ffffffff16565b805190915015610eef57808060200190516020811015612e7c57600080fd5b5051610eef5760405162461bcd60e51b815260040180806020018281038252602a81526020018061437b602a913960400191505060405180910390fd5b815467ffffffffffffffff808316914291780100000000000000000000000000000000000000000000000090910481169082161115612f3d578354700100000000000000000000000000000000810467ffffffffffffffff908116780100000000000000000000000000000000000000000000000090920481168303160291909101905b8115612fbd57835467ffffffffffffffff68010000000000000000820481169390930192168211612f6e5781612f7b565b835467ffffffffffffffff165b845467ffffffffffffffff9190911668010000000000000000027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff9091161784555b835467ffffffffffffffff90911678010000000000000000000000000000000000000000000000000277ffffffffffffffffffffffffffffffffffffffffffffffff909116179092555050565b600082820183811015613064576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60008261307a5750600061290a565b8282028284828161308757fe5b04146130645760405162461bcd60e51b815260040180806020018281038252602181526020018061432d6021913960400191505060405180910390fd5b600080821161311a576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161312357fe5b049392505050565b61ffff83166000908152606d60205260408120546fffffffffffffffffffffffffffffffff168061316d5750606c546fffffffffffffffffffffffffffffffff165b6000613191612710612beb876fffffffffffffffffffffffffffffffff861661306b565b90506fffffffffffffffffffffffffffffffff84166131b35791506130649050565b60725461ffff87166000908152606e602052604081205490916131fc916131f5916fffffffffffffffffffffffffffffffff808a1692612beb9291169061306b565b879061300a565b905081811161320b5781612044565b9695505050505050565b3b151590565b600154610100900460ff16806132345750613234612d46565b80613242575060015460ff16155b61327d5760405162461bcd60e51b815260040180806020018281038252602e8152602001806142ff602e913960400191505060405180910390fd5b600154610100900460ff16158015612df3576001805460ff1961ff00199091166101001716811790558015612e05576001805461ff001916905550565b600154610100900460ff16806132d357506132d3612d46565b806132e1575060015460ff16155b61331c5760405162461bcd60e51b815260040180806020018281038252602e8152602001806142ff602e913960400191505060405180910390fd5b600154610100900460ff16158015613346576001805460ff1961ff00199091166101001716811790555b6000613350612857565b603480547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015612e05576001805461ff001916905550565b60606133d984846000856133e1565b949350505050565b6060824710156134225760405162461bcd60e51b81526004018080602001828103825260268152602001806142d96026913960400191505060405180910390fd5b61342b85613215565b61347c576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600080866001600160a01b031685876040518082805190602001908083835b602083106134d857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161349b565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d806000811461353a576040519150601f19603f3d011682016040523d82523d6000602084013e61353f565b606091505b509150915061204482828660608315613559575081613064565b8251156135695782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156135b357818101518382015260200161359b565b50505050905090810190601f1680156135e05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b604080518082019091526000808252602082015290565b60008083601f840112613616578182fd5b50813567ffffffffffffffff81111561362d578182fd5b60208301915083602060408302850101111561364857600080fd5b9250929050565b60008083601f840112613660578182fd5b50813567ffffffffffffffff811115613677578182fd5b60208301915083602082850101111561364857600080fd5b803561ffff8116811461186757600080fd5b6000602082840312156136b2578081fd5b81356136bd8161424d565b6001600160a01b03169392505050565b600080604083850312156136df578081fd5b82356136ea8161424d565b6001600160a01b0316946020939093013593505050565b600080600080600060a08688031215613718578081fd5b85356137238161424d565b6001600160a01b03908116955060208701359061373f8261424d565b90811694506040870135906137538261424d565b90811693506060870135906137678261424d565b95989497509295929094169350506080013590565b600080600060608486031215613790578283fd5b833561379b8161424d565b6001600160a01b0390811693506020850135906137b78261424d565b93969316945050506040919091013590565b600080604083850312156137db578182fd5b82356137e68161424d565b6001600160a01b0316915060208301356137ff81614270565b809150509250929050565b6000806020838503121561381c578182fd5b823567ffffffffffffffff811115613832578283fd5b61383e85828601613605565b90969095509350505050565b60006020828403121561385b578081fd5b813561306481614270565b600060208284031215613877578081fd5b815161306481614270565b600060608284031215613893578081fd5b6040516060810181811067ffffffffffffffff821117156138b057fe5b60405282516138be8161427e565b815260208301516138ce8161429c565b6020820152604083015163ffffffff811681146138e9578283fd5b60408201529392505050565b600060208284031215613906578081fd5b81356130648161427e565b600060208284031215613922578081fd5b6130648261368f565b600080600080600080600060c0888a031215613945578485fd5b61394e8861368f565b9650602088013561395e8161424d565b6001600160a01b0316955060408801359450606088013593506080880135925060a088013567ffffffffffffffff811115613997578283fd5b6139a38a828b0161364f565b989b979a50959850939692959293505050565b60008060008060008060008060e0898b0312156139d1578182fd5b6139da8961368f565b975060208901356139ea8161424d565b6001600160a01b03908116975060408a0135965060608a0135955060808a0135945060a08a01359067ffffffffffffffff821115613a26578384fd5b613a328c838d0161364f565b909550935060c08b01359150613a478261424d565b808216925050509295985092959890939650565b600080600060608486031215613a6f578081fd5b613a788461368f565b92506020840135613a888161427e565b91506040840135613a988161427e565b809150509250925092565b60008060408385031215613ab5578182fd5b613abe8361368f565b9150613acc6020840161368f565b90509250929050565b60008060008060008060a08789031215613aed578384fd5b613af68761368f565b9550613b046020880161368f565b94506040870135613b148161424d565b6001600160a01b0316935060608701359250608087013567ffffffffffffffff811115613b3f578283fd5b613b4b89828a0161364f565b979a9699509497509295939492505050565b600080600080600060a08688031215613b74578283fd5b613b7d8661368f565b9450613b8b6020870161368f565b93506040860135613b9b8161427e565b92506060860135613bab8161429c565b91506080860135613bbb8161429c565b809150509295509295909350565b600080600060608486031215613bdd578081fd5b613be68461368f565b92506020840135613bf68161429c565b91506040840135613a988161429c565b600060208284031215613c17578081fd5b5051919050565b60008060008060808587031215613c33578182fd5b845193506020850151613c458161427e565b6040860151909350613c568161427e565b6060860151909250613c678161427e565b939692955090935050565b90565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039290921682521515602082015260400190565b901515815260200190565b60208082526015908201527f52656c617965723a206e6f7420617070726f7665640000000000000000000000604082015260600190565b6020808252818101527f52656c617965723a205f7061796c6f616453697a6520746f6f6f6f6f20626967604082015260600190565b60208082526026908201527f52656c617965723a2077726f6e67205f61646170746572506172616d6574657260408201527f732073697a650000000000000000000000000000000000000000000000000000606082015260800190565b6020808252601d908201527f52656c617965723a206661696c656420746f2073656e64206574686572000000604082015260600190565b6020808252601b908201527f52656c617965723a20756e737570706f72746564207478547970650000000000604082015260600190565b6020808252602d908201527f52656c617965723a206e6f7420656e6f756768206e617469766520666565206660408201527f6f72207769746864726177616c00000000000000000000000000000000000000606082015260800190565b60208082526014908201527f52656c617965723a206e6f742075706461746572000000000000000000000000604082015260600190565b60208082526026908201527f52656c617965723a206e6f7420656e6f7567682066656520666f72207769746860408201527f64726177616c0000000000000000000000000000000000000000000000000000606082015260800190565b60208082526014908201527f52656c617965723a20696e76616c696420756c6e000000000000000000000000604082015260600190565b60208082526029908201527f52656c617965723a20737461726761746520636f6d706f736572206973206e6f60408201527f742073656e64696e670000000000000000000000000000000000000000000000606082015260800190565b6020808252600d908201527f41646d696e3a2070617573656400000000000000000000000000000000000000604082015260600190565b6020808252601d908201527f52656c617965723a205f7061796c6f616453697a65203e203130303030000000604082015260600190565b60208082526014908201527f52656c617965723a2067617320746f6f206c6f77000000000000000000000000604082015260600190565b6020808252601f908201527f52656c617965723a206473744e6174697665416d7420746f6f206c6172676500604082015260600190565b81516fffffffffffffffffffffffffffffffff9081168252602092830151169181019190915260400190565b6fffffffffffffffffffffffffffffffff91909116815260200190565b6fffffffffffffffffffffffffffffffff92831681529116602082015260400190565b6fffffffffffffffffffffffffffffffff93909316835267ffffffffffffffff918216602084015216604082015260600190565b61ffff91909116815260200190565b600061ffff891682526001600160a01b038816602083015286604083015285606083015284608083015260c060a08301528260c0830152828460e084013781830160e090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01601019695505050505050565b61ffff95861681529390941660208401526fffffffffffffffffffffffffffffffff91909116604083015267ffffffffffffffff9081166060830152909116608082015260a00190565b61ffff9390931683526020830191909152604082015260600190565b61ffff93909316835267ffffffffffffffff918216602084015216604082015260600190565b90815260200190565b67ffffffffffffffff948516815292841660208401529083166040830152909116606082015260800190565b74ffffffffffffffffffffffffffffffffffffffffff81168114612e0557600080fd5b8015158114612e0557600080fd5b6fffffffffffffffffffffffffffffffff81168114612e0557600080fd5b67ffffffffffffffff81168114612e0557600080fdfe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7752656c6179657256323a206f7574206f6620636f756e74657273202d2074727920616761696e206c61746572215361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a2646970667358221220e5aa428780daa9bf2ce5dc3772f7fa2d97cff38fd99c82465eba59d56c71e46764736f6c63430007060033",
1167
+ "deployedBytecode": "0x6080604052600436106102fd5760003560e01c806374b87f671161018f578063ac353e04116100e1578063d5f8b0141161008a578063f2fde38b11610064578063f2fde38b14610c7a578063f7013ef614610cb4578063fd9be52214610cee576102fd565b8063d5f8b01414610bcc578063efbf196a14610c06578063f136a87414610c40576102fd565b8063bf4dab51116100bb578063bf4dab5114610b1e578063c03f152914610b58578063c3b04e7f14610b92576102fd565b8063ac353e0414610a7b578063b8f8bad414610aaa578063bedb86fb14610ae4576102fd565b80638644c57811610143578063993d5af61161011d578063993d5af6146109d85780639e8c717814610a12578063ac0bfd7314610a41576102fd565b80638644c578146109325780638da5cb5b1461097a57806398dabd50146109a9576102fd565b8063801db1fe11610174578063801db1fe1461088f57806381ba209a146108c95780638576db67146108f8576102fd565b806374b87f6714610819578063765a8a5414610848576102fd565b806355b352491161025357806369cf4e3a116101fc578063715018a6116101d6578063715018a614610781578063724e78da146107b0578063741bef1a146107ea576102fd565b806369cf4e3a146106cc5780636c473aff14610708578063704ed15214610737576102fd565b80635c975abb1161022d5780635c975abb146106275780636348d26914610663578063673448dd14610692576102fd565b806355b3524914610579578063575765e2146105b35780635886ea65146105ed576102fd565b80633352b608116102b557806343b9a0c41161028f57806343b9a0c4146104bc5780634c0fc8d0146104f85780634eeba25014610532576102fd565b80633352b608146104175780633bfb4047146104535780633f10348714610482576102fd565b80630508941e116102e65780630508941e1461037857806323161ff81461038b578063252f7b01146103dd576102fd565b806301e336671461030257806303343f541461033e575b600080fd5b34801561030e57600080fd5b50d3801561031b57600080fd5b50d2801561032857600080fd5b5061033c61033736600461377c565b610d28565b005b34801561034a57600080fd5b50d3801561035757600080fd5b50d2801561036457600080fd5b5061033c6103733660046136a1565b610ef4565b61033c6103863660046139b6565b610f6a565b34801561039757600080fd5b50d380156103a457600080fd5b50d280156103b157600080fd5b506103c56103c0366004613aa3565b61113c565b6040516103d4939291906140cc565b60405180910390f35b3480156103e957600080fd5b50d380156103f657600080fd5b50d2801561040357600080fd5b5061033c61041236600461392b565b6111aa565b34801561042357600080fd5b50d3801561043057600080fd5b50d2801561043d57600080fd5b506104466112d8565b6040516103d49190613c75565b34801561045f57600080fd5b50d3801561046c57600080fd5b50d2801561047957600080fd5b506104466112e7565b34801561048e57600080fd5b50d3801561049b57600080fd5b50d280156104a857600080fd5b5061033c6104b7366004613b5d565b6112f6565b3480156104c857600080fd5b50d380156104d557600080fd5b50d280156104e257600080fd5b506104eb611481565b6040516103d49190614218565b34801561050457600080fd5b50d3801561051157600080fd5b50d2801561051e57600080fd5b5061033c61052d3660046137c9565b611487565b34801561053e57600080fd5b50d3801561054b57600080fd5b50d2801561055857600080fd5b5061056c610567366004613911565b6114ee565b6040516103d4919061408c565b34801561058557600080fd5b50d3801561059257600080fd5b50d2801561059f57600080fd5b5061056c6105ae366004613911565b611512565b3480156105bf57600080fd5b50d380156105cc57600080fd5b50d280156105d957600080fd5b5061033c6105e83660046137c9565b611536565b3480156105f957600080fd5b50d3801561060657600080fd5b50d2801561061357600080fd5b506104eb610622366004613ad5565b61160c565b34801561063357600080fd5b50d3801561064057600080fd5b50d2801561064d57600080fd5b50610656611832565b6040516103d49190613cbd565b34801561066f57600080fd5b50d3801561067c57600080fd5b50d2801561068957600080fd5b5061044661183b565b34801561069e57600080fd5b50d380156106ab57600080fd5b50d280156106b857600080fd5b506106566106c73660046136a1565b61184a565b3480156106d857600080fd5b50d380156106e557600080fd5b50d280156106f257600080fd5b506106fb61186c565b6040516103d49190614100565b34801561071457600080fd5b50d3801561072157600080fd5b50d2801561072e57600080fd5b5061044661188c565b34801561074357600080fd5b50d3801561075057600080fd5b50d2801561075d57600080fd5b5061077161076c366004613911565b61189b565b6040516103d49493929190614221565b34801561078d57600080fd5b50d3801561079a57600080fd5b50d280156107a757600080fd5b5061033c6118fd565b3480156107bc57600080fd5b50d380156107c957600080fd5b50d280156107d657600080fd5b5061033c6107e53660046136a1565b6119d3565b3480156107f657600080fd5b50d3801561080357600080fd5b50d2801561081057600080fd5b50610446611a4e565b34801561082557600080fd5b50d3801561083257600080fd5b50d2801561083f57600080fd5b50610771611a62565b34801561085457600080fd5b50d3801561086157600080fd5b50d2801561086e57600080fd5b5061088261087d366004613911565b611ab8565b6040516103d49190614060565b34801561089b57600080fd5b50d380156108a857600080fd5b50d280156108b557600080fd5b5061033c6108c43660046137c9565b611b9d565b3480156108d557600080fd5b50d380156108e257600080fd5b50d280156108ef57600080fd5b506106fb611c67565b34801561090457600080fd5b50d3801561091157600080fd5b50d2801561091e57600080fd5b5061065661092d3660046136a1565b611c89565b34801561093e57600080fd5b50d3801561094b57600080fd5b50d2801561095857600080fd5b5061096c610967366004613911565b611c9e565b6040516103d49291906140a9565b34801561098657600080fd5b50d3801561099357600080fd5b50d280156109a057600080fd5b50610446611cda565b3480156109b557600080fd5b50d380156109c257600080fd5b50d280156109cf57600080fd5b506106fb611ce9565b3480156109e457600080fd5b50d380156109f157600080fd5b50d280156109fe57600080fd5b50610656610a0d3660046136a1565b611d07565b348015610a1e57600080fd5b50d38015610a2b57600080fd5b50d28015610a3857600080fd5b506104eb611d1c565b348015610a4d57600080fd5b50d38015610a5a57600080fd5b50d28015610a6757600080fd5b5061033c610a76366004613bc9565b611d22565b348015610a8757600080fd5b50d38015610a9457600080fd5b50d28015610aa157600080fd5b5061056c611dfe565b348015610ab657600080fd5b50d38015610ac357600080fd5b50d28015610ad057600080fd5b5061033c610adf366004613a5b565b611e16565b348015610af057600080fd5b50d38015610afd57600080fd5b50d28015610b0a57600080fd5b5061033c610b1936600461384a565b611e52565b348015610b2a57600080fd5b50d38015610b3757600080fd5b50d28015610b4457600080fd5b5061033c610b5336600461380a565b611ed9565b348015610b6457600080fd5b50d38015610b7157600080fd5b50d28015610b7e57600080fd5b506104eb610b8d366004613ad5565b611fdd565b348015610b9e57600080fd5b50d38015610bab57600080fd5b50d28015610bb857600080fd5b5061033c610bc73660046138f5565b61204f565b348015610bd857600080fd5b50d38015610be557600080fd5b50d28015610bf257600080fd5b5061033c610c0136600461380a565b6120ce565b348015610c1257600080fd5b50d38015610c1f57600080fd5b50d28015610c2c57600080fd5b5061033c610c3b36600461377c565b6121d2565b348015610c4c57600080fd5b50d38015610c5957600080fd5b50d28015610c6657600080fd5b50610656610c753660046136a1565b61227e565b348015610c8657600080fd5b50d38015610c9357600080fd5b50d28015610ca057600080fd5b5061033c610caf3660046136a1565b612293565b348015610cc057600080fd5b50d38015610ccd57600080fd5b50d28015610cda57600080fd5b5061033c610ce9366004613701565b6123c0565b348015610cfa57600080fd5b50d38015610d0757600080fd5b50d28015610d1457600080fd5b5061033c610d233660046136cd565b612666565b33610d31611cda565b6001600160a01b031614610d6d57610d483361184a565b610d6d5760405162461bcd60e51b8152600401610d6490613cc8565b60405180910390fd5b6001600160a01b038316610e1f574780821115610d9c5760405162461bcd60e51b8152600401610d6490613dff565b6000836001600160a01b031683604051610db590613c72565b60006040518083038185875af1925050503d8060008114610df2576040519150601f19603f3d011682016040523d82523d6000602084013e610df7565b606091505b5050905080610e185760405162461bcd60e51b8152600401610d6490613d91565b5050610eef565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526000906001600160a01b038516906370a0823190610e67903090600401613c75565b60206040518083038186803b158015610e7f57600080fd5b505afa158015610e93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb79190613c06565b905080821115610ed95760405162461bcd60e51b8152600401610d6490613e93565b610eed6001600160a01b03851684846127d7565b505b505050565b33610efd611cda565b6001600160a01b031614610f3057610f143361184a565b610f305760405162461bcd60e51b8152600401610d6490613cc8565b606780547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b33610f73611cda565b6001600160a01b031614610fa657610f8a3361184a565b610fa65760405162461bcd60e51b8152600401610d6490613cc8565b60026000541415610ffe576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026000819055506000816001600160a01b03166127103460405161102290613c72565b600060405180830381858888f193505050503d8060008114611060576040519150601f19603f3d011682016040523d82523d6000602084013e611065565b606091505b50509050806110a55760405134906001600160a01b038416907f2c7a964ca3de5ec1d42d9822f9bbd0eb142a59cc9f855e9d93813b773192c7a390600090a35b6066546040517f987fa2d50000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063987fa2d5906110fa908c908c908c908c908c908c908c9060040161410f565b600060405180830381600087803b15801561111457600080fd5b505af1158015611128573d6000803e3d6000fd5b505060016000555050505050505050505050565b60696020908152600092835260408084209091529082529020546fffffffffffffffffffffffffffffffff81169067ffffffffffffffff7001000000000000000000000000000000008204811691780100000000000000000000000000000000000000000000000090041683565b336111b3611cda565b6001600160a01b0316146111e6576111ca3361184a565b6111e65760405162461bcd60e51b8152600401610d6490613cc8565b6002600054141561123e576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026000556066546040517f987fa2d50000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063987fa2d590611298908a908a908a908a908a908a908a9060040161410f565b600060405180830381600087803b1580156112b257600080fd5b505af11580156112c6573d6000803e3d6000fd5b50506001600055505050505050505050565b6070546001600160a01b031681565b6071546001600160a01b031681565b336112ff611cda565b6001600160a01b031614611332576113163361184a565b6113325760405162461bcd60e51b8152600401610d6490613cc8565b604080516060810182526fffffffffffffffffffffffffffffffff858116825267ffffffffffffffff858116602080850191825286831685870190815261ffff8c8116600090815260698452888120918d16815292529086902094518554925191517fffffffffffffffffffffffffffffffff000000000000000000000000000000009093169416939093177fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff16700100000000000000000000000000000000938316939093029290921777ffffffffffffffffffffffffffffffffffffffffffffffff1678010000000000000000000000000000000000000000000000009290911691909102179055517fd053e021dda81c7c2794ff89e320caea5379962d49ed383a3bd0a54ffc4b932f90611472908790879087908790879061418c565b60405180910390a15050505050565b61271081565b33611490611cda565b6001600160a01b0316146114c3576114a73361184a565b6114c35760405162461bcd60e51b8152600401610d6490613cc8565b6001600160a01b03919091166000908152607460205260409020805460ff1916911515919091179055565b606d602052600090815260409020546fffffffffffffffffffffffffffffffff1681565b606e602052600090815260409020546fffffffffffffffffffffffffffffffff1681565b61153e612857565b6001600160a01b031661154f611cda565b6001600160a01b0316146115aa576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0382166000908152606a602052604090819020805460ff1916831515179055517fb10786d0bfa68fb1aa29552d9203e5f545f7c073ff0784da1de1d800986f1023906116009084908490613ca2565b60405180910390a15050565b60006127108761ffff16106116755761ffff871660009081526075602090815260408083206001600160a01b038916845260749092529091205460ff161580156116605750805467ffffffffffffffff1615155b15611673576116718161271061285b565b505b505b6066546001600160a01b0316331461169f5760405162461bcd60e51b8152600401610d6490613ef0565b6127108411156116c15760405162461bcd60e51b8152600401610d6490613fbb565b6071546001600160a01b03868116911614156117ac5760008461022014806116ea575084610140145b806116f6575084610120145b8061170157508460a0145b9050806117aa57607060009054906101000a90046001600160a01b03166001600160a01b0316634b60b4256040518163ffffffff1660e01b815260040160206040518083038186803b15801561175657600080fd5b505afa15801561176a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061178e9190613866565b6117aa5760405162461bcd60e51b8152600401610d6490613f27565b505b6117ef8787878787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061291092505050565b90507fdf21c415b78ed2552cc9971249e32a053abce6087a0ae0fbf3f78db5174a3493816040516118209190614218565b60405180910390a19695505050505050565b606b5460ff1681565b6067546001600160a01b031681565b6001600160a01b0381166000908152606a602052604090205460ff165b919050565b606c547201000000000000000000000000000000000000900461ffff1681565b6066546001600160a01b031681565b60756020526000908152604090205467ffffffffffffffff808216916801000000000000000081048216917001000000000000000000000000000000008204811691780100000000000000000000000000000000000000000000000090041684565b611905612857565b6001600160a01b0316611916611cda565b6001600160a01b031614611971576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6034546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603480547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b336119dc611cda565b6001600160a01b031614611a0f576119f33361184a565b611a0f5760405162461bcd60e51b8152600401610d6490613cc8565b606b80546001600160a01b03909216610100027fffffffffffffffffffffff0000000000000000000000000000000000000000ff909216919091179055565b606b5461010090046001600160a01b031681565b60735467ffffffffffffffff808216916801000000000000000081048216917001000000000000000000000000000000008204811691780100000000000000000000000000000000000000000000000090041684565b611ac06135ee565b606b546040517fda26663a00000000000000000000000000000000000000000000000000000000815260009161010090046001600160a01b03169063da26663a90611b0f908690600401614100565b60606040518083038186803b158015611b2757600080fd5b505afa158015611b3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5f9190613882565b6040805180820190915281516fffffffffffffffffffffffffffffffff16815260209182015167ffffffffffffffff16918101919091529392505050565b611ba5612857565b6001600160a01b0316611bb6611cda565b6001600160a01b031614611c11576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0382166000908152606f602052604090819020805460ff1916831515179055517fde6b048d6c4e63d85fde37ccbe03f4380c6d12cb2a1e9ce9268bbf47a1ef6878906116009084908490613ca2565b606c5474010000000000000000000000000000000000000000900461ffff1681565b606f6020526000908152604090205460ff1681565b6068602052600090815260409020546fffffffffffffffffffffffffffffffff8082169170010000000000000000000000000000000090041682565b6034546001600160a01b031690565b606c54700100000000000000000000000000000000900461ffff1681565b60746020526000908152604090205460ff1681565b60725481565b611d2a612857565b6001600160a01b0316611d3b611cda565b6001600160a01b031614611d96576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61ffff83166000908152607560205260409020611db38184612c26565b611dbd8183612ccc565b7fef8c12209e343995996ccec80a634ec26a6a9def842e54066ef89fef38528038848484604051611df0939291906141f2565b60405180910390a150505050565b606c546fffffffffffffffffffffffffffffffff1681565b33611e1f611cda565b6001600160a01b031614610eef57611e363361184a565b610eef5760405162461bcd60e51b8152600401610d6490613cc8565b611e5a612857565b6001600160a01b0316611e6b611cda565b6001600160a01b031614611ec6576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b606b805460ff1916911515919091179055565b33611ee2611cda565b6001600160a01b031614158015611f095750336000908152606a602052604090205460ff16155b15611f3d57336000908152606f602052604090205460ff16611f3d5760405162461bcd60e51b8152600401610d6490613e5c565b60005b81811015610eef5736838383818110611f5557fe5b9050604002019050806020016020810190611f7091906138f5565b606d6000611f816020850185613911565b61ffff168152602081019190915260400160002080547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff9290921691909117905550600101611f40565b60006127108411156120015760405162461bcd60e51b8152600401610d6490613cff565b6120448787878787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061291092505050565b979650505050505050565b33612058611cda565b6001600160a01b03161461208b5761206f3361184a565b61208b5760405162461bcd60e51b8152600401610d6490613cc8565b606c80547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff92909216919091179055565b336120d7611cda565b6001600160a01b0316141580156120fe5750336000908152606a602052604090205460ff16155b1561213257336000908152606f602052604090205460ff166121325760405162461bcd60e51b8152600401610d6490613e5c565b60005b81811015610eef573683838381811061214a57fe5b905060400201905080602001602081019061216591906138f5565b606e60006121766020850185613911565b61ffff168152602081019190915260400160002080547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff9290921691909117905550600101612135565b60006121dc612d21565b90506001600160a01b03811661221b576001600160a01b037fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355612230565b336001600160a01b0382161461223057600080fd5b50607180546001600160a01b039485167fffffffffffffffffffffffff0000000000000000000000000000000000000000918216179091556070805493909416921691909117909155607255565b606a6020526000908152604090205460ff1681565b61229b612857565b6001600160a01b03166122ac611cda565b6001600160a01b031614612307576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b03811661234c5760405162461bcd60e51b81526004018080602001828103825260268152602001806142b36026913960400191505060405180910390fd5b6034546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603480547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b60006123ca612d21565b90506001600160a01b038116612409576001600160a01b037fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035561241e565b336001600160a01b0382161461241e57600080fd5b600154610100900460ff16806124375750612437612d46565b80612445575060015460ff16155b6124805760405162461bcd60e51b815260040180806020018281038252602e8152602001806142ff602e913960400191505060405180910390fd5b600154610100900460ff161580156124aa576001805460ff1961ff00199091166101001716811790555b6124b2612d57565b606680547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0389161790556124f0306001611536565b606c8054606b80547fffffffffffffffffffffff0000000000000000000000000000000000000000ff166101006001600160a01b038b81169190910291909117909155612ee07fffffffffffffffffffffffffffffffff00000000000000000000000000000000909216919091177fffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffff1670a400000000000000000000000000000000177fffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffff1672a0000000000000000000000000000000000000177fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff167501f4000000000000000000000000000000000000000017909155607180547fffffffffffffffffffffffff000000000000000000000000000000000000000090811688841617909155607080549091169186169190911790556072839055801561265d576001805461ff00191690555b50505050505050565b3361266f611cda565b6001600160a01b0316146126a2576126863361184a565b6126a25760405162461bcd60e51b8152600401610d6490613cc8565b6066546040517f69412bfa0000000000000000000000000000000000000000000000000000000081526000916001600160a01b0316906369412bfa906126ec903090600401613c75565b60206040518083038186803b15801561270457600080fd5b505afa158015612718573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061273c9190613c06565b90508082111561275e5760405162461bcd60e51b8152600401610d6490613e93565b6066546040517f07b18bde0000000000000000000000000000000000000000000000000000000081526001600160a01b03909116906307b18bde906127a99086908690600401613c89565b600060405180830381600087803b1580156127c357600080fd5b505af115801561265d573d6000803e3d6000fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052610eef908490612e08565b3390565b6000612868836000612eb9565b825467ffffffffffffffff6801000000000000000090910481169083168110156128c35760405162461bcd60e51b815260040180806020018281038252602d81526020018061434e602d913960400191505060405180910390fd5b835467ffffffffffffffff9184900391821668010000000000000000027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff90911617845590505b92915050565b606b5460009060ff16156129365760405162461bcd60e51b8152600401610d6490613f84565b815160221480612947575060428251115b6129635760405162461bcd60e51b8152600401610d6490613d34565b600282015160228301518061298a5760405162461bcd60e51b8152600401610d6490613ff2565b8161ffff16600114806129a157508161ffff166002145b6129bd5760405162461bcd60e51b8152600401610d6490613dc8565b61ffff88811660009081526069602090815260408083208b851684529091528120918416600214612a0857606c54700100000000000000000000000000000000900461ffff16612a2e565b606c54612a2e90700100000000000000000000000000000000900461ffff16602061300a565b905060008961ffff16600214612a6d57606c54612a6890899074010000000000000000000000000000000000000000900461ffff1661300a565b612a95565b606c54612a959089907201000000000000000000000000000000000000900461ffff1661300a565b606b549091508b9060009081908190819061010090046001600160a01b03166388a4124c86612ac48a8a61300a565b8b54612aee90700100000000000000000000000000000000900467ffffffffffffffff168e61300a565b6040518463ffffffff1660e01b8152600401612b0c939291906141d6565b60806040518083038186803b158015612b2457600080fd5b505afa158015612b38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b5c9190613c1e565b935093509350935060008a61ffff1660021415612bac575060428c015188546fffffffffffffffffffffffffffffffff16811115612bac5760405162461bcd60e51b8152600401610d6490614029565b60008115612bfa57606c54612bf79061271090612beb906fffffffffffffffffffffffffffffffff90811690612bf19089811690849089908d1661306b565b906130c4565b9061306b565b90505b612c0f81612c0989898761312b565b9061300a565b9c5050505050505050505050505095945050505050565b81547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff9182169081177fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff1668010000000000000000919091021777ffffffffffffffffffffffffffffffffffffffffffffffff167801000000000000000000000000000000000000000000000000429290921691909102179055565b612cd7826000612eb9565b815467ffffffffffffffff909116700100000000000000000000000000000000027fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff909116179055565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6000612d5130613215565b15905090565b600154610100900460ff1680612d705750612d70612d46565b80612d7e575060015460ff16155b612db95760405162461bcd60e51b815260040180806020018281038252602e8152602001806142ff602e913960400191505060405180910390fd5b600154610100900460ff16158015612de3576001805460ff1961ff00199091166101001716811790555b612deb61321b565b612df36132ba565b8015612e05576001805461ff00191690555b50565b6000612e5d826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166133ca9092919063ffffffff16565b805190915015610eef57808060200190516020811015612e7c57600080fd5b5051610eef5760405162461bcd60e51b815260040180806020018281038252602a81526020018061437b602a913960400191505060405180910390fd5b815467ffffffffffffffff808316914291780100000000000000000000000000000000000000000000000090910481169082161115612f3d578354700100000000000000000000000000000000810467ffffffffffffffff908116780100000000000000000000000000000000000000000000000090920481168303160291909101905b8115612fbd57835467ffffffffffffffff68010000000000000000820481169390930192168211612f6e5781612f7b565b835467ffffffffffffffff165b845467ffffffffffffffff9190911668010000000000000000027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff9091161784555b835467ffffffffffffffff90911678010000000000000000000000000000000000000000000000000277ffffffffffffffffffffffffffffffffffffffffffffffff909116179092555050565b600082820183811015613064576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60008261307a5750600061290a565b8282028284828161308757fe5b04146130645760405162461bcd60e51b815260040180806020018281038252602181526020018061432d6021913960400191505060405180910390fd5b600080821161311a576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161312357fe5b049392505050565b61ffff83166000908152606d60205260408120546fffffffffffffffffffffffffffffffff168061316d5750606c546fffffffffffffffffffffffffffffffff165b6000613191612710612beb876fffffffffffffffffffffffffffffffff861661306b565b90506fffffffffffffffffffffffffffffffff84166131b35791506130649050565b60725461ffff87166000908152606e602052604081205490916131fc916131f5916fffffffffffffffffffffffffffffffff808a1692612beb9291169061306b565b879061300a565b905081811161320b5781612044565b9695505050505050565b3b151590565b600154610100900460ff16806132345750613234612d46565b80613242575060015460ff16155b61327d5760405162461bcd60e51b815260040180806020018281038252602e8152602001806142ff602e913960400191505060405180910390fd5b600154610100900460ff16158015612df3576001805460ff1961ff00199091166101001716811790558015612e05576001805461ff001916905550565b600154610100900460ff16806132d357506132d3612d46565b806132e1575060015460ff16155b61331c5760405162461bcd60e51b815260040180806020018281038252602e8152602001806142ff602e913960400191505060405180910390fd5b600154610100900460ff16158015613346576001805460ff1961ff00199091166101001716811790555b6000613350612857565b603480547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015612e05576001805461ff001916905550565b60606133d984846000856133e1565b949350505050565b6060824710156134225760405162461bcd60e51b81526004018080602001828103825260268152602001806142d96026913960400191505060405180910390fd5b61342b85613215565b61347c576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600080866001600160a01b031685876040518082805190602001908083835b602083106134d857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161349b565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d806000811461353a576040519150601f19603f3d011682016040523d82523d6000602084013e61353f565b606091505b509150915061204482828660608315613559575081613064565b8251156135695782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156135b357818101518382015260200161359b565b50505050905090810190601f1680156135e05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b604080518082019091526000808252602082015290565b60008083601f840112613616578182fd5b50813567ffffffffffffffff81111561362d578182fd5b60208301915083602060408302850101111561364857600080fd5b9250929050565b60008083601f840112613660578182fd5b50813567ffffffffffffffff811115613677578182fd5b60208301915083602082850101111561364857600080fd5b803561ffff8116811461186757600080fd5b6000602082840312156136b2578081fd5b81356136bd8161424d565b6001600160a01b03169392505050565b600080604083850312156136df578081fd5b82356136ea8161424d565b6001600160a01b0316946020939093013593505050565b600080600080600060a08688031215613718578081fd5b85356137238161424d565b6001600160a01b03908116955060208701359061373f8261424d565b90811694506040870135906137538261424d565b90811693506060870135906137678261424d565b95989497509295929094169350506080013590565b600080600060608486031215613790578283fd5b833561379b8161424d565b6001600160a01b0390811693506020850135906137b78261424d565b93969316945050506040919091013590565b600080604083850312156137db578182fd5b82356137e68161424d565b6001600160a01b0316915060208301356137ff81614270565b809150509250929050565b6000806020838503121561381c578182fd5b823567ffffffffffffffff811115613832578283fd5b61383e85828601613605565b90969095509350505050565b60006020828403121561385b578081fd5b813561306481614270565b600060208284031215613877578081fd5b815161306481614270565b600060608284031215613893578081fd5b6040516060810181811067ffffffffffffffff821117156138b057fe5b60405282516138be8161427e565b815260208301516138ce8161429c565b6020820152604083015163ffffffff811681146138e9578283fd5b60408201529392505050565b600060208284031215613906578081fd5b81356130648161427e565b600060208284031215613922578081fd5b6130648261368f565b600080600080600080600060c0888a031215613945578485fd5b61394e8861368f565b9650602088013561395e8161424d565b6001600160a01b0316955060408801359450606088013593506080880135925060a088013567ffffffffffffffff811115613997578283fd5b6139a38a828b0161364f565b989b979a50959850939692959293505050565b60008060008060008060008060e0898b0312156139d1578182fd5b6139da8961368f565b975060208901356139ea8161424d565b6001600160a01b03908116975060408a0135965060608a0135955060808a0135945060a08a01359067ffffffffffffffff821115613a26578384fd5b613a328c838d0161364f565b909550935060c08b01359150613a478261424d565b808216925050509295985092959890939650565b600080600060608486031215613a6f578081fd5b613a788461368f565b92506020840135613a888161427e565b91506040840135613a988161427e565b809150509250925092565b60008060408385031215613ab5578182fd5b613abe8361368f565b9150613acc6020840161368f565b90509250929050565b60008060008060008060a08789031215613aed578384fd5b613af68761368f565b9550613b046020880161368f565b94506040870135613b148161424d565b6001600160a01b0316935060608701359250608087013567ffffffffffffffff811115613b3f578283fd5b613b4b89828a0161364f565b979a9699509497509295939492505050565b600080600080600060a08688031215613b74578283fd5b613b7d8661368f565b9450613b8b6020870161368f565b93506040860135613b9b8161427e565b92506060860135613bab8161429c565b91506080860135613bbb8161429c565b809150509295509295909350565b600080600060608486031215613bdd578081fd5b613be68461368f565b92506020840135613bf68161429c565b91506040840135613a988161429c565b600060208284031215613c17578081fd5b5051919050565b60008060008060808587031215613c33578182fd5b845193506020850151613c458161427e565b6040860151909350613c568161427e565b6060860151909250613c678161427e565b939692955090935050565b90565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039290921682521515602082015260400190565b901515815260200190565b60208082526015908201527f52656c617965723a206e6f7420617070726f7665640000000000000000000000604082015260600190565b6020808252818101527f52656c617965723a205f7061796c6f616453697a6520746f6f6f6f6f20626967604082015260600190565b60208082526026908201527f52656c617965723a2077726f6e67205f61646170746572506172616d6574657260408201527f732073697a650000000000000000000000000000000000000000000000000000606082015260800190565b6020808252601d908201527f52656c617965723a206661696c656420746f2073656e64206574686572000000604082015260600190565b6020808252601b908201527f52656c617965723a20756e737570706f72746564207478547970650000000000604082015260600190565b6020808252602d908201527f52656c617965723a206e6f7420656e6f756768206e617469766520666565206660408201527f6f72207769746864726177616c00000000000000000000000000000000000000606082015260800190565b60208082526014908201527f52656c617965723a206e6f742075706461746572000000000000000000000000604082015260600190565b60208082526026908201527f52656c617965723a206e6f7420656e6f7567682066656520666f72207769746860408201527f64726177616c0000000000000000000000000000000000000000000000000000606082015260800190565b60208082526014908201527f52656c617965723a20696e76616c696420756c6e000000000000000000000000604082015260600190565b60208082526029908201527f52656c617965723a20737461726761746520636f6d706f736572206973206e6f60408201527f742073656e64696e670000000000000000000000000000000000000000000000606082015260800190565b6020808252600d908201527f41646d696e3a2070617573656400000000000000000000000000000000000000604082015260600190565b6020808252601d908201527f52656c617965723a205f7061796c6f616453697a65203e203130303030000000604082015260600190565b60208082526014908201527f52656c617965723a2067617320746f6f206c6f77000000000000000000000000604082015260600190565b6020808252601f908201527f52656c617965723a206473744e6174697665416d7420746f6f206c6172676500604082015260600190565b81516fffffffffffffffffffffffffffffffff9081168252602092830151169181019190915260400190565b6fffffffffffffffffffffffffffffffff91909116815260200190565b6fffffffffffffffffffffffffffffffff92831681529116602082015260400190565b6fffffffffffffffffffffffffffffffff93909316835267ffffffffffffffff918216602084015216604082015260600190565b61ffff91909116815260200190565b600061ffff891682526001600160a01b038816602083015286604083015285606083015284608083015260c060a08301528260c0830152828460e084013781830160e090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01601019695505050505050565b61ffff95861681529390941660208401526fffffffffffffffffffffffffffffffff91909116604083015267ffffffffffffffff9081166060830152909116608082015260a00190565b61ffff9390931683526020830191909152604082015260600190565b61ffff93909316835267ffffffffffffffff918216602084015216604082015260600190565b90815260200190565b67ffffffffffffffff948516815292841660208401529083166040830152909116606082015260800190565b74ffffffffffffffffffffffffffffffffffffffffff81168114612e0557600080fd5b8015158114612e0557600080fd5b6fffffffffffffffffffffffffffffffff81168114612e0557600080fd5b67ffffffffffffffff81168114612e0557600080fdfe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7752656c6179657256323a206f7574206f6620636f756e74657273202d2074727920616761696e206c61746572215361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a2646970667358221220e5aa428780daa9bf2ce5dc3772f7fa2d97cff38fd99c82465eba59d56c71e46764736f6c63430007060033",
1168
+ "linkReferences": {},
1169
+ "deployedLinkReferences": {}
1170
+ }