@layerzerolabs/lz-evm-sdk-v1 2.3.8 → 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 +16 -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 +10 -10
  92. package/deployments/arbitrum-sandbox-local/Endpoint.json +7 -7
  93. package/deployments/arbitrum-sandbox-local/FPValidator.json +4 -4
  94. package/deployments/arbitrum-sandbox-local/MPTValidator01.json +4 -4
  95. package/deployments/arbitrum-sandbox-local/NonceContract.json +4 -4
  96. package/deployments/arbitrum-sandbox-local/RelayerV2.json +16 -16
  97. package/deployments/arbitrum-sandbox-local/RelayerV2_Implementation.json +4 -4
  98. package/deployments/arbitrum-sandbox-local/RelayerV2_Proxy.json +16 -16
  99. package/deployments/arbitrum-sandbox-local/TreasuryV2.json +7 -7
  100. package/deployments/arbitrum-sandbox-local/UltraLightNode.json +7 -7
  101. package/deployments/arbitrum-sandbox-local/UltraLightNodeV2.json +7 -7
  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 +10 -10
  114. package/deployments/ethereum-sandbox-local/Endpoint.json +7 -7
  115. package/deployments/ethereum-sandbox-local/FPValidator.json +4 -4
  116. package/deployments/ethereum-sandbox-local/MPTValidator01.json +4 -4
  117. package/deployments/ethereum-sandbox-local/NonceContract.json +4 -4
  118. package/deployments/ethereum-sandbox-local/RelayerV2.json +16 -16
  119. package/deployments/ethereum-sandbox-local/RelayerV2_Implementation.json +4 -4
  120. package/deployments/ethereum-sandbox-local/RelayerV2_Proxy.json +16 -16
  121. package/deployments/ethereum-sandbox-local/TreasuryV2.json +7 -7
  122. package/deployments/ethereum-sandbox-local/UltraLightNode.json +7 -7
  123. package/deployments/ethereum-sandbox-local/UltraLightNodeV2.json +7 -7
  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,958 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "Endpoint",
4
+ "sourceName": "contracts/Endpoint.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "uint16",
10
+ "name": "_chainId",
11
+ "type": "uint16"
12
+ }
13
+ ],
14
+ "stateMutability": "nonpayable",
15
+ "type": "constructor"
16
+ },
17
+ {
18
+ "anonymous": false,
19
+ "inputs": [
20
+ {
21
+ "indexed": false,
22
+ "internalType": "uint16",
23
+ "name": "version",
24
+ "type": "uint16"
25
+ }
26
+ ],
27
+ "name": "DefaultReceiveVersionSet",
28
+ "type": "event"
29
+ },
30
+ {
31
+ "anonymous": false,
32
+ "inputs": [
33
+ {
34
+ "indexed": false,
35
+ "internalType": "uint16",
36
+ "name": "version",
37
+ "type": "uint16"
38
+ }
39
+ ],
40
+ "name": "DefaultSendVersionSet",
41
+ "type": "event"
42
+ },
43
+ {
44
+ "anonymous": false,
45
+ "inputs": [
46
+ {
47
+ "indexed": false,
48
+ "internalType": "uint16",
49
+ "name": "version",
50
+ "type": "uint16"
51
+ }
52
+ ],
53
+ "name": "NewLibraryVersionAdded",
54
+ "type": "event"
55
+ },
56
+ {
57
+ "anonymous": false,
58
+ "inputs": [
59
+ {
60
+ "indexed": true,
61
+ "internalType": "address",
62
+ "name": "previousOwner",
63
+ "type": "address"
64
+ },
65
+ {
66
+ "indexed": true,
67
+ "internalType": "address",
68
+ "name": "newOwner",
69
+ "type": "address"
70
+ }
71
+ ],
72
+ "name": "OwnershipTransferred",
73
+ "type": "event"
74
+ },
75
+ {
76
+ "anonymous": false,
77
+ "inputs": [
78
+ {
79
+ "indexed": false,
80
+ "internalType": "uint16",
81
+ "name": "srcChainId",
82
+ "type": "uint16"
83
+ },
84
+ {
85
+ "indexed": false,
86
+ "internalType": "bytes",
87
+ "name": "srcAddress",
88
+ "type": "bytes"
89
+ },
90
+ {
91
+ "indexed": false,
92
+ "internalType": "uint64",
93
+ "name": "nonce",
94
+ "type": "uint64"
95
+ },
96
+ {
97
+ "indexed": false,
98
+ "internalType": "address",
99
+ "name": "dstAddress",
100
+ "type": "address"
101
+ }
102
+ ],
103
+ "name": "PayloadCleared",
104
+ "type": "event"
105
+ },
106
+ {
107
+ "anonymous": false,
108
+ "inputs": [
109
+ {
110
+ "indexed": false,
111
+ "internalType": "uint16",
112
+ "name": "srcChainId",
113
+ "type": "uint16"
114
+ },
115
+ {
116
+ "indexed": false,
117
+ "internalType": "bytes",
118
+ "name": "srcAddress",
119
+ "type": "bytes"
120
+ },
121
+ {
122
+ "indexed": false,
123
+ "internalType": "address",
124
+ "name": "dstAddress",
125
+ "type": "address"
126
+ },
127
+ {
128
+ "indexed": false,
129
+ "internalType": "uint64",
130
+ "name": "nonce",
131
+ "type": "uint64"
132
+ },
133
+ {
134
+ "indexed": false,
135
+ "internalType": "bytes",
136
+ "name": "payload",
137
+ "type": "bytes"
138
+ },
139
+ {
140
+ "indexed": false,
141
+ "internalType": "bytes",
142
+ "name": "reason",
143
+ "type": "bytes"
144
+ }
145
+ ],
146
+ "name": "PayloadStored",
147
+ "type": "event"
148
+ },
149
+ {
150
+ "anonymous": false,
151
+ "inputs": [
152
+ {
153
+ "indexed": false,
154
+ "internalType": "uint16",
155
+ "name": "chainId",
156
+ "type": "uint16"
157
+ },
158
+ {
159
+ "indexed": false,
160
+ "internalType": "bytes",
161
+ "name": "srcAddress",
162
+ "type": "bytes"
163
+ }
164
+ ],
165
+ "name": "UaForceResumeReceive",
166
+ "type": "event"
167
+ },
168
+ {
169
+ "anonymous": false,
170
+ "inputs": [
171
+ {
172
+ "indexed": false,
173
+ "internalType": "address",
174
+ "name": "ua",
175
+ "type": "address"
176
+ },
177
+ {
178
+ "indexed": false,
179
+ "internalType": "uint16",
180
+ "name": "version",
181
+ "type": "uint16"
182
+ }
183
+ ],
184
+ "name": "UaReceiveVersionSet",
185
+ "type": "event"
186
+ },
187
+ {
188
+ "anonymous": false,
189
+ "inputs": [
190
+ {
191
+ "indexed": false,
192
+ "internalType": "address",
193
+ "name": "ua",
194
+ "type": "address"
195
+ },
196
+ {
197
+ "indexed": false,
198
+ "internalType": "uint16",
199
+ "name": "version",
200
+ "type": "uint16"
201
+ }
202
+ ],
203
+ "name": "UaSendVersionSet",
204
+ "type": "event"
205
+ },
206
+ {
207
+ "inputs": [],
208
+ "name": "BLOCK_VERSION",
209
+ "outputs": [
210
+ {
211
+ "internalType": "uint16",
212
+ "name": "",
213
+ "type": "uint16"
214
+ }
215
+ ],
216
+ "stateMutability": "view",
217
+ "type": "function"
218
+ },
219
+ {
220
+ "inputs": [],
221
+ "name": "DEFAULT_VERSION",
222
+ "outputs": [
223
+ {
224
+ "internalType": "uint16",
225
+ "name": "",
226
+ "type": "uint16"
227
+ }
228
+ ],
229
+ "stateMutability": "view",
230
+ "type": "function"
231
+ },
232
+ {
233
+ "inputs": [],
234
+ "name": "chainId",
235
+ "outputs": [
236
+ {
237
+ "internalType": "uint16",
238
+ "name": "",
239
+ "type": "uint16"
240
+ }
241
+ ],
242
+ "stateMutability": "view",
243
+ "type": "function"
244
+ },
245
+ {
246
+ "inputs": [],
247
+ "name": "defaultReceiveLibraryAddress",
248
+ "outputs": [
249
+ {
250
+ "internalType": "address",
251
+ "name": "",
252
+ "type": "address"
253
+ }
254
+ ],
255
+ "stateMutability": "view",
256
+ "type": "function"
257
+ },
258
+ {
259
+ "inputs": [],
260
+ "name": "defaultReceiveVersion",
261
+ "outputs": [
262
+ {
263
+ "internalType": "uint16",
264
+ "name": "",
265
+ "type": "uint16"
266
+ }
267
+ ],
268
+ "stateMutability": "view",
269
+ "type": "function"
270
+ },
271
+ {
272
+ "inputs": [],
273
+ "name": "defaultSendLibrary",
274
+ "outputs": [
275
+ {
276
+ "internalType": "contract ILayerZeroMessagingLibrary",
277
+ "name": "",
278
+ "type": "address"
279
+ }
280
+ ],
281
+ "stateMutability": "view",
282
+ "type": "function"
283
+ },
284
+ {
285
+ "inputs": [],
286
+ "name": "defaultSendVersion",
287
+ "outputs": [
288
+ {
289
+ "internalType": "uint16",
290
+ "name": "",
291
+ "type": "uint16"
292
+ }
293
+ ],
294
+ "stateMutability": "view",
295
+ "type": "function"
296
+ },
297
+ {
298
+ "inputs": [
299
+ {
300
+ "internalType": "uint16",
301
+ "name": "_dstChainId",
302
+ "type": "uint16"
303
+ },
304
+ {
305
+ "internalType": "address",
306
+ "name": "_userApplication",
307
+ "type": "address"
308
+ },
309
+ {
310
+ "internalType": "bytes",
311
+ "name": "_payload",
312
+ "type": "bytes"
313
+ },
314
+ {
315
+ "internalType": "bool",
316
+ "name": "_payInZRO",
317
+ "type": "bool"
318
+ },
319
+ {
320
+ "internalType": "bytes",
321
+ "name": "_adapterParams",
322
+ "type": "bytes"
323
+ }
324
+ ],
325
+ "name": "estimateFees",
326
+ "outputs": [
327
+ {
328
+ "internalType": "uint256",
329
+ "name": "nativeFee",
330
+ "type": "uint256"
331
+ },
332
+ {
333
+ "internalType": "uint256",
334
+ "name": "zroFee",
335
+ "type": "uint256"
336
+ }
337
+ ],
338
+ "stateMutability": "view",
339
+ "type": "function"
340
+ },
341
+ {
342
+ "inputs": [
343
+ {
344
+ "internalType": "uint16",
345
+ "name": "_srcChainId",
346
+ "type": "uint16"
347
+ },
348
+ {
349
+ "internalType": "bytes",
350
+ "name": "_srcAddress",
351
+ "type": "bytes"
352
+ }
353
+ ],
354
+ "name": "forceResumeReceive",
355
+ "outputs": [],
356
+ "stateMutability": "nonpayable",
357
+ "type": "function"
358
+ },
359
+ {
360
+ "inputs": [],
361
+ "name": "getChainId",
362
+ "outputs": [
363
+ {
364
+ "internalType": "uint16",
365
+ "name": "",
366
+ "type": "uint16"
367
+ }
368
+ ],
369
+ "stateMutability": "view",
370
+ "type": "function"
371
+ },
372
+ {
373
+ "inputs": [
374
+ {
375
+ "internalType": "uint16",
376
+ "name": "_version",
377
+ "type": "uint16"
378
+ },
379
+ {
380
+ "internalType": "uint16",
381
+ "name": "_chainId",
382
+ "type": "uint16"
383
+ },
384
+ {
385
+ "internalType": "address",
386
+ "name": "_userApplication",
387
+ "type": "address"
388
+ },
389
+ {
390
+ "internalType": "uint256",
391
+ "name": "_configType",
392
+ "type": "uint256"
393
+ }
394
+ ],
395
+ "name": "getConfig",
396
+ "outputs": [
397
+ {
398
+ "internalType": "bytes",
399
+ "name": "",
400
+ "type": "bytes"
401
+ }
402
+ ],
403
+ "stateMutability": "view",
404
+ "type": "function"
405
+ },
406
+ {
407
+ "inputs": [
408
+ {
409
+ "internalType": "uint16",
410
+ "name": "_srcChainId",
411
+ "type": "uint16"
412
+ },
413
+ {
414
+ "internalType": "bytes",
415
+ "name": "_srcAddress",
416
+ "type": "bytes"
417
+ }
418
+ ],
419
+ "name": "getInboundNonce",
420
+ "outputs": [
421
+ {
422
+ "internalType": "uint64",
423
+ "name": "",
424
+ "type": "uint64"
425
+ }
426
+ ],
427
+ "stateMutability": "view",
428
+ "type": "function"
429
+ },
430
+ {
431
+ "inputs": [
432
+ {
433
+ "internalType": "uint16",
434
+ "name": "_dstChainId",
435
+ "type": "uint16"
436
+ },
437
+ {
438
+ "internalType": "address",
439
+ "name": "_srcAddress",
440
+ "type": "address"
441
+ }
442
+ ],
443
+ "name": "getOutboundNonce",
444
+ "outputs": [
445
+ {
446
+ "internalType": "uint64",
447
+ "name": "",
448
+ "type": "uint64"
449
+ }
450
+ ],
451
+ "stateMutability": "view",
452
+ "type": "function"
453
+ },
454
+ {
455
+ "inputs": [
456
+ {
457
+ "internalType": "address",
458
+ "name": "_userApplication",
459
+ "type": "address"
460
+ }
461
+ ],
462
+ "name": "getReceiveLibraryAddress",
463
+ "outputs": [
464
+ {
465
+ "internalType": "address",
466
+ "name": "receiveLibraryAddress",
467
+ "type": "address"
468
+ }
469
+ ],
470
+ "stateMutability": "view",
471
+ "type": "function"
472
+ },
473
+ {
474
+ "inputs": [
475
+ {
476
+ "internalType": "address",
477
+ "name": "_userApplication",
478
+ "type": "address"
479
+ }
480
+ ],
481
+ "name": "getReceiveVersion",
482
+ "outputs": [
483
+ {
484
+ "internalType": "uint16",
485
+ "name": "",
486
+ "type": "uint16"
487
+ }
488
+ ],
489
+ "stateMutability": "view",
490
+ "type": "function"
491
+ },
492
+ {
493
+ "inputs": [
494
+ {
495
+ "internalType": "address",
496
+ "name": "_userApplication",
497
+ "type": "address"
498
+ }
499
+ ],
500
+ "name": "getSendLibraryAddress",
501
+ "outputs": [
502
+ {
503
+ "internalType": "address",
504
+ "name": "sendLibraryAddress",
505
+ "type": "address"
506
+ }
507
+ ],
508
+ "stateMutability": "view",
509
+ "type": "function"
510
+ },
511
+ {
512
+ "inputs": [
513
+ {
514
+ "internalType": "address",
515
+ "name": "_userApplication",
516
+ "type": "address"
517
+ }
518
+ ],
519
+ "name": "getSendVersion",
520
+ "outputs": [
521
+ {
522
+ "internalType": "uint16",
523
+ "name": "",
524
+ "type": "uint16"
525
+ }
526
+ ],
527
+ "stateMutability": "view",
528
+ "type": "function"
529
+ },
530
+ {
531
+ "inputs": [
532
+ {
533
+ "internalType": "uint16",
534
+ "name": "_srcChainId",
535
+ "type": "uint16"
536
+ },
537
+ {
538
+ "internalType": "bytes",
539
+ "name": "_srcAddress",
540
+ "type": "bytes"
541
+ }
542
+ ],
543
+ "name": "hasStoredPayload",
544
+ "outputs": [
545
+ {
546
+ "internalType": "bool",
547
+ "name": "",
548
+ "type": "bool"
549
+ }
550
+ ],
551
+ "stateMutability": "view",
552
+ "type": "function"
553
+ },
554
+ {
555
+ "inputs": [
556
+ {
557
+ "internalType": "uint16",
558
+ "name": "",
559
+ "type": "uint16"
560
+ },
561
+ {
562
+ "internalType": "bytes",
563
+ "name": "",
564
+ "type": "bytes"
565
+ }
566
+ ],
567
+ "name": "inboundNonce",
568
+ "outputs": [
569
+ {
570
+ "internalType": "uint64",
571
+ "name": "",
572
+ "type": "uint64"
573
+ }
574
+ ],
575
+ "stateMutability": "view",
576
+ "type": "function"
577
+ },
578
+ {
579
+ "inputs": [],
580
+ "name": "isReceivingPayload",
581
+ "outputs": [
582
+ {
583
+ "internalType": "bool",
584
+ "name": "",
585
+ "type": "bool"
586
+ }
587
+ ],
588
+ "stateMutability": "view",
589
+ "type": "function"
590
+ },
591
+ {
592
+ "inputs": [],
593
+ "name": "isSendingPayload",
594
+ "outputs": [
595
+ {
596
+ "internalType": "bool",
597
+ "name": "",
598
+ "type": "bool"
599
+ }
600
+ ],
601
+ "stateMutability": "view",
602
+ "type": "function"
603
+ },
604
+ {
605
+ "inputs": [],
606
+ "name": "latestVersion",
607
+ "outputs": [
608
+ {
609
+ "internalType": "uint16",
610
+ "name": "",
611
+ "type": "uint16"
612
+ }
613
+ ],
614
+ "stateMutability": "view",
615
+ "type": "function"
616
+ },
617
+ {
618
+ "inputs": [
619
+ {
620
+ "internalType": "uint16",
621
+ "name": "",
622
+ "type": "uint16"
623
+ }
624
+ ],
625
+ "name": "libraryLookup",
626
+ "outputs": [
627
+ {
628
+ "internalType": "contract ILayerZeroMessagingLibrary",
629
+ "name": "",
630
+ "type": "address"
631
+ }
632
+ ],
633
+ "stateMutability": "view",
634
+ "type": "function"
635
+ },
636
+ {
637
+ "inputs": [
638
+ {
639
+ "internalType": "address",
640
+ "name": "_newLayerZeroLibraryAddress",
641
+ "type": "address"
642
+ }
643
+ ],
644
+ "name": "newVersion",
645
+ "outputs": [],
646
+ "stateMutability": "nonpayable",
647
+ "type": "function"
648
+ },
649
+ {
650
+ "inputs": [
651
+ {
652
+ "internalType": "uint16",
653
+ "name": "",
654
+ "type": "uint16"
655
+ },
656
+ {
657
+ "internalType": "address",
658
+ "name": "",
659
+ "type": "address"
660
+ }
661
+ ],
662
+ "name": "outboundNonce",
663
+ "outputs": [
664
+ {
665
+ "internalType": "uint64",
666
+ "name": "",
667
+ "type": "uint64"
668
+ }
669
+ ],
670
+ "stateMutability": "view",
671
+ "type": "function"
672
+ },
673
+ {
674
+ "inputs": [],
675
+ "name": "owner",
676
+ "outputs": [
677
+ {
678
+ "internalType": "address",
679
+ "name": "",
680
+ "type": "address"
681
+ }
682
+ ],
683
+ "stateMutability": "view",
684
+ "type": "function"
685
+ },
686
+ {
687
+ "inputs": [
688
+ {
689
+ "internalType": "uint16",
690
+ "name": "_srcChainId",
691
+ "type": "uint16"
692
+ },
693
+ {
694
+ "internalType": "bytes",
695
+ "name": "_srcAddress",
696
+ "type": "bytes"
697
+ },
698
+ {
699
+ "internalType": "address",
700
+ "name": "_dstAddress",
701
+ "type": "address"
702
+ },
703
+ {
704
+ "internalType": "uint64",
705
+ "name": "_nonce",
706
+ "type": "uint64"
707
+ },
708
+ {
709
+ "internalType": "uint256",
710
+ "name": "_gasLimit",
711
+ "type": "uint256"
712
+ },
713
+ {
714
+ "internalType": "bytes",
715
+ "name": "_payload",
716
+ "type": "bytes"
717
+ }
718
+ ],
719
+ "name": "receivePayload",
720
+ "outputs": [],
721
+ "stateMutability": "nonpayable",
722
+ "type": "function"
723
+ },
724
+ {
725
+ "inputs": [],
726
+ "name": "renounceOwnership",
727
+ "outputs": [],
728
+ "stateMutability": "nonpayable",
729
+ "type": "function"
730
+ },
731
+ {
732
+ "inputs": [
733
+ {
734
+ "internalType": "uint16",
735
+ "name": "_srcChainId",
736
+ "type": "uint16"
737
+ },
738
+ {
739
+ "internalType": "bytes",
740
+ "name": "_srcAddress",
741
+ "type": "bytes"
742
+ },
743
+ {
744
+ "internalType": "bytes",
745
+ "name": "_payload",
746
+ "type": "bytes"
747
+ }
748
+ ],
749
+ "name": "retryPayload",
750
+ "outputs": [],
751
+ "stateMutability": "nonpayable",
752
+ "type": "function"
753
+ },
754
+ {
755
+ "inputs": [
756
+ {
757
+ "internalType": "uint16",
758
+ "name": "_dstChainId",
759
+ "type": "uint16"
760
+ },
761
+ {
762
+ "internalType": "bytes",
763
+ "name": "_destination",
764
+ "type": "bytes"
765
+ },
766
+ {
767
+ "internalType": "bytes",
768
+ "name": "_payload",
769
+ "type": "bytes"
770
+ },
771
+ {
772
+ "internalType": "address payable",
773
+ "name": "_refundAddress",
774
+ "type": "address"
775
+ },
776
+ {
777
+ "internalType": "address",
778
+ "name": "_zroPaymentAddress",
779
+ "type": "address"
780
+ },
781
+ {
782
+ "internalType": "bytes",
783
+ "name": "_adapterParams",
784
+ "type": "bytes"
785
+ }
786
+ ],
787
+ "name": "send",
788
+ "outputs": [],
789
+ "stateMutability": "payable",
790
+ "type": "function"
791
+ },
792
+ {
793
+ "inputs": [
794
+ {
795
+ "internalType": "uint16",
796
+ "name": "_version",
797
+ "type": "uint16"
798
+ },
799
+ {
800
+ "internalType": "uint16",
801
+ "name": "_chainId",
802
+ "type": "uint16"
803
+ },
804
+ {
805
+ "internalType": "uint256",
806
+ "name": "_configType",
807
+ "type": "uint256"
808
+ },
809
+ {
810
+ "internalType": "bytes",
811
+ "name": "_config",
812
+ "type": "bytes"
813
+ }
814
+ ],
815
+ "name": "setConfig",
816
+ "outputs": [],
817
+ "stateMutability": "nonpayable",
818
+ "type": "function"
819
+ },
820
+ {
821
+ "inputs": [
822
+ {
823
+ "internalType": "uint16",
824
+ "name": "_newDefaultReceiveVersion",
825
+ "type": "uint16"
826
+ }
827
+ ],
828
+ "name": "setDefaultReceiveVersion",
829
+ "outputs": [],
830
+ "stateMutability": "nonpayable",
831
+ "type": "function"
832
+ },
833
+ {
834
+ "inputs": [
835
+ {
836
+ "internalType": "uint16",
837
+ "name": "_newDefaultSendVersion",
838
+ "type": "uint16"
839
+ }
840
+ ],
841
+ "name": "setDefaultSendVersion",
842
+ "outputs": [],
843
+ "stateMutability": "nonpayable",
844
+ "type": "function"
845
+ },
846
+ {
847
+ "inputs": [
848
+ {
849
+ "internalType": "uint16",
850
+ "name": "_newVersion",
851
+ "type": "uint16"
852
+ }
853
+ ],
854
+ "name": "setReceiveVersion",
855
+ "outputs": [],
856
+ "stateMutability": "nonpayable",
857
+ "type": "function"
858
+ },
859
+ {
860
+ "inputs": [
861
+ {
862
+ "internalType": "uint16",
863
+ "name": "_newVersion",
864
+ "type": "uint16"
865
+ }
866
+ ],
867
+ "name": "setSendVersion",
868
+ "outputs": [],
869
+ "stateMutability": "nonpayable",
870
+ "type": "function"
871
+ },
872
+ {
873
+ "inputs": [
874
+ {
875
+ "internalType": "uint16",
876
+ "name": "",
877
+ "type": "uint16"
878
+ },
879
+ {
880
+ "internalType": "bytes",
881
+ "name": "",
882
+ "type": "bytes"
883
+ }
884
+ ],
885
+ "name": "storedPayload",
886
+ "outputs": [
887
+ {
888
+ "internalType": "uint64",
889
+ "name": "payloadLength",
890
+ "type": "uint64"
891
+ },
892
+ {
893
+ "internalType": "address",
894
+ "name": "dstAddress",
895
+ "type": "address"
896
+ },
897
+ {
898
+ "internalType": "bytes32",
899
+ "name": "payloadHash",
900
+ "type": "bytes32"
901
+ }
902
+ ],
903
+ "stateMutability": "view",
904
+ "type": "function"
905
+ },
906
+ {
907
+ "inputs": [
908
+ {
909
+ "internalType": "address",
910
+ "name": "newOwner",
911
+ "type": "address"
912
+ }
913
+ ],
914
+ "name": "transferOwnership",
915
+ "outputs": [],
916
+ "stateMutability": "nonpayable",
917
+ "type": "function"
918
+ },
919
+ {
920
+ "inputs": [
921
+ {
922
+ "internalType": "address",
923
+ "name": "",
924
+ "type": "address"
925
+ }
926
+ ],
927
+ "name": "uaConfigLookup",
928
+ "outputs": [
929
+ {
930
+ "internalType": "uint16",
931
+ "name": "sendVersion",
932
+ "type": "uint16"
933
+ },
934
+ {
935
+ "internalType": "uint16",
936
+ "name": "receiveVersion",
937
+ "type": "uint16"
938
+ },
939
+ {
940
+ "internalType": "address",
941
+ "name": "receiveLibraryAddress",
942
+ "type": "address"
943
+ },
944
+ {
945
+ "internalType": "contract ILayerZeroMessagingLibrary",
946
+ "name": "sendLibrary",
947
+ "type": "address"
948
+ }
949
+ ],
950
+ "stateMutability": "view",
951
+ "type": "function"
952
+ }
953
+ ],
954
+ "bytecode": "0x60a06040526008805461ff001960ff19909116600117166101001790553480156200002957600080fd5b50d380156200003757600080fd5b50d280156200004557600080fd5b5060405162003b6c38038062003b6c833981810160405260208110156200006b57600080fd5b5051600062000079620000d9565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060f01b6001600160f01b031916608052620000dd565b3390565b60805160f01c613a6c6200010060003980611a47528061201b5250613a6c6000f3fe6080604052600436106102855760003560e01c80639c729da111610153578063ca066b35116100cb578063f2fde38b1161007f578063f5ecbdbc11610064578063f5ecbdbc146111c8578063faee093f146112a4578063fdc07c70146112d357610285565b8063f2fde38b146110f8578063f4abee4b1461114557610285565b8063da1a7c9a116100b0578063da1a7c9a1461104d578063e97a448a1461109a578063ebfea6e0146110c957610285565b8063ca066b3514610f6c578063cbed8b9c14610f9b57610285565b8063bd42a71311610122578063c2fa481311610107578063c2fa481314610cd3578063c580310014610dec578063c7e3711714610f2457610285565b8063bd42a71314610c5c578063c07f47d414610ca457610285565b80639c729da114610a95578063a91606df14610ae2578063aaff5f1614610b11578063b208649914610c0557610285565b806342d65a8d1161020157806376a386dc116101b55780638da5cb5b1161019a5780638da5cb5b1461095f5780639924d33b1461098e5780639a8a059214610a6657610285565b806376a386dc146107e25780637a145748146108eb57610285565b80635d9ef01a116101e65780635d9ef01a14610737578063715018a61461076657806371ba2fd61461079557610285565b806342d65a8d1461064a5780634afb422b146106ec57610285565b806310ddb1371161025857806324ba3f2c1161023d57806324ba3f2c146104cb5780633408e470146104fa57806340a7bb101461052957610285565b806310ddb13714610436578063158c81ad1461047e57610285565b806307e0db171461028a578063096568f6146102d45780630b837bb5146103385780630eaf6ea614610380575b600080fd5b34801561029657600080fd5b50d380156102a357600080fd5b50d280156102b057600080fd5b506102d2600480360360208110156102c757600080fd5b503561ffff16611375565b005b3480156102e057600080fd5b50d380156102ed57600080fd5b50d280156102fa57600080fd5b506103216004803603602081101561031157600080fd5b50356001600160a01b03166114ac565b6040805161ffff9092168252519081900360200190f35b34801561034457600080fd5b50d3801561035157600080fd5b50d2801561035e57600080fd5b506102d26004803603602081101561037557600080fd5b503561ffff166114eb565b34801561038c57600080fd5b50d3801561039957600080fd5b50d280156103a657600080fd5b50610422600480360360408110156103bd57600080fd5b61ffff82351691908101906040810160208201356401000000008111156103e357600080fd5b8201836020820111156103f557600080fd5b8035906020019184600183028401116401000000008311171561041757600080fd5b5090925090506116cb565b604080519115158252519081900360200190f35b34801561044257600080fd5b50d3801561044f57600080fd5b50d2801561045c57600080fd5b506102d26004803603602081101561047357600080fd5b503561ffff16611717565b34801561048a57600080fd5b50d3801561049757600080fd5b50d280156104a457600080fd5b506102d2600480360360208110156104bb57600080fd5b50356001600160a01b0316611857565b3480156104d757600080fd5b50d380156104e457600080fd5b50d280156104f157600080fd5b50610321611a40565b34801561050657600080fd5b50d3801561051357600080fd5b50d2801561052057600080fd5b50610321611a45565b34801561053557600080fd5b50d3801561054257600080fd5b50d2801561054f57600080fd5b50610631600480360360a081101561056657600080fd5b61ffff823516916001600160a01b036020820135169181019060608101604082013564010000000081111561059a57600080fd5b8201836020820111156105ac57600080fd5b803590602001918460018302840111640100000000831117156105ce57600080fd5b9193909282351515926040810190602001356401000000008111156105f257600080fd5b82018360208201111561060457600080fd5b8035906020019184600183028401116401000000008311171561062657600080fd5b509092509050611a69565b6040805192835260208301919091528051918290030190f35b34801561065657600080fd5b50d3801561066357600080fd5b50d2801561067057600080fd5b506102d26004803603604081101561068757600080fd5b61ffff82351691908101906040810160208201356401000000008111156106ad57600080fd5b8201836020820111156106bf57600080fd5b803590602001918460018302840111640100000000831117156106e157600080fd5b509092509050611bc2565b3480156106f857600080fd5b50d3801561070557600080fd5b50d2801561071257600080fd5b5061071b611d62565b604080516001600160a01b039092168252519081900360200190f35b34801561074357600080fd5b50d3801561075057600080fd5b50d2801561075d57600080fd5b50610321611d79565b34801561077257600080fd5b50d3801561077f57600080fd5b50d2801561078c57600080fd5b506102d2611d83565b3480156107a157600080fd5b50d380156107ae57600080fd5b50d280156107bb57600080fd5b5061071b600480360360208110156107d257600080fd5b50356001600160a01b0316611e59565b3480156107ee57600080fd5b50d380156107fb57600080fd5b50d2801561080857600080fd5b506108ba6004803603604081101561081f57600080fd5b61ffff823516919081019060408101602082013564010000000081111561084557600080fd5b82018360208201111561085757600080fd5b8035906020019184600183028401116401000000008311171561087957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611f43945050505050565b6040805167ffffffffffffffff90941684526001600160a01b03909216602084015282820152519081900360600190f35b3480156108f757600080fd5b50d3801561090457600080fd5b50d2801561091157600080fd5b506109426004803603604081101561092857600080fd5b50803561ffff1690602001356001600160a01b0316611f9a565b6040805167ffffffffffffffff9092168252519081900360200190f35b34801561096b57600080fd5b50d3801561097857600080fd5b50d2801561098557600080fd5b5061071b611fd2565b34801561099a57600080fd5b50d380156109a757600080fd5b50d280156109b457600080fd5b50610942600480360360408110156109cb57600080fd5b61ffff82351691908101906040810160208201356401000000008111156109f157600080fd5b820183602082011115610a0357600080fd5b80359060200191846001830284011164010000000083111715610a2557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611fe1945050505050565b348015610a7257600080fd5b50d38015610a7f57600080fd5b50d28015610a8c57600080fd5b50610321612019565b348015610aa157600080fd5b50d38015610aae57600080fd5b50d28015610abb57600080fd5b5061071b60048036036020811015610ad257600080fd5b50356001600160a01b031661203d565b348015610aee57600080fd5b50d38015610afb57600080fd5b50d28015610b0857600080fd5b5061032161211a565b348015610b1d57600080fd5b50d38015610b2a57600080fd5b50d28015610b3757600080fd5b506102d260048036036060811015610b4e57600080fd5b61ffff8235169190810190604081016020820135640100000000811115610b7457600080fd5b820183602082011115610b8657600080fd5b80359060200191846001830284011164010000000083111715610ba857600080fd5b919390929091602081019035640100000000811115610bc657600080fd5b820183602082011115610bd857600080fd5b80359060200191846001830284011164010000000083111715610bfa57600080fd5b509092509050612120565b348015610c1157600080fd5b50d38015610c1e57600080fd5b50d28015610c2b57600080fd5b5061094260048036036040811015610c4257600080fd5b50803561ffff1690602001356001600160a01b0316612505565b348015610c6857600080fd5b50d38015610c7557600080fd5b50d28015610c8257600080fd5b506102d260048036036020811015610c9957600080fd5b503561ffff1661252c565b348015610cb057600080fd5b50d38015610cbd57600080fd5b50d28015610cca57600080fd5b50610321612712565b348015610cdf57600080fd5b50d38015610cec57600080fd5b50d28015610cf957600080fd5b506102d2600480360360c0811015610d1057600080fd5b61ffff8235169190810190604081016020820135640100000000811115610d3657600080fd5b820183602082011115610d4857600080fd5b80359060200191846001830284011164010000000083111715610d6a57600080fd5b919390926001600160a01b038335169267ffffffffffffffff602082013516926040820135929091608081019060600135640100000000811115610dad57600080fd5b820183602082011115610dbf57600080fd5b80359060200191846001830284011164010000000083111715610de157600080fd5b509092509050612734565b6102d2600480360360c0811015610e0257600080fd5b61ffff8235169190810190604081016020820135640100000000811115610e2857600080fd5b820183602082011115610e3a57600080fd5b80359060200191846001830284011164010000000083111715610e5c57600080fd5b919390929091602081019035640100000000811115610e7a57600080fd5b820183602082011115610e8c57600080fd5b80359060200191846001830284011164010000000083111715610eae57600080fd5b919390926001600160a01b0383358116936020810135909116929190606081019060400135640100000000811115610ee557600080fd5b820183602082011115610ef757600080fd5b80359060200191846001830284011164010000000083111715610f1957600080fd5b509092509050612d57565b348015610f3057600080fd5b50d38015610f3d57600080fd5b50d28015610f4a57600080fd5b5061071b60048036036020811015610f6157600080fd5b503561ffff16612fb6565b348015610f7857600080fd5b50d38015610f8557600080fd5b50d28015610f9257600080fd5b50610422612fd1565b348015610fa757600080fd5b50d38015610fb457600080fd5b50d28015610fc157600080fd5b506102d260048036036080811015610fd857600080fd5b61ffff82358116926020810135909116916040820135919081019060808101606082013564010000000081111561100e57600080fd5b82018360208201111561102057600080fd5b8035906020019184600183028401116401000000008311171561104257600080fd5b509092509050612fe2565b34801561105957600080fd5b50d3801561106657600080fd5b50d2801561107357600080fd5b506103216004803603602081101561108a57600080fd5b50356001600160a01b03166131d8565b3480156110a657600080fd5b50d380156110b357600080fd5b50d280156110c057600080fd5b50610422613226565b3480156110d557600080fd5b50d380156110e257600080fd5b50d280156110ef57600080fd5b5061071b613232565b34801561110457600080fd5b50d3801561111157600080fd5b50d2801561111e57600080fd5b506102d26004803603602081101561113557600080fd5b50356001600160a01b0316613241565b34801561115157600080fd5b50d3801561115e57600080fd5b50d2801561116b57600080fd5b506111926004803603602081101561118257600080fd5b50356001600160a01b031661336d565b6040805161ffff95861681529390941660208401526001600160a01b039182168385015216606082015290519081900360800190f35b3480156111d457600080fd5b50d380156111e157600080fd5b50d280156111ee57600080fd5b5061122f6004803603608081101561120557600080fd5b5061ffff81358116916020810135909116906001600160a01b0360408201351690606001356133ac565b6040805160208082528351818301528351919283929083019185019080838360005b83811015611269578181015183820152602001611251565b50505050905090810190601f1680156112965780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156112b057600080fd5b50d380156112bd57600080fd5b50d280156112ca57600080fd5b5061032161363c565b3480156112df57600080fd5b50d380156112ec57600080fd5b50d280156112f957600080fd5b506109426004803603604081101561131057600080fd5b61ffff823516919081019060408101602082013564010000000081111561133657600080fd5b82018360208201111561134857600080fd5b8035906020019184600183028401116401000000008311171561136a57600080fd5b50909250905061364c565b600054819061ffff7401000000000000000000000000000000000000000090910481169082161115806113ab575061ffff818116145b6113e65760405162461bcd60e51b815260040180806020018281038252602c81526020018061377a602c913960400191505060405180910390fd5b336000818152600460209081526040808320805461ffff88167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000909116811782558085526001808552948390205494820180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039690961695909517909455815194855291840192909252815190927ff2bc255571446a2f9b7cb2f0c75fd6a279bdb469f515d5a5c9910f713aeb32ca92908290030190a1505050565b6001600160a01b0381166000908152600460205260408120805461ffff16156114da57805461ffff166114e2565b60025461ffff165b9150505b919050565b6114f3613699565b6001600160a01b0316611504611fd2565b6001600160a01b03161461155f576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600054819061ffff740100000000000000000000000000000000000000009091048116908216111580611595575061ffff818116145b6115d05760405162461bcd60e51b815260040180806020018281038252602c81526020018061377a602c913960400191505060405180910390fd5b61ffff82166116105760405162461bcd60e51b81526004018080602001828103825260288152602001806139b56028913960400191505060405180910390fd5b600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001661ffff848116918217808455908116600090815260016020908152604091829020547fffffffffffffffff0000000000000000000000000000000000000000ffffffff9093166001600160a01b039093166401000000000292909217909355825191825291517feb685c087d38029bbde35299b748c6b80f099c7e5c3f9fe2dbb3ace1099e3b07929181900390910190a15050565b61ffff8316600090815260076020526040808220905182919085908590808383808284379190910194855250506040519283900360200190922060010154151593505050509392505050565b600054819061ffff74010000000000000000000000000000000000000000909104811690821611158061174d575061ffff818116145b6117885760405162461bcd60e51b815260040180806020018281038252602c81526020018061377a602c913960400191505060405180910390fd5b33600081815260046020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff166201000061ffff8916908102919091178083558186526001855294839020547fffffffffffffffff0000000000000000000000000000000000000000ffffffff9095166001600160a01b0390951664010000000002949094178155815194855291840192909252815190927f9c199418af68d1547d7b99c71ee6a9eb18b27990dfcfb38982f3e3fb8c7b6bef92908290030190a1505050565b61185f613699565b6001600160a01b0316611870611fd2565b6001600160a01b0316146118cb576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0381166119105760405162461bcd60e51b815260040180806020018281038252602d81526020018061390b602d913960400191505060405180910390fd5b60005461ffff7401000000000000000000000000000000000000000090910481161061196d5760405162461bcd60e51b815260040180806020018281038252602c8152602001806138df602c913960400191505060405180910390fd5b60008054600161ffff7401000000000000000000000000000000000000000080840482168301821681027fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff90941693909317808555839004811684526020918252604080852080546001600160a01b0388167fffffffffffffffffffffffff00000000000000000000000000000000000000009091161790559354845193900416825291517f18c7402e58a1bec57f4eb75af242f65ababbbe09d9db383e0542f00635e5b8c5929181900390910190a150565b600081565b7f000000000000000000000000000000000000000000000000000000000000000090565b6001600160a01b03861660009081526004602052604081208054829190829061ffff1615611aa45760018201546001600160a01b0316611ab9565b60025464010000000090046001600160a01b03165b9050806001600160a01b03166340a7bb108c8c8c8c8c8c8c6040518863ffffffff1660e01b8152600401808861ffff168152602001876001600160a01b03168152602001806020018515158152602001806020018381038352888882818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600081840152601f19601f8201169050808301925050509950505050505050505050604080518083038186803b158015611b7d57600080fd5b505afa158015611b91573d6000803e3d6000fd5b505050506040513d6040811015611ba757600080fd5b508051602090910151909c909b509950505050505050505050565b61ffff83166000908152600760205260408082209051849084908083838082843791909101948552505060405192839003602001909220600181015490935015159150611c589050576040805162461bcd60e51b815260206004820152601c60248201527f4c617965725a65726f3a206e6f2073746f726564207061796c6f616400000000604482015290519081900360640190fd5b80546801000000000000000090046001600160a01b03163314611cc2576040805162461bcd60e51b815260206004820152601960248201527f4c617965725a65726f3a20696e76616c69642063616c6c657200000000000000604482015290519081900360640190fd5b80547fffffffff00000000000000000000000000000000000000000000000000000000168155600060018201556040805161ffff86168152602081018281529181018490527f23d2684f396e92a6e2ff2d16f98e6fea00d50cb27a64b531bc0748f730211f98918691869186919060608201848480828437600083820152604051601f909101601f1916909201829003965090945050505050a150505050565b60025464010000000090046001600160a01b031681565b60025461ffff1681565b611d8b613699565b6001600160a01b0316611d9c611fd2565b6001600160a01b031614611df7576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b6001600160a01b0381166000908152600460205260408120805461ffff62010000909104811690811415611ebe5760405162461bcd60e51b815260040180806020018281038252602b815260200180613a0c602b913960400191505060405180910390fd5b61ffff8116611f265760025462010000900461ffff9081161415611f135760405162461bcd60e51b81526004018080602001828103825260358152602001806137a66035913960400191505060405180910390fd5b6003546001600160a01b03169250611f3c565b815464010000000090046001600160a01b031692505b5050919050565b600760209081526000928352604090922081518083018401805192815290840192909301919091209152805460019091015467ffffffffffffffff8216916801000000000000000090046001600160a01b03169083565b61ffff821660009081526006602090815260408083206001600160a01b038516845290915290205467ffffffffffffffff1692915050565b6000546001600160a01b031690565b6005602090815260009283526040909220815180830184018051928152908401929093019190912091525467ffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6001600160a01b0381166000908152600460205260408120805461ffff9081169081141561209c5760405162461bcd60e51b81526004018080602001828103825260288152602001806138b76028913960400191505060405180910390fd5b61ffff81166121065760025461ffff90811614156120eb5760405162461bcd60e51b815260040180806020018281038252603281526020018061384f6032913960400191505060405180910390fd5b60025464010000000090046001600160a01b03169250611f3c565b50600101546001600160a01b031692915050565b61ffff81565b600854610100900460ff1660011461217f576040805162461bcd60e51b815260206004820181905260248201527f4c617965725a65726f3a206e6f2072656365697665207265656e7472616e6379604482015290519081900360640190fd5b600880547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661020017905561ffff851660009081526007602052604080822090518690869080838380828437919091019485525050604051928390036020019092206001810154909350151591506122419050576040805162461bcd60e51b815260206004820152601c60248201527f4c617965725a65726f3a206e6f2073746f726564207061796c6f616400000000604482015290519081900360640190fd5b805467ffffffffffffffff168214801561227c5750806001015483836040518083838082843780830192505050925050506040518091039020145b6122cd576040805162461bcd60e51b815260206004820152601a60248201527f4c617965725a65726f3a20696e76616c6964207061796c6f6164000000000000604482015290519081900360640190fd5b80547fffffffff000000000000000000000000000000000000000000000000000000008116825560006001830181905561ffff88168152600560205260408082209051680100000000000000009093046001600160a01b0316928890889080838380828437919091019485525050604051928390036020018320547e1d356700000000000000000000000000000000000000000000000000000000845261ffff8c166004850190815267ffffffffffffffff90911660448501819052608060248601908152608486018c90529095506001600160a01b03871694621d356794508d93508c928c9288928d928d929091606481019060a401888880828437600083820152601f01601f191690910184810383528581526020019050858580828437600081840152601f19601f82011690508083019250505098505050505050505050600060405180830381600087803b15801561242857600080fd5b505af115801561243c573d6000803e3d6000fd5b505050507f612434f39581c8e7d99746c9c20c6eb0ce8c0eb99f007c5719d620841370957d8888888486604051808661ffff168152602001806020018467ffffffffffffffff168152602001836001600160a01b031681526020018281038252868682818152602001925080828437600083820152604051601f909101601f19169092018290039850909650505050505050a15050600880547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179055505050505050565b600660209081526000928352604080842090915290825290205467ffffffffffffffff1681565b612534613699565b6001600160a01b0316612545611fd2565b6001600160a01b0316146125a0576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600054819061ffff7401000000000000000000000000000000000000000090910481169082161115806125d6575061ffff818116145b6126115760405162461bcd60e51b815260040180806020018281038252602c81526020018061377a602c913960400191505060405180910390fd5b61ffff82166126515760405162461bcd60e51b815260040180806020018281038252602b815260200180613967602b913960400191505060405180910390fd5b600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff166201000061ffff8581168281029390931793849055920490911660009081526001602090815260409182902054600380546001600160a01b039092167fffffffffffffffffffffffff0000000000000000000000000000000000000000909216919091179055815192835290517f96874dbe70c8a59e7996847475489a70a1b5096ed92cdc858b63ebabd071f8199281900390910190a15050565b60005474010000000000000000000000000000000000000000900461ffff1681565b600854610100900460ff16600114612793576040805162461bcd60e51b815260206004820181905260248201527f4c617965725a65726f3a206e6f2072656365697665207265656e7472616e6379604482015290519081900360640190fd5b600880547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661020017905561ffff8816600090815260056020526040908190209051889088908083838082843791909101948552505060405192839003602001909220805467ffffffffffffffff80821660010181167fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000909216821790925590871614915061288c9050576040805162461bcd60e51b815260206004820152601660248201527f4c617965725a65726f3a2077726f6e67206e6f6e636500000000000000000000604482015290519081900360640190fd5b6001600160a01b0385166000908152600460205260409020805462010000900461ffff16612902576003546001600160a01b031633146128fd5760405162461bcd60e51b81526004018080602001828103825260228152602001806137db6022913960400191505060405180910390fd5b612968565b805464010000000090046001600160a01b03163314612968576040805162461bcd60e51b815260206004820152601a60248201527f4c617965725a65726f3a20696e76616c6964206c696272617279000000000000604482015290519081900360640190fd5b61ffff891660009081526007602052604080822090518a908a90808383808284379190910194855250506040519283900360200190922060018101549093501591506129fd9050576040805162461bcd60e51b815260206004820152601e60248201527f4c617965725a65726f3a20696e206d65737361676520626c6f636b696e670000604482015290519081900360640190fd5b866001600160a01b0316621d3567868c8c8c8b8a8a6040518863ffffffff1660e01b8152600401808761ffff168152602001806020018567ffffffffffffffff168152602001806020018381038352888882818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600081840152601f19601f82011690508083019250505098505050505050505050600060405180830381600088803b158015612ab957600080fd5b5087f193505050508015612acb575060015b612d1f573d808015612af9576040519150601f19603f3d011682016040523d82523d6000602084013e612afe565b606091505b5060405180606001604052808686905067ffffffffffffffff168152602001896001600160a01b0316815260200186866040518083838082843780830192505050925050506040518091039020815250600760008d61ffff1661ffff1681526020019081526020016000208b8b604051808383808284378083019250505092505050908152602001604051809103902060008201518160000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060208201518160000160086101000a8154816001600160a01b0302191690836001600160a01b03160217905550604082015181600101559050507f0f9e4d95b62f08222d612b5ab92039cd8fbbbea550a95e8df9f927436bbdf5db8b8b8b8b8b8a8a88604051808961ffff16815260200180602001876001600160a01b031681526020018667ffffffffffffffff168152602001806020018060200184810384528b8b82818152602001925080828437600083820152601f01601f1916909101858103845287815260200190508787808284376000838201819052601f909101601f191690920186810384528751815287516020918201939189019250908190849084905b83811015612cda578181015183820152602001612cc2565b50505050905090810190601f168015612d075780820380516001836020036101000a031916815260200191505b509b50505050505050505050505060405180910390a1505b5050600880547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555050505050505050565b60085460ff16600114612db1576040805162461bcd60e51b815260206004820152601d60248201527f4c617965725a65726f3a206e6f2073656e64207265656e7472616e6379000000604482015290519081900360640190fd5b6008805460027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0090911617905533600081815260046020908152604080832061ffff8e1684526006835281842094845293909152902080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000811667ffffffffffffffff91821660010191821617909155612e4b8261369d565b6001600160a01b0316634d3a0f7c3433848f8f8f8f8f8f8f8f8f6040518d63ffffffff1660e01b8152600401808c6001600160a01b031681526020018b67ffffffffffffffff1681526020018a61ffff1681526020018060200180602001876001600160a01b03168152602001866001600160a01b031681526020018060200184810384528c8c82818152602001925080828437600083820152601f01601f191690910185810384528a815260200190508a8a80828437600083820152601f01601f191690910185810383528681526020019050868680828437600081840152601f19601f8201169050808301925050509e5050505050505050505050505050506000604051808303818588803b158015612f6557600080fd5b505af1158015612f79573d6000803e3d6000fd5b5050600880547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555050505050505050505050505050565b6001602052600090815260409020546001600160a01b031681565b600854610100900460ff1660021490565b600054859061ffff740100000000000000000000000000000000000000009091048116908216111580613018575061ffff818116145b6130535760405162461bcd60e51b815260040180806020018281038252602c81526020018061377a602c913960400191505060405180910390fd5b61ffff86166130b35760025461ffff8082166201000090920416146130a95760405162461bcd60e51b81526004018080602001828103825260368152602001806138816036913960400191505060405180910390fd5b60025461ffff1695505b61ffff86811614156130f65760405162461bcd60e51b815260040180806020018281038252602f8152602001806139dd602f913960400191505060405180910390fd5b61ffff808716600090815260016020526040908190205490517ff8e1734c00000000000000000000000000000000000000000000000000000000815291871660048301908152336024840181905260448401889052608060648501908152608485018790526001600160a01b039093169363f8e1734c938a938a928a928a929160a401848480828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156131b857600080fd5b505af11580156131cc573d6000803e3d6000fd5b50505050505050505050565b6001600160a01b0381166000908152600460205260408120805462010000900461ffff161561321257805462010000900461ffff166114e2565b505060025462010000900461ffff16919050565b60085460ff1660021490565b6003546001600160a01b031681565b613249613699565b6001600160a01b031661325a611fd2565b6001600160a01b0316146132b5576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0381166132fa5760405162461bcd60e51b81526004018080602001828103825260268152602001806137fd6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6004602052600090815260409020805460019091015461ffff80831692620100008104909116916001600160a01b036401000000009092048216911684565b600054606090859061ffff7401000000000000000000000000000000000000000090910481169082161115806133e5575061ffff818116145b6134205760405162461bcd60e51b815260040180806020018281038252602c81526020018061377a602c913960400191505060405180910390fd5b61ffff86166134805760025461ffff8082166201000090920416146134765760405162461bcd60e51b815260040180806020018281038252602c815260200180613823602c913960400191505060405180910390fd5b60025461ffff1695505b61ffff86811614156134c35760405162461bcd60e51b815260040180806020018281038252602f815260200180613938602f913960400191505060405180910390fd5b61ffff8087166000908152600160205260408082205481517f52d2871f00000000000000000000000000000000000000000000000000000000815293891660048501526001600160a01b0388811660248601526044850188905291519116926352d2871f926064808301939192829003018186803b15801561354457600080fd5b505afa158015613558573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561358157600080fd5b81019080805160405193929190846401000000008211156135a157600080fd5b9083019060208201858111156135b657600080fd5b82516401000000008111828201881017156135d057600080fd5b82525081516020918201929091019080838360005b838110156135fd5781810151838201526020016135e5565b50505050905090810190601f16801561362a5780820380516001836020036101000a031916815260200191505b50604052505050915050949350505050565b60025462010000900461ffff1681565b61ffff831660009081526005602052604080822090518490849080838380828437919091019485525050604051928390036020019092205467ffffffffffffffff16925050509392505050565b3390565b805460009061ffff1661370a5760025461ffff90811614156136f05760405162461bcd60e51b81526004018080602001828103825260238152602001806139926023913960400191505060405180910390fd5b5060025464010000000090046001600160a01b03166114e6565b815461ffff9081161415613765576040805162461bcd60e51b815260206004820152601b60248201527f4c617965725a65726f3a20696e20424c4f434b5f56455253494f4e0000000000604482015290519081900360640190fd5b5060018101546001600160a01b03166114e656fe4c617965725a65726f3a20696e76616c6964206d6573736167696e67206c6962726172792076657273696f6e4c617965725a65726f3a20726563656976652076657273696f6e202864656661756c742920697320424c4f434b5f56455253494f4e4c617965725a65726f3a20696e76616c69642064656661756c74206c6962726172794f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734c617965725a65726f3a206e6f2044454641554c5420636f6e666967207768696c65206d6967726174696f6e4c617965725a65726f3a2073656e642076657273696f6e202864656661756c742920697320424c4f434b5f56455253494f4e4c617965725a65726f3a2063616e206e6f742073657420436f6e66696720647572696e672044454641554c54206d6967726174696f6e4c617965725a65726f3a2073656e642076657273696f6e20697320424c4f434b5f56455253494f4e4c617965725a65726f3a2063616e206e6f7420616464206e6577206d6573736167696e67206c6962726172794c617965725a65726f3a206e65772076657273696f6e2063616e6e6f74206265207a65726f20616464726573734c617965725a65726f3a2063616e206e6f742067657420636f6e66696720666f7220424c4f434b5f56455253494f4e4c617965725a65726f3a2064656661756c7420726563656976652076657273696f6e206d757374203e20304c617965725a65726f3a2064656661756c7420696e20424c4f434b5f56455253494f4e4c617965725a65726f3a2064656661756c742073656e642076657273696f6e206d757374203e20304c617965725a65726f3a2063616e206e6f742073657420636f6e66696720666f7220424c4f434b5f56455253494f4e4c617965725a65726f3a20726563656976652076657273696f6e20697320424c4f434b5f56455253494f4ea2646970667358221220825eadf22ac468048901c4979f09647d025ea4c576f641cfc6e63aac0dbe28fe64736f6c63430007060033",
955
+ "deployedBytecode": "0x6080604052600436106102855760003560e01c80639c729da111610153578063ca066b35116100cb578063f2fde38b1161007f578063f5ecbdbc11610064578063f5ecbdbc146111c8578063faee093f146112a4578063fdc07c70146112d357610285565b8063f2fde38b146110f8578063f4abee4b1461114557610285565b8063da1a7c9a116100b0578063da1a7c9a1461104d578063e97a448a1461109a578063ebfea6e0146110c957610285565b8063ca066b3514610f6c578063cbed8b9c14610f9b57610285565b8063bd42a71311610122578063c2fa481311610107578063c2fa481314610cd3578063c580310014610dec578063c7e3711714610f2457610285565b8063bd42a71314610c5c578063c07f47d414610ca457610285565b80639c729da114610a95578063a91606df14610ae2578063aaff5f1614610b11578063b208649914610c0557610285565b806342d65a8d1161020157806376a386dc116101b55780638da5cb5b1161019a5780638da5cb5b1461095f5780639924d33b1461098e5780639a8a059214610a6657610285565b806376a386dc146107e25780637a145748146108eb57610285565b80635d9ef01a116101e65780635d9ef01a14610737578063715018a61461076657806371ba2fd61461079557610285565b806342d65a8d1461064a5780634afb422b146106ec57610285565b806310ddb1371161025857806324ba3f2c1161023d57806324ba3f2c146104cb5780633408e470146104fa57806340a7bb101461052957610285565b806310ddb13714610436578063158c81ad1461047e57610285565b806307e0db171461028a578063096568f6146102d45780630b837bb5146103385780630eaf6ea614610380575b600080fd5b34801561029657600080fd5b50d380156102a357600080fd5b50d280156102b057600080fd5b506102d2600480360360208110156102c757600080fd5b503561ffff16611375565b005b3480156102e057600080fd5b50d380156102ed57600080fd5b50d280156102fa57600080fd5b506103216004803603602081101561031157600080fd5b50356001600160a01b03166114ac565b6040805161ffff9092168252519081900360200190f35b34801561034457600080fd5b50d3801561035157600080fd5b50d2801561035e57600080fd5b506102d26004803603602081101561037557600080fd5b503561ffff166114eb565b34801561038c57600080fd5b50d3801561039957600080fd5b50d280156103a657600080fd5b50610422600480360360408110156103bd57600080fd5b61ffff82351691908101906040810160208201356401000000008111156103e357600080fd5b8201836020820111156103f557600080fd5b8035906020019184600183028401116401000000008311171561041757600080fd5b5090925090506116cb565b604080519115158252519081900360200190f35b34801561044257600080fd5b50d3801561044f57600080fd5b50d2801561045c57600080fd5b506102d26004803603602081101561047357600080fd5b503561ffff16611717565b34801561048a57600080fd5b50d3801561049757600080fd5b50d280156104a457600080fd5b506102d2600480360360208110156104bb57600080fd5b50356001600160a01b0316611857565b3480156104d757600080fd5b50d380156104e457600080fd5b50d280156104f157600080fd5b50610321611a40565b34801561050657600080fd5b50d3801561051357600080fd5b50d2801561052057600080fd5b50610321611a45565b34801561053557600080fd5b50d3801561054257600080fd5b50d2801561054f57600080fd5b50610631600480360360a081101561056657600080fd5b61ffff823516916001600160a01b036020820135169181019060608101604082013564010000000081111561059a57600080fd5b8201836020820111156105ac57600080fd5b803590602001918460018302840111640100000000831117156105ce57600080fd5b9193909282351515926040810190602001356401000000008111156105f257600080fd5b82018360208201111561060457600080fd5b8035906020019184600183028401116401000000008311171561062657600080fd5b509092509050611a69565b6040805192835260208301919091528051918290030190f35b34801561065657600080fd5b50d3801561066357600080fd5b50d2801561067057600080fd5b506102d26004803603604081101561068757600080fd5b61ffff82351691908101906040810160208201356401000000008111156106ad57600080fd5b8201836020820111156106bf57600080fd5b803590602001918460018302840111640100000000831117156106e157600080fd5b509092509050611bc2565b3480156106f857600080fd5b50d3801561070557600080fd5b50d2801561071257600080fd5b5061071b611d62565b604080516001600160a01b039092168252519081900360200190f35b34801561074357600080fd5b50d3801561075057600080fd5b50d2801561075d57600080fd5b50610321611d79565b34801561077257600080fd5b50d3801561077f57600080fd5b50d2801561078c57600080fd5b506102d2611d83565b3480156107a157600080fd5b50d380156107ae57600080fd5b50d280156107bb57600080fd5b5061071b600480360360208110156107d257600080fd5b50356001600160a01b0316611e59565b3480156107ee57600080fd5b50d380156107fb57600080fd5b50d2801561080857600080fd5b506108ba6004803603604081101561081f57600080fd5b61ffff823516919081019060408101602082013564010000000081111561084557600080fd5b82018360208201111561085757600080fd5b8035906020019184600183028401116401000000008311171561087957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611f43945050505050565b6040805167ffffffffffffffff90941684526001600160a01b03909216602084015282820152519081900360600190f35b3480156108f757600080fd5b50d3801561090457600080fd5b50d2801561091157600080fd5b506109426004803603604081101561092857600080fd5b50803561ffff1690602001356001600160a01b0316611f9a565b6040805167ffffffffffffffff9092168252519081900360200190f35b34801561096b57600080fd5b50d3801561097857600080fd5b50d2801561098557600080fd5b5061071b611fd2565b34801561099a57600080fd5b50d380156109a757600080fd5b50d280156109b457600080fd5b50610942600480360360408110156109cb57600080fd5b61ffff82351691908101906040810160208201356401000000008111156109f157600080fd5b820183602082011115610a0357600080fd5b80359060200191846001830284011164010000000083111715610a2557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611fe1945050505050565b348015610a7257600080fd5b50d38015610a7f57600080fd5b50d28015610a8c57600080fd5b50610321612019565b348015610aa157600080fd5b50d38015610aae57600080fd5b50d28015610abb57600080fd5b5061071b60048036036020811015610ad257600080fd5b50356001600160a01b031661203d565b348015610aee57600080fd5b50d38015610afb57600080fd5b50d28015610b0857600080fd5b5061032161211a565b348015610b1d57600080fd5b50d38015610b2a57600080fd5b50d28015610b3757600080fd5b506102d260048036036060811015610b4e57600080fd5b61ffff8235169190810190604081016020820135640100000000811115610b7457600080fd5b820183602082011115610b8657600080fd5b80359060200191846001830284011164010000000083111715610ba857600080fd5b919390929091602081019035640100000000811115610bc657600080fd5b820183602082011115610bd857600080fd5b80359060200191846001830284011164010000000083111715610bfa57600080fd5b509092509050612120565b348015610c1157600080fd5b50d38015610c1e57600080fd5b50d28015610c2b57600080fd5b5061094260048036036040811015610c4257600080fd5b50803561ffff1690602001356001600160a01b0316612505565b348015610c6857600080fd5b50d38015610c7557600080fd5b50d28015610c8257600080fd5b506102d260048036036020811015610c9957600080fd5b503561ffff1661252c565b348015610cb057600080fd5b50d38015610cbd57600080fd5b50d28015610cca57600080fd5b50610321612712565b348015610cdf57600080fd5b50d38015610cec57600080fd5b50d28015610cf957600080fd5b506102d2600480360360c0811015610d1057600080fd5b61ffff8235169190810190604081016020820135640100000000811115610d3657600080fd5b820183602082011115610d4857600080fd5b80359060200191846001830284011164010000000083111715610d6a57600080fd5b919390926001600160a01b038335169267ffffffffffffffff602082013516926040820135929091608081019060600135640100000000811115610dad57600080fd5b820183602082011115610dbf57600080fd5b80359060200191846001830284011164010000000083111715610de157600080fd5b509092509050612734565b6102d2600480360360c0811015610e0257600080fd5b61ffff8235169190810190604081016020820135640100000000811115610e2857600080fd5b820183602082011115610e3a57600080fd5b80359060200191846001830284011164010000000083111715610e5c57600080fd5b919390929091602081019035640100000000811115610e7a57600080fd5b820183602082011115610e8c57600080fd5b80359060200191846001830284011164010000000083111715610eae57600080fd5b919390926001600160a01b0383358116936020810135909116929190606081019060400135640100000000811115610ee557600080fd5b820183602082011115610ef757600080fd5b80359060200191846001830284011164010000000083111715610f1957600080fd5b509092509050612d57565b348015610f3057600080fd5b50d38015610f3d57600080fd5b50d28015610f4a57600080fd5b5061071b60048036036020811015610f6157600080fd5b503561ffff16612fb6565b348015610f7857600080fd5b50d38015610f8557600080fd5b50d28015610f9257600080fd5b50610422612fd1565b348015610fa757600080fd5b50d38015610fb457600080fd5b50d28015610fc157600080fd5b506102d260048036036080811015610fd857600080fd5b61ffff82358116926020810135909116916040820135919081019060808101606082013564010000000081111561100e57600080fd5b82018360208201111561102057600080fd5b8035906020019184600183028401116401000000008311171561104257600080fd5b509092509050612fe2565b34801561105957600080fd5b50d3801561106657600080fd5b50d2801561107357600080fd5b506103216004803603602081101561108a57600080fd5b50356001600160a01b03166131d8565b3480156110a657600080fd5b50d380156110b357600080fd5b50d280156110c057600080fd5b50610422613226565b3480156110d557600080fd5b50d380156110e257600080fd5b50d280156110ef57600080fd5b5061071b613232565b34801561110457600080fd5b50d3801561111157600080fd5b50d2801561111e57600080fd5b506102d26004803603602081101561113557600080fd5b50356001600160a01b0316613241565b34801561115157600080fd5b50d3801561115e57600080fd5b50d2801561116b57600080fd5b506111926004803603602081101561118257600080fd5b50356001600160a01b031661336d565b6040805161ffff95861681529390941660208401526001600160a01b039182168385015216606082015290519081900360800190f35b3480156111d457600080fd5b50d380156111e157600080fd5b50d280156111ee57600080fd5b5061122f6004803603608081101561120557600080fd5b5061ffff81358116916020810135909116906001600160a01b0360408201351690606001356133ac565b6040805160208082528351818301528351919283929083019185019080838360005b83811015611269578181015183820152602001611251565b50505050905090810190601f1680156112965780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156112b057600080fd5b50d380156112bd57600080fd5b50d280156112ca57600080fd5b5061032161363c565b3480156112df57600080fd5b50d380156112ec57600080fd5b50d280156112f957600080fd5b506109426004803603604081101561131057600080fd5b61ffff823516919081019060408101602082013564010000000081111561133657600080fd5b82018360208201111561134857600080fd5b8035906020019184600183028401116401000000008311171561136a57600080fd5b50909250905061364c565b600054819061ffff7401000000000000000000000000000000000000000090910481169082161115806113ab575061ffff818116145b6113e65760405162461bcd60e51b815260040180806020018281038252602c81526020018061377a602c913960400191505060405180910390fd5b336000818152600460209081526040808320805461ffff88167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000909116811782558085526001808552948390205494820180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039690961695909517909455815194855291840192909252815190927ff2bc255571446a2f9b7cb2f0c75fd6a279bdb469f515d5a5c9910f713aeb32ca92908290030190a1505050565b6001600160a01b0381166000908152600460205260408120805461ffff16156114da57805461ffff166114e2565b60025461ffff165b9150505b919050565b6114f3613699565b6001600160a01b0316611504611fd2565b6001600160a01b03161461155f576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600054819061ffff740100000000000000000000000000000000000000009091048116908216111580611595575061ffff818116145b6115d05760405162461bcd60e51b815260040180806020018281038252602c81526020018061377a602c913960400191505060405180910390fd5b61ffff82166116105760405162461bcd60e51b81526004018080602001828103825260288152602001806139b56028913960400191505060405180910390fd5b600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001661ffff848116918217808455908116600090815260016020908152604091829020547fffffffffffffffff0000000000000000000000000000000000000000ffffffff9093166001600160a01b039093166401000000000292909217909355825191825291517feb685c087d38029bbde35299b748c6b80f099c7e5c3f9fe2dbb3ace1099e3b07929181900390910190a15050565b61ffff8316600090815260076020526040808220905182919085908590808383808284379190910194855250506040519283900360200190922060010154151593505050509392505050565b600054819061ffff74010000000000000000000000000000000000000000909104811690821611158061174d575061ffff818116145b6117885760405162461bcd60e51b815260040180806020018281038252602c81526020018061377a602c913960400191505060405180910390fd5b33600081815260046020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff166201000061ffff8916908102919091178083558186526001855294839020547fffffffffffffffff0000000000000000000000000000000000000000ffffffff9095166001600160a01b0390951664010000000002949094178155815194855291840192909252815190927f9c199418af68d1547d7b99c71ee6a9eb18b27990dfcfb38982f3e3fb8c7b6bef92908290030190a1505050565b61185f613699565b6001600160a01b0316611870611fd2565b6001600160a01b0316146118cb576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0381166119105760405162461bcd60e51b815260040180806020018281038252602d81526020018061390b602d913960400191505060405180910390fd5b60005461ffff7401000000000000000000000000000000000000000090910481161061196d5760405162461bcd60e51b815260040180806020018281038252602c8152602001806138df602c913960400191505060405180910390fd5b60008054600161ffff7401000000000000000000000000000000000000000080840482168301821681027fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff90941693909317808555839004811684526020918252604080852080546001600160a01b0388167fffffffffffffffffffffffff00000000000000000000000000000000000000009091161790559354845193900416825291517f18c7402e58a1bec57f4eb75af242f65ababbbe09d9db383e0542f00635e5b8c5929181900390910190a150565b600081565b7f000000000000000000000000000000000000000000000000000000000000000090565b6001600160a01b03861660009081526004602052604081208054829190829061ffff1615611aa45760018201546001600160a01b0316611ab9565b60025464010000000090046001600160a01b03165b9050806001600160a01b03166340a7bb108c8c8c8c8c8c8c6040518863ffffffff1660e01b8152600401808861ffff168152602001876001600160a01b03168152602001806020018515158152602001806020018381038352888882818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600081840152601f19601f8201169050808301925050509950505050505050505050604080518083038186803b158015611b7d57600080fd5b505afa158015611b91573d6000803e3d6000fd5b505050506040513d6040811015611ba757600080fd5b508051602090910151909c909b509950505050505050505050565b61ffff83166000908152600760205260408082209051849084908083838082843791909101948552505060405192839003602001909220600181015490935015159150611c589050576040805162461bcd60e51b815260206004820152601c60248201527f4c617965725a65726f3a206e6f2073746f726564207061796c6f616400000000604482015290519081900360640190fd5b80546801000000000000000090046001600160a01b03163314611cc2576040805162461bcd60e51b815260206004820152601960248201527f4c617965725a65726f3a20696e76616c69642063616c6c657200000000000000604482015290519081900360640190fd5b80547fffffffff00000000000000000000000000000000000000000000000000000000168155600060018201556040805161ffff86168152602081018281529181018490527f23d2684f396e92a6e2ff2d16f98e6fea00d50cb27a64b531bc0748f730211f98918691869186919060608201848480828437600083820152604051601f909101601f1916909201829003965090945050505050a150505050565b60025464010000000090046001600160a01b031681565b60025461ffff1681565b611d8b613699565b6001600160a01b0316611d9c611fd2565b6001600160a01b031614611df7576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b6001600160a01b0381166000908152600460205260408120805461ffff62010000909104811690811415611ebe5760405162461bcd60e51b815260040180806020018281038252602b815260200180613a0c602b913960400191505060405180910390fd5b61ffff8116611f265760025462010000900461ffff9081161415611f135760405162461bcd60e51b81526004018080602001828103825260358152602001806137a66035913960400191505060405180910390fd5b6003546001600160a01b03169250611f3c565b815464010000000090046001600160a01b031692505b5050919050565b600760209081526000928352604090922081518083018401805192815290840192909301919091209152805460019091015467ffffffffffffffff8216916801000000000000000090046001600160a01b03169083565b61ffff821660009081526006602090815260408083206001600160a01b038516845290915290205467ffffffffffffffff1692915050565b6000546001600160a01b031690565b6005602090815260009283526040909220815180830184018051928152908401929093019190912091525467ffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6001600160a01b0381166000908152600460205260408120805461ffff9081169081141561209c5760405162461bcd60e51b81526004018080602001828103825260288152602001806138b76028913960400191505060405180910390fd5b61ffff81166121065760025461ffff90811614156120eb5760405162461bcd60e51b815260040180806020018281038252603281526020018061384f6032913960400191505060405180910390fd5b60025464010000000090046001600160a01b03169250611f3c565b50600101546001600160a01b031692915050565b61ffff81565b600854610100900460ff1660011461217f576040805162461bcd60e51b815260206004820181905260248201527f4c617965725a65726f3a206e6f2072656365697665207265656e7472616e6379604482015290519081900360640190fd5b600880547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661020017905561ffff851660009081526007602052604080822090518690869080838380828437919091019485525050604051928390036020019092206001810154909350151591506122419050576040805162461bcd60e51b815260206004820152601c60248201527f4c617965725a65726f3a206e6f2073746f726564207061796c6f616400000000604482015290519081900360640190fd5b805467ffffffffffffffff168214801561227c5750806001015483836040518083838082843780830192505050925050506040518091039020145b6122cd576040805162461bcd60e51b815260206004820152601a60248201527f4c617965725a65726f3a20696e76616c6964207061796c6f6164000000000000604482015290519081900360640190fd5b80547fffffffff000000000000000000000000000000000000000000000000000000008116825560006001830181905561ffff88168152600560205260408082209051680100000000000000009093046001600160a01b0316928890889080838380828437919091019485525050604051928390036020018320547e1d356700000000000000000000000000000000000000000000000000000000845261ffff8c166004850190815267ffffffffffffffff90911660448501819052608060248601908152608486018c90529095506001600160a01b03871694621d356794508d93508c928c9288928d928d929091606481019060a401888880828437600083820152601f01601f191690910184810383528581526020019050858580828437600081840152601f19601f82011690508083019250505098505050505050505050600060405180830381600087803b15801561242857600080fd5b505af115801561243c573d6000803e3d6000fd5b505050507f612434f39581c8e7d99746c9c20c6eb0ce8c0eb99f007c5719d620841370957d8888888486604051808661ffff168152602001806020018467ffffffffffffffff168152602001836001600160a01b031681526020018281038252868682818152602001925080828437600083820152604051601f909101601f19169092018290039850909650505050505050a15050600880547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179055505050505050565b600660209081526000928352604080842090915290825290205467ffffffffffffffff1681565b612534613699565b6001600160a01b0316612545611fd2565b6001600160a01b0316146125a0576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600054819061ffff7401000000000000000000000000000000000000000090910481169082161115806125d6575061ffff818116145b6126115760405162461bcd60e51b815260040180806020018281038252602c81526020018061377a602c913960400191505060405180910390fd5b61ffff82166126515760405162461bcd60e51b815260040180806020018281038252602b815260200180613967602b913960400191505060405180910390fd5b600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff166201000061ffff8581168281029390931793849055920490911660009081526001602090815260409182902054600380546001600160a01b039092167fffffffffffffffffffffffff0000000000000000000000000000000000000000909216919091179055815192835290517f96874dbe70c8a59e7996847475489a70a1b5096ed92cdc858b63ebabd071f8199281900390910190a15050565b60005474010000000000000000000000000000000000000000900461ffff1681565b600854610100900460ff16600114612793576040805162461bcd60e51b815260206004820181905260248201527f4c617965725a65726f3a206e6f2072656365697665207265656e7472616e6379604482015290519081900360640190fd5b600880547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661020017905561ffff8816600090815260056020526040908190209051889088908083838082843791909101948552505060405192839003602001909220805467ffffffffffffffff80821660010181167fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000909216821790925590871614915061288c9050576040805162461bcd60e51b815260206004820152601660248201527f4c617965725a65726f3a2077726f6e67206e6f6e636500000000000000000000604482015290519081900360640190fd5b6001600160a01b0385166000908152600460205260409020805462010000900461ffff16612902576003546001600160a01b031633146128fd5760405162461bcd60e51b81526004018080602001828103825260228152602001806137db6022913960400191505060405180910390fd5b612968565b805464010000000090046001600160a01b03163314612968576040805162461bcd60e51b815260206004820152601a60248201527f4c617965725a65726f3a20696e76616c6964206c696272617279000000000000604482015290519081900360640190fd5b61ffff891660009081526007602052604080822090518a908a90808383808284379190910194855250506040519283900360200190922060018101549093501591506129fd9050576040805162461bcd60e51b815260206004820152601e60248201527f4c617965725a65726f3a20696e206d65737361676520626c6f636b696e670000604482015290519081900360640190fd5b866001600160a01b0316621d3567868c8c8c8b8a8a6040518863ffffffff1660e01b8152600401808761ffff168152602001806020018567ffffffffffffffff168152602001806020018381038352888882818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600081840152601f19601f82011690508083019250505098505050505050505050600060405180830381600088803b158015612ab957600080fd5b5087f193505050508015612acb575060015b612d1f573d808015612af9576040519150601f19603f3d011682016040523d82523d6000602084013e612afe565b606091505b5060405180606001604052808686905067ffffffffffffffff168152602001896001600160a01b0316815260200186866040518083838082843780830192505050925050506040518091039020815250600760008d61ffff1661ffff1681526020019081526020016000208b8b604051808383808284378083019250505092505050908152602001604051809103902060008201518160000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060208201518160000160086101000a8154816001600160a01b0302191690836001600160a01b03160217905550604082015181600101559050507f0f9e4d95b62f08222d612b5ab92039cd8fbbbea550a95e8df9f927436bbdf5db8b8b8b8b8b8a8a88604051808961ffff16815260200180602001876001600160a01b031681526020018667ffffffffffffffff168152602001806020018060200184810384528b8b82818152602001925080828437600083820152601f01601f1916909101858103845287815260200190508787808284376000838201819052601f909101601f191690920186810384528751815287516020918201939189019250908190849084905b83811015612cda578181015183820152602001612cc2565b50505050905090810190601f168015612d075780820380516001836020036101000a031916815260200191505b509b50505050505050505050505060405180910390a1505b5050600880547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555050505050505050565b60085460ff16600114612db1576040805162461bcd60e51b815260206004820152601d60248201527f4c617965725a65726f3a206e6f2073656e64207265656e7472616e6379000000604482015290519081900360640190fd5b6008805460027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0090911617905533600081815260046020908152604080832061ffff8e1684526006835281842094845293909152902080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000811667ffffffffffffffff91821660010191821617909155612e4b8261369d565b6001600160a01b0316634d3a0f7c3433848f8f8f8f8f8f8f8f8f6040518d63ffffffff1660e01b8152600401808c6001600160a01b031681526020018b67ffffffffffffffff1681526020018a61ffff1681526020018060200180602001876001600160a01b03168152602001866001600160a01b031681526020018060200184810384528c8c82818152602001925080828437600083820152601f01601f191690910185810384528a815260200190508a8a80828437600083820152601f01601f191690910185810383528681526020019050868680828437600081840152601f19601f8201169050808301925050509e5050505050505050505050505050506000604051808303818588803b158015612f6557600080fd5b505af1158015612f79573d6000803e3d6000fd5b5050600880547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555050505050505050505050505050565b6001602052600090815260409020546001600160a01b031681565b600854610100900460ff1660021490565b600054859061ffff740100000000000000000000000000000000000000009091048116908216111580613018575061ffff818116145b6130535760405162461bcd60e51b815260040180806020018281038252602c81526020018061377a602c913960400191505060405180910390fd5b61ffff86166130b35760025461ffff8082166201000090920416146130a95760405162461bcd60e51b81526004018080602001828103825260368152602001806138816036913960400191505060405180910390fd5b60025461ffff1695505b61ffff86811614156130f65760405162461bcd60e51b815260040180806020018281038252602f8152602001806139dd602f913960400191505060405180910390fd5b61ffff808716600090815260016020526040908190205490517ff8e1734c00000000000000000000000000000000000000000000000000000000815291871660048301908152336024840181905260448401889052608060648501908152608485018790526001600160a01b039093169363f8e1734c938a938a928a928a929160a401848480828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156131b857600080fd5b505af11580156131cc573d6000803e3d6000fd5b50505050505050505050565b6001600160a01b0381166000908152600460205260408120805462010000900461ffff161561321257805462010000900461ffff166114e2565b505060025462010000900461ffff16919050565b60085460ff1660021490565b6003546001600160a01b031681565b613249613699565b6001600160a01b031661325a611fd2565b6001600160a01b0316146132b5576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0381166132fa5760405162461bcd60e51b81526004018080602001828103825260268152602001806137fd6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6004602052600090815260409020805460019091015461ffff80831692620100008104909116916001600160a01b036401000000009092048216911684565b600054606090859061ffff7401000000000000000000000000000000000000000090910481169082161115806133e5575061ffff818116145b6134205760405162461bcd60e51b815260040180806020018281038252602c81526020018061377a602c913960400191505060405180910390fd5b61ffff86166134805760025461ffff8082166201000090920416146134765760405162461bcd60e51b815260040180806020018281038252602c815260200180613823602c913960400191505060405180910390fd5b60025461ffff1695505b61ffff86811614156134c35760405162461bcd60e51b815260040180806020018281038252602f815260200180613938602f913960400191505060405180910390fd5b61ffff8087166000908152600160205260408082205481517f52d2871f00000000000000000000000000000000000000000000000000000000815293891660048501526001600160a01b0388811660248601526044850188905291519116926352d2871f926064808301939192829003018186803b15801561354457600080fd5b505afa158015613558573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561358157600080fd5b81019080805160405193929190846401000000008211156135a157600080fd5b9083019060208201858111156135b657600080fd5b82516401000000008111828201881017156135d057600080fd5b82525081516020918201929091019080838360005b838110156135fd5781810151838201526020016135e5565b50505050905090810190601f16801561362a5780820380516001836020036101000a031916815260200191505b50604052505050915050949350505050565b60025462010000900461ffff1681565b61ffff831660009081526005602052604080822090518490849080838380828437919091019485525050604051928390036020019092205467ffffffffffffffff16925050509392505050565b3390565b805460009061ffff1661370a5760025461ffff90811614156136f05760405162461bcd60e51b81526004018080602001828103825260238152602001806139926023913960400191505060405180910390fd5b5060025464010000000090046001600160a01b03166114e6565b815461ffff9081161415613765576040805162461bcd60e51b815260206004820152601b60248201527f4c617965725a65726f3a20696e20424c4f434b5f56455253494f4e0000000000604482015290519081900360640190fd5b5060018101546001600160a01b03166114e656fe4c617965725a65726f3a20696e76616c6964206d6573736167696e67206c6962726172792076657273696f6e4c617965725a65726f3a20726563656976652076657273696f6e202864656661756c742920697320424c4f434b5f56455253494f4e4c617965725a65726f3a20696e76616c69642064656661756c74206c6962726172794f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734c617965725a65726f3a206e6f2044454641554c5420636f6e666967207768696c65206d6967726174696f6e4c617965725a65726f3a2073656e642076657273696f6e202864656661756c742920697320424c4f434b5f56455253494f4e4c617965725a65726f3a2063616e206e6f742073657420436f6e66696720647572696e672044454641554c54206d6967726174696f6e4c617965725a65726f3a2073656e642076657273696f6e20697320424c4f434b5f56455253494f4e4c617965725a65726f3a2063616e206e6f7420616464206e6577206d6573736167696e67206c6962726172794c617965725a65726f3a206e65772076657273696f6e2063616e6e6f74206265207a65726f20616464726573734c617965725a65726f3a2063616e206e6f742067657420636f6e66696720666f7220424c4f434b5f56455253494f4e4c617965725a65726f3a2064656661756c7420726563656976652076657273696f6e206d757374203e20304c617965725a65726f3a2064656661756c7420696e20424c4f434b5f56455253494f4e4c617965725a65726f3a2064656661756c742073656e642076657273696f6e206d757374203e20304c617965725a65726f3a2063616e206e6f742073657420636f6e66696720666f7220424c4f434b5f56455253494f4e4c617965725a65726f3a20726563656976652076657273696f6e20697320424c4f434b5f56455253494f4ea2646970667358221220825eadf22ac468048901c4979f09647d025ea4c576f641cfc6e63aac0dbe28fe64736f6c63430007060033",
956
+ "linkReferences": {},
957
+ "deployedLinkReferences": {}
958
+ }