@layerzerolabs/lz-evm-sdk-v2 2.0.15 → 2.0.16

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 (107) hide show
  1. package/artifacts/contracts/Executor.sol/Executor.json +2 -2
  2. package/artifacts/contracts/ExecutorFeeLib.sol/ExecutorFeeLib.json +7 -2
  3. package/artifacts/contracts/interfaces/IExecutorFeeLib.sol/IExecutorFeeLib.json +5 -0
  4. package/deployments/avalanche-testnet/AxelarDVNAdapterFeeLib.json +10 -10
  5. package/deployments/avalanche-testnet/AxelarDVNAdapterFeeLib_Implementation.json +40 -40
  6. package/deployments/ethereum-sandbox-local/DVN.json +76 -76
  7. package/deployments/ethereum-sandbox-local/DVNFeeLib.json +23 -23
  8. package/deployments/ethereum-sandbox-local/DefaultProxyAdmin.json +258 -0
  9. package/deployments/ethereum-sandbox-local/EndpointV2.json +141 -150
  10. package/deployments/{blast-testnet/Executor_Proxy.json → ethereum-sandbox-local/EndpointV2View.json} +259 -189
  11. package/deployments/ethereum-sandbox-local/EndpointV2View_Implementation.json +313 -0
  12. package/deployments/ethereum-sandbox-local/EndpointV2View_Proxy.json +230 -0
  13. package/deployments/ethereum-sandbox-local/Executor.json +86 -86
  14. package/deployments/ethereum-sandbox-local/ExecutorFeeLib.json +38 -33
  15. package/deployments/ethereum-sandbox-local/ExecutorProxyAdmin.json +17 -17
  16. package/deployments/ethereum-sandbox-local/Executor_Implementation.json +61 -61
  17. package/deployments/ethereum-sandbox-local/Executor_Proxy.json +66 -66
  18. package/deployments/{blast-testnet/PriceFeed.json → ethereum-sandbox-local/LzExecutor.json} +275 -408
  19. package/deployments/ethereum-sandbox-local/LzExecutor_Implementation.json +703 -0
  20. package/deployments/{blast-testnet/PriceFeed_Proxy.json → ethereum-sandbox-local/LzExecutor_Proxy.json} +37 -37
  21. package/deployments/ethereum-sandbox-local/NonceContractMock.json +6 -6
  22. package/deployments/ethereum-sandbox-local/PriceFeed.json +18 -18
  23. package/deployments/ethereum-sandbox-local/PriceFeedProxyAdmin.json +5 -5
  24. package/deployments/ethereum-sandbox-local/PriceFeed_Implementation.json +44 -44
  25. package/deployments/ethereum-sandbox-local/PriceFeed_Proxy.json +5 -5
  26. package/deployments/ethereum-sandbox-local/ReceiveUln301.json +126 -98
  27. package/deployments/ethereum-sandbox-local/ReceiveUln301View.json +354 -0
  28. package/deployments/ethereum-sandbox-local/ReceiveUln301View_Implementation.json +231 -0
  29. package/deployments/ethereum-sandbox-local/ReceiveUln301View_Proxy.json +230 -0
  30. package/deployments/ethereum-sandbox-local/ReceiveUln302.json +114 -62
  31. package/deployments/ethereum-sandbox-local/ReceiveUln302View.json +478 -0
  32. package/deployments/ethereum-sandbox-local/ReceiveUln302View_Implementation.json +384 -0
  33. package/deployments/ethereum-sandbox-local/ReceiveUln302View_Proxy.json +230 -0
  34. package/deployments/ethereum-sandbox-local/SendUln301.json +112 -112
  35. package/deployments/ethereum-sandbox-local/SendUln302.json +109 -109
  36. package/deployments/ethereum-sandbox-local/SimpleMessageLib.json +23 -23
  37. package/deployments/ethereum-sandbox-local/Treasury.json +21 -21
  38. package/deployments/ethereum-sandbox-local/TreasuryFeeHandler.json +12 -12
  39. package/deployments/polygon-sandbox-local/DVN.json +76 -76
  40. package/deployments/polygon-sandbox-local/DVNFeeLib.json +23 -23
  41. package/deployments/polygon-sandbox-local/DefaultProxyAdmin.json +258 -0
  42. package/deployments/polygon-sandbox-local/EndpointV2.json +141 -150
  43. package/deployments/polygon-sandbox-local/EndpointV2View.json +435 -0
  44. package/deployments/polygon-sandbox-local/EndpointV2View_Implementation.json +313 -0
  45. package/deployments/polygon-sandbox-local/EndpointV2View_Proxy.json +230 -0
  46. package/deployments/polygon-sandbox-local/Executor.json +86 -86
  47. package/deployments/polygon-sandbox-local/ExecutorFeeLib.json +38 -33
  48. package/deployments/polygon-sandbox-local/ExecutorProxyAdmin.json +17 -17
  49. package/deployments/polygon-sandbox-local/Executor_Implementation.json +61 -61
  50. package/deployments/polygon-sandbox-local/Executor_Proxy.json +66 -66
  51. package/deployments/{joc-testnet/PriceFeed.json → polygon-sandbox-local/LzExecutor.json} +275 -408
  52. package/deployments/polygon-sandbox-local/LzExecutor_Implementation.json +703 -0
  53. package/deployments/{joc-testnet/PriceFeed_Proxy.json → polygon-sandbox-local/LzExecutor_Proxy.json} +37 -37
  54. package/deployments/polygon-sandbox-local/NonceContractMock.json +6 -6
  55. package/deployments/polygon-sandbox-local/PriceFeed.json +18 -18
  56. package/deployments/polygon-sandbox-local/PriceFeedProxyAdmin.json +5 -5
  57. package/deployments/polygon-sandbox-local/PriceFeed_Implementation.json +44 -44
  58. package/deployments/polygon-sandbox-local/PriceFeed_Proxy.json +5 -5
  59. package/deployments/polygon-sandbox-local/ReceiveUln301.json +126 -98
  60. package/deployments/polygon-sandbox-local/ReceiveUln301View.json +354 -0
  61. package/deployments/polygon-sandbox-local/ReceiveUln301View_Implementation.json +231 -0
  62. package/deployments/polygon-sandbox-local/ReceiveUln301View_Proxy.json +230 -0
  63. package/deployments/polygon-sandbox-local/ReceiveUln302.json +114 -62
  64. package/deployments/polygon-sandbox-local/ReceiveUln302View.json +478 -0
  65. package/deployments/polygon-sandbox-local/ReceiveUln302View_Implementation.json +384 -0
  66. package/deployments/polygon-sandbox-local/ReceiveUln302View_Proxy.json +230 -0
  67. package/deployments/polygon-sandbox-local/SendUln301.json +112 -112
  68. package/deployments/polygon-sandbox-local/SendUln302.json +109 -109
  69. package/deployments/polygon-sandbox-local/SimpleMessageLib.json +23 -23
  70. package/deployments/polygon-sandbox-local/Treasury.json +21 -21
  71. package/deployments/polygon-sandbox-local/TreasuryFeeHandler.json +12 -12
  72. package/dist/{index-htDjTX1I.d.mts → index-3seuukWJ.d.mts} +10 -2
  73. package/dist/{index-htDjTX1I.d.ts → index-3seuukWJ.d.ts} +10 -2
  74. package/dist/index.browser.cjs +12 -2
  75. package/dist/index.browser.cjs.map +1 -1
  76. package/dist/index.browser.d.mts +1 -1
  77. package/dist/index.browser.d.ts +1 -1
  78. package/dist/index.browser.mjs +12 -2
  79. package/dist/index.browser.mjs.map +1 -1
  80. package/dist/index.cjs +12 -2
  81. package/dist/index.cjs.map +1 -1
  82. package/dist/index.d.mts +1 -1
  83. package/dist/index.d.ts +1 -1
  84. package/dist/index.mjs +12 -2
  85. package/dist/index.mjs.map +1 -1
  86. package/package.json +8 -8
  87. package/deployments/blast-testnet/DVN.json +0 -1929
  88. package/deployments/blast-testnet/DVNFeeLib.json +0 -387
  89. package/deployments/blast-testnet/EndpointV2.json +0 -3000
  90. package/deployments/blast-testnet/Executor.json +0 -1532
  91. package/deployments/blast-testnet/ExecutorFeeLib.json +0 -407
  92. package/deployments/blast-testnet/ExecutorProxyAdmin.json +0 -283
  93. package/deployments/blast-testnet/Executor_Implementation.json +0 -1591
  94. package/deployments/blast-testnet/PriceFeedProxyAdmin.json +0 -283
  95. package/deployments/blast-testnet/PriceFeed_Implementation.json +0 -912
  96. package/deployments/blast-testnet/ReceiveUln301.json +0 -1292
  97. package/deployments/blast-testnet/ReceiveUln302.json +0 -1006
  98. package/deployments/blast-testnet/SendUln301.json +0 -1569
  99. package/deployments/blast-testnet/SendUln302.json +0 -1527
  100. package/deployments/blast-testnet/Treasury.json +0 -412
  101. package/deployments/blast-testnet/TreasuryFeeHandler.json +0 -125
  102. package/deployments/joc-testnet/PriceFeedProxyAdmin.json +0 -283
  103. package/deployments/joc-testnet/PriceFeed_Implementation.json +0 -912
  104. package/deployments/rarible-mainnet/PriceFeed.json +0 -891
  105. package/deployments/rarible-mainnet/PriceFeedProxyAdmin.json +0 -284
  106. package/deployments/rarible-mainnet/PriceFeed_Implementation.json +0 -913
  107. package/deployments/rarible-mainnet/PriceFeed_Proxy.json +0 -245
@@ -1,1527 +0,0 @@
1
- {
2
- "address": "0x45841dd1ca50265Da7614fC43A361e526c0e6160",
3
- "abi": [
4
- {
5
- "inputs": [
6
- {
7
- "internalType": "address",
8
- "name": "_endpoint",
9
- "type": "address"
10
- },
11
- {
12
- "internalType": "uint256",
13
- "name": "_treasuryGasLimit",
14
- "type": "uint256"
15
- },
16
- {
17
- "internalType": "uint256",
18
- "name": "_treasuryGasForFeeCap",
19
- "type": "uint256"
20
- }
21
- ],
22
- "stateMutability": "nonpayable",
23
- "type": "constructor"
24
- },
25
- {
26
- "inputs": [],
27
- "name": "DVN_InvalidDVNIdx",
28
- "type": "error"
29
- },
30
- {
31
- "inputs": [
32
- {
33
- "internalType": "uint256",
34
- "name": "cursor",
35
- "type": "uint256"
36
- }
37
- ],
38
- "name": "DVN_InvalidDVNOptions",
39
- "type": "error"
40
- },
41
- {
42
- "inputs": [],
43
- "name": "LZ_MessageLib_CannotWithdrawAltToken",
44
- "type": "error"
45
- },
46
- {
47
- "inputs": [
48
- {
49
- "internalType": "uint256",
50
- "name": "requested",
51
- "type": "uint256"
52
- },
53
- {
54
- "internalType": "uint256",
55
- "name": "available",
56
- "type": "uint256"
57
- }
58
- ],
59
- "name": "LZ_MessageLib_InvalidAmount",
60
- "type": "error"
61
- },
62
- {
63
- "inputs": [],
64
- "name": "LZ_MessageLib_InvalidExecutor",
65
- "type": "error"
66
- },
67
- {
68
- "inputs": [
69
- {
70
- "internalType": "uint256",
71
- "name": "actual",
72
- "type": "uint256"
73
- },
74
- {
75
- "internalType": "uint256",
76
- "name": "max",
77
- "type": "uint256"
78
- }
79
- ],
80
- "name": "LZ_MessageLib_InvalidMessageSize",
81
- "type": "error"
82
- },
83
- {
84
- "inputs": [],
85
- "name": "LZ_MessageLib_NotTreasury",
86
- "type": "error"
87
- },
88
- {
89
- "inputs": [],
90
- "name": "LZ_MessageLib_OnlyEndpoint",
91
- "type": "error"
92
- },
93
- {
94
- "inputs": [],
95
- "name": "LZ_MessageLib_TransferFailed",
96
- "type": "error"
97
- },
98
- {
99
- "inputs": [],
100
- "name": "LZ_MessageLib_ZeroMessageSize",
101
- "type": "error"
102
- },
103
- {
104
- "inputs": [],
105
- "name": "LZ_ULN_AtLeastOneDVN",
106
- "type": "error"
107
- },
108
- {
109
- "inputs": [
110
- {
111
- "internalType": "uint32",
112
- "name": "configType",
113
- "type": "uint32"
114
- }
115
- ],
116
- "name": "LZ_ULN_InvalidConfigType",
117
- "type": "error"
118
- },
119
- {
120
- "inputs": [],
121
- "name": "LZ_ULN_InvalidConfirmations",
122
- "type": "error"
123
- },
124
- {
125
- "inputs": [],
126
- "name": "LZ_ULN_InvalidLegacyType1Option",
127
- "type": "error"
128
- },
129
- {
130
- "inputs": [],
131
- "name": "LZ_ULN_InvalidLegacyType2Option",
132
- "type": "error"
133
- },
134
- {
135
- "inputs": [],
136
- "name": "LZ_ULN_InvalidOptionalDVNCount",
137
- "type": "error"
138
- },
139
- {
140
- "inputs": [],
141
- "name": "LZ_ULN_InvalidOptionalDVNThreshold",
142
- "type": "error"
143
- },
144
- {
145
- "inputs": [],
146
- "name": "LZ_ULN_InvalidRequiredDVNCount",
147
- "type": "error"
148
- },
149
- {
150
- "inputs": [
151
- {
152
- "internalType": "uint8",
153
- "name": "workerId",
154
- "type": "uint8"
155
- }
156
- ],
157
- "name": "LZ_ULN_InvalidWorkerId",
158
- "type": "error"
159
- },
160
- {
161
- "inputs": [
162
- {
163
- "internalType": "uint256",
164
- "name": "cursor",
165
- "type": "uint256"
166
- }
167
- ],
168
- "name": "LZ_ULN_InvalidWorkerOptions",
169
- "type": "error"
170
- },
171
- {
172
- "inputs": [],
173
- "name": "LZ_ULN_Unsorted",
174
- "type": "error"
175
- },
176
- {
177
- "inputs": [
178
- {
179
- "internalType": "uint32",
180
- "name": "eid",
181
- "type": "uint32"
182
- }
183
- ],
184
- "name": "LZ_ULN_UnsupportedEid",
185
- "type": "error"
186
- },
187
- {
188
- "inputs": [
189
- {
190
- "internalType": "uint16",
191
- "name": "optionType",
192
- "type": "uint16"
193
- }
194
- ],
195
- "name": "LZ_ULN_UnsupportedOptionType",
196
- "type": "error"
197
- },
198
- {
199
- "inputs": [
200
- {
201
- "internalType": "address",
202
- "name": "_to",
203
- "type": "address"
204
- },
205
- {
206
- "internalType": "uint256",
207
- "name": "_value",
208
- "type": "uint256"
209
- }
210
- ],
211
- "name": "Transfer_NativeFailed",
212
- "type": "error"
213
- },
214
- {
215
- "inputs": [],
216
- "name": "Transfer_ToAddressIsZero",
217
- "type": "error"
218
- },
219
- {
220
- "anonymous": false,
221
- "inputs": [
222
- {
223
- "indexed": false,
224
- "internalType": "address[]",
225
- "name": "requiredDVNs",
226
- "type": "address[]"
227
- },
228
- {
229
- "indexed": false,
230
- "internalType": "address[]",
231
- "name": "optionalDVNs",
232
- "type": "address[]"
233
- },
234
- {
235
- "indexed": false,
236
- "internalType": "uint256[]",
237
- "name": "fees",
238
- "type": "uint256[]"
239
- }
240
- ],
241
- "name": "DVNFeePaid",
242
- "type": "event"
243
- },
244
- {
245
- "anonymous": false,
246
- "inputs": [
247
- {
248
- "components": [
249
- {
250
- "internalType": "uint32",
251
- "name": "eid",
252
- "type": "uint32"
253
- },
254
- {
255
- "components": [
256
- {
257
- "internalType": "uint32",
258
- "name": "maxMessageSize",
259
- "type": "uint32"
260
- },
261
- {
262
- "internalType": "address",
263
- "name": "executor",
264
- "type": "address"
265
- }
266
- ],
267
- "internalType": "struct ExecutorConfig",
268
- "name": "config",
269
- "type": "tuple"
270
- }
271
- ],
272
- "indexed": false,
273
- "internalType": "struct SetDefaultExecutorConfigParam[]",
274
- "name": "params",
275
- "type": "tuple[]"
276
- }
277
- ],
278
- "name": "DefaultExecutorConfigsSet",
279
- "type": "event"
280
- },
281
- {
282
- "anonymous": false,
283
- "inputs": [
284
- {
285
- "components": [
286
- {
287
- "internalType": "uint32",
288
- "name": "eid",
289
- "type": "uint32"
290
- },
291
- {
292
- "components": [
293
- {
294
- "internalType": "uint64",
295
- "name": "confirmations",
296
- "type": "uint64"
297
- },
298
- {
299
- "internalType": "uint8",
300
- "name": "requiredDVNCount",
301
- "type": "uint8"
302
- },
303
- {
304
- "internalType": "uint8",
305
- "name": "optionalDVNCount",
306
- "type": "uint8"
307
- },
308
- {
309
- "internalType": "uint8",
310
- "name": "optionalDVNThreshold",
311
- "type": "uint8"
312
- },
313
- {
314
- "internalType": "address[]",
315
- "name": "requiredDVNs",
316
- "type": "address[]"
317
- },
318
- {
319
- "internalType": "address[]",
320
- "name": "optionalDVNs",
321
- "type": "address[]"
322
- }
323
- ],
324
- "internalType": "struct UlnConfig",
325
- "name": "config",
326
- "type": "tuple"
327
- }
328
- ],
329
- "indexed": false,
330
- "internalType": "struct SetDefaultUlnConfigParam[]",
331
- "name": "params",
332
- "type": "tuple[]"
333
- }
334
- ],
335
- "name": "DefaultUlnConfigsSet",
336
- "type": "event"
337
- },
338
- {
339
- "anonymous": false,
340
- "inputs": [
341
- {
342
- "indexed": false,
343
- "internalType": "address",
344
- "name": "oapp",
345
- "type": "address"
346
- },
347
- {
348
- "indexed": false,
349
- "internalType": "uint32",
350
- "name": "eid",
351
- "type": "uint32"
352
- },
353
- {
354
- "components": [
355
- {
356
- "internalType": "uint32",
357
- "name": "maxMessageSize",
358
- "type": "uint32"
359
- },
360
- {
361
- "internalType": "address",
362
- "name": "executor",
363
- "type": "address"
364
- }
365
- ],
366
- "indexed": false,
367
- "internalType": "struct ExecutorConfig",
368
- "name": "config",
369
- "type": "tuple"
370
- }
371
- ],
372
- "name": "ExecutorConfigSet",
373
- "type": "event"
374
- },
375
- {
376
- "anonymous": false,
377
- "inputs": [
378
- {
379
- "indexed": false,
380
- "internalType": "address",
381
- "name": "executor",
382
- "type": "address"
383
- },
384
- {
385
- "indexed": false,
386
- "internalType": "uint256",
387
- "name": "fee",
388
- "type": "uint256"
389
- }
390
- ],
391
- "name": "ExecutorFeePaid",
392
- "type": "event"
393
- },
394
- {
395
- "anonymous": false,
396
- "inputs": [
397
- {
398
- "indexed": false,
399
- "internalType": "address",
400
- "name": "lzToken",
401
- "type": "address"
402
- },
403
- {
404
- "indexed": false,
405
- "internalType": "address",
406
- "name": "receiver",
407
- "type": "address"
408
- },
409
- {
410
- "indexed": false,
411
- "internalType": "uint256",
412
- "name": "amount",
413
- "type": "uint256"
414
- }
415
- ],
416
- "name": "LzTokenFeeWithdrawn",
417
- "type": "event"
418
- },
419
- {
420
- "anonymous": false,
421
- "inputs": [
422
- {
423
- "indexed": false,
424
- "internalType": "address",
425
- "name": "worker",
426
- "type": "address"
427
- },
428
- {
429
- "indexed": false,
430
- "internalType": "address",
431
- "name": "receiver",
432
- "type": "address"
433
- },
434
- {
435
- "indexed": false,
436
- "internalType": "uint256",
437
- "name": "amount",
438
- "type": "uint256"
439
- }
440
- ],
441
- "name": "NativeFeeWithdrawn",
442
- "type": "event"
443
- },
444
- {
445
- "anonymous": false,
446
- "inputs": [
447
- {
448
- "indexed": true,
449
- "internalType": "address",
450
- "name": "previousOwner",
451
- "type": "address"
452
- },
453
- {
454
- "indexed": true,
455
- "internalType": "address",
456
- "name": "newOwner",
457
- "type": "address"
458
- }
459
- ],
460
- "name": "OwnershipTransferred",
461
- "type": "event"
462
- },
463
- {
464
- "anonymous": false,
465
- "inputs": [
466
- {
467
- "indexed": false,
468
- "internalType": "uint256",
469
- "name": "newTreasuryNativeFeeCap",
470
- "type": "uint256"
471
- }
472
- ],
473
- "name": "TreasuryNativeFeeCapSet",
474
- "type": "event"
475
- },
476
- {
477
- "anonymous": false,
478
- "inputs": [
479
- {
480
- "indexed": false,
481
- "internalType": "address",
482
- "name": "treasury",
483
- "type": "address"
484
- }
485
- ],
486
- "name": "TreasurySet",
487
- "type": "event"
488
- },
489
- {
490
- "anonymous": false,
491
- "inputs": [
492
- {
493
- "indexed": false,
494
- "internalType": "address",
495
- "name": "oapp",
496
- "type": "address"
497
- },
498
- {
499
- "indexed": false,
500
- "internalType": "uint32",
501
- "name": "eid",
502
- "type": "uint32"
503
- },
504
- {
505
- "components": [
506
- {
507
- "internalType": "uint64",
508
- "name": "confirmations",
509
- "type": "uint64"
510
- },
511
- {
512
- "internalType": "uint8",
513
- "name": "requiredDVNCount",
514
- "type": "uint8"
515
- },
516
- {
517
- "internalType": "uint8",
518
- "name": "optionalDVNCount",
519
- "type": "uint8"
520
- },
521
- {
522
- "internalType": "uint8",
523
- "name": "optionalDVNThreshold",
524
- "type": "uint8"
525
- },
526
- {
527
- "internalType": "address[]",
528
- "name": "requiredDVNs",
529
- "type": "address[]"
530
- },
531
- {
532
- "internalType": "address[]",
533
- "name": "optionalDVNs",
534
- "type": "address[]"
535
- }
536
- ],
537
- "indexed": false,
538
- "internalType": "struct UlnConfig",
539
- "name": "config",
540
- "type": "tuple"
541
- }
542
- ],
543
- "name": "UlnConfigSet",
544
- "type": "event"
545
- },
546
- {
547
- "inputs": [
548
- {
549
- "internalType": "address",
550
- "name": "oapp",
551
- "type": "address"
552
- },
553
- {
554
- "internalType": "uint32",
555
- "name": "eid",
556
- "type": "uint32"
557
- }
558
- ],
559
- "name": "executorConfigs",
560
- "outputs": [
561
- {
562
- "internalType": "uint32",
563
- "name": "maxMessageSize",
564
- "type": "uint32"
565
- },
566
- {
567
- "internalType": "address",
568
- "name": "executor",
569
- "type": "address"
570
- }
571
- ],
572
- "stateMutability": "view",
573
- "type": "function"
574
- },
575
- {
576
- "inputs": [
577
- {
578
- "internalType": "address",
579
- "name": "worker",
580
- "type": "address"
581
- }
582
- ],
583
- "name": "fees",
584
- "outputs": [
585
- {
586
- "internalType": "uint256",
587
- "name": "",
588
- "type": "uint256"
589
- }
590
- ],
591
- "stateMutability": "view",
592
- "type": "function"
593
- },
594
- {
595
- "inputs": [
596
- {
597
- "internalType": "address",
598
- "name": "_oapp",
599
- "type": "address"
600
- },
601
- {
602
- "internalType": "uint32",
603
- "name": "_remoteEid",
604
- "type": "uint32"
605
- }
606
- ],
607
- "name": "getAppUlnConfig",
608
- "outputs": [
609
- {
610
- "components": [
611
- {
612
- "internalType": "uint64",
613
- "name": "confirmations",
614
- "type": "uint64"
615
- },
616
- {
617
- "internalType": "uint8",
618
- "name": "requiredDVNCount",
619
- "type": "uint8"
620
- },
621
- {
622
- "internalType": "uint8",
623
- "name": "optionalDVNCount",
624
- "type": "uint8"
625
- },
626
- {
627
- "internalType": "uint8",
628
- "name": "optionalDVNThreshold",
629
- "type": "uint8"
630
- },
631
- {
632
- "internalType": "address[]",
633
- "name": "requiredDVNs",
634
- "type": "address[]"
635
- },
636
- {
637
- "internalType": "address[]",
638
- "name": "optionalDVNs",
639
- "type": "address[]"
640
- }
641
- ],
642
- "internalType": "struct UlnConfig",
643
- "name": "",
644
- "type": "tuple"
645
- }
646
- ],
647
- "stateMutability": "view",
648
- "type": "function"
649
- },
650
- {
651
- "inputs": [
652
- {
653
- "internalType": "uint32",
654
- "name": "_eid",
655
- "type": "uint32"
656
- },
657
- {
658
- "internalType": "address",
659
- "name": "_oapp",
660
- "type": "address"
661
- },
662
- {
663
- "internalType": "uint32",
664
- "name": "_configType",
665
- "type": "uint32"
666
- }
667
- ],
668
- "name": "getConfig",
669
- "outputs": [
670
- {
671
- "internalType": "bytes",
672
- "name": "",
673
- "type": "bytes"
674
- }
675
- ],
676
- "stateMutability": "view",
677
- "type": "function"
678
- },
679
- {
680
- "inputs": [
681
- {
682
- "internalType": "address",
683
- "name": "_oapp",
684
- "type": "address"
685
- },
686
- {
687
- "internalType": "uint32",
688
- "name": "_remoteEid",
689
- "type": "uint32"
690
- }
691
- ],
692
- "name": "getExecutorConfig",
693
- "outputs": [
694
- {
695
- "components": [
696
- {
697
- "internalType": "uint32",
698
- "name": "maxMessageSize",
699
- "type": "uint32"
700
- },
701
- {
702
- "internalType": "address",
703
- "name": "executor",
704
- "type": "address"
705
- }
706
- ],
707
- "internalType": "struct ExecutorConfig",
708
- "name": "rtnConfig",
709
- "type": "tuple"
710
- }
711
- ],
712
- "stateMutability": "view",
713
- "type": "function"
714
- },
715
- {
716
- "inputs": [
717
- {
718
- "internalType": "address",
719
- "name": "_oapp",
720
- "type": "address"
721
- },
722
- {
723
- "internalType": "uint32",
724
- "name": "_remoteEid",
725
- "type": "uint32"
726
- }
727
- ],
728
- "name": "getUlnConfig",
729
- "outputs": [
730
- {
731
- "components": [
732
- {
733
- "internalType": "uint64",
734
- "name": "confirmations",
735
- "type": "uint64"
736
- },
737
- {
738
- "internalType": "uint8",
739
- "name": "requiredDVNCount",
740
- "type": "uint8"
741
- },
742
- {
743
- "internalType": "uint8",
744
- "name": "optionalDVNCount",
745
- "type": "uint8"
746
- },
747
- {
748
- "internalType": "uint8",
749
- "name": "optionalDVNThreshold",
750
- "type": "uint8"
751
- },
752
- {
753
- "internalType": "address[]",
754
- "name": "requiredDVNs",
755
- "type": "address[]"
756
- },
757
- {
758
- "internalType": "address[]",
759
- "name": "optionalDVNs",
760
- "type": "address[]"
761
- }
762
- ],
763
- "internalType": "struct UlnConfig",
764
- "name": "rtnConfig",
765
- "type": "tuple"
766
- }
767
- ],
768
- "stateMutability": "view",
769
- "type": "function"
770
- },
771
- {
772
- "inputs": [
773
- {
774
- "internalType": "uint32",
775
- "name": "_eid",
776
- "type": "uint32"
777
- }
778
- ],
779
- "name": "isSupportedEid",
780
- "outputs": [
781
- {
782
- "internalType": "bool",
783
- "name": "",
784
- "type": "bool"
785
- }
786
- ],
787
- "stateMutability": "view",
788
- "type": "function"
789
- },
790
- {
791
- "inputs": [],
792
- "name": "messageLibType",
793
- "outputs": [
794
- {
795
- "internalType": "enum MessageLibType",
796
- "name": "",
797
- "type": "uint8"
798
- }
799
- ],
800
- "stateMutability": "pure",
801
- "type": "function"
802
- },
803
- {
804
- "inputs": [],
805
- "name": "owner",
806
- "outputs": [
807
- {
808
- "internalType": "address",
809
- "name": "",
810
- "type": "address"
811
- }
812
- ],
813
- "stateMutability": "view",
814
- "type": "function"
815
- },
816
- {
817
- "inputs": [
818
- {
819
- "components": [
820
- {
821
- "internalType": "uint64",
822
- "name": "nonce",
823
- "type": "uint64"
824
- },
825
- {
826
- "internalType": "uint32",
827
- "name": "srcEid",
828
- "type": "uint32"
829
- },
830
- {
831
- "internalType": "address",
832
- "name": "sender",
833
- "type": "address"
834
- },
835
- {
836
- "internalType": "uint32",
837
- "name": "dstEid",
838
- "type": "uint32"
839
- },
840
- {
841
- "internalType": "bytes32",
842
- "name": "receiver",
843
- "type": "bytes32"
844
- },
845
- {
846
- "internalType": "bytes32",
847
- "name": "guid",
848
- "type": "bytes32"
849
- },
850
- {
851
- "internalType": "bytes",
852
- "name": "message",
853
- "type": "bytes"
854
- }
855
- ],
856
- "internalType": "struct Packet",
857
- "name": "_packet",
858
- "type": "tuple"
859
- },
860
- {
861
- "internalType": "bytes",
862
- "name": "_options",
863
- "type": "bytes"
864
- },
865
- {
866
- "internalType": "bool",
867
- "name": "_payInLzToken",
868
- "type": "bool"
869
- }
870
- ],
871
- "name": "quote",
872
- "outputs": [
873
- {
874
- "components": [
875
- {
876
- "internalType": "uint256",
877
- "name": "nativeFee",
878
- "type": "uint256"
879
- },
880
- {
881
- "internalType": "uint256",
882
- "name": "lzTokenFee",
883
- "type": "uint256"
884
- }
885
- ],
886
- "internalType": "struct MessagingFee",
887
- "name": "",
888
- "type": "tuple"
889
- }
890
- ],
891
- "stateMutability": "view",
892
- "type": "function"
893
- },
894
- {
895
- "inputs": [],
896
- "name": "renounceOwnership",
897
- "outputs": [],
898
- "stateMutability": "nonpayable",
899
- "type": "function"
900
- },
901
- {
902
- "inputs": [
903
- {
904
- "components": [
905
- {
906
- "internalType": "uint64",
907
- "name": "nonce",
908
- "type": "uint64"
909
- },
910
- {
911
- "internalType": "uint32",
912
- "name": "srcEid",
913
- "type": "uint32"
914
- },
915
- {
916
- "internalType": "address",
917
- "name": "sender",
918
- "type": "address"
919
- },
920
- {
921
- "internalType": "uint32",
922
- "name": "dstEid",
923
- "type": "uint32"
924
- },
925
- {
926
- "internalType": "bytes32",
927
- "name": "receiver",
928
- "type": "bytes32"
929
- },
930
- {
931
- "internalType": "bytes32",
932
- "name": "guid",
933
- "type": "bytes32"
934
- },
935
- {
936
- "internalType": "bytes",
937
- "name": "message",
938
- "type": "bytes"
939
- }
940
- ],
941
- "internalType": "struct Packet",
942
- "name": "_packet",
943
- "type": "tuple"
944
- },
945
- {
946
- "internalType": "bytes",
947
- "name": "_options",
948
- "type": "bytes"
949
- },
950
- {
951
- "internalType": "bool",
952
- "name": "_payInLzToken",
953
- "type": "bool"
954
- }
955
- ],
956
- "name": "send",
957
- "outputs": [
958
- {
959
- "components": [
960
- {
961
- "internalType": "uint256",
962
- "name": "nativeFee",
963
- "type": "uint256"
964
- },
965
- {
966
- "internalType": "uint256",
967
- "name": "lzTokenFee",
968
- "type": "uint256"
969
- }
970
- ],
971
- "internalType": "struct MessagingFee",
972
- "name": "",
973
- "type": "tuple"
974
- },
975
- {
976
- "internalType": "bytes",
977
- "name": "",
978
- "type": "bytes"
979
- }
980
- ],
981
- "stateMutability": "nonpayable",
982
- "type": "function"
983
- },
984
- {
985
- "inputs": [
986
- {
987
- "internalType": "address",
988
- "name": "_oapp",
989
- "type": "address"
990
- },
991
- {
992
- "components": [
993
- {
994
- "internalType": "uint32",
995
- "name": "eid",
996
- "type": "uint32"
997
- },
998
- {
999
- "internalType": "uint32",
1000
- "name": "configType",
1001
- "type": "uint32"
1002
- },
1003
- {
1004
- "internalType": "bytes",
1005
- "name": "config",
1006
- "type": "bytes"
1007
- }
1008
- ],
1009
- "internalType": "struct SetConfigParam[]",
1010
- "name": "_params",
1011
- "type": "tuple[]"
1012
- }
1013
- ],
1014
- "name": "setConfig",
1015
- "outputs": [],
1016
- "stateMutability": "nonpayable",
1017
- "type": "function"
1018
- },
1019
- {
1020
- "inputs": [
1021
- {
1022
- "components": [
1023
- {
1024
- "internalType": "uint32",
1025
- "name": "eid",
1026
- "type": "uint32"
1027
- },
1028
- {
1029
- "components": [
1030
- {
1031
- "internalType": "uint32",
1032
- "name": "maxMessageSize",
1033
- "type": "uint32"
1034
- },
1035
- {
1036
- "internalType": "address",
1037
- "name": "executor",
1038
- "type": "address"
1039
- }
1040
- ],
1041
- "internalType": "struct ExecutorConfig",
1042
- "name": "config",
1043
- "type": "tuple"
1044
- }
1045
- ],
1046
- "internalType": "struct SetDefaultExecutorConfigParam[]",
1047
- "name": "_params",
1048
- "type": "tuple[]"
1049
- }
1050
- ],
1051
- "name": "setDefaultExecutorConfigs",
1052
- "outputs": [],
1053
- "stateMutability": "nonpayable",
1054
- "type": "function"
1055
- },
1056
- {
1057
- "inputs": [
1058
- {
1059
- "components": [
1060
- {
1061
- "internalType": "uint32",
1062
- "name": "eid",
1063
- "type": "uint32"
1064
- },
1065
- {
1066
- "components": [
1067
- {
1068
- "internalType": "uint64",
1069
- "name": "confirmations",
1070
- "type": "uint64"
1071
- },
1072
- {
1073
- "internalType": "uint8",
1074
- "name": "requiredDVNCount",
1075
- "type": "uint8"
1076
- },
1077
- {
1078
- "internalType": "uint8",
1079
- "name": "optionalDVNCount",
1080
- "type": "uint8"
1081
- },
1082
- {
1083
- "internalType": "uint8",
1084
- "name": "optionalDVNThreshold",
1085
- "type": "uint8"
1086
- },
1087
- {
1088
- "internalType": "address[]",
1089
- "name": "requiredDVNs",
1090
- "type": "address[]"
1091
- },
1092
- {
1093
- "internalType": "address[]",
1094
- "name": "optionalDVNs",
1095
- "type": "address[]"
1096
- }
1097
- ],
1098
- "internalType": "struct UlnConfig",
1099
- "name": "config",
1100
- "type": "tuple"
1101
- }
1102
- ],
1103
- "internalType": "struct SetDefaultUlnConfigParam[]",
1104
- "name": "_params",
1105
- "type": "tuple[]"
1106
- }
1107
- ],
1108
- "name": "setDefaultUlnConfigs",
1109
- "outputs": [],
1110
- "stateMutability": "nonpayable",
1111
- "type": "function"
1112
- },
1113
- {
1114
- "inputs": [
1115
- {
1116
- "internalType": "address",
1117
- "name": "_treasury",
1118
- "type": "address"
1119
- }
1120
- ],
1121
- "name": "setTreasury",
1122
- "outputs": [],
1123
- "stateMutability": "nonpayable",
1124
- "type": "function"
1125
- },
1126
- {
1127
- "inputs": [
1128
- {
1129
- "internalType": "uint256",
1130
- "name": "_newTreasuryNativeFeeCap",
1131
- "type": "uint256"
1132
- }
1133
- ],
1134
- "name": "setTreasuryNativeFeeCap",
1135
- "outputs": [],
1136
- "stateMutability": "nonpayable",
1137
- "type": "function"
1138
- },
1139
- {
1140
- "inputs": [
1141
- {
1142
- "internalType": "bytes4",
1143
- "name": "_interfaceId",
1144
- "type": "bytes4"
1145
- }
1146
- ],
1147
- "name": "supportsInterface",
1148
- "outputs": [
1149
- {
1150
- "internalType": "bool",
1151
- "name": "",
1152
- "type": "bool"
1153
- }
1154
- ],
1155
- "stateMutability": "view",
1156
- "type": "function"
1157
- },
1158
- {
1159
- "inputs": [
1160
- {
1161
- "internalType": "address",
1162
- "name": "newOwner",
1163
- "type": "address"
1164
- }
1165
- ],
1166
- "name": "transferOwnership",
1167
- "outputs": [],
1168
- "stateMutability": "nonpayable",
1169
- "type": "function"
1170
- },
1171
- {
1172
- "inputs": [],
1173
- "name": "treasury",
1174
- "outputs": [
1175
- {
1176
- "internalType": "address",
1177
- "name": "",
1178
- "type": "address"
1179
- }
1180
- ],
1181
- "stateMutability": "view",
1182
- "type": "function"
1183
- },
1184
- {
1185
- "inputs": [],
1186
- "name": "version",
1187
- "outputs": [
1188
- {
1189
- "internalType": "uint64",
1190
- "name": "major",
1191
- "type": "uint64"
1192
- },
1193
- {
1194
- "internalType": "uint8",
1195
- "name": "minor",
1196
- "type": "uint8"
1197
- },
1198
- {
1199
- "internalType": "uint8",
1200
- "name": "endpointVersion",
1201
- "type": "uint8"
1202
- }
1203
- ],
1204
- "stateMutability": "pure",
1205
- "type": "function"
1206
- },
1207
- {
1208
- "inputs": [
1209
- {
1210
- "internalType": "address",
1211
- "name": "_to",
1212
- "type": "address"
1213
- },
1214
- {
1215
- "internalType": "uint256",
1216
- "name": "_amount",
1217
- "type": "uint256"
1218
- }
1219
- ],
1220
- "name": "withdrawFee",
1221
- "outputs": [],
1222
- "stateMutability": "nonpayable",
1223
- "type": "function"
1224
- },
1225
- {
1226
- "inputs": [
1227
- {
1228
- "internalType": "address",
1229
- "name": "_lzToken",
1230
- "type": "address"
1231
- },
1232
- {
1233
- "internalType": "address",
1234
- "name": "_to",
1235
- "type": "address"
1236
- },
1237
- {
1238
- "internalType": "uint256",
1239
- "name": "_amount",
1240
- "type": "uint256"
1241
- }
1242
- ],
1243
- "name": "withdrawLzTokenFee",
1244
- "outputs": [],
1245
- "stateMutability": "nonpayable",
1246
- "type": "function"
1247
- },
1248
- {
1249
- "stateMutability": "payable",
1250
- "type": "receive"
1251
- }
1252
- ],
1253
- "transactionHash": "0x054a237451c173a4d36e7d3136916695838d25883234e8944cf53f74cbddbef0",
1254
- "receipt": {
1255
- "to": null,
1256
- "from": "0xc13b65f7c53Cd6db2EA205a4b574b4a0858720A6",
1257
- "contractAddress": "0x45841dd1ca50265Da7614fC43A361e526c0e6160",
1258
- "transactionIndex": 1,
1259
- "gasUsed": "5045474",
1260
- "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000100000000004000000000000000000000000020000000000000400000000000000000000000000000001000000000000000000000000000000000000030000000000000000000800000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000002000000000000000000000000000000000000000",
1261
- "blockHash": "0x05e934ce1d62cab6c5f7c14a217b1013b6235c72d978740855ac84a094a51ab0",
1262
- "transactionHash": "0x054a237451c173a4d36e7d3136916695838d25883234e8944cf53f74cbddbef0",
1263
- "logs": [
1264
- {
1265
- "transactionIndex": 1,
1266
- "blockNumber": 639669,
1267
- "transactionHash": "0x054a237451c173a4d36e7d3136916695838d25883234e8944cf53f74cbddbef0",
1268
- "address": "0x45841dd1ca50265Da7614fC43A361e526c0e6160",
1269
- "topics": [
1270
- "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0",
1271
- "0x0000000000000000000000000000000000000000000000000000000000000000",
1272
- "0x000000000000000000000000c13b65f7c53cd6db2ea205a4b574b4a0858720a6"
1273
- ],
1274
- "data": "0x",
1275
- "logIndex": 0,
1276
- "blockHash": "0x05e934ce1d62cab6c5f7c14a217b1013b6235c72d978740855ac84a094a51ab0"
1277
- }
1278
- ],
1279
- "blockNumber": 639669,
1280
- "cumulativeGasUsed": "5109507",
1281
- "status": 1,
1282
- "byzantium": true
1283
- },
1284
- "args": [
1285
- "0x464570adA09869d8741132183721B4f0769a0287",
1286
- 200000,
1287
- "1000000000000000000"
1288
- ],
1289
- "numDeployments": 1,
1290
- "solcInputHash": "75e7f9cf5f95452bd03e6f5a21ad7ccd",
1291
- "bytecode": "0x60e06040523480156200001157600080fd5b5060405162005bb938038062005bb9833981016040819052620000349162000129565b82828282836001600160a01b031663416ecebf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000077573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200009d91906200016e565b6001600160a01b03821660805263ffffffff811660a0528383620000c133620000d9565b60c091909152600255506200019d9650505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806000606084860312156200013f57600080fd5b83516001600160a01b03811681146200015757600080fd5b602085015160409095015190969495509392505050565b6000602082840312156200018157600080fd5b815163ffffffff811681146200019657600080fd5b9392505050565b60805160a05160c0516159d3620001e66000396000818161203e01526128d8015260005050600081816107ea0152818161092f01528181610e7f015261176c01526159d36000f3fe6080604052600436106101845760003560e01c806361d027b3116100d6578063d15b0d491161007f578063f2fde38b11610059578063f2fde38b14610513578063faaebd2114610533578063fd9be5221461056e57600080fd5b8063d15b0d49146104a6578063d80e9bd9146104c6578063f0f44260146104f357600080fd5b80638da5cb5b116100b05780638da5cb5b1461042e5780639c33abf714610459578063c14c43491461048657600080fd5b806361d027b3146103a75780636750cd4c146103f9578063715018a61461041957600080fd5b806329460b0b1161013857806343ea4fa91161011257806343ea4fa9146102cb5780634d963200146102eb57806354fd4d501461037a57600080fd5b806329460b0b1461025057806339e3f938146102705780634389e58f1461029d57600080fd5b80631881d94d116101695780631881d94d146101f2578063200175f71461020e57806320efd7221461023057600080fd5b806301ffc9a714610190578063188183f4146101c557600080fd5b3661018b57005b600080fd5b34801561019c57600080fd5b506101b06101ab36600461453b565b61058e565b60405190151581526020015b60405180910390f35b3480156101d157600080fd5b506101e56101e03660046145cc565b610673565b6040516101bc9190614605565b3480156101fe57600080fd5b5060006040516101bc9190614638565b34801561021a57600080fd5b5061022e610229366004614679565b610780565b005b34801561023c57600080fd5b5061022e61024b3660046146ff565b61092d565b34801561025c57600080fd5b5061022e61026b366004614754565b610ae1565b34801561027c57600080fd5b5061029061028b3660046145cc565b610cc6565b6040516101bc919061485a565b3480156102a957600080fd5b506102bd6102b8366004614886565b610e67565b6040516101bc9291906149a4565b3480156102d757600080fd5b506102906102e63660046145cc565b610f61565b3480156102f757600080fd5b506103496103063660046145cc565b600460209081526000928352604080842090915290825290205463ffffffff811690640100000000900473ffffffffffffffffffffffffffffffffffffffff1682565b6040805163ffffffff909316835273ffffffffffffffffffffffffffffffffffffffff9091166020830152016101bc565b34801561038657600080fd5b506040805160038152600060208201526002918101919091526060016101bc565b3480156103b357600080fd5b506003546103d49073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101bc565b34801561040557600080fd5b506101b06104143660046149c8565b61131b565b34801561042557600080fd5b5061022e611326565b34801561043a57600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff166103d4565b34801561046557600080fd5b506104796104743660046149e5565b61133a565b6040516101bc9190614a30565b34801561049257600080fd5b5061022e6104a1366004614a43565b611421565b3480156104b257600080fd5b5061022e6104c1366004614ab8565b611599565b3480156104d257600080fd5b506104e66104e1366004614886565b611627565b6040516101bc9190614ad1565b3480156104ff57600080fd5b5061022e61050e366004614ae8565b611697565b34801561051f57600080fd5b5061022e61052e366004614ae8565b6116ab565b34801561053f57600080fd5b5061056061054e366004614ae8565b60056020526000908152604090205481565b6040519081526020016101bc565b34801561057a57600080fd5b5061022e610589366004614b05565b61175f565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f97f0258400000000000000000000000000000000000000000000000000000000148061062157507fffffffff0000000000000000000000000000000000000000000000000000000082167fb6e9ace300000000000000000000000000000000000000000000000000000000145b8061066d57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b604080518082019091526000808252602082015263ffffffff80831660008181527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8916845260048352818420948452939091528120805492939092169081900361070457825463ffffffff16610706565b805b63ffffffff1684528154640100000000900473ffffffffffffffffffffffffffffffffffffffff1680610758578354640100000000900473ffffffffffffffffffffffffffffffffffffffff1661075a565b805b73ffffffffffffffffffffffffffffffffffffffff166020860152509295945050505050565b60035473ffffffffffffffffffffffffffffffffffffffff1633146107d1576040517f885762a700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610853573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108779190614b31565b73ffffffffffffffffffffffffffffffffffffffff16036108c4576040517fe695d04400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108cf838383611859565b6040805173ffffffffffffffffffffffffffffffffffffffff8086168252841660208201529081018290527fe081464b7278501267de69fa85b7b9560b0ae05d5fbfaab9b1986c70356e2efe906060015b60405180910390a1505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16331461099c576040517f467409c300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b81811015610adb57368383838181106109ba576109ba614b4e565b90506020028101906109cc9190614b7d565b90506109e36109de60208301836149c8565b6118cc565b60016109f560408301602084016149c8565b63ffffffff1603610a3557610a30610a1060208301836149c8565b86610a1e6040850185614bbb565b810190610a2b9190614cea565b611913565b610ad2565b6002610a4760408301602084016149c8565b63ffffffff1603610a8257610a30610a6260208301836149c8565b86610a706040850185614bbb565b810190610a7d9190614ea3565b6119c0565b610a9260408201602083016149c8565b6040517fba97c1fa00000000000000000000000000000000000000000000000000000000815263ffffffff90911660048201526024015b60405180910390fd5b5060010161099f565b50505050565b610ae9611a09565b60005b81811015610c885736838383818110610b0757610b07614b4e565b9050602002810190610b199190614ed8565b905060ff610b2a6020830183614f0c565b610b3b906040810190602001614f40565b60ff1603610b75576040517f83aa17da00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60ff610b846020830183614f0c565b610b95906060810190604001614f40565b60ff1603610bcf576040517f4221136600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff610be56020830183614f0c565b610bf3906020810190614f5b565b67ffffffffffffffff1603610c34576040517f503667ae00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c52610c446020830183614f0c565b610c4d90614f76565b611a8a565b610c7f6000610c6460208401846149c8565b610c716020850185614f0c565b610c7a90614f76565b611adb565b50600101610aec565b507faaf3aaa0c11056e86ac56eb653e25b005ca1a7d4dcd21ba24647f7ab63f3b5608282604051610cba929190615034565b60405180910390a15050565b6040805160c0810182526000808252602082018190529181018290526060808201929092526080810182905260a081019190915273ffffffffffffffffffffffffffffffffffffffff8316600090815260016020818152604080842063ffffffff87168552825292839020835160c081018552815467ffffffffffffffff8116825260ff680100000000000000008204811683860152690100000000000000000082048116838801526a01000000000000000000009091041660608201529281018054855181850281018501909652808652939491936080860193830182828015610de757602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610dbc575b5050505050815260200160028201805480602002602001604051908101604052809291908181526020018280548015610e5657602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610e2b575b505050505081525050905092915050565b604080518082019091526000808252602082015260607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163314610eec576040517f467409c300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080610efa888888611e6f565b9092509050600080610f2c610f1560608c0160408d01614ae8565b610f2560808d0160608e016149c8565b858a611f3c565b9092509050610f3b8284615203565b604080518082019091529081526020810191909152945091925050505b94509492505050565b6040805160c0810182526000808252602080830182905282840182905260608084018390526080840181905260a084015263ffffffff85168083527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49825284832073ffffffffffffffffffffffffffffffffffffffff88168452600183528584209184529152929020805491929167ffffffffffffffff168061101157825467ffffffffffffffff168452611030565b67ffffffffffffffff818116146110305767ffffffffffffffff811684525b815468010000000000000000900460ff166110e657825468010000000000000000900460ff16156110e157826001018054806020026020016040519081016040528092919081815260200182805480156110c057602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311611095575b50505050506080850152825468010000000000000000900460ff1660208501525b611184565b815468010000000000000000900460ff90811614611184578160010180548060200260200160405190810160405280929190818152602001828054801561116357602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311611138575b50505050506080850152815468010000000000000000900460ff1660208501525b81546901000000000000000000900460ff166112535782546901000000000000000000900460ff161561124e578260020180548060200260200160405190810160405280929190818152602001828054801561121657602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116111eb575b505050505060a0850152825460ff69010000000000000000008204811660408701526a01000000000000000000009091041660608501525b611309565b81546901000000000000000000900460ff9081161461130957816002018054806020026020016040519081016040528092919081815260200182805480156112d157602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116112a6575b505050505060a0850152815460ff69010000000000000000008204811660408701526a01000000000000000000009091041660608501525b61131284611a8a565b50505092915050565b600061066d826120ca565b61132e611a09565b6113386000612131565b565b60607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff63ffffffff831601611399576113738385610673565b6040516020016113839190614605565b604051602081830303815290604052905061141a565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe63ffffffff8316016113e0576113d08385610f61565b604051602001611383919061485a565b6040517fba97c1fa00000000000000000000000000000000000000000000000000000000815263ffffffff83166004820152602401610ac9565b9392505050565b611429611a09565b60005b81811015611567573683838381811061144757611447614b4e565b60609081029290920192506000916114659150830160408401614ae8565b73ffffffffffffffffffffffffffffffffffffffff16036114b2576040517f20e9d05a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6114c260408201602083016149c8565b63ffffffff16600003611501576040517f49cfac4300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808052600460209081528201907f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec9061153c83856149c8565b63ffffffff168152602081019190915260400160002061155c8282615216565b50505060010161142c565b507f2b001e1c6683bf79cc52891bd7215b204c787d18134fc7f3d21b4f32a49e47de8282604051610cba9291906152ae565b6115a1611a09565b6002548111156115eb576002546040517f34084fb8000000000000000000000000000000000000000000000000000000008152610ac9918391600401918252602082015260400190565b60028190556040518181527f491ff913b5444f4136b0d4075f020cfe3a5f60de926ec0b091612401a22b7842906020015b60405180910390a150565b60408051808201909152600080825260208201526000806116786116516060890160408a01614ae8565b61166160808a0160608b016149c8565b61166e60c08b018b614bbb565b9050878a8a6121a6565b604080518082019091529182526020820152925050505b949350505050565b61169f611a09565b6116a8816122ac565b50565b6116b3611a09565b73ffffffffffffffffffffffffffffffffffffffff8116611756576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610ac9565b6116a881612131565b6117688161231f565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f99190614b31565b9050611806818484612389565b6040805133815273ffffffffffffffffffffffffffffffffffffffff851660208201529081018390527f820b7fd51bf79c54350bab98400651b3314ff6e79b33528821871d94a666988390606001610920565b73ffffffffffffffffffffffffffffffffffffffff82166118a6576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6118c773ffffffffffffffffffffffffffffffffffffffff841683836123b9565b505050565b6118d5816120ca565b6116a8576040517ff0c10d0400000000000000000000000000000000000000000000000000000000815263ffffffff82166004820152602401610ac9565b73ffffffffffffffffffffffffffffffffffffffff808316600090815260046020908152604080832063ffffffff8089168552908352928190208551815493870151909516640100000000027fffffffffffffffff0000000000000000000000000000000000000000000000009093169490931693909317179055517f779cb2dd9d2bb1be1737d05435d744facbfb84a2a4912e21379d39beddcdc805906109209084908690859061533b565b6119cb828483611adb565b6119d58284610f61565b507f82118522aa536ac0e96cc5c689407ae42b89d592aa133890a01f1509842f508182848360405161092093929190615397565b60005473ffffffffffffffffffffffffffffffffffffffff163314611338576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ac9565b602081015160ff16158015611aa45750606081015160ff16155b156116a8576040517fce2c375100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602081015160ff9081161480611af65750602081015160ff16155b15611b3d5760808101515115611b38576040517f83aa17da00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611bbc565b806020015160ff16816080015151141580611b7857506002611b61600160ff6153d2565b611b6b91906153eb565b60ff16816020015160ff16115b15611baf576040517f83aa17da00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611bbc8160800151612446565b604081015160ff9081161480611bd75750604081015160ff16155b15611c5d5760a08101515115611c19576040517f4221136600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606081015160ff1615611c58576040517f38682fa900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611d34565b806040015160ff168160a0015151141580611c9857506002611c81600160ff6153d2565b611c8b91906153eb565b60ff16816040015160ff16115b15611ccf576040517f4221136600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606081015160ff161580611cf05750806040015160ff16816060015160ff16115b15611d27576040517f38682fa900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611d348160a00151612446565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020818152604080842063ffffffff87168552825292839020845181548684015195870151606088015167ffffffffffffffff9093167fffffffffffffffffffffffffffffffffffffffffffffff000000000000000000909216919091176801000000000000000060ff97881602177fffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffff166901000000000000000000918716919091027fffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff16176a0100000000000000000000959091169490940293909317835560808401518051859493611e4b939085019201906144a5565b5060a08201518051611e679160028401916020909101906144a5565b505050505050565b60606000806000611e8086866124e0565b90925090506000611eaa611e9a60608a0160408b01614ae8565b6101e060808b0160608c016149c8565b90506000611ebb60c08a018a614bbb565b90509050611ed381836000015163ffffffff166124f9565b6020820151611f0390611eec60808c0160608d016149c8565b611efc60608d0160408e01614ae8565b8488612541565b611f0d9086615203565b9450600080611f1c8b8661267a565b9092509050611f2b8288615203565b909b909a5098505050505050505050565b600354600090819073ffffffffffffffffffffffffffffffffffffffff1615610f585760405173ffffffffffffffffffffffffffffffffffffffff8716602482015263ffffffff8616604482015260648101859052831515608482015260009060a401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fd51c54860000000000000000000000000000000000000000000000000000000017905260035491925060009182916120669173ffffffffffffffffffffffffffffffffffffffff16907f00000000000000000000000000000000000000000000000000000000000000009084908761269d565b915091506120768787848461274e565b909550935084156120be5760035473ffffffffffffffffffffffffffffffffffffffff16600090815260056020526040812080548792906120b8908490615203565b90915550505b50505094509492505050565b63ffffffff811660009081527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb4960205260408120805468010000000000000000900460ff1615158061141a5750546a0100000000000000000000900460ff16151592915050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806000806121b686866124e0565b9150915060006121c78b8b846127c9565b905060006121d58c8c610673565b90506121eb8a826000015163ffffffff166124f9565b806020015173ffffffffffffffffffffffffffffffffffffffff1663709eb6648c8e8d886040518563ffffffff1660e01b815260040161222e9493929190615434565b602060405180830381865afa15801561224b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061226f919061547f565b6122799083615203565b915060008061228a8e8e868e6127d6565b90925090506122998285615203565b9e909d509b505050505050505050505050565b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527f3c864541ef71378c6229510ed90f376565ee42d9c5e0904a984a9e863e6db44f9060200161161c565b3360009081526005602052604090205480821115612373576040517f34084fb80000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610ac9565b3360009081526005602052604090209190039055565b73ffffffffffffffffffffffffffffffffffffffff83166123ae576118c7828261291a565b6118c7838383611859565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526118c7908490612a20565b6000805b82518110156118c757600083828151811061246757612467614b4e565b602002602001015190508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16116124d6576040517f447516e100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b915060010161244a565b6060806124ed8484612b2f565b915091505b9250929050565b8082111561253d576040517fc667af3e0000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610ac9565b5050565b6040517f717e8a4200000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff87169063717e8a429061259c908890889088908890600401615434565b6020604051808303816000875af11580156125bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125df919061547f565b905080156126225773ffffffffffffffffffffffffffffffffffffffff86166000908152600560205260408120805483929061261c908490615203565b90915550505b6040805173ffffffffffffffffffffffffffffffffffffffff88168152602081018390527f61ed099e74a97a1d7f8bb0952a88ca8b7b8ebd00c126ea04671f92a81213318a910160405180910390a195945050505050565b60006060612692600561268c86615526565b85612c1c565b909590945092505050565b60006060863b8083036126c457604080516000808252602082019092529250925050612744565b60008060008761ffff1667ffffffffffffffff8111156126e6576126e6614c20565b6040519080825280601f01601f191660200182016040528015612710576020820181803683370190505b509050600080885160208a018c8f8ff191503d925087831115612731578792505b828152826000602083013e909450925050505b9550959350505050565b60008083158061275f575082516020115b1561276f57506000905080610f58565b600083806020019051810190612785919061547f565b90508515612795578091506127bf565b600060025488116127a8576002546127aa565b875b90508082116127b957816127bb565b805b9350505b5094509492505050565b600061168f848484612d78565b600354600090819073ffffffffffffffffffffffffffffffffffffffff1615610f585760405173ffffffffffffffffffffffffffffffffffffffff8716602482015263ffffffff8616604482015260648101859052831515608482015260009060a401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fd42442210000000000000000000000000000000000000000000000000000000017905260035491925060009182916128fe9173ffffffffffffffffffffffffffffffffffffffff16907f00000000000000000000000000000000000000000000000000000000000000009086612df2565b9150915061290e8787848461274e565b94509450505050610f58565b73ffffffffffffffffffffffffffffffffffffffff8216612967576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d80600081146129c1576040519150601f19603f3d011682016040523d82523d6000602084013e6129c6565b606091505b50509050806118c7576040517f465bc83400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101839052604401610ac9565b6000612a82826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16612e9f9092919063ffffffff16565b9050805160001480612aa3575080806020019051810190612aa391906155c4565b6118c7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610ac9565b606080600080612b3f8686612eae565b915091508051600003612b9757604080516000808252602082019092528391612b8b565b604080518082019091526000815260606020820152815260200190600190039081612b635790505b509350935050506124f2565b604080516001808252818301909252600091816020015b604080518082019091526000815260606020820152815260200190600190039081612bae5790505090506040518060400160405280600260ff1681526020018381525081600081518110612c0457612c04614b4e565b60209081029190910101529196919550909350505050565b600060606000612c2b856130ef565b90506000612c38866131d5565b805160208201206060880151604089015192935090916000612c5a8284610f61565b905060008951600014612c8b5789600081518110612c7a57612c7a614b4e565b602002602001015160200151612c9c565b604051806020016040528060008152505b90506060612cfc8d846040518060a001604052808963ffffffff1681526020018c81526020018a8152602001876000015167ffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff16815250856131f2565b604051919b509150612d1490899089906020016155e1565b60405160208183030381529060405298507f07ea52d82345d6e838192107d8fd7123d9c2ec8e916cd0aad13fd2b60db2464483608001518460a0015183604051612d6093929190615610565b60405180910390a15050505050505050935093915050565b600080612d858585610f61565b905060008351600014612db65783600081518110612da557612da5614b4e565b602002602001015160200151612dc7565b604051806020016040528060008152505b9050600080612dd5836134de565b91509150612de684888a8585613782565b98975050505050505050565b60006060853b808303612e1957604080516000808252602082019092529250925050610f58565b60008060008761ffff1667ffffffffffffffff811115612e3b57612e3b614c20565b6040519080825280601f01601f191660200182016040528015612e65576020820181803683370190505b509050600080885160208a018d8dfa91503d925087831115612e85578792505b828152826000602083013e90999098509650505050505050565b606061168f8484600085613940565b6060806002831015612eef576040517f6592671c00000000000000000000000000000000000000000000000000000000815260006004820152602401610ac9565b6000612efe600282868861566e565b612f0791615698565b60f01c905060027ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd82016130d8578060005b86831015613064576000612f5260018501858a8c61566e565b612f5b916156e0565b60f81c90506000819003612f9e576040517f6780cfaf00000000000000000000000000000000000000000000000000000000815260006004820152602401610ac9565b8160ff16600003612fb157809150612fee565b8160ff168160ff1614612fee57366000612fcd86868c8e61566e565b91509150612fde8989868585613a59565b9099509750859450919250829150505b600184019360009061300590600301868b8d61566e565b61300e91615698565b60f01c90506000819003613051576040517f6592671c00000000000000000000000000000000000000000000000000000000815260048101869052602401610ac9565b8060020161ffff16850194505050612f39565b8287146130a0576040517f6592671c00000000000000000000000000000000000000000000000000000000815260048101849052602401610ac9565b60028711156130d1573660006130b885858b8d61566e565b915091506130c98888858585613a59565b909850965050505b50506130e6565b6130e3828787613bce565b93505b50509250929050565b8051602080830151604080850151606080870151608088015193517f01000000000000000000000000000000000000000000000000000000000000009681019690965260c09690961b7fffffffffffffffff00000000000000000000000000000000000000000000000016602186015260e093841b7fffffffff00000000000000000000000000000000000000000000000000000000908116602987015273ffffffffffffffffffffffffffffffffffffffff909216602d8601529490921b909116604d83015260518201526071015b6040516020818303038152906040529050919050565b60608160a001518260c001516040516020016131bf929190615726565b60006060600080613202856134de565b9150915060008760400151886020015161321c919061574c565b90508060ff1667ffffffffffffffff81111561323a5761323a614c20565b604051908082528060200260200182016040528015613263578160200160208202803683370190505b50935060005b8160ff168160ff1610156134d1576000896020015160ff168260ff16106132be5760a08a015160208b015161329e90846153d2565b60ff16815181106132b1576132b1614b4e565b60200260200101516132e0565b89608001518260ff16815181106132d7576132d7614b4e565b60200260200101515b60408051602081019091526000808252919250905b855181101561334d578360ff1686828151811061331457613314614b4e565b602002602001015160ff16036133455786818151811061333657613336614b4e565b6020026020010151915061334d565b6001016132f5565b506040517f95d376d700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316906395d376d7906133a2908d908590600401615765565b6020604051808303816000875af11580156133c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133e5919061547f565b878460ff16815181106133fa576133fa614b4e565b6020026020010181815250506000878460ff168151811061341d5761341d614b4e565b602002602001015111156134c757868360ff168151811061344057613440614b4e565b60200260200101518c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546134959190615203565b92505081905550868360ff16815181106134b1576134b1614b4e565b6020026020010151886134c49190615203565b97505b5050600101613269565b5050505094509492505050565b60608082516000036134ef57915091565b60006134fa84613e4d565b90508060ff166001036135ac5760408051600180825281830190925290816020015b606081526020019060019003908161351c579050509250838360008151811061354757613547614b4e565b60209081029190910101526040805160018082528183019092529081602001602082028036833701905050915061357f846003613f72565b8260008151811061359257613592614b4e565b602002602001019060ff16908160ff168152505050915091565b8060ff1667ffffffffffffffff8111156135c8576135c8614c20565b6040519080825280602002602001820160405280156135f1578160200160208202803683370190505b5091508060ff1667ffffffffffffffff81111561361057613610614c20565b60405190808252806020026020018201604052801561364357816020015b606081526020019060019003908161362e5790505b50925060008060ff5b86518310156136f75760019092019160006136678885613ff2565b600294909401939050600061367c8986613f72565b90508260ff1660ff03613691578092506136e8565b8260ff168160ff16146136e8577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8486030160006136d08b8784614072565b90506136de8a8a87846141ec565b5093909301929150815b5061ffff16929092019161364c565b8183036000613707898584614072565b9050613715888885846141ec565b60005b8660ff168160ff16101561377657878160ff168151811061373b5761373b614b4e565b6020908102919091010180517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0160ff169052600101613718565b50505050505050915091565b60008086604001518760200151613799919061574c565b905060005b8160ff168160ff161015613935576000886020015160ff168260ff16106137f35760a089015160208a01516137d390846153d2565b60ff16815181106137e6576137e6614b4e565b6020026020010151613815565b88608001518260ff168151811061380c5761380c614b4e565b60200260200101515b60408051602081019091526000808252919250905b8651811015613882578360ff1687828151811061384957613849614b4e565b602002602001015160ff160361387a5787818151811061386b5761386b614b4e565b60200260200101519150613882565b60010161382a565b5089516040517f30bb3aac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416916330bb3aac916138db918d918d9087906004016157e3565b602060405180830381865afa1580156138f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061391c919061547f565b6139269086615203565b9450505080600101905061379e565b505095945050505050565b6060824710156139d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610ac9565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516139fb919061582e565b60006040518083038185875af1925050503d8060008114613a38576040519150601f19603f3d011682016040523d82523d6000602084013e613a3d565b606091505b5091509150613a4e8783838761431b565b979650505050505050565b6060807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff861601613af457865115613ab657868484604051602001613aa293929190615840565b604051602081830303815290604052613aed565b83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050505b9650613bc3565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe60ff861601613b8c57855115613b4e57858484604051602001613b3a93929190615840565b604051602081830303815290604052613b85565b83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050505b9550613bc3565b6040517f6780cfaf00000000000000000000000000000000000000000000000000000000815260ff86166004820152602401610ac9565b509495939450505050565b60607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61ffff851601613cf45760228214613c35576040517f0dc652a800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000613c56613c4860226002868861566e565b613c5191615868565b6143bb565b6040517f0100000000000000000000000000000000000000000000000000000000000000602082018190527e11000000000000000000000000000000000000000000000000000000000000602183015260238201527fffffffffffffffffffffffffffffffff00000000000000000000000000000000608083901b16602482015290915060340160405160208183030381529060405291505061141a565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe61ffff851601613e1557604282111580613d2f5750606282115b15613d66576040517fc0927c5600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000613d79613c4860226002868861566e565b90506000613d8e613c4860426022878961566e565b905060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbe8501613dc2866042818a61566e565b613dcb91615868565b60405160086020938403029190911c9250613dfc916001916011918391889183916031916002918b918b91016158a4565b604051602081830303815290604052935050505061141a565b6040517f4170513000000000000000000000000000000000000000000000000000000000815261ffff85166004820152602401610ac9565b600080805b8351821015613f2e576001909101906000613e6d8584613ff2565b905060028301925060028161ffff161015613eb7576040517f04eb6e0c00000000000000000000000000000000000000000000000000000000815260048101849052602401610ac9565b6000613ec38685613f72565b90508060ff1660ff03613f02576040517fd3d3d9bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600160ff82161b8316613f1f5760019485019460ff82161b831792505b5061ffff169190910190613e52565b83518214613f6b576040517f04eb6e0c00000000000000000000000000000000000000000000000000000000815260048101839052602401610ac9565b5050919050565b6000613f7f826001615203565b83511015613fe9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f746f55696e74385f6f75744f66426f756e6473000000000000000000000000006044820152606401610ac9565b50016001015190565b6000613fff826002615203565b83511015614069576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f746f55696e7431365f6f75744f66426f756e64730000000000000000000000006044820152606401610ac9565b50016002015190565b60608161408081601f615203565b10156140e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401610ac9565b6140f28284615203565b8451101561415c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e64730000000000000000000000000000006044820152606401610ac9565b60608215801561417b57604051915060008252602082016040526141e3565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156141b457805183526020928301920161419c565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b8160ff1660ff03614229576040517fd3d3d9bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061423683600161574c565b905060005b8451811015611e6757600085828151811061425857614258614b4e565b602002602001015190508060ff168360ff16036142cd5786828151811061428157614281614b4e565b60200260200101518460405160200161429b9291906155e1565b6040516020818303038152906040528783815181106142bc576142bc614b4e565b602002602001018190525050611e67565b8060ff1660000361431257828683815181106142eb576142eb614b4e565b602002602001019060ff16908160ff1681525050838783815181106142bc576142bc614b4e565b5060010161423b565b606083156143b15782516000036143aa5773ffffffffffffffffffffffffffffffffffffffff85163b6143aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610ac9565b508161168f565b61168f8383614461565b60006fffffffffffffffffffffffffffffffff82111561445d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201527f32382062697473000000000000000000000000000000000000000000000000006064820152608401610ac9565b5090565b8151156144715781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac99190614a30565b82805482825590600052602060002090810192821561451f579160200282015b8281111561451f57825182547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9091161782556020909201916001909101906144c5565b5061445d9291505b8082111561445d5760008155600101614527565b60006020828403121561454d57600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461141a57600080fd5b73ffffffffffffffffffffffffffffffffffffffff811681146116a857600080fd5b80356145aa8161457d565b919050565b63ffffffff811681146116a857600080fd5b80356145aa816145af565b600080604083850312156145df57600080fd5b82356145ea8161457d565b915060208301356145fa816145af565b809150509250929050565b815163ffffffff16815260208083015173ffffffffffffffffffffffffffffffffffffffff16908201526040810161066d565b6020810160038310614673577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b60008060006060848603121561468e57600080fd5b83356146998161457d565b925060208401356146a98161457d565b929592945050506040919091013590565b60008083601f8401126146cc57600080fd5b50813567ffffffffffffffff8111156146e457600080fd5b6020830191508360208260051b85010111156124f257600080fd5b60008060006040848603121561471457600080fd5b833561471f8161457d565b9250602084013567ffffffffffffffff81111561473b57600080fd5b614747868287016146ba565b9497909650939450505050565b6000806020838503121561476757600080fd5b823567ffffffffffffffff81111561477e57600080fd5b61478a858286016146ba565b90969095509350505050565b60008151808452602080850194506020840160005b838110156147dd57815173ffffffffffffffffffffffffffffffffffffffff16875295820195908201906001016147ab565b509495945050505050565b67ffffffffffffffff815116825260ff602082015116602083015260ff604082015116604083015260ff60608201511660608301526000608082015160c0608085015261483860c0850182614796565b905060a083015184820360a08601526148518282614796565b95945050505050565b60208152600061141a60208301846147e8565b80151581146116a857600080fd5b80356145aa8161486d565b6000806000806060858703121561489c57600080fd5b843567ffffffffffffffff808211156148b457600080fd5b9086019060e082890312156148c857600080fd5b909450602086013590808211156148de57600080fd5b818701915087601f8301126148f257600080fd5b81358181111561490157600080fd5b88602082850101111561491357600080fd5b60208301955080945050505061492b6040860161487b565b905092959194509250565b60005b83811015614951578181015183820152602001614939565b50506000910152565b60008151808452614972816020860160208601614936565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b825181526020808401519082015260606040820152600061168f606083018461495a565b6000602082840312156149da57600080fd5b813561141a816145af565b6000806000606084860312156149fa57600080fd5b8335614a05816145af565b92506020840135614a158161457d565b91506040840135614a25816145af565b809150509250925092565b60208152600061141a602083018461495a565b60008060208385031215614a5657600080fd5b823567ffffffffffffffff80821115614a6e57600080fd5b818501915085601f830112614a8257600080fd5b813581811115614a9157600080fd5b866020606083028501011115614aa657600080fd5b60209290920196919550909350505050565b600060208284031215614aca57600080fd5b5035919050565b81518152602080830151908201526040810161066d565b600060208284031215614afa57600080fd5b813561141a8161457d565b60008060408385031215614b1857600080fd5b8235614b238161457d565b946020939093013593505050565b600060208284031215614b4357600080fd5b815161141a8161457d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112614bb157600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614bf057600080fd5b83018035915067ffffffffffffffff821115614c0b57600080fd5b6020019150368190038213156124f257600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160c0810167ffffffffffffffff81118282101715614c7257614c72614c20565b60405290565b60405160e0810167ffffffffffffffff81118282101715614c7257614c72614c20565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715614ce257614ce2614c20565b604052919050565b600060408284031215614cfc57600080fd5b6040516040810181811067ffffffffffffffff82111715614d1f57614d1f614c20565b6040528235614d2d816145af565b81526020830135614d3d8161457d565b60208201529392505050565b803567ffffffffffffffff811681146145aa57600080fd5b803560ff811681146145aa57600080fd5b600082601f830112614d8357600080fd5b8135602067ffffffffffffffff821115614d9f57614d9f614c20565b8160051b614dae828201614c9b565b9283528481018201928281019087851115614dc857600080fd5b83870192505b84831015613a4e578235614de18161457d565b82529183019190830190614dce565b600060c08284031215614e0257600080fd5b614e0a614c4f565b9050614e1582614d49565b8152614e2360208301614d61565b6020820152614e3460408301614d61565b6040820152614e4560608301614d61565b6060820152608082013567ffffffffffffffff80821115614e6557600080fd5b614e7185838601614d72565b608084015260a0840135915080821115614e8a57600080fd5b50614e9784828501614d72565b60a08301525092915050565b600060208284031215614eb557600080fd5b813567ffffffffffffffff811115614ecc57600080fd5b61168f84828501614df0565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112614bb157600080fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff41833603018112614bb157600080fd5b600060208284031215614f5257600080fd5b61141a82614d61565b600060208284031215614f6d57600080fd5b61141a82614d49565b600061066d3683614df0565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614fb757600080fd5b830160208101925035905067ffffffffffffffff811115614fd757600080fd5b8060051b36038213156124f257600080fd5b8183526000602080850194508260005b858110156147dd57813561500c8161457d565b73ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101614ff9565b60208082528181018390526000906040808401600586901b8501820187855b888110156151c6577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08089850301855282357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc18c36030181126150b557600080fd5b8b0180356150c2816145af565b63ffffffff16855280880135368290037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff410181126150ff57600080fd5b8589018890520167ffffffffffffffff61511882614d49565b1687860152615128888201614d61565b606060ff8083168289015261513e8a8501614d61565b92506080818416818a0152615154838601614d61565b935060a09250818416838a015261516d81860186614f82565b60c08b81015294509150615188905061010089018483614fe9565b92505061519781840184614f82565b93509050838783030160e08801526151b0828483614fe9565b978a019796505050928701925050600101615053565b509098975050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561066d5761066d6151d4565b8135615221816145af565b63ffffffff811690508154817fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000821617835560208401356152618161457d565b77ffffffffffffffffffffffffffffffffffffffff000000008160201b16837fffffffffffffffff0000000000000000000000000000000000000000000000008416171784555050505050565b6020808252818101839052600090604080840186845b8781101561532e5781356152d7816145af565b63ffffffff908116845282860135906152ef826145af565b1683860152818401356153018161457d565b73ffffffffffffffffffffffffffffffffffffffff168385015260609283019291909101906001016152c4565b5090979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff8416815263ffffffff831660208201526080810161168f6040830184805163ffffffff16825260209081015173ffffffffffffffffffffffffffffffffffffffff16910152565b73ffffffffffffffffffffffffffffffffffffffff8416815263ffffffff8316602082015260606040820152600061485160608301846147e8565b60ff828116828216039081111561066d5761066d6151d4565b600060ff831680615425577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b8060ff84160491505092915050565b63ffffffff8516815273ffffffffffffffffffffffffffffffffffffffff84166020820152826040820152608060608201526000615475608083018461495a565b9695505050505050565b60006020828403121561549157600080fd5b5051919050565b600082601f8301126154a957600080fd5b813567ffffffffffffffff8111156154c3576154c3614c20565b6154f460207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601614c9b565b81815284602083860101111561550957600080fd5b816020850160208301376000918101602001919091529392505050565b600060e0823603121561553857600080fd5b615540614c78565b61554983614d49565b8152615557602084016145c1565b60208201526155686040840161459f565b6040820152615579606084016145c1565b60608201526080830135608082015260a083013560a082015260c083013567ffffffffffffffff8111156155ac57600080fd5b6155b836828601615498565b60c08301525092915050565b6000602082840312156155d657600080fd5b815161141a8161486d565b600083516155f3818460208801614936565b835190830190615607818360208801614936565b01949350505050565b6060815260006156236060830186614796565b602083820360208501526156378287614796565b84810360408601528551808252602080880194509091019060005b818110156151c657845183529383019391830191600101615652565b6000808585111561567e57600080fd5b8386111561568b57600080fd5b5050820193919092039150565b7fffff00000000000000000000000000000000000000000000000000000000000081358181169160028510156156d85780818660020360031b1b83161692505b505092915050565b7fff0000000000000000000000000000000000000000000000000000000000000081358181169160018510156156d85760019490940360031b84901b1690921692915050565b8281526000825161573e816020850160208701614936565b919091016020019392505050565b60ff818116838216019081111561066d5761066d6151d4565b6040815263ffffffff83511660408201526000602084015160a0606084015261579160e084018261495a565b90506040850151608084015267ffffffffffffffff60608601511660a084015273ffffffffffffffffffffffffffffffffffffffff60808601511660c08401528281036020840152614851818561495a565b63ffffffff8516815267ffffffffffffffff8416602082015273ffffffffffffffffffffffffffffffffffffffff83166040820152608060608201526000615475608083018461495a565b60008251614bb1818460208701614936565b60008451615852818460208901614936565b8201838582376000930192835250909392505050565b8035602083101561066d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b60007fff00000000000000000000000000000000000000000000000000000000000000808c60f81b1683527fffff000000000000000000000000000000000000000000000000000000000000808c60f01b166001850152818b60f81b1660038501527fffffffffffffffffffffffffffffffff000000000000000000000000000000008a60801b166004850152818960f81b166014850152808860f01b16601585015250808660f81b16601784015250615985601883018560801b7fffffffffffffffffffffffffffffffff00000000000000000000000000000000169052565b5060288101919091526048019897505050505050505056fea26469706673582212209d6003e9712782d1d5c8ab2194c4b93cabb63541a655b6ed7fe5179d8a2c9b4f64736f6c63430008160033",
1292
- "deployedBytecode": "0x6080604052600436106101845760003560e01c806361d027b3116100d6578063d15b0d491161007f578063f2fde38b11610059578063f2fde38b14610513578063faaebd2114610533578063fd9be5221461056e57600080fd5b8063d15b0d49146104a6578063d80e9bd9146104c6578063f0f44260146104f357600080fd5b80638da5cb5b116100b05780638da5cb5b1461042e5780639c33abf714610459578063c14c43491461048657600080fd5b806361d027b3146103a75780636750cd4c146103f9578063715018a61461041957600080fd5b806329460b0b1161013857806343ea4fa91161011257806343ea4fa9146102cb5780634d963200146102eb57806354fd4d501461037a57600080fd5b806329460b0b1461025057806339e3f938146102705780634389e58f1461029d57600080fd5b80631881d94d116101695780631881d94d146101f2578063200175f71461020e57806320efd7221461023057600080fd5b806301ffc9a714610190578063188183f4146101c557600080fd5b3661018b57005b600080fd5b34801561019c57600080fd5b506101b06101ab36600461453b565b61058e565b60405190151581526020015b60405180910390f35b3480156101d157600080fd5b506101e56101e03660046145cc565b610673565b6040516101bc9190614605565b3480156101fe57600080fd5b5060006040516101bc9190614638565b34801561021a57600080fd5b5061022e610229366004614679565b610780565b005b34801561023c57600080fd5b5061022e61024b3660046146ff565b61092d565b34801561025c57600080fd5b5061022e61026b366004614754565b610ae1565b34801561027c57600080fd5b5061029061028b3660046145cc565b610cc6565b6040516101bc919061485a565b3480156102a957600080fd5b506102bd6102b8366004614886565b610e67565b6040516101bc9291906149a4565b3480156102d757600080fd5b506102906102e63660046145cc565b610f61565b3480156102f757600080fd5b506103496103063660046145cc565b600460209081526000928352604080842090915290825290205463ffffffff811690640100000000900473ffffffffffffffffffffffffffffffffffffffff1682565b6040805163ffffffff909316835273ffffffffffffffffffffffffffffffffffffffff9091166020830152016101bc565b34801561038657600080fd5b506040805160038152600060208201526002918101919091526060016101bc565b3480156103b357600080fd5b506003546103d49073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101bc565b34801561040557600080fd5b506101b06104143660046149c8565b61131b565b34801561042557600080fd5b5061022e611326565b34801561043a57600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff166103d4565b34801561046557600080fd5b506104796104743660046149e5565b61133a565b6040516101bc9190614a30565b34801561049257600080fd5b5061022e6104a1366004614a43565b611421565b3480156104b257600080fd5b5061022e6104c1366004614ab8565b611599565b3480156104d257600080fd5b506104e66104e1366004614886565b611627565b6040516101bc9190614ad1565b3480156104ff57600080fd5b5061022e61050e366004614ae8565b611697565b34801561051f57600080fd5b5061022e61052e366004614ae8565b6116ab565b34801561053f57600080fd5b5061056061054e366004614ae8565b60056020526000908152604090205481565b6040519081526020016101bc565b34801561057a57600080fd5b5061022e610589366004614b05565b61175f565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f97f0258400000000000000000000000000000000000000000000000000000000148061062157507fffffffff0000000000000000000000000000000000000000000000000000000082167fb6e9ace300000000000000000000000000000000000000000000000000000000145b8061066d57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b604080518082019091526000808252602082015263ffffffff80831660008181527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8916845260048352818420948452939091528120805492939092169081900361070457825463ffffffff16610706565b805b63ffffffff1684528154640100000000900473ffffffffffffffffffffffffffffffffffffffff1680610758578354640100000000900473ffffffffffffffffffffffffffffffffffffffff1661075a565b805b73ffffffffffffffffffffffffffffffffffffffff166020860152509295945050505050565b60035473ffffffffffffffffffffffffffffffffffffffff1633146107d1576040517f885762a700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610853573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108779190614b31565b73ffffffffffffffffffffffffffffffffffffffff16036108c4576040517fe695d04400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108cf838383611859565b6040805173ffffffffffffffffffffffffffffffffffffffff8086168252841660208201529081018290527fe081464b7278501267de69fa85b7b9560b0ae05d5fbfaab9b1986c70356e2efe906060015b60405180910390a1505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16331461099c576040517f467409c300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b81811015610adb57368383838181106109ba576109ba614b4e565b90506020028101906109cc9190614b7d565b90506109e36109de60208301836149c8565b6118cc565b60016109f560408301602084016149c8565b63ffffffff1603610a3557610a30610a1060208301836149c8565b86610a1e6040850185614bbb565b810190610a2b9190614cea565b611913565b610ad2565b6002610a4760408301602084016149c8565b63ffffffff1603610a8257610a30610a6260208301836149c8565b86610a706040850185614bbb565b810190610a7d9190614ea3565b6119c0565b610a9260408201602083016149c8565b6040517fba97c1fa00000000000000000000000000000000000000000000000000000000815263ffffffff90911660048201526024015b60405180910390fd5b5060010161099f565b50505050565b610ae9611a09565b60005b81811015610c885736838383818110610b0757610b07614b4e565b9050602002810190610b199190614ed8565b905060ff610b2a6020830183614f0c565b610b3b906040810190602001614f40565b60ff1603610b75576040517f83aa17da00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60ff610b846020830183614f0c565b610b95906060810190604001614f40565b60ff1603610bcf576040517f4221136600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff610be56020830183614f0c565b610bf3906020810190614f5b565b67ffffffffffffffff1603610c34576040517f503667ae00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c52610c446020830183614f0c565b610c4d90614f76565b611a8a565b610c7f6000610c6460208401846149c8565b610c716020850185614f0c565b610c7a90614f76565b611adb565b50600101610aec565b507faaf3aaa0c11056e86ac56eb653e25b005ca1a7d4dcd21ba24647f7ab63f3b5608282604051610cba929190615034565b60405180910390a15050565b6040805160c0810182526000808252602082018190529181018290526060808201929092526080810182905260a081019190915273ffffffffffffffffffffffffffffffffffffffff8316600090815260016020818152604080842063ffffffff87168552825292839020835160c081018552815467ffffffffffffffff8116825260ff680100000000000000008204811683860152690100000000000000000082048116838801526a01000000000000000000009091041660608201529281018054855181850281018501909652808652939491936080860193830182828015610de757602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610dbc575b5050505050815260200160028201805480602002602001604051908101604052809291908181526020018280548015610e5657602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610e2b575b505050505081525050905092915050565b604080518082019091526000808252602082015260607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163314610eec576040517f467409c300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080610efa888888611e6f565b9092509050600080610f2c610f1560608c0160408d01614ae8565b610f2560808d0160608e016149c8565b858a611f3c565b9092509050610f3b8284615203565b604080518082019091529081526020810191909152945091925050505b94509492505050565b6040805160c0810182526000808252602080830182905282840182905260608084018390526080840181905260a084015263ffffffff85168083527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49825284832073ffffffffffffffffffffffffffffffffffffffff88168452600183528584209184529152929020805491929167ffffffffffffffff168061101157825467ffffffffffffffff168452611030565b67ffffffffffffffff818116146110305767ffffffffffffffff811684525b815468010000000000000000900460ff166110e657825468010000000000000000900460ff16156110e157826001018054806020026020016040519081016040528092919081815260200182805480156110c057602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311611095575b50505050506080850152825468010000000000000000900460ff1660208501525b611184565b815468010000000000000000900460ff90811614611184578160010180548060200260200160405190810160405280929190818152602001828054801561116357602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311611138575b50505050506080850152815468010000000000000000900460ff1660208501525b81546901000000000000000000900460ff166112535782546901000000000000000000900460ff161561124e578260020180548060200260200160405190810160405280929190818152602001828054801561121657602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116111eb575b505050505060a0850152825460ff69010000000000000000008204811660408701526a01000000000000000000009091041660608501525b611309565b81546901000000000000000000900460ff9081161461130957816002018054806020026020016040519081016040528092919081815260200182805480156112d157602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116112a6575b505050505060a0850152815460ff69010000000000000000008204811660408701526a01000000000000000000009091041660608501525b61131284611a8a565b50505092915050565b600061066d826120ca565b61132e611a09565b6113386000612131565b565b60607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff63ffffffff831601611399576113738385610673565b6040516020016113839190614605565b604051602081830303815290604052905061141a565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe63ffffffff8316016113e0576113d08385610f61565b604051602001611383919061485a565b6040517fba97c1fa00000000000000000000000000000000000000000000000000000000815263ffffffff83166004820152602401610ac9565b9392505050565b611429611a09565b60005b81811015611567573683838381811061144757611447614b4e565b60609081029290920192506000916114659150830160408401614ae8565b73ffffffffffffffffffffffffffffffffffffffff16036114b2576040517f20e9d05a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6114c260408201602083016149c8565b63ffffffff16600003611501576040517f49cfac4300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808052600460209081528201907f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec9061153c83856149c8565b63ffffffff168152602081019190915260400160002061155c8282615216565b50505060010161142c565b507f2b001e1c6683bf79cc52891bd7215b204c787d18134fc7f3d21b4f32a49e47de8282604051610cba9291906152ae565b6115a1611a09565b6002548111156115eb576002546040517f34084fb8000000000000000000000000000000000000000000000000000000008152610ac9918391600401918252602082015260400190565b60028190556040518181527f491ff913b5444f4136b0d4075f020cfe3a5f60de926ec0b091612401a22b7842906020015b60405180910390a150565b60408051808201909152600080825260208201526000806116786116516060890160408a01614ae8565b61166160808a0160608b016149c8565b61166e60c08b018b614bbb565b9050878a8a6121a6565b604080518082019091529182526020820152925050505b949350505050565b61169f611a09565b6116a8816122ac565b50565b6116b3611a09565b73ffffffffffffffffffffffffffffffffffffffff8116611756576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610ac9565b6116a881612131565b6117688161231f565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f99190614b31565b9050611806818484612389565b6040805133815273ffffffffffffffffffffffffffffffffffffffff851660208201529081018390527f820b7fd51bf79c54350bab98400651b3314ff6e79b33528821871d94a666988390606001610920565b73ffffffffffffffffffffffffffffffffffffffff82166118a6576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6118c773ffffffffffffffffffffffffffffffffffffffff841683836123b9565b505050565b6118d5816120ca565b6116a8576040517ff0c10d0400000000000000000000000000000000000000000000000000000000815263ffffffff82166004820152602401610ac9565b73ffffffffffffffffffffffffffffffffffffffff808316600090815260046020908152604080832063ffffffff8089168552908352928190208551815493870151909516640100000000027fffffffffffffffff0000000000000000000000000000000000000000000000009093169490931693909317179055517f779cb2dd9d2bb1be1737d05435d744facbfb84a2a4912e21379d39beddcdc805906109209084908690859061533b565b6119cb828483611adb565b6119d58284610f61565b507f82118522aa536ac0e96cc5c689407ae42b89d592aa133890a01f1509842f508182848360405161092093929190615397565b60005473ffffffffffffffffffffffffffffffffffffffff163314611338576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ac9565b602081015160ff16158015611aa45750606081015160ff16155b156116a8576040517fce2c375100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602081015160ff9081161480611af65750602081015160ff16155b15611b3d5760808101515115611b38576040517f83aa17da00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611bbc565b806020015160ff16816080015151141580611b7857506002611b61600160ff6153d2565b611b6b91906153eb565b60ff16816020015160ff16115b15611baf576040517f83aa17da00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611bbc8160800151612446565b604081015160ff9081161480611bd75750604081015160ff16155b15611c5d5760a08101515115611c19576040517f4221136600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606081015160ff1615611c58576040517f38682fa900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611d34565b806040015160ff168160a0015151141580611c9857506002611c81600160ff6153d2565b611c8b91906153eb565b60ff16816040015160ff16115b15611ccf576040517f4221136600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606081015160ff161580611cf05750806040015160ff16816060015160ff16115b15611d27576040517f38682fa900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611d348160a00151612446565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020818152604080842063ffffffff87168552825292839020845181548684015195870151606088015167ffffffffffffffff9093167fffffffffffffffffffffffffffffffffffffffffffffff000000000000000000909216919091176801000000000000000060ff97881602177fffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffff166901000000000000000000918716919091027fffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff16176a0100000000000000000000959091169490940293909317835560808401518051859493611e4b939085019201906144a5565b5060a08201518051611e679160028401916020909101906144a5565b505050505050565b60606000806000611e8086866124e0565b90925090506000611eaa611e9a60608a0160408b01614ae8565b6101e060808b0160608c016149c8565b90506000611ebb60c08a018a614bbb565b90509050611ed381836000015163ffffffff166124f9565b6020820151611f0390611eec60808c0160608d016149c8565b611efc60608d0160408e01614ae8565b8488612541565b611f0d9086615203565b9450600080611f1c8b8661267a565b9092509050611f2b8288615203565b909b909a5098505050505050505050565b600354600090819073ffffffffffffffffffffffffffffffffffffffff1615610f585760405173ffffffffffffffffffffffffffffffffffffffff8716602482015263ffffffff8616604482015260648101859052831515608482015260009060a401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fd51c54860000000000000000000000000000000000000000000000000000000017905260035491925060009182916120669173ffffffffffffffffffffffffffffffffffffffff16907f00000000000000000000000000000000000000000000000000000000000000009084908761269d565b915091506120768787848461274e565b909550935084156120be5760035473ffffffffffffffffffffffffffffffffffffffff16600090815260056020526040812080548792906120b8908490615203565b90915550505b50505094509492505050565b63ffffffff811660009081527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb4960205260408120805468010000000000000000900460ff1615158061141a5750546a0100000000000000000000900460ff16151592915050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806000806121b686866124e0565b9150915060006121c78b8b846127c9565b905060006121d58c8c610673565b90506121eb8a826000015163ffffffff166124f9565b806020015173ffffffffffffffffffffffffffffffffffffffff1663709eb6648c8e8d886040518563ffffffff1660e01b815260040161222e9493929190615434565b602060405180830381865afa15801561224b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061226f919061547f565b6122799083615203565b915060008061228a8e8e868e6127d6565b90925090506122998285615203565b9e909d509b505050505050505050505050565b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527f3c864541ef71378c6229510ed90f376565ee42d9c5e0904a984a9e863e6db44f9060200161161c565b3360009081526005602052604090205480821115612373576040517f34084fb80000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610ac9565b3360009081526005602052604090209190039055565b73ffffffffffffffffffffffffffffffffffffffff83166123ae576118c7828261291a565b6118c7838383611859565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526118c7908490612a20565b6000805b82518110156118c757600083828151811061246757612467614b4e565b602002602001015190508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16116124d6576040517f447516e100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b915060010161244a565b6060806124ed8484612b2f565b915091505b9250929050565b8082111561253d576040517fc667af3e0000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610ac9565b5050565b6040517f717e8a4200000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff87169063717e8a429061259c908890889088908890600401615434565b6020604051808303816000875af11580156125bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125df919061547f565b905080156126225773ffffffffffffffffffffffffffffffffffffffff86166000908152600560205260408120805483929061261c908490615203565b90915550505b6040805173ffffffffffffffffffffffffffffffffffffffff88168152602081018390527f61ed099e74a97a1d7f8bb0952a88ca8b7b8ebd00c126ea04671f92a81213318a910160405180910390a195945050505050565b60006060612692600561268c86615526565b85612c1c565b909590945092505050565b60006060863b8083036126c457604080516000808252602082019092529250925050612744565b60008060008761ffff1667ffffffffffffffff8111156126e6576126e6614c20565b6040519080825280601f01601f191660200182016040528015612710576020820181803683370190505b509050600080885160208a018c8f8ff191503d925087831115612731578792505b828152826000602083013e909450925050505b9550959350505050565b60008083158061275f575082516020115b1561276f57506000905080610f58565b600083806020019051810190612785919061547f565b90508515612795578091506127bf565b600060025488116127a8576002546127aa565b875b90508082116127b957816127bb565b805b9350505b5094509492505050565b600061168f848484612d78565b600354600090819073ffffffffffffffffffffffffffffffffffffffff1615610f585760405173ffffffffffffffffffffffffffffffffffffffff8716602482015263ffffffff8616604482015260648101859052831515608482015260009060a401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fd42442210000000000000000000000000000000000000000000000000000000017905260035491925060009182916128fe9173ffffffffffffffffffffffffffffffffffffffff16907f00000000000000000000000000000000000000000000000000000000000000009086612df2565b9150915061290e8787848461274e565b94509450505050610f58565b73ffffffffffffffffffffffffffffffffffffffff8216612967576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d80600081146129c1576040519150601f19603f3d011682016040523d82523d6000602084013e6129c6565b606091505b50509050806118c7576040517f465bc83400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101839052604401610ac9565b6000612a82826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16612e9f9092919063ffffffff16565b9050805160001480612aa3575080806020019051810190612aa391906155c4565b6118c7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610ac9565b606080600080612b3f8686612eae565b915091508051600003612b9757604080516000808252602082019092528391612b8b565b604080518082019091526000815260606020820152815260200190600190039081612b635790505b509350935050506124f2565b604080516001808252818301909252600091816020015b604080518082019091526000815260606020820152815260200190600190039081612bae5790505090506040518060400160405280600260ff1681526020018381525081600081518110612c0457612c04614b4e565b60209081029190910101529196919550909350505050565b600060606000612c2b856130ef565b90506000612c38866131d5565b805160208201206060880151604089015192935090916000612c5a8284610f61565b905060008951600014612c8b5789600081518110612c7a57612c7a614b4e565b602002602001015160200151612c9c565b604051806020016040528060008152505b90506060612cfc8d846040518060a001604052808963ffffffff1681526020018c81526020018a8152602001876000015167ffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff16815250856131f2565b604051919b509150612d1490899089906020016155e1565b60405160208183030381529060405298507f07ea52d82345d6e838192107d8fd7123d9c2ec8e916cd0aad13fd2b60db2464483608001518460a0015183604051612d6093929190615610565b60405180910390a15050505050505050935093915050565b600080612d858585610f61565b905060008351600014612db65783600081518110612da557612da5614b4e565b602002602001015160200151612dc7565b604051806020016040528060008152505b9050600080612dd5836134de565b91509150612de684888a8585613782565b98975050505050505050565b60006060853b808303612e1957604080516000808252602082019092529250925050610f58565b60008060008761ffff1667ffffffffffffffff811115612e3b57612e3b614c20565b6040519080825280601f01601f191660200182016040528015612e65576020820181803683370190505b509050600080885160208a018d8dfa91503d925087831115612e85578792505b828152826000602083013e90999098509650505050505050565b606061168f8484600085613940565b6060806002831015612eef576040517f6592671c00000000000000000000000000000000000000000000000000000000815260006004820152602401610ac9565b6000612efe600282868861566e565b612f0791615698565b60f01c905060027ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd82016130d8578060005b86831015613064576000612f5260018501858a8c61566e565b612f5b916156e0565b60f81c90506000819003612f9e576040517f6780cfaf00000000000000000000000000000000000000000000000000000000815260006004820152602401610ac9565b8160ff16600003612fb157809150612fee565b8160ff168160ff1614612fee57366000612fcd86868c8e61566e565b91509150612fde8989868585613a59565b9099509750859450919250829150505b600184019360009061300590600301868b8d61566e565b61300e91615698565b60f01c90506000819003613051576040517f6592671c00000000000000000000000000000000000000000000000000000000815260048101869052602401610ac9565b8060020161ffff16850194505050612f39565b8287146130a0576040517f6592671c00000000000000000000000000000000000000000000000000000000815260048101849052602401610ac9565b60028711156130d1573660006130b885858b8d61566e565b915091506130c98888858585613a59565b909850965050505b50506130e6565b6130e3828787613bce565b93505b50509250929050565b8051602080830151604080850151606080870151608088015193517f01000000000000000000000000000000000000000000000000000000000000009681019690965260c09690961b7fffffffffffffffff00000000000000000000000000000000000000000000000016602186015260e093841b7fffffffff00000000000000000000000000000000000000000000000000000000908116602987015273ffffffffffffffffffffffffffffffffffffffff909216602d8601529490921b909116604d83015260518201526071015b6040516020818303038152906040529050919050565b60608160a001518260c001516040516020016131bf929190615726565b60006060600080613202856134de565b9150915060008760400151886020015161321c919061574c565b90508060ff1667ffffffffffffffff81111561323a5761323a614c20565b604051908082528060200260200182016040528015613263578160200160208202803683370190505b50935060005b8160ff168160ff1610156134d1576000896020015160ff168260ff16106132be5760a08a015160208b015161329e90846153d2565b60ff16815181106132b1576132b1614b4e565b60200260200101516132e0565b89608001518260ff16815181106132d7576132d7614b4e565b60200260200101515b60408051602081019091526000808252919250905b855181101561334d578360ff1686828151811061331457613314614b4e565b602002602001015160ff16036133455786818151811061333657613336614b4e565b6020026020010151915061334d565b6001016132f5565b506040517f95d376d700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316906395d376d7906133a2908d908590600401615765565b6020604051808303816000875af11580156133c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133e5919061547f565b878460ff16815181106133fa576133fa614b4e565b6020026020010181815250506000878460ff168151811061341d5761341d614b4e565b602002602001015111156134c757868360ff168151811061344057613440614b4e565b60200260200101518c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546134959190615203565b92505081905550868360ff16815181106134b1576134b1614b4e565b6020026020010151886134c49190615203565b97505b5050600101613269565b5050505094509492505050565b60608082516000036134ef57915091565b60006134fa84613e4d565b90508060ff166001036135ac5760408051600180825281830190925290816020015b606081526020019060019003908161351c579050509250838360008151811061354757613547614b4e565b60209081029190910101526040805160018082528183019092529081602001602082028036833701905050915061357f846003613f72565b8260008151811061359257613592614b4e565b602002602001019060ff16908160ff168152505050915091565b8060ff1667ffffffffffffffff8111156135c8576135c8614c20565b6040519080825280602002602001820160405280156135f1578160200160208202803683370190505b5091508060ff1667ffffffffffffffff81111561361057613610614c20565b60405190808252806020026020018201604052801561364357816020015b606081526020019060019003908161362e5790505b50925060008060ff5b86518310156136f75760019092019160006136678885613ff2565b600294909401939050600061367c8986613f72565b90508260ff1660ff03613691578092506136e8565b8260ff168160ff16146136e8577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8486030160006136d08b8784614072565b90506136de8a8a87846141ec565b5093909301929150815b5061ffff16929092019161364c565b8183036000613707898584614072565b9050613715888885846141ec565b60005b8660ff168160ff16101561377657878160ff168151811061373b5761373b614b4e565b6020908102919091010180517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0160ff169052600101613718565b50505050505050915091565b60008086604001518760200151613799919061574c565b905060005b8160ff168160ff161015613935576000886020015160ff168260ff16106137f35760a089015160208a01516137d390846153d2565b60ff16815181106137e6576137e6614b4e565b6020026020010151613815565b88608001518260ff168151811061380c5761380c614b4e565b60200260200101515b60408051602081019091526000808252919250905b8651811015613882578360ff1687828151811061384957613849614b4e565b602002602001015160ff160361387a5787818151811061386b5761386b614b4e565b60200260200101519150613882565b60010161382a565b5089516040517f30bb3aac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416916330bb3aac916138db918d918d9087906004016157e3565b602060405180830381865afa1580156138f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061391c919061547f565b6139269086615203565b9450505080600101905061379e565b505095945050505050565b6060824710156139d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610ac9565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516139fb919061582e565b60006040518083038185875af1925050503d8060008114613a38576040519150601f19603f3d011682016040523d82523d6000602084013e613a3d565b606091505b5091509150613a4e8783838761431b565b979650505050505050565b6060807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff861601613af457865115613ab657868484604051602001613aa293929190615840565b604051602081830303815290604052613aed565b83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050505b9650613bc3565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe60ff861601613b8c57855115613b4e57858484604051602001613b3a93929190615840565b604051602081830303815290604052613b85565b83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050505b9550613bc3565b6040517f6780cfaf00000000000000000000000000000000000000000000000000000000815260ff86166004820152602401610ac9565b509495939450505050565b60607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61ffff851601613cf45760228214613c35576040517f0dc652a800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000613c56613c4860226002868861566e565b613c5191615868565b6143bb565b6040517f0100000000000000000000000000000000000000000000000000000000000000602082018190527e11000000000000000000000000000000000000000000000000000000000000602183015260238201527fffffffffffffffffffffffffffffffff00000000000000000000000000000000608083901b16602482015290915060340160405160208183030381529060405291505061141a565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe61ffff851601613e1557604282111580613d2f5750606282115b15613d66576040517fc0927c5600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000613d79613c4860226002868861566e565b90506000613d8e613c4860426022878961566e565b905060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbe8501613dc2866042818a61566e565b613dcb91615868565b60405160086020938403029190911c9250613dfc916001916011918391889183916031916002918b918b91016158a4565b604051602081830303815290604052935050505061141a565b6040517f4170513000000000000000000000000000000000000000000000000000000000815261ffff85166004820152602401610ac9565b600080805b8351821015613f2e576001909101906000613e6d8584613ff2565b905060028301925060028161ffff161015613eb7576040517f04eb6e0c00000000000000000000000000000000000000000000000000000000815260048101849052602401610ac9565b6000613ec38685613f72565b90508060ff1660ff03613f02576040517fd3d3d9bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600160ff82161b8316613f1f5760019485019460ff82161b831792505b5061ffff169190910190613e52565b83518214613f6b576040517f04eb6e0c00000000000000000000000000000000000000000000000000000000815260048101839052602401610ac9565b5050919050565b6000613f7f826001615203565b83511015613fe9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f746f55696e74385f6f75744f66426f756e6473000000000000000000000000006044820152606401610ac9565b50016001015190565b6000613fff826002615203565b83511015614069576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f746f55696e7431365f6f75744f66426f756e64730000000000000000000000006044820152606401610ac9565b50016002015190565b60608161408081601f615203565b10156140e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401610ac9565b6140f28284615203565b8451101561415c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e64730000000000000000000000000000006044820152606401610ac9565b60608215801561417b57604051915060008252602082016040526141e3565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156141b457805183526020928301920161419c565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b8160ff1660ff03614229576040517fd3d3d9bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061423683600161574c565b905060005b8451811015611e6757600085828151811061425857614258614b4e565b602002602001015190508060ff168360ff16036142cd5786828151811061428157614281614b4e565b60200260200101518460405160200161429b9291906155e1565b6040516020818303038152906040528783815181106142bc576142bc614b4e565b602002602001018190525050611e67565b8060ff1660000361431257828683815181106142eb576142eb614b4e565b602002602001019060ff16908160ff1681525050838783815181106142bc576142bc614b4e565b5060010161423b565b606083156143b15782516000036143aa5773ffffffffffffffffffffffffffffffffffffffff85163b6143aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610ac9565b508161168f565b61168f8383614461565b60006fffffffffffffffffffffffffffffffff82111561445d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201527f32382062697473000000000000000000000000000000000000000000000000006064820152608401610ac9565b5090565b8151156144715781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac99190614a30565b82805482825590600052602060002090810192821561451f579160200282015b8281111561451f57825182547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9091161782556020909201916001909101906144c5565b5061445d9291505b8082111561445d5760008155600101614527565b60006020828403121561454d57600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461141a57600080fd5b73ffffffffffffffffffffffffffffffffffffffff811681146116a857600080fd5b80356145aa8161457d565b919050565b63ffffffff811681146116a857600080fd5b80356145aa816145af565b600080604083850312156145df57600080fd5b82356145ea8161457d565b915060208301356145fa816145af565b809150509250929050565b815163ffffffff16815260208083015173ffffffffffffffffffffffffffffffffffffffff16908201526040810161066d565b6020810160038310614673577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b60008060006060848603121561468e57600080fd5b83356146998161457d565b925060208401356146a98161457d565b929592945050506040919091013590565b60008083601f8401126146cc57600080fd5b50813567ffffffffffffffff8111156146e457600080fd5b6020830191508360208260051b85010111156124f257600080fd5b60008060006040848603121561471457600080fd5b833561471f8161457d565b9250602084013567ffffffffffffffff81111561473b57600080fd5b614747868287016146ba565b9497909650939450505050565b6000806020838503121561476757600080fd5b823567ffffffffffffffff81111561477e57600080fd5b61478a858286016146ba565b90969095509350505050565b60008151808452602080850194506020840160005b838110156147dd57815173ffffffffffffffffffffffffffffffffffffffff16875295820195908201906001016147ab565b509495945050505050565b67ffffffffffffffff815116825260ff602082015116602083015260ff604082015116604083015260ff60608201511660608301526000608082015160c0608085015261483860c0850182614796565b905060a083015184820360a08601526148518282614796565b95945050505050565b60208152600061141a60208301846147e8565b80151581146116a857600080fd5b80356145aa8161486d565b6000806000806060858703121561489c57600080fd5b843567ffffffffffffffff808211156148b457600080fd5b9086019060e082890312156148c857600080fd5b909450602086013590808211156148de57600080fd5b818701915087601f8301126148f257600080fd5b81358181111561490157600080fd5b88602082850101111561491357600080fd5b60208301955080945050505061492b6040860161487b565b905092959194509250565b60005b83811015614951578181015183820152602001614939565b50506000910152565b60008151808452614972816020860160208601614936565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b825181526020808401519082015260606040820152600061168f606083018461495a565b6000602082840312156149da57600080fd5b813561141a816145af565b6000806000606084860312156149fa57600080fd5b8335614a05816145af565b92506020840135614a158161457d565b91506040840135614a25816145af565b809150509250925092565b60208152600061141a602083018461495a565b60008060208385031215614a5657600080fd5b823567ffffffffffffffff80821115614a6e57600080fd5b818501915085601f830112614a8257600080fd5b813581811115614a9157600080fd5b866020606083028501011115614aa657600080fd5b60209290920196919550909350505050565b600060208284031215614aca57600080fd5b5035919050565b81518152602080830151908201526040810161066d565b600060208284031215614afa57600080fd5b813561141a8161457d565b60008060408385031215614b1857600080fd5b8235614b238161457d565b946020939093013593505050565b600060208284031215614b4357600080fd5b815161141a8161457d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112614bb157600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614bf057600080fd5b83018035915067ffffffffffffffff821115614c0b57600080fd5b6020019150368190038213156124f257600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160c0810167ffffffffffffffff81118282101715614c7257614c72614c20565b60405290565b60405160e0810167ffffffffffffffff81118282101715614c7257614c72614c20565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715614ce257614ce2614c20565b604052919050565b600060408284031215614cfc57600080fd5b6040516040810181811067ffffffffffffffff82111715614d1f57614d1f614c20565b6040528235614d2d816145af565b81526020830135614d3d8161457d565b60208201529392505050565b803567ffffffffffffffff811681146145aa57600080fd5b803560ff811681146145aa57600080fd5b600082601f830112614d8357600080fd5b8135602067ffffffffffffffff821115614d9f57614d9f614c20565b8160051b614dae828201614c9b565b9283528481018201928281019087851115614dc857600080fd5b83870192505b84831015613a4e578235614de18161457d565b82529183019190830190614dce565b600060c08284031215614e0257600080fd5b614e0a614c4f565b9050614e1582614d49565b8152614e2360208301614d61565b6020820152614e3460408301614d61565b6040820152614e4560608301614d61565b6060820152608082013567ffffffffffffffff80821115614e6557600080fd5b614e7185838601614d72565b608084015260a0840135915080821115614e8a57600080fd5b50614e9784828501614d72565b60a08301525092915050565b600060208284031215614eb557600080fd5b813567ffffffffffffffff811115614ecc57600080fd5b61168f84828501614df0565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112614bb157600080fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff41833603018112614bb157600080fd5b600060208284031215614f5257600080fd5b61141a82614d61565b600060208284031215614f6d57600080fd5b61141a82614d49565b600061066d3683614df0565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614fb757600080fd5b830160208101925035905067ffffffffffffffff811115614fd757600080fd5b8060051b36038213156124f257600080fd5b8183526000602080850194508260005b858110156147dd57813561500c8161457d565b73ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101614ff9565b60208082528181018390526000906040808401600586901b8501820187855b888110156151c6577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08089850301855282357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc18c36030181126150b557600080fd5b8b0180356150c2816145af565b63ffffffff16855280880135368290037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff410181126150ff57600080fd5b8589018890520167ffffffffffffffff61511882614d49565b1687860152615128888201614d61565b606060ff8083168289015261513e8a8501614d61565b92506080818416818a0152615154838601614d61565b935060a09250818416838a015261516d81860186614f82565b60c08b81015294509150615188905061010089018483614fe9565b92505061519781840184614f82565b93509050838783030160e08801526151b0828483614fe9565b978a019796505050928701925050600101615053565b509098975050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561066d5761066d6151d4565b8135615221816145af565b63ffffffff811690508154817fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000821617835560208401356152618161457d565b77ffffffffffffffffffffffffffffffffffffffff000000008160201b16837fffffffffffffffff0000000000000000000000000000000000000000000000008416171784555050505050565b6020808252818101839052600090604080840186845b8781101561532e5781356152d7816145af565b63ffffffff908116845282860135906152ef826145af565b1683860152818401356153018161457d565b73ffffffffffffffffffffffffffffffffffffffff168385015260609283019291909101906001016152c4565b5090979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff8416815263ffffffff831660208201526080810161168f6040830184805163ffffffff16825260209081015173ffffffffffffffffffffffffffffffffffffffff16910152565b73ffffffffffffffffffffffffffffffffffffffff8416815263ffffffff8316602082015260606040820152600061485160608301846147e8565b60ff828116828216039081111561066d5761066d6151d4565b600060ff831680615425577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b8060ff84160491505092915050565b63ffffffff8516815273ffffffffffffffffffffffffffffffffffffffff84166020820152826040820152608060608201526000615475608083018461495a565b9695505050505050565b60006020828403121561549157600080fd5b5051919050565b600082601f8301126154a957600080fd5b813567ffffffffffffffff8111156154c3576154c3614c20565b6154f460207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601614c9b565b81815284602083860101111561550957600080fd5b816020850160208301376000918101602001919091529392505050565b600060e0823603121561553857600080fd5b615540614c78565b61554983614d49565b8152615557602084016145c1565b60208201526155686040840161459f565b6040820152615579606084016145c1565b60608201526080830135608082015260a083013560a082015260c083013567ffffffffffffffff8111156155ac57600080fd5b6155b836828601615498565b60c08301525092915050565b6000602082840312156155d657600080fd5b815161141a8161486d565b600083516155f3818460208801614936565b835190830190615607818360208801614936565b01949350505050565b6060815260006156236060830186614796565b602083820360208501526156378287614796565b84810360408601528551808252602080880194509091019060005b818110156151c657845183529383019391830191600101615652565b6000808585111561567e57600080fd5b8386111561568b57600080fd5b5050820193919092039150565b7fffff00000000000000000000000000000000000000000000000000000000000081358181169160028510156156d85780818660020360031b1b83161692505b505092915050565b7fff0000000000000000000000000000000000000000000000000000000000000081358181169160018510156156d85760019490940360031b84901b1690921692915050565b8281526000825161573e816020850160208701614936565b919091016020019392505050565b60ff818116838216019081111561066d5761066d6151d4565b6040815263ffffffff83511660408201526000602084015160a0606084015261579160e084018261495a565b90506040850151608084015267ffffffffffffffff60608601511660a084015273ffffffffffffffffffffffffffffffffffffffff60808601511660c08401528281036020840152614851818561495a565b63ffffffff8516815267ffffffffffffffff8416602082015273ffffffffffffffffffffffffffffffffffffffff83166040820152608060608201526000615475608083018461495a565b60008251614bb1818460208701614936565b60008451615852818460208901614936565b8201838582376000930192835250909392505050565b8035602083101561066d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b60007fff00000000000000000000000000000000000000000000000000000000000000808c60f81b1683527fffff000000000000000000000000000000000000000000000000000000000000808c60f01b166001850152818b60f81b1660038501527fffffffffffffffffffffffffffffffff000000000000000000000000000000008a60801b166004850152818960f81b166014850152808860f01b16601585015250808660f81b16601784015250615985601883018560801b7fffffffffffffffffffffffffffffffff00000000000000000000000000000000169052565b5060288101919091526048019897505050505050505056fea26469706673582212209d6003e9712782d1d5c8ab2194c4b93cabb63541a655b6ed7fe5179d8a2c9b4f64736f6c63430008160033",
1293
- "devdoc": {
1294
- "details": "This is a gluing contract. It simply parses the requests and forward to the super.impl() accordingly.In this case, it combines the logic of SendUlnBase and SendLibBaseE2",
1295
- "kind": "dev",
1296
- "methods": {
1297
- "getAppUlnConfig(address,uint32)": {
1298
- "details": "Get the uln config without the default config for the given remoteEid."
1299
- },
1300
- "owner()": {
1301
- "details": "Returns the address of the current owner."
1302
- },
1303
- "renounceOwnership()": {
1304
- "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."
1305
- },
1306
- "setDefaultUlnConfigs((uint32,(uint64,uint8,uint8,uint8,address[],address[]))[])": {
1307
- "details": "about the DEFAULT ULN config 1) its values are all LITERAL (e.g. 0 is 0). whereas in the oapp ULN config, 0 (default value) points to the default ULN config this design enables the oapp to point to DEFAULT config without explicitly setting the config 2) its configuration is more restrictive than the oapp ULN config that a) it must not use NIL value, where NIL is used only by oapps to indicate the LITERAL 0 b) it must have at least one DVN"
1308
- },
1309
- "setTreasuryNativeFeeCap(uint256)": {
1310
- "details": "the new value can not be greater than the old value, i.e. down only"
1311
- },
1312
- "transferOwnership(address)": {
1313
- "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
1314
- },
1315
- "withdrawFee(address,uint256)": {
1316
- "details": "E2 only"
1317
- },
1318
- "withdrawLzTokenFee(address,address,uint256)": {
1319
- "details": "_lzToken is a user-supplied value because lzToken might change in the endpoint before all lzToken can be taken outE2 onlytreasury only function"
1320
- }
1321
- },
1322
- "version": 1
1323
- },
1324
- "userdoc": {
1325
- "kind": "user",
1326
- "methods": {},
1327
- "version": 1
1328
- },
1329
- "storageLayout": {
1330
- "storage": [
1331
- {
1332
- "astId": 7779,
1333
- "contract": "contracts/uln/uln302/SendUln302.sol:SendUln302",
1334
- "label": "_owner",
1335
- "offset": 0,
1336
- "slot": "0",
1337
- "type": "t_address"
1338
- },
1339
- {
1340
- "astId": 17953,
1341
- "contract": "contracts/uln/uln302/SendUln302.sol:SendUln302",
1342
- "label": "ulnConfigs",
1343
- "offset": 0,
1344
- "slot": "1",
1345
- "type": "t_mapping(t_address,t_mapping(t_uint32,t_struct(UlnConfig)17902_storage))"
1346
- },
1347
- {
1348
- "astId": 14479,
1349
- "contract": "contracts/uln/uln302/SendUln302.sol:SendUln302",
1350
- "label": "treasuryNativeFeeCap",
1351
- "offset": 0,
1352
- "slot": "2",
1353
- "type": "t_uint256"
1354
- },
1355
- {
1356
- "astId": 14481,
1357
- "contract": "contracts/uln/uln302/SendUln302.sol:SendUln302",
1358
- "label": "treasury",
1359
- "offset": 0,
1360
- "slot": "3",
1361
- "type": "t_address"
1362
- },
1363
- {
1364
- "astId": 14488,
1365
- "contract": "contracts/uln/uln302/SendUln302.sol:SendUln302",
1366
- "label": "executorConfigs",
1367
- "offset": 0,
1368
- "slot": "4",
1369
- "type": "t_mapping(t_address,t_mapping(t_uint32,t_struct(ExecutorConfig)14458_storage))"
1370
- },
1371
- {
1372
- "astId": 14492,
1373
- "contract": "contracts/uln/uln302/SendUln302.sol:SendUln302",
1374
- "label": "fees",
1375
- "offset": 0,
1376
- "slot": "5",
1377
- "type": "t_mapping(t_address,t_uint256)"
1378
- }
1379
- ],
1380
- "types": {
1381
- "t_address": {
1382
- "encoding": "inplace",
1383
- "label": "address",
1384
- "numberOfBytes": "20"
1385
- },
1386
- "t_array(t_address)dyn_storage": {
1387
- "base": "t_address",
1388
- "encoding": "dynamic_array",
1389
- "label": "address[]",
1390
- "numberOfBytes": "32"
1391
- },
1392
- "t_mapping(t_address,t_mapping(t_uint32,t_struct(ExecutorConfig)14458_storage))": {
1393
- "encoding": "mapping",
1394
- "key": "t_address",
1395
- "label": "mapping(address => mapping(uint32 => struct ExecutorConfig))",
1396
- "numberOfBytes": "32",
1397
- "value": "t_mapping(t_uint32,t_struct(ExecutorConfig)14458_storage)"
1398
- },
1399
- "t_mapping(t_address,t_mapping(t_uint32,t_struct(UlnConfig)17902_storage))": {
1400
- "encoding": "mapping",
1401
- "key": "t_address",
1402
- "label": "mapping(address => mapping(uint32 => struct UlnConfig))",
1403
- "numberOfBytes": "32",
1404
- "value": "t_mapping(t_uint32,t_struct(UlnConfig)17902_storage)"
1405
- },
1406
- "t_mapping(t_address,t_uint256)": {
1407
- "encoding": "mapping",
1408
- "key": "t_address",
1409
- "label": "mapping(address => uint256)",
1410
- "numberOfBytes": "32",
1411
- "value": "t_uint256"
1412
- },
1413
- "t_mapping(t_uint32,t_struct(ExecutorConfig)14458_storage)": {
1414
- "encoding": "mapping",
1415
- "key": "t_uint32",
1416
- "label": "mapping(uint32 => struct ExecutorConfig)",
1417
- "numberOfBytes": "32",
1418
- "value": "t_struct(ExecutorConfig)14458_storage"
1419
- },
1420
- "t_mapping(t_uint32,t_struct(UlnConfig)17902_storage)": {
1421
- "encoding": "mapping",
1422
- "key": "t_uint32",
1423
- "label": "mapping(uint32 => struct UlnConfig)",
1424
- "numberOfBytes": "32",
1425
- "value": "t_struct(UlnConfig)17902_storage"
1426
- },
1427
- "t_struct(ExecutorConfig)14458_storage": {
1428
- "encoding": "inplace",
1429
- "label": "struct ExecutorConfig",
1430
- "members": [
1431
- {
1432
- "astId": 14455,
1433
- "contract": "contracts/uln/uln302/SendUln302.sol:SendUln302",
1434
- "label": "maxMessageSize",
1435
- "offset": 0,
1436
- "slot": "0",
1437
- "type": "t_uint32"
1438
- },
1439
- {
1440
- "astId": 14457,
1441
- "contract": "contracts/uln/uln302/SendUln302.sol:SendUln302",
1442
- "label": "executor",
1443
- "offset": 4,
1444
- "slot": "0",
1445
- "type": "t_address"
1446
- }
1447
- ],
1448
- "numberOfBytes": "32"
1449
- },
1450
- "t_struct(UlnConfig)17902_storage": {
1451
- "encoding": "inplace",
1452
- "label": "struct UlnConfig",
1453
- "members": [
1454
- {
1455
- "astId": 17889,
1456
- "contract": "contracts/uln/uln302/SendUln302.sol:SendUln302",
1457
- "label": "confirmations",
1458
- "offset": 0,
1459
- "slot": "0",
1460
- "type": "t_uint64"
1461
- },
1462
- {
1463
- "astId": 17891,
1464
- "contract": "contracts/uln/uln302/SendUln302.sol:SendUln302",
1465
- "label": "requiredDVNCount",
1466
- "offset": 8,
1467
- "slot": "0",
1468
- "type": "t_uint8"
1469
- },
1470
- {
1471
- "astId": 17893,
1472
- "contract": "contracts/uln/uln302/SendUln302.sol:SendUln302",
1473
- "label": "optionalDVNCount",
1474
- "offset": 9,
1475
- "slot": "0",
1476
- "type": "t_uint8"
1477
- },
1478
- {
1479
- "astId": 17895,
1480
- "contract": "contracts/uln/uln302/SendUln302.sol:SendUln302",
1481
- "label": "optionalDVNThreshold",
1482
- "offset": 10,
1483
- "slot": "0",
1484
- "type": "t_uint8"
1485
- },
1486
- {
1487
- "astId": 17898,
1488
- "contract": "contracts/uln/uln302/SendUln302.sol:SendUln302",
1489
- "label": "requiredDVNs",
1490
- "offset": 0,
1491
- "slot": "1",
1492
- "type": "t_array(t_address)dyn_storage"
1493
- },
1494
- {
1495
- "astId": 17901,
1496
- "contract": "contracts/uln/uln302/SendUln302.sol:SendUln302",
1497
- "label": "optionalDVNs",
1498
- "offset": 0,
1499
- "slot": "2",
1500
- "type": "t_array(t_address)dyn_storage"
1501
- }
1502
- ],
1503
- "numberOfBytes": "96"
1504
- },
1505
- "t_uint256": {
1506
- "encoding": "inplace",
1507
- "label": "uint256",
1508
- "numberOfBytes": "32"
1509
- },
1510
- "t_uint32": {
1511
- "encoding": "inplace",
1512
- "label": "uint32",
1513
- "numberOfBytes": "4"
1514
- },
1515
- "t_uint64": {
1516
- "encoding": "inplace",
1517
- "label": "uint64",
1518
- "numberOfBytes": "8"
1519
- },
1520
- "t_uint8": {
1521
- "encoding": "inplace",
1522
- "label": "uint8",
1523
- "numberOfBytes": "1"
1524
- }
1525
- }
1526
- }
1527
- }