@gooddollar/goodcollective-contracts 1.3.1 → 1.4.1

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 (74) hide show
  1. package/artifacts/contracts/DirectPayments/DirectPaymentsFactory.sol/DirectPaymentsFactory.dbg.json +4 -0
  2. package/artifacts/contracts/DirectPayments/DirectPaymentsFactory.sol/DirectPaymentsFactory.json +995 -0
  3. package/artifacts/contracts/DirectPayments/DirectPaymentsLibrary.sol/DirectPaymentsLibrary.dbg.json +4 -0
  4. package/artifacts/contracts/DirectPayments/DirectPaymentsLibrary.sol/DirectPaymentsLibrary.json +113 -0
  5. package/artifacts/contracts/DirectPayments/DirectPaymentsPool.sol/DirectPaymentsPool.dbg.json +4 -0
  6. package/artifacts/contracts/DirectPayments/DirectPaymentsPool.sol/DirectPaymentsPool.json +2210 -0
  7. package/artifacts/contracts/DirectPayments/DirectPaymentsPool.sol/IIdentityV2.dbg.json +4 -0
  8. package/artifacts/contracts/DirectPayments/DirectPaymentsPool.sol/IIdentityV2.json +30 -0
  9. package/artifacts/contracts/DirectPayments/DirectPaymentsPool.sol/IMembersValidator.dbg.json +4 -0
  10. package/artifacts/contracts/DirectPayments/DirectPaymentsPool.sol/IMembersValidator.json +45 -0
  11. package/artifacts/contracts/DirectPayments/ProvableNFT.sol/ProvableNFT.dbg.json +4 -0
  12. package/artifacts/contracts/DirectPayments/ProvableNFT.sol/ProvableNFT.json +1187 -0
  13. package/artifacts/contracts/GoodCollective/GoodCollectiveSuperApp.sol/GoodCollectiveSuperApp.dbg.json +4 -0
  14. package/artifacts/contracts/GoodCollective/GoodCollectiveSuperApp.sol/GoodCollectiveSuperApp.json +831 -0
  15. package/artifacts/contracts/GoodCollective/IGoodCollectiveSuperApp.sol/IGoodCollectiveSuperApp.dbg.json +4 -0
  16. package/artifacts/contracts/GoodCollective/IGoodCollectiveSuperApp.sol/IGoodCollectiveSuperApp.json +42 -0
  17. package/artifacts/contracts/GoodCollective/IGoodCollectiveSuperApp.sol/IRegistry.dbg.json +4 -0
  18. package/artifacts/contracts/GoodCollective/IGoodCollectiveSuperApp.sol/IRegistry.json +61 -0
  19. package/artifacts/contracts/GoodCollective/SuperAppBaseFlow.sol/IRegisterSuperapp.dbg.json +4 -0
  20. package/artifacts/contracts/GoodCollective/SuperAppBaseFlow.sol/IRegisterSuperapp.json +47 -0
  21. package/artifacts/contracts/GoodCollective/SuperAppBaseFlow.sol/SuperAppBaseFlow.dbg.json +4 -0
  22. package/artifacts/contracts/GoodCollective/SuperAppBaseFlow.sol/SuperAppBaseFlow.json +320 -0
  23. package/artifacts/contracts/Interfaces.sol/IIdentityV2.dbg.json +4 -0
  24. package/artifacts/contracts/Interfaces.sol/IIdentityV2.json +30 -0
  25. package/artifacts/contracts/Interfaces.sol/IMembersValidator.dbg.json +4 -0
  26. package/artifacts/contracts/Interfaces.sol/IMembersValidator.json +45 -0
  27. package/artifacts/contracts/UBI/UBIPool.sol/UBIPool.dbg.json +4 -0
  28. package/artifacts/contracts/UBI/UBIPool.sol/UBIPool.json +2078 -0
  29. package/artifacts/contracts/UBI/UBIPoolFactory.sol/UBIPoolFactory.dbg.json +4 -0
  30. package/artifacts/contracts/UBI/UBIPoolFactory.sol/UBIPoolFactory.json +1011 -0
  31. package/artifacts/contracts/test/HelperLibraryTest.sol/HelperLibraryTest.dbg.json +4 -0
  32. package/artifacts/contracts/test/HelperLibraryTest.sol/HelperLibraryTest.json +90 -0
  33. package/artifacts/contracts/utils/HelperLibrary.sol/HelperLibrary.dbg.json +4 -0
  34. package/artifacts/contracts/utils/HelperLibrary.sol/HelperLibrary.json +117 -0
  35. package/artifacts/contracts/utils/Recover.sol/Recover.dbg.json +4 -0
  36. package/artifacts/contracts/utils/Recover.sol/Recover.json +120 -0
  37. package/artifacts/contracts/utils/SwapRouterMock.sol/SwapRouterMock.dbg.json +4 -0
  38. package/artifacts/contracts/utils/SwapRouterMock.sol/SwapRouterMock.json +119 -0
  39. package/contracts/DirectPayments/DirectPaymentsFactory.sol +13 -1
  40. package/contracts/DirectPayments/DirectPaymentsPool.sol +22 -0
  41. package/contracts/UBI/UBIPool.sol +62 -18
  42. package/contracts/UBI/UBIPoolFactory.sol +13 -1
  43. package/contracts/utils/Recover.sol +16 -0
  44. package/package.json +3 -5
  45. package/releases/deployment.json +308 -134
  46. package/typechain-types/contracts/DirectPayments/DirectPaymentsFactory.ts +54 -0
  47. package/typechain-types/contracts/DirectPayments/DirectPaymentsLibrary.sol/DirectPayemntsLibrary.ts +77 -0
  48. package/typechain-types/contracts/DirectPayments/DirectPaymentsLibrary.sol/DirectPaymentsLibrary.ts +77 -0
  49. package/typechain-types/contracts/DirectPayments/DirectPaymentsLibrary.sol/index.ts +5 -0
  50. package/typechain-types/contracts/DirectPayments/DirectPaymentsPool.sol/DirectPaymentsPool.ts +37 -0
  51. package/typechain-types/contracts/UBI/MultiClaimModule.sol/IClaimable.ts +92 -0
  52. package/typechain-types/contracts/UBI/MultiClaimModule.sol/IModule.ts +196 -0
  53. package/typechain-types/contracts/UBI/MultiClaimModule.sol/MultiClaimModule.ts +242 -0
  54. package/typechain-types/contracts/UBI/MultiClaimModule.sol/index.ts +6 -0
  55. package/typechain-types/contracts/UBI/UBIPool.ts +37 -0
  56. package/typechain-types/contracts/UBI/UBIPoolFactory.ts +54 -0
  57. package/typechain-types/contracts/utils/Recover.ts +263 -0
  58. package/typechain-types/contracts/utils/index.ts +1 -0
  59. package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsFactory__factory.ts +33 -1
  60. package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsLibrary.sol/DirectPayemntsLibrary__factory.ts +96 -0
  61. package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsLibrary.sol/DirectPaymentsLibrary__factory.ts +96 -0
  62. package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsLibrary.sol/index.ts +5 -0
  63. package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsLibrary__factory.ts +1 -1
  64. package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsPool.sol/DirectPaymentsPool__factory.ts +24 -1
  65. package/typechain-types/factories/contracts/UBI/MultiClaimModule.sol/IClaimable__factory.ts +33 -0
  66. package/typechain-types/factories/contracts/UBI/MultiClaimModule.sol/IModule__factory.ts +84 -0
  67. package/typechain-types/factories/contracts/UBI/MultiClaimModule.sol/MultiClaimModule__factory.ts +150 -0
  68. package/typechain-types/factories/contracts/UBI/MultiClaimModule.sol/index.ts +6 -0
  69. package/typechain-types/factories/contracts/UBI/UBIPoolFactory__factory.ts +33 -1
  70. package/typechain-types/factories/contracts/UBI/UBIPool__factory.ts +24 -1
  71. package/typechain-types/factories/contracts/utils/Recover__factory.ts +172 -0
  72. package/typechain-types/factories/contracts/utils/index.ts +1 -0
  73. package/typechain-types/hardhat.d.ts +9 -0
  74. package/typechain-types/index.ts +2 -0
@@ -0,0 +1,2210 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "DirectPaymentsPool",
4
+ "sourceName": "contracts/DirectPayments/DirectPaymentsPool.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "contract ISuperfluid",
10
+ "name": "_host",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "contract IV3SwapRouter",
15
+ "name": "_swapRouter",
16
+ "type": "address"
17
+ }
18
+ ],
19
+ "stateMutability": "nonpayable",
20
+ "type": "constructor"
21
+ },
22
+ {
23
+ "inputs": [
24
+ {
25
+ "internalType": "uint256",
26
+ "name": "",
27
+ "type": "uint256"
28
+ }
29
+ ],
30
+ "name": "ALREADY_CLAIMED",
31
+ "type": "error"
32
+ },
33
+ {
34
+ "inputs": [],
35
+ "name": "EMPTY_MANAGER",
36
+ "type": "error"
37
+ },
38
+ {
39
+ "inputs": [
40
+ {
41
+ "internalType": "int96",
42
+ "name": "curFeeRate",
43
+ "type": "int96"
44
+ },
45
+ {
46
+ "internalType": "int96",
47
+ "name": "newFeeRate",
48
+ "type": "int96"
49
+ }
50
+ ],
51
+ "name": "FEE_FLOW_FAILED",
52
+ "type": "error"
53
+ },
54
+ {
55
+ "inputs": [],
56
+ "name": "LENGTH_MISMATCH",
57
+ "type": "error"
58
+ },
59
+ {
60
+ "inputs": [
61
+ {
62
+ "internalType": "int96",
63
+ "name": "flowRate",
64
+ "type": "int96"
65
+ }
66
+ ],
67
+ "name": "MIN_FLOWRATE",
68
+ "type": "error"
69
+ },
70
+ {
71
+ "inputs": [],
72
+ "name": "NFTTYPE_CHANGED",
73
+ "type": "error"
74
+ },
75
+ {
76
+ "inputs": [
77
+ {
78
+ "internalType": "uint256",
79
+ "name": "",
80
+ "type": "uint256"
81
+ }
82
+ ],
83
+ "name": "NFT_MISSING",
84
+ "type": "error"
85
+ },
86
+ {
87
+ "inputs": [],
88
+ "name": "NOT_MANAGER",
89
+ "type": "error"
90
+ },
91
+ {
92
+ "inputs": [],
93
+ "name": "NO_BALANCE",
94
+ "type": "error"
95
+ },
96
+ {
97
+ "inputs": [],
98
+ "name": "NotAcceptedSuperToken",
99
+ "type": "error"
100
+ },
101
+ {
102
+ "inputs": [],
103
+ "name": "NotImplemented",
104
+ "type": "error"
105
+ },
106
+ {
107
+ "inputs": [
108
+ {
109
+ "internalType": "address",
110
+ "name": "",
111
+ "type": "address"
112
+ }
113
+ ],
114
+ "name": "ONLY_HOST_OR_SENDER",
115
+ "type": "error"
116
+ },
117
+ {
118
+ "inputs": [],
119
+ "name": "OVER_GLOBAL_LIMITS",
120
+ "type": "error"
121
+ },
122
+ {
123
+ "inputs": [
124
+ {
125
+ "internalType": "address",
126
+ "name": "",
127
+ "type": "address"
128
+ }
129
+ ],
130
+ "name": "OVER_MEMBER_LIMITS",
131
+ "type": "error"
132
+ },
133
+ {
134
+ "inputs": [],
135
+ "name": "UNSUPPORTED_NFT",
136
+ "type": "error"
137
+ },
138
+ {
139
+ "inputs": [],
140
+ "name": "UNSUPPORTED_TOKEN",
141
+ "type": "error"
142
+ },
143
+ {
144
+ "inputs": [],
145
+ "name": "UnauthorizedHost",
146
+ "type": "error"
147
+ },
148
+ {
149
+ "inputs": [],
150
+ "name": "ZERO_ADDRESS",
151
+ "type": "error"
152
+ },
153
+ {
154
+ "inputs": [],
155
+ "name": "ZERO_AMOUNT",
156
+ "type": "error"
157
+ },
158
+ {
159
+ "anonymous": false,
160
+ "inputs": [
161
+ {
162
+ "indexed": false,
163
+ "internalType": "address",
164
+ "name": "previousAdmin",
165
+ "type": "address"
166
+ },
167
+ {
168
+ "indexed": false,
169
+ "internalType": "address",
170
+ "name": "newAdmin",
171
+ "type": "address"
172
+ }
173
+ ],
174
+ "name": "AdminChanged",
175
+ "type": "event"
176
+ },
177
+ {
178
+ "anonymous": false,
179
+ "inputs": [
180
+ {
181
+ "indexed": true,
182
+ "internalType": "address",
183
+ "name": "beacon",
184
+ "type": "address"
185
+ }
186
+ ],
187
+ "name": "BeaconUpgraded",
188
+ "type": "event"
189
+ },
190
+ {
191
+ "anonymous": false,
192
+ "inputs": [
193
+ {
194
+ "indexed": true,
195
+ "internalType": "uint256",
196
+ "name": "tokenId",
197
+ "type": "uint256"
198
+ },
199
+ {
200
+ "indexed": false,
201
+ "internalType": "uint16",
202
+ "name": "eventType",
203
+ "type": "uint16"
204
+ },
205
+ {
206
+ "indexed": false,
207
+ "internalType": "uint32",
208
+ "name": "eventTimestamp",
209
+ "type": "uint32"
210
+ },
211
+ {
212
+ "indexed": false,
213
+ "internalType": "uint256",
214
+ "name": "eventQuantity",
215
+ "type": "uint256"
216
+ },
217
+ {
218
+ "indexed": false,
219
+ "internalType": "string",
220
+ "name": "eventUri",
221
+ "type": "string"
222
+ },
223
+ {
224
+ "indexed": false,
225
+ "internalType": "address[]",
226
+ "name": "contributers",
227
+ "type": "address[]"
228
+ },
229
+ {
230
+ "indexed": false,
231
+ "internalType": "uint256",
232
+ "name": "rewardPerContributer",
233
+ "type": "uint256"
234
+ }
235
+ ],
236
+ "name": "EventRewardClaimed",
237
+ "type": "event"
238
+ },
239
+ {
240
+ "anonymous": false,
241
+ "inputs": [
242
+ {
243
+ "indexed": false,
244
+ "internalType": "uint8",
245
+ "name": "version",
246
+ "type": "uint8"
247
+ }
248
+ ],
249
+ "name": "Initialized",
250
+ "type": "event"
251
+ },
252
+ {
253
+ "anonymous": false,
254
+ "inputs": [
255
+ {
256
+ "indexed": true,
257
+ "internalType": "uint256",
258
+ "name": "tokenId",
259
+ "type": "uint256"
260
+ },
261
+ {
262
+ "indexed": false,
263
+ "internalType": "uint256",
264
+ "name": "totalRewards",
265
+ "type": "uint256"
266
+ }
267
+ ],
268
+ "name": "NFTClaimed",
269
+ "type": "event"
270
+ },
271
+ {
272
+ "anonymous": false,
273
+ "inputs": [
274
+ {
275
+ "indexed": false,
276
+ "internalType": "address",
277
+ "name": "contributer",
278
+ "type": "address"
279
+ }
280
+ ],
281
+ "name": "NOT_MEMBER_OR_WHITELISTED_OR_LIMITS",
282
+ "type": "event"
283
+ },
284
+ {
285
+ "anonymous": false,
286
+ "inputs": [
287
+ {
288
+ "indexed": true,
289
+ "internalType": "address",
290
+ "name": "pool",
291
+ "type": "address"
292
+ },
293
+ {
294
+ "indexed": true,
295
+ "internalType": "string",
296
+ "name": "projectId",
297
+ "type": "string"
298
+ },
299
+ {
300
+ "indexed": false,
301
+ "internalType": "string",
302
+ "name": "ipfs",
303
+ "type": "string"
304
+ },
305
+ {
306
+ "indexed": true,
307
+ "internalType": "uint32",
308
+ "name": "nftType",
309
+ "type": "uint32"
310
+ },
311
+ {
312
+ "components": [
313
+ {
314
+ "internalType": "uint32",
315
+ "name": "nftType",
316
+ "type": "uint32"
317
+ },
318
+ {
319
+ "internalType": "uint16[]",
320
+ "name": "validEvents",
321
+ "type": "uint16[]"
322
+ },
323
+ {
324
+ "internalType": "uint128[]",
325
+ "name": "rewardPerEvent",
326
+ "type": "uint128[]"
327
+ },
328
+ {
329
+ "internalType": "address",
330
+ "name": "manager",
331
+ "type": "address"
332
+ },
333
+ {
334
+ "internalType": "contract IMembersValidator",
335
+ "name": "membersValidator",
336
+ "type": "address"
337
+ },
338
+ {
339
+ "internalType": "contract IIdentityV2",
340
+ "name": "uniquenessValidator",
341
+ "type": "address"
342
+ },
343
+ {
344
+ "internalType": "contract IERC20Upgradeable",
345
+ "name": "rewardToken",
346
+ "type": "address"
347
+ },
348
+ {
349
+ "internalType": "bool",
350
+ "name": "allowRewardOverride",
351
+ "type": "bool"
352
+ }
353
+ ],
354
+ "indexed": false,
355
+ "internalType": "struct DirectPaymentsPool.PoolSettings",
356
+ "name": "poolSettings",
357
+ "type": "tuple"
358
+ },
359
+ {
360
+ "components": [
361
+ {
362
+ "internalType": "uint256",
363
+ "name": "maxTotalPerMonth",
364
+ "type": "uint256"
365
+ },
366
+ {
367
+ "internalType": "uint256",
368
+ "name": "maxMemberPerMonth",
369
+ "type": "uint256"
370
+ },
371
+ {
372
+ "internalType": "uint256",
373
+ "name": "maxMemberPerDay",
374
+ "type": "uint256"
375
+ }
376
+ ],
377
+ "indexed": false,
378
+ "internalType": "struct DirectPaymentsPool.SafetyLimits",
379
+ "name": "poolLimits",
380
+ "type": "tuple"
381
+ }
382
+ ],
383
+ "name": "PoolCreated",
384
+ "type": "event"
385
+ },
386
+ {
387
+ "anonymous": false,
388
+ "inputs": [
389
+ {
390
+ "components": [
391
+ {
392
+ "internalType": "uint256",
393
+ "name": "maxTotalPerMonth",
394
+ "type": "uint256"
395
+ },
396
+ {
397
+ "internalType": "uint256",
398
+ "name": "maxMemberPerMonth",
399
+ "type": "uint256"
400
+ },
401
+ {
402
+ "internalType": "uint256",
403
+ "name": "maxMemberPerDay",
404
+ "type": "uint256"
405
+ }
406
+ ],
407
+ "indexed": false,
408
+ "internalType": "struct DirectPaymentsPool.SafetyLimits",
409
+ "name": "limits",
410
+ "type": "tuple"
411
+ }
412
+ ],
413
+ "name": "PoolLimitsChanged",
414
+ "type": "event"
415
+ },
416
+ {
417
+ "anonymous": false,
418
+ "inputs": [
419
+ {
420
+ "components": [
421
+ {
422
+ "internalType": "uint32",
423
+ "name": "nftType",
424
+ "type": "uint32"
425
+ },
426
+ {
427
+ "internalType": "uint16[]",
428
+ "name": "validEvents",
429
+ "type": "uint16[]"
430
+ },
431
+ {
432
+ "internalType": "uint128[]",
433
+ "name": "rewardPerEvent",
434
+ "type": "uint128[]"
435
+ },
436
+ {
437
+ "internalType": "address",
438
+ "name": "manager",
439
+ "type": "address"
440
+ },
441
+ {
442
+ "internalType": "contract IMembersValidator",
443
+ "name": "membersValidator",
444
+ "type": "address"
445
+ },
446
+ {
447
+ "internalType": "contract IIdentityV2",
448
+ "name": "uniquenessValidator",
449
+ "type": "address"
450
+ },
451
+ {
452
+ "internalType": "contract IERC20Upgradeable",
453
+ "name": "rewardToken",
454
+ "type": "address"
455
+ },
456
+ {
457
+ "internalType": "bool",
458
+ "name": "allowRewardOverride",
459
+ "type": "bool"
460
+ }
461
+ ],
462
+ "indexed": false,
463
+ "internalType": "struct DirectPaymentsPool.PoolSettings",
464
+ "name": "settings",
465
+ "type": "tuple"
466
+ }
467
+ ],
468
+ "name": "PoolSettingsChanged",
469
+ "type": "event"
470
+ },
471
+ {
472
+ "anonymous": false,
473
+ "inputs": [
474
+ {
475
+ "indexed": true,
476
+ "internalType": "bytes32",
477
+ "name": "role",
478
+ "type": "bytes32"
479
+ },
480
+ {
481
+ "indexed": true,
482
+ "internalType": "bytes32",
483
+ "name": "previousAdminRole",
484
+ "type": "bytes32"
485
+ },
486
+ {
487
+ "indexed": true,
488
+ "internalType": "bytes32",
489
+ "name": "newAdminRole",
490
+ "type": "bytes32"
491
+ }
492
+ ],
493
+ "name": "RoleAdminChanged",
494
+ "type": "event"
495
+ },
496
+ {
497
+ "anonymous": false,
498
+ "inputs": [
499
+ {
500
+ "indexed": true,
501
+ "internalType": "bytes32",
502
+ "name": "role",
503
+ "type": "bytes32"
504
+ },
505
+ {
506
+ "indexed": true,
507
+ "internalType": "address",
508
+ "name": "account",
509
+ "type": "address"
510
+ },
511
+ {
512
+ "indexed": true,
513
+ "internalType": "address",
514
+ "name": "sender",
515
+ "type": "address"
516
+ }
517
+ ],
518
+ "name": "RoleGranted",
519
+ "type": "event"
520
+ },
521
+ {
522
+ "anonymous": false,
523
+ "inputs": [
524
+ {
525
+ "indexed": true,
526
+ "internalType": "bytes32",
527
+ "name": "role",
528
+ "type": "bytes32"
529
+ },
530
+ {
531
+ "indexed": true,
532
+ "internalType": "address",
533
+ "name": "account",
534
+ "type": "address"
535
+ },
536
+ {
537
+ "indexed": true,
538
+ "internalType": "address",
539
+ "name": "sender",
540
+ "type": "address"
541
+ }
542
+ ],
543
+ "name": "RoleRevoked",
544
+ "type": "event"
545
+ },
546
+ {
547
+ "anonymous": false,
548
+ "inputs": [
549
+ {
550
+ "indexed": true,
551
+ "internalType": "address",
552
+ "name": "supporter",
553
+ "type": "address"
554
+ },
555
+ {
556
+ "indexed": false,
557
+ "internalType": "uint256",
558
+ "name": "previousContribution",
559
+ "type": "uint256"
560
+ },
561
+ {
562
+ "indexed": false,
563
+ "internalType": "uint256",
564
+ "name": "contribution",
565
+ "type": "uint256"
566
+ },
567
+ {
568
+ "indexed": false,
569
+ "internalType": "int96",
570
+ "name": "previousFlowRate",
571
+ "type": "int96"
572
+ },
573
+ {
574
+ "indexed": false,
575
+ "internalType": "int96",
576
+ "name": "flowRate",
577
+ "type": "int96"
578
+ },
579
+ {
580
+ "indexed": false,
581
+ "internalType": "bool",
582
+ "name": "isFlowUpdate",
583
+ "type": "bool"
584
+ }
585
+ ],
586
+ "name": "SupporterUpdated",
587
+ "type": "event"
588
+ },
589
+ {
590
+ "anonymous": false,
591
+ "inputs": [
592
+ {
593
+ "indexed": true,
594
+ "internalType": "address",
595
+ "name": "implementation",
596
+ "type": "address"
597
+ }
598
+ ],
599
+ "name": "Upgraded",
600
+ "type": "event"
601
+ },
602
+ {
603
+ "inputs": [],
604
+ "name": "CFAV1_TYPE",
605
+ "outputs": [
606
+ {
607
+ "internalType": "bytes32",
608
+ "name": "",
609
+ "type": "bytes32"
610
+ }
611
+ ],
612
+ "stateMutability": "view",
613
+ "type": "function"
614
+ },
615
+ {
616
+ "inputs": [],
617
+ "name": "DEFAULT_ADMIN_ROLE",
618
+ "outputs": [
619
+ {
620
+ "internalType": "bytes32",
621
+ "name": "",
622
+ "type": "bytes32"
623
+ }
624
+ ],
625
+ "stateMutability": "view",
626
+ "type": "function"
627
+ },
628
+ {
629
+ "inputs": [],
630
+ "name": "MANAGER_ROLE",
631
+ "outputs": [
632
+ {
633
+ "internalType": "bytes32",
634
+ "name": "",
635
+ "type": "bytes32"
636
+ }
637
+ ],
638
+ "stateMutability": "view",
639
+ "type": "function"
640
+ },
641
+ {
642
+ "inputs": [],
643
+ "name": "MEMBER_ROLE",
644
+ "outputs": [
645
+ {
646
+ "internalType": "bytes32",
647
+ "name": "",
648
+ "type": "bytes32"
649
+ }
650
+ ],
651
+ "stateMutability": "view",
652
+ "type": "function"
653
+ },
654
+ {
655
+ "inputs": [],
656
+ "name": "MINTER_ROLE",
657
+ "outputs": [
658
+ {
659
+ "internalType": "bytes32",
660
+ "name": "",
661
+ "type": "bytes32"
662
+ }
663
+ ],
664
+ "stateMutability": "view",
665
+ "type": "function"
666
+ },
667
+ {
668
+ "inputs": [],
669
+ "name": "MIN_FLOW_RATE",
670
+ "outputs": [
671
+ {
672
+ "internalType": "int96",
673
+ "name": "",
674
+ "type": "int96"
675
+ }
676
+ ],
677
+ "stateMutability": "view",
678
+ "type": "function"
679
+ },
680
+ {
681
+ "inputs": [
682
+ {
683
+ "internalType": "address[]",
684
+ "name": "members",
685
+ "type": "address[]"
686
+ },
687
+ {
688
+ "internalType": "bytes[]",
689
+ "name": "extraData",
690
+ "type": "bytes[]"
691
+ }
692
+ ],
693
+ "name": "addMembers",
694
+ "outputs": [],
695
+ "stateMutability": "nonpayable",
696
+ "type": "function"
697
+ },
698
+ {
699
+ "inputs": [
700
+ {
701
+ "internalType": "contract ISuperToken",
702
+ "name": "superToken",
703
+ "type": "address"
704
+ },
705
+ {
706
+ "internalType": "address",
707
+ "name": "",
708
+ "type": "address"
709
+ },
710
+ {
711
+ "internalType": "bytes32",
712
+ "name": "",
713
+ "type": "bytes32"
714
+ },
715
+ {
716
+ "internalType": "bytes",
717
+ "name": "agreementData",
718
+ "type": "bytes"
719
+ },
720
+ {
721
+ "internalType": "bytes",
722
+ "name": "",
723
+ "type": "bytes"
724
+ },
725
+ {
726
+ "internalType": "bytes",
727
+ "name": "ctx",
728
+ "type": "bytes"
729
+ }
730
+ ],
731
+ "name": "afterAgreementCreated",
732
+ "outputs": [
733
+ {
734
+ "internalType": "bytes",
735
+ "name": "newCtx",
736
+ "type": "bytes"
737
+ }
738
+ ],
739
+ "stateMutability": "nonpayable",
740
+ "type": "function"
741
+ },
742
+ {
743
+ "inputs": [
744
+ {
745
+ "internalType": "contract ISuperToken",
746
+ "name": "superToken",
747
+ "type": "address"
748
+ },
749
+ {
750
+ "internalType": "address",
751
+ "name": "agreementClass",
752
+ "type": "address"
753
+ },
754
+ {
755
+ "internalType": "bytes32",
756
+ "name": "",
757
+ "type": "bytes32"
758
+ },
759
+ {
760
+ "internalType": "bytes",
761
+ "name": "agreementData",
762
+ "type": "bytes"
763
+ },
764
+ {
765
+ "internalType": "bytes",
766
+ "name": "cbdata",
767
+ "type": "bytes"
768
+ },
769
+ {
770
+ "internalType": "bytes",
771
+ "name": "ctx",
772
+ "type": "bytes"
773
+ }
774
+ ],
775
+ "name": "afterAgreementTerminated",
776
+ "outputs": [
777
+ {
778
+ "internalType": "bytes",
779
+ "name": "newCtx",
780
+ "type": "bytes"
781
+ }
782
+ ],
783
+ "stateMutability": "nonpayable",
784
+ "type": "function"
785
+ },
786
+ {
787
+ "inputs": [
788
+ {
789
+ "internalType": "contract ISuperToken",
790
+ "name": "superToken",
791
+ "type": "address"
792
+ },
793
+ {
794
+ "internalType": "address",
795
+ "name": "",
796
+ "type": "address"
797
+ },
798
+ {
799
+ "internalType": "bytes32",
800
+ "name": "",
801
+ "type": "bytes32"
802
+ },
803
+ {
804
+ "internalType": "bytes",
805
+ "name": "agreementData",
806
+ "type": "bytes"
807
+ },
808
+ {
809
+ "internalType": "bytes",
810
+ "name": "cbdata",
811
+ "type": "bytes"
812
+ },
813
+ {
814
+ "internalType": "bytes",
815
+ "name": "ctx",
816
+ "type": "bytes"
817
+ }
818
+ ],
819
+ "name": "afterAgreementUpdated",
820
+ "outputs": [
821
+ {
822
+ "internalType": "bytes",
823
+ "name": "newCtx",
824
+ "type": "bytes"
825
+ }
826
+ ],
827
+ "stateMutability": "nonpayable",
828
+ "type": "function"
829
+ },
830
+ {
831
+ "inputs": [
832
+ {
833
+ "internalType": "contract ISuperToken",
834
+ "name": "superToken",
835
+ "type": "address"
836
+ },
837
+ {
838
+ "internalType": "address",
839
+ "name": "agreementClass",
840
+ "type": "address"
841
+ },
842
+ {
843
+ "internalType": "bytes32",
844
+ "name": "",
845
+ "type": "bytes32"
846
+ },
847
+ {
848
+ "internalType": "bytes",
849
+ "name": "",
850
+ "type": "bytes"
851
+ },
852
+ {
853
+ "internalType": "bytes",
854
+ "name": "",
855
+ "type": "bytes"
856
+ }
857
+ ],
858
+ "name": "beforeAgreementCreated",
859
+ "outputs": [
860
+ {
861
+ "internalType": "bytes",
862
+ "name": "",
863
+ "type": "bytes"
864
+ }
865
+ ],
866
+ "stateMutability": "view",
867
+ "type": "function"
868
+ },
869
+ {
870
+ "inputs": [
871
+ {
872
+ "internalType": "contract ISuperToken",
873
+ "name": "superToken",
874
+ "type": "address"
875
+ },
876
+ {
877
+ "internalType": "address",
878
+ "name": "agreementClass",
879
+ "type": "address"
880
+ },
881
+ {
882
+ "internalType": "bytes32",
883
+ "name": "",
884
+ "type": "bytes32"
885
+ },
886
+ {
887
+ "internalType": "bytes",
888
+ "name": "agreementData",
889
+ "type": "bytes"
890
+ },
891
+ {
892
+ "internalType": "bytes",
893
+ "name": "",
894
+ "type": "bytes"
895
+ }
896
+ ],
897
+ "name": "beforeAgreementTerminated",
898
+ "outputs": [
899
+ {
900
+ "internalType": "bytes",
901
+ "name": "",
902
+ "type": "bytes"
903
+ }
904
+ ],
905
+ "stateMutability": "view",
906
+ "type": "function"
907
+ },
908
+ {
909
+ "inputs": [
910
+ {
911
+ "internalType": "contract ISuperToken",
912
+ "name": "superToken",
913
+ "type": "address"
914
+ },
915
+ {
916
+ "internalType": "address",
917
+ "name": "agreementClass",
918
+ "type": "address"
919
+ },
920
+ {
921
+ "internalType": "bytes32",
922
+ "name": "",
923
+ "type": "bytes32"
924
+ },
925
+ {
926
+ "internalType": "bytes",
927
+ "name": "agreementData",
928
+ "type": "bytes"
929
+ },
930
+ {
931
+ "internalType": "bytes",
932
+ "name": "",
933
+ "type": "bytes"
934
+ }
935
+ ],
936
+ "name": "beforeAgreementUpdated",
937
+ "outputs": [
938
+ {
939
+ "internalType": "bytes",
940
+ "name": "",
941
+ "type": "bytes"
942
+ }
943
+ ],
944
+ "stateMutability": "view",
945
+ "type": "function"
946
+ },
947
+ {
948
+ "inputs": [],
949
+ "name": "cfaV1",
950
+ "outputs": [
951
+ {
952
+ "internalType": "contract ISuperfluid",
953
+ "name": "host",
954
+ "type": "address"
955
+ },
956
+ {
957
+ "internalType": "contract IConstantFlowAgreementV1",
958
+ "name": "cfa",
959
+ "type": "address"
960
+ }
961
+ ],
962
+ "stateMutability": "view",
963
+ "type": "function"
964
+ },
965
+ {
966
+ "inputs": [
967
+ {
968
+ "internalType": "uint256",
969
+ "name": "_nftId",
970
+ "type": "uint256"
971
+ }
972
+ ],
973
+ "name": "claim",
974
+ "outputs": [],
975
+ "stateMutability": "nonpayable",
976
+ "type": "function"
977
+ },
978
+ {
979
+ "inputs": [
980
+ {
981
+ "internalType": "uint256",
982
+ "name": "_nftId",
983
+ "type": "uint256"
984
+ },
985
+ {
986
+ "components": [
987
+ {
988
+ "internalType": "uint32",
989
+ "name": "nftType",
990
+ "type": "uint32"
991
+ },
992
+ {
993
+ "internalType": "uint16",
994
+ "name": "version",
995
+ "type": "uint16"
996
+ },
997
+ {
998
+ "internalType": "string",
999
+ "name": "nftUri",
1000
+ "type": "string"
1001
+ },
1002
+ {
1003
+ "components": [
1004
+ {
1005
+ "internalType": "uint16",
1006
+ "name": "subtype",
1007
+ "type": "uint16"
1008
+ },
1009
+ {
1010
+ "internalType": "uint32",
1011
+ "name": "timestamp",
1012
+ "type": "uint32"
1013
+ },
1014
+ {
1015
+ "internalType": "uint256",
1016
+ "name": "quantity",
1017
+ "type": "uint256"
1018
+ },
1019
+ {
1020
+ "internalType": "string",
1021
+ "name": "eventUri",
1022
+ "type": "string"
1023
+ },
1024
+ {
1025
+ "internalType": "address[]",
1026
+ "name": "contributers",
1027
+ "type": "address[]"
1028
+ },
1029
+ {
1030
+ "internalType": "uint128",
1031
+ "name": "rewardOverride",
1032
+ "type": "uint128"
1033
+ }
1034
+ ],
1035
+ "internalType": "struct ProvableNFT.EventData[]",
1036
+ "name": "events",
1037
+ "type": "tuple[]"
1038
+ }
1039
+ ],
1040
+ "internalType": "struct ProvableNFT.NFTData",
1041
+ "name": "_data",
1042
+ "type": "tuple"
1043
+ }
1044
+ ],
1045
+ "name": "claim",
1046
+ "outputs": [],
1047
+ "stateMutability": "nonpayable",
1048
+ "type": "function"
1049
+ },
1050
+ {
1051
+ "inputs": [
1052
+ {
1053
+ "internalType": "uint256",
1054
+ "name": "",
1055
+ "type": "uint256"
1056
+ }
1057
+ ],
1058
+ "name": "claimedNfts",
1059
+ "outputs": [
1060
+ {
1061
+ "internalType": "bool",
1062
+ "name": "",
1063
+ "type": "bool"
1064
+ }
1065
+ ],
1066
+ "stateMutability": "view",
1067
+ "type": "function"
1068
+ },
1069
+ {
1070
+ "inputs": [],
1071
+ "name": "getManagerFee",
1072
+ "outputs": [
1073
+ {
1074
+ "internalType": "address",
1075
+ "name": "feeRecipient",
1076
+ "type": "address"
1077
+ },
1078
+ {
1079
+ "internalType": "uint32",
1080
+ "name": "feeBps",
1081
+ "type": "uint32"
1082
+ }
1083
+ ],
1084
+ "stateMutability": "view",
1085
+ "type": "function"
1086
+ },
1087
+ {
1088
+ "inputs": [
1089
+ {
1090
+ "internalType": "address",
1091
+ "name": "_user",
1092
+ "type": "address"
1093
+ }
1094
+ ],
1095
+ "name": "getRealtimeContribution",
1096
+ "outputs": [
1097
+ {
1098
+ "internalType": "uint256",
1099
+ "name": "",
1100
+ "type": "uint256"
1101
+ }
1102
+ ],
1103
+ "stateMutability": "view",
1104
+ "type": "function"
1105
+ },
1106
+ {
1107
+ "inputs": [],
1108
+ "name": "getRealtimeStats",
1109
+ "outputs": [
1110
+ {
1111
+ "internalType": "uint256",
1112
+ "name": "netIncome",
1113
+ "type": "uint256"
1114
+ },
1115
+ {
1116
+ "internalType": "uint256",
1117
+ "name": "totalFees",
1118
+ "type": "uint256"
1119
+ },
1120
+ {
1121
+ "internalType": "uint256",
1122
+ "name": "protocolFees",
1123
+ "type": "uint256"
1124
+ },
1125
+ {
1126
+ "internalType": "uint256",
1127
+ "name": "managerFees",
1128
+ "type": "uint256"
1129
+ },
1130
+ {
1131
+ "internalType": "int96",
1132
+ "name": "incomeFlowRate",
1133
+ "type": "int96"
1134
+ },
1135
+ {
1136
+ "internalType": "int96",
1137
+ "name": "feeRate",
1138
+ "type": "int96"
1139
+ },
1140
+ {
1141
+ "internalType": "int96",
1142
+ "name": "managerFeeRate",
1143
+ "type": "int96"
1144
+ }
1145
+ ],
1146
+ "stateMutability": "view",
1147
+ "type": "function"
1148
+ },
1149
+ {
1150
+ "inputs": [],
1151
+ "name": "getRegistry",
1152
+ "outputs": [
1153
+ {
1154
+ "internalType": "contract IRegistry",
1155
+ "name": "",
1156
+ "type": "address"
1157
+ }
1158
+ ],
1159
+ "stateMutability": "view",
1160
+ "type": "function"
1161
+ },
1162
+ {
1163
+ "inputs": [
1164
+ {
1165
+ "internalType": "bytes32",
1166
+ "name": "role",
1167
+ "type": "bytes32"
1168
+ }
1169
+ ],
1170
+ "name": "getRoleAdmin",
1171
+ "outputs": [
1172
+ {
1173
+ "internalType": "bytes32",
1174
+ "name": "",
1175
+ "type": "bytes32"
1176
+ }
1177
+ ],
1178
+ "stateMutability": "view",
1179
+ "type": "function"
1180
+ },
1181
+ {
1182
+ "inputs": [],
1183
+ "name": "globalLimits",
1184
+ "outputs": [
1185
+ {
1186
+ "internalType": "uint128",
1187
+ "name": "daily",
1188
+ "type": "uint128"
1189
+ },
1190
+ {
1191
+ "internalType": "uint128",
1192
+ "name": "monthly",
1193
+ "type": "uint128"
1194
+ },
1195
+ {
1196
+ "internalType": "uint128",
1197
+ "name": "total",
1198
+ "type": "uint128"
1199
+ },
1200
+ {
1201
+ "internalType": "uint64",
1202
+ "name": "lastReward",
1203
+ "type": "uint64"
1204
+ },
1205
+ {
1206
+ "internalType": "uint64",
1207
+ "name": "lastMonth",
1208
+ "type": "uint64"
1209
+ }
1210
+ ],
1211
+ "stateMutability": "view",
1212
+ "type": "function"
1213
+ },
1214
+ {
1215
+ "inputs": [
1216
+ {
1217
+ "internalType": "bytes32",
1218
+ "name": "role",
1219
+ "type": "bytes32"
1220
+ },
1221
+ {
1222
+ "internalType": "address",
1223
+ "name": "account",
1224
+ "type": "address"
1225
+ }
1226
+ ],
1227
+ "name": "grantRole",
1228
+ "outputs": [],
1229
+ "stateMutability": "nonpayable",
1230
+ "type": "function"
1231
+ },
1232
+ {
1233
+ "inputs": [
1234
+ {
1235
+ "components": [
1236
+ {
1237
+ "internalType": "address",
1238
+ "name": "swapFrom",
1239
+ "type": "address"
1240
+ },
1241
+ {
1242
+ "internalType": "uint256",
1243
+ "name": "amount",
1244
+ "type": "uint256"
1245
+ },
1246
+ {
1247
+ "internalType": "uint256",
1248
+ "name": "minReturn",
1249
+ "type": "uint256"
1250
+ },
1251
+ {
1252
+ "internalType": "uint256",
1253
+ "name": "deadline",
1254
+ "type": "uint256"
1255
+ },
1256
+ {
1257
+ "internalType": "bytes",
1258
+ "name": "path",
1259
+ "type": "bytes"
1260
+ }
1261
+ ],
1262
+ "internalType": "struct HelperLibrary.SwapData",
1263
+ "name": "_customData",
1264
+ "type": "tuple"
1265
+ },
1266
+ {
1267
+ "internalType": "address",
1268
+ "name": "_sender",
1269
+ "type": "address"
1270
+ },
1271
+ {
1272
+ "internalType": "bytes",
1273
+ "name": "_ctx",
1274
+ "type": "bytes"
1275
+ }
1276
+ ],
1277
+ "name": "handleSwap",
1278
+ "outputs": [
1279
+ {
1280
+ "internalType": "bytes",
1281
+ "name": "",
1282
+ "type": "bytes"
1283
+ }
1284
+ ],
1285
+ "stateMutability": "nonpayable",
1286
+ "type": "function"
1287
+ },
1288
+ {
1289
+ "inputs": [
1290
+ {
1291
+ "internalType": "bytes32",
1292
+ "name": "role",
1293
+ "type": "bytes32"
1294
+ },
1295
+ {
1296
+ "internalType": "address",
1297
+ "name": "account",
1298
+ "type": "address"
1299
+ }
1300
+ ],
1301
+ "name": "hasRole",
1302
+ "outputs": [
1303
+ {
1304
+ "internalType": "bool",
1305
+ "name": "",
1306
+ "type": "bool"
1307
+ }
1308
+ ],
1309
+ "stateMutability": "view",
1310
+ "type": "function"
1311
+ },
1312
+ {
1313
+ "inputs": [],
1314
+ "name": "host",
1315
+ "outputs": [
1316
+ {
1317
+ "internalType": "contract ISuperfluid",
1318
+ "name": "",
1319
+ "type": "address"
1320
+ }
1321
+ ],
1322
+ "stateMutability": "view",
1323
+ "type": "function"
1324
+ },
1325
+ {
1326
+ "inputs": [
1327
+ {
1328
+ "internalType": "contract ProvableNFT",
1329
+ "name": "_nft",
1330
+ "type": "address"
1331
+ },
1332
+ {
1333
+ "components": [
1334
+ {
1335
+ "internalType": "uint32",
1336
+ "name": "nftType",
1337
+ "type": "uint32"
1338
+ },
1339
+ {
1340
+ "internalType": "uint16[]",
1341
+ "name": "validEvents",
1342
+ "type": "uint16[]"
1343
+ },
1344
+ {
1345
+ "internalType": "uint128[]",
1346
+ "name": "rewardPerEvent",
1347
+ "type": "uint128[]"
1348
+ },
1349
+ {
1350
+ "internalType": "address",
1351
+ "name": "manager",
1352
+ "type": "address"
1353
+ },
1354
+ {
1355
+ "internalType": "contract IMembersValidator",
1356
+ "name": "membersValidator",
1357
+ "type": "address"
1358
+ },
1359
+ {
1360
+ "internalType": "contract IIdentityV2",
1361
+ "name": "uniquenessValidator",
1362
+ "type": "address"
1363
+ },
1364
+ {
1365
+ "internalType": "contract IERC20Upgradeable",
1366
+ "name": "rewardToken",
1367
+ "type": "address"
1368
+ },
1369
+ {
1370
+ "internalType": "bool",
1371
+ "name": "allowRewardOverride",
1372
+ "type": "bool"
1373
+ }
1374
+ ],
1375
+ "internalType": "struct DirectPaymentsPool.PoolSettings",
1376
+ "name": "_settings",
1377
+ "type": "tuple"
1378
+ },
1379
+ {
1380
+ "components": [
1381
+ {
1382
+ "internalType": "uint256",
1383
+ "name": "maxTotalPerMonth",
1384
+ "type": "uint256"
1385
+ },
1386
+ {
1387
+ "internalType": "uint256",
1388
+ "name": "maxMemberPerMonth",
1389
+ "type": "uint256"
1390
+ },
1391
+ {
1392
+ "internalType": "uint256",
1393
+ "name": "maxMemberPerDay",
1394
+ "type": "uint256"
1395
+ }
1396
+ ],
1397
+ "internalType": "struct DirectPaymentsPool.SafetyLimits",
1398
+ "name": "_limits",
1399
+ "type": "tuple"
1400
+ },
1401
+ {
1402
+ "internalType": "uint32",
1403
+ "name": "_managerFeeBps",
1404
+ "type": "uint32"
1405
+ },
1406
+ {
1407
+ "internalType": "contract DirectPaymentsFactory",
1408
+ "name": "_registry",
1409
+ "type": "address"
1410
+ }
1411
+ ],
1412
+ "name": "initialize",
1413
+ "outputs": [],
1414
+ "stateMutability": "nonpayable",
1415
+ "type": "function"
1416
+ },
1417
+ {
1418
+ "inputs": [
1419
+ {
1420
+ "internalType": "contract ISuperToken",
1421
+ "name": "_superToken",
1422
+ "type": "address"
1423
+ }
1424
+ ],
1425
+ "name": "isAcceptedSuperToken",
1426
+ "outputs": [
1427
+ {
1428
+ "internalType": "bool",
1429
+ "name": "",
1430
+ "type": "bool"
1431
+ }
1432
+ ],
1433
+ "stateMutability": "view",
1434
+ "type": "function"
1435
+ },
1436
+ {
1437
+ "inputs": [],
1438
+ "name": "limits",
1439
+ "outputs": [
1440
+ {
1441
+ "internalType": "uint256",
1442
+ "name": "maxTotalPerMonth",
1443
+ "type": "uint256"
1444
+ },
1445
+ {
1446
+ "internalType": "uint256",
1447
+ "name": "maxMemberPerMonth",
1448
+ "type": "uint256"
1449
+ },
1450
+ {
1451
+ "internalType": "uint256",
1452
+ "name": "maxMemberPerDay",
1453
+ "type": "uint256"
1454
+ }
1455
+ ],
1456
+ "stateMutability": "view",
1457
+ "type": "function"
1458
+ },
1459
+ {
1460
+ "inputs": [],
1461
+ "name": "managerFeeBps",
1462
+ "outputs": [
1463
+ {
1464
+ "internalType": "uint32",
1465
+ "name": "",
1466
+ "type": "uint32"
1467
+ }
1468
+ ],
1469
+ "stateMutability": "view",
1470
+ "type": "function"
1471
+ },
1472
+ {
1473
+ "inputs": [
1474
+ {
1475
+ "internalType": "address",
1476
+ "name": "",
1477
+ "type": "address"
1478
+ }
1479
+ ],
1480
+ "name": "memberLimits",
1481
+ "outputs": [
1482
+ {
1483
+ "internalType": "uint128",
1484
+ "name": "daily",
1485
+ "type": "uint128"
1486
+ },
1487
+ {
1488
+ "internalType": "uint128",
1489
+ "name": "monthly",
1490
+ "type": "uint128"
1491
+ },
1492
+ {
1493
+ "internalType": "uint128",
1494
+ "name": "total",
1495
+ "type": "uint128"
1496
+ },
1497
+ {
1498
+ "internalType": "uint64",
1499
+ "name": "lastReward",
1500
+ "type": "uint64"
1501
+ },
1502
+ {
1503
+ "internalType": "uint64",
1504
+ "name": "lastMonth",
1505
+ "type": "uint64"
1506
+ }
1507
+ ],
1508
+ "stateMutability": "view",
1509
+ "type": "function"
1510
+ },
1511
+ {
1512
+ "inputs": [
1513
+ {
1514
+ "internalType": "address",
1515
+ "name": "_to",
1516
+ "type": "address"
1517
+ },
1518
+ {
1519
+ "components": [
1520
+ {
1521
+ "internalType": "uint32",
1522
+ "name": "nftType",
1523
+ "type": "uint32"
1524
+ },
1525
+ {
1526
+ "internalType": "uint16",
1527
+ "name": "version",
1528
+ "type": "uint16"
1529
+ },
1530
+ {
1531
+ "internalType": "string",
1532
+ "name": "nftUri",
1533
+ "type": "string"
1534
+ },
1535
+ {
1536
+ "components": [
1537
+ {
1538
+ "internalType": "uint16",
1539
+ "name": "subtype",
1540
+ "type": "uint16"
1541
+ },
1542
+ {
1543
+ "internalType": "uint32",
1544
+ "name": "timestamp",
1545
+ "type": "uint32"
1546
+ },
1547
+ {
1548
+ "internalType": "uint256",
1549
+ "name": "quantity",
1550
+ "type": "uint256"
1551
+ },
1552
+ {
1553
+ "internalType": "string",
1554
+ "name": "eventUri",
1555
+ "type": "string"
1556
+ },
1557
+ {
1558
+ "internalType": "address[]",
1559
+ "name": "contributers",
1560
+ "type": "address[]"
1561
+ },
1562
+ {
1563
+ "internalType": "uint128",
1564
+ "name": "rewardOverride",
1565
+ "type": "uint128"
1566
+ }
1567
+ ],
1568
+ "internalType": "struct ProvableNFT.EventData[]",
1569
+ "name": "events",
1570
+ "type": "tuple[]"
1571
+ }
1572
+ ],
1573
+ "internalType": "struct ProvableNFT.NFTData",
1574
+ "name": "_nftData",
1575
+ "type": "tuple"
1576
+ },
1577
+ {
1578
+ "internalType": "bool",
1579
+ "name": "withClaim",
1580
+ "type": "bool"
1581
+ }
1582
+ ],
1583
+ "name": "mintNFT",
1584
+ "outputs": [],
1585
+ "stateMutability": "nonpayable",
1586
+ "type": "function"
1587
+ },
1588
+ {
1589
+ "inputs": [],
1590
+ "name": "nft",
1591
+ "outputs": [
1592
+ {
1593
+ "internalType": "contract ProvableNFT",
1594
+ "name": "",
1595
+ "type": "address"
1596
+ }
1597
+ ],
1598
+ "stateMutability": "view",
1599
+ "type": "function"
1600
+ },
1601
+ {
1602
+ "inputs": [
1603
+ {
1604
+ "internalType": "address",
1605
+ "name": "operator",
1606
+ "type": "address"
1607
+ },
1608
+ {
1609
+ "internalType": "address",
1610
+ "name": "from",
1611
+ "type": "address"
1612
+ },
1613
+ {
1614
+ "internalType": "uint256",
1615
+ "name": "tokenId",
1616
+ "type": "uint256"
1617
+ },
1618
+ {
1619
+ "internalType": "bytes",
1620
+ "name": "data",
1621
+ "type": "bytes"
1622
+ }
1623
+ ],
1624
+ "name": "onERC721Received",
1625
+ "outputs": [
1626
+ {
1627
+ "internalType": "bytes4",
1628
+ "name": "",
1629
+ "type": "bytes4"
1630
+ }
1631
+ ],
1632
+ "stateMutability": "nonpayable",
1633
+ "type": "function"
1634
+ },
1635
+ {
1636
+ "inputs": [
1637
+ {
1638
+ "internalType": "address",
1639
+ "name": "_sender",
1640
+ "type": "address"
1641
+ },
1642
+ {
1643
+ "internalType": "uint256",
1644
+ "name": "_amount",
1645
+ "type": "uint256"
1646
+ },
1647
+ {
1648
+ "internalType": "bytes",
1649
+ "name": "",
1650
+ "type": "bytes"
1651
+ }
1652
+ ],
1653
+ "name": "onTokenTransfer",
1654
+ "outputs": [
1655
+ {
1656
+ "internalType": "bool",
1657
+ "name": "",
1658
+ "type": "bool"
1659
+ }
1660
+ ],
1661
+ "stateMutability": "nonpayable",
1662
+ "type": "function"
1663
+ },
1664
+ {
1665
+ "inputs": [],
1666
+ "name": "proxiableUUID",
1667
+ "outputs": [
1668
+ {
1669
+ "internalType": "bytes32",
1670
+ "name": "",
1671
+ "type": "bytes32"
1672
+ }
1673
+ ],
1674
+ "stateMutability": "view",
1675
+ "type": "function"
1676
+ },
1677
+ {
1678
+ "inputs": [
1679
+ {
1680
+ "internalType": "address",
1681
+ "name": "_recipient",
1682
+ "type": "address"
1683
+ },
1684
+ {
1685
+ "internalType": "uint256",
1686
+ "name": "amount",
1687
+ "type": "uint256"
1688
+ }
1689
+ ],
1690
+ "name": "recoverFunds",
1691
+ "outputs": [],
1692
+ "stateMutability": "nonpayable",
1693
+ "type": "function"
1694
+ },
1695
+ {
1696
+ "inputs": [],
1697
+ "name": "registry",
1698
+ "outputs": [
1699
+ {
1700
+ "internalType": "contract DirectPaymentsFactory",
1701
+ "name": "",
1702
+ "type": "address"
1703
+ }
1704
+ ],
1705
+ "stateMutability": "view",
1706
+ "type": "function"
1707
+ },
1708
+ {
1709
+ "inputs": [
1710
+ {
1711
+ "internalType": "bytes32",
1712
+ "name": "role",
1713
+ "type": "bytes32"
1714
+ },
1715
+ {
1716
+ "internalType": "address",
1717
+ "name": "account",
1718
+ "type": "address"
1719
+ }
1720
+ ],
1721
+ "name": "renounceRole",
1722
+ "outputs": [],
1723
+ "stateMutability": "nonpayable",
1724
+ "type": "function"
1725
+ },
1726
+ {
1727
+ "inputs": [
1728
+ {
1729
+ "internalType": "bytes32",
1730
+ "name": "role",
1731
+ "type": "bytes32"
1732
+ },
1733
+ {
1734
+ "internalType": "address",
1735
+ "name": "account",
1736
+ "type": "address"
1737
+ }
1738
+ ],
1739
+ "name": "revokeRole",
1740
+ "outputs": [],
1741
+ "stateMutability": "nonpayable",
1742
+ "type": "function"
1743
+ },
1744
+ {
1745
+ "inputs": [
1746
+ {
1747
+ "components": [
1748
+ {
1749
+ "internalType": "uint256",
1750
+ "name": "maxTotalPerMonth",
1751
+ "type": "uint256"
1752
+ },
1753
+ {
1754
+ "internalType": "uint256",
1755
+ "name": "maxMemberPerMonth",
1756
+ "type": "uint256"
1757
+ },
1758
+ {
1759
+ "internalType": "uint256",
1760
+ "name": "maxMemberPerDay",
1761
+ "type": "uint256"
1762
+ }
1763
+ ],
1764
+ "internalType": "struct DirectPaymentsPool.SafetyLimits",
1765
+ "name": "_limits",
1766
+ "type": "tuple"
1767
+ }
1768
+ ],
1769
+ "name": "setPoolLimits",
1770
+ "outputs": [],
1771
+ "stateMutability": "nonpayable",
1772
+ "type": "function"
1773
+ },
1774
+ {
1775
+ "inputs": [
1776
+ {
1777
+ "components": [
1778
+ {
1779
+ "internalType": "uint32",
1780
+ "name": "nftType",
1781
+ "type": "uint32"
1782
+ },
1783
+ {
1784
+ "internalType": "uint16[]",
1785
+ "name": "validEvents",
1786
+ "type": "uint16[]"
1787
+ },
1788
+ {
1789
+ "internalType": "uint128[]",
1790
+ "name": "rewardPerEvent",
1791
+ "type": "uint128[]"
1792
+ },
1793
+ {
1794
+ "internalType": "address",
1795
+ "name": "manager",
1796
+ "type": "address"
1797
+ },
1798
+ {
1799
+ "internalType": "contract IMembersValidator",
1800
+ "name": "membersValidator",
1801
+ "type": "address"
1802
+ },
1803
+ {
1804
+ "internalType": "contract IIdentityV2",
1805
+ "name": "uniquenessValidator",
1806
+ "type": "address"
1807
+ },
1808
+ {
1809
+ "internalType": "contract IERC20Upgradeable",
1810
+ "name": "rewardToken",
1811
+ "type": "address"
1812
+ },
1813
+ {
1814
+ "internalType": "bool",
1815
+ "name": "allowRewardOverride",
1816
+ "type": "bool"
1817
+ }
1818
+ ],
1819
+ "internalType": "struct DirectPaymentsPool.PoolSettings",
1820
+ "name": "_settings",
1821
+ "type": "tuple"
1822
+ },
1823
+ {
1824
+ "internalType": "uint32",
1825
+ "name": "_managerFeeBps",
1826
+ "type": "uint32"
1827
+ }
1828
+ ],
1829
+ "name": "setPoolSettings",
1830
+ "outputs": [],
1831
+ "stateMutability": "nonpayable",
1832
+ "type": "function"
1833
+ },
1834
+ {
1835
+ "inputs": [],
1836
+ "name": "settings",
1837
+ "outputs": [
1838
+ {
1839
+ "internalType": "uint32",
1840
+ "name": "nftType",
1841
+ "type": "uint32"
1842
+ },
1843
+ {
1844
+ "internalType": "address",
1845
+ "name": "manager",
1846
+ "type": "address"
1847
+ },
1848
+ {
1849
+ "internalType": "contract IMembersValidator",
1850
+ "name": "membersValidator",
1851
+ "type": "address"
1852
+ },
1853
+ {
1854
+ "internalType": "contract IIdentityV2",
1855
+ "name": "uniquenessValidator",
1856
+ "type": "address"
1857
+ },
1858
+ {
1859
+ "internalType": "contract IERC20Upgradeable",
1860
+ "name": "rewardToken",
1861
+ "type": "address"
1862
+ },
1863
+ {
1864
+ "internalType": "bool",
1865
+ "name": "allowRewardOverride",
1866
+ "type": "bool"
1867
+ }
1868
+ ],
1869
+ "stateMutability": "view",
1870
+ "type": "function"
1871
+ },
1872
+ {
1873
+ "inputs": [],
1874
+ "name": "stats",
1875
+ "outputs": [
1876
+ {
1877
+ "internalType": "uint256",
1878
+ "name": "netIncome",
1879
+ "type": "uint256"
1880
+ },
1881
+ {
1882
+ "internalType": "uint256",
1883
+ "name": "totalFees",
1884
+ "type": "uint256"
1885
+ },
1886
+ {
1887
+ "internalType": "uint256",
1888
+ "name": "lastUpdate",
1889
+ "type": "uint256"
1890
+ },
1891
+ {
1892
+ "internalType": "address",
1893
+ "name": "lastFeeRecipient",
1894
+ "type": "address"
1895
+ },
1896
+ {
1897
+ "internalType": "int96",
1898
+ "name": "lastIncomeRate",
1899
+ "type": "int96"
1900
+ },
1901
+ {
1902
+ "internalType": "address",
1903
+ "name": "lastManagerFeeRecipient",
1904
+ "type": "address"
1905
+ },
1906
+ {
1907
+ "internalType": "uint256",
1908
+ "name": "protocolFees",
1909
+ "type": "uint256"
1910
+ },
1911
+ {
1912
+ "internalType": "uint256",
1913
+ "name": "managerFees",
1914
+ "type": "uint256"
1915
+ }
1916
+ ],
1917
+ "stateMutability": "view",
1918
+ "type": "function"
1919
+ },
1920
+ {
1921
+ "inputs": [],
1922
+ "name": "superToken",
1923
+ "outputs": [
1924
+ {
1925
+ "internalType": "contract ISuperToken",
1926
+ "name": "",
1927
+ "type": "address"
1928
+ }
1929
+ ],
1930
+ "stateMutability": "view",
1931
+ "type": "function"
1932
+ },
1933
+ {
1934
+ "inputs": [
1935
+ {
1936
+ "internalType": "address",
1937
+ "name": "_sender",
1938
+ "type": "address"
1939
+ },
1940
+ {
1941
+ "internalType": "uint256",
1942
+ "name": "_amount",
1943
+ "type": "uint256"
1944
+ },
1945
+ {
1946
+ "internalType": "bytes",
1947
+ "name": "_ctx",
1948
+ "type": "bytes"
1949
+ }
1950
+ ],
1951
+ "name": "support",
1952
+ "outputs": [
1953
+ {
1954
+ "internalType": "bytes",
1955
+ "name": "",
1956
+ "type": "bytes"
1957
+ }
1958
+ ],
1959
+ "stateMutability": "nonpayable",
1960
+ "type": "function"
1961
+ },
1962
+ {
1963
+ "inputs": [
1964
+ {
1965
+ "internalType": "address",
1966
+ "name": "_sender",
1967
+ "type": "address"
1968
+ },
1969
+ {
1970
+ "components": [
1971
+ {
1972
+ "internalType": "address",
1973
+ "name": "swapFrom",
1974
+ "type": "address"
1975
+ },
1976
+ {
1977
+ "internalType": "uint256",
1978
+ "name": "amount",
1979
+ "type": "uint256"
1980
+ },
1981
+ {
1982
+ "internalType": "uint256",
1983
+ "name": "minReturn",
1984
+ "type": "uint256"
1985
+ },
1986
+ {
1987
+ "internalType": "uint256",
1988
+ "name": "deadline",
1989
+ "type": "uint256"
1990
+ },
1991
+ {
1992
+ "internalType": "bytes",
1993
+ "name": "path",
1994
+ "type": "bytes"
1995
+ }
1996
+ ],
1997
+ "internalType": "struct HelperLibrary.SwapData",
1998
+ "name": "_customData",
1999
+ "type": "tuple"
2000
+ },
2001
+ {
2002
+ "internalType": "bytes",
2003
+ "name": "_ctx",
2004
+ "type": "bytes"
2005
+ }
2006
+ ],
2007
+ "name": "supportWithSwap",
2008
+ "outputs": [
2009
+ {
2010
+ "internalType": "bytes",
2011
+ "name": "",
2012
+ "type": "bytes"
2013
+ }
2014
+ ],
2015
+ "stateMutability": "nonpayable",
2016
+ "type": "function"
2017
+ },
2018
+ {
2019
+ "inputs": [
2020
+ {
2021
+ "internalType": "address",
2022
+ "name": "",
2023
+ "type": "address"
2024
+ }
2025
+ ],
2026
+ "name": "supporters",
2027
+ "outputs": [
2028
+ {
2029
+ "internalType": "uint256",
2030
+ "name": "contribution",
2031
+ "type": "uint256"
2032
+ },
2033
+ {
2034
+ "internalType": "int96",
2035
+ "name": "flowRate",
2036
+ "type": "int96"
2037
+ },
2038
+ {
2039
+ "internalType": "uint128",
2040
+ "name": "lastUpdated",
2041
+ "type": "uint128"
2042
+ }
2043
+ ],
2044
+ "stateMutability": "view",
2045
+ "type": "function"
2046
+ },
2047
+ {
2048
+ "inputs": [
2049
+ {
2050
+ "internalType": "bytes4",
2051
+ "name": "interfaceId",
2052
+ "type": "bytes4"
2053
+ }
2054
+ ],
2055
+ "name": "supportsInterface",
2056
+ "outputs": [
2057
+ {
2058
+ "internalType": "bool",
2059
+ "name": "",
2060
+ "type": "bool"
2061
+ }
2062
+ ],
2063
+ "stateMutability": "view",
2064
+ "type": "function"
2065
+ },
2066
+ {
2067
+ "inputs": [],
2068
+ "name": "swapRouter",
2069
+ "outputs": [
2070
+ {
2071
+ "internalType": "contract IV3SwapRouter",
2072
+ "name": "",
2073
+ "type": "address"
2074
+ }
2075
+ ],
2076
+ "stateMutability": "view",
2077
+ "type": "function"
2078
+ },
2079
+ {
2080
+ "inputs": [
2081
+ {
2082
+ "internalType": "address",
2083
+ "name": "newImplementation",
2084
+ "type": "address"
2085
+ }
2086
+ ],
2087
+ "name": "upgradeTo",
2088
+ "outputs": [],
2089
+ "stateMutability": "nonpayable",
2090
+ "type": "function"
2091
+ },
2092
+ {
2093
+ "inputs": [
2094
+ {
2095
+ "internalType": "address",
2096
+ "name": "newImplementation",
2097
+ "type": "address"
2098
+ },
2099
+ {
2100
+ "internalType": "bytes",
2101
+ "name": "data",
2102
+ "type": "bytes"
2103
+ }
2104
+ ],
2105
+ "name": "upgradeToAndCall",
2106
+ "outputs": [],
2107
+ "stateMutability": "payable",
2108
+ "type": "function"
2109
+ },
2110
+ {
2111
+ "inputs": [
2112
+ {
2113
+ "internalType": "bytes",
2114
+ "name": "data",
2115
+ "type": "bytes"
2116
+ }
2117
+ ],
2118
+ "name": "upgradeToLatest",
2119
+ "outputs": [],
2120
+ "stateMutability": "payable",
2121
+ "type": "function"
2122
+ }
2123
+ ],
2124
+ "bytecode": "0x60e06040523060c0523480156200001557600080fd5b506040516200616a3803806200616a833981016040819052620000389162000098565b6001600160a01b038216608081905282908290620000695760405163538ba4f960e01b815260040160405180910390fd5b6001600160a01b031660a05250620000d7915050565b6001600160a01b03811681146200009557600080fd5b50565b60008060408385031215620000ac57600080fd5b8251620000b9816200007f565b6020840151909250620000cc816200007f565b809150509250929050565b60805160a05160c051615fec6200017e600039600081816111a7015281816111e70152818161158f015281816115cf015261164701526000818161095701528181610e780152612260015260008181610bff01528181610dfa01528181611069015281816116f501528181611854015281816119f801528181611eca015281816121760152818161269d015281816129af01528181612a460152612ab00152615fec6000f3fe6080604052600436106102655760003560e01c80630150aefb1461026a57806301ffc9a7146102b05780630947e8c7146102d05780630c7107761461030a578063150b7a0214610336578063198055381461036f5780631a2a84b3146103a85780631bb15f3d146103d65780631db128c714610482578063229a36fa146104af578063230dbd29146104d1578063248a9ca3146104f15780632b4116f7146105115780632f2ff15d1461053e57806330d9c9151461055e57806336568abe1461057e5780633659cfe61461059e578063379607f5146105be57806347ccca02146105de5780634b1e337f146105ff5780634f1ef2861461061f57806352d1902d1461063257806353c11f991461064757806358609754146106675780635ab1bd53146106875780635f9e7d771461069c578063647c75e2146106bc57806372ca8a3e1461072d57806376ba085b1461074d5780637b1039991461076d578063860aefcf1461078e578063884d1f40146107cb57806391d14854146107eb5780639e83995f1461080b5780639f351ce41461082b5780639f8fddd21461084b578063a10f469e1461086b578063a217fddf1461088d578063a4c0ed36146108a2578063ae827200146108c2578063bcb4546f146108d5578063c2e11e3f146108f7578063c31c9c0714610945578063d3112b2e14610979578063d5391393146109ae578063d547741f146109d0578063d80528ae146109f0578063d86ed3e514610a81578063dc61d5c214610aa1578063def482a414610af4578063e06174e414610b14578063ec87621c14610bab578063f3d5e34814610bcd578063f437bc5914610bed575b600080fd5b34801561027657600080fd5b5061029b610285366004613ebd565b61013e6020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b3480156102bc57600080fd5b5061029b6102cb366004613ed6565b610c21565b3480156102dc57600080fd5b50610143546102f590600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016102a7565b34801561031657600080fd5b506103236459df64940081565b604051600b9190910b81526020016102a7565b34801561034257600080fd5b50610356610351366004613f6d565b610c58565b6040516001600160e01b031990911681526020016102a7565b34801561037b57600080fd5b50610384610d13565b604080516001600160a01b03909316835263ffffffff9091166020830152016102a7565b3480156103b457600080fd5b506103c86103c3366004613fec565b610d38565b6040519081526020016102a7565b3480156103e257600080fd5b5061043e6103f1366004613fec565b61014060205260009081526040902080546001909101546001600160801b0380831692600160801b90819004821692918216916001600160401b03918104821691600160c01b9091041685565b604080516001600160801b039687168152948616602086015292909416918301919091526001600160401b039081166060830152909116608082015260a0016102a7565b34801561048e57600080fd5b506104a261049d3660046141de565b610dd8565b6040516102a791906142a5565b3480156104bb57600080fd5b506104cf6104ca3660046142fc565b610ef9565b005b3480156104dd57600080fd5b506104a26104ec366004614367565b610fdf565b3480156104fd57600080fd5b506103c861050c366004613ebd565b611026565b34801561051d57600080fd5b50609754610531906001600160a01b031681565b6040516102a79190614431565b34801561054a57600080fd5b506104cf610559366004614445565b61103b565b34801561056a57600080fd5b506104a2610579366004614475565b61105c565b34801561058a57600080fd5b506104cf610599366004614445565b61111f565b3480156105aa57600080fd5b506104cf6105b9366004613fec565b61119d565b3480156105ca57600080fd5b506104cf6105d9366004613ebd565b611265565b3480156105ea57600080fd5b5061013d54610531906001600160a01b031681565b34801561060b57600080fd5b506104cf61061a3660046147aa565b6112dd565b6104cf61062d366004614832565b611585565b34801561063e57600080fd5b506103c861163a565b34801561065357600080fd5b506104a2610662366004614367565b6116e8565b34801561067357600080fd5b506104cf610682366004614881565b6117c5565b34801561069357600080fd5b50610531611837565b3480156106a857600080fd5b506104a26106b7366004614475565b611847565b3480156106c857600080fd5b506107066106d7366004613fec565b60986020526000908152604090208054600190910154600b81900b90600160601b90046001600160801b031683565b60408051938452600b9290920b60208401526001600160801b0316908201526060016102a7565b34801561073957600080fd5b5061029b610748366004613fec565b61192c565b34801561075957600080fd5b506104cf610768366004614aaf565b611940565b34801561077957600080fd5b5061014354610531906001600160a01b031681565b34801561079a57600080fd5b5061013a5461013b5461013c546107b092919083565b604080519384526020840192909252908201526060016102a7565b3480156107d757600080fd5b506104a26107e6366004614475565b6119eb565b3480156107f757600080fd5b5061029b610806366004614445565b611ae8565b34801561081757600080fd5b506104cf610826366004614b12565b611b13565b34801561083757600080fd5b506104cf610846366004614b58565b611ce3565b34801561085757600080fd5b506104a2610866366004614b94565b611ea8565b34801561087757600080fd5b506103c8600080516020615f9783398151915281565b34801561089957600080fd5b506103c8600081565b3480156108ae57600080fd5b5061029b6108bd366004614be2565b611f62565b6104cf6108d0366004614c31565b611fd9565b3480156108e157600080fd5b506103c8600080516020615ed083398151915281565b34801561090357600080fd5b50610141546101425461043e916001600160801b0380821692600160801b92839004821692918116916001600160401b03908204811691600160c01b90041685565b34801561095157600080fd5b506105317f000000000000000000000000000000000000000000000000000000000000000081565b34801561098557600080fd5b50609954609a546109a0916001600160a01b03908116911682565b6040516102a7929190614c65565b3480156109ba57600080fd5b506103c8600080516020615ef083398151915281565b3480156109dc57600080fd5b506104cf6109eb366004614445565b61205f565b3480156109fc57600080fd5b50609b54609c54609d54609e54609f5460a05460a154610a37969594936001600160a01b0380821694600160a01b909204600b0b9391169188565b604080519889526020890197909752958701949094526001600160a01b039283166060870152600b9190910b60808601521660a084015260c083015260e0820152610100016102a7565b348015610a8d57600080fd5b506104a2610a9c366004614367565b61207b565b348015610aad57600080fd5b50610ab66120a9565b604080519788526020880196909652948601939093526060850191909152600b90810b608085015290810b60a08401520b60c082015260e0016102a7565b348015610b0057600080fd5b506104a2610b0f366004614c7f565b612154565b348015610b2057600080fd5b506101335461013654610137546101385461013954610b639463ffffffff16936001600160a01b039081169381169281169190811690600160a01b900460ff1686565b6040805163ffffffff90971687526001600160a01b039586166020880152938516938601939093529083166060850152919091166080830152151560a082015260c0016102a7565b348015610bb757600080fd5b506103c8600080516020615f5083398151915281565b348015610bd957600080fd5b506104cf610be8366004614cdd565b6123a7565b348015610bf957600080fd5b506105317f000000000000000000000000000000000000000000000000000000000000000081565b60006001600160e01b03198216637965db0b60e01b1480610c5257506301ffc9a760e01b6001600160e01b03198316145b92915050565b61013d546040516302b5313d60e21b81526004810185905260009182916001600160a01b0390911690630ad4c4f490602401600060405180830381865afa158015610ca7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ccf9190810190614dce565b61013354815191925063ffffffff918216911614610d005760405163f26722ad60e01b815260040160405180910390fd5b50630a85bd0160e11b9695505050505050565b61013654610143546001600160a01b0390911691600160a01b90910463ffffffff1690565b6001600160a01b0381166000908152609860209081526040808320815160608101835281548152600190910154600b81900b938201849052600160601b90046001600160801b031691810191909152908203610d95575192915050565b6040810151610dad906001600160801b031642614fa1565b81602001516001600160601b0316610dc59190614fb4565b8151610dd19190614fcb565b9392505050565b606082336001600160a01b03821614801590610e1d5750336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614155b15610e46573360405163087231bf60e31b8152600401610e3d9190614431565b60405180910390fd5b6097546040516358c0dacb60e01b815273__$0d78a42341742155da77b97d7f993534c7$__916358c0dacb91610eae917f0000000000000000000000000000000000000000000000000000000000000000918a916001600160a01b0316908a90600401615023565b602060405180830381865af4158015610ecb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eef919061505e565b5091949350505050565b600080516020615f50833981519152610f118161241f565b838214610f315760405163899ef10d60e01b815260040160405180910390fd5b60005b84811015610fd757610fc4868683818110610f5157610f51615077565b9050602002016020810190610f669190613fec565b858584818110610f7857610f78615077565b9050602002810190610f8a919061508d565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061242992505050565b5080610fcf816150d3565b915050610f34565b505050505050565b60606000610fef878901896150ec565b50905060008061100187890189615129565b915091506110138d8484848a8a6125ad565b93505050505b9998505050505050505050565b60009081526065602052604090206001015490565b61104482611026565b61104d8161241f565b61105783836125f4565b505050565b6060336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146110a757604051632f2d36a760e01b815260040160405180910390fd5b6110b087612677565b6110d35750604080518082019091526002815261060f60f31b6020820152611114565b6110dc8861192c565b6110f957604051631ea25bab60e31b815260040160405180910390fd5b50604080518082019091526002815261060f60f31b60208201525b979650505050505050565b6001600160a01b038116331461118f5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610e3d565b611199828261272b565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036111e55760405162461bcd60e51b8152600401610e3d90615147565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166112176127ae565b6001600160a01b03161461123d5760405162461bcd60e51b8152600401610e3d90615181565b611246816127ca565b60408051600080825260208201909252611262918391906127d5565b50565b61013d546040516302b5313d60e21b8152600481018390526112629183916001600160a01b0390911690630ad4c4f490602401600060405180830381865afa1580156112b5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108469190810190614dce565b600054610100900460ff16158080156112fd5750600054600160ff909116105b8061131e575061130c30612940565b15801561131e575060005460ff166001145b6113815760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610e3d565b6000805460ff1916600117905580156113a4576000805461ff0019166101001790555b61014380546001600160a01b0319166001600160a01b0384161790558451610133805463ffffffff191663ffffffff90921691909117815560208087015180518893926113f79261013492910190613d59565b5060408201518051611413916002840191602090910190613e02565b5060608201516003820180546001600160a01b03199081166001600160a01b03938416179091556080840151600484018054831691841691909117905560a0840151600584018054831691841691909117905560c08401516006909301805460e0909501519383166001600160a81b031990951694909417600160a01b931515840217909355865161013a55602087015161013b55604087015161013c5561013d805490931690891617909155610143805463ffffffff60a01b191663ffffffff86169092029190911790556114ea60003361294f565b611506600080516020615f50833981519152866060015161294f565b611522600080516020615ef0833981519152866060015161294f565b61013954611538906001600160a01b0316612959565b8015610fd7576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036115cd5760405162461bcd60e51b8152600401610e3d90615147565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166115ff6127ae565b6001600160a01b0316146116255760405162461bcd60e51b8152600401610e3d90615181565b61162e826127ca565b611199828260016127d5565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146116d55760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401610e3d565b50600080516020615f3083398151915290565b6060336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141580611728575061172689612677565b155b8061173957506117378a61192c565b155b1561177d5782828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092935061101992505050565b60008061178c888a018a6150ec565b90925090506000806117a0888a018a6151bb565b915091506117b38e858584868c8c612b8a565b9e9d5050505050505050505050505050565b6097546040516332d4cd0360e11b815273__$0d78a42341742155da77b97d7f993534c7$__916365a99a069161180b916001600160a01b031690869086906004016151e0565b60006040518083038186803b15801561182357600080fd5b505af4158015610fd7573d6000803e3d6000fd5b610143546001600160a01b031690565b6060336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141580611887575061188587612677565b155b8061189857506118968861192c565b155b156118bc5750604080518082019091526002815261060f60f31b6020820152611114565b6000806118cb868801886150ec565b90925090506000806118e76001600160a01b038d168585612bdd565b505091509150818160405160200161190c929190918252600b0b602082015260400190565b604051602081830303815290604052945050505050979650505050505050565b6097546001600160a01b0390811691161490565b600080516020615ef08339815191526119588161241f565b61013d546040516321aa1d2160e11b81526000916001600160a01b0316906343543a429061198f9088908890600190600401615335565b6020604051808303816000875af11580156119ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119d2919061505e565b905082156119e4576119e48185611ce3565b5050505050565b6060336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611a3657604051632f2d36a760e01b815260040160405180910390fd5b611a3f87612677565b611a625750604080518082019091526002815261060f60f31b6020820152611114565b611a6b8861192c565b611a8857604051631ea25bab60e31b815260040160405180910390fd5b6000611a96858701876150ec565b509050600080611ab06001600160a01b038c168430612bdd565b505060408051600b9290920b60208301528181019290925281518082038301815260609091019091529b9a5050505050505050505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600080516020615f50833981519152611b2b8161241f565b610143805463ffffffff808516600160a01b0263ffffffff60a01b19909216919091179091556101335484518216911614611b7957604051630f91888160e01b815260040160405180910390fd5b60608301516001600160a01b0316611ba45760405163890bc98f60e01b815260040160405180910390fd5b61013654611bbd906000906001600160a01b031661272b565b8251610133805463ffffffff191663ffffffff9092169190911781556020808501518051869392611bf49261013492910190613d59565b5060408201518051611c10916002840191602090910190613e02565b506060828101516003830180546001600160a01b039283166001600160a01b031991821617909155608085015160048501805491841691831691909117905560a08501516005850180549184169190921617905560c08401516006909301805460e0909501511515600160a01b026001600160a81b03199095169390911692909217929092179055830151611ca79060009061294f565b7f3eed38e4b04ae182994f6ef05c58a3987f571a66d6860d9046621cc204f407a083604051611cd691906153f0565b60405180910390a1505050565b61013d5460405163049b73f560e31b81526001600160a01b03909116906324db9fa890611d1690859085906004016154a1565b600060405180830381865afa158015611d33573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611d5b9190810190614dce565b50600082815261013e602052604090205460ff1615611d90576040516330e51df560e11b815260048101839052602401610e3d565b600082815261013e60205260408120805460ff191660011790555b816060015151811015611e5e5760005b82606001518281518110611dd157611dd1615077565b60200260200101516080015151811015611e4b57611e3883606001518381518110611dfe57611dfe615077565b6020026020010151608001518281518110611e1b57611e1b615077565b602002602001015160405180602001604052806000815250612429565b5080611e43816150d3565b915050611dbb565b5080611e56816150d3565b915050611dab565b5060405163cb22f4ff60e01b815273__$b588313394510b77eaf869f89af95096f1$__9063cb22f4ff9061180b906101419061013a906101409061013390899089906004016159c1565b606083336001600160a01b03821614801590611eed5750336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614155b15611f0d573360405163087231bf60e31b8152600401610e3d9190614431565b83600003611f2e57604051630f6fa54560e41b815260040160405180910390fd5b609754611f46906001600160a01b0316863087612c75565b610eef8585600060405180602001604052806000815250612d7b565b6097546000906001600160a01b03163314611f9057604051630ce706f760e41b815260040160405180910390fd5b83600003611fb157604051630f6fa54560e41b815260040160405180910390fd5b611fcd8585600060405180602001604052806000815250612d7b565b50600195945050505050565b6101435460408051638abf607760e01b815290516000926001600160a01b031691638abf60779160048083019260209291908290030181865afa158015612024573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120489190615adf565b9050612053816127ca565b611199818360006127d5565b61206882611026565b6120718161241f565b611057838361272b565b6060600061208b878901896150ec565b50905061209a8b828686613423565b9b9a5050505050505050505050565b60975460405163b2f918a160e01b815260009182918291829182918291829173__$0d78a42341742155da77b97d7f993534c7$__9163b2f918a1916120fd91609b916001600160a01b031690600401615afc565b60e060405180830381865af415801561211a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061213e9190615b85565b959d949c50929a50909850965094509092509050565b606083336001600160a01b038216148015906121995750336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614155b156121b9573360405163087231bf60e31b8152600401610e3d9190614431565b6097546040516370a0823160e01b81526000916001600160a01b0316906370a08231906121ea903090600401614431565b602060405180830381865afa158015612207573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061222b919061505e565b6097546040516321437a5360e01b815291925073__$0d78a42341742155da77b97d7f993534c7$__916321437a539161229a917f0000000000000000000000000000000000000000000000000000000000000000918a916001600160a01b03909116908c903090600401615bf9565b602060405180830381865af41580156122b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122db919061505e565b506097546040516370a0823160e01b815260009183916001600160a01b03909116906370a0823190612311903090600401614431565b602060405180830381865afa15801561232e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612352919061505e565b61235c9190614fa1565b90508060000361237f57604051630f6fa54560e41b815260040160405180910390fd5b61239b8782600060405180602001604052806000815250612d7b565b50939695505050505050565b600080516020615f508339815191526123bf8161241f565b815161013a8190556020808401805161013b556040808601805161013c5581519485529151928401929092525182820152517f220b9fb6f33ff05be83cf4d215109467b91026cf1f239e2acb4b7095cf09d5c59181900360600190a15050565b6112628133613471565b6000612443600080516020615f9783398151915284611ae8565b1561245057506001610c52565b610138546001600160a01b0316156124f157610138546040516316874da360e11b81526000916001600160a01b031690632d0e9b4690612494908790600401614431565b602060405180830381865afa1580156124b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124d59190615adf565b90506001600160a01b0381166124ef576000915050610c52565b505b610137546001600160a01b03161561258c57610137546040516356a42afd60e11b81526001600160a01b039091169063ad4855fa9061253a903090339088908890600401615c3a565b602060405180830381865afa158015612557573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061257b9190615c78565b151560000361258c57506000610c52565b6125a4600080516020615f97833981519152846125f4565b50600192915050565b60606111148686600b0b8686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612d7b92505050565b600080516020615f97833981519152820361266d576101435460405163329b55b760e21b81526001600160a01b039091169063ca6d56dc9061263a908490600401614431565b600060405180830381600087803b15801561265457600080fd5b505af1158015612668573d6000803e3d6000fd5b505050505b61119982826134ca565b604051635b69006f60e11b8152600080516020615ed083398151915260048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b6d200de90602401602060405180830381865afa1580156126ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127109190615adf565b6001600160a01b0316826001600160a01b0316149050919050565b600080516020615f9783398151915282036127a4576101435460405163058e524d60e11b81526001600160a01b0390911690630b1ca49a90612771908490600401614431565b600060405180830381600087803b15801561278b57600080fd5b505af115801561279f573d6000803e3d6000fd5b505050505b6111998282613550565b600080516020615f30833981519152546001600160a01b031690565b60006111998161241f565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561280857611057836135b7565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612862575060408051601f3d908101601f1916820190925261285f9181019061505e565b60015b6128c55760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610e3d565b600080516020615f3083398151915281146129345760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610e3d565b50611057838383613651565b6001600160a01b03163b151590565b61119982826125f4565b6001600160a01b0381166129805760405163538ba4f960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0383811691909117909155604051631e51d6a760e11b81527f000000000000000000000000000000000000000000000000000000000000000090911690633ca3ad4e906129e6903090600401614431565b602060405180830381865afa158015612a03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a279190615c78565b1515600003612aa5576040516315a722b960e31b8152600160048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ad3915c890602401600060405180830381600087803b158015612a9257600080fd5b505af1925050508015612aa3575060015b505b6040805180820182527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168082529151635b69006f60e11b8152600080516020615ed083398151915260048201529091602083019163b6d200de90602401602060405180830381865afa158015612b28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b4c9190615adf565b6001600160a01b039081169091528151609980546001600160a01b0319908116928416929092179055602090920151609a8054909316911617905550565b6060612bd18786600b0b8686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612d7b92505050565b98975050505050505050565b6000806000806000612bee8861367c565b604051631cd43d1160e31b81529092506001600160a01b038316915063e6a1e88890612c22908b908b908b90600401615c95565b608060405180830381865afa158015612c3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c639190615cb8565b929b919a509850909650945050505050565b600080856001600160a01b03166323b872dd60e01b868686604051602401612c9f939291906151e0565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051612cdd9190615cf6565b6000604051808303816000865af19150503d8060008114612d1a576040519150601f19603f3d011682016040523d82523d6000602084013e612d1f565b606091505b5091509150818015612d49575080511580612d49575080806020019051810190612d499190615c78565b610fd75760405162461bcd60e51b815260206004820152600360248201526229aa2360e91b6044820152606401610e3d565b805181901515600080612d8c610d13565b609754919350915073__$0d78a42341742155da77b97d7f993534c7$__9063934e2cce90609b906001600160a01b0316612dc4611837565b8588612dd0578c612dd3565b60005b6040516001600160e01b031960e088901b16815260048101959095526001600160a01b03938416602486015292909116604484015263ffffffff166064830152608482015260a40160006040518083038186803b158015612e3357600080fd5b505af4158015612e47573d6000803e3d6000fd5b505060975460009250612e6591506001600160a01b03168a306137eb565b6001600160a01b038a16600090815260986020526040902054909150841561325a57600082600b0b138015612ea257506459df649400600b83900b125b15612ec557604051624963df60e91b8152600b83900b6004820152602401610e3d565b6001600160a01b038a16600090815260986020526040902060010180546001600160e01b031916600160601b426001600160801b038116919091026001600160601b031916919091176001600160601b03851617909155612f27908990614fa1565b612f31908a614fb4565b6001600160a01b038b1660009081526098602052604081208054909190612f59908490614fcb565b9091555060009050612f69611837565b6001600160a01b03161461312c57612f7f611837565b6001600160a01b031663469048406040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fe09190615adf565b9350612fea611837565b6001600160a01b03166324a9d8536040518163ffffffff1660e01b8152600401602060405180830381865afa158015613027573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061304b9190615d12565b925073__$0d78a42341742155da77b97d7f993534c7$__634d167a906099609760009054906101000a90046001600160a01b0316609b60030160009054906101000a90046001600160a01b031688888f896130a69190615d2f565b8d6040518863ffffffff1660e01b81526004016130c99796959493929190615d5c565b600060405180830381865af41580156130e6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261310e9190810190615dac565b609e80546001600160a01b0319166001600160a01b03871617905595505b613134610d13565b809450819550505073__$0d78a42341742155da77b97d7f993534c7$__634d167a906099609760009054906101000a90046001600160a01b0316609b60040160009054906101000a90046001600160a01b031688888f896131959190615d2f565b8d6040518863ffffffff1660e01b81526004016131b89796959493929190615d5c565b600060405180830381865af41580156131d5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526131fd9190810190615dac565b609f80546001600160a01b0319166001600160a01b038781169190911790915560975491975061322e911630613879565b609e80546001600160601b0392909216600160a01b026001600160a01b03909216919091179055613399565b6000613264611837565b6001600160a01b0316146133535761327a611837565b6001600160a01b031663469048406040518163ffffffff1660e01b8152600401602060405180830381865afa1580156132b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132db9190615adf565b93506132e5611837565b6001600160a01b03166324a9d8536040518163ffffffff1660e01b8152600401602060405180830381865afa158015613322573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133469190615d12565b925061335384848b613900565b61335b610d13565b909450925061336b84848b613900565b6001600160a01b038a16600090815260986020526040812080548b9290613393908490614fcb565b90915550505b6001600160a01b038a166000818152609860205260409020547f6342e11b65ccb38a3bb259be9cda846c74ad52b36b62a2ee4799dc3db63a04a3908390886133e25760006133e4565b8c5b604080519384526020840192909252600b90810b8383015286900b60608301528815156080830152519081900360a00190a25050505050949350505050565b60606134688460008086868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612d7b92505050565b95945050505050565b61347b8282611ae8565b611199576134888161394c565b61349383602061395e565b6040516020016134a4929190615df4565b60408051601f198184030181529082905262461bcd60e51b8252610e3d916004016142a5565b6134d48282611ae8565b6111995760008281526065602090815260408083206001600160a01b03851684529091529020805460ff1916600117905561350c3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61355a8282611ae8565b156111995760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6135c081612940565b6136225760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610e3d565b600080516020615f3083398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61365a83613af9565b6000825111806136675750805b15611057576136768383613b39565b50505050565b7f65599bf746e17a00ea62e3610586992d88101b78eec3cf380706621fb97ea837547fb969d79d88acd02d04ed7ee7d43b949e7daf093d363abcfbbc43dfdfd1ce969a546001600160a01b0381166137ba576001600160a01b03821661374157826001600160a01b03166320bc44256040518163ffffffff1660e01b8152600401602060405180830381865afa15801561371a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061373e9190615adf565b91505b604051635b69006f60e11b8152600080516020615ed083398151915260048201526001600160a01b0383169063b6d200de90602401602060405180830381865afa158015613793573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137b79190615adf565b90505b6001600160a01b0382166137d0576137d0615e63565b6001600160a01b0381166137e6576137e6615e63565b915091565b6000806137f78561367c565b604051631cd43d1160e31b81529092506001600160a01b038316915063e6a1e8889061382b90889088908890600401615c95565b608060405180830381865afa158015613848573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061386c9190615cb8565b5090979650505050505050565b6000806138858461367c565b60405163e8e7e2d160e01b81529092506001600160a01b038316915063e8e7e2d1906138b79087908790600401614c65565b602060405180830381865afa1580156138d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138f89190615e79565b949350505050565b6001600160a01b03831661391357505050565b600061271061392863ffffffff851684614fb4565b6139329190615e96565b609754909150613676906001600160a01b03168583613c22565b6060610c526001600160a01b03831660145b6060600061396d836002614fb4565b613978906002614fcb565b6001600160401b0381111561398f5761398f614016565b6040519080825280601f01601f1916602001820160405280156139b9576020820181803683370190505b509050600360fc1b816000815181106139d4576139d4615077565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110613a0357613a03615077565b60200101906001600160f81b031916908160001a9053506000613a27846002614fb4565b613a32906001614fcb565b90505b6001811115613aaa576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110613a6657613a66615077565b1a60f81b828281518110613a7c57613a7c615077565b60200101906001600160f81b031916908160001a90535060049490941c93613aa381615eb8565b9050613a35565b508315610dd15760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610e3d565b613b02816135b7565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060613b4483612940565b613b9f5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610e3d565b600080846001600160a01b031684604051613bba9190615cf6565b600060405180830381855af49150503d8060008114613bf5576040519150601f19603f3d011682016040523d82523d6000602084013e613bfa565b606091505b50915091506134688282604051806060016040528060278152602001615f7060279139613d1b565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1790529151600092839290871691613c7e9190615cf6565b6000604051808303816000865af19150503d8060008114613cbb576040519150601f19603f3d011682016040523d82523d6000602084013e613cc0565b606091505b5091509150818015613cea575080511580613cea575080806020019051810190613cea9190615c78565b6119e45760405162461bcd60e51b815260206004820152600260248201526114d560f21b6044820152606401610e3d565b60608315613d2a575081610dd1565b610dd18383815115613d3f5781518083602001fd5b8060405162461bcd60e51b8152600401610e3d91906142a5565b82805482825590600052602060002090600f01601090048101928215613df25791602002820160005b83821115613dc257835183826101000a81548161ffff021916908361ffff1602179055509260200192600201602081600101049283019260010302613d82565b8015613df05782816101000a81549061ffff0219169055600201602081600101049283019260010302613dc2565b505b50613dfe929150613ea8565b5090565b82805482825590600052602060002090600101600290048101928215613df25791602002820160005b83821115613e7557835183826101000a8154816001600160801b0302191690836001600160801b031602179055509260200192601001602081600f01049283019260010302613e2b565b8015613df05782816101000a8154906001600160801b030219169055601001602081600f01049283019260010302613e75565b5b80821115613dfe5760008155600101613ea9565b600060208284031215613ecf57600080fd5b5035919050565b600060208284031215613ee857600080fd5b81356001600160e01b031981168114610dd157600080fd5b6001600160a01b038116811461126257600080fd5b8035613f2081613f00565b919050565b60008083601f840112613f3757600080fd5b5081356001600160401b03811115613f4e57600080fd5b602083019150836020828501011115613f6657600080fd5b9250929050565b600080600080600060808688031215613f8557600080fd5b8535613f9081613f00565b94506020860135613fa081613f00565b93506040860135925060608601356001600160401b03811115613fc257600080fd5b613fce88828901613f25565b969995985093965092949392505050565b6001600160a01b03169052565b600060208284031215613ffe57600080fd5b8135610dd181613f00565b6001600160801b03169052565b634e487b7160e01b600052604160045260246000fd5b60405161010081016001600160401b038111828210171561404f5761404f614016565b60405290565b604051608081016001600160401b038111828210171561404f5761404f614016565b60405160c081016001600160401b038111828210171561404f5761404f614016565b604051601f8201601f191681016001600160401b03811182821017156140c1576140c1614016565b604052919050565b60006001600160401b038211156140e2576140e2614016565b50601f01601f191660200190565b600082601f83011261410157600080fd5b813561411461410f826140c9565b614099565b81815284602083860101111561412957600080fd5b816020850160208301376000918101602001919091529392505050565b600060a0828403121561415857600080fd5b60405160a081016001600160401b03808211838310171561417b5761417b614016565b816040528293508435915061418f82613f00565b81835260208501356020840152604085013560408401526060850135606084015260808501359150808211156141c457600080fd5b506141d1858286016140f0565b6080830152505092915050565b6000806000606084860312156141f357600080fd5b83356001600160401b038082111561420a57600080fd5b61421687838801614146565b94506020860135915061422882613f00565b9092506040850135908082111561423e57600080fd5b5061424b868287016140f0565b9150509250925092565b60005b83811015614270578181015183820152602001614258565b50506000910152565b60008151808452614291816020860160208601614255565b601f01601f19169290920160200192915050565b602081526000610dd16020830184614279565b60008083601f8401126142ca57600080fd5b5081356001600160401b038111156142e157600080fd5b6020830191508360208260051b8501011115613f6657600080fd5b6000806000806040858703121561431257600080fd5b84356001600160401b038082111561432957600080fd5b614335888389016142b8565b9096509450602087013591508082111561434e57600080fd5b5061435b878288016142b8565b95989497509550505050565b600080600080600080600080600060c08a8c03121561438557600080fd5b893561439081613f00565b985060208a01356143a081613f00565b975060408a0135965060608a01356001600160401b03808211156143c357600080fd5b6143cf8d838e01613f25565b909850965060808c01359150808211156143e857600080fd5b6143f48d838e01613f25565b909650945060a08c013591508082111561440d57600080fd5b5061441a8c828d01613f25565b915080935050809150509295985092959850929598565b6001600160a01b0391909116815260200190565b6000806040838503121561445857600080fd5b82359150602083013561446a81613f00565b809150509250929050565b600080600080600080600060a0888a03121561449057600080fd5b873561449b81613f00565b965060208801356144ab81613f00565b95506040880135945060608801356001600160401b03808211156144ce57600080fd5b6144da8b838c01613f25565b909650945060808a01359150808211156144f357600080fd5b506145008a828b01613f25565b989b979a50959850939692959293505050565b63ffffffff8116811461126257600080fd5b8035613f2081614513565b60006001600160401b0382111561454957614549614016565b5060051b60200190565b61ffff8116811461126257600080fd5b8035613f2081614553565b600082601f83011261457f57600080fd5b8135602061458f61410f83614530565b82815260059290921b840181019181810190868411156145ae57600080fd5b8286015b848110156145d25780356145c581614553565b83529183019183016145b2565b509695505050505050565b6001600160801b038116811461126257600080fd5b8035613f20816145dd565b600082601f83011261460e57600080fd5b8135602061461e61410f83614530565b82815260059290921b8401810191818101908684111561463d57600080fd5b8286015b848110156145d2578035614654816145dd565b8352918301918301614641565b801515811461126257600080fd5b8035613f2081614661565b6000610100828403121561468d57600080fd5b61469561402c565b90506146a082614525565b815260208201356001600160401b03808211156146bc57600080fd5b6146c88583860161456e565b602084015260408401359150808211156146e157600080fd5b506146ee848285016145fd565b60408301525061470060608301613f15565b606082015261471160808301613f15565b608082015261472260a08301613f15565b60a082015261473360c08301613f15565b60c082015261474460e0830161466f565b60e082015292915050565b60006060828403121561476157600080fd5b604051606081016001600160401b038111828210171561478357614783614016565b80604052508091508235815260208301356020820152604083013560408201525092915050565b600080600080600060e086880312156147c257600080fd5b85356147cd81613f00565b945060208601356001600160401b038111156147e857600080fd5b6147f48882890161467a565b945050614804876040880161474f565b925060a086013561481481614513565b915060c086013561482481613f00565b809150509295509295909350565b6000806040838503121561484557600080fd5b823561485081613f00565b915060208301356001600160401b0381111561486b57600080fd5b614877858286016140f0565b9150509250929050565b6000806040838503121561489457600080fd5b823561489f81613f00565b946020939093013593505050565b600082601f8301126148be57600080fd5b813560206148ce61410f83614530565b82815260059290921b840181019181810190868411156148ed57600080fd5b8286015b848110156145d257803561490481613f00565b83529183019183016148f1565b60006080828403121561492357600080fd5b61492b614055565b9050813561493881614513565b815260208281013561494981614553565b8282015260408301356001600160401b038082111561496757600080fd5b614973868387016140f0565b6040850152606085013591508082111561498c57600080fd5b818501915085601f8301126149a057600080fd5b81356149ae61410f82614530565b81815260059190911b830184019084810190888311156149cd57600080fd5b8585015b83811015614a9d578035858111156149e95760008081fd5b860160c0818c03601f1901811315614a015760008081fd5b614a09614077565b614a148a8401614563565b8152614a2260408401614525565b8a82015260608301356040820152608083013588811115614a435760008081fd5b614a518e8c838701016140f0565b60608301525060a08084013589811115614a6b5760008081fd5b614a798f8d838801016148ad565b608084015250614a8a8385016145f2565b90820152855250509186019186016149d1565b50606087015250939695505050505050565b600080600060608486031215614ac457600080fd5b8335614acf81613f00565b925060208401356001600160401b03811115614aea57600080fd5b614af686828701614911565b9250506040840135614b0781614661565b809150509250925092565b60008060408385031215614b2557600080fd5b82356001600160401b03811115614b3b57600080fd5b614b478582860161467a565b925050602083013561446a81614513565b60008060408385031215614b6b57600080fd5b8235915060208301356001600160401b03811115614b8857600080fd5b61487785828601614911565b600080600060608486031215614ba957600080fd5b8335614bb481613f00565b92506020840135915060408401356001600160401b03811115614bd657600080fd5b61424b868287016140f0565b60008060008060608587031215614bf857600080fd5b8435614c0381613f00565b93506020850135925060408501356001600160401b03811115614c2557600080fd5b61435b87828801613f25565b600060208284031215614c4357600080fd5b81356001600160401b03811115614c5957600080fd5b6138f8848285016140f0565b6001600160a01b0392831681529116602082015260400190565b600080600060608486031215614c9457600080fd5b8335614c9f81613f00565b925060208401356001600160401b0380821115614cbb57600080fd5b614cc787838801614146565b9350604086013591508082111561423e57600080fd5b600060608284031215614cef57600080fd5b610dd1838361474f565b8051613f2081614513565b8051613f2081614553565b6000614d1d61410f846140c9565b9050828152838383011115614d3157600080fd5b610dd1836020830184614255565b600082601f830112614d5057600080fd5b610dd183835160208501614d0f565b600082601f830112614d7057600080fd5b81516020614d8061410f83614530565b82815260059290921b84018101918181019086841115614d9f57600080fd5b8286015b848110156145d2578051614db681613f00565b8352918301918301614da3565b8051613f20816145dd565b60006020808385031215614de157600080fd5b82516001600160401b0380821115614df857600080fd5b9084019060808287031215614e0c57600080fd5b614e14614055565b8251614e1f81614513565b815282840151614e2e81614553565b81850152604083015182811115614e4457600080fd5b614e5088828601614d3f565b604083015250606083015182811115614e6857600080fd5b80840193505086601f840112614e7d57600080fd5b8251614e8b61410f82614530565b81815260059190911b84018501908581019089831115614eaa57600080fd5b8686015b83811015614f7857805186811115614ec557600080fd5b870160c0818d03601f19011215614edc5760008081fd5b614ee4614077565b614eef8a8301614d04565b8152614efd60408301614cf9565b8a82015260608201516040820152608082015188811115614f1e5760008081fd5b614f2c8e8c83860101614d3f565b60608301525060a08083015189811115614f465760008081fd5b614f548f8d83870101614d5f565b608084015250614f6660c08401614dc3565b90820152845250918701918701614eae565b5060608401525090979650505050505050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610c5257610c52614f8b565b8082028115828204841417610c5257610c52614f8b565b80820180821115610c5257610c52614f8b565b60018060a01b0381511682526020810151602083015260408101516040830152606081015160608301526000608082015160a060808501526138f860a0850182614279565b600060018060a01b038087168352608060208401526150456080840187614fde565b9481166040840152929092166060909101525092915050565b60006020828403121561507057600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b6000808335601e198436030181126150a457600080fd5b8301803591506001600160401b038211156150be57600080fd5b602001915036819003821315613f6657600080fd5b6000600182016150e5576150e5614f8b565b5060010190565b600080604083850312156150ff57600080fd5b823561510a81613f00565b9150602083013561446a81613f00565b80600b0b811461126257600080fd5b6000806040838503121561513c57600080fd5b823561489f8161511a565b6020808252602c90820152600080516020615f1083398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c90820152600080516020615f1083398151915260408201526b6163746976652070726f787960a01b606082015260800190565b600080604083850312156151ce57600080fd5b82359150602083013561446a8161511a565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000608063ffffffff80845116855260208085015161ffff80821683890152604091508187015185838a015261523c868a0182614279565b90506060808901518a8303828c01528281518085528785019150878160051b860101888401935060005b8281101561532357601f19878303018452845160c08982511684528c8c830151168c8501528a8201518b8501528782015181898601526152a882860182614279565b9150508d8201518482038f8601528181518084528e840191508e83019350600092505b808310156152f45783516001600160a01b03168252928e019260019290920191908e01906152cb565b5060a09384015193925061530a86840185614009565b978d0197968d0196945050506001919091019050615266565b509d9c50505050505050505050505050565b6001600160a01b038416815260806020820181905260009061535990830185615204565b9215156040830152508082036060909101526000815260200192915050565b600081518084526020808501945080840160005b838110156153ac57815161ffff168752958201959082019060010161538c565b509495945050505050565b600081518084526020808501945080840160005b838110156153ac5781516001600160801b0316875295820195908201906001016153cb565b6020815263ffffffff82511660208201526000602083015161010080604085015261541f610120850183615378565b91506040850151601f1985840301606086015261543c83826153b7565b92505060608501516154516080860182613fdf565b50608085015161546460a0860182613fdf565b5060a085015161547760c0860182613fdf565b5060c085015161548a60e0860182613fdf565b5060e0850151801515858301525090949350505050565b8281526040602082015260006138f86040830184615204565b805480835260008281526020808220940193909190825b82600f8201101561562257815461ffff808216885260206154fc818a01838560101c1661ffff169052565b6040615511818b018486851c1661ffff169052565b60609150615529828b01848660301c1661ffff169052565b608061553e818c018587851c1661ffff169052565b60a09150615556828c01858760501c1661ffff169052565b60c061556b818d018688871c1661ffff169052565b60e09350615583848d01868860701c1661ffff169052565b61ffff86831c8616166101008d01526155a86101208d01868860901c1661ffff169052565b61ffff86841c8616166101408d01526155cd6101608d01868860b01c1661ffff169052565b61ffff86821c8616166101808d01525050506155f56101a08a01838560d01c1661ffff169052565b82901c1661ffff166101c088015260f01c6101e087015261020090950194600191909101906010016154d1565b9054908281101561563e5761ffff821686526020909501946001015b8281101561565b5761ffff601083901c1686526020909501946001015b8281101561567957602082901c61ffff168652602095909501946001015b828110156156965761ffff603083901c1686526020909501946001015b828110156156b35761ffff604083901c1686526020909501946001015b828110156156d05761ffff605083901c1686526020909501946001015b828110156156ed5761ffff606083901c1686526020909501946001015b8281101561570a5761ffff607083901c1686526020909501946001015b828110156157275761ffff608083901c1686526020909501946001015b828110156157445761ffff609083901c1686526020909501946001015b828110156157615761ffff60a083901c1686526020909501946001015b8281101561577e5761ffff60b083901c1686526020909501946001015b8281101561579b5761ffff60c083901c1686526020909501946001015b828110156157b85761ffff60d083901c1686526020909501946001015b828110156157d55761ffff60e083901c1686526020909501946001015b828110156157ec5760f082901c86525b6020860195505b5093949350505050565b805480835260008281526020808220940193909190825b6001838183011061581e5750615858565b8254615833886001600160801b038316614009565b615843602089018260801c614009565b5060409690960195919091019060020161580d565b9054908281101561588157615876866001600160801b038416614009565b602095909501946001015b828110156157ec576157e5868360801c614009565b6001600160a01b031690565b6000608063ffffffff80845116855260208085015161ffff80821683890152604091508187015185838a01526158da868a0182614279565b90506060808901518a8303828c01528281518085528785019150878160051b860101888401935060005b8281101561532357601f19878303018452845160c08982511684528c8c830151168c8501528a8201518b85015287820151818986015261594682860182614279565b9150508d8201518482038f8601528181518084528e840191508e83019350600092505b808310156159925783516001600160a01b03168252928e019260019290920191908e0190615969565b5060a0938401519392506159a886840185614009565b978d0197968d0196945050506001919091019050615904565b60006101008883528754602084015260018801546040840152600288015460608401528660808401528060a0840152615a0e818401615a04885463ffffffff1690565b63ffffffff169052565b610120830152615a256102008301600187016154ba565b82810360ff1901610140840152615a3f81600288016157f6565b9050615a4e6003870154615896565b615a5c610160850182613fdf565b50615a6a6004870154615896565b615a78610180850182613fdf565b50615a866005870154615896565b615a946101a0850182613fdf565b506006860154615ab16101c085016001600160a01b038316613fdf565b615ac66101e0850160ff8360a01c1615159052565b508460c084015282810360e084015261101981856158a2565b600060208284031215615af157600080fd5b8151610dd181613f00565b8254815260018301546020820152600283015460408201526003830154610120820190615b35606084016001600160a01b038316613fdf565b615b47608084018260a01d600b0b9052565b50615b556004850154615896565b615b6260a0840182613fdf565b50600584015460c0830152600684015460e0830152610dd1610100830184613fdf565b600080600080600080600060e0888a031215615ba057600080fd5b875196506020880151955060408801519450606088015193506080880151615bc78161511a565b60a0890151909350615bd88161511a565b60c0890151909250615be98161511a565b8091505092959891949750929550565b600060018060a01b03808816835260a06020840152615c1b60a0840188614fde565b9581166040840152938416606083015250911660809091015292915050565b6001600160a01b038581168252848116602083015283166040820152608060608201819052600090615c6e90830184614279565b9695505050505050565b600060208284031215615c8a57600080fd5b8151610dd181614661565b6001600160a01b0393841681529183166020830152909116604082015260600190565b60008060008060808587031215615cce57600080fd5b845193506020850151615ce08161511a565b6040860151606090960151949790965092505050565b60008251615d08818460208701614255565b9190910192915050565b600060208284031215615d2457600080fd5b8151610dd181614513565b600b82810b9082900b0360016001605f1b0319811260016001605f1b0382131715610c5257610c52614f8b565b8781526001600160a01b03878116602083015286811660408301528516606082015263ffffffff84166080820152600b83900b60a082015260e060c0820181905260009061101990830184614279565b600060208284031215615dbe57600080fd5b81516001600160401b03811115615dd457600080fd5b8201601f81018413615de557600080fd5b6138f884825160208401614d0f565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b815260008351615e26816017850160208801614255565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351615e57816028840160208801614255565b01602801949350505050565b634e487b7160e01b600052600160045260246000fd5b600060208284031215615e8b57600080fd5b8151610dd18161511a565b600082615eb357634e487b7160e01b600052601260045260246000fd5b500490565b600081615ec757615ec7614f8b565b50600019019056fea9214cc96615e0085d3bb077758db69497dc2dce3b2b1e97bc93c3d18d83efd3f0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc946756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b08416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564829b824e2329e205435d941c9f13baf578548505283d29261236d8e6596d4636a264697066735822122076aae20343c7b7ce056b614cbf27adb9e03039dc4aa5cba486bbfe2447c3d1d464736f6c63430008130033",
2125
+ "deployedBytecode": "0x6080604052600436106102655760003560e01c80630150aefb1461026a57806301ffc9a7146102b05780630947e8c7146102d05780630c7107761461030a578063150b7a0214610336578063198055381461036f5780631a2a84b3146103a85780631bb15f3d146103d65780631db128c714610482578063229a36fa146104af578063230dbd29146104d1578063248a9ca3146104f15780632b4116f7146105115780632f2ff15d1461053e57806330d9c9151461055e57806336568abe1461057e5780633659cfe61461059e578063379607f5146105be57806347ccca02146105de5780634b1e337f146105ff5780634f1ef2861461061f57806352d1902d1461063257806353c11f991461064757806358609754146106675780635ab1bd53146106875780635f9e7d771461069c578063647c75e2146106bc57806372ca8a3e1461072d57806376ba085b1461074d5780637b1039991461076d578063860aefcf1461078e578063884d1f40146107cb57806391d14854146107eb5780639e83995f1461080b5780639f351ce41461082b5780639f8fddd21461084b578063a10f469e1461086b578063a217fddf1461088d578063a4c0ed36146108a2578063ae827200146108c2578063bcb4546f146108d5578063c2e11e3f146108f7578063c31c9c0714610945578063d3112b2e14610979578063d5391393146109ae578063d547741f146109d0578063d80528ae146109f0578063d86ed3e514610a81578063dc61d5c214610aa1578063def482a414610af4578063e06174e414610b14578063ec87621c14610bab578063f3d5e34814610bcd578063f437bc5914610bed575b600080fd5b34801561027657600080fd5b5061029b610285366004613ebd565b61013e6020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b3480156102bc57600080fd5b5061029b6102cb366004613ed6565b610c21565b3480156102dc57600080fd5b50610143546102f590600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016102a7565b34801561031657600080fd5b506103236459df64940081565b604051600b9190910b81526020016102a7565b34801561034257600080fd5b50610356610351366004613f6d565b610c58565b6040516001600160e01b031990911681526020016102a7565b34801561037b57600080fd5b50610384610d13565b604080516001600160a01b03909316835263ffffffff9091166020830152016102a7565b3480156103b457600080fd5b506103c86103c3366004613fec565b610d38565b6040519081526020016102a7565b3480156103e257600080fd5b5061043e6103f1366004613fec565b61014060205260009081526040902080546001909101546001600160801b0380831692600160801b90819004821692918216916001600160401b03918104821691600160c01b9091041685565b604080516001600160801b039687168152948616602086015292909416918301919091526001600160401b039081166060830152909116608082015260a0016102a7565b34801561048e57600080fd5b506104a261049d3660046141de565b610dd8565b6040516102a791906142a5565b3480156104bb57600080fd5b506104cf6104ca3660046142fc565b610ef9565b005b3480156104dd57600080fd5b506104a26104ec366004614367565b610fdf565b3480156104fd57600080fd5b506103c861050c366004613ebd565b611026565b34801561051d57600080fd5b50609754610531906001600160a01b031681565b6040516102a79190614431565b34801561054a57600080fd5b506104cf610559366004614445565b61103b565b34801561056a57600080fd5b506104a2610579366004614475565b61105c565b34801561058a57600080fd5b506104cf610599366004614445565b61111f565b3480156105aa57600080fd5b506104cf6105b9366004613fec565b61119d565b3480156105ca57600080fd5b506104cf6105d9366004613ebd565b611265565b3480156105ea57600080fd5b5061013d54610531906001600160a01b031681565b34801561060b57600080fd5b506104cf61061a3660046147aa565b6112dd565b6104cf61062d366004614832565b611585565b34801561063e57600080fd5b506103c861163a565b34801561065357600080fd5b506104a2610662366004614367565b6116e8565b34801561067357600080fd5b506104cf610682366004614881565b6117c5565b34801561069357600080fd5b50610531611837565b3480156106a857600080fd5b506104a26106b7366004614475565b611847565b3480156106c857600080fd5b506107066106d7366004613fec565b60986020526000908152604090208054600190910154600b81900b90600160601b90046001600160801b031683565b60408051938452600b9290920b60208401526001600160801b0316908201526060016102a7565b34801561073957600080fd5b5061029b610748366004613fec565b61192c565b34801561075957600080fd5b506104cf610768366004614aaf565b611940565b34801561077957600080fd5b5061014354610531906001600160a01b031681565b34801561079a57600080fd5b5061013a5461013b5461013c546107b092919083565b604080519384526020840192909252908201526060016102a7565b3480156107d757600080fd5b506104a26107e6366004614475565b6119eb565b3480156107f757600080fd5b5061029b610806366004614445565b611ae8565b34801561081757600080fd5b506104cf610826366004614b12565b611b13565b34801561083757600080fd5b506104cf610846366004614b58565b611ce3565b34801561085757600080fd5b506104a2610866366004614b94565b611ea8565b34801561087757600080fd5b506103c8600080516020615f9783398151915281565b34801561089957600080fd5b506103c8600081565b3480156108ae57600080fd5b5061029b6108bd366004614be2565b611f62565b6104cf6108d0366004614c31565b611fd9565b3480156108e157600080fd5b506103c8600080516020615ed083398151915281565b34801561090357600080fd5b50610141546101425461043e916001600160801b0380821692600160801b92839004821692918116916001600160401b03908204811691600160c01b90041685565b34801561095157600080fd5b506105317f000000000000000000000000000000000000000000000000000000000000000081565b34801561098557600080fd5b50609954609a546109a0916001600160a01b03908116911682565b6040516102a7929190614c65565b3480156109ba57600080fd5b506103c8600080516020615ef083398151915281565b3480156109dc57600080fd5b506104cf6109eb366004614445565b61205f565b3480156109fc57600080fd5b50609b54609c54609d54609e54609f5460a05460a154610a37969594936001600160a01b0380821694600160a01b909204600b0b9391169188565b604080519889526020890197909752958701949094526001600160a01b039283166060870152600b9190910b60808601521660a084015260c083015260e0820152610100016102a7565b348015610a8d57600080fd5b506104a2610a9c366004614367565b61207b565b348015610aad57600080fd5b50610ab66120a9565b604080519788526020880196909652948601939093526060850191909152600b90810b608085015290810b60a08401520b60c082015260e0016102a7565b348015610b0057600080fd5b506104a2610b0f366004614c7f565b612154565b348015610b2057600080fd5b506101335461013654610137546101385461013954610b639463ffffffff16936001600160a01b039081169381169281169190811690600160a01b900460ff1686565b6040805163ffffffff90971687526001600160a01b039586166020880152938516938601939093529083166060850152919091166080830152151560a082015260c0016102a7565b348015610bb757600080fd5b506103c8600080516020615f5083398151915281565b348015610bd957600080fd5b506104cf610be8366004614cdd565b6123a7565b348015610bf957600080fd5b506105317f000000000000000000000000000000000000000000000000000000000000000081565b60006001600160e01b03198216637965db0b60e01b1480610c5257506301ffc9a760e01b6001600160e01b03198316145b92915050565b61013d546040516302b5313d60e21b81526004810185905260009182916001600160a01b0390911690630ad4c4f490602401600060405180830381865afa158015610ca7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ccf9190810190614dce565b61013354815191925063ffffffff918216911614610d005760405163f26722ad60e01b815260040160405180910390fd5b50630a85bd0160e11b9695505050505050565b61013654610143546001600160a01b0390911691600160a01b90910463ffffffff1690565b6001600160a01b0381166000908152609860209081526040808320815160608101835281548152600190910154600b81900b938201849052600160601b90046001600160801b031691810191909152908203610d95575192915050565b6040810151610dad906001600160801b031642614fa1565b81602001516001600160601b0316610dc59190614fb4565b8151610dd19190614fcb565b9392505050565b606082336001600160a01b03821614801590610e1d5750336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614155b15610e46573360405163087231bf60e31b8152600401610e3d9190614431565b60405180910390fd5b6097546040516358c0dacb60e01b815273__$0d78a42341742155da77b97d7f993534c7$__916358c0dacb91610eae917f0000000000000000000000000000000000000000000000000000000000000000918a916001600160a01b0316908a90600401615023565b602060405180830381865af4158015610ecb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eef919061505e565b5091949350505050565b600080516020615f50833981519152610f118161241f565b838214610f315760405163899ef10d60e01b815260040160405180910390fd5b60005b84811015610fd757610fc4868683818110610f5157610f51615077565b9050602002016020810190610f669190613fec565b858584818110610f7857610f78615077565b9050602002810190610f8a919061508d565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061242992505050565b5080610fcf816150d3565b915050610f34565b505050505050565b60606000610fef878901896150ec565b50905060008061100187890189615129565b915091506110138d8484848a8a6125ad565b93505050505b9998505050505050505050565b60009081526065602052604090206001015490565b61104482611026565b61104d8161241f565b61105783836125f4565b505050565b6060336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146110a757604051632f2d36a760e01b815260040160405180910390fd5b6110b087612677565b6110d35750604080518082019091526002815261060f60f31b6020820152611114565b6110dc8861192c565b6110f957604051631ea25bab60e31b815260040160405180910390fd5b50604080518082019091526002815261060f60f31b60208201525b979650505050505050565b6001600160a01b038116331461118f5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610e3d565b611199828261272b565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036111e55760405162461bcd60e51b8152600401610e3d90615147565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166112176127ae565b6001600160a01b03161461123d5760405162461bcd60e51b8152600401610e3d90615181565b611246816127ca565b60408051600080825260208201909252611262918391906127d5565b50565b61013d546040516302b5313d60e21b8152600481018390526112629183916001600160a01b0390911690630ad4c4f490602401600060405180830381865afa1580156112b5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108469190810190614dce565b600054610100900460ff16158080156112fd5750600054600160ff909116105b8061131e575061130c30612940565b15801561131e575060005460ff166001145b6113815760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610e3d565b6000805460ff1916600117905580156113a4576000805461ff0019166101001790555b61014380546001600160a01b0319166001600160a01b0384161790558451610133805463ffffffff191663ffffffff90921691909117815560208087015180518893926113f79261013492910190613d59565b5060408201518051611413916002840191602090910190613e02565b5060608201516003820180546001600160a01b03199081166001600160a01b03938416179091556080840151600484018054831691841691909117905560a0840151600584018054831691841691909117905560c08401516006909301805460e0909501519383166001600160a81b031990951694909417600160a01b931515840217909355865161013a55602087015161013b55604087015161013c5561013d805490931690891617909155610143805463ffffffff60a01b191663ffffffff86169092029190911790556114ea60003361294f565b611506600080516020615f50833981519152866060015161294f565b611522600080516020615ef0833981519152866060015161294f565b61013954611538906001600160a01b0316612959565b8015610fd7576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036115cd5760405162461bcd60e51b8152600401610e3d90615147565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166115ff6127ae565b6001600160a01b0316146116255760405162461bcd60e51b8152600401610e3d90615181565b61162e826127ca565b611199828260016127d5565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146116d55760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401610e3d565b50600080516020615f3083398151915290565b6060336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141580611728575061172689612677565b155b8061173957506117378a61192c565b155b1561177d5782828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092935061101992505050565b60008061178c888a018a6150ec565b90925090506000806117a0888a018a6151bb565b915091506117b38e858584868c8c612b8a565b9e9d5050505050505050505050505050565b6097546040516332d4cd0360e11b815273__$0d78a42341742155da77b97d7f993534c7$__916365a99a069161180b916001600160a01b031690869086906004016151e0565b60006040518083038186803b15801561182357600080fd5b505af4158015610fd7573d6000803e3d6000fd5b610143546001600160a01b031690565b6060336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141580611887575061188587612677565b155b8061189857506118968861192c565b155b156118bc5750604080518082019091526002815261060f60f31b6020820152611114565b6000806118cb868801886150ec565b90925090506000806118e76001600160a01b038d168585612bdd565b505091509150818160405160200161190c929190918252600b0b602082015260400190565b604051602081830303815290604052945050505050979650505050505050565b6097546001600160a01b0390811691161490565b600080516020615ef08339815191526119588161241f565b61013d546040516321aa1d2160e11b81526000916001600160a01b0316906343543a429061198f9088908890600190600401615335565b6020604051808303816000875af11580156119ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119d2919061505e565b905082156119e4576119e48185611ce3565b5050505050565b6060336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611a3657604051632f2d36a760e01b815260040160405180910390fd5b611a3f87612677565b611a625750604080518082019091526002815261060f60f31b6020820152611114565b611a6b8861192c565b611a8857604051631ea25bab60e31b815260040160405180910390fd5b6000611a96858701876150ec565b509050600080611ab06001600160a01b038c168430612bdd565b505060408051600b9290920b60208301528181019290925281518082038301815260609091019091529b9a5050505050505050505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600080516020615f50833981519152611b2b8161241f565b610143805463ffffffff808516600160a01b0263ffffffff60a01b19909216919091179091556101335484518216911614611b7957604051630f91888160e01b815260040160405180910390fd5b60608301516001600160a01b0316611ba45760405163890bc98f60e01b815260040160405180910390fd5b61013654611bbd906000906001600160a01b031661272b565b8251610133805463ffffffff191663ffffffff9092169190911781556020808501518051869392611bf49261013492910190613d59565b5060408201518051611c10916002840191602090910190613e02565b506060828101516003830180546001600160a01b039283166001600160a01b031991821617909155608085015160048501805491841691831691909117905560a08501516005850180549184169190921617905560c08401516006909301805460e0909501511515600160a01b026001600160a81b03199095169390911692909217929092179055830151611ca79060009061294f565b7f3eed38e4b04ae182994f6ef05c58a3987f571a66d6860d9046621cc204f407a083604051611cd691906153f0565b60405180910390a1505050565b61013d5460405163049b73f560e31b81526001600160a01b03909116906324db9fa890611d1690859085906004016154a1565b600060405180830381865afa158015611d33573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611d5b9190810190614dce565b50600082815261013e602052604090205460ff1615611d90576040516330e51df560e11b815260048101839052602401610e3d565b600082815261013e60205260408120805460ff191660011790555b816060015151811015611e5e5760005b82606001518281518110611dd157611dd1615077565b60200260200101516080015151811015611e4b57611e3883606001518381518110611dfe57611dfe615077565b6020026020010151608001518281518110611e1b57611e1b615077565b602002602001015160405180602001604052806000815250612429565b5080611e43816150d3565b915050611dbb565b5080611e56816150d3565b915050611dab565b5060405163cb22f4ff60e01b815273__$b588313394510b77eaf869f89af95096f1$__9063cb22f4ff9061180b906101419061013a906101409061013390899089906004016159c1565b606083336001600160a01b03821614801590611eed5750336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614155b15611f0d573360405163087231bf60e31b8152600401610e3d9190614431565b83600003611f2e57604051630f6fa54560e41b815260040160405180910390fd5b609754611f46906001600160a01b0316863087612c75565b610eef8585600060405180602001604052806000815250612d7b565b6097546000906001600160a01b03163314611f9057604051630ce706f760e41b815260040160405180910390fd5b83600003611fb157604051630f6fa54560e41b815260040160405180910390fd5b611fcd8585600060405180602001604052806000815250612d7b565b50600195945050505050565b6101435460408051638abf607760e01b815290516000926001600160a01b031691638abf60779160048083019260209291908290030181865afa158015612024573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120489190615adf565b9050612053816127ca565b611199818360006127d5565b61206882611026565b6120718161241f565b611057838361272b565b6060600061208b878901896150ec565b50905061209a8b828686613423565b9b9a5050505050505050505050565b60975460405163b2f918a160e01b815260009182918291829182918291829173__$0d78a42341742155da77b97d7f993534c7$__9163b2f918a1916120fd91609b916001600160a01b031690600401615afc565b60e060405180830381865af415801561211a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061213e9190615b85565b959d949c50929a50909850965094509092509050565b606083336001600160a01b038216148015906121995750336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614155b156121b9573360405163087231bf60e31b8152600401610e3d9190614431565b6097546040516370a0823160e01b81526000916001600160a01b0316906370a08231906121ea903090600401614431565b602060405180830381865afa158015612207573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061222b919061505e565b6097546040516321437a5360e01b815291925073__$0d78a42341742155da77b97d7f993534c7$__916321437a539161229a917f0000000000000000000000000000000000000000000000000000000000000000918a916001600160a01b03909116908c903090600401615bf9565b602060405180830381865af41580156122b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122db919061505e565b506097546040516370a0823160e01b815260009183916001600160a01b03909116906370a0823190612311903090600401614431565b602060405180830381865afa15801561232e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612352919061505e565b61235c9190614fa1565b90508060000361237f57604051630f6fa54560e41b815260040160405180910390fd5b61239b8782600060405180602001604052806000815250612d7b565b50939695505050505050565b600080516020615f508339815191526123bf8161241f565b815161013a8190556020808401805161013b556040808601805161013c5581519485529151928401929092525182820152517f220b9fb6f33ff05be83cf4d215109467b91026cf1f239e2acb4b7095cf09d5c59181900360600190a15050565b6112628133613471565b6000612443600080516020615f9783398151915284611ae8565b1561245057506001610c52565b610138546001600160a01b0316156124f157610138546040516316874da360e11b81526000916001600160a01b031690632d0e9b4690612494908790600401614431565b602060405180830381865afa1580156124b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124d59190615adf565b90506001600160a01b0381166124ef576000915050610c52565b505b610137546001600160a01b03161561258c57610137546040516356a42afd60e11b81526001600160a01b039091169063ad4855fa9061253a903090339088908890600401615c3a565b602060405180830381865afa158015612557573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061257b9190615c78565b151560000361258c57506000610c52565b6125a4600080516020615f97833981519152846125f4565b50600192915050565b60606111148686600b0b8686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612d7b92505050565b600080516020615f97833981519152820361266d576101435460405163329b55b760e21b81526001600160a01b039091169063ca6d56dc9061263a908490600401614431565b600060405180830381600087803b15801561265457600080fd5b505af1158015612668573d6000803e3d6000fd5b505050505b61119982826134ca565b604051635b69006f60e11b8152600080516020615ed083398151915260048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b6d200de90602401602060405180830381865afa1580156126ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127109190615adf565b6001600160a01b0316826001600160a01b0316149050919050565b600080516020615f9783398151915282036127a4576101435460405163058e524d60e11b81526001600160a01b0390911690630b1ca49a90612771908490600401614431565b600060405180830381600087803b15801561278b57600080fd5b505af115801561279f573d6000803e3d6000fd5b505050505b6111998282613550565b600080516020615f30833981519152546001600160a01b031690565b60006111998161241f565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561280857611057836135b7565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612862575060408051601f3d908101601f1916820190925261285f9181019061505e565b60015b6128c55760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610e3d565b600080516020615f3083398151915281146129345760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610e3d565b50611057838383613651565b6001600160a01b03163b151590565b61119982826125f4565b6001600160a01b0381166129805760405163538ba4f960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0383811691909117909155604051631e51d6a760e11b81527f000000000000000000000000000000000000000000000000000000000000000090911690633ca3ad4e906129e6903090600401614431565b602060405180830381865afa158015612a03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a279190615c78565b1515600003612aa5576040516315a722b960e31b8152600160048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ad3915c890602401600060405180830381600087803b158015612a9257600080fd5b505af1925050508015612aa3575060015b505b6040805180820182527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168082529151635b69006f60e11b8152600080516020615ed083398151915260048201529091602083019163b6d200de90602401602060405180830381865afa158015612b28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b4c9190615adf565b6001600160a01b039081169091528151609980546001600160a01b0319908116928416929092179055602090920151609a8054909316911617905550565b6060612bd18786600b0b8686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612d7b92505050565b98975050505050505050565b6000806000806000612bee8861367c565b604051631cd43d1160e31b81529092506001600160a01b038316915063e6a1e88890612c22908b908b908b90600401615c95565b608060405180830381865afa158015612c3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c639190615cb8565b929b919a509850909650945050505050565b600080856001600160a01b03166323b872dd60e01b868686604051602401612c9f939291906151e0565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051612cdd9190615cf6565b6000604051808303816000865af19150503d8060008114612d1a576040519150601f19603f3d011682016040523d82523d6000602084013e612d1f565b606091505b5091509150818015612d49575080511580612d49575080806020019051810190612d499190615c78565b610fd75760405162461bcd60e51b815260206004820152600360248201526229aa2360e91b6044820152606401610e3d565b805181901515600080612d8c610d13565b609754919350915073__$0d78a42341742155da77b97d7f993534c7$__9063934e2cce90609b906001600160a01b0316612dc4611837565b8588612dd0578c612dd3565b60005b6040516001600160e01b031960e088901b16815260048101959095526001600160a01b03938416602486015292909116604484015263ffffffff166064830152608482015260a40160006040518083038186803b158015612e3357600080fd5b505af4158015612e47573d6000803e3d6000fd5b505060975460009250612e6591506001600160a01b03168a306137eb565b6001600160a01b038a16600090815260986020526040902054909150841561325a57600082600b0b138015612ea257506459df649400600b83900b125b15612ec557604051624963df60e91b8152600b83900b6004820152602401610e3d565b6001600160a01b038a16600090815260986020526040902060010180546001600160e01b031916600160601b426001600160801b038116919091026001600160601b031916919091176001600160601b03851617909155612f27908990614fa1565b612f31908a614fb4565b6001600160a01b038b1660009081526098602052604081208054909190612f59908490614fcb565b9091555060009050612f69611837565b6001600160a01b03161461312c57612f7f611837565b6001600160a01b031663469048406040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fe09190615adf565b9350612fea611837565b6001600160a01b03166324a9d8536040518163ffffffff1660e01b8152600401602060405180830381865afa158015613027573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061304b9190615d12565b925073__$0d78a42341742155da77b97d7f993534c7$__634d167a906099609760009054906101000a90046001600160a01b0316609b60030160009054906101000a90046001600160a01b031688888f896130a69190615d2f565b8d6040518863ffffffff1660e01b81526004016130c99796959493929190615d5c565b600060405180830381865af41580156130e6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261310e9190810190615dac565b609e80546001600160a01b0319166001600160a01b03871617905595505b613134610d13565b809450819550505073__$0d78a42341742155da77b97d7f993534c7$__634d167a906099609760009054906101000a90046001600160a01b0316609b60040160009054906101000a90046001600160a01b031688888f896131959190615d2f565b8d6040518863ffffffff1660e01b81526004016131b89796959493929190615d5c565b600060405180830381865af41580156131d5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526131fd9190810190615dac565b609f80546001600160a01b0319166001600160a01b038781169190911790915560975491975061322e911630613879565b609e80546001600160601b0392909216600160a01b026001600160a01b03909216919091179055613399565b6000613264611837565b6001600160a01b0316146133535761327a611837565b6001600160a01b031663469048406040518163ffffffff1660e01b8152600401602060405180830381865afa1580156132b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132db9190615adf565b93506132e5611837565b6001600160a01b03166324a9d8536040518163ffffffff1660e01b8152600401602060405180830381865afa158015613322573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133469190615d12565b925061335384848b613900565b61335b610d13565b909450925061336b84848b613900565b6001600160a01b038a16600090815260986020526040812080548b9290613393908490614fcb565b90915550505b6001600160a01b038a166000818152609860205260409020547f6342e11b65ccb38a3bb259be9cda846c74ad52b36b62a2ee4799dc3db63a04a3908390886133e25760006133e4565b8c5b604080519384526020840192909252600b90810b8383015286900b60608301528815156080830152519081900360a00190a25050505050949350505050565b60606134688460008086868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612d7b92505050565b95945050505050565b61347b8282611ae8565b611199576134888161394c565b61349383602061395e565b6040516020016134a4929190615df4565b60408051601f198184030181529082905262461bcd60e51b8252610e3d916004016142a5565b6134d48282611ae8565b6111995760008281526065602090815260408083206001600160a01b03851684529091529020805460ff1916600117905561350c3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61355a8282611ae8565b156111995760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6135c081612940565b6136225760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610e3d565b600080516020615f3083398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61365a83613af9565b6000825111806136675750805b15611057576136768383613b39565b50505050565b7f65599bf746e17a00ea62e3610586992d88101b78eec3cf380706621fb97ea837547fb969d79d88acd02d04ed7ee7d43b949e7daf093d363abcfbbc43dfdfd1ce969a546001600160a01b0381166137ba576001600160a01b03821661374157826001600160a01b03166320bc44256040518163ffffffff1660e01b8152600401602060405180830381865afa15801561371a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061373e9190615adf565b91505b604051635b69006f60e11b8152600080516020615ed083398151915260048201526001600160a01b0383169063b6d200de90602401602060405180830381865afa158015613793573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137b79190615adf565b90505b6001600160a01b0382166137d0576137d0615e63565b6001600160a01b0381166137e6576137e6615e63565b915091565b6000806137f78561367c565b604051631cd43d1160e31b81529092506001600160a01b038316915063e6a1e8889061382b90889088908890600401615c95565b608060405180830381865afa158015613848573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061386c9190615cb8565b5090979650505050505050565b6000806138858461367c565b60405163e8e7e2d160e01b81529092506001600160a01b038316915063e8e7e2d1906138b79087908790600401614c65565b602060405180830381865afa1580156138d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138f89190615e79565b949350505050565b6001600160a01b03831661391357505050565b600061271061392863ffffffff851684614fb4565b6139329190615e96565b609754909150613676906001600160a01b03168583613c22565b6060610c526001600160a01b03831660145b6060600061396d836002614fb4565b613978906002614fcb565b6001600160401b0381111561398f5761398f614016565b6040519080825280601f01601f1916602001820160405280156139b9576020820181803683370190505b509050600360fc1b816000815181106139d4576139d4615077565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110613a0357613a03615077565b60200101906001600160f81b031916908160001a9053506000613a27846002614fb4565b613a32906001614fcb565b90505b6001811115613aaa576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110613a6657613a66615077565b1a60f81b828281518110613a7c57613a7c615077565b60200101906001600160f81b031916908160001a90535060049490941c93613aa381615eb8565b9050613a35565b508315610dd15760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610e3d565b613b02816135b7565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060613b4483612940565b613b9f5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610e3d565b600080846001600160a01b031684604051613bba9190615cf6565b600060405180830381855af49150503d8060008114613bf5576040519150601f19603f3d011682016040523d82523d6000602084013e613bfa565b606091505b50915091506134688282604051806060016040528060278152602001615f7060279139613d1b565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1790529151600092839290871691613c7e9190615cf6565b6000604051808303816000865af19150503d8060008114613cbb576040519150601f19603f3d011682016040523d82523d6000602084013e613cc0565b606091505b5091509150818015613cea575080511580613cea575080806020019051810190613cea9190615c78565b6119e45760405162461bcd60e51b815260206004820152600260248201526114d560f21b6044820152606401610e3d565b60608315613d2a575081610dd1565b610dd18383815115613d3f5781518083602001fd5b8060405162461bcd60e51b8152600401610e3d91906142a5565b82805482825590600052602060002090600f01601090048101928215613df25791602002820160005b83821115613dc257835183826101000a81548161ffff021916908361ffff1602179055509260200192600201602081600101049283019260010302613d82565b8015613df05782816101000a81549061ffff0219169055600201602081600101049283019260010302613dc2565b505b50613dfe929150613ea8565b5090565b82805482825590600052602060002090600101600290048101928215613df25791602002820160005b83821115613e7557835183826101000a8154816001600160801b0302191690836001600160801b031602179055509260200192601001602081600f01049283019260010302613e2b565b8015613df05782816101000a8154906001600160801b030219169055601001602081600f01049283019260010302613e75565b5b80821115613dfe5760008155600101613ea9565b600060208284031215613ecf57600080fd5b5035919050565b600060208284031215613ee857600080fd5b81356001600160e01b031981168114610dd157600080fd5b6001600160a01b038116811461126257600080fd5b8035613f2081613f00565b919050565b60008083601f840112613f3757600080fd5b5081356001600160401b03811115613f4e57600080fd5b602083019150836020828501011115613f6657600080fd5b9250929050565b600080600080600060808688031215613f8557600080fd5b8535613f9081613f00565b94506020860135613fa081613f00565b93506040860135925060608601356001600160401b03811115613fc257600080fd5b613fce88828901613f25565b969995985093965092949392505050565b6001600160a01b03169052565b600060208284031215613ffe57600080fd5b8135610dd181613f00565b6001600160801b03169052565b634e487b7160e01b600052604160045260246000fd5b60405161010081016001600160401b038111828210171561404f5761404f614016565b60405290565b604051608081016001600160401b038111828210171561404f5761404f614016565b60405160c081016001600160401b038111828210171561404f5761404f614016565b604051601f8201601f191681016001600160401b03811182821017156140c1576140c1614016565b604052919050565b60006001600160401b038211156140e2576140e2614016565b50601f01601f191660200190565b600082601f83011261410157600080fd5b813561411461410f826140c9565b614099565b81815284602083860101111561412957600080fd5b816020850160208301376000918101602001919091529392505050565b600060a0828403121561415857600080fd5b60405160a081016001600160401b03808211838310171561417b5761417b614016565b816040528293508435915061418f82613f00565b81835260208501356020840152604085013560408401526060850135606084015260808501359150808211156141c457600080fd5b506141d1858286016140f0565b6080830152505092915050565b6000806000606084860312156141f357600080fd5b83356001600160401b038082111561420a57600080fd5b61421687838801614146565b94506020860135915061422882613f00565b9092506040850135908082111561423e57600080fd5b5061424b868287016140f0565b9150509250925092565b60005b83811015614270578181015183820152602001614258565b50506000910152565b60008151808452614291816020860160208601614255565b601f01601f19169290920160200192915050565b602081526000610dd16020830184614279565b60008083601f8401126142ca57600080fd5b5081356001600160401b038111156142e157600080fd5b6020830191508360208260051b8501011115613f6657600080fd5b6000806000806040858703121561431257600080fd5b84356001600160401b038082111561432957600080fd5b614335888389016142b8565b9096509450602087013591508082111561434e57600080fd5b5061435b878288016142b8565b95989497509550505050565b600080600080600080600080600060c08a8c03121561438557600080fd5b893561439081613f00565b985060208a01356143a081613f00565b975060408a0135965060608a01356001600160401b03808211156143c357600080fd5b6143cf8d838e01613f25565b909850965060808c01359150808211156143e857600080fd5b6143f48d838e01613f25565b909650945060a08c013591508082111561440d57600080fd5b5061441a8c828d01613f25565b915080935050809150509295985092959850929598565b6001600160a01b0391909116815260200190565b6000806040838503121561445857600080fd5b82359150602083013561446a81613f00565b809150509250929050565b600080600080600080600060a0888a03121561449057600080fd5b873561449b81613f00565b965060208801356144ab81613f00565b95506040880135945060608801356001600160401b03808211156144ce57600080fd5b6144da8b838c01613f25565b909650945060808a01359150808211156144f357600080fd5b506145008a828b01613f25565b989b979a50959850939692959293505050565b63ffffffff8116811461126257600080fd5b8035613f2081614513565b60006001600160401b0382111561454957614549614016565b5060051b60200190565b61ffff8116811461126257600080fd5b8035613f2081614553565b600082601f83011261457f57600080fd5b8135602061458f61410f83614530565b82815260059290921b840181019181810190868411156145ae57600080fd5b8286015b848110156145d25780356145c581614553565b83529183019183016145b2565b509695505050505050565b6001600160801b038116811461126257600080fd5b8035613f20816145dd565b600082601f83011261460e57600080fd5b8135602061461e61410f83614530565b82815260059290921b8401810191818101908684111561463d57600080fd5b8286015b848110156145d2578035614654816145dd565b8352918301918301614641565b801515811461126257600080fd5b8035613f2081614661565b6000610100828403121561468d57600080fd5b61469561402c565b90506146a082614525565b815260208201356001600160401b03808211156146bc57600080fd5b6146c88583860161456e565b602084015260408401359150808211156146e157600080fd5b506146ee848285016145fd565b60408301525061470060608301613f15565b606082015261471160808301613f15565b608082015261472260a08301613f15565b60a082015261473360c08301613f15565b60c082015261474460e0830161466f565b60e082015292915050565b60006060828403121561476157600080fd5b604051606081016001600160401b038111828210171561478357614783614016565b80604052508091508235815260208301356020820152604083013560408201525092915050565b600080600080600060e086880312156147c257600080fd5b85356147cd81613f00565b945060208601356001600160401b038111156147e857600080fd5b6147f48882890161467a565b945050614804876040880161474f565b925060a086013561481481614513565b915060c086013561482481613f00565b809150509295509295909350565b6000806040838503121561484557600080fd5b823561485081613f00565b915060208301356001600160401b0381111561486b57600080fd5b614877858286016140f0565b9150509250929050565b6000806040838503121561489457600080fd5b823561489f81613f00565b946020939093013593505050565b600082601f8301126148be57600080fd5b813560206148ce61410f83614530565b82815260059290921b840181019181810190868411156148ed57600080fd5b8286015b848110156145d257803561490481613f00565b83529183019183016148f1565b60006080828403121561492357600080fd5b61492b614055565b9050813561493881614513565b815260208281013561494981614553565b8282015260408301356001600160401b038082111561496757600080fd5b614973868387016140f0565b6040850152606085013591508082111561498c57600080fd5b818501915085601f8301126149a057600080fd5b81356149ae61410f82614530565b81815260059190911b830184019084810190888311156149cd57600080fd5b8585015b83811015614a9d578035858111156149e95760008081fd5b860160c0818c03601f1901811315614a015760008081fd5b614a09614077565b614a148a8401614563565b8152614a2260408401614525565b8a82015260608301356040820152608083013588811115614a435760008081fd5b614a518e8c838701016140f0565b60608301525060a08084013589811115614a6b5760008081fd5b614a798f8d838801016148ad565b608084015250614a8a8385016145f2565b90820152855250509186019186016149d1565b50606087015250939695505050505050565b600080600060608486031215614ac457600080fd5b8335614acf81613f00565b925060208401356001600160401b03811115614aea57600080fd5b614af686828701614911565b9250506040840135614b0781614661565b809150509250925092565b60008060408385031215614b2557600080fd5b82356001600160401b03811115614b3b57600080fd5b614b478582860161467a565b925050602083013561446a81614513565b60008060408385031215614b6b57600080fd5b8235915060208301356001600160401b03811115614b8857600080fd5b61487785828601614911565b600080600060608486031215614ba957600080fd5b8335614bb481613f00565b92506020840135915060408401356001600160401b03811115614bd657600080fd5b61424b868287016140f0565b60008060008060608587031215614bf857600080fd5b8435614c0381613f00565b93506020850135925060408501356001600160401b03811115614c2557600080fd5b61435b87828801613f25565b600060208284031215614c4357600080fd5b81356001600160401b03811115614c5957600080fd5b6138f8848285016140f0565b6001600160a01b0392831681529116602082015260400190565b600080600060608486031215614c9457600080fd5b8335614c9f81613f00565b925060208401356001600160401b0380821115614cbb57600080fd5b614cc787838801614146565b9350604086013591508082111561423e57600080fd5b600060608284031215614cef57600080fd5b610dd1838361474f565b8051613f2081614513565b8051613f2081614553565b6000614d1d61410f846140c9565b9050828152838383011115614d3157600080fd5b610dd1836020830184614255565b600082601f830112614d5057600080fd5b610dd183835160208501614d0f565b600082601f830112614d7057600080fd5b81516020614d8061410f83614530565b82815260059290921b84018101918181019086841115614d9f57600080fd5b8286015b848110156145d2578051614db681613f00565b8352918301918301614da3565b8051613f20816145dd565b60006020808385031215614de157600080fd5b82516001600160401b0380821115614df857600080fd5b9084019060808287031215614e0c57600080fd5b614e14614055565b8251614e1f81614513565b815282840151614e2e81614553565b81850152604083015182811115614e4457600080fd5b614e5088828601614d3f565b604083015250606083015182811115614e6857600080fd5b80840193505086601f840112614e7d57600080fd5b8251614e8b61410f82614530565b81815260059190911b84018501908581019089831115614eaa57600080fd5b8686015b83811015614f7857805186811115614ec557600080fd5b870160c0818d03601f19011215614edc5760008081fd5b614ee4614077565b614eef8a8301614d04565b8152614efd60408301614cf9565b8a82015260608201516040820152608082015188811115614f1e5760008081fd5b614f2c8e8c83860101614d3f565b60608301525060a08083015189811115614f465760008081fd5b614f548f8d83870101614d5f565b608084015250614f6660c08401614dc3565b90820152845250918701918701614eae565b5060608401525090979650505050505050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610c5257610c52614f8b565b8082028115828204841417610c5257610c52614f8b565b80820180821115610c5257610c52614f8b565b60018060a01b0381511682526020810151602083015260408101516040830152606081015160608301526000608082015160a060808501526138f860a0850182614279565b600060018060a01b038087168352608060208401526150456080840187614fde565b9481166040840152929092166060909101525092915050565b60006020828403121561507057600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b6000808335601e198436030181126150a457600080fd5b8301803591506001600160401b038211156150be57600080fd5b602001915036819003821315613f6657600080fd5b6000600182016150e5576150e5614f8b565b5060010190565b600080604083850312156150ff57600080fd5b823561510a81613f00565b9150602083013561446a81613f00565b80600b0b811461126257600080fd5b6000806040838503121561513c57600080fd5b823561489f8161511a565b6020808252602c90820152600080516020615f1083398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c90820152600080516020615f1083398151915260408201526b6163746976652070726f787960a01b606082015260800190565b600080604083850312156151ce57600080fd5b82359150602083013561446a8161511a565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000608063ffffffff80845116855260208085015161ffff80821683890152604091508187015185838a015261523c868a0182614279565b90506060808901518a8303828c01528281518085528785019150878160051b860101888401935060005b8281101561532357601f19878303018452845160c08982511684528c8c830151168c8501528a8201518b8501528782015181898601526152a882860182614279565b9150508d8201518482038f8601528181518084528e840191508e83019350600092505b808310156152f45783516001600160a01b03168252928e019260019290920191908e01906152cb565b5060a09384015193925061530a86840185614009565b978d0197968d0196945050506001919091019050615266565b509d9c50505050505050505050505050565b6001600160a01b038416815260806020820181905260009061535990830185615204565b9215156040830152508082036060909101526000815260200192915050565b600081518084526020808501945080840160005b838110156153ac57815161ffff168752958201959082019060010161538c565b509495945050505050565b600081518084526020808501945080840160005b838110156153ac5781516001600160801b0316875295820195908201906001016153cb565b6020815263ffffffff82511660208201526000602083015161010080604085015261541f610120850183615378565b91506040850151601f1985840301606086015261543c83826153b7565b92505060608501516154516080860182613fdf565b50608085015161546460a0860182613fdf565b5060a085015161547760c0860182613fdf565b5060c085015161548a60e0860182613fdf565b5060e0850151801515858301525090949350505050565b8281526040602082015260006138f86040830184615204565b805480835260008281526020808220940193909190825b82600f8201101561562257815461ffff808216885260206154fc818a01838560101c1661ffff169052565b6040615511818b018486851c1661ffff169052565b60609150615529828b01848660301c1661ffff169052565b608061553e818c018587851c1661ffff169052565b60a09150615556828c01858760501c1661ffff169052565b60c061556b818d018688871c1661ffff169052565b60e09350615583848d01868860701c1661ffff169052565b61ffff86831c8616166101008d01526155a86101208d01868860901c1661ffff169052565b61ffff86841c8616166101408d01526155cd6101608d01868860b01c1661ffff169052565b61ffff86821c8616166101808d01525050506155f56101a08a01838560d01c1661ffff169052565b82901c1661ffff166101c088015260f01c6101e087015261020090950194600191909101906010016154d1565b9054908281101561563e5761ffff821686526020909501946001015b8281101561565b5761ffff601083901c1686526020909501946001015b8281101561567957602082901c61ffff168652602095909501946001015b828110156156965761ffff603083901c1686526020909501946001015b828110156156b35761ffff604083901c1686526020909501946001015b828110156156d05761ffff605083901c1686526020909501946001015b828110156156ed5761ffff606083901c1686526020909501946001015b8281101561570a5761ffff607083901c1686526020909501946001015b828110156157275761ffff608083901c1686526020909501946001015b828110156157445761ffff609083901c1686526020909501946001015b828110156157615761ffff60a083901c1686526020909501946001015b8281101561577e5761ffff60b083901c1686526020909501946001015b8281101561579b5761ffff60c083901c1686526020909501946001015b828110156157b85761ffff60d083901c1686526020909501946001015b828110156157d55761ffff60e083901c1686526020909501946001015b828110156157ec5760f082901c86525b6020860195505b5093949350505050565b805480835260008281526020808220940193909190825b6001838183011061581e5750615858565b8254615833886001600160801b038316614009565b615843602089018260801c614009565b5060409690960195919091019060020161580d565b9054908281101561588157615876866001600160801b038416614009565b602095909501946001015b828110156157ec576157e5868360801c614009565b6001600160a01b031690565b6000608063ffffffff80845116855260208085015161ffff80821683890152604091508187015185838a01526158da868a0182614279565b90506060808901518a8303828c01528281518085528785019150878160051b860101888401935060005b8281101561532357601f19878303018452845160c08982511684528c8c830151168c8501528a8201518b85015287820151818986015261594682860182614279565b9150508d8201518482038f8601528181518084528e840191508e83019350600092505b808310156159925783516001600160a01b03168252928e019260019290920191908e0190615969565b5060a0938401519392506159a886840185614009565b978d0197968d0196945050506001919091019050615904565b60006101008883528754602084015260018801546040840152600288015460608401528660808401528060a0840152615a0e818401615a04885463ffffffff1690565b63ffffffff169052565b610120830152615a256102008301600187016154ba565b82810360ff1901610140840152615a3f81600288016157f6565b9050615a4e6003870154615896565b615a5c610160850182613fdf565b50615a6a6004870154615896565b615a78610180850182613fdf565b50615a866005870154615896565b615a946101a0850182613fdf565b506006860154615ab16101c085016001600160a01b038316613fdf565b615ac66101e0850160ff8360a01c1615159052565b508460c084015282810360e084015261101981856158a2565b600060208284031215615af157600080fd5b8151610dd181613f00565b8254815260018301546020820152600283015460408201526003830154610120820190615b35606084016001600160a01b038316613fdf565b615b47608084018260a01d600b0b9052565b50615b556004850154615896565b615b6260a0840182613fdf565b50600584015460c0830152600684015460e0830152610dd1610100830184613fdf565b600080600080600080600060e0888a031215615ba057600080fd5b875196506020880151955060408801519450606088015193506080880151615bc78161511a565b60a0890151909350615bd88161511a565b60c0890151909250615be98161511a565b8091505092959891949750929550565b600060018060a01b03808816835260a06020840152615c1b60a0840188614fde565b9581166040840152938416606083015250911660809091015292915050565b6001600160a01b038581168252848116602083015283166040820152608060608201819052600090615c6e90830184614279565b9695505050505050565b600060208284031215615c8a57600080fd5b8151610dd181614661565b6001600160a01b0393841681529183166020830152909116604082015260600190565b60008060008060808587031215615cce57600080fd5b845193506020850151615ce08161511a565b6040860151606090960151949790965092505050565b60008251615d08818460208701614255565b9190910192915050565b600060208284031215615d2457600080fd5b8151610dd181614513565b600b82810b9082900b0360016001605f1b0319811260016001605f1b0382131715610c5257610c52614f8b565b8781526001600160a01b03878116602083015286811660408301528516606082015263ffffffff84166080820152600b83900b60a082015260e060c0820181905260009061101990830184614279565b600060208284031215615dbe57600080fd5b81516001600160401b03811115615dd457600080fd5b8201601f81018413615de557600080fd5b6138f884825160208401614d0f565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b815260008351615e26816017850160208801614255565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351615e57816028840160208801614255565b01602801949350505050565b634e487b7160e01b600052600160045260246000fd5b600060208284031215615e8b57600080fd5b8151610dd18161511a565b600082615eb357634e487b7160e01b600052601260045260246000fd5b500490565b600081615ec757615ec7614f8b565b50600019019056fea9214cc96615e0085d3bb077758db69497dc2dce3b2b1e97bc93c3d18d83efd3f0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc946756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b08416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564829b824e2329e205435d941c9f13baf578548505283d29261236d8e6596d4636a264697066735822122076aae20343c7b7ce056b614cbf27adb9e03039dc4aa5cba486bbfe2447c3d1d464736f6c63430008130033",
2126
+ "linkReferences": {
2127
+ "contracts/DirectPayments/DirectPaymentsLibrary.sol": {
2128
+ "DirectPaymentsLibrary": [
2129
+ {
2130
+ "length": 20,
2131
+ "start": 8172
2132
+ }
2133
+ ]
2134
+ },
2135
+ "contracts/utils/HelperLibrary.sol": {
2136
+ "HelperLibrary": [
2137
+ {
2138
+ "length": 20,
2139
+ "start": 4054
2140
+ },
2141
+ {
2142
+ "length": 20,
2143
+ "start": 6485
2144
+ },
2145
+ {
2146
+ "length": 20,
2147
+ "start": 8776
2148
+ },
2149
+ {
2150
+ "length": 20,
2151
+ "start": 9150
2152
+ },
2153
+ {
2154
+ "length": 20,
2155
+ "start": 12052
2156
+ },
2157
+ {
2158
+ "length": 20,
2159
+ "start": 12749
2160
+ },
2161
+ {
2162
+ "length": 20,
2163
+ "start": 12988
2164
+ }
2165
+ ]
2166
+ }
2167
+ },
2168
+ "deployedLinkReferences": {
2169
+ "contracts/DirectPayments/DirectPaymentsLibrary.sol": {
2170
+ "DirectPaymentsLibrary": [
2171
+ {
2172
+ "length": 20,
2173
+ "start": 7790
2174
+ }
2175
+ ]
2176
+ },
2177
+ "contracts/utils/HelperLibrary.sol": {
2178
+ "HelperLibrary": [
2179
+ {
2180
+ "length": 20,
2181
+ "start": 3672
2182
+ },
2183
+ {
2184
+ "length": 20,
2185
+ "start": 6103
2186
+ },
2187
+ {
2188
+ "length": 20,
2189
+ "start": 8394
2190
+ },
2191
+ {
2192
+ "length": 20,
2193
+ "start": 8768
2194
+ },
2195
+ {
2196
+ "length": 20,
2197
+ "start": 11670
2198
+ },
2199
+ {
2200
+ "length": 20,
2201
+ "start": 12367
2202
+ },
2203
+ {
2204
+ "length": 20,
2205
+ "start": 12606
2206
+ }
2207
+ ]
2208
+ }
2209
+ }
2210
+ }