@layerzerolabs/lz-evm-sdk-v2 2.0.8 → 2.0.10-tron

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 (117) hide show
  1. package/deployments/arbitrum-sandbox-local/DVN.json +1896 -0
  2. package/deployments/arbitrum-sandbox-local/DVNFeeLib.json +387 -0
  3. package/deployments/arbitrum-sandbox-local/EndpointV2.json +2955 -0
  4. package/deployments/{ethereum-sandbox-local/Oracle.json → arbitrum-sandbox-local/Executor.json} +656 -398
  5. package/deployments/arbitrum-sandbox-local/ExecutorFeeLib.json +407 -0
  6. package/deployments/arbitrum-sandbox-local/ExecutorProxyAdmin.json +283 -0
  7. package/deployments/arbitrum-sandbox-local/Executor_Implementation.json +1591 -0
  8. package/deployments/{ethereum-sandbox-local/Oracle_Proxy.json → arbitrum-sandbox-local/Executor_Proxy.json} +135 -60
  9. package/deployments/arbitrum-sandbox-local/NonceContractMock.json +163 -0
  10. package/deployments/{polygon-sandbox-local/Relayer.json → arbitrum-sandbox-local/PriceFeed.json} +339 -445
  11. package/deployments/arbitrum-sandbox-local/PriceFeedProxyAdmin.json +283 -0
  12. package/deployments/arbitrum-sandbox-local/PriceFeed_Implementation.json +912 -0
  13. package/deployments/{ethereum-sandbox-local/Relayer_Proxy.json → arbitrum-sandbox-local/PriceFeed_Proxy.json} +33 -64
  14. package/deployments/arbitrum-sandbox-local/ReceiveUln301.json +1264 -0
  15. package/deployments/arbitrum-sandbox-local/ReceiveUln302.json +954 -0
  16. package/deployments/arbitrum-sandbox-local/SendUln301.json +1569 -0
  17. package/deployments/arbitrum-sandbox-local/SendUln302.json +1527 -0
  18. package/deployments/arbitrum-sandbox-local/SimpleMessageLib.json +708 -0
  19. package/deployments/arbitrum-sandbox-local/Treasury.json +412 -0
  20. package/deployments/arbitrum-sandbox-local/TreasuryFeeHandler.json +125 -0
  21. package/deployments/ethereum-sandbox-local/DVN.json +5 -5
  22. package/deployments/ethereum-sandbox-local/DVNFeeLib.json +2 -2
  23. package/deployments/ethereum-sandbox-local/EndpointV2.json +4 -4
  24. package/deployments/ethereum-sandbox-local/Executor.json +14 -14
  25. package/deployments/ethereum-sandbox-local/ExecutorFeeLib.json +2 -2
  26. package/deployments/ethereum-sandbox-local/ExecutorProxyAdmin.json +3 -3
  27. package/deployments/ethereum-sandbox-local/Executor_Implementation.json +1 -1
  28. package/deployments/ethereum-sandbox-local/Executor_Proxy.json +14 -14
  29. package/deployments/ethereum-sandbox-local/NonceContractMock.json +1 -1
  30. package/deployments/ethereum-sandbox-local/PriceFeed.json +5 -5
  31. package/deployments/ethereum-sandbox-local/PriceFeedProxyAdmin.json +3 -3
  32. package/deployments/ethereum-sandbox-local/PriceFeed_Implementation.json +1 -1
  33. package/deployments/ethereum-sandbox-local/PriceFeed_Proxy.json +5 -5
  34. package/deployments/ethereum-sandbox-local/ReceiveUln301.json +2 -2
  35. package/deployments/ethereum-sandbox-local/ReceiveUln302.json +2 -2
  36. package/deployments/ethereum-sandbox-local/SendUln301.json +2 -2
  37. package/deployments/ethereum-sandbox-local/SendUln302.json +2 -2
  38. package/deployments/ethereum-sandbox-local/SimpleMessageLib.json +2 -2
  39. package/deployments/ethereum-sandbox-local/Treasury.json +2 -2
  40. package/deployments/ethereum-sandbox-local/TreasuryFeeHandler.json +1 -1
  41. package/deployments/polygon-sandbox-local/DVN.json +5 -5
  42. package/deployments/polygon-sandbox-local/DVNFeeLib.json +2 -2
  43. package/deployments/polygon-sandbox-local/EndpointV2.json +4 -4
  44. package/deployments/polygon-sandbox-local/Executor.json +14 -14
  45. package/deployments/polygon-sandbox-local/ExecutorFeeLib.json +2 -2
  46. package/deployments/polygon-sandbox-local/ExecutorProxyAdmin.json +3 -3
  47. package/deployments/polygon-sandbox-local/Executor_Implementation.json +1 -1
  48. package/deployments/polygon-sandbox-local/Executor_Proxy.json +14 -14
  49. package/deployments/polygon-sandbox-local/NonceContractMock.json +1 -1
  50. package/deployments/polygon-sandbox-local/PriceFeed.json +5 -5
  51. package/deployments/polygon-sandbox-local/PriceFeedProxyAdmin.json +3 -3
  52. package/deployments/polygon-sandbox-local/PriceFeed_Implementation.json +1 -1
  53. package/deployments/polygon-sandbox-local/PriceFeed_Proxy.json +5 -5
  54. package/deployments/polygon-sandbox-local/ReceiveUln301.json +2 -2
  55. package/deployments/polygon-sandbox-local/ReceiveUln302.json +2 -2
  56. package/deployments/polygon-sandbox-local/SendUln301.json +2 -2
  57. package/deployments/polygon-sandbox-local/SendUln302.json +2 -2
  58. package/deployments/polygon-sandbox-local/SimpleMessageLib.json +2 -2
  59. package/deployments/polygon-sandbox-local/Treasury.json +2 -2
  60. package/deployments/polygon-sandbox-local/TreasuryFeeHandler.json +1 -1
  61. package/deployments/tron-sandbox-local/DVN.json +1896 -0
  62. package/deployments/tron-sandbox-local/DVNFeeLib.json +387 -0
  63. package/deployments/tron-sandbox-local/EndpointV2.json +2955 -0
  64. package/deployments/{polygon-sandbox-local/Oracle.json → tron-sandbox-local/Executor.json} +656 -398
  65. package/deployments/tron-sandbox-local/ExecutorFeeLib.json +407 -0
  66. package/deployments/tron-sandbox-local/ExecutorProxyAdmin.json +283 -0
  67. package/deployments/tron-sandbox-local/Executor_Implementation.json +1591 -0
  68. package/deployments/{polygon-sandbox-local/Oracle_Proxy.json → tron-sandbox-local/Executor_Proxy.json} +135 -60
  69. package/deployments/tron-sandbox-local/NonceContractMock.json +163 -0
  70. package/deployments/{ethereum-sandbox-local/Relayer.json → tron-sandbox-local/PriceFeed.json} +339 -445
  71. package/deployments/tron-sandbox-local/PriceFeedProxyAdmin.json +283 -0
  72. package/deployments/tron-sandbox-local/PriceFeed_Implementation.json +912 -0
  73. package/deployments/{polygon-sandbox-local/Relayer_Proxy.json → tron-sandbox-local/PriceFeed_Proxy.json} +33 -64
  74. package/deployments/tron-sandbox-local/ReceiveUln301.json +1264 -0
  75. package/deployments/tron-sandbox-local/ReceiveUln302.json +954 -0
  76. package/deployments/tron-sandbox-local/SendUln301.json +1569 -0
  77. package/deployments/tron-sandbox-local/SendUln302.json +1527 -0
  78. package/deployments/tron-sandbox-local/SimpleMessageLib.json +708 -0
  79. package/deployments/tron-sandbox-local/Treasury.json +412 -0
  80. package/deployments/tron-sandbox-local/TreasuryFeeHandler.json +125 -0
  81. package/package.json +9 -20
  82. package/deployments/ethereum-sandbox-local/BlockedMessageLib.json +0 -90
  83. package/deployments/ethereum-sandbox-local/Endpoint.json +0 -2355
  84. package/deployments/ethereum-sandbox-local/MultiSigOracle.json +0 -1448
  85. package/deployments/ethereum-sandbox-local/NonceContract.json +0 -158
  86. package/deployments/ethereum-sandbox-local/OmniCounter.json +0 -1133
  87. package/deployments/ethereum-sandbox-local/OmniCounterPreCrime.json +0 -493
  88. package/deployments/ethereum-sandbox-local/OmniCounterPreCrimeView.json +0 -672
  89. package/deployments/ethereum-sandbox-local/OmniCounterViewer.json +0 -214
  90. package/deployments/ethereum-sandbox-local/OmniCounterWithPreCrime.json +0 -1646
  91. package/deployments/ethereum-sandbox-local/OracleFeeLib.json +0 -166
  92. package/deployments/ethereum-sandbox-local/OracleProxyAdmin.json +0 -272
  93. package/deployments/ethereum-sandbox-local/Oracle_Implementation.json +0 -1326
  94. package/deployments/ethereum-sandbox-local/RelayerFeeLib.json +0 -130
  95. package/deployments/ethereum-sandbox-local/RelayerProxyAdmin.json +0 -272
  96. package/deployments/ethereum-sandbox-local/Relayer_Implementation.json +0 -1014
  97. package/deployments/ethereum-sandbox-local/UlnConfig301.json +0 -1003
  98. package/deployments/ethereum-sandbox-local/UlnConfig302.json +0 -1003
  99. package/deployments/ethereum-sandbox-local/UltraLightNodeE302.json +0 -1696
  100. package/deployments/polygon-sandbox-local/BlockedMessageLib.json +0 -90
  101. package/deployments/polygon-sandbox-local/Endpoint.json +0 -2355
  102. package/deployments/polygon-sandbox-local/MultiSigOracle.json +0 -1448
  103. package/deployments/polygon-sandbox-local/NonceContract.json +0 -158
  104. package/deployments/polygon-sandbox-local/OmniCounter.json +0 -1133
  105. package/deployments/polygon-sandbox-local/OmniCounterPreCrime.json +0 -493
  106. package/deployments/polygon-sandbox-local/OmniCounterPreCrimeView.json +0 -672
  107. package/deployments/polygon-sandbox-local/OmniCounterViewer.json +0 -214
  108. package/deployments/polygon-sandbox-local/OmniCounterWithPreCrime.json +0 -1646
  109. package/deployments/polygon-sandbox-local/OracleFeeLib.json +0 -166
  110. package/deployments/polygon-sandbox-local/OracleProxyAdmin.json +0 -272
  111. package/deployments/polygon-sandbox-local/Oracle_Implementation.json +0 -1326
  112. package/deployments/polygon-sandbox-local/RelayerFeeLib.json +0 -130
  113. package/deployments/polygon-sandbox-local/RelayerProxyAdmin.json +0 -272
  114. package/deployments/polygon-sandbox-local/Relayer_Implementation.json +0 -1014
  115. package/deployments/polygon-sandbox-local/UlnConfig301.json +0 -1003
  116. package/deployments/polygon-sandbox-local/UlnConfig302.json +0 -1003
  117. package/deployments/polygon-sandbox-local/UltraLightNodeE302.json +0 -1696
@@ -1,1696 +0,0 @@
1
- {
2
- "address": "0x712516e61C8B383dF4A63CFe83d7701Bce54B03e",
3
- "abi": [
4
- {
5
- "inputs": [
6
- {
7
- "internalType": "address",
8
- "name": "_endpoint",
9
- "type": "address"
10
- },
11
- {
12
- "internalType": "uint256",
13
- "name": "_baseGasEstimate",
14
- "type": "uint256"
15
- }
16
- ],
17
- "stateMutability": "nonpayable",
18
- "type": "constructor"
19
- },
20
- {
21
- "inputs": [
22
- {
23
- "internalType": "address",
24
- "name": "expected",
25
- "type": "address"
26
- },
27
- {
28
- "internalType": "address",
29
- "name": "actual",
30
- "type": "address"
31
- }
32
- ],
33
- "name": "InvalidEndpoint",
34
- "type": "error"
35
- },
36
- {
37
- "inputs": [
38
- {
39
- "internalType": "uint256",
40
- "name": "max",
41
- "type": "uint256"
42
- },
43
- {
44
- "internalType": "uint256",
45
- "name": "actual",
46
- "type": "uint256"
47
- }
48
- ],
49
- "name": "InvalidMessageSize",
50
- "type": "error"
51
- },
52
- {
53
- "anonymous": false,
54
- "inputs": [
55
- {
56
- "indexed": false,
57
- "internalType": "address[]",
58
- "name": "oracles",
59
- "type": "address[]"
60
- },
61
- {
62
- "indexed": false,
63
- "internalType": "uint256[]",
64
- "name": "fees",
65
- "type": "uint256[]"
66
- }
67
- ],
68
- "name": "OracleFee",
69
- "type": "event"
70
- },
71
- {
72
- "anonymous": false,
73
- "inputs": [
74
- {
75
- "indexed": true,
76
- "internalType": "address",
77
- "name": "previousOwner",
78
- "type": "address"
79
- },
80
- {
81
- "indexed": true,
82
- "internalType": "address",
83
- "name": "newOwner",
84
- "type": "address"
85
- }
86
- ],
87
- "name": "OwnershipTransferred",
88
- "type": "event"
89
- },
90
- {
91
- "anonymous": false,
92
- "inputs": [
93
- {
94
- "indexed": false,
95
- "internalType": "address",
96
- "name": "oracle",
97
- "type": "address"
98
- },
99
- {
100
- "indexed": false,
101
- "internalType": "bytes",
102
- "name": "header",
103
- "type": "bytes"
104
- },
105
- {
106
- "indexed": false,
107
- "internalType": "uint256",
108
- "name": "confirmations",
109
- "type": "uint256"
110
- },
111
- {
112
- "indexed": false,
113
- "internalType": "bytes32",
114
- "name": "proofHash",
115
- "type": "bytes32"
116
- }
117
- ],
118
- "name": "PayloadSigned",
119
- "type": "event"
120
- },
121
- {
122
- "anonymous": false,
123
- "inputs": [
124
- {
125
- "indexed": false,
126
- "internalType": "address",
127
- "name": "relayer",
128
- "type": "address"
129
- },
130
- {
131
- "indexed": false,
132
- "internalType": "uint256",
133
- "name": "fee",
134
- "type": "uint256"
135
- }
136
- ],
137
- "name": "RelayerFee",
138
- "type": "event"
139
- },
140
- {
141
- "anonymous": false,
142
- "inputs": [
143
- {
144
- "indexed": true,
145
- "internalType": "uint32",
146
- "name": "eid",
147
- "type": "uint32"
148
- },
149
- {
150
- "indexed": false,
151
- "internalType": "uint64",
152
- "name": "inboundBlockConfirm",
153
- "type": "uint64"
154
- },
155
- {
156
- "indexed": false,
157
- "internalType": "address[]",
158
- "name": "oracles",
159
- "type": "address[]"
160
- },
161
- {
162
- "indexed": false,
163
- "internalType": "address[]",
164
- "name": "optionalOracles",
165
- "type": "address[]"
166
- },
167
- {
168
- "indexed": false,
169
- "internalType": "uint16",
170
- "name": "optionalOraclesThreshold",
171
- "type": "uint16"
172
- }
173
- ],
174
- "name": "SetDefaultConfig",
175
- "type": "event"
176
- },
177
- {
178
- "anonymous": false,
179
- "inputs": [
180
- {
181
- "indexed": true,
182
- "internalType": "address",
183
- "name": "oapp",
184
- "type": "address"
185
- },
186
- {
187
- "indexed": true,
188
- "internalType": "uint256",
189
- "name": "configType",
190
- "type": "uint256"
191
- },
192
- {
193
- "indexed": false,
194
- "internalType": "bytes",
195
- "name": "newConfig",
196
- "type": "bytes"
197
- }
198
- ],
199
- "name": "UlnConfigUpdated",
200
- "type": "event"
201
- },
202
- {
203
- "anonymous": false,
204
- "inputs": [
205
- {
206
- "indexed": true,
207
- "internalType": "address",
208
- "name": "user",
209
- "type": "address"
210
- },
211
- {
212
- "indexed": false,
213
- "internalType": "address",
214
- "name": "receiver",
215
- "type": "address"
216
- },
217
- {
218
- "indexed": false,
219
- "internalType": "uint256",
220
- "name": "amount",
221
- "type": "uint256"
222
- }
223
- ],
224
- "name": "WithdrawFee",
225
- "type": "event"
226
- },
227
- {
228
- "anonymous": false,
229
- "inputs": [
230
- {
231
- "indexed": true,
232
- "internalType": "address",
233
- "name": "worker",
234
- "type": "address"
235
- },
236
- {
237
- "indexed": false,
238
- "internalType": "bool",
239
- "name": "entered",
240
- "type": "bool"
241
- },
242
- {
243
- "indexed": false,
244
- "internalType": "uint256",
245
- "name": "timestamp",
246
- "type": "uint256"
247
- }
248
- ],
249
- "name": "WorkerEntered",
250
- "type": "event"
251
- },
252
- {
253
- "inputs": [],
254
- "name": "CONFIG_TYPE_INBOUND_CONFIRMATIONS",
255
- "outputs": [
256
- {
257
- "internalType": "uint32",
258
- "name": "",
259
- "type": "uint32"
260
- }
261
- ],
262
- "stateMutability": "view",
263
- "type": "function"
264
- },
265
- {
266
- "inputs": [],
267
- "name": "CONFIG_TYPE_MAX_MESSAGE_SIZE",
268
- "outputs": [
269
- {
270
- "internalType": "uint32",
271
- "name": "",
272
- "type": "uint32"
273
- }
274
- ],
275
- "stateMutability": "view",
276
- "type": "function"
277
- },
278
- {
279
- "inputs": [],
280
- "name": "CONFIG_TYPE_OPTIONAL_ORACLES",
281
- "outputs": [
282
- {
283
- "internalType": "uint32",
284
- "name": "",
285
- "type": "uint32"
286
- }
287
- ],
288
- "stateMutability": "view",
289
- "type": "function"
290
- },
291
- {
292
- "inputs": [],
293
- "name": "CONFIG_TYPE_ORACLES",
294
- "outputs": [
295
- {
296
- "internalType": "uint32",
297
- "name": "",
298
- "type": "uint32"
299
- }
300
- ],
301
- "stateMutability": "view",
302
- "type": "function"
303
- },
304
- {
305
- "inputs": [],
306
- "name": "CONFIG_TYPE_OUTBOUND_CONFIRMATIONS",
307
- "outputs": [
308
- {
309
- "internalType": "uint32",
310
- "name": "",
311
- "type": "uint32"
312
- }
313
- ],
314
- "stateMutability": "view",
315
- "type": "function"
316
- },
317
- {
318
- "inputs": [],
319
- "name": "CONFIG_TYPE_RELAYER",
320
- "outputs": [
321
- {
322
- "internalType": "uint32",
323
- "name": "",
324
- "type": "uint32"
325
- }
326
- ],
327
- "stateMutability": "view",
328
- "type": "function"
329
- },
330
- {
331
- "inputs": [
332
- {
333
- "internalType": "uint32",
334
- "name": "",
335
- "type": "uint32"
336
- }
337
- ],
338
- "name": "defaultOptions",
339
- "outputs": [
340
- {
341
- "internalType": "bytes",
342
- "name": "",
343
- "type": "bytes"
344
- }
345
- ],
346
- "stateMutability": "view",
347
- "type": "function"
348
- },
349
- {
350
- "inputs": [
351
- {
352
- "internalType": "uint32",
353
- "name": "",
354
- "type": "uint32"
355
- }
356
- ],
357
- "name": "defaultOutboundConfig",
358
- "outputs": [
359
- {
360
- "internalType": "uint32",
361
- "name": "maxMessageSize",
362
- "type": "uint32"
363
- },
364
- {
365
- "internalType": "uint64",
366
- "name": "outboundConfirmations",
367
- "type": "uint64"
368
- },
369
- {
370
- "internalType": "address",
371
- "name": "relayer",
372
- "type": "address"
373
- }
374
- ],
375
- "stateMutability": "view",
376
- "type": "function"
377
- },
378
- {
379
- "inputs": [
380
- {
381
- "internalType": "uint32",
382
- "name": "",
383
- "type": "uint32"
384
- }
385
- ],
386
- "name": "defaultUlnConfig",
387
- "outputs": [
388
- {
389
- "internalType": "uint64",
390
- "name": "inboundConfirmations",
391
- "type": "uint64"
392
- },
393
- {
394
- "internalType": "bool",
395
- "name": "useCustomOracles",
396
- "type": "bool"
397
- },
398
- {
399
- "internalType": "bool",
400
- "name": "useCustomOptionalOracles",
401
- "type": "bool"
402
- },
403
- {
404
- "internalType": "uint16",
405
- "name": "oraclesCount",
406
- "type": "uint16"
407
- },
408
- {
409
- "internalType": "uint16",
410
- "name": "optionalOraclesCount",
411
- "type": "uint16"
412
- },
413
- {
414
- "internalType": "uint16",
415
- "name": "optionalOraclesThreshold",
416
- "type": "uint16"
417
- }
418
- ],
419
- "stateMutability": "view",
420
- "type": "function"
421
- },
422
- {
423
- "inputs": [
424
- {
425
- "internalType": "bytes",
426
- "name": "_packetHeader",
427
- "type": "bytes"
428
- },
429
- {
430
- "internalType": "bytes32",
431
- "name": "_payloadHash",
432
- "type": "bytes32"
433
- }
434
- ],
435
- "name": "deliver",
436
- "outputs": [],
437
- "stateMutability": "nonpayable",
438
- "type": "function"
439
- },
440
- {
441
- "inputs": [
442
- {
443
- "internalType": "bytes",
444
- "name": "_packetHeader",
445
- "type": "bytes"
446
- },
447
- {
448
- "internalType": "bytes32",
449
- "name": "_payloadHash",
450
- "type": "bytes32"
451
- }
452
- ],
453
- "name": "deliverable",
454
- "outputs": [
455
- {
456
- "internalType": "bool",
457
- "name": "",
458
- "type": "bool"
459
- }
460
- ],
461
- "stateMutability": "view",
462
- "type": "function"
463
- },
464
- {
465
- "inputs": [],
466
- "name": "endpoint",
467
- "outputs": [
468
- {
469
- "internalType": "address",
470
- "name": "",
471
- "type": "address"
472
- }
473
- ],
474
- "stateMutability": "view",
475
- "type": "function"
476
- },
477
- {
478
- "inputs": [
479
- {
480
- "internalType": "address",
481
- "name": "",
482
- "type": "address"
483
- }
484
- ],
485
- "name": "fees",
486
- "outputs": [
487
- {
488
- "internalType": "uint256",
489
- "name": "",
490
- "type": "uint256"
491
- }
492
- ],
493
- "stateMutability": "view",
494
- "type": "function"
495
- },
496
- {
497
- "inputs": [
498
- {
499
- "internalType": "uint32",
500
- "name": "_eid",
501
- "type": "uint32"
502
- },
503
- {
504
- "internalType": "address",
505
- "name": "_oapp",
506
- "type": "address"
507
- },
508
- {
509
- "internalType": "uint32",
510
- "name": "_configType",
511
- "type": "uint32"
512
- }
513
- ],
514
- "name": "getConfig",
515
- "outputs": [
516
- {
517
- "internalType": "bytes",
518
- "name": "",
519
- "type": "bytes"
520
- },
521
- {
522
- "internalType": "bool",
523
- "name": "",
524
- "type": "bool"
525
- }
526
- ],
527
- "stateMutability": "view",
528
- "type": "function"
529
- },
530
- {
531
- "inputs": [
532
- {
533
- "internalType": "uint32",
534
- "name": "_eid",
535
- "type": "uint32"
536
- },
537
- {
538
- "internalType": "uint32",
539
- "name": "_configType",
540
- "type": "uint32"
541
- }
542
- ],
543
- "name": "getDefaultConfig",
544
- "outputs": [
545
- {
546
- "internalType": "bytes",
547
- "name": "",
548
- "type": "bytes"
549
- }
550
- ],
551
- "stateMutability": "view",
552
- "type": "function"
553
- },
554
- {
555
- "inputs": [
556
- {
557
- "internalType": "address",
558
- "name": "_oapp",
559
- "type": "address"
560
- },
561
- {
562
- "internalType": "uint32",
563
- "name": "_eid",
564
- "type": "uint32"
565
- }
566
- ],
567
- "name": "getOutboundConfig",
568
- "outputs": [
569
- {
570
- "components": [
571
- {
572
- "internalType": "uint32",
573
- "name": "maxMessageSize",
574
- "type": "uint32"
575
- },
576
- {
577
- "internalType": "uint64",
578
- "name": "outboundConfirmations",
579
- "type": "uint64"
580
- },
581
- {
582
- "internalType": "address",
583
- "name": "relayer",
584
- "type": "address"
585
- }
586
- ],
587
- "internalType": "struct MessageLibBase.OutboundConfig",
588
- "name": "",
589
- "type": "tuple"
590
- }
591
- ],
592
- "stateMutability": "view",
593
- "type": "function"
594
- },
595
- {
596
- "inputs": [
597
- {
598
- "internalType": "address",
599
- "name": "_oapp",
600
- "type": "address"
601
- },
602
- {
603
- "internalType": "uint32",
604
- "name": "_remoteEid",
605
- "type": "uint32"
606
- }
607
- ],
608
- "name": "getUlnConfig",
609
- "outputs": [
610
- {
611
- "components": [
612
- {
613
- "internalType": "uint64",
614
- "name": "inboundConfirmations",
615
- "type": "uint64"
616
- },
617
- {
618
- "internalType": "bool",
619
- "name": "useCustomOracles",
620
- "type": "bool"
621
- },
622
- {
623
- "internalType": "bool",
624
- "name": "useCustomOptionalOracles",
625
- "type": "bool"
626
- },
627
- {
628
- "internalType": "uint16",
629
- "name": "oraclesCount",
630
- "type": "uint16"
631
- },
632
- {
633
- "internalType": "uint16",
634
- "name": "optionalOraclesCount",
635
- "type": "uint16"
636
- },
637
- {
638
- "internalType": "uint16",
639
- "name": "optionalOraclesThreshold",
640
- "type": "uint16"
641
- },
642
- {
643
- "internalType": "address[]",
644
- "name": "oracles",
645
- "type": "address[]"
646
- },
647
- {
648
- "internalType": "address[]",
649
- "name": "optionalOracles",
650
- "type": "address[]"
651
- }
652
- ],
653
- "internalType": "struct UlnConfig.Config",
654
- "name": "",
655
- "type": "tuple"
656
- }
657
- ],
658
- "stateMutability": "view",
659
- "type": "function"
660
- },
661
- {
662
- "inputs": [
663
- {
664
- "internalType": "bytes32",
665
- "name": "",
666
- "type": "bytes32"
667
- },
668
- {
669
- "internalType": "bytes32",
670
- "name": "",
671
- "type": "bytes32"
672
- },
673
- {
674
- "internalType": "address",
675
- "name": "",
676
- "type": "address"
677
- }
678
- ],
679
- "name": "hashLookup",
680
- "outputs": [
681
- {
682
- "internalType": "uint64",
683
- "name": "",
684
- "type": "uint64"
685
- }
686
- ],
687
- "stateMutability": "view",
688
- "type": "function"
689
- },
690
- {
691
- "inputs": [],
692
- "name": "localEid",
693
- "outputs": [
694
- {
695
- "internalType": "uint32",
696
- "name": "",
697
- "type": "uint32"
698
- }
699
- ],
700
- "stateMutability": "view",
701
- "type": "function"
702
- },
703
- {
704
- "inputs": [
705
- {
706
- "internalType": "bool",
707
- "name": "_enter",
708
- "type": "bool"
709
- },
710
- {
711
- "internalType": "uint256",
712
- "name": "_timestamp",
713
- "type": "uint256"
714
- }
715
- ],
716
- "name": "notice",
717
- "outputs": [],
718
- "stateMutability": "nonpayable",
719
- "type": "function"
720
- },
721
- {
722
- "inputs": [
723
- {
724
- "internalType": "bytes",
725
- "name": "_packetHeader",
726
- "type": "bytes"
727
- },
728
- {
729
- "internalType": "bytes32",
730
- "name": "_payloadHash",
731
- "type": "bytes32"
732
- },
733
- {
734
- "internalType": "uint64",
735
- "name": "_confirmations",
736
- "type": "uint64"
737
- }
738
- ],
739
- "name": "oracleSign",
740
- "outputs": [],
741
- "stateMutability": "nonpayable",
742
- "type": "function"
743
- },
744
- {
745
- "inputs": [
746
- {
747
- "internalType": "address",
748
- "name": "",
749
- "type": "address"
750
- },
751
- {
752
- "internalType": "uint32",
753
- "name": "",
754
- "type": "uint32"
755
- }
756
- ],
757
- "name": "outboundConfig",
758
- "outputs": [
759
- {
760
- "internalType": "uint32",
761
- "name": "maxMessageSize",
762
- "type": "uint32"
763
- },
764
- {
765
- "internalType": "uint64",
766
- "name": "outboundConfirmations",
767
- "type": "uint64"
768
- },
769
- {
770
- "internalType": "address",
771
- "name": "relayer",
772
- "type": "address"
773
- }
774
- ],
775
- "stateMutability": "view",
776
- "type": "function"
777
- },
778
- {
779
- "inputs": [],
780
- "name": "owner",
781
- "outputs": [
782
- {
783
- "internalType": "address",
784
- "name": "",
785
- "type": "address"
786
- }
787
- ],
788
- "stateMutability": "view",
789
- "type": "function"
790
- },
791
- {
792
- "inputs": [],
793
- "name": "packetVersion",
794
- "outputs": [
795
- {
796
- "internalType": "uint8",
797
- "name": "",
798
- "type": "uint8"
799
- }
800
- ],
801
- "stateMutability": "view",
802
- "type": "function"
803
- },
804
- {
805
- "inputs": [
806
- {
807
- "components": [
808
- {
809
- "internalType": "address",
810
- "name": "sender",
811
- "type": "address"
812
- },
813
- {
814
- "internalType": "uint32",
815
- "name": "dstEid",
816
- "type": "uint32"
817
- },
818
- {
819
- "internalType": "bytes",
820
- "name": "message",
821
- "type": "bytes"
822
- }
823
- ],
824
- "internalType": "struct IPacket.PacketForQuote",
825
- "name": "_packet",
826
- "type": "tuple"
827
- },
828
- {
829
- "internalType": "bool",
830
- "name": "_payInLzToken",
831
- "type": "bool"
832
- },
833
- {
834
- "internalType": "bytes",
835
- "name": "_options",
836
- "type": "bytes"
837
- }
838
- ],
839
- "name": "quote",
840
- "outputs": [
841
- {
842
- "components": [
843
- {
844
- "internalType": "uint256",
845
- "name": "nativeFee",
846
- "type": "uint256"
847
- },
848
- {
849
- "internalType": "uint256",
850
- "name": "lzTokenFee",
851
- "type": "uint256"
852
- }
853
- ],
854
- "internalType": "struct ILayerZeroEndpoint.MessagingFee",
855
- "name": "",
856
- "type": "tuple"
857
- }
858
- ],
859
- "stateMutability": "view",
860
- "type": "function"
861
- },
862
- {
863
- "inputs": [
864
- {
865
- "internalType": "address",
866
- "name": "_oapp",
867
- "type": "address"
868
- },
869
- {
870
- "internalType": "uint32",
871
- "name": "_eid",
872
- "type": "uint32"
873
- },
874
- {
875
- "internalType": "uint256",
876
- "name": "_totalFee",
877
- "type": "uint256"
878
- },
879
- {
880
- "internalType": "bool",
881
- "name": "_payInLzToken",
882
- "type": "bool"
883
- }
884
- ],
885
- "name": "quoteTreasuryFee",
886
- "outputs": [
887
- {
888
- "internalType": "uint256",
889
- "name": "nativeFee",
890
- "type": "uint256"
891
- },
892
- {
893
- "internalType": "uint256",
894
- "name": "lzTokenFee",
895
- "type": "uint256"
896
- }
897
- ],
898
- "stateMutability": "view",
899
- "type": "function"
900
- },
901
- {
902
- "inputs": [],
903
- "name": "renounceOwnership",
904
- "outputs": [],
905
- "stateMutability": "nonpayable",
906
- "type": "function"
907
- },
908
- {
909
- "inputs": [
910
- {
911
- "internalType": "uint32[]",
912
- "name": "_eids",
913
- "type": "uint32[]"
914
- },
915
- {
916
- "internalType": "address",
917
- "name": "_oapp",
918
- "type": "address"
919
- }
920
- ],
921
- "name": "resetConfig",
922
- "outputs": [],
923
- "stateMutability": "nonpayable",
924
- "type": "function"
925
- },
926
- {
927
- "inputs": [
928
- {
929
- "components": [
930
- {
931
- "internalType": "uint64",
932
- "name": "nonce",
933
- "type": "uint64"
934
- },
935
- {
936
- "internalType": "uint32",
937
- "name": "srcEid",
938
- "type": "uint32"
939
- },
940
- {
941
- "internalType": "address",
942
- "name": "sender",
943
- "type": "address"
944
- },
945
- {
946
- "internalType": "uint32",
947
- "name": "dstEid",
948
- "type": "uint32"
949
- },
950
- {
951
- "internalType": "bytes32",
952
- "name": "receiver",
953
- "type": "bytes32"
954
- },
955
- {
956
- "internalType": "bytes",
957
- "name": "message",
958
- "type": "bytes"
959
- }
960
- ],
961
- "internalType": "struct IPacket.Packet",
962
- "name": "_packet",
963
- "type": "tuple"
964
- },
965
- {
966
- "internalType": "bytes",
967
- "name": "_options",
968
- "type": "bytes"
969
- },
970
- {
971
- "internalType": "bool",
972
- "name": "_payInLzToken",
973
- "type": "bool"
974
- }
975
- ],
976
- "name": "send",
977
- "outputs": [
978
- {
979
- "components": [
980
- {
981
- "internalType": "bytes32",
982
- "name": "guid",
983
- "type": "bytes32"
984
- },
985
- {
986
- "internalType": "uint64",
987
- "name": "nonce",
988
- "type": "uint64"
989
- },
990
- {
991
- "components": [
992
- {
993
- "internalType": "uint256",
994
- "name": "nativeFee",
995
- "type": "uint256"
996
- },
997
- {
998
- "internalType": "uint256",
999
- "name": "lzTokenFee",
1000
- "type": "uint256"
1001
- }
1002
- ],
1003
- "internalType": "struct ILayerZeroEndpoint.MessagingFee",
1004
- "name": "fee",
1005
- "type": "tuple"
1006
- }
1007
- ],
1008
- "internalType": "struct ILayerZeroEndpoint.MessagingReceipt",
1009
- "name": "",
1010
- "type": "tuple"
1011
- },
1012
- {
1013
- "internalType": "bytes",
1014
- "name": "",
1015
- "type": "bytes"
1016
- },
1017
- {
1018
- "internalType": "bytes",
1019
- "name": "",
1020
- "type": "bytes"
1021
- }
1022
- ],
1023
- "stateMutability": "nonpayable",
1024
- "type": "function"
1025
- },
1026
- {
1027
- "inputs": [
1028
- {
1029
- "internalType": "uint32",
1030
- "name": "_eid",
1031
- "type": "uint32"
1032
- },
1033
- {
1034
- "internalType": "address",
1035
- "name": "_oapp",
1036
- "type": "address"
1037
- },
1038
- {
1039
- "internalType": "uint32",
1040
- "name": "_configType",
1041
- "type": "uint32"
1042
- },
1043
- {
1044
- "internalType": "bytes",
1045
- "name": "_config",
1046
- "type": "bytes"
1047
- }
1048
- ],
1049
- "name": "setConfig",
1050
- "outputs": [],
1051
- "stateMutability": "nonpayable",
1052
- "type": "function"
1053
- },
1054
- {
1055
- "inputs": [
1056
- {
1057
- "internalType": "uint32",
1058
- "name": "_eid",
1059
- "type": "uint32"
1060
- },
1061
- {
1062
- "internalType": "uint64",
1063
- "name": "_inboundConfirmations",
1064
- "type": "uint64"
1065
- },
1066
- {
1067
- "internalType": "address[]",
1068
- "name": "_oracles",
1069
- "type": "address[]"
1070
- },
1071
- {
1072
- "internalType": "address[]",
1073
- "name": "_optionalOracles",
1074
- "type": "address[]"
1075
- },
1076
- {
1077
- "internalType": "uint16",
1078
- "name": "_optionalOraclesThreshold",
1079
- "type": "uint16"
1080
- }
1081
- ],
1082
- "name": "setDefaultConfig",
1083
- "outputs": [],
1084
- "stateMutability": "nonpayable",
1085
- "type": "function"
1086
- },
1087
- {
1088
- "inputs": [
1089
- {
1090
- "internalType": "uint32",
1091
- "name": "_eid",
1092
- "type": "uint32"
1093
- },
1094
- {
1095
- "internalType": "bytes",
1096
- "name": "_options",
1097
- "type": "bytes"
1098
- }
1099
- ],
1100
- "name": "setDefaultOptions",
1101
- "outputs": [],
1102
- "stateMutability": "nonpayable",
1103
- "type": "function"
1104
- },
1105
- {
1106
- "inputs": [
1107
- {
1108
- "internalType": "uint32",
1109
- "name": "_eid",
1110
- "type": "uint32"
1111
- },
1112
- {
1113
- "internalType": "uint32",
1114
- "name": "_maxMessageSize",
1115
- "type": "uint32"
1116
- },
1117
- {
1118
- "internalType": "uint64",
1119
- "name": "_outboundConfirmations",
1120
- "type": "uint64"
1121
- },
1122
- {
1123
- "internalType": "address",
1124
- "name": "_relayer",
1125
- "type": "address"
1126
- }
1127
- ],
1128
- "name": "setDefaultOutboundConfig",
1129
- "outputs": [],
1130
- "stateMutability": "nonpayable",
1131
- "type": "function"
1132
- },
1133
- {
1134
- "inputs": [
1135
- {
1136
- "internalType": "address",
1137
- "name": "_treasury",
1138
- "type": "address"
1139
- }
1140
- ],
1141
- "name": "setTreasury",
1142
- "outputs": [],
1143
- "stateMutability": "nonpayable",
1144
- "type": "function"
1145
- },
1146
- {
1147
- "inputs": [
1148
- {
1149
- "internalType": "uint32[]",
1150
- "name": "_eids",
1151
- "type": "uint32[]"
1152
- },
1153
- {
1154
- "internalType": "address",
1155
- "name": "_oapp",
1156
- "type": "address"
1157
- }
1158
- ],
1159
- "name": "snapshotConfig",
1160
- "outputs": [],
1161
- "stateMutability": "nonpayable",
1162
- "type": "function"
1163
- },
1164
- {
1165
- "inputs": [
1166
- {
1167
- "internalType": "bytes4",
1168
- "name": "interfaceId",
1169
- "type": "bytes4"
1170
- }
1171
- ],
1172
- "name": "supportsInterface",
1173
- "outputs": [
1174
- {
1175
- "internalType": "bool",
1176
- "name": "",
1177
- "type": "bool"
1178
- }
1179
- ],
1180
- "stateMutability": "view",
1181
- "type": "function"
1182
- },
1183
- {
1184
- "inputs": [
1185
- {
1186
- "internalType": "address",
1187
- "name": "newOwner",
1188
- "type": "address"
1189
- }
1190
- ],
1191
- "name": "transferOwnership",
1192
- "outputs": [],
1193
- "stateMutability": "nonpayable",
1194
- "type": "function"
1195
- },
1196
- {
1197
- "inputs": [],
1198
- "name": "treasury",
1199
- "outputs": [
1200
- {
1201
- "internalType": "address",
1202
- "name": "",
1203
- "type": "address"
1204
- }
1205
- ],
1206
- "stateMutability": "view",
1207
- "type": "function"
1208
- },
1209
- {
1210
- "inputs": [],
1211
- "name": "treasuryGasCap",
1212
- "outputs": [
1213
- {
1214
- "internalType": "uint256",
1215
- "name": "",
1216
- "type": "uint256"
1217
- }
1218
- ],
1219
- "stateMutability": "view",
1220
- "type": "function"
1221
- },
1222
- {
1223
- "inputs": [
1224
- {
1225
- "internalType": "address",
1226
- "name": "",
1227
- "type": "address"
1228
- },
1229
- {
1230
- "internalType": "uint32",
1231
- "name": "",
1232
- "type": "uint32"
1233
- }
1234
- ],
1235
- "name": "ulnConfig",
1236
- "outputs": [
1237
- {
1238
- "internalType": "uint64",
1239
- "name": "inboundConfirmations",
1240
- "type": "uint64"
1241
- },
1242
- {
1243
- "internalType": "bool",
1244
- "name": "useCustomOracles",
1245
- "type": "bool"
1246
- },
1247
- {
1248
- "internalType": "bool",
1249
- "name": "useCustomOptionalOracles",
1250
- "type": "bool"
1251
- },
1252
- {
1253
- "internalType": "uint16",
1254
- "name": "oraclesCount",
1255
- "type": "uint16"
1256
- },
1257
- {
1258
- "internalType": "uint16",
1259
- "name": "optionalOraclesCount",
1260
- "type": "uint16"
1261
- },
1262
- {
1263
- "internalType": "uint16",
1264
- "name": "optionalOraclesThreshold",
1265
- "type": "uint16"
1266
- }
1267
- ],
1268
- "stateMutability": "view",
1269
- "type": "function"
1270
- },
1271
- {
1272
- "inputs": [],
1273
- "name": "version",
1274
- "outputs": [
1275
- {
1276
- "internalType": "uint64",
1277
- "name": "major",
1278
- "type": "uint64"
1279
- },
1280
- {
1281
- "internalType": "uint8",
1282
- "name": "minor",
1283
- "type": "uint8"
1284
- },
1285
- {
1286
- "internalType": "uint8",
1287
- "name": "endpointVersion",
1288
- "type": "uint8"
1289
- }
1290
- ],
1291
- "stateMutability": "pure",
1292
- "type": "function"
1293
- },
1294
- {
1295
- "inputs": [
1296
- {
1297
- "internalType": "address",
1298
- "name": "_to",
1299
- "type": "address"
1300
- },
1301
- {
1302
- "internalType": "uint256",
1303
- "name": "_amount",
1304
- "type": "uint256"
1305
- }
1306
- ],
1307
- "name": "withdrawFee",
1308
- "outputs": [],
1309
- "stateMutability": "nonpayable",
1310
- "type": "function"
1311
- },
1312
- {
1313
- "inputs": [
1314
- {
1315
- "internalType": "address",
1316
- "name": "_to",
1317
- "type": "address"
1318
- },
1319
- {
1320
- "internalType": "uint256",
1321
- "name": "_amount",
1322
- "type": "uint256"
1323
- }
1324
- ],
1325
- "name": "withdrawLzTokenFee",
1326
- "outputs": [],
1327
- "stateMutability": "nonpayable",
1328
- "type": "function"
1329
- },
1330
- {
1331
- "stateMutability": "payable",
1332
- "type": "receive"
1333
- }
1334
- ],
1335
- "transactionHash": "0x8c35232566b70244e3317fe7481ae52463c6545b1b378228ff36c26ea6669bf8",
1336
- "receipt": {
1337
- "to": null,
1338
- "from": "0x70997970C51812dc3A010C7d01b50e0d17dc79C8",
1339
- "contractAddress": "0x712516e61C8B383dF4A63CFe83d7701Bce54B03e",
1340
- "transactionIndex": 0,
1341
- "gasUsed": "5116797",
1342
- "logsBloom": "0x000000000000000000020040000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000008000a0000000000000000000800000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000001000000000000000000000000000000",
1343
- "blockHash": "0xd908c263d6608cb7d3c9cef8056c435573a9c2e49162baf42c4546b3fc3537a0",
1344
- "transactionHash": "0x8c35232566b70244e3317fe7481ae52463c6545b1b378228ff36c26ea6669bf8",
1345
- "logs": [
1346
- {
1347
- "transactionIndex": 0,
1348
- "blockNumber": 77,
1349
- "transactionHash": "0x8c35232566b70244e3317fe7481ae52463c6545b1b378228ff36c26ea6669bf8",
1350
- "address": "0x712516e61C8B383dF4A63CFe83d7701Bce54B03e",
1351
- "topics": [
1352
- "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0",
1353
- "0x0000000000000000000000000000000000000000000000000000000000000000",
1354
- "0x00000000000000000000000070997970c51812dc3a010c7d01b50e0d17dc79c8"
1355
- ],
1356
- "data": "0x",
1357
- "logIndex": 0,
1358
- "blockHash": "0xd908c263d6608cb7d3c9cef8056c435573a9c2e49162baf42c4546b3fc3537a0"
1359
- }
1360
- ],
1361
- "blockNumber": 77,
1362
- "cumulativeGasUsed": "5116797",
1363
- "status": 1,
1364
- "byzantium": true
1365
- },
1366
- "args": [
1367
- "0x71C95911E9a5D330f4D621842EC243EE1343292e",
1368
- 21000
1369
- ],
1370
- "numDeployments": 1,
1371
- "solcInputHash": "a1699b89151ee3964af3797073a66e1b",
1372
- "bytecode": "0x6101006040523480156200001257600080fd5b5060405162005dc938038062005dc9833981016040819052620000359162000168565b81600182620000443362000118565b6001600160a01b038316620000895760405162461bcd60e51b815260206004820152600760248201526604c5a31303030360cc1b604482015260640160405180910390fd5b6001600160a01b03831660808190526040805163416ecebf60e01b8152905163416ecebf916004808201926020929091908290030181865afa158015620000d4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000fa9190620001a4565b63ffffffff1660a05260ff90911660c05260e05250620001d3915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080604083850312156200017c57600080fd5b82516001600160a01b03811681146200019457600080fd5b6020939093015192949293505050565b600060208284031215620001b757600080fd5b815163ffffffff81168114620001cc57600080fd5b9392505050565b60805160a05160c05160e051615b536200027660003960008181610a91015261101101526000818161033301528181612490015261325f01526000818161076e01526132dd0152600081816106a001528181610eaf01528181610ef40152818161106c015281816110b101528181611a5e01528181611dda01528181612186015281816121cb015281816127c4015281816128090152612b6b0152615b536000f3fe6080604052600436106102e05760003560e01c80637c0cf76311610184578063d2d287f0116100d6578063ee4478ab1161008a578063f921b71f11610064578063f921b71f14610b01578063faaebd2114610b16578063fd9be52214610b4357600080fd5b8063ee4478ab14610a7f578063f0f4426014610ac1578063f2fde38b14610ae157600080fd5b8063e22670ed116100bb578063e22670ed14610a35578063e9817f3414610a4a578063eb53479c14610a6a57600080fd5b8063d2d287f0146109f5578063df1e309f14610a1557600080fd5b80639c33abf711610138578063c4c3724611610112578063c4c37246146108f8578063c57d1ab014610953578063d18404bb1461097357600080fd5b80639c33abf71461087b578063a9a41806146108a9578063bf45f3dd146108d857600080fd5b80638acb8054116101695780638acb8054146108285780638da5cb5b1461083d5780638f58aa7a1461085b57600080fd5b80637c0cf763146107e85780637e09a8d61461080857600080fd5b80634a575bb71161023d5780635ed31c59116101f1578063715018a6116101cb578063715018a614610747578063726075371461075c57806375b5152a1461079057600080fd5b80635ed31c59146106da57806361d027b3146106fa578063690c65551461071a57600080fd5b8063545d1efa11610222578063545d1efa146105ca57806354fd4d50146106615780635e280f111461068e57600080fd5b80634a575bb7146104d85780634f8f455c146104f857600080fd5b80632cfacb061161029457806337d570ef1161027957806337d570ef1461042a5780633c782a521461044a57806343ea4fa9146104ab57600080fd5b80632cfacb06146103e05780632e8ea0a5146103f557600080fd5b806307d7b2f9116102c557806307d7b2f9146103675780631538bffa146103945780631c63e3b6146103be57600080fd5b806301ffc9a7146102ec5780630395b8da1461032157600080fd5b366102e757005b600080fd5b3480156102f857600080fd5b5061030c610307366004614900565b610b63565b60405190151581526020015b60405180910390f35b34801561032d57600080fd5b506103557f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff9091168152602001610318565b34801561037357600080fd5b50610387610382366004614a07565b610bfc565b6040516103189190614a87565b3480156103a057600080fd5b506103a9600581565b60405163ffffffff9091168152602001610318565b3480156103ca57600080fd5b506103de6103d9366004614aff565b610ead565b005b3480156103ec57600080fd5b506103a9600381565b34801561040157600080fd5b50610415610410366004614b6f565b610f47565b60408051928352602083019190915201610318565b34801561043657600080fd5b506103de610445366004614c02565b61106a565b34801561045657600080fd5b50610492610465366004614c7a565b600860209081526000938452604080852082529284528284209052825290205467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610318565b3480156104b757600080fd5b506104cb6104c6366004614ca8565b611269565b6040516103189190614d21565b3480156104e457600080fd5b506103de6104f3366004614df6565b611629565b34801561050457600080fd5b50610585610513366004614ca8565b600660209081526000928352604080842090915290825290205467ffffffffffffffff81169060ff680100000000000000008204811691690100000000000000000081049091169061ffff6a01000000000000000000008204811691600160601b8104821691600160701b9091041686565b6040805167ffffffffffffffff909716875294151560208701529215159385019390935261ffff908116606085015291821660808401521660a082015260c001610318565b3480156105d657600080fd5b5061062d6105e5366004614ca8565b600360209081526000928352604080842090915290825290205463ffffffff811690640100000000810467ffffffffffffffff1690600160601b90046001600160a01b031683565b6040805163ffffffff909416845267ffffffffffffffff90921660208401526001600160a01b031690820152606001610318565b34801561066d57600080fd5b50604080516003815260006020820152600291810191909152606001610318565b34801561069a57600080fd5b506106c27f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610318565b3480156106e657600080fd5b506103de6106f5366004614e98565b6119ff565b34801561070657600080fd5b506001546106c2906001600160a01b031681565b34801561072657600080fd5b5061073a610735366004614ee4565b611b54565b6040516103189190614f50565b34801561075357600080fd5b506103de611c4f565b34801561076857600080fd5b506103a97f000000000000000000000000000000000000000000000000000000000000000081565b34801561079c57600080fd5b5061062d6107ab366004614f63565b60026020526000908152604090205463ffffffff811690640100000000810467ffffffffffffffff1690600160601b90046001600160a01b031683565b3480156107f457600080fd5b5061030c610803366004614e98565b611c63565b34801561081457600080fd5b506103de610823366004614f7e565b611c94565b34801561083457600080fd5b506103a9600681565b34801561084957600080fd5b506000546001600160a01b03166106c2565b34801561086757600080fd5b506103de610876366004614fdb565b611d3c565b34801561088757600080fd5b5061089b610896366004615007565b611f44565b60405161031892919061504c565b3480156108b557600080fd5b506108c96108c4366004615070565b612179565b604051610318939291906150e5565b3480156108e457600080fd5b506103de6108f3366004615142565b612571565b34801561090457600080fd5b50610918610913366004614ca8565b61266a565b60408051825163ffffffff16815260208084015167ffffffffffffffff1690820152918101516001600160a01b031690820152606001610318565b34801561095f57600080fd5b506103de61096e36600461518d565b612781565b34801561097f57600080fd5b5061058561098e366004614f63565b60076020526000908152604090205467ffffffffffffffff81169060ff680100000000000000008204811691690100000000000000000081049091169061ffff6a01000000000000000000008204811691600160601b8104821691600160701b9091041686565b348015610a0157600080fd5b506103de610a10366004614aff565b6127c2565b348015610a2157600080fd5b506103de610a303660046151ab565b612852565b348015610a4157600080fd5b506103a9600181565b348015610a5657600080fd5b5061073a610a65366004614f63565b61287a565b348015610a7657600080fd5b506103a9600481565b348015610a8b57600080fd5b50610ab37f000000000000000000000000000000000000000000000000000000000000000081565b604051908152602001610318565b348015610acd57600080fd5b506103de610adc3660046151fe565b612914565b348015610aed57600080fd5b506103de610afc3660046151fe565b612a38565b348015610b0d57600080fd5b506103a9600281565b348015610b2257600080fd5b50610ab3610b313660046151fe565b60056020526000908152604090205481565b348015610b4f57600080fd5b506103de610b5e366004614fdb565b612ac8565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f1532172f000000000000000000000000000000000000000000000000000000001480610bf657507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60408051808201909152600080825260208201526000610c1f60208601866151fe565b90506000610c37826109136040890160208a01614f63565b90506000610c48604088018861521b565b90509050610c6081836000015163ffffffff16612d39565b8451600003610d235760046000610c7d60408a0160208b01614f63565b63ffffffff1663ffffffff1681526020019081526020016000208054610ca290615280565b80601f0160208091040260200160405190810160405280929190818152602001828054610cce90615280565b8015610d1b5780601f10610cf057610100808354040283529160200191610d1b565b820191906000526020600020905b815481529060010190602001808311610cfe57829003601f168201915b505050505094505b606080600087511115610d8b57610d3987612d81565b9150600161ffff1682600081518110610d5457610d546152ba565b60200260200101516000015161ffff1603610d8b5781600081518110610d7c57610d7c6152ba565b60200260200101516020015190505b600084604001516001600160a01b031663709eb6648b6020016020810190610db39190614f63565b8887866040518563ffffffff1660e01b8152600401610dd594939291906152d0565b602060405180830381865afa158015610df2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e169190615304565b610e209082615333565b9050610e4186610e3660408d0160208e01614f63565b858860200151612ff4565b610e4b9082615333565b90506000899050600080610e73898e6020016020810190610e6c9190614f63565b8686610f47565b90925090508115610e8b57610e888285615333565b93505b60408051808201909152938452602084015250909a9950505050505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610f2c576040516387a6483960e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048201523360248201526044015b60405180910390fd5b610f37838383613061565b610f428383836130d4565b505050565b60015460009081906001600160a01b031615611061576001546040517f3e0132600000000000000000000000000000000000000000000000000000000081526001600160a01b03888116600483015263ffffffff8816602483015260448201879052851515606483015290911690633e01326090608401602060405180830381865afa925050508015610ff7575060408051601f3d908101601f19168201909252610ff491810190615304565b60015b1561106157831561100a5780915061105f565b60006110367f00000000000000000000000000000000000000000000000000000000000000003a615346565b905060008187116110475781611049565b865b9050808311611058578261105a565b805b945050505b505b94509492505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146110e4576040516387a6483960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166004820152336024820152604401610f23565b60001963ffffffff84160161115e57600061110182840184614f63565b6001600160a01b038616600090815260036020908152604080832063ffffffff808c16855292529091208054919092167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000090911617905550611262565b60011963ffffffff8416016111e957600061117b8284018461535d565b6001600160a01b038616600090815260036020908152604080832063ffffffff8b1684529091529020805467ffffffffffffffff909216640100000000027fffffffffffffffffffffffffffffffffffffffff0000000000000000ffffffff90921691909117905550611262565b60021963ffffffff841601611255576000611206828401846151fe565b6001600160a01b03808716600090815260036020908152604080832063ffffffff8c1684529091529020805491909216600160601b026bffffffffffffffffffffffff90911617905550611262565b61126285858585856130df565b5050505050565b604080516101008101825260008082526020820181905291810182905260608082018390526080820183905260a082019290925260c0810182905260e08101919091526001600160a01b038316600090815260066020908152604080832063ffffffff861684528252808320815161010081018352815467ffffffffffffffff8116825260ff6801000000000000000082048116151583870152690100000000000000000082041615158285015261ffff6a0100000000000000000000820481166060840152600160601b820481166080840152600160701b9091041660a08201526001820180548451818702810187019095528085529194929360c08601939092908301828280156113a557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611387575b505050505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561140757602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116113e9575b5050509190925250505063ffffffff8416600090815260076020526040902080549192509067ffffffffffffffff166114825760405162461bcd60e51b815260206004820152600760248201527f4c5a3130303038000000000000000000000000000000000000000000000000006044820152606401610f23565b815167ffffffffffffffff166000036114a457805467ffffffffffffffff1682525b8160200151611529578060010180548060200260200160405190810160405280929190818152602001828054801561150557602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116114e7575b505050505060c083015280546a0100000000000000000000900461ffff1660608301525b81604001516115b6578060020180548060200260200160405190810160405280929190818152602001828054801561158a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161156c575b505050505060e0830152805461ffff600160601b820481166080850152600160701b9091041660a08301525b6000826060015161ffff1611806115d5575060008260a0015161ffff16115b6116215760405162461bcd60e51b815260206004820152600760248201527f4c5a4430303035000000000000000000000000000000000000000000000000006044820152606401610f23565b509392505050565b6116316130ec565b838267ffffffffffffffff88166116745760405162461bcd60e51b815260206004820152600760248201526604c5a31303030360cc1b6044820152606401610f23565b61ffff8211158015611688575061ffff8111155b80156116985750808361ffff1611155b6116ce5760405162461bcd60e51b81526020600482015260076024820152664c5a313030303960c81b6044820152606401610f23565b60008211806116e1575060008361ffff16115b61172d5760405162461bcd60e51b815260206004820152600760248201527f4c5a3130303131000000000000000000000000000000000000000000000000006044820152606401610f23565b61176b878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250869250613146915050565b6117a9858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250859250613146915050565b6040518061010001604052808967ffffffffffffffff1681526020016000151581526020016000151581526020018361ffff1681526020018261ffff1681526020018461ffff1681526020018888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208881028281018201909352888252928301929091899189918291850190849080828437600092018290525093909452505063ffffffff8c168152600760209081526040918290208451815486840151948701516060880151608089015160a08a015161ffff908116600160701b027fffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffff928216600160601b02929092167fffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffff919093166a0100000000000000000000026bffff0000000000000000000019941515690100000000000000000002949094166bffffff00000000000000000019991515680100000000000000000268ffffffffffffffffff1990961667ffffffffffffffff9097169690961794909417979097169390931717161792909217825560c0840151805192935061198c9260018501929190910190614817565b5060e082015180516119a8916002840191602090910190614817565b509050508863ffffffff167fcefc09e599b8a950c1c6a0e233dfd90adac40718fb137ced2ec19d472b8e2a208989898989896040516119ec969594939291906153b6565b60405180910390a2505050505050505050565b6000611a18611a0e85856131e5565b6104c686866131fe565b9050611a2681858585613221565b611a5c5760405162461bcd60e51b815260206004820152600760248201526604c5a31303030360cc1b6044820152606401610f23565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166338d71486611a9586866131fe565b611a9f8787613514565b611aa988886131e5565b611ab3898961352d565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e087901b16815263ffffffff94909416600485015260248401929092526001600160a01b0316604483015267ffffffffffffffff1660648201526084810185905260a401600060405180830381600087803b158015611b3657600080fd5b505af1158015611b4a573d6000803e3d6000fd5b5050505050505050565b606060001963ffffffff831601611ba65763ffffffff8381166000908152600260209081526040918290208054835194169184019190915291015b604051602081830303815290604052915050610bf6565b60011963ffffffff831601611bf35763ffffffff83166000908152600260209081526040918290208054835164010000000090910467ffffffffffffffff16928101929092529101611b8f565b60021963ffffffff831601611c3e5763ffffffff831660009081526002602090815260409182902080548351600160601b9091046001600160a01b0316928101929092529101611b8f565b611c488383613550565b9050610bf6565b611c576130ec565b611c616000613562565b565b600080611c7d611c7386866131e5565b6104c687876131fe565b9050611c8b81868686613221565b95945050505050565b80600860008686604051611ca9929190615405565b6040805191829003909120825260208083019390935290810160009081208682528352818120338083529352819020805467ffffffffffffffff191667ffffffffffffffff949094169390931790925590517fd57606ee258836ec1b40f83a128d2b514581eaf4f71801fbed3bc94b5358ecc091611d2e918790879086908890615440565b60405180910390a150505050565b6001546001600160a01b03163314611d965760405162461bcd60e51b815260206004820152600760248201527f4c5a3530303030000000000000000000000000000000000000000000000000006044820152606401610f23565b6001600160a01b038216611dd65760405162461bcd60e51b815260206004820152600760248201526604c5a31303030360cc1b6044820152606401610f23565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166307b9ca7c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e5a9190615481565b90506001600160a01b038116611eb25760405162461bcd60e51b815260206004820152600760248201527f4c5a4430303033000000000000000000000000000000000000000000000000006044820152606401610f23565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301526024820184905282169063a9059cbb906044016020604051808303816000875af1158015611f1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f3e919061549e565b50505050565b6060600060001963ffffffff841601612002576001600160a01b038416600090815260036020908152604080832063ffffffff808a168552925282208054909291169003611fd25763ffffffff8681166000908152600260209081526040918290208054835194169184019190915291015b6040516020818303038152906040526001935093505050612171565b80546040805163ffffffff9092166020830152015b60405160208183030381529060405260009250925050612171565b60011963ffffffff8416016120b9576001600160a01b038416600090815260036020908152604080832063ffffffff8916845290915281208054909164010000000090910467ffffffffffffffff1690036120955763ffffffff86166000908152600260209081526040918290208054835164010000000090910467ffffffffffffffff16928101929092529101611fb6565b80546040805164010000000090920467ffffffffffffffff16602083015201611fe7565b60021963ffffffff841601612161576001600160a01b03808516600090815260036020908152604080832063ffffffff8a168452909152902080549091600160601b9091041661213f5763ffffffff861660009081526002602090815260409182902080548351600160601b9091046001600160a01b0316928101929092529101611fb6565b805460408051600160601b9092046001600160a01b0316602083015201611fe7565b61216c8585856135bf565b915091505b935093915050565b612181614889565b6060807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146121fe576040516387a6483960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166004820152336024820152604401610f23565b60006122106080880160608901614f63565b905060006122246060890160408a016151fe565b9050600087516000036122d25763ffffffff83166000908152600460205260409020805461225190615280565b80601f016020809104026020016040519081016040528092919081815260200182805461227d90615280565b80156122ca5780601f1061229f576101008083540402835291602001916122ca565b820191906000526020600020905b8154815290600101906020018083116122ad57829003601f168201915b505050505097505b60608060008a51111561233a576122e88a612d81565b9150600161ffff1682600081518110612303576123036152ba565b60200260200101516000015161ffff160361233a578160008151811061232b5761232b6152ba565b60200260200101516020015190505b6000612346858761266a565b9050600061235760a08e018e61521b565b9050905061236f81836000015163ffffffff16612d39565b81604001516001600160a01b031663717e8a42888884876040518563ffffffff1660e01b81526004016123a594939291906152d0565b6020604051808303816000875af11580156123c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123e89190615304565b94508415612422576040808301516001600160a01b031660009081526005602052908120805487929061241c908490615333565b90915550505b60408083015181516001600160a01b039091168152602081018790527f489a11bf9dbfc4407f7d03d118ac6bc81743af9e1189f9d3dc336415fa49cc89910160405180910390a16124788d8584602001516135d4565b6124829086615333565b9450505050506000806124b57f00000000000000000000000000000000000000000000000000000000000000008c613671565b915091506124c1614889565b60006124d060208e018e61535d565b90508a6000806124e2898b8a86610f47565b9092509050811561252a576001546001600160a01b031660009081526005602052604081208054849290612517908490615333565b9091555061252790508289615333565b97505b6040805160608101825297885267ffffffffffffffff94909416602080890191909152845180860186529889528801525050830193909352909a9099509650505050505050565b6125796130ec565b60008267ffffffffffffffff1611801561259b57506001600160a01b03811615155b6125d15760405162461bcd60e51b815260206004820152600760248201526604c5a31303030360cc1b6044820152606401610f23565b60008363ffffffff16116126115760405162461bcd60e51b81526020600482015260076024820152664c5a313030303960c81b6044820152606401610f23565b63ffffffff938416600090815260026020526040902067ffffffffffffffff909216640100000000026001600160a01b03909116600160601b026bffffffffffffffffffffffff19169290931691909117919091179055565b6040805160608082018352600080835260208084018290528385018290526001600160a01b0387811683526003825285832063ffffffff88811680865291845287852088518088018a529054808316825267ffffffffffffffff640100000000808304821684890152600160601b928390048716848d0152948852600287528a88208b51998a018c52548085168a529485041695880195909552939091049091169584019590955280519394909316900361272a57805163ffffffff1682525b816020015167ffffffffffffffff166000036127555760208082015167ffffffffffffffff16908301525b60408201516001600160a01b0316611621576040908101516001600160a01b0316908201529392505050565b6040805183151581526020810183905233917ff70f667bf53155c301a4abbdadaabddfbd3afbabbefc7e7ca6ad37b81756c609910160405180910390a25050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461283c576040516387a6483960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166004820152336024820152604401610f23565b6128478383836136f5565b610f428383836137d1565b61285a6130ec565b63ffffffff83166000908152600460205260409020611f3e828483615509565b6004602052600090815260409020805461289390615280565b80601f01602080910402602001604051908101604052809291908181526020018280546128bf90615280565b801561290c5780601f106128e15761010080835404028352916020019161290c565b820191906000526020600020905b8154815290600101906020018083116128ef57829003601f168201915b505050505081565b61291c6130ec565b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f3e0132600000000000000000000000000000000000000000000000000000000060048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa158015612999573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129bd919061549e565b612a095760405162461bcd60e51b815260206004820152600760248201527f4c5a4330303031000000000000000000000000000000000000000000000000006044820152606401610f23565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b612a406130ec565b6001600160a01b038116612abc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610f23565b612ac581613562565b50565b6001600160a01b038216612b085760405162461bcd60e51b815260206004820152600760248201526604c5a31303030360cc1b6044820152606401610f23565b33600090815260056020526040902054811115612b675760405162461bcd60e51b815260206004820152600760248201527f4c5a3130303033000000000000000000000000000000000000000000000000006044820152606401610f23565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f936112b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612bc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612beb9190615481565b33600090815260056020526040812080549293506001600160a01b038416151592859290612c1a9084906155c9565b90915550508015612cb7576040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301526024820185905283169063a9059cbb906044016020604051808303816000875af1158015612c8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cb1919061549e565b50612cef565b6040516001600160a01b0385169084156108fc029085906000818181858888f19350505050158015612ced573d6000803e3d6000fd5b505b604080516001600160a01b03861681526020810185905233917ff15a0a3784dea9b4fe33bc98e2450745e262d310237b2868ea8ef56967ff3ecb910160405180910390a250505050565b80821115612d7d576040517ff001cc650000000000000000000000000000000000000000000000000000000081526004810182905260248101839052604401610f23565b5050565b60606000612d8f83826137dc565b905061ffff811660011480612da8575061ffff81166002145b15612dc5576000612dbd8261ffff1685613842565b949350505050565b8061ffff16600303612fac576000612dde8460026137dc565b905060008161ffff1667ffffffffffffffff811115612dff57612dff614950565b604051908082528060200260200182016040528015612e4557816020015b604080518082019091526000815260606020820152815260200190600190039081612e1d5790505b50905060046000805b8461ffff16811015612f66576000612e6689856137dc565b9050612e73600285615333565b9350811580612e8957508261ffff168161ffff16115b612ed55760405162461bcd60e51b815260206004820152600760248201527f4c5a3130303036000000000000000000000000000000000000000000000000006044820152606401610f23565b9150816000612ee48a866137dc565b9050612ef1600286615333565b945060405180604001604052808361ffff168152602001612f21878461ffff168e613aeb9092919063ffffffff16565b815250868481518110612f3657612f366152ba565b6020908102919091010152612f4f61ffff821686615333565b945050508080612f5e906155dc565b915050612e4e565b5086518214612fa15760405162461bcd60e51b81526020600482015260076024820152664c5a313030303960c81b6044820152606401610f23565b509095945050505050565b60405162461bcd60e51b815260206004820152600760248201527f4c5a4330303030000000000000000000000000000000000000000000000000006044820152606401610f23565b6000806130018686611269565b90506000613010856002613c13565b9250505061302a8260c00151836060015189898589613cae565b6130349084615333565b925061304c8260e00151836080015189898589613cae565b6130569084615333565b979650505050505050565b60005b82811015611f3e576000848483818110613080576130806152ba565b90506020020160208101906130959190614f63565b6001600160a01b038416600090815260036020908152604080832063ffffffff90941683529290529081205550806130cc816155dc565b915050613064565b610f42838383613d73565b6112628585858585613e2a565b6000546001600160a01b03163314611c615760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610f23565b6000805b82811015611f3e576000848281518110613166576131666152ba565b60200260200101519050826001600160a01b0316816001600160a01b0316116131d15760405162461bcd60e51b815260206004820152600760248201527f4c5a3130303036000000000000000000000000000000000000000000000000006044820152606401610f23565b9150806131dd816155dc565b91505061314a565b60006131f76131f48484614176565b90565b9392505050565b600061320e600d600984866155f6565b61321791615620565b60e01c9392505050565b60006051831461325d5760405162461bcd60e51b81526020600482015260076024820152664c5a313030303960c81b6044820152606401610f23565b7f000000000000000000000000000000000000000000000000000000000000000060ff1661328b8585614186565b60ff16146132db5760405162461bcd60e51b815260206004820152600760248201527f4c5a3130303037000000000000000000000000000000000000000000000000006044820152606401610f23565b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff1661330c85856141a8565b63ffffffff161461335f5760405162461bcd60e51b815260206004820152600760248201527f4c5a3130303038000000000000000000000000000000000000000000000000006044820152606401610f23565b60008484604051613371929190615405565b604051908190039020865190915060005b876060015161ffff1681101561341c5760008860c0015182815181106133aa576133aa6152ba565b60209081029190910181015160008681526008835260408082208a835284528082206001600160a01b0384168352909352919091205490915067ffffffffffffffff90811690841681101561340757600095505050505050612dbd565b50508080613414906155dc565b915050613382565b506000876060015161ffff1611801561343b5750608087015161ffff16155b1561344b57600192505050612dbd565b6000805b886080015161ffff168110156135055760008960e001518281518110613477576134776152ba565b60209081029190910181015160008781526008835260408082208b835284528082206001600160a01b0384168352909352919091205490915067ffffffffffffffff90811690851681106134f057836134cf816155dc565b9450508a60a0015161ffff1684106134f05760019650505050505050612dbd565b505080806134fd906155dc565b91505061344f565b50600098975050505050505050565b6000613524602d600d84866155f6565b6131f791615668565b600061353d6009600184866155f6565b61354691615686565b60c01c9392505050565b60606131f7838363ffffffff166141b8565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6060600061216c85858563ffffffff1661423f565b6000806135e760608601604087016151fe565b905060006135ff826104c66080890160608a01614f63565b9050600061360e866002613c13565b9250505061363a8260c001518360600151858a60600160208101906136339190614f63565b858a61438f565b6136449085615333565b93506136678260e001518360800151858a60600160208101906136339190614f63565b6130569085615333565b6000606081613683602085018561535d565b61368c85614559565b60405160200161369d9291906156cc565b60408051601f1981840301815291905280516020820120935090508481846136c860a088018861521b565b6040516020016136dc959493929190615717565b6040516020818303038152906040529150509250929050565b60005b82811015611f3e576000848483818110613714576137146152ba565b90506020020160208101906137299190614f63565b90506000613737848361266a565b6001600160a01b03858116600090815260036020908152604080832063ffffffff978816845282529182902084518154928601519590930151909316600160601b026bffffffffffffffffffffffff67ffffffffffffffff909516640100000000026bffffffffffffffffffffffff19909216929096169190911717919091169290921790915550806137c9816155dc565b9150506136f8565b610f428383836145fd565b60006137e9826002615333565b835110156138395760405162461bcd60e51b815260206004820152601460248201527f746f55696e7431365f6f75744f66426f756e64730000000000000000000000006044820152606401610f23565b50016002015190565b604080516001808252818301909252606091816020015b604080518082019091526000815260606020820152815260200190600190039081613859579050509050606060001984016139455782516022146138c95760405162461bcd60e51b81526020600482015260076024820152664c5a313030303960c81b6044820152606401610f23565b60006138d68460026147b1565b6040517e010000000000000000000000000000000000000000000000000000000000006020820152909150602201604051602081830303815290604052915081600160208360405160200161392e949392919061577b565b604051602081830303815290604052915050613aac565b6001198401612fac576042835111801561396157506062835111155b6139975760405162461bcd60e51b81526020600482015260076024820152664c5a313030303960c81b6044820152606401610f23565b60006139a48460026147b1565b905060006139b38560226147b1565b90506000604286516139c591906155c9565b905060006139d587604284613aeb565b6139de906157d4565b90506139eb8260206155c9565b6139f6906008615346565b6040805160208082018790529390921c8282018190528151808403830181526060840183527e0200000000000000000000000000000000000000000000000000000000000060808501528251606281860301815260828501909352919750929091613a6b91889160019190899060a20161577b565b6040516020818303038152906040529550856002825183604051602001613a9594939291906157f8565b604051602081830303815290604052955050505050505b6040518060400160405280600161ffff1681526020018281525082600081518110613ad957613ad96152ba565b60200260200101819052505092915050565b606081613af981601f615333565b1015613b475760405162461bcd60e51b815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401610f23565b613b518284615333565b84511015613ba15760405162461bcd60e51b815260206004820152601160248201527f736c6963655f6f75744f66426f756e64730000000000000000000000000000006044820152606401610f23565b606082158015613bc05760405191506000825260208201604052613c0a565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015613bf9578051835260209283019201613be1565b5050858452601f01601f1916604052505b50949350505050565b600080606060005b8551811015613c8f578461ffff16868281518110613c3b57613c3b6152ba565b60200260200101516000015161ffff1603613c7d57600181878381518110613c6557613c656152ba565b60200260200101516020015193509350935050613ca7565b80613c87816155dc565b915050613c1b565b50506040805160208101909152600080825292508291505b9250925092565b6000805b8661ffff16811015613d6857878181518110613cd057613cd06152ba565b60200260200101516001600160a01b03166330bb3aac868589886040518563ffffffff1660e01b8152600401613d099493929190615865565b602060405180830381865afa158015613d26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d4a9190615304565b613d549083615333565b915080613d60816155dc565b915050613cb2565b509695505050505050565b60005b82811015611f3e576000848483818110613d9257613d926152ba565b9050602002016020810190613da79190614f63565b6001600160a01b038416600090815260066020908152604080832063ffffffff85168452909152812080547fffffffffffffffffffffffffffffffff00000000000000000000000000000000168155919250613e0660018301826148d1565b613e146002830160006148d1565b5050508080613e22906155dc565b915050613d76565b6001600160a01b038416600090815260066020908152604080832063ffffffff8981168552925290912090841660031901613e90576000613e6d8385018561535d565b825467ffffffffffffffff191667ffffffffffffffff9190911617825550614124565b60041963ffffffff851601613f9257600080613eae84860186615921565b80519193509150600083613ec3578115613eca565b61ffff8211155b905080613f035760405162461bcd60e51b81526020600482015260076024820152664c5a313030303960c81b6044820152606401610f23565b613f0d8383613146565b84546bffff0000000000000000000019166a010000000000000000000061ffff8416021785558251613f489060018701906020860190614817565b5084547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff166801000000000000000085151502178555613f88898b611269565b5050505050614124565b60051963ffffffff851601612fac5760008080613fb185870187615971565b81519295509093509150600084613fc9578115613fd0565b61ffff8211155b9050806140095760405162461bcd60e51b81526020600482015260076024820152664c5a313030303960c81b6044820152606401610f23565b818361ffff16111561405d5760405162461bcd60e51b815260206004820152600760248201527f4c5a3130303033000000000000000000000000000000000000000000000000006044820152606401610f23565b6140678483613146565b85547fffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffff16600160601b61ffff84160217865583516140ae9060028801906020870190614817565b5085547fffffffffffffffffffffffffffffffff0000ffffffff00ffffffffffffffffff16600160701b61ffff8516027fffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff161769010000000000000000008615150217865561411d8a8c611269565b5050505050505b8363ffffffff16856001600160a01b03167f32a52e909bac91be27e4f3ddb96c51d9484dd2323a9f358d11ef8c35298196cc85856040516141669291906159c8565b60405180910390a3505050505050565b60006135246051603184866155f6565b600061419560018284866155f6565b61419e916159dc565b60f81c9392505050565b600061320e6031602d84866155f6565b63ffffffff8216600090815260076020526040902060609060031983016141f65780546040805167ffffffffffffffff909216602083015201611b8f565b60041983016142135780600101604051602001611b8f9190615a60565b6005198301612fac578054604051611b8f916002840191600160701b90910461ffff1690602001615a73565b6001600160a01b038216600090815260066020908152604080832063ffffffff87168452825280832060079092528220606092919060031985016142e257815467ffffffffffffffff166000036142ad5780546040805167ffffffffffffffff909216602083015201611fb6565b81546040805167ffffffffffffffff9092166020830152015b6040516020818303038152906040526000935093505050612171565b600419850161432957815468010000000000000000900460ff161561431557816001016040516020016142c69190615a60565b80600101604051602001611fb69190615a60565b6005198501612fac5781546901000000000000000000900460ff161561436c5781546040516142c6916002850191600160701b90910461ffff1690602001615a73565b8054604051611fb6916002840191600160701b90910461ffff1690602001615a73565b6000808661ffff1667ffffffffffffffff8111156143af576143af614950565b6040519080825280602002602001820160405280156143d8578160200160208202803683370190505b50905060005b8761ffff168110156145145760008982815181106143fe576143fe6152ba565b60200260200101516001600160a01b031663e4fbd90388878b8a6040518563ffffffff1660e01b81526004016144379493929190615865565b6020604051808303816000875af1158015614456573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061447a9190615304565b90508083838151811061448f5761448f6152ba565b602090810291909101015280156145015780600560008c85815181106144b7576144b76152ba565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282546144ee9190615333565b909155506144fe90508185615333565b93505b508061450c816155dc565b9150506143de565b507f4a4f9b55e84c19345500ad54202240b345f195977a3aa5cd6c4d108cf90f8f808882604051614546929190615a99565b60405180910390a1509695505050505050565b606061456b6040830160208401614f63565b61458a61457e60608501604086016151fe565b6001600160a01b031690565b61459a6080850160608601614f63565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e094851b811660208301526024820193909352921b166044820152608083013560488201526068016040516020818303038152906040529050919050565b60005b82811015611f3e57600084848381811061461c5761461c6152ba565b90506020020160208101906146319190614f63565b9050600061463f8483611269565b6001600160a01b038516600090815260066020908152604080832063ffffffff871684528252918290208351815483860151948601516060870151608088015160a089015161ffff908116600160701b027fffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffff928216600160601b02929092167fffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffff919093166a0100000000000000000000026bffff0000000000000000000019941515690100000000000000000002949094166bffffff00000000000000000019991515680100000000000000000268ffffffffffffffffff1990961667ffffffffffffffff9097169690961794909417979097169390931717161792909217825560c08301518051939450849361477c9260018501920190614817565b5060e08201518051614798916002840191602090910190614817565b50905050505080806147a9906155dc565b915050614600565b60006147be826020615333565b8351101561480e5760405162461bcd60e51b815260206004820152601560248201527f746f55696e743235365f6f75744f66426f756e647300000000000000000000006044820152606401610f23565b50016020015190565b828054828255906000526020600020908101928215614879579160200282015b82811115614879578251825473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909116178255602090920191600190910190614837565b506148859291506148eb565b5090565b604051806060016040528060008019168152602001600067ffffffffffffffff1681526020016148cc604051806040016040528060008152602001600081525090565b905290565b5080546000825590600052602060002090810190612ac591905b5b8082111561488557600081556001016148ec565b60006020828403121561491257600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146131f757600080fd5b8015158114612ac557600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561498f5761498f614950565b604052919050565b600082601f8301126149a857600080fd5b813567ffffffffffffffff8111156149c2576149c2614950565b6149d56020601f19601f84011601614966565b8181528460208386010111156149ea57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060608486031215614a1c57600080fd5b833567ffffffffffffffff80821115614a3457600080fd5b9085019060608288031215614a4857600080fd5b909350602085013590614a5a82614942565b90925060408501359080821115614a7057600080fd5b50614a7d86828701614997565b9150509250925092565b815181526020808301519082015260408101610bf6565b60008083601f840112614ab057600080fd5b50813567ffffffffffffffff811115614ac857600080fd5b6020830191508360208260051b8501011115614ae357600080fd5b9250929050565b6001600160a01b0381168114612ac557600080fd5b600080600060408486031215614b1457600080fd5b833567ffffffffffffffff811115614b2b57600080fd5b614b3786828701614a9e565b9094509250506020840135614b4b81614aea565b809150509250925092565b803563ffffffff81168114614b6a57600080fd5b919050565b60008060008060808587031215614b8557600080fd5b8435614b9081614aea565b9350614b9e60208601614b56565b9250604085013591506060850135614bb581614942565b939692955090935050565b60008083601f840112614bd257600080fd5b50813567ffffffffffffffff811115614bea57600080fd5b602083019150836020828501011115614ae357600080fd5b600080600080600060808688031215614c1a57600080fd5b614c2386614b56565b94506020860135614c3381614aea565b9350614c4160408701614b56565b9250606086013567ffffffffffffffff811115614c5d57600080fd5b614c6988828901614bc0565b969995985093965092949392505050565b600080600060608486031215614c8f57600080fd5b83359250602084013591506040840135614b4b81614aea565b60008060408385031215614cbb57600080fd5b8235614cc681614aea565b9150614cd460208401614b56565b90509250929050565b600081518084526020808501945080840160005b83811015614d165781516001600160a01b031687529582019590820190600101614cf1565b509495945050505050565b6020815267ffffffffffffffff825116602082015260006020830151614d4b604084018215159052565b506040830151801515606084015250606083015161ffff8116608084015250608083015161ffff811660a08401525060a083015161ffff811660c08401525060c08301516101008060e0850152614da6610120850183614cdd565b915060e0850151601f198584030182860152614dc28382614cdd565b9695505050505050565b803567ffffffffffffffff81168114614b6a57600080fd5b803561ffff81168114614b6a57600080fd5b600080600080600080600060a0888a031215614e1157600080fd5b614e1a88614b56565b9650614e2860208901614dcc565b9550604088013567ffffffffffffffff80821115614e4557600080fd5b614e518b838c01614a9e565b909750955060608a0135915080821115614e6a57600080fd5b50614e778a828b01614a9e565b9094509250614e8a905060808901614de4565b905092959891949750929550565b600080600060408486031215614ead57600080fd5b833567ffffffffffffffff811115614ec457600080fd5b614ed086828701614bc0565b909790965060209590950135949350505050565b60008060408385031215614ef757600080fd5b614cc683614b56565b60005b83811015614f1b578181015183820152602001614f03565b50506000910152565b60008151808452614f3c816020860160208601614f00565b601f01601f19169290920160200192915050565b6020815260006131f76020830184614f24565b600060208284031215614f7557600080fd5b6131f782614b56565b60008060008060608587031215614f9457600080fd5b843567ffffffffffffffff811115614fab57600080fd5b614fb787828801614bc0565b90955093505060208501359150614fd060408601614dcc565b905092959194509250565b60008060408385031215614fee57600080fd5b8235614ff981614aea565b946020939093013593505050565b60008060006060848603121561501c57600080fd5b61502584614b56565b9250602084013561503581614aea565b915061504360408501614b56565b90509250925092565b60408152600061505f6040830185614f24565b905082151560208301529392505050565b60008060006060848603121561508557600080fd5b833567ffffffffffffffff8082111561509d57600080fd5b9085019060c082880312156150b157600080fd5b909350602085013590808211156150c757600080fd5b506150d486828701614997565b9250506040840135614b4b81614942565b8351815267ffffffffffffffff60208501511660208201526000604085015161511b604084018280518252602090810151910152565b5060c0608083015261513060c0830185614f24565b82810360a0840152614dc28185614f24565b6000806000806080858703121561515857600080fd5b61516185614b56565b935061516f60208601614b56565b925061517d60408601614dcc565b91506060850135614bb581614aea565b600080604083850312156151a057600080fd5b8235614ff981614942565b6000806000604084860312156151c057600080fd5b6151c984614b56565b9250602084013567ffffffffffffffff8111156151e557600080fd5b6151f186828701614bc0565b9497909650939450505050565b60006020828403121561521057600080fd5b81356131f781614aea565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261525057600080fd5b83018035915067ffffffffffffffff82111561526b57600080fd5b602001915036819003821315614ae357600080fd5b600181811c9082168061529457607f821691505b6020821081036152b457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b63ffffffff851681526001600160a01b0384166020820152826040820152608060608201526000614dc26080830184614f24565b60006020828403121561531657600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610bf657610bf661531d565b8082028115828204841417610bf657610bf661531d565b60006020828403121561536f57600080fd5b6131f782614dcc565b8183526000602080850194508260005b85811015614d1657813561539b81614aea565b6001600160a01b031687529582019590820190600101615388565b67ffffffffffffffff871681526080602082015260006153da608083018789615378565b82810360408401526153ed818688615378565b91505061ffff83166060830152979650505050505050565b8183823760009101908152919050565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b6001600160a01b0386168152608060208201526000615463608083018688615415565b67ffffffffffffffff94909416604083015250606001529392505050565b60006020828403121561549357600080fd5b81516131f781614aea565b6000602082840312156154b057600080fd5b81516131f781614942565b601f821115610f4257600081815260208120601f850160051c810160208610156154e25750805b601f850160051c820191505b81811015615501578281556001016154ee565b505050505050565b67ffffffffffffffff83111561552157615521614950565b6155358361552f8354615280565b836154bb565b6000601f84116001811461556957600085156155515750838201355b600019600387901b1c1916600186901b178355611262565b600083815260209020601f19861690835b8281101561559a578685013582556020948501946001909201910161557a565b50868210156155b75760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81810381811115610bf657610bf661531d565b600060001982036155ef576155ef61531d565b5060010190565b6000808585111561560657600080fd5b8386111561561357600080fd5b5050820193919092039150565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156156605780818660040360031b1b83161692505b505092915050565b80356020831015610bf657600019602084900360031b1b1692915050565b7fffffffffffffffff00000000000000000000000000000000000000000000000081358181169160088510156156605760089490940360031b84901b1690921692915050565b7fffffffffffffffff0000000000000000000000000000000000000000000000008360c01b16815260008251615709816008850160208701614f00565b919091016008019392505050565b7fff000000000000000000000000000000000000000000000000000000000000008660f81b16815260008551615754816001850160208a01614f00565b80830190508560018201528385602183013760009301602101928352509095945050505050565b6000855161578d818460208a01614f00565b7fffff00000000000000000000000000000000000000000000000000000000000060f096871b8116919093019081529390941b166002830152600482015260240192915050565b805160208083015191908110156152b45760001960209190910360031b1b16919050565b6000855161580a818460208a01614f00565b80830190507fffff000000000000000000000000000000000000000000000000000000000000808760f01b168252808660f01b166002830152508351615857816004840160208801614f00565b016004019695505050505050565b63ffffffff8516815267ffffffffffffffff841660208201526001600160a01b0383166040820152608060608201526000614dc26080830184614f24565b600082601f8301126158b457600080fd5b8135602067ffffffffffffffff8211156158d0576158d0614950565b8160051b6158df828201614966565b92835284810182019282810190878511156158f957600080fd5b83870192505b8483101561305657823561591281614aea565b825291830191908301906158ff565b6000806040838503121561593457600080fd5b823561593f81614942565b9150602083013567ffffffffffffffff81111561595b57600080fd5b615967858286016158a3565b9150509250929050565b60008060006060848603121561598657600080fd5b833561599181614942565b9250602084013567ffffffffffffffff8111156159ad57600080fd5b6159b9868287016158a3565b92505061504360408501614de4565b602081526000612dbd602083018486615415565b7fff0000000000000000000000000000000000000000000000000000000000000081358181169160018510156156605760019490940360031b84901b1690921692915050565b6000815480845260208085019450836000528060002060005b83811015614d165781546001600160a01b031687529582019560019182019101615a3b565b6020815260006131f76020830184615a22565b604081526000615a866040830185615a22565b905061ffff831660208301529392505050565b604080825283519082018190526000906020906060840190828701845b82811015615adb5781516001600160a01b031684529284019290840190600101615ab6565b5050508381038285015284518082528583019183019060005b81811015615b1057835183529284019291840191600101615af4565b509097965050505050505056fea2646970667358221220030d76c9feb3a01e1419619b27cf7538cb753156109097806f5fd5100a6dae7364736f6c63430008110033",
1373
- "deployedBytecode": "0x6080604052600436106102e05760003560e01c80637c0cf76311610184578063d2d287f0116100d6578063ee4478ab1161008a578063f921b71f11610064578063f921b71f14610b01578063faaebd2114610b16578063fd9be52214610b4357600080fd5b8063ee4478ab14610a7f578063f0f4426014610ac1578063f2fde38b14610ae157600080fd5b8063e22670ed116100bb578063e22670ed14610a35578063e9817f3414610a4a578063eb53479c14610a6a57600080fd5b8063d2d287f0146109f5578063df1e309f14610a1557600080fd5b80639c33abf711610138578063c4c3724611610112578063c4c37246146108f8578063c57d1ab014610953578063d18404bb1461097357600080fd5b80639c33abf71461087b578063a9a41806146108a9578063bf45f3dd146108d857600080fd5b80638acb8054116101695780638acb8054146108285780638da5cb5b1461083d5780638f58aa7a1461085b57600080fd5b80637c0cf763146107e85780637e09a8d61461080857600080fd5b80634a575bb71161023d5780635ed31c59116101f1578063715018a6116101cb578063715018a614610747578063726075371461075c57806375b5152a1461079057600080fd5b80635ed31c59146106da57806361d027b3146106fa578063690c65551461071a57600080fd5b8063545d1efa11610222578063545d1efa146105ca57806354fd4d50146106615780635e280f111461068e57600080fd5b80634a575bb7146104d85780634f8f455c146104f857600080fd5b80632cfacb061161029457806337d570ef1161027957806337d570ef1461042a5780633c782a521461044a57806343ea4fa9146104ab57600080fd5b80632cfacb06146103e05780632e8ea0a5146103f557600080fd5b806307d7b2f9116102c557806307d7b2f9146103675780631538bffa146103945780631c63e3b6146103be57600080fd5b806301ffc9a7146102ec5780630395b8da1461032157600080fd5b366102e757005b600080fd5b3480156102f857600080fd5b5061030c610307366004614900565b610b63565b60405190151581526020015b60405180910390f35b34801561032d57600080fd5b506103557f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff9091168152602001610318565b34801561037357600080fd5b50610387610382366004614a07565b610bfc565b6040516103189190614a87565b3480156103a057600080fd5b506103a9600581565b60405163ffffffff9091168152602001610318565b3480156103ca57600080fd5b506103de6103d9366004614aff565b610ead565b005b3480156103ec57600080fd5b506103a9600381565b34801561040157600080fd5b50610415610410366004614b6f565b610f47565b60408051928352602083019190915201610318565b34801561043657600080fd5b506103de610445366004614c02565b61106a565b34801561045657600080fd5b50610492610465366004614c7a565b600860209081526000938452604080852082529284528284209052825290205467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610318565b3480156104b757600080fd5b506104cb6104c6366004614ca8565b611269565b6040516103189190614d21565b3480156104e457600080fd5b506103de6104f3366004614df6565b611629565b34801561050457600080fd5b50610585610513366004614ca8565b600660209081526000928352604080842090915290825290205467ffffffffffffffff81169060ff680100000000000000008204811691690100000000000000000081049091169061ffff6a01000000000000000000008204811691600160601b8104821691600160701b9091041686565b6040805167ffffffffffffffff909716875294151560208701529215159385019390935261ffff908116606085015291821660808401521660a082015260c001610318565b3480156105d657600080fd5b5061062d6105e5366004614ca8565b600360209081526000928352604080842090915290825290205463ffffffff811690640100000000810467ffffffffffffffff1690600160601b90046001600160a01b031683565b6040805163ffffffff909416845267ffffffffffffffff90921660208401526001600160a01b031690820152606001610318565b34801561066d57600080fd5b50604080516003815260006020820152600291810191909152606001610318565b34801561069a57600080fd5b506106c27f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610318565b3480156106e657600080fd5b506103de6106f5366004614e98565b6119ff565b34801561070657600080fd5b506001546106c2906001600160a01b031681565b34801561072657600080fd5b5061073a610735366004614ee4565b611b54565b6040516103189190614f50565b34801561075357600080fd5b506103de611c4f565b34801561076857600080fd5b506103a97f000000000000000000000000000000000000000000000000000000000000000081565b34801561079c57600080fd5b5061062d6107ab366004614f63565b60026020526000908152604090205463ffffffff811690640100000000810467ffffffffffffffff1690600160601b90046001600160a01b031683565b3480156107f457600080fd5b5061030c610803366004614e98565b611c63565b34801561081457600080fd5b506103de610823366004614f7e565b611c94565b34801561083457600080fd5b506103a9600681565b34801561084957600080fd5b506000546001600160a01b03166106c2565b34801561086757600080fd5b506103de610876366004614fdb565b611d3c565b34801561088757600080fd5b5061089b610896366004615007565b611f44565b60405161031892919061504c565b3480156108b557600080fd5b506108c96108c4366004615070565b612179565b604051610318939291906150e5565b3480156108e457600080fd5b506103de6108f3366004615142565b612571565b34801561090457600080fd5b50610918610913366004614ca8565b61266a565b60408051825163ffffffff16815260208084015167ffffffffffffffff1690820152918101516001600160a01b031690820152606001610318565b34801561095f57600080fd5b506103de61096e36600461518d565b612781565b34801561097f57600080fd5b5061058561098e366004614f63565b60076020526000908152604090205467ffffffffffffffff81169060ff680100000000000000008204811691690100000000000000000081049091169061ffff6a01000000000000000000008204811691600160601b8104821691600160701b9091041686565b348015610a0157600080fd5b506103de610a10366004614aff565b6127c2565b348015610a2157600080fd5b506103de610a303660046151ab565b612852565b348015610a4157600080fd5b506103a9600181565b348015610a5657600080fd5b5061073a610a65366004614f63565b61287a565b348015610a7657600080fd5b506103a9600481565b348015610a8b57600080fd5b50610ab37f000000000000000000000000000000000000000000000000000000000000000081565b604051908152602001610318565b348015610acd57600080fd5b506103de610adc3660046151fe565b612914565b348015610aed57600080fd5b506103de610afc3660046151fe565b612a38565b348015610b0d57600080fd5b506103a9600281565b348015610b2257600080fd5b50610ab3610b313660046151fe565b60056020526000908152604090205481565b348015610b4f57600080fd5b506103de610b5e366004614fdb565b612ac8565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f1532172f000000000000000000000000000000000000000000000000000000001480610bf657507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60408051808201909152600080825260208201526000610c1f60208601866151fe565b90506000610c37826109136040890160208a01614f63565b90506000610c48604088018861521b565b90509050610c6081836000015163ffffffff16612d39565b8451600003610d235760046000610c7d60408a0160208b01614f63565b63ffffffff1663ffffffff1681526020019081526020016000208054610ca290615280565b80601f0160208091040260200160405190810160405280929190818152602001828054610cce90615280565b8015610d1b5780601f10610cf057610100808354040283529160200191610d1b565b820191906000526020600020905b815481529060010190602001808311610cfe57829003601f168201915b505050505094505b606080600087511115610d8b57610d3987612d81565b9150600161ffff1682600081518110610d5457610d546152ba565b60200260200101516000015161ffff1603610d8b5781600081518110610d7c57610d7c6152ba565b60200260200101516020015190505b600084604001516001600160a01b031663709eb6648b6020016020810190610db39190614f63565b8887866040518563ffffffff1660e01b8152600401610dd594939291906152d0565b602060405180830381865afa158015610df2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e169190615304565b610e209082615333565b9050610e4186610e3660408d0160208e01614f63565b858860200151612ff4565b610e4b9082615333565b90506000899050600080610e73898e6020016020810190610e6c9190614f63565b8686610f47565b90925090508115610e8b57610e888285615333565b93505b60408051808201909152938452602084015250909a9950505050505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610f2c576040516387a6483960e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048201523360248201526044015b60405180910390fd5b610f37838383613061565b610f428383836130d4565b505050565b60015460009081906001600160a01b031615611061576001546040517f3e0132600000000000000000000000000000000000000000000000000000000081526001600160a01b03888116600483015263ffffffff8816602483015260448201879052851515606483015290911690633e01326090608401602060405180830381865afa925050508015610ff7575060408051601f3d908101601f19168201909252610ff491810190615304565b60015b1561106157831561100a5780915061105f565b60006110367f00000000000000000000000000000000000000000000000000000000000000003a615346565b905060008187116110475781611049565b865b9050808311611058578261105a565b805b945050505b505b94509492505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146110e4576040516387a6483960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166004820152336024820152604401610f23565b60001963ffffffff84160161115e57600061110182840184614f63565b6001600160a01b038616600090815260036020908152604080832063ffffffff808c16855292529091208054919092167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000090911617905550611262565b60011963ffffffff8416016111e957600061117b8284018461535d565b6001600160a01b038616600090815260036020908152604080832063ffffffff8b1684529091529020805467ffffffffffffffff909216640100000000027fffffffffffffffffffffffffffffffffffffffff0000000000000000ffffffff90921691909117905550611262565b60021963ffffffff841601611255576000611206828401846151fe565b6001600160a01b03808716600090815260036020908152604080832063ffffffff8c1684529091529020805491909216600160601b026bffffffffffffffffffffffff90911617905550611262565b61126285858585856130df565b5050505050565b604080516101008101825260008082526020820181905291810182905260608082018390526080820183905260a082019290925260c0810182905260e08101919091526001600160a01b038316600090815260066020908152604080832063ffffffff861684528252808320815161010081018352815467ffffffffffffffff8116825260ff6801000000000000000082048116151583870152690100000000000000000082041615158285015261ffff6a0100000000000000000000820481166060840152600160601b820481166080840152600160701b9091041660a08201526001820180548451818702810187019095528085529194929360c08601939092908301828280156113a557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611387575b505050505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561140757602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116113e9575b5050509190925250505063ffffffff8416600090815260076020526040902080549192509067ffffffffffffffff166114825760405162461bcd60e51b815260206004820152600760248201527f4c5a3130303038000000000000000000000000000000000000000000000000006044820152606401610f23565b815167ffffffffffffffff166000036114a457805467ffffffffffffffff1682525b8160200151611529578060010180548060200260200160405190810160405280929190818152602001828054801561150557602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116114e7575b505050505060c083015280546a0100000000000000000000900461ffff1660608301525b81604001516115b6578060020180548060200260200160405190810160405280929190818152602001828054801561158a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161156c575b505050505060e0830152805461ffff600160601b820481166080850152600160701b9091041660a08301525b6000826060015161ffff1611806115d5575060008260a0015161ffff16115b6116215760405162461bcd60e51b815260206004820152600760248201527f4c5a4430303035000000000000000000000000000000000000000000000000006044820152606401610f23565b509392505050565b6116316130ec565b838267ffffffffffffffff88166116745760405162461bcd60e51b815260206004820152600760248201526604c5a31303030360cc1b6044820152606401610f23565b61ffff8211158015611688575061ffff8111155b80156116985750808361ffff1611155b6116ce5760405162461bcd60e51b81526020600482015260076024820152664c5a313030303960c81b6044820152606401610f23565b60008211806116e1575060008361ffff16115b61172d5760405162461bcd60e51b815260206004820152600760248201527f4c5a3130303131000000000000000000000000000000000000000000000000006044820152606401610f23565b61176b878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250869250613146915050565b6117a9858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250859250613146915050565b6040518061010001604052808967ffffffffffffffff1681526020016000151581526020016000151581526020018361ffff1681526020018261ffff1681526020018461ffff1681526020018888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208881028281018201909352888252928301929091899189918291850190849080828437600092018290525093909452505063ffffffff8c168152600760209081526040918290208451815486840151948701516060880151608089015160a08a015161ffff908116600160701b027fffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffff928216600160601b02929092167fffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffff919093166a0100000000000000000000026bffff0000000000000000000019941515690100000000000000000002949094166bffffff00000000000000000019991515680100000000000000000268ffffffffffffffffff1990961667ffffffffffffffff9097169690961794909417979097169390931717161792909217825560c0840151805192935061198c9260018501929190910190614817565b5060e082015180516119a8916002840191602090910190614817565b509050508863ffffffff167fcefc09e599b8a950c1c6a0e233dfd90adac40718fb137ced2ec19d472b8e2a208989898989896040516119ec969594939291906153b6565b60405180910390a2505050505050505050565b6000611a18611a0e85856131e5565b6104c686866131fe565b9050611a2681858585613221565b611a5c5760405162461bcd60e51b815260206004820152600760248201526604c5a31303030360cc1b6044820152606401610f23565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166338d71486611a9586866131fe565b611a9f8787613514565b611aa988886131e5565b611ab3898961352d565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e087901b16815263ffffffff94909416600485015260248401929092526001600160a01b0316604483015267ffffffffffffffff1660648201526084810185905260a401600060405180830381600087803b158015611b3657600080fd5b505af1158015611b4a573d6000803e3d6000fd5b5050505050505050565b606060001963ffffffff831601611ba65763ffffffff8381166000908152600260209081526040918290208054835194169184019190915291015b604051602081830303815290604052915050610bf6565b60011963ffffffff831601611bf35763ffffffff83166000908152600260209081526040918290208054835164010000000090910467ffffffffffffffff16928101929092529101611b8f565b60021963ffffffff831601611c3e5763ffffffff831660009081526002602090815260409182902080548351600160601b9091046001600160a01b0316928101929092529101611b8f565b611c488383613550565b9050610bf6565b611c576130ec565b611c616000613562565b565b600080611c7d611c7386866131e5565b6104c687876131fe565b9050611c8b81868686613221565b95945050505050565b80600860008686604051611ca9929190615405565b6040805191829003909120825260208083019390935290810160009081208682528352818120338083529352819020805467ffffffffffffffff191667ffffffffffffffff949094169390931790925590517fd57606ee258836ec1b40f83a128d2b514581eaf4f71801fbed3bc94b5358ecc091611d2e918790879086908890615440565b60405180910390a150505050565b6001546001600160a01b03163314611d965760405162461bcd60e51b815260206004820152600760248201527f4c5a3530303030000000000000000000000000000000000000000000000000006044820152606401610f23565b6001600160a01b038216611dd65760405162461bcd60e51b815260206004820152600760248201526604c5a31303030360cc1b6044820152606401610f23565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166307b9ca7c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e5a9190615481565b90506001600160a01b038116611eb25760405162461bcd60e51b815260206004820152600760248201527f4c5a4430303033000000000000000000000000000000000000000000000000006044820152606401610f23565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301526024820184905282169063a9059cbb906044016020604051808303816000875af1158015611f1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f3e919061549e565b50505050565b6060600060001963ffffffff841601612002576001600160a01b038416600090815260036020908152604080832063ffffffff808a168552925282208054909291169003611fd25763ffffffff8681166000908152600260209081526040918290208054835194169184019190915291015b6040516020818303038152906040526001935093505050612171565b80546040805163ffffffff9092166020830152015b60405160208183030381529060405260009250925050612171565b60011963ffffffff8416016120b9576001600160a01b038416600090815260036020908152604080832063ffffffff8916845290915281208054909164010000000090910467ffffffffffffffff1690036120955763ffffffff86166000908152600260209081526040918290208054835164010000000090910467ffffffffffffffff16928101929092529101611fb6565b80546040805164010000000090920467ffffffffffffffff16602083015201611fe7565b60021963ffffffff841601612161576001600160a01b03808516600090815260036020908152604080832063ffffffff8a168452909152902080549091600160601b9091041661213f5763ffffffff861660009081526002602090815260409182902080548351600160601b9091046001600160a01b0316928101929092529101611fb6565b805460408051600160601b9092046001600160a01b0316602083015201611fe7565b61216c8585856135bf565b915091505b935093915050565b612181614889565b6060807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146121fe576040516387a6483960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166004820152336024820152604401610f23565b60006122106080880160608901614f63565b905060006122246060890160408a016151fe565b9050600087516000036122d25763ffffffff83166000908152600460205260409020805461225190615280565b80601f016020809104026020016040519081016040528092919081815260200182805461227d90615280565b80156122ca5780601f1061229f576101008083540402835291602001916122ca565b820191906000526020600020905b8154815290600101906020018083116122ad57829003601f168201915b505050505097505b60608060008a51111561233a576122e88a612d81565b9150600161ffff1682600081518110612303576123036152ba565b60200260200101516000015161ffff160361233a578160008151811061232b5761232b6152ba565b60200260200101516020015190505b6000612346858761266a565b9050600061235760a08e018e61521b565b9050905061236f81836000015163ffffffff16612d39565b81604001516001600160a01b031663717e8a42888884876040518563ffffffff1660e01b81526004016123a594939291906152d0565b6020604051808303816000875af11580156123c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123e89190615304565b94508415612422576040808301516001600160a01b031660009081526005602052908120805487929061241c908490615333565b90915550505b60408083015181516001600160a01b039091168152602081018790527f489a11bf9dbfc4407f7d03d118ac6bc81743af9e1189f9d3dc336415fa49cc89910160405180910390a16124788d8584602001516135d4565b6124829086615333565b9450505050506000806124b57f00000000000000000000000000000000000000000000000000000000000000008c613671565b915091506124c1614889565b60006124d060208e018e61535d565b90508a6000806124e2898b8a86610f47565b9092509050811561252a576001546001600160a01b031660009081526005602052604081208054849290612517908490615333565b9091555061252790508289615333565b97505b6040805160608101825297885267ffffffffffffffff94909416602080890191909152845180860186529889528801525050830193909352909a9099509650505050505050565b6125796130ec565b60008267ffffffffffffffff1611801561259b57506001600160a01b03811615155b6125d15760405162461bcd60e51b815260206004820152600760248201526604c5a31303030360cc1b6044820152606401610f23565b60008363ffffffff16116126115760405162461bcd60e51b81526020600482015260076024820152664c5a313030303960c81b6044820152606401610f23565b63ffffffff938416600090815260026020526040902067ffffffffffffffff909216640100000000026001600160a01b03909116600160601b026bffffffffffffffffffffffff19169290931691909117919091179055565b6040805160608082018352600080835260208084018290528385018290526001600160a01b0387811683526003825285832063ffffffff88811680865291845287852088518088018a529054808316825267ffffffffffffffff640100000000808304821684890152600160601b928390048716848d0152948852600287528a88208b51998a018c52548085168a529485041695880195909552939091049091169584019590955280519394909316900361272a57805163ffffffff1682525b816020015167ffffffffffffffff166000036127555760208082015167ffffffffffffffff16908301525b60408201516001600160a01b0316611621576040908101516001600160a01b0316908201529392505050565b6040805183151581526020810183905233917ff70f667bf53155c301a4abbdadaabddfbd3afbabbefc7e7ca6ad37b81756c609910160405180910390a25050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461283c576040516387a6483960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166004820152336024820152604401610f23565b6128478383836136f5565b610f428383836137d1565b61285a6130ec565b63ffffffff83166000908152600460205260409020611f3e828483615509565b6004602052600090815260409020805461289390615280565b80601f01602080910402602001604051908101604052809291908181526020018280546128bf90615280565b801561290c5780601f106128e15761010080835404028352916020019161290c565b820191906000526020600020905b8154815290600101906020018083116128ef57829003601f168201915b505050505081565b61291c6130ec565b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f3e0132600000000000000000000000000000000000000000000000000000000060048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa158015612999573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129bd919061549e565b612a095760405162461bcd60e51b815260206004820152600760248201527f4c5a4330303031000000000000000000000000000000000000000000000000006044820152606401610f23565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b612a406130ec565b6001600160a01b038116612abc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610f23565b612ac581613562565b50565b6001600160a01b038216612b085760405162461bcd60e51b815260206004820152600760248201526604c5a31303030360cc1b6044820152606401610f23565b33600090815260056020526040902054811115612b675760405162461bcd60e51b815260206004820152600760248201527f4c5a3130303033000000000000000000000000000000000000000000000000006044820152606401610f23565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f936112b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612bc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612beb9190615481565b33600090815260056020526040812080549293506001600160a01b038416151592859290612c1a9084906155c9565b90915550508015612cb7576040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301526024820185905283169063a9059cbb906044016020604051808303816000875af1158015612c8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cb1919061549e565b50612cef565b6040516001600160a01b0385169084156108fc029085906000818181858888f19350505050158015612ced573d6000803e3d6000fd5b505b604080516001600160a01b03861681526020810185905233917ff15a0a3784dea9b4fe33bc98e2450745e262d310237b2868ea8ef56967ff3ecb910160405180910390a250505050565b80821115612d7d576040517ff001cc650000000000000000000000000000000000000000000000000000000081526004810182905260248101839052604401610f23565b5050565b60606000612d8f83826137dc565b905061ffff811660011480612da8575061ffff81166002145b15612dc5576000612dbd8261ffff1685613842565b949350505050565b8061ffff16600303612fac576000612dde8460026137dc565b905060008161ffff1667ffffffffffffffff811115612dff57612dff614950565b604051908082528060200260200182016040528015612e4557816020015b604080518082019091526000815260606020820152815260200190600190039081612e1d5790505b50905060046000805b8461ffff16811015612f66576000612e6689856137dc565b9050612e73600285615333565b9350811580612e8957508261ffff168161ffff16115b612ed55760405162461bcd60e51b815260206004820152600760248201527f4c5a3130303036000000000000000000000000000000000000000000000000006044820152606401610f23565b9150816000612ee48a866137dc565b9050612ef1600286615333565b945060405180604001604052808361ffff168152602001612f21878461ffff168e613aeb9092919063ffffffff16565b815250868481518110612f3657612f366152ba565b6020908102919091010152612f4f61ffff821686615333565b945050508080612f5e906155dc565b915050612e4e565b5086518214612fa15760405162461bcd60e51b81526020600482015260076024820152664c5a313030303960c81b6044820152606401610f23565b509095945050505050565b60405162461bcd60e51b815260206004820152600760248201527f4c5a4330303030000000000000000000000000000000000000000000000000006044820152606401610f23565b6000806130018686611269565b90506000613010856002613c13565b9250505061302a8260c00151836060015189898589613cae565b6130349084615333565b925061304c8260e00151836080015189898589613cae565b6130569084615333565b979650505050505050565b60005b82811015611f3e576000848483818110613080576130806152ba565b90506020020160208101906130959190614f63565b6001600160a01b038416600090815260036020908152604080832063ffffffff90941683529290529081205550806130cc816155dc565b915050613064565b610f42838383613d73565b6112628585858585613e2a565b6000546001600160a01b03163314611c615760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610f23565b6000805b82811015611f3e576000848281518110613166576131666152ba565b60200260200101519050826001600160a01b0316816001600160a01b0316116131d15760405162461bcd60e51b815260206004820152600760248201527f4c5a3130303036000000000000000000000000000000000000000000000000006044820152606401610f23565b9150806131dd816155dc565b91505061314a565b60006131f76131f48484614176565b90565b9392505050565b600061320e600d600984866155f6565b61321791615620565b60e01c9392505050565b60006051831461325d5760405162461bcd60e51b81526020600482015260076024820152664c5a313030303960c81b6044820152606401610f23565b7f000000000000000000000000000000000000000000000000000000000000000060ff1661328b8585614186565b60ff16146132db5760405162461bcd60e51b815260206004820152600760248201527f4c5a3130303037000000000000000000000000000000000000000000000000006044820152606401610f23565b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff1661330c85856141a8565b63ffffffff161461335f5760405162461bcd60e51b815260206004820152600760248201527f4c5a3130303038000000000000000000000000000000000000000000000000006044820152606401610f23565b60008484604051613371929190615405565b604051908190039020865190915060005b876060015161ffff1681101561341c5760008860c0015182815181106133aa576133aa6152ba565b60209081029190910181015160008681526008835260408082208a835284528082206001600160a01b0384168352909352919091205490915067ffffffffffffffff90811690841681101561340757600095505050505050612dbd565b50508080613414906155dc565b915050613382565b506000876060015161ffff1611801561343b5750608087015161ffff16155b1561344b57600192505050612dbd565b6000805b886080015161ffff168110156135055760008960e001518281518110613477576134776152ba565b60209081029190910181015160008781526008835260408082208b835284528082206001600160a01b0384168352909352919091205490915067ffffffffffffffff90811690851681106134f057836134cf816155dc565b9450508a60a0015161ffff1684106134f05760019650505050505050612dbd565b505080806134fd906155dc565b91505061344f565b50600098975050505050505050565b6000613524602d600d84866155f6565b6131f791615668565b600061353d6009600184866155f6565b61354691615686565b60c01c9392505050565b60606131f7838363ffffffff166141b8565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6060600061216c85858563ffffffff1661423f565b6000806135e760608601604087016151fe565b905060006135ff826104c66080890160608a01614f63565b9050600061360e866002613c13565b9250505061363a8260c001518360600151858a60600160208101906136339190614f63565b858a61438f565b6136449085615333565b93506136678260e001518360800151858a60600160208101906136339190614f63565b6130569085615333565b6000606081613683602085018561535d565b61368c85614559565b60405160200161369d9291906156cc565b60408051601f1981840301815291905280516020820120935090508481846136c860a088018861521b565b6040516020016136dc959493929190615717565b6040516020818303038152906040529150509250929050565b60005b82811015611f3e576000848483818110613714576137146152ba565b90506020020160208101906137299190614f63565b90506000613737848361266a565b6001600160a01b03858116600090815260036020908152604080832063ffffffff978816845282529182902084518154928601519590930151909316600160601b026bffffffffffffffffffffffff67ffffffffffffffff909516640100000000026bffffffffffffffffffffffff19909216929096169190911717919091169290921790915550806137c9816155dc565b9150506136f8565b610f428383836145fd565b60006137e9826002615333565b835110156138395760405162461bcd60e51b815260206004820152601460248201527f746f55696e7431365f6f75744f66426f756e64730000000000000000000000006044820152606401610f23565b50016002015190565b604080516001808252818301909252606091816020015b604080518082019091526000815260606020820152815260200190600190039081613859579050509050606060001984016139455782516022146138c95760405162461bcd60e51b81526020600482015260076024820152664c5a313030303960c81b6044820152606401610f23565b60006138d68460026147b1565b6040517e010000000000000000000000000000000000000000000000000000000000006020820152909150602201604051602081830303815290604052915081600160208360405160200161392e949392919061577b565b604051602081830303815290604052915050613aac565b6001198401612fac576042835111801561396157506062835111155b6139975760405162461bcd60e51b81526020600482015260076024820152664c5a313030303960c81b6044820152606401610f23565b60006139a48460026147b1565b905060006139b38560226147b1565b90506000604286516139c591906155c9565b905060006139d587604284613aeb565b6139de906157d4565b90506139eb8260206155c9565b6139f6906008615346565b6040805160208082018790529390921c8282018190528151808403830181526060840183527e0200000000000000000000000000000000000000000000000000000000000060808501528251606281860301815260828501909352919750929091613a6b91889160019190899060a20161577b565b6040516020818303038152906040529550856002825183604051602001613a9594939291906157f8565b604051602081830303815290604052955050505050505b6040518060400160405280600161ffff1681526020018281525082600081518110613ad957613ad96152ba565b60200260200101819052505092915050565b606081613af981601f615333565b1015613b475760405162461bcd60e51b815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401610f23565b613b518284615333565b84511015613ba15760405162461bcd60e51b815260206004820152601160248201527f736c6963655f6f75744f66426f756e64730000000000000000000000000000006044820152606401610f23565b606082158015613bc05760405191506000825260208201604052613c0a565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015613bf9578051835260209283019201613be1565b5050858452601f01601f1916604052505b50949350505050565b600080606060005b8551811015613c8f578461ffff16868281518110613c3b57613c3b6152ba565b60200260200101516000015161ffff1603613c7d57600181878381518110613c6557613c656152ba565b60200260200101516020015193509350935050613ca7565b80613c87816155dc565b915050613c1b565b50506040805160208101909152600080825292508291505b9250925092565b6000805b8661ffff16811015613d6857878181518110613cd057613cd06152ba565b60200260200101516001600160a01b03166330bb3aac868589886040518563ffffffff1660e01b8152600401613d099493929190615865565b602060405180830381865afa158015613d26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d4a9190615304565b613d549083615333565b915080613d60816155dc565b915050613cb2565b509695505050505050565b60005b82811015611f3e576000848483818110613d9257613d926152ba565b9050602002016020810190613da79190614f63565b6001600160a01b038416600090815260066020908152604080832063ffffffff85168452909152812080547fffffffffffffffffffffffffffffffff00000000000000000000000000000000168155919250613e0660018301826148d1565b613e146002830160006148d1565b5050508080613e22906155dc565b915050613d76565b6001600160a01b038416600090815260066020908152604080832063ffffffff8981168552925290912090841660031901613e90576000613e6d8385018561535d565b825467ffffffffffffffff191667ffffffffffffffff9190911617825550614124565b60041963ffffffff851601613f9257600080613eae84860186615921565b80519193509150600083613ec3578115613eca565b61ffff8211155b905080613f035760405162461bcd60e51b81526020600482015260076024820152664c5a313030303960c81b6044820152606401610f23565b613f0d8383613146565b84546bffff0000000000000000000019166a010000000000000000000061ffff8416021785558251613f489060018701906020860190614817565b5084547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff166801000000000000000085151502178555613f88898b611269565b5050505050614124565b60051963ffffffff851601612fac5760008080613fb185870187615971565b81519295509093509150600084613fc9578115613fd0565b61ffff8211155b9050806140095760405162461bcd60e51b81526020600482015260076024820152664c5a313030303960c81b6044820152606401610f23565b818361ffff16111561405d5760405162461bcd60e51b815260206004820152600760248201527f4c5a3130303033000000000000000000000000000000000000000000000000006044820152606401610f23565b6140678483613146565b85547fffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffff16600160601b61ffff84160217865583516140ae9060028801906020870190614817565b5085547fffffffffffffffffffffffffffffffff0000ffffffff00ffffffffffffffffff16600160701b61ffff8516027fffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff161769010000000000000000008615150217865561411d8a8c611269565b5050505050505b8363ffffffff16856001600160a01b03167f32a52e909bac91be27e4f3ddb96c51d9484dd2323a9f358d11ef8c35298196cc85856040516141669291906159c8565b60405180910390a3505050505050565b60006135246051603184866155f6565b600061419560018284866155f6565b61419e916159dc565b60f81c9392505050565b600061320e6031602d84866155f6565b63ffffffff8216600090815260076020526040902060609060031983016141f65780546040805167ffffffffffffffff909216602083015201611b8f565b60041983016142135780600101604051602001611b8f9190615a60565b6005198301612fac578054604051611b8f916002840191600160701b90910461ffff1690602001615a73565b6001600160a01b038216600090815260066020908152604080832063ffffffff87168452825280832060079092528220606092919060031985016142e257815467ffffffffffffffff166000036142ad5780546040805167ffffffffffffffff909216602083015201611fb6565b81546040805167ffffffffffffffff9092166020830152015b6040516020818303038152906040526000935093505050612171565b600419850161432957815468010000000000000000900460ff161561431557816001016040516020016142c69190615a60565b80600101604051602001611fb69190615a60565b6005198501612fac5781546901000000000000000000900460ff161561436c5781546040516142c6916002850191600160701b90910461ffff1690602001615a73565b8054604051611fb6916002840191600160701b90910461ffff1690602001615a73565b6000808661ffff1667ffffffffffffffff8111156143af576143af614950565b6040519080825280602002602001820160405280156143d8578160200160208202803683370190505b50905060005b8761ffff168110156145145760008982815181106143fe576143fe6152ba565b60200260200101516001600160a01b031663e4fbd90388878b8a6040518563ffffffff1660e01b81526004016144379493929190615865565b6020604051808303816000875af1158015614456573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061447a9190615304565b90508083838151811061448f5761448f6152ba565b602090810291909101015280156145015780600560008c85815181106144b7576144b76152ba565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282546144ee9190615333565b909155506144fe90508185615333565b93505b508061450c816155dc565b9150506143de565b507f4a4f9b55e84c19345500ad54202240b345f195977a3aa5cd6c4d108cf90f8f808882604051614546929190615a99565b60405180910390a1509695505050505050565b606061456b6040830160208401614f63565b61458a61457e60608501604086016151fe565b6001600160a01b031690565b61459a6080850160608601614f63565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e094851b811660208301526024820193909352921b166044820152608083013560488201526068016040516020818303038152906040529050919050565b60005b82811015611f3e57600084848381811061461c5761461c6152ba565b90506020020160208101906146319190614f63565b9050600061463f8483611269565b6001600160a01b038516600090815260066020908152604080832063ffffffff871684528252918290208351815483860151948601516060870151608088015160a089015161ffff908116600160701b027fffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffff928216600160601b02929092167fffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffff919093166a0100000000000000000000026bffff0000000000000000000019941515690100000000000000000002949094166bffffff00000000000000000019991515680100000000000000000268ffffffffffffffffff1990961667ffffffffffffffff9097169690961794909417979097169390931717161792909217825560c08301518051939450849361477c9260018501920190614817565b5060e08201518051614798916002840191602090910190614817565b50905050505080806147a9906155dc565b915050614600565b60006147be826020615333565b8351101561480e5760405162461bcd60e51b815260206004820152601560248201527f746f55696e743235365f6f75744f66426f756e647300000000000000000000006044820152606401610f23565b50016020015190565b828054828255906000526020600020908101928215614879579160200282015b82811115614879578251825473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909116178255602090920191600190910190614837565b506148859291506148eb565b5090565b604051806060016040528060008019168152602001600067ffffffffffffffff1681526020016148cc604051806040016040528060008152602001600081525090565b905290565b5080546000825590600052602060002090810190612ac591905b5b8082111561488557600081556001016148ec565b60006020828403121561491257600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146131f757600080fd5b8015158114612ac557600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561498f5761498f614950565b604052919050565b600082601f8301126149a857600080fd5b813567ffffffffffffffff8111156149c2576149c2614950565b6149d56020601f19601f84011601614966565b8181528460208386010111156149ea57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060608486031215614a1c57600080fd5b833567ffffffffffffffff80821115614a3457600080fd5b9085019060608288031215614a4857600080fd5b909350602085013590614a5a82614942565b90925060408501359080821115614a7057600080fd5b50614a7d86828701614997565b9150509250925092565b815181526020808301519082015260408101610bf6565b60008083601f840112614ab057600080fd5b50813567ffffffffffffffff811115614ac857600080fd5b6020830191508360208260051b8501011115614ae357600080fd5b9250929050565b6001600160a01b0381168114612ac557600080fd5b600080600060408486031215614b1457600080fd5b833567ffffffffffffffff811115614b2b57600080fd5b614b3786828701614a9e565b9094509250506020840135614b4b81614aea565b809150509250925092565b803563ffffffff81168114614b6a57600080fd5b919050565b60008060008060808587031215614b8557600080fd5b8435614b9081614aea565b9350614b9e60208601614b56565b9250604085013591506060850135614bb581614942565b939692955090935050565b60008083601f840112614bd257600080fd5b50813567ffffffffffffffff811115614bea57600080fd5b602083019150836020828501011115614ae357600080fd5b600080600080600060808688031215614c1a57600080fd5b614c2386614b56565b94506020860135614c3381614aea565b9350614c4160408701614b56565b9250606086013567ffffffffffffffff811115614c5d57600080fd5b614c6988828901614bc0565b969995985093965092949392505050565b600080600060608486031215614c8f57600080fd5b83359250602084013591506040840135614b4b81614aea565b60008060408385031215614cbb57600080fd5b8235614cc681614aea565b9150614cd460208401614b56565b90509250929050565b600081518084526020808501945080840160005b83811015614d165781516001600160a01b031687529582019590820190600101614cf1565b509495945050505050565b6020815267ffffffffffffffff825116602082015260006020830151614d4b604084018215159052565b506040830151801515606084015250606083015161ffff8116608084015250608083015161ffff811660a08401525060a083015161ffff811660c08401525060c08301516101008060e0850152614da6610120850183614cdd565b915060e0850151601f198584030182860152614dc28382614cdd565b9695505050505050565b803567ffffffffffffffff81168114614b6a57600080fd5b803561ffff81168114614b6a57600080fd5b600080600080600080600060a0888a031215614e1157600080fd5b614e1a88614b56565b9650614e2860208901614dcc565b9550604088013567ffffffffffffffff80821115614e4557600080fd5b614e518b838c01614a9e565b909750955060608a0135915080821115614e6a57600080fd5b50614e778a828b01614a9e565b9094509250614e8a905060808901614de4565b905092959891949750929550565b600080600060408486031215614ead57600080fd5b833567ffffffffffffffff811115614ec457600080fd5b614ed086828701614bc0565b909790965060209590950135949350505050565b60008060408385031215614ef757600080fd5b614cc683614b56565b60005b83811015614f1b578181015183820152602001614f03565b50506000910152565b60008151808452614f3c816020860160208601614f00565b601f01601f19169290920160200192915050565b6020815260006131f76020830184614f24565b600060208284031215614f7557600080fd5b6131f782614b56565b60008060008060608587031215614f9457600080fd5b843567ffffffffffffffff811115614fab57600080fd5b614fb787828801614bc0565b90955093505060208501359150614fd060408601614dcc565b905092959194509250565b60008060408385031215614fee57600080fd5b8235614ff981614aea565b946020939093013593505050565b60008060006060848603121561501c57600080fd5b61502584614b56565b9250602084013561503581614aea565b915061504360408501614b56565b90509250925092565b60408152600061505f6040830185614f24565b905082151560208301529392505050565b60008060006060848603121561508557600080fd5b833567ffffffffffffffff8082111561509d57600080fd5b9085019060c082880312156150b157600080fd5b909350602085013590808211156150c757600080fd5b506150d486828701614997565b9250506040840135614b4b81614942565b8351815267ffffffffffffffff60208501511660208201526000604085015161511b604084018280518252602090810151910152565b5060c0608083015261513060c0830185614f24565b82810360a0840152614dc28185614f24565b6000806000806080858703121561515857600080fd5b61516185614b56565b935061516f60208601614b56565b925061517d60408601614dcc565b91506060850135614bb581614aea565b600080604083850312156151a057600080fd5b8235614ff981614942565b6000806000604084860312156151c057600080fd5b6151c984614b56565b9250602084013567ffffffffffffffff8111156151e557600080fd5b6151f186828701614bc0565b9497909650939450505050565b60006020828403121561521057600080fd5b81356131f781614aea565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261525057600080fd5b83018035915067ffffffffffffffff82111561526b57600080fd5b602001915036819003821315614ae357600080fd5b600181811c9082168061529457607f821691505b6020821081036152b457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b63ffffffff851681526001600160a01b0384166020820152826040820152608060608201526000614dc26080830184614f24565b60006020828403121561531657600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610bf657610bf661531d565b8082028115828204841417610bf657610bf661531d565b60006020828403121561536f57600080fd5b6131f782614dcc565b8183526000602080850194508260005b85811015614d1657813561539b81614aea565b6001600160a01b031687529582019590820190600101615388565b67ffffffffffffffff871681526080602082015260006153da608083018789615378565b82810360408401526153ed818688615378565b91505061ffff83166060830152979650505050505050565b8183823760009101908152919050565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b6001600160a01b0386168152608060208201526000615463608083018688615415565b67ffffffffffffffff94909416604083015250606001529392505050565b60006020828403121561549357600080fd5b81516131f781614aea565b6000602082840312156154b057600080fd5b81516131f781614942565b601f821115610f4257600081815260208120601f850160051c810160208610156154e25750805b601f850160051c820191505b81811015615501578281556001016154ee565b505050505050565b67ffffffffffffffff83111561552157615521614950565b6155358361552f8354615280565b836154bb565b6000601f84116001811461556957600085156155515750838201355b600019600387901b1c1916600186901b178355611262565b600083815260209020601f19861690835b8281101561559a578685013582556020948501946001909201910161557a565b50868210156155b75760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81810381811115610bf657610bf661531d565b600060001982036155ef576155ef61531d565b5060010190565b6000808585111561560657600080fd5b8386111561561357600080fd5b5050820193919092039150565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156156605780818660040360031b1b83161692505b505092915050565b80356020831015610bf657600019602084900360031b1b1692915050565b7fffffffffffffffff00000000000000000000000000000000000000000000000081358181169160088510156156605760089490940360031b84901b1690921692915050565b7fffffffffffffffff0000000000000000000000000000000000000000000000008360c01b16815260008251615709816008850160208701614f00565b919091016008019392505050565b7fff000000000000000000000000000000000000000000000000000000000000008660f81b16815260008551615754816001850160208a01614f00565b80830190508560018201528385602183013760009301602101928352509095945050505050565b6000855161578d818460208a01614f00565b7fffff00000000000000000000000000000000000000000000000000000000000060f096871b8116919093019081529390941b166002830152600482015260240192915050565b805160208083015191908110156152b45760001960209190910360031b1b16919050565b6000855161580a818460208a01614f00565b80830190507fffff000000000000000000000000000000000000000000000000000000000000808760f01b168252808660f01b166002830152508351615857816004840160208801614f00565b016004019695505050505050565b63ffffffff8516815267ffffffffffffffff841660208201526001600160a01b0383166040820152608060608201526000614dc26080830184614f24565b600082601f8301126158b457600080fd5b8135602067ffffffffffffffff8211156158d0576158d0614950565b8160051b6158df828201614966565b92835284810182019282810190878511156158f957600080fd5b83870192505b8483101561305657823561591281614aea565b825291830191908301906158ff565b6000806040838503121561593457600080fd5b823561593f81614942565b9150602083013567ffffffffffffffff81111561595b57600080fd5b615967858286016158a3565b9150509250929050565b60008060006060848603121561598657600080fd5b833561599181614942565b9250602084013567ffffffffffffffff8111156159ad57600080fd5b6159b9868287016158a3565b92505061504360408501614de4565b602081526000612dbd602083018486615415565b7fff0000000000000000000000000000000000000000000000000000000000000081358181169160018510156156605760019490940360031b84901b1690921692915050565b6000815480845260208085019450836000528060002060005b83811015614d165781546001600160a01b031687529582019560019182019101615a3b565b6020815260006131f76020830184615a22565b604081526000615a866040830185615a22565b905061ffff831660208301529392505050565b604080825283519082018190526000906020906060840190828701845b82811015615adb5781516001600160a01b031684529284019290840190600101615ab6565b5050508381038285015284518082528583019183019060005b81811015615b1057835183529284019291840191600101615af4565b509097965050505050505056fea2646970667358221220030d76c9feb3a01e1419619b27cf7538cb753156109097806f5fd5100a6dae7364736f6c63430008110033",
1374
- "devdoc": {
1375
- "kind": "dev",
1376
- "methods": {
1377
- "owner()": {
1378
- "details": "Returns the address of the current owner."
1379
- },
1380
- "renounceOwnership()": {
1381
- "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."
1382
- },
1383
- "transferOwnership(address)": {
1384
- "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
1385
- }
1386
- },
1387
- "version": 1
1388
- },
1389
- "userdoc": {
1390
- "kind": "user",
1391
- "methods": {
1392
- "notice(bool,uint256)": {
1393
- "notice": "---------------------- PUBLIC FUNCTIONS ----------------------"
1394
- },
1395
- "quote((address,uint32,bytes),bool,bytes)": {
1396
- "notice": "---------------------- VIEW FUNCTIONS ----------------------"
1397
- },
1398
- "send((uint64,uint32,address,uint32,bytes32,bytes),bytes,bool)": {
1399
- "notice": "---------------------- ONLY ENDPOINT ----------------------"
1400
- },
1401
- "setTreasury(address)": {
1402
- "notice": "---------------------- ONLY OWNER ----------------------"
1403
- }
1404
- },
1405
- "version": 1
1406
- },
1407
- "storageLayout": {
1408
- "storage": [
1409
- {
1410
- "astId": 4328,
1411
- "contract": "contracts/uln/UltraLightNode302.sol:UltraLightNode302",
1412
- "label": "_owner",
1413
- "offset": 0,
1414
- "slot": "0",
1415
- "type": "t_address"
1416
- },
1417
- {
1418
- "astId": 5756,
1419
- "contract": "contracts/uln/UltraLightNode302.sol:UltraLightNode302",
1420
- "label": "treasury",
1421
- "offset": 0,
1422
- "slot": "1",
1423
- "type": "t_address"
1424
- },
1425
- {
1426
- "astId": 5761,
1427
- "contract": "contracts/uln/UltraLightNode302.sol:UltraLightNode302",
1428
- "label": "defaultOutboundConfig",
1429
- "offset": 0,
1430
- "slot": "2",
1431
- "type": "t_mapping(t_uint32,t_struct(OutboundConfig)5783_storage)"
1432
- },
1433
- {
1434
- "astId": 5768,
1435
- "contract": "contracts/uln/UltraLightNode302.sol:UltraLightNode302",
1436
- "label": "outboundConfig",
1437
- "offset": 0,
1438
- "slot": "3",
1439
- "type": "t_mapping(t_address,t_mapping(t_uint32,t_struct(OutboundConfig)5783_storage))"
1440
- },
1441
- {
1442
- "astId": 5772,
1443
- "contract": "contracts/uln/UltraLightNode302.sol:UltraLightNode302",
1444
- "label": "defaultOptions",
1445
- "offset": 0,
1446
- "slot": "4",
1447
- "type": "t_mapping(t_uint32,t_bytes_storage)"
1448
- },
1449
- {
1450
- "astId": 5776,
1451
- "contract": "contracts/uln/UltraLightNode302.sol:UltraLightNode302",
1452
- "label": "fees",
1453
- "offset": 0,
1454
- "slot": "5",
1455
- "type": "t_mapping(t_address,t_uint256)"
1456
- },
1457
- {
1458
- "astId": 10481,
1459
- "contract": "contracts/uln/UltraLightNode302.sol:UltraLightNode302",
1460
- "label": "ulnConfig",
1461
- "offset": 0,
1462
- "slot": "6",
1463
- "type": "t_mapping(t_address,t_mapping(t_uint32,t_struct(Config)10443_storage))"
1464
- },
1465
- {
1466
- "astId": 10486,
1467
- "contract": "contracts/uln/UltraLightNode302.sol:UltraLightNode302",
1468
- "label": "defaultUlnConfig",
1469
- "offset": 0,
1470
- "slot": "7",
1471
- "type": "t_mapping(t_uint32,t_struct(Config)10443_storage)"
1472
- },
1473
- {
1474
- "astId": 11230,
1475
- "contract": "contracts/uln/UltraLightNode302.sol:UltraLightNode302",
1476
- "label": "hashLookup",
1477
- "offset": 0,
1478
- "slot": "8",
1479
- "type": "t_mapping(t_bytes32,t_mapping(t_bytes32,t_mapping(t_address,t_uint64)))"
1480
- }
1481
- ],
1482
- "types": {
1483
- "t_address": {
1484
- "encoding": "inplace",
1485
- "label": "address",
1486
- "numberOfBytes": "20"
1487
- },
1488
- "t_array(t_address)dyn_storage": {
1489
- "base": "t_address",
1490
- "encoding": "dynamic_array",
1491
- "label": "address[]",
1492
- "numberOfBytes": "32"
1493
- },
1494
- "t_bool": {
1495
- "encoding": "inplace",
1496
- "label": "bool",
1497
- "numberOfBytes": "1"
1498
- },
1499
- "t_bytes32": {
1500
- "encoding": "inplace",
1501
- "label": "bytes32",
1502
- "numberOfBytes": "32"
1503
- },
1504
- "t_bytes_storage": {
1505
- "encoding": "bytes",
1506
- "label": "bytes",
1507
- "numberOfBytes": "32"
1508
- },
1509
- "t_mapping(t_address,t_mapping(t_uint32,t_struct(Config)10443_storage))": {
1510
- "encoding": "mapping",
1511
- "key": "t_address",
1512
- "label": "mapping(address => mapping(uint32 => struct UlnConfig.Config))",
1513
- "numberOfBytes": "32",
1514
- "value": "t_mapping(t_uint32,t_struct(Config)10443_storage)"
1515
- },
1516
- "t_mapping(t_address,t_mapping(t_uint32,t_struct(OutboundConfig)5783_storage))": {
1517
- "encoding": "mapping",
1518
- "key": "t_address",
1519
- "label": "mapping(address => mapping(uint32 => struct MessageLibBase.OutboundConfig))",
1520
- "numberOfBytes": "32",
1521
- "value": "t_mapping(t_uint32,t_struct(OutboundConfig)5783_storage)"
1522
- },
1523
- "t_mapping(t_address,t_uint256)": {
1524
- "encoding": "mapping",
1525
- "key": "t_address",
1526
- "label": "mapping(address => uint256)",
1527
- "numberOfBytes": "32",
1528
- "value": "t_uint256"
1529
- },
1530
- "t_mapping(t_address,t_uint64)": {
1531
- "encoding": "mapping",
1532
- "key": "t_address",
1533
- "label": "mapping(address => uint64)",
1534
- "numberOfBytes": "32",
1535
- "value": "t_uint64"
1536
- },
1537
- "t_mapping(t_bytes32,t_mapping(t_address,t_uint64))": {
1538
- "encoding": "mapping",
1539
- "key": "t_bytes32",
1540
- "label": "mapping(bytes32 => mapping(address => uint64))",
1541
- "numberOfBytes": "32",
1542
- "value": "t_mapping(t_address,t_uint64)"
1543
- },
1544
- "t_mapping(t_bytes32,t_mapping(t_bytes32,t_mapping(t_address,t_uint64)))": {
1545
- "encoding": "mapping",
1546
- "key": "t_bytes32",
1547
- "label": "mapping(bytes32 => mapping(bytes32 => mapping(address => uint64)))",
1548
- "numberOfBytes": "32",
1549
- "value": "t_mapping(t_bytes32,t_mapping(t_address,t_uint64))"
1550
- },
1551
- "t_mapping(t_uint32,t_bytes_storage)": {
1552
- "encoding": "mapping",
1553
- "key": "t_uint32",
1554
- "label": "mapping(uint32 => bytes)",
1555
- "numberOfBytes": "32",
1556
- "value": "t_bytes_storage"
1557
- },
1558
- "t_mapping(t_uint32,t_struct(Config)10443_storage)": {
1559
- "encoding": "mapping",
1560
- "key": "t_uint32",
1561
- "label": "mapping(uint32 => struct UlnConfig.Config)",
1562
- "numberOfBytes": "32",
1563
- "value": "t_struct(Config)10443_storage"
1564
- },
1565
- "t_mapping(t_uint32,t_struct(OutboundConfig)5783_storage)": {
1566
- "encoding": "mapping",
1567
- "key": "t_uint32",
1568
- "label": "mapping(uint32 => struct MessageLibBase.OutboundConfig)",
1569
- "numberOfBytes": "32",
1570
- "value": "t_struct(OutboundConfig)5783_storage"
1571
- },
1572
- "t_struct(Config)10443_storage": {
1573
- "encoding": "inplace",
1574
- "label": "struct UlnConfig.Config",
1575
- "members": [
1576
- {
1577
- "astId": 10426,
1578
- "contract": "contracts/uln/UltraLightNode302.sol:UltraLightNode302",
1579
- "label": "inboundConfirmations",
1580
- "offset": 0,
1581
- "slot": "0",
1582
- "type": "t_uint64"
1583
- },
1584
- {
1585
- "astId": 10428,
1586
- "contract": "contracts/uln/UltraLightNode302.sol:UltraLightNode302",
1587
- "label": "useCustomOracles",
1588
- "offset": 8,
1589
- "slot": "0",
1590
- "type": "t_bool"
1591
- },
1592
- {
1593
- "astId": 10430,
1594
- "contract": "contracts/uln/UltraLightNode302.sol:UltraLightNode302",
1595
- "label": "useCustomOptionalOracles",
1596
- "offset": 9,
1597
- "slot": "0",
1598
- "type": "t_bool"
1599
- },
1600
- {
1601
- "astId": 10432,
1602
- "contract": "contracts/uln/UltraLightNode302.sol:UltraLightNode302",
1603
- "label": "oraclesCount",
1604
- "offset": 10,
1605
- "slot": "0",
1606
- "type": "t_uint16"
1607
- },
1608
- {
1609
- "astId": 10434,
1610
- "contract": "contracts/uln/UltraLightNode302.sol:UltraLightNode302",
1611
- "label": "optionalOraclesCount",
1612
- "offset": 12,
1613
- "slot": "0",
1614
- "type": "t_uint16"
1615
- },
1616
- {
1617
- "astId": 10436,
1618
- "contract": "contracts/uln/UltraLightNode302.sol:UltraLightNode302",
1619
- "label": "optionalOraclesThreshold",
1620
- "offset": 14,
1621
- "slot": "0",
1622
- "type": "t_uint16"
1623
- },
1624
- {
1625
- "astId": 10439,
1626
- "contract": "contracts/uln/UltraLightNode302.sol:UltraLightNode302",
1627
- "label": "oracles",
1628
- "offset": 0,
1629
- "slot": "1",
1630
- "type": "t_array(t_address)dyn_storage"
1631
- },
1632
- {
1633
- "astId": 10442,
1634
- "contract": "contracts/uln/UltraLightNode302.sol:UltraLightNode302",
1635
- "label": "optionalOracles",
1636
- "offset": 0,
1637
- "slot": "2",
1638
- "type": "t_array(t_address)dyn_storage"
1639
- }
1640
- ],
1641
- "numberOfBytes": "96"
1642
- },
1643
- "t_struct(OutboundConfig)5783_storage": {
1644
- "encoding": "inplace",
1645
- "label": "struct MessageLibBase.OutboundConfig",
1646
- "members": [
1647
- {
1648
- "astId": 5778,
1649
- "contract": "contracts/uln/UltraLightNode302.sol:UltraLightNode302",
1650
- "label": "maxMessageSize",
1651
- "offset": 0,
1652
- "slot": "0",
1653
- "type": "t_uint32"
1654
- },
1655
- {
1656
- "astId": 5780,
1657
- "contract": "contracts/uln/UltraLightNode302.sol:UltraLightNode302",
1658
- "label": "outboundConfirmations",
1659
- "offset": 4,
1660
- "slot": "0",
1661
- "type": "t_uint64"
1662
- },
1663
- {
1664
- "astId": 5782,
1665
- "contract": "contracts/uln/UltraLightNode302.sol:UltraLightNode302",
1666
- "label": "relayer",
1667
- "offset": 12,
1668
- "slot": "0",
1669
- "type": "t_address"
1670
- }
1671
- ],
1672
- "numberOfBytes": "32"
1673
- },
1674
- "t_uint16": {
1675
- "encoding": "inplace",
1676
- "label": "uint16",
1677
- "numberOfBytes": "2"
1678
- },
1679
- "t_uint256": {
1680
- "encoding": "inplace",
1681
- "label": "uint256",
1682
- "numberOfBytes": "32"
1683
- },
1684
- "t_uint32": {
1685
- "encoding": "inplace",
1686
- "label": "uint32",
1687
- "numberOfBytes": "4"
1688
- },
1689
- "t_uint64": {
1690
- "encoding": "inplace",
1691
- "label": "uint64",
1692
- "numberOfBytes": "8"
1693
- }
1694
- }
1695
- }
1696
- }