ocean-contracts 2.0.4__py3-none-any.whl → 2.2.0__py3-none-any.whl

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 (36) hide show
  1. addresses/address.json +29 -7
  2. artifacts/AccessList.json +630 -0
  3. artifacts/AccessListFactory.json +220 -0
  4. artifacts/Booster.json +557 -0
  5. artifacts/DFRewards.json +2 -2
  6. artifacts/DFStrategyV1.json +2 -2
  7. artifacts/Dispenser.json +2 -2
  8. artifacts/ERC20Template.json +2 -2
  9. artifacts/ERC20Template3.json +2 -2
  10. artifacts/ERC20Template4.json +1806 -0
  11. artifacts/ERC20TemplateEnterprise.json +2 -2
  12. artifacts/ERC721.json +2 -2
  13. artifacts/ERC721Factory.json +2 -2
  14. artifacts/ERC721Template.json +2 -2
  15. artifacts/ERC725Ocean.json +2 -2
  16. artifacts/FactoryRouter.json +2 -2
  17. artifacts/FixedRateExchange.json +2 -2
  18. artifacts/IAccessList.json +68 -0
  19. artifacts/IAccessListContract.json +30 -0
  20. artifacts/IAccessListFactory.json +49 -0
  21. artifacts/MockERC20.json +2 -2
  22. artifacts/MockOcean.json +2 -2
  23. artifacts/MockOldDT.json +2 -2
  24. artifacts/OPFCommunityFeeCollector.json +2 -2
  25. artifacts/OceanToken.json +2 -2
  26. artifacts/PredictoorHelper.json +2 -2
  27. artifacts/SmartWalletChecker.json +2 -2
  28. artifacts/Splitter.json +2 -2
  29. artifacts/VestingWalletHalving.json +2 -2
  30. artifacts/VestingWalletLinear.json +2 -2
  31. artifacts/veAllocate.json +2 -2
  32. artifacts/veFeeDistributorOwner.json +2 -2
  33. {ocean_contracts-2.0.4.dist-info → ocean_contracts-2.2.0.dist-info}/METADATA +1 -1
  34. {ocean_contracts-2.0.4.dist-info → ocean_contracts-2.2.0.dist-info}/RECORD +36 -29
  35. {ocean_contracts-2.0.4.dist-info → ocean_contracts-2.2.0.dist-info}/WHEEL +1 -1
  36. {ocean_contracts-2.0.4.dist-info → ocean_contracts-2.2.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,1806 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "ERC20Template4",
4
+ "sourceName": "contracts/templates/ERC20Template4.sol",
5
+ "abi": [
6
+ {
7
+ "anonymous": false,
8
+ "inputs": [
9
+ {
10
+ "indexed": true,
11
+ "internalType": "address",
12
+ "name": "user",
13
+ "type": "address"
14
+ },
15
+ {
16
+ "indexed": true,
17
+ "internalType": "address",
18
+ "name": "signer",
19
+ "type": "address"
20
+ },
21
+ {
22
+ "indexed": false,
23
+ "internalType": "uint256",
24
+ "name": "timestamp",
25
+ "type": "uint256"
26
+ },
27
+ {
28
+ "indexed": false,
29
+ "internalType": "uint256",
30
+ "name": "blockNumber",
31
+ "type": "uint256"
32
+ }
33
+ ],
34
+ "name": "AddedMinter",
35
+ "type": "event"
36
+ },
37
+ {
38
+ "anonymous": false,
39
+ "inputs": [
40
+ {
41
+ "indexed": true,
42
+ "internalType": "address",
43
+ "name": "user",
44
+ "type": "address"
45
+ },
46
+ {
47
+ "indexed": true,
48
+ "internalType": "address",
49
+ "name": "signer",
50
+ "type": "address"
51
+ },
52
+ {
53
+ "indexed": false,
54
+ "internalType": "uint256",
55
+ "name": "timestamp",
56
+ "type": "uint256"
57
+ },
58
+ {
59
+ "indexed": false,
60
+ "internalType": "uint256",
61
+ "name": "blockNumber",
62
+ "type": "uint256"
63
+ }
64
+ ],
65
+ "name": "AddedPaymentManager",
66
+ "type": "event"
67
+ },
68
+ {
69
+ "anonymous": false,
70
+ "inputs": [
71
+ {
72
+ "indexed": true,
73
+ "internalType": "address",
74
+ "name": "owner",
75
+ "type": "address"
76
+ },
77
+ {
78
+ "indexed": true,
79
+ "internalType": "address",
80
+ "name": "spender",
81
+ "type": "address"
82
+ },
83
+ {
84
+ "indexed": false,
85
+ "internalType": "uint256",
86
+ "name": "value",
87
+ "type": "uint256"
88
+ }
89
+ ],
90
+ "name": "Approval",
91
+ "type": "event"
92
+ },
93
+ {
94
+ "anonymous": false,
95
+ "inputs": [
96
+ {
97
+ "indexed": true,
98
+ "internalType": "address",
99
+ "name": "signer",
100
+ "type": "address"
101
+ },
102
+ {
103
+ "indexed": false,
104
+ "internalType": "uint256",
105
+ "name": "timestamp",
106
+ "type": "uint256"
107
+ },
108
+ {
109
+ "indexed": false,
110
+ "internalType": "uint256",
111
+ "name": "blockNumber",
112
+ "type": "uint256"
113
+ }
114
+ ],
115
+ "name": "CleanedPermissions",
116
+ "type": "event"
117
+ },
118
+ {
119
+ "anonymous": false,
120
+ "inputs": [
121
+ {
122
+ "indexed": true,
123
+ "internalType": "address",
124
+ "name": "consumeMarketFeeAddress",
125
+ "type": "address"
126
+ },
127
+ {
128
+ "indexed": true,
129
+ "internalType": "address",
130
+ "name": "consumeMarketFeeToken",
131
+ "type": "address"
132
+ },
133
+ {
134
+ "indexed": false,
135
+ "internalType": "uint256",
136
+ "name": "consumeMarketFeeAmount",
137
+ "type": "uint256"
138
+ }
139
+ ],
140
+ "name": "ConsumeMarketFee",
141
+ "type": "event"
142
+ },
143
+ {
144
+ "anonymous": false,
145
+ "inputs": [
146
+ {
147
+ "indexed": false,
148
+ "internalType": "address",
149
+ "name": "currentMinter",
150
+ "type": "address"
151
+ },
152
+ {
153
+ "indexed": false,
154
+ "internalType": "address",
155
+ "name": "newMinter",
156
+ "type": "address"
157
+ }
158
+ ],
159
+ "name": "MinterApproved",
160
+ "type": "event"
161
+ },
162
+ {
163
+ "anonymous": false,
164
+ "inputs": [
165
+ {
166
+ "indexed": false,
167
+ "internalType": "address",
168
+ "name": "currentMinter",
169
+ "type": "address"
170
+ },
171
+ {
172
+ "indexed": false,
173
+ "internalType": "address",
174
+ "name": "newMinter",
175
+ "type": "address"
176
+ }
177
+ ],
178
+ "name": "MinterProposed",
179
+ "type": "event"
180
+ },
181
+ {
182
+ "anonymous": false,
183
+ "inputs": [
184
+ {
185
+ "indexed": false,
186
+ "internalType": "address",
187
+ "name": "dispenserContract",
188
+ "type": "address"
189
+ }
190
+ ],
191
+ "name": "NewDispenser",
192
+ "type": "event"
193
+ },
194
+ {
195
+ "anonymous": false,
196
+ "inputs": [
197
+ {
198
+ "indexed": false,
199
+ "internalType": "bytes32",
200
+ "name": "exchangeId",
201
+ "type": "bytes32"
202
+ },
203
+ {
204
+ "indexed": true,
205
+ "internalType": "address",
206
+ "name": "owner",
207
+ "type": "address"
208
+ },
209
+ {
210
+ "indexed": false,
211
+ "internalType": "address",
212
+ "name": "exchangeContract",
213
+ "type": "address"
214
+ },
215
+ {
216
+ "indexed": true,
217
+ "internalType": "address",
218
+ "name": "baseToken",
219
+ "type": "address"
220
+ }
221
+ ],
222
+ "name": "NewFixedRate",
223
+ "type": "event"
224
+ },
225
+ {
226
+ "anonymous": false,
227
+ "inputs": [
228
+ {
229
+ "indexed": true,
230
+ "internalType": "address",
231
+ "name": "caller",
232
+ "type": "address"
233
+ },
234
+ {
235
+ "indexed": true,
236
+ "internalType": "address",
237
+ "name": "_newPaymentCollector",
238
+ "type": "address"
239
+ },
240
+ {
241
+ "indexed": false,
242
+ "internalType": "uint256",
243
+ "name": "timestamp",
244
+ "type": "uint256"
245
+ },
246
+ {
247
+ "indexed": false,
248
+ "internalType": "uint256",
249
+ "name": "blockNumber",
250
+ "type": "uint256"
251
+ }
252
+ ],
253
+ "name": "NewPaymentCollector",
254
+ "type": "event"
255
+ },
256
+ {
257
+ "anonymous": false,
258
+ "inputs": [
259
+ {
260
+ "indexed": true,
261
+ "internalType": "address",
262
+ "name": "providerAddress",
263
+ "type": "address"
264
+ },
265
+ {
266
+ "indexed": true,
267
+ "internalType": "address",
268
+ "name": "consumerAddress",
269
+ "type": "address"
270
+ },
271
+ {
272
+ "indexed": false,
273
+ "internalType": "bytes32",
274
+ "name": "orderTxId",
275
+ "type": "bytes32"
276
+ },
277
+ {
278
+ "indexed": false,
279
+ "internalType": "bytes",
280
+ "name": "providerData",
281
+ "type": "bytes"
282
+ },
283
+ {
284
+ "indexed": false,
285
+ "internalType": "bytes",
286
+ "name": "providerSignature",
287
+ "type": "bytes"
288
+ },
289
+ {
290
+ "indexed": false,
291
+ "internalType": "bytes",
292
+ "name": "consumerData",
293
+ "type": "bytes"
294
+ },
295
+ {
296
+ "indexed": false,
297
+ "internalType": "bytes",
298
+ "name": "consumerSignature",
299
+ "type": "bytes"
300
+ },
301
+ {
302
+ "indexed": false,
303
+ "internalType": "uint256",
304
+ "name": "timestamp",
305
+ "type": "uint256"
306
+ },
307
+ {
308
+ "indexed": false,
309
+ "internalType": "uint256",
310
+ "name": "blockNumber",
311
+ "type": "uint256"
312
+ }
313
+ ],
314
+ "name": "OrderExecuted",
315
+ "type": "event"
316
+ },
317
+ {
318
+ "anonymous": false,
319
+ "inputs": [
320
+ {
321
+ "indexed": false,
322
+ "internalType": "bytes32",
323
+ "name": "orderTxId",
324
+ "type": "bytes32"
325
+ },
326
+ {
327
+ "indexed": false,
328
+ "internalType": "address",
329
+ "name": "caller",
330
+ "type": "address"
331
+ },
332
+ {
333
+ "indexed": false,
334
+ "internalType": "uint256",
335
+ "name": "timestamp",
336
+ "type": "uint256"
337
+ },
338
+ {
339
+ "indexed": false,
340
+ "internalType": "uint256",
341
+ "name": "number",
342
+ "type": "uint256"
343
+ }
344
+ ],
345
+ "name": "OrderReused",
346
+ "type": "event"
347
+ },
348
+ {
349
+ "anonymous": false,
350
+ "inputs": [
351
+ {
352
+ "indexed": true,
353
+ "internalType": "address",
354
+ "name": "consumer",
355
+ "type": "address"
356
+ },
357
+ {
358
+ "indexed": false,
359
+ "internalType": "address",
360
+ "name": "payer",
361
+ "type": "address"
362
+ },
363
+ {
364
+ "indexed": false,
365
+ "internalType": "uint256",
366
+ "name": "amount",
367
+ "type": "uint256"
368
+ },
369
+ {
370
+ "indexed": false,
371
+ "internalType": "uint256",
372
+ "name": "serviceIndex",
373
+ "type": "uint256"
374
+ },
375
+ {
376
+ "indexed": false,
377
+ "internalType": "uint256",
378
+ "name": "timestamp",
379
+ "type": "uint256"
380
+ },
381
+ {
382
+ "indexed": true,
383
+ "internalType": "address",
384
+ "name": "publishMarketAddress",
385
+ "type": "address"
386
+ },
387
+ {
388
+ "indexed": false,
389
+ "internalType": "uint256",
390
+ "name": "blockNumber",
391
+ "type": "uint256"
392
+ }
393
+ ],
394
+ "name": "OrderStarted",
395
+ "type": "event"
396
+ },
397
+ {
398
+ "anonymous": false,
399
+ "inputs": [
400
+ {
401
+ "indexed": true,
402
+ "internalType": "address",
403
+ "name": "providerFeeAddress",
404
+ "type": "address"
405
+ },
406
+ {
407
+ "indexed": true,
408
+ "internalType": "address",
409
+ "name": "providerFeeToken",
410
+ "type": "address"
411
+ },
412
+ {
413
+ "indexed": false,
414
+ "internalType": "uint256",
415
+ "name": "providerFeeAmount",
416
+ "type": "uint256"
417
+ },
418
+ {
419
+ "indexed": false,
420
+ "internalType": "bytes",
421
+ "name": "providerData",
422
+ "type": "bytes"
423
+ },
424
+ {
425
+ "indexed": false,
426
+ "internalType": "uint8",
427
+ "name": "v",
428
+ "type": "uint8"
429
+ },
430
+ {
431
+ "indexed": false,
432
+ "internalType": "bytes32",
433
+ "name": "r",
434
+ "type": "bytes32"
435
+ },
436
+ {
437
+ "indexed": false,
438
+ "internalType": "bytes32",
439
+ "name": "s",
440
+ "type": "bytes32"
441
+ },
442
+ {
443
+ "indexed": false,
444
+ "internalType": "uint256",
445
+ "name": "validUntil",
446
+ "type": "uint256"
447
+ }
448
+ ],
449
+ "name": "ProviderFee",
450
+ "type": "event"
451
+ },
452
+ {
453
+ "anonymous": false,
454
+ "inputs": [
455
+ {
456
+ "indexed": true,
457
+ "internalType": "address",
458
+ "name": "PublishMarketFeeAddress",
459
+ "type": "address"
460
+ },
461
+ {
462
+ "indexed": true,
463
+ "internalType": "address",
464
+ "name": "PublishMarketFeeToken",
465
+ "type": "address"
466
+ },
467
+ {
468
+ "indexed": false,
469
+ "internalType": "uint256",
470
+ "name": "PublishMarketFeeAmount",
471
+ "type": "uint256"
472
+ }
473
+ ],
474
+ "name": "PublishMarketFee",
475
+ "type": "event"
476
+ },
477
+ {
478
+ "anonymous": false,
479
+ "inputs": [
480
+ {
481
+ "indexed": false,
482
+ "internalType": "address",
483
+ "name": "caller",
484
+ "type": "address"
485
+ },
486
+ {
487
+ "indexed": false,
488
+ "internalType": "address",
489
+ "name": "PublishMarketFeeAddress",
490
+ "type": "address"
491
+ },
492
+ {
493
+ "indexed": false,
494
+ "internalType": "address",
495
+ "name": "PublishMarketFeeToken",
496
+ "type": "address"
497
+ },
498
+ {
499
+ "indexed": false,
500
+ "internalType": "uint256",
501
+ "name": "PublishMarketFeeAmount",
502
+ "type": "uint256"
503
+ }
504
+ ],
505
+ "name": "PublishMarketFeeChanged",
506
+ "type": "event"
507
+ },
508
+ {
509
+ "anonymous": false,
510
+ "inputs": [
511
+ {
512
+ "indexed": true,
513
+ "internalType": "address",
514
+ "name": "user",
515
+ "type": "address"
516
+ },
517
+ {
518
+ "indexed": true,
519
+ "internalType": "address",
520
+ "name": "signer",
521
+ "type": "address"
522
+ },
523
+ {
524
+ "indexed": false,
525
+ "internalType": "uint256",
526
+ "name": "timestamp",
527
+ "type": "uint256"
528
+ },
529
+ {
530
+ "indexed": false,
531
+ "internalType": "uint256",
532
+ "name": "blockNumber",
533
+ "type": "uint256"
534
+ }
535
+ ],
536
+ "name": "RemovedMinter",
537
+ "type": "event"
538
+ },
539
+ {
540
+ "anonymous": false,
541
+ "inputs": [
542
+ {
543
+ "indexed": true,
544
+ "internalType": "address",
545
+ "name": "user",
546
+ "type": "address"
547
+ },
548
+ {
549
+ "indexed": true,
550
+ "internalType": "address",
551
+ "name": "signer",
552
+ "type": "address"
553
+ },
554
+ {
555
+ "indexed": false,
556
+ "internalType": "uint256",
557
+ "name": "timestamp",
558
+ "type": "uint256"
559
+ },
560
+ {
561
+ "indexed": false,
562
+ "internalType": "uint256",
563
+ "name": "blockNumber",
564
+ "type": "uint256"
565
+ }
566
+ ],
567
+ "name": "RemovedPaymentManager",
568
+ "type": "event"
569
+ },
570
+ {
571
+ "anonymous": false,
572
+ "inputs": [
573
+ {
574
+ "indexed": true,
575
+ "internalType": "address",
576
+ "name": "from",
577
+ "type": "address"
578
+ },
579
+ {
580
+ "indexed": true,
581
+ "internalType": "address",
582
+ "name": "to",
583
+ "type": "address"
584
+ },
585
+ {
586
+ "indexed": false,
587
+ "internalType": "uint256",
588
+ "name": "value",
589
+ "type": "uint256"
590
+ }
591
+ ],
592
+ "name": "Transfer",
593
+ "type": "event"
594
+ },
595
+ {
596
+ "stateMutability": "payable",
597
+ "type": "fallback"
598
+ },
599
+ {
600
+ "inputs": [
601
+ {
602
+ "internalType": "address",
603
+ "name": "_minter",
604
+ "type": "address"
605
+ }
606
+ ],
607
+ "name": "addMinter",
608
+ "outputs": [],
609
+ "stateMutability": "nonpayable",
610
+ "type": "function"
611
+ },
612
+ {
613
+ "inputs": [
614
+ {
615
+ "internalType": "address",
616
+ "name": "_paymentManager",
617
+ "type": "address"
618
+ }
619
+ ],
620
+ "name": "addPaymentManager",
621
+ "outputs": [],
622
+ "stateMutability": "nonpayable",
623
+ "type": "function"
624
+ },
625
+ {
626
+ "inputs": [
627
+ {
628
+ "internalType": "address",
629
+ "name": "owner",
630
+ "type": "address"
631
+ },
632
+ {
633
+ "internalType": "address",
634
+ "name": "spender",
635
+ "type": "address"
636
+ }
637
+ ],
638
+ "name": "allowance",
639
+ "outputs": [
640
+ {
641
+ "internalType": "uint256",
642
+ "name": "",
643
+ "type": "uint256"
644
+ }
645
+ ],
646
+ "stateMutability": "view",
647
+ "type": "function"
648
+ },
649
+ {
650
+ "inputs": [
651
+ {
652
+ "internalType": "address",
653
+ "name": "spender",
654
+ "type": "address"
655
+ },
656
+ {
657
+ "internalType": "uint256",
658
+ "name": "amount",
659
+ "type": "uint256"
660
+ }
661
+ ],
662
+ "name": "approve",
663
+ "outputs": [
664
+ {
665
+ "internalType": "bool",
666
+ "name": "",
667
+ "type": "bool"
668
+ }
669
+ ],
670
+ "stateMutability": "nonpayable",
671
+ "type": "function"
672
+ },
673
+ {
674
+ "inputs": [
675
+ {
676
+ "internalType": "uint256",
677
+ "name": "",
678
+ "type": "uint256"
679
+ }
680
+ ],
681
+ "name": "authERC20",
682
+ "outputs": [
683
+ {
684
+ "internalType": "address",
685
+ "name": "",
686
+ "type": "address"
687
+ }
688
+ ],
689
+ "stateMutability": "view",
690
+ "type": "function"
691
+ },
692
+ {
693
+ "inputs": [
694
+ {
695
+ "internalType": "address",
696
+ "name": "account",
697
+ "type": "address"
698
+ }
699
+ ],
700
+ "name": "balanceOf",
701
+ "outputs": [
702
+ {
703
+ "internalType": "uint256",
704
+ "name": "",
705
+ "type": "uint256"
706
+ }
707
+ ],
708
+ "stateMutability": "view",
709
+ "type": "function"
710
+ },
711
+ {
712
+ "inputs": [
713
+ {
714
+ "internalType": "uint256",
715
+ "name": "amount",
716
+ "type": "uint256"
717
+ }
718
+ ],
719
+ "name": "burn",
720
+ "outputs": [],
721
+ "stateMutability": "nonpayable",
722
+ "type": "function"
723
+ },
724
+ {
725
+ "inputs": [
726
+ {
727
+ "internalType": "address",
728
+ "name": "account",
729
+ "type": "address"
730
+ },
731
+ {
732
+ "internalType": "uint256",
733
+ "name": "amount",
734
+ "type": "uint256"
735
+ }
736
+ ],
737
+ "name": "burnFrom",
738
+ "outputs": [],
739
+ "stateMutability": "nonpayable",
740
+ "type": "function"
741
+ },
742
+ {
743
+ "inputs": [
744
+ {
745
+ "components": [
746
+ {
747
+ "internalType": "address",
748
+ "name": "consumer",
749
+ "type": "address"
750
+ },
751
+ {
752
+ "internalType": "uint256",
753
+ "name": "serviceIndex",
754
+ "type": "uint256"
755
+ },
756
+ {
757
+ "components": [
758
+ {
759
+ "internalType": "address",
760
+ "name": "providerFeeAddress",
761
+ "type": "address"
762
+ },
763
+ {
764
+ "internalType": "address",
765
+ "name": "providerFeeToken",
766
+ "type": "address"
767
+ },
768
+ {
769
+ "internalType": "uint256",
770
+ "name": "providerFeeAmount",
771
+ "type": "uint256"
772
+ },
773
+ {
774
+ "internalType": "uint8",
775
+ "name": "v",
776
+ "type": "uint8"
777
+ },
778
+ {
779
+ "internalType": "bytes32",
780
+ "name": "r",
781
+ "type": "bytes32"
782
+ },
783
+ {
784
+ "internalType": "bytes32",
785
+ "name": "s",
786
+ "type": "bytes32"
787
+ },
788
+ {
789
+ "internalType": "uint256",
790
+ "name": "validUntil",
791
+ "type": "uint256"
792
+ },
793
+ {
794
+ "internalType": "bytes",
795
+ "name": "providerData",
796
+ "type": "bytes"
797
+ }
798
+ ],
799
+ "internalType": "struct ERC20Template4.providerFee",
800
+ "name": "_providerFee",
801
+ "type": "tuple"
802
+ },
803
+ {
804
+ "components": [
805
+ {
806
+ "internalType": "address",
807
+ "name": "consumeMarketFeeAddress",
808
+ "type": "address"
809
+ },
810
+ {
811
+ "internalType": "address",
812
+ "name": "consumeMarketFeeToken",
813
+ "type": "address"
814
+ },
815
+ {
816
+ "internalType": "uint256",
817
+ "name": "consumeMarketFeeAmount",
818
+ "type": "uint256"
819
+ }
820
+ ],
821
+ "internalType": "struct ERC20Template4.consumeMarketFee",
822
+ "name": "_consumeMarketFee",
823
+ "type": "tuple"
824
+ }
825
+ ],
826
+ "internalType": "struct ERC20Template4.OrderParams",
827
+ "name": "_orderParams",
828
+ "type": "tuple"
829
+ },
830
+ {
831
+ "internalType": "address",
832
+ "name": "dispenserContract",
833
+ "type": "address"
834
+ }
835
+ ],
836
+ "name": "buyFromDispenserAndOrder",
837
+ "outputs": [],
838
+ "stateMutability": "nonpayable",
839
+ "type": "function"
840
+ },
841
+ {
842
+ "inputs": [
843
+ {
844
+ "components": [
845
+ {
846
+ "internalType": "address",
847
+ "name": "consumer",
848
+ "type": "address"
849
+ },
850
+ {
851
+ "internalType": "uint256",
852
+ "name": "serviceIndex",
853
+ "type": "uint256"
854
+ },
855
+ {
856
+ "components": [
857
+ {
858
+ "internalType": "address",
859
+ "name": "providerFeeAddress",
860
+ "type": "address"
861
+ },
862
+ {
863
+ "internalType": "address",
864
+ "name": "providerFeeToken",
865
+ "type": "address"
866
+ },
867
+ {
868
+ "internalType": "uint256",
869
+ "name": "providerFeeAmount",
870
+ "type": "uint256"
871
+ },
872
+ {
873
+ "internalType": "uint8",
874
+ "name": "v",
875
+ "type": "uint8"
876
+ },
877
+ {
878
+ "internalType": "bytes32",
879
+ "name": "r",
880
+ "type": "bytes32"
881
+ },
882
+ {
883
+ "internalType": "bytes32",
884
+ "name": "s",
885
+ "type": "bytes32"
886
+ },
887
+ {
888
+ "internalType": "uint256",
889
+ "name": "validUntil",
890
+ "type": "uint256"
891
+ },
892
+ {
893
+ "internalType": "bytes",
894
+ "name": "providerData",
895
+ "type": "bytes"
896
+ }
897
+ ],
898
+ "internalType": "struct ERC20Template4.providerFee",
899
+ "name": "_providerFee",
900
+ "type": "tuple"
901
+ },
902
+ {
903
+ "components": [
904
+ {
905
+ "internalType": "address",
906
+ "name": "consumeMarketFeeAddress",
907
+ "type": "address"
908
+ },
909
+ {
910
+ "internalType": "address",
911
+ "name": "consumeMarketFeeToken",
912
+ "type": "address"
913
+ },
914
+ {
915
+ "internalType": "uint256",
916
+ "name": "consumeMarketFeeAmount",
917
+ "type": "uint256"
918
+ }
919
+ ],
920
+ "internalType": "struct ERC20Template4.consumeMarketFee",
921
+ "name": "_consumeMarketFee",
922
+ "type": "tuple"
923
+ }
924
+ ],
925
+ "internalType": "struct ERC20Template4.OrderParams",
926
+ "name": "_orderParams",
927
+ "type": "tuple"
928
+ },
929
+ {
930
+ "components": [
931
+ {
932
+ "internalType": "address",
933
+ "name": "exchangeContract",
934
+ "type": "address"
935
+ },
936
+ {
937
+ "internalType": "bytes32",
938
+ "name": "exchangeId",
939
+ "type": "bytes32"
940
+ },
941
+ {
942
+ "internalType": "uint256",
943
+ "name": "maxBaseTokenAmount",
944
+ "type": "uint256"
945
+ },
946
+ {
947
+ "internalType": "uint256",
948
+ "name": "swapMarketFee",
949
+ "type": "uint256"
950
+ },
951
+ {
952
+ "internalType": "address",
953
+ "name": "marketFeeAddress",
954
+ "type": "address"
955
+ }
956
+ ],
957
+ "internalType": "struct ERC20Template4.FreParams",
958
+ "name": "_freParams",
959
+ "type": "tuple"
960
+ }
961
+ ],
962
+ "name": "buyFromFreAndOrder",
963
+ "outputs": [],
964
+ "stateMutability": "nonpayable",
965
+ "type": "function"
966
+ },
967
+ {
968
+ "inputs": [],
969
+ "name": "cap",
970
+ "outputs": [
971
+ {
972
+ "internalType": "uint256",
973
+ "name": "",
974
+ "type": "uint256"
975
+ }
976
+ ],
977
+ "stateMutability": "view",
978
+ "type": "function"
979
+ },
980
+ {
981
+ "inputs": [],
982
+ "name": "cleanFrom721",
983
+ "outputs": [],
984
+ "stateMutability": "nonpayable",
985
+ "type": "function"
986
+ },
987
+ {
988
+ "inputs": [],
989
+ "name": "cleanPermissions",
990
+ "outputs": [],
991
+ "stateMutability": "nonpayable",
992
+ "type": "function"
993
+ },
994
+ {
995
+ "inputs": [
996
+ {
997
+ "internalType": "address",
998
+ "name": "_dispenser",
999
+ "type": "address"
1000
+ },
1001
+ {
1002
+ "internalType": "uint256",
1003
+ "name": "maxTokens",
1004
+ "type": "uint256"
1005
+ },
1006
+ {
1007
+ "internalType": "uint256",
1008
+ "name": "maxBalance",
1009
+ "type": "uint256"
1010
+ },
1011
+ {
1012
+ "internalType": "bool",
1013
+ "name": "withMint",
1014
+ "type": "bool"
1015
+ },
1016
+ {
1017
+ "internalType": "address",
1018
+ "name": "",
1019
+ "type": "address"
1020
+ }
1021
+ ],
1022
+ "name": "createDispenser",
1023
+ "outputs": [],
1024
+ "stateMutability": "nonpayable",
1025
+ "type": "function"
1026
+ },
1027
+ {
1028
+ "inputs": [
1029
+ {
1030
+ "internalType": "address",
1031
+ "name": "fixedPriceAddress",
1032
+ "type": "address"
1033
+ },
1034
+ {
1035
+ "internalType": "address[]",
1036
+ "name": "addresses",
1037
+ "type": "address[]"
1038
+ },
1039
+ {
1040
+ "internalType": "uint256[]",
1041
+ "name": "uints",
1042
+ "type": "uint256[]"
1043
+ }
1044
+ ],
1045
+ "name": "createFixedRate",
1046
+ "outputs": [
1047
+ {
1048
+ "internalType": "bytes32",
1049
+ "name": "exchangeId",
1050
+ "type": "bytes32"
1051
+ }
1052
+ ],
1053
+ "stateMutability": "nonpayable",
1054
+ "type": "function"
1055
+ },
1056
+ {
1057
+ "inputs": [],
1058
+ "name": "decimals",
1059
+ "outputs": [
1060
+ {
1061
+ "internalType": "uint8",
1062
+ "name": "",
1063
+ "type": "uint8"
1064
+ }
1065
+ ],
1066
+ "stateMutability": "pure",
1067
+ "type": "function"
1068
+ },
1069
+ {
1070
+ "inputs": [
1071
+ {
1072
+ "internalType": "address",
1073
+ "name": "spender",
1074
+ "type": "address"
1075
+ },
1076
+ {
1077
+ "internalType": "uint256",
1078
+ "name": "subtractedValue",
1079
+ "type": "uint256"
1080
+ }
1081
+ ],
1082
+ "name": "decreaseAllowance",
1083
+ "outputs": [
1084
+ {
1085
+ "internalType": "bool",
1086
+ "name": "",
1087
+ "type": "bool"
1088
+ }
1089
+ ],
1090
+ "stateMutability": "nonpayable",
1091
+ "type": "function"
1092
+ },
1093
+ {
1094
+ "inputs": [],
1095
+ "name": "getAllowListContract",
1096
+ "outputs": [
1097
+ {
1098
+ "internalType": "address",
1099
+ "name": "",
1100
+ "type": "address"
1101
+ }
1102
+ ],
1103
+ "stateMutability": "view",
1104
+ "type": "function"
1105
+ },
1106
+ {
1107
+ "inputs": [],
1108
+ "name": "getDenyListContract",
1109
+ "outputs": [
1110
+ {
1111
+ "internalType": "address",
1112
+ "name": "",
1113
+ "type": "address"
1114
+ }
1115
+ ],
1116
+ "stateMutability": "view",
1117
+ "type": "function"
1118
+ },
1119
+ {
1120
+ "inputs": [],
1121
+ "name": "getDispensers",
1122
+ "outputs": [
1123
+ {
1124
+ "internalType": "address[]",
1125
+ "name": "",
1126
+ "type": "address[]"
1127
+ }
1128
+ ],
1129
+ "stateMutability": "view",
1130
+ "type": "function"
1131
+ },
1132
+ {
1133
+ "inputs": [],
1134
+ "name": "getERC721Address",
1135
+ "outputs": [
1136
+ {
1137
+ "internalType": "address",
1138
+ "name": "",
1139
+ "type": "address"
1140
+ }
1141
+ ],
1142
+ "stateMutability": "view",
1143
+ "type": "function"
1144
+ },
1145
+ {
1146
+ "inputs": [
1147
+ {
1148
+ "internalType": "uint256",
1149
+ "name": "serviceId",
1150
+ "type": "uint256"
1151
+ },
1152
+ {
1153
+ "internalType": "address",
1154
+ "name": "providerAddress",
1155
+ "type": "address"
1156
+ },
1157
+ {
1158
+ "internalType": "bytes",
1159
+ "name": "providerSignature",
1160
+ "type": "bytes"
1161
+ },
1162
+ {
1163
+ "internalType": "bytes",
1164
+ "name": "consumerData",
1165
+ "type": "bytes"
1166
+ },
1167
+ {
1168
+ "internalType": "bytes",
1169
+ "name": "consumerSignature",
1170
+ "type": "bytes"
1171
+ },
1172
+ {
1173
+ "internalType": "address",
1174
+ "name": "consumerAddress",
1175
+ "type": "address"
1176
+ }
1177
+ ],
1178
+ "name": "getFilesObject",
1179
+ "outputs": [
1180
+ {
1181
+ "internalType": "bytes",
1182
+ "name": "",
1183
+ "type": "bytes"
1184
+ }
1185
+ ],
1186
+ "stateMutability": "view",
1187
+ "type": "function"
1188
+ },
1189
+ {
1190
+ "inputs": [],
1191
+ "name": "getFixedRates",
1192
+ "outputs": [
1193
+ {
1194
+ "components": [
1195
+ {
1196
+ "internalType": "address",
1197
+ "name": "contractAddress",
1198
+ "type": "address"
1199
+ },
1200
+ {
1201
+ "internalType": "bytes32",
1202
+ "name": "id",
1203
+ "type": "bytes32"
1204
+ }
1205
+ ],
1206
+ "internalType": "struct ERC20Template4.fixedRate[]",
1207
+ "name": "",
1208
+ "type": "tuple[]"
1209
+ }
1210
+ ],
1211
+ "stateMutability": "view",
1212
+ "type": "function"
1213
+ },
1214
+ {
1215
+ "inputs": [],
1216
+ "name": "getId",
1217
+ "outputs": [
1218
+ {
1219
+ "internalType": "uint8",
1220
+ "name": "",
1221
+ "type": "uint8"
1222
+ }
1223
+ ],
1224
+ "stateMutability": "pure",
1225
+ "type": "function"
1226
+ },
1227
+ {
1228
+ "inputs": [],
1229
+ "name": "getPaymentCollector",
1230
+ "outputs": [
1231
+ {
1232
+ "internalType": "address",
1233
+ "name": "",
1234
+ "type": "address"
1235
+ }
1236
+ ],
1237
+ "stateMutability": "view",
1238
+ "type": "function"
1239
+ },
1240
+ {
1241
+ "inputs": [
1242
+ {
1243
+ "internalType": "address",
1244
+ "name": "user",
1245
+ "type": "address"
1246
+ }
1247
+ ],
1248
+ "name": "getPermissions",
1249
+ "outputs": [
1250
+ {
1251
+ "components": [
1252
+ {
1253
+ "internalType": "bool",
1254
+ "name": "minter",
1255
+ "type": "bool"
1256
+ },
1257
+ {
1258
+ "internalType": "bool",
1259
+ "name": "paymentManager",
1260
+ "type": "bool"
1261
+ }
1262
+ ],
1263
+ "internalType": "struct ERC20Roles.RolesERC20",
1264
+ "name": "",
1265
+ "type": "tuple"
1266
+ }
1267
+ ],
1268
+ "stateMutability": "view",
1269
+ "type": "function"
1270
+ },
1271
+ {
1272
+ "inputs": [],
1273
+ "name": "getPublishingMarketFee",
1274
+ "outputs": [
1275
+ {
1276
+ "internalType": "address",
1277
+ "name": "",
1278
+ "type": "address"
1279
+ },
1280
+ {
1281
+ "internalType": "address",
1282
+ "name": "",
1283
+ "type": "address"
1284
+ },
1285
+ {
1286
+ "internalType": "uint256",
1287
+ "name": "",
1288
+ "type": "uint256"
1289
+ }
1290
+ ],
1291
+ "stateMutability": "view",
1292
+ "type": "function"
1293
+ },
1294
+ {
1295
+ "inputs": [
1296
+ {
1297
+ "internalType": "address",
1298
+ "name": "spender",
1299
+ "type": "address"
1300
+ },
1301
+ {
1302
+ "internalType": "uint256",
1303
+ "name": "addedValue",
1304
+ "type": "uint256"
1305
+ }
1306
+ ],
1307
+ "name": "increaseAllowance",
1308
+ "outputs": [
1309
+ {
1310
+ "internalType": "bool",
1311
+ "name": "",
1312
+ "type": "bool"
1313
+ }
1314
+ ],
1315
+ "stateMutability": "nonpayable",
1316
+ "type": "function"
1317
+ },
1318
+ {
1319
+ "inputs": [
1320
+ {
1321
+ "internalType": "string[]",
1322
+ "name": "strings_",
1323
+ "type": "string[]"
1324
+ },
1325
+ {
1326
+ "internalType": "address[]",
1327
+ "name": "addresses_",
1328
+ "type": "address[]"
1329
+ },
1330
+ {
1331
+ "internalType": "address[]",
1332
+ "name": "factoryAddresses_",
1333
+ "type": "address[]"
1334
+ },
1335
+ {
1336
+ "internalType": "uint256[]",
1337
+ "name": "uints_",
1338
+ "type": "uint256[]"
1339
+ },
1340
+ {
1341
+ "internalType": "bytes[]",
1342
+ "name": "bytes_",
1343
+ "type": "bytes[]"
1344
+ }
1345
+ ],
1346
+ "name": "initialize",
1347
+ "outputs": [
1348
+ {
1349
+ "internalType": "bool",
1350
+ "name": "",
1351
+ "type": "bool"
1352
+ }
1353
+ ],
1354
+ "stateMutability": "nonpayable",
1355
+ "type": "function"
1356
+ },
1357
+ {
1358
+ "inputs": [
1359
+ {
1360
+ "internalType": "address",
1361
+ "name": "user",
1362
+ "type": "address"
1363
+ }
1364
+ ],
1365
+ "name": "isERC20Deployer",
1366
+ "outputs": [
1367
+ {
1368
+ "internalType": "bool",
1369
+ "name": "",
1370
+ "type": "bool"
1371
+ }
1372
+ ],
1373
+ "stateMutability": "view",
1374
+ "type": "function"
1375
+ },
1376
+ {
1377
+ "inputs": [],
1378
+ "name": "isInitialized",
1379
+ "outputs": [
1380
+ {
1381
+ "internalType": "bool",
1382
+ "name": "",
1383
+ "type": "bool"
1384
+ }
1385
+ ],
1386
+ "stateMutability": "view",
1387
+ "type": "function"
1388
+ },
1389
+ {
1390
+ "inputs": [
1391
+ {
1392
+ "internalType": "address",
1393
+ "name": "account",
1394
+ "type": "address"
1395
+ }
1396
+ ],
1397
+ "name": "isMinter",
1398
+ "outputs": [
1399
+ {
1400
+ "internalType": "bool",
1401
+ "name": "",
1402
+ "type": "bool"
1403
+ }
1404
+ ],
1405
+ "stateMutability": "view",
1406
+ "type": "function"
1407
+ },
1408
+ {
1409
+ "inputs": [
1410
+ {
1411
+ "internalType": "address",
1412
+ "name": "account",
1413
+ "type": "address"
1414
+ },
1415
+ {
1416
+ "internalType": "uint256",
1417
+ "name": "value",
1418
+ "type": "uint256"
1419
+ }
1420
+ ],
1421
+ "name": "mint",
1422
+ "outputs": [],
1423
+ "stateMutability": "nonpayable",
1424
+ "type": "function"
1425
+ },
1426
+ {
1427
+ "inputs": [],
1428
+ "name": "name",
1429
+ "outputs": [
1430
+ {
1431
+ "internalType": "string",
1432
+ "name": "",
1433
+ "type": "string"
1434
+ }
1435
+ ],
1436
+ "stateMutability": "view",
1437
+ "type": "function"
1438
+ },
1439
+ {
1440
+ "inputs": [
1441
+ {
1442
+ "internalType": "address",
1443
+ "name": "",
1444
+ "type": "address"
1445
+ }
1446
+ ],
1447
+ "name": "permissions",
1448
+ "outputs": [
1449
+ {
1450
+ "internalType": "bool",
1451
+ "name": "minter",
1452
+ "type": "bool"
1453
+ },
1454
+ {
1455
+ "internalType": "bool",
1456
+ "name": "paymentManager",
1457
+ "type": "bool"
1458
+ }
1459
+ ],
1460
+ "stateMutability": "view",
1461
+ "type": "function"
1462
+ },
1463
+ {
1464
+ "inputs": [
1465
+ {
1466
+ "internalType": "address",
1467
+ "name": "_minter",
1468
+ "type": "address"
1469
+ }
1470
+ ],
1471
+ "name": "removeMinter",
1472
+ "outputs": [],
1473
+ "stateMutability": "nonpayable",
1474
+ "type": "function"
1475
+ },
1476
+ {
1477
+ "inputs": [
1478
+ {
1479
+ "internalType": "address",
1480
+ "name": "_paymentManager",
1481
+ "type": "address"
1482
+ }
1483
+ ],
1484
+ "name": "removePaymentManager",
1485
+ "outputs": [],
1486
+ "stateMutability": "nonpayable",
1487
+ "type": "function"
1488
+ },
1489
+ {
1490
+ "inputs": [
1491
+ {
1492
+ "internalType": "bytes32",
1493
+ "name": "orderTxId",
1494
+ "type": "bytes32"
1495
+ },
1496
+ {
1497
+ "components": [
1498
+ {
1499
+ "internalType": "address",
1500
+ "name": "providerFeeAddress",
1501
+ "type": "address"
1502
+ },
1503
+ {
1504
+ "internalType": "address",
1505
+ "name": "providerFeeToken",
1506
+ "type": "address"
1507
+ },
1508
+ {
1509
+ "internalType": "uint256",
1510
+ "name": "providerFeeAmount",
1511
+ "type": "uint256"
1512
+ },
1513
+ {
1514
+ "internalType": "uint8",
1515
+ "name": "v",
1516
+ "type": "uint8"
1517
+ },
1518
+ {
1519
+ "internalType": "bytes32",
1520
+ "name": "r",
1521
+ "type": "bytes32"
1522
+ },
1523
+ {
1524
+ "internalType": "bytes32",
1525
+ "name": "s",
1526
+ "type": "bytes32"
1527
+ },
1528
+ {
1529
+ "internalType": "uint256",
1530
+ "name": "validUntil",
1531
+ "type": "uint256"
1532
+ },
1533
+ {
1534
+ "internalType": "bytes",
1535
+ "name": "providerData",
1536
+ "type": "bytes"
1537
+ }
1538
+ ],
1539
+ "internalType": "struct ERC20Template4.providerFee",
1540
+ "name": "_providerFee",
1541
+ "type": "tuple"
1542
+ }
1543
+ ],
1544
+ "name": "reuseOrder",
1545
+ "outputs": [],
1546
+ "stateMutability": "nonpayable",
1547
+ "type": "function"
1548
+ },
1549
+ {
1550
+ "inputs": [
1551
+ {
1552
+ "internalType": "address",
1553
+ "name": "contractAddress",
1554
+ "type": "address"
1555
+ }
1556
+ ],
1557
+ "name": "setAllowListContract",
1558
+ "outputs": [],
1559
+ "stateMutability": "nonpayable",
1560
+ "type": "function"
1561
+ },
1562
+ {
1563
+ "inputs": [
1564
+ {
1565
+ "internalType": "address",
1566
+ "name": "contractAddress",
1567
+ "type": "address"
1568
+ }
1569
+ ],
1570
+ "name": "setDenyListContract",
1571
+ "outputs": [],
1572
+ "stateMutability": "nonpayable",
1573
+ "type": "function"
1574
+ },
1575
+ {
1576
+ "inputs": [
1577
+ {
1578
+ "internalType": "bytes",
1579
+ "name": "filesObject",
1580
+ "type": "bytes"
1581
+ }
1582
+ ],
1583
+ "name": "setFilesObject",
1584
+ "outputs": [],
1585
+ "stateMutability": "nonpayable",
1586
+ "type": "function"
1587
+ },
1588
+ {
1589
+ "inputs": [
1590
+ {
1591
+ "internalType": "address",
1592
+ "name": "_newPaymentCollector",
1593
+ "type": "address"
1594
+ }
1595
+ ],
1596
+ "name": "setPaymentCollector",
1597
+ "outputs": [],
1598
+ "stateMutability": "nonpayable",
1599
+ "type": "function"
1600
+ },
1601
+ {
1602
+ "inputs": [
1603
+ {
1604
+ "internalType": "address",
1605
+ "name": "_publishMarketFeeAddress",
1606
+ "type": "address"
1607
+ },
1608
+ {
1609
+ "internalType": "address",
1610
+ "name": "_publishMarketFeeToken",
1611
+ "type": "address"
1612
+ },
1613
+ {
1614
+ "internalType": "uint256",
1615
+ "name": "_publishMarketFeeAmount",
1616
+ "type": "uint256"
1617
+ }
1618
+ ],
1619
+ "name": "setPublishingMarketFee",
1620
+ "outputs": [],
1621
+ "stateMutability": "nonpayable",
1622
+ "type": "function"
1623
+ },
1624
+ {
1625
+ "inputs": [
1626
+ {
1627
+ "internalType": "address",
1628
+ "name": "consumer",
1629
+ "type": "address"
1630
+ },
1631
+ {
1632
+ "internalType": "uint256",
1633
+ "name": "serviceIndex",
1634
+ "type": "uint256"
1635
+ },
1636
+ {
1637
+ "components": [
1638
+ {
1639
+ "internalType": "address",
1640
+ "name": "providerFeeAddress",
1641
+ "type": "address"
1642
+ },
1643
+ {
1644
+ "internalType": "address",
1645
+ "name": "providerFeeToken",
1646
+ "type": "address"
1647
+ },
1648
+ {
1649
+ "internalType": "uint256",
1650
+ "name": "providerFeeAmount",
1651
+ "type": "uint256"
1652
+ },
1653
+ {
1654
+ "internalType": "uint8",
1655
+ "name": "v",
1656
+ "type": "uint8"
1657
+ },
1658
+ {
1659
+ "internalType": "bytes32",
1660
+ "name": "r",
1661
+ "type": "bytes32"
1662
+ },
1663
+ {
1664
+ "internalType": "bytes32",
1665
+ "name": "s",
1666
+ "type": "bytes32"
1667
+ },
1668
+ {
1669
+ "internalType": "uint256",
1670
+ "name": "validUntil",
1671
+ "type": "uint256"
1672
+ },
1673
+ {
1674
+ "internalType": "bytes",
1675
+ "name": "providerData",
1676
+ "type": "bytes"
1677
+ }
1678
+ ],
1679
+ "internalType": "struct ERC20Template4.providerFee",
1680
+ "name": "_providerFee",
1681
+ "type": "tuple"
1682
+ },
1683
+ {
1684
+ "components": [
1685
+ {
1686
+ "internalType": "address",
1687
+ "name": "consumeMarketFeeAddress",
1688
+ "type": "address"
1689
+ },
1690
+ {
1691
+ "internalType": "address",
1692
+ "name": "consumeMarketFeeToken",
1693
+ "type": "address"
1694
+ },
1695
+ {
1696
+ "internalType": "uint256",
1697
+ "name": "consumeMarketFeeAmount",
1698
+ "type": "uint256"
1699
+ }
1700
+ ],
1701
+ "internalType": "struct ERC20Template4.consumeMarketFee",
1702
+ "name": "_consumeMarketFee",
1703
+ "type": "tuple"
1704
+ }
1705
+ ],
1706
+ "name": "startOrder",
1707
+ "outputs": [],
1708
+ "stateMutability": "nonpayable",
1709
+ "type": "function"
1710
+ },
1711
+ {
1712
+ "inputs": [],
1713
+ "name": "symbol",
1714
+ "outputs": [
1715
+ {
1716
+ "internalType": "string",
1717
+ "name": "",
1718
+ "type": "string"
1719
+ }
1720
+ ],
1721
+ "stateMutability": "view",
1722
+ "type": "function"
1723
+ },
1724
+ {
1725
+ "inputs": [],
1726
+ "name": "totalSupply",
1727
+ "outputs": [
1728
+ {
1729
+ "internalType": "uint256",
1730
+ "name": "",
1731
+ "type": "uint256"
1732
+ }
1733
+ ],
1734
+ "stateMutability": "view",
1735
+ "type": "function"
1736
+ },
1737
+ {
1738
+ "inputs": [
1739
+ {
1740
+ "internalType": "address",
1741
+ "name": "to",
1742
+ "type": "address"
1743
+ },
1744
+ {
1745
+ "internalType": "uint256",
1746
+ "name": "amount",
1747
+ "type": "uint256"
1748
+ }
1749
+ ],
1750
+ "name": "transfer",
1751
+ "outputs": [
1752
+ {
1753
+ "internalType": "bool",
1754
+ "name": "",
1755
+ "type": "bool"
1756
+ }
1757
+ ],
1758
+ "stateMutability": "nonpayable",
1759
+ "type": "function"
1760
+ },
1761
+ {
1762
+ "inputs": [
1763
+ {
1764
+ "internalType": "address",
1765
+ "name": "from",
1766
+ "type": "address"
1767
+ },
1768
+ {
1769
+ "internalType": "address",
1770
+ "name": "to",
1771
+ "type": "address"
1772
+ },
1773
+ {
1774
+ "internalType": "uint256",
1775
+ "name": "amount",
1776
+ "type": "uint256"
1777
+ }
1778
+ ],
1779
+ "name": "transferFrom",
1780
+ "outputs": [
1781
+ {
1782
+ "internalType": "bool",
1783
+ "name": "",
1784
+ "type": "bool"
1785
+ }
1786
+ ],
1787
+ "stateMutability": "nonpayable",
1788
+ "type": "function"
1789
+ },
1790
+ {
1791
+ "inputs": [],
1792
+ "name": "withdrawETH",
1793
+ "outputs": [],
1794
+ "stateMutability": "payable",
1795
+ "type": "function"
1796
+ },
1797
+ {
1798
+ "stateMutability": "payable",
1799
+ "type": "receive"
1800
+ }
1801
+ ],
1802
+ "bytecode": "0x6080604052600b805460ff191690553480156200001b57600080fd5b5060408051808201825260048152631d195cdd60e21b60208083019182528351808501909452600a8452691d195cdd14de5b589bdb60b21b9084015281519192916200006a916003916200008e565b508051620000809060049060208401906200008e565b505060016007555062000171565b8280546200009c9062000134565b90600052602060002090601f016020900481019282620000c057600085556200010b565b82601f10620000db57805160ff19168380011785556200010b565b828001600101855582156200010b579182015b828111156200010b578251825591602001919060010190620000ee565b50620001199291506200011d565b5090565b5b808211156200011957600081556001016200011e565b600181811c908216806200014957607f821691505b602082108114156200016b57634e487b7160e01b600052602260045260246000fd5b50919050565b615fdf80620001816000396000f3fe6080604052600436106102965760003560e01c806357a3a31b11610166578063983b2d56116100d3578063aa492ef91161008f578063e086e5ec1161006c578063e086e5ec14610915578063e487c2e81461091d578063ef867ff414610932578063fe82269c1461095257005b8063aa492ef9146108b5578063b3998be0146108d5578063dd62ed3e146108f557005b8063983b2d56146107dc5780639a95be16146107fc578063a457c2d71461081c578063a8c09b0b1461083c578063a9059cbb1461085c578063aa271e1a1461087c57005b80637bb0679f116101225780637bb0679f146107325780637dda231e1461075057806382c03da5146107725780638b96412b1461078757806395d89b41146107a757806396fb3eaf146107bc57005b806357a3a31b1461066857806357ad5ff6146106885780635d1ca631146106a857806370a08231146106bc57806379cc6790146106f257806379d9d7f31461071257005b8063313ce5671161020457806340c10f19116101c057806340c10f19146105b157806342966c68146105d157806347ac7d55146105f15780634abc6762146106135780634f189cb21461063357806351ea43ff1461064857005b8063313ce567146104e6578063355274ea14610508578063361fef491461051d578063392e53cd1461053d5780633950935114610555578063397b37431461057557005b806318160ddd1161025357806318160ddd14610427578063191c918a146104465780631b53b05f1461046657806323b872dd1461048657806325b00243146104a65780633092afd5146104c657005b80627ffb781461029f57806301e88208146102db57806305e2c4cf1461032b57806306fdde0314610349578063095ea7b31461036b578063160a79251461039b57005b3661029d57005b005b3480156102ab57600080fd5b50600b5461010090046001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b3480156102e757600080fd5b506103146102f6366004615147565b60056020526000908152604090205460ff8082169161010090041682565b6040805192151583529015156020830152016102d2565b34801561033757600080fd5b506012546001600160a01b03166102be565b34801561035557600080fd5b5061035e610972565b6040516102d291906151bc565b34801561037757600080fd5b5061038b6103863660046151cf565b610a04565b60405190151581526020016102d2565b3480156103a757600080fd5b506104086103b6366004615147565b6040805180820190915260008082526020820152506001600160a01b031660009081526005602090815260409182902082518084019093525460ff808216151584526101009091041615159082015290565b60408051825115158152602092830151151592810192909252016102d2565b34801561043357600080fd5b506002545b6040519081526020016102d2565b34801561045257600080fd5b5061029d610461366004615209565b610a1e565b34801561047257600080fd5b5061029d610481366004615280565b610c63565b34801561049257600080fd5b5061038b6104a13660046152d1565b610d7a565b3480156104b257600080fd5b5061029d6104c1366004615147565b610da0565b3480156104d257600080fd5b5061029d6104e1366004615147565b610ebf565b3480156104f257600080fd5b5060125b60405160ff90911681526020016102d2565b34801561051457600080fd5b50600a54610438565b34801561052957600080fd5b5061029d610538366004615325565b610fdb565b34801561054957600080fd5b50600b5460ff1661038b565b34801561056157600080fd5b5061038b6105703660046151cf565b611028565b34801561058157600080fd5b50600d54600e54600f54604080516001600160a01b039485168152939092166020840152908201526060016102d2565b3480156105bd57600080fd5b5061029d6105cc3660046151cf565b61104a565b3480156105dd57600080fd5b5061029d6105ec36600461536b565b6110f3565b3480156105fd57600080fd5b506106066110fd565b6040516102d291906153c8565b34801561061f57600080fd5b5061029d61062e366004615147565b61115e565b34801561063f57600080fd5b5061029d6112cc565b34801561065457600080fd5b5061029d610663366004615423565b611396565b34801561067457600080fd5b5061029d610683366004615147565b6114ba565b34801561069457600080fd5b5061029d6106a33660046152d1565b61166d565b3480156106b457600080fd5b5060046104f6565b3480156106c857600080fd5b506104386106d7366004615147565b6001600160a01b031660009081526020819052604090205490565b3480156106fe57600080fd5b5061029d61070d3660046151cf565b6117ec565b34801561071e57600080fd5b5061029d61072d366004615464565b611801565b34801561073e57600080fd5b506013546001600160a01b03166102be565b34801561075c57600080fd5b50610765611a72565b6040516102d291906154d7565b34801561077e57600080fd5b5061029d611ae7565b34801561079357600080fd5b506104386107a2366004615603565b611b39565b3480156107b357600080fd5b5061035e611e61565b3480156107c857600080fd5b5061038b6107d7366004615147565b611e70565b3480156107e857600080fd5b5061029d6107f7366004615147565b611eee565b34801561080857600080fd5b5061035e6108173660046156d8565b61200a565b34801561082857600080fd5b5061038b6108373660046151cf565b612494565b34801561084857600080fd5b5061029d6108573660046157a0565b61251a565b34801561086857600080fd5b5061038b6108773660046151cf565b612987565b34801561088857600080fd5b5061038b610897366004615147565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156108c157600080fd5b5061029d6108d0366004615147565b612995565b3480156108e157600080fd5b5061038b6108f036600461583d565b612ab1565b34801561090157600080fd5b5061043861091036600461592d565b612bc0565b61029d612beb565b34801561092957600080fd5b506102be612c2b565b34801561093e57600080fd5b506102be61094d36600461536b565b612cc4565b34801561095e57600080fd5b5061029d61096d366004615147565b612cee565b6060600880546109819061595b565b80601f01602080910402602001604051908101604052809291908181526020018280546109ad9061595b565b80156109fa5780601f106109cf576101008083540402835291602001916109fa565b820191906000526020600020905b8154815290600101906020018083116109dd57829003601f168201915b5050505050905090565b600033610a12818585612e5c565b60019150505b92915050565b600b5460405163160a792560e01b81523360048201526101009091046001600160a01b03169063160a792590602401608060405180830381865afa158015610a6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8e9190615990565b6020015180610b155750600b546040516331a9108f60e11b815260016004820152339161010090046001600160a01b031690636352211e90602401602060405180830381865afa158015610ae6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0a9190615a14565b6001600160a01b0316145b610b3a5760405162461bcd60e51b8152600401610b3190615a31565b60405180910390fd5b610b42612f80565b8115610b5157610b5185612fda565b601780546001810182556000919091527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c150180546001600160a01b0319166001600160a01b0387169081179091556040519081527fa31ffd41531537eb31bfd827a3f5372b5f62bf4dd8579e5354b280dc58490e709060200160405180910390a1601554604051636b14d00560e11b81526001600160a01b0387811660048301523060248301819052604483018890526064830187905233608484015260a48301529091169063d629a00a9060c401600060405180830381600087803b158015610c3a57600080fd5b505af1158015610c4e573d6000803e3d6000fd5b50505050610c5c6001600755565b5050505050565b610c6b612f80565b604051631d746d8360e01b8152306004820152670de0b6b3a764000060248201523360448201526001600160a01b03821690631d746d8390606401600060405180830381600087803b158015610cc057600080fd5b505af1158015610cd4573d6000803e3d6000fd5b505033600090815260208190526040902054670de0b6b3a7640000925090501015610d415760405162461bcd60e51b815260206004820152601f60248201527f556e61626c6520746f206765742044542066726f6d2044697370656e736572006044820152606401610b31565b610d6c610d516020840184615147565b6020840135610d636040860186615a57565b85606001611801565b610d766001600755565b5050565b600033610d888582856130b1565b610d9385858561312b565b60019150505b9392505050565b600b5460405163160a792560e01b81523360048201526101009091046001600160a01b03169063160a792590602401608060405180830381865afa158015610dec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e109190615990565b6020015180610e975750600b546040516331a9108f60e11b815260016004820152339161010090046001600160a01b031690636352211e90602401602060405180830381865afa158015610e68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8c9190615a14565b6001600160a01b0316145b610eb35760405162461bcd60e51b8152600401610b3190615a31565b610ebc816132cf565b50565b600b5460405163160a792560e01b81523360048201526101009091046001600160a01b03169063160a792590602401608060405180830381865afa158015610f0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2f9190615990565b6020015180610fb65750600b546040516331a9108f60e11b815260016004820152339161010090046001600160a01b031690636352211e90602401602060405180830381865afa158015610f87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fab9190615a14565b6001600160a01b0316145b610fd25760405162461bcd60e51b8152600401610b3190615a31565b610ebc81613341565b60408051838152336020820152428183015243606082015290517f526e31449ea46e2aecf9b480c8d7dfa191348ef74ffdf75b445a6ab726daa6ff9181900360800190a1610d76816133a1565b600033610a1281858561103b8383612bc0565b6110459190615a8d565b612e5c565b3360009081526005602052604090205460ff166110965760405162461bcd60e51b815260206004820152600a6024820152692727aa1026a4a72a22a960b11b6044820152606401610b31565b600a546110ac826110a660025490565b9061379b565b11156110e95760405162461bcd60e51b815260206004820152600c60248201526b18d85c08195e18d95959195960a21b6044820152606401610b31565b610d7682826137a7565b610ebc3382613866565b606060178054806020026020016040519081016040528092919081815260200182805480156109fa57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611137575050505050905090565b600b5460405163160a792560e01b81523360048201526101009091046001600160a01b03169063160a792590602401608060405180830381865afa1580156111aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ce9190615990565b60200151806112555750600b546040516331a9108f60e11b815260016004820152339161010090046001600160a01b031690636352211e90602401602060405180830381865afa158015611226573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124a9190615a14565b6001600160a01b0316145b6112715760405162461bcd60e51b8152600401610b3190615a31565b6001600160a01b038116156112aa5761128981613998565b15156001146112aa5760405162461bcd60e51b8152600401610b3190615aa5565b601280546001600160a01b0319166001600160a01b0392909216919091179055565b600b546040516331a9108f60e11b8152600160048201526101009091046001600160a01b031690636352211e90602401602060405180830381865afa158015611319573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133d9190615a14565b6001600160a01b0316336001600160a01b03161461138c5760405162461bcd60e51b815260206004820152600c60248201526b3737ba1027232a27bbb732b960a11b6044820152606401610b31565b611394613a98565b565b600b5460405163160a792560e01b81523360048201526101009091046001600160a01b03169063160a792590602401608060405180830381865afa1580156113e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114069190615990565b602001518061148d5750600b546040516331a9108f60e11b815260016004820152339161010090046001600160a01b031690636352211e90602401602060405180830381865afa15801561145e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114829190615a14565b6001600160a01b0316145b6114a95760405162461bcd60e51b8152600401610b3190615a31565b6114b56010838361500b565b505050565b33600090815260056020526040902054610100900460ff168061154d5750600b5460405163160a792560e01b81523360048201526101009091046001600160a01b03169063160a792590602401608060405180830381865afa158015611524573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115489190615990565b602001515b806115d05750600b546040516331a9108f60e11b815260016004820152339161010090046001600160a01b031690636352211e90602401602060405180830381865afa1580156115a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115c59190615a14565b6001600160a01b0316145b61161c5760405162461bcd60e51b815260206004820152601c60248201527f4e4f54205041594d454e54204d414e41474552206f72204f574e4552000000006044820152606401610b31565b61162581613f73565b604080514281524360208201526001600160a01b0383169133917f4d7694d695c57cc54947177c8e8a0e61aae664e9223492a798c32fadfc6419cc910160405180910390a350565b600d546001600160a01b031633146116c75760405162461bcd60e51b815260206004820152601b60248201527f6e6f74207075626c6973684d61726b65744665654164647265737300000000006044820152606401610b31565b6001600160a01b03831661171d5760405162461bcd60e51b815260206004820152601960248201527f5f7075626c6973684d61726b65744665654164647265737320000000000000006044820152606401610b31565b6001600160a01b03821661176c5760405162461bcd60e51b81526020600482015260166024820152752fb83ab13634b9b426b0b935b2ba2332b2aa37b5b2b760511b6044820152606401610b31565b600d80546001600160a01b038581166001600160a01b03199283168117909355600e8054918616919092168117909155600f839055604080513381526020810193909352820152606081018290527f02ab4b3fc023109c2d0da394bda239166c833f63c42b71b67ed4b836dca0ddfe9060800160405180910390a1505050565b6117f78233836130b1565b610d768282613866565b33600090815260208190526040902054670de0b6b3a76400009081111561185a5760405162461bcd60e51b815260206004820152600d60248201526c139bdd08195b9bdd59da081115609a1b6044820152606401610b31565b6118648433613f95565b61186e8486613f95565b600d5460408051338152602081018490529081018690524260608201524360808201526001600160a01b03918216918716907fe1c4fa794edfa8f619b8257a077398950357b9c6398528f94480307352f9afcc9060a00160405180910390a36000600f541180156118e95750600e546001600160a01b031615155b80156118ff5750600d546001600160a01b031615155b1561197457600e54600d54600f54611927926001600160a01b03908116923392911690614038565b600e54600d54600f546040519081526001600160a01b0392831692909116907f4049a448ac6f0284a98d2cb9199e73605944ea5bec901a037f88c84703de82b29060200160405180910390a35b600082604001351180156119a1575060006119956040840160208501615147565b6001600160a01b031614155b80156119c3575060006119b76020840184615147565b6001600160a01b031614155b15611a60576119f36119db6040840160208501615147565b336119e96020860186615147565b8560400135614038565b611a036040830160208401615147565b6001600160a01b0316611a196020840184615147565b6001600160a01b03167f6d11837f46cc09b011cf4aae09fcade046c020aac088090ae4f77ff67b7079728460400135604051611a5791815260200190565b60405180910390a35b611a69836133a1565b610c5c816110f3565b60606016805480602002602001604051908101604052809291908181526020016000905b82821015611ade576000848152602090819020604080518082019091526002850290910180546001600160a01b03168252600190810154828401529083529092019101611a96565b50505050905090565b600b5461010090046001600160a01b0316331461138c5760405162461bcd60e51b815260206004820152601060248201526f1393d5080dcc8c4810dbdb9d1c9858dd60821b6044820152606401610b31565b600b5460405163160a792560e01b815233600482015260009161010090046001600160a01b03169063160a792590602401608060405180830381865afa158015611b87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bab9190615990565b6020015180611c325750600b546040516331a9108f60e11b815260016004820152339161010090046001600160a01b031690636352211e90602401602060405180830381865afa158015611c03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c279190615a14565b6001600160a01b0316145b611c4e5760405162461bcd60e51b8152600401610b3190615a31565b611c56612f80565b3083600381518110611c6a57611c6a615ac2565b60200260200101906001600160a01b031690816001600160a01b031681525050600082600481518110611c9f57611c9f615ac2565b60200260200101511115611cb657611cb684612fda565b601554604051638244937560e01b81526001600160a01b0390911690638244937590611cea90879087908790600401615ad8565b6020604051808303816000875af1158015611d09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2d9190615b3e565b905082600081518110611d4257611d42615ac2565b60200260200101516001600160a01b031683600181518110611d6657611d66615ac2565b60200260200101516001600160a01b03167fb3fac3ae95956dbac74e63ba8dac94081832395c8788e3049c900a7732f348058387604051611dba9291909182526001600160a01b0316602082015260400190565b60405180910390a3604080518082019091526001600160a01b03858116825260208201838152601680546001808201835560009290925293517fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b5124289600290950294850180546001600160a01b0319169190941617909255517fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b512428a90920191909155600755610d99565b6060600980546109819061595b565b600b5460405163160a792560e01b81526001600160a01b0383811660048301526000926101009004169063160a792590602401608060405180830381865afa158015611ec0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ee49190615990565b6020015192915050565b600b5460405163160a792560e01b81523360048201526101009091046001600160a01b03169063160a792590602401608060405180830381865afa158015611f3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f5e9190615990565b6020015180611fe55750600b546040516331a9108f60e11b815260016004820152339161010090046001600160a01b031690636352211e90602401602060405180830381865afa158015611fb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fda9190615a14565b6001600160a01b0316145b6120015760405162461bcd60e51b8152600401610b3190615a31565b610ebc81612fda565b6060816001600160a01b03166120c7878760405160200161202c929190615b57565b60408051601f198184030181529082905280516020918201207f19457468657265756d205369676e6564204d6573736167653a0a33320000000091830191909152603c820152605c016040516020818303038152906040528051906020012086868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061417f92505050565b6001600160a01b0316146121125760405162461bcd60e51b8152602060048201526012602482015271436f6e73756d6572207369676e617475726560701b6044820152606401610b31565b886001600160a01b03166121cf8b868660405160200161213493929190615b67565b60408051601f198184030181529082905280516020918201207f19457468657265756d205369676e6564204d6573736167653a0a33320000000091830191909152603c820152605c01604051602081830303815290604052805190602001208a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061417f92505050565b6001600160a01b03161461221a5760405162461bcd60e51b815260206004820152601260248201527150726f7669646572207369676e617475726560701b6044820152606401610b31565b6012546001600160a01b0316156122e5576012546040516370a0823160e01b81526001600160a01b038b8116600483015260009216906370a0823190602401602060405180830381865afa158015612276573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061229a9190615b3e565b9050600081116122e35760405162461bcd60e51b8152602060048201526014602482015273141c9bdd9a59195c881b9bdd08185b1b1bddd95960621b6044820152606401610b31565b505b6013546001600160a01b0316156123ab576013546040516370a0823160e01b81526001600160a01b038b8116600483015260009216906370a0823190602401602060405180830381865afa158015612341573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123659190615b3e565b9050600181106123a95760405162461bcd60e51b815260206004820152600f60248201526e141c9bdd9a59195c8819195b9a5959608a1b6044820152606401610b31565b505b6123b58a83614257565b15156001146123fa5760405162461bcd60e51b815260206004820152601160248201527037379031b7b739bab6b2b91037b93232b960791b6044820152606401610b31565b601080546124079061595b565b80601f01602080910402602001604051908101604052809291908181526020018280546124339061595b565b80156124805780601f1061245557610100808354040283529160200191612480565b820191906000526020600020905b81548152906001019060200180831161246357829003601f168201915b505050505090509998505050505050505050565b600033816124a28286612bc0565b9050838110156125025760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610b31565b61250f8286868403612e5c565b506001949350505050565b612522612f80565b60006125316020830183615147565b604051634c87087d60e01b81526020840135600482015290915060009081906001600160a01b03841690634c87087d9060240161018060405180830381865afa158015612582573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125a69190615b81565b5050505050505050935050925050306001600160a01b0316826001600160a01b0316146126255760405162461bcd60e51b815260206004820152602760248201527f5468697320466978656452617465206973206e6f742070726f766964696e67206044820152661d1a1a5cc8111560ca1b6064820152608401610b31565b604051636e8de4b560e11b815260208501356004820152670de0b6b3a76400006024820152606085013560448201526000906001600160a01b0385169063dd1bc96a90606401608060405180830381865afa158015612688573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126ac9190615c3e565b505050905084604001358111156127155760405162461bcd60e51b815260206004820152602760248201527f46697865645261746545786368616e67653a20546f6f206d616e79206261736560448201526620746f6b656e7360c81b6064820152608401610b31565b61272182333084614038565b6127426127316020870187615147565b6001600160a01b03841690836142df565b6001600160a01b0384166368c4b7e96020870135670de0b6b3a76400008461277060a08b0160808c01615147565b6040516001600160e01b031960e087901b1681526004810194909452602484019290925260448301526001600160a01b031660648201526060880135608482015260a401600060405180830381600087803b1580156127ce57600080fd5b505af11580156127e2573d6000803e3d6000fd5b505030600090815260208190526040902054670de0b6b3a764000092509050101561284f5760405162461bcd60e51b815260206004820152601f60248201527f556e61626c6520746f206275792044542066726f6d20466978656452617465006044820152606401610b31565b6128623033670de0b6b3a764000061312b565b61288d6128726020880188615147565b602088013561288460408a018a615a57565b89606001611801565b604051634c87087d60e01b8152602086013560048201526000906001600160a01b03861690634c87087d9060240161018060405180830381865afa1580156128d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128fd9190615b81565b509a5050505050505050505050600081111561297857604051637997ca3b60e11b815260208701356004820152602481018290526001600160a01b0386169063f32f947690604401600060405180830381600087803b15801561295f57600080fd5b505af1158015612973573d6000803e3d6000fd5b505050505b5050505050610d766001600755565b600033610a1281858561312b565b600b5460405163160a792560e01b81523360048201526101009091046001600160a01b03169063160a792590602401608060405180830381865afa1580156129e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a059190615990565b6020015180612a8c5750600b546040516331a9108f60e11b815260016004820152339161010090046001600160a01b031690636352211e90602401602060405180830381865afa158015612a5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a819190615a14565b6001600160a01b0316145b612aa85760405162461bcd60e51b8152600401610b3190615a31565b610ebc816143bf565b600b5460009060ff1615612afd5760405162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606401610b31565b612bb1612b0a8b8d615ccb565b8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c91829185019084908082843760009201919091525050604080516020808d0282810182019093528c82529093508c92508b918291850190849080828437600092019190915250612bac92508991508a9050615d52565b6144a0565b9b9a5050505050505050505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b612bf3612c2b565b6001600160a01b03166108fc479081150290604051600060405180830381858888f19350505050158015610ebc573d6000803e3d6000fd5b600c546000906001600160a01b0316612cb457600b546040516331a9108f60e11b8152600160048201526101009091046001600160a01b031690636352211e90602401602060405180830381865afa158015612c8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612caf9190615a14565b905090565b50600c546001600160a01b031690565b60068181548110612cd457600080fd5b6000918252602090912001546001600160a01b0316905081565b600b5460405163160a792560e01b81523360048201526101009091046001600160a01b03169063160a792590602401608060405180830381865afa158015612d3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d5e9190615990565b6020015180612de55750600b546040516331a9108f60e11b815260016004820152339161010090046001600160a01b031690636352211e90602401602060405180830381865afa158015612db6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dda9190615a14565b6001600160a01b0316145b612e015760405162461bcd60e51b8152600401610b3190615a31565b6001600160a01b03811615612e3a57612e1981613998565b1515600114612e3a5760405162461bcd60e51b8152600401610b3190615aa5565b601380546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316612ebe5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b31565b6001600160a01b038216612f1f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b31565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60026007541415612fd35760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610b31565b6002600755565b6001600160a01b03811615610ebc576001600160a01b0381166000908152600560205260409020805460ff16156130535760405162461bcd60e51b815260206004820152601d60248201527f4552433230526f6c65733a2020414c52454144592041204d494e5445520000006044820152606401610b31565b805460ff1916600117815561306782614a69565b6040805142815243602082015233916001600160a01b038516917f4f7e100eb1ee13e903798bd0d6aa854152e07eb05544f392b9409c12935c809591015b60405180910390a35050565b60006130bd8484612bc0565b9050600019811461312557818110156131185760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610b31565b6131258484848403612e5c565b50505050565b6001600160a01b03831661318f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b31565b6001600160a01b0382166131f15760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b31565b6001600160a01b038316600090815260208190526040902054818110156132695760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610b31565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3613125565b6001600160a01b03811660008181526005602052604090819020805461ff00191681559051909133917faee911eec8b2df8f3ae0464841541b1e5f339519bd5cf51889fe8b07fecff658906133309042904390918252602082015260400190565b60405180910390a3610d7682614b20565b6001600160a01b03811660008181526005602052604090819020805460ff191681559051909133917fefa2735987005aaa89c050c0ff8cc9ae7d9079d19382081c429130f98c52d480906133309042904390918252602082015260400190565b600060016133b260e0840184615dcd565b6133bf6020860186615147565b6133cf6040870160208801615147565b86604001358760c001356040516020016133ee96959493929190615e13565b60408051601f198184030181529082905280516020918201207f19457468657265756d205369676e6564204d6573736167653a0a33320000000091830191909152603c820152605c0160408051601f19818403018152919052805160209091012061345f6080850160608601615e51565b6040805160008152602081018083529390935260ff90911690820152608080850135606083015260a08086013591830191909152016020604051602081039080840390855afa1580156134b6573d6000803e3d6000fd5b5050604051601f19015191506134d190506020830183615147565b6001600160a01b0316816001600160a01b0316146135285760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642070726f76696465722066656560601b6044820152606401610b31565b6135386040830160208401615147565b6001600160a01b031661354e6020840184615147565b6001600160a01b03167ff8ed11cdaaf10eca2b6c941fb802cb8682afe86cac1eb93f70d0780fa062c544604085013561358a60e0870187615dcd565b61359a6080890160608a01615e51565b88608001358960a001358a60c001356040516135bc9796959493929190615e74565b60405180910390a3600082604001351180156135f1575060006135e56040840160208501615147565b6001600160a01b031614155b8015613613575060006136076020840184615147565b6001600160a01b031614155b15610d765760155460408051636c45e88160e01b815290516000926001600160a01b031691636c45e8819160048083019260209291908290030181865afa158015613662573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136869190615b3e565b9050600081156136b3576136b0670de0b6b3a76400006136aa604087013585614c6e565b90614c7a565b90505b60006136c3604086013583614c86565b90506136e46136d86040870160208801615147565b33308860400135614038565b6137156136f46020870187615147565b826137056040890160208a01615147565b6001600160a01b03169190614c92565b8115610c5c5760155460408051631a81876d60e01b81529051610c5c926001600160a01b031691631a81876d9160048083019260209291908290030181865afa158015613766573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061378a9190615a14565b836137056040890160208a01615147565b6000610d998284615a8d565b6001600160a01b0382166137fd5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610b31565b806002600082825461380f9190615a8d565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b0382166138c65760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610b31565b6001600160a01b0382166000908152602081905260409020548181101561393a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610b31565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b60006001600160a01b0382166139b057506001919050565b60115460405163480c258160e11b81526001600160a01b038481166004830152909116906390184b0290602401602060405180830381865afa1580156139fa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a1e9190615ecc565b613a2a57506000919050565b6011546040516304a1fd0d60e41b81526001600160a01b03848116600483015290911690634a1fd0d090602401602060405180830381865afa158015613a74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a189190615ecc565b601754601654600091613aaa91615a8d565b9050600080826001600160401b03811115613ac757613ac761552f565b604051908082528060200260200182016040528015613af0578160200160208202803683370190505b50905060005b601654811015613dd657600060168281548110613b1557613b15615ac2565b60009182526020822060029091020154601680546001600160a01b039092169350829182918591634c87087d919088908110613b5357613b53615ac2565b9060005260206000209060020201600101546040518263ffffffff1660e01b8152600401613b8391815260200190565b61018060405180830381865afa158015613ba1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bc59190615b81565b9b509b509b505050505050505050506000821115613c6b57836001600160a01b031663f32f947660168781548110613bff57613bff615ac2565b906000526020600020906002020160010154846040518363ffffffff1660e01b8152600401613c38929190918252602082015260400190565b600060405180830381600087803b158015613c5257600080fd5b505af1158015613c66573d6000803e3d6000fd5b505050505b8215613cff57836001600160a01b031663c612e48a60168781548110613c9357613c93615ac2565b906000526020600020906002020160010154856040518363ffffffff1660e01b8152600401613ccc929190918252602082015260400190565b600060405180830381600087803b158015613ce657600080fd5b505af1158015613cfa573d6000803e3d6000fd5b505050505b613d4260168681548110613d1557613d15615ac2565b600091825260208083206002909202909101546001600160a01b0316825260059052604090205460ff1690565b8015613d5057506001811515145b15613dbf5760168581548110613d6857613d68615ac2565b600091825260209091206002909102015486516001600160a01b0390911690879089908110613d9957613d99615ac2565b6001600160a01b039092166020928302919091019091015286613dbb81615ee9565b9750505b505050508080613dce90615ee9565b915050613af6565b5060005b601754811015613f1b5760178181548110613df757613df7615ac2565b60009182526020909120015460405163f9bfaa7d60e01b81523060048201526001600160a01b039091169063f9bfaa7d90602401600060405180830381600087803b158015613e4557600080fd5b505af1158015613e59573d6000803e3d6000fd5b50505050613e9b60178281548110613e7357613e73615ac2565b60009182526020808320909101546001600160a01b0316825260059052604090205460ff1690565b15613f095760178181548110613eb357613eb3615ac2565b9060005260206000200160009054906101000a90046001600160a01b0316828481518110613ee357613ee3615ac2565b6001600160a01b039092166020928302919091019091015282613f0581615ee9565b9350505b80613f1381615ee9565b915050613dda565b613f23614cc2565b50600c80546001600160a01b031916905560005b8281101561312557613f61828281518110613f5457613f54615ac2565b6020026020010151612fda565b80613f6b81615ee9565b915050613f37565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b60005b6001600160a01b03821660009081526014602052604090205481101561400d576001600160a01b0382166000908152601460205260409020805484919083908110613fe557613fe5615ac2565b90600052602060002001541415613ffb57505050565b8061400581615ee9565b915050613f98565b506001600160a01b031660009081526014602090815260408220805460018101825590835291200155565b6040516370a0823160e01b81526001600160a01b038381166004830152600091908616906370a0823190602401602060405180830381865afa158015614082573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140a69190615b3e565b90506140bd6001600160a01b038616858585614d71565b6140c7818361379b565b6040516370a0823160e01b81526001600160a01b0385811660048301528716906370a0823190602401602060405180830381865afa15801561410d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141319190615b3e565b1015610c5c5760405162461bcd60e51b815260206004820152601a60248201527f5472616e7366657220616d6f756e7420697320746f6f206c6f770000000000006044820152606401610b31565b600080600080845160411461419a5760009350505050610a18565b50505060208201516040830151604184015160ff16601b8110156141c6576141c3601b82615f04565b90505b8060ff16601b141580156141de57508060ff16601c14155b156141ef5760009350505050610a18565b60408051600081526020810180835288905260ff831691810191909152606081018490526080810183905260019060a0016020604051602081039080840390855afa158015614242573d6000803e3d6000fd5b5050604051601f190151979650505050505050565b6000805b6001600160a01b0383166000908152601460205260409020548110156142d5576001600160a01b03831660009081526014602052604090208054859190839081106142a8576142a8615ac2565b906000526020600020015414156142c3576001915050610a18565b806142cd81615ee9565b91505061425b565b5060009392505050565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526000919085169063dd62ed3e90604401602060405180830381865afa15801561432f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143539190615b3e565b90506131258463095ea7b360e01b8561436c8686615a8d565b6040516001600160a01b03909216602483015260448201526064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152614da9565b6001600160a01b03811615610ebc576001600160a01b03811660009081526005602052604090208054610100900460ff16156144485760405162461bcd60e51b815260206004820152602260248201527f4552433230526f6c65733a2020414c5245414459204120464545204d414e414760448201526122a960f11b6064820152608401610b31565b805461ff00191661010017815561445e82614a69565b6040805142815243602082015233916001600160a01b038516917fb17da2e9910b4ba5754e8872385ba315a238bafb5ae221fc85093c33432c40a791016130a5565b600080846000815181106144b6576144b6615ac2565b60200260200101519050846001815181106144d3576144d3615ac2565b6020908102919091010151601580546001600160a01b0319166001600160a01b0392831617905581166145315760405162461bcd60e51b815260206004820152600660248201526536b4b73a32b960d11b6044820152606401610b31565b6015546001600160a01b03166145725760405162461bcd60e51b81526020600482015260066024820152653937baba32b960d11b6044820152606401610b31565b8360008151811061458557614585615ac2565b6020026020010151600014156145c35760405162461bcd60e51b815260206004820152600360248201526206361760ec1b6044820152606401610b31565b836000815181106145d6576145d6615ac2565b6020026020010151600a81905550866000815181106145f7576145f7615ac2565b60200260200101516008908051906020019061461492919061508f565b508660018151811061462857614628615ac2565b60200260200101516009908051906020019061464592919061508f565b5082511561467f578260008151811061466057614660615ac2565b60200260200101516010908051906020019061467d92919061508f565b505b6004865111156146cb578560048151811061469c5761469c615ac2565b6020026020010151601160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b6011546001600160a01b03166147175760405162461bcd60e51b81526020600482015260116024820152706163636573734c697374466163746f727960781b6044820152606401610b31565b6005865111156147ab576147448660058151811061473757614737615ac2565b6020026020010151613998565b15156001146147655760405162461bcd60e51b8152600401610b3190615aa5565b8560058151811061477857614778615ac2565b6020026020010151601260006101000a8154816001600160a01b0302191690836001600160a01b031602179055506147bc565b601280546001600160a01b03191690555b600686511115614843576147dc8660068151811061473757614737615ac2565b15156001146147fd5760405162461bcd60e51b8152600401610b3190615aa5565b8560068151811061481057614810615ac2565b6020026020010151601360006101000a8154816001600160a01b0302191690836001600160a01b03160217905550614854565b601380546001600160a01b03191690555b600b805460ff196001600160a01b03841661010002166001600160a81b03199091161760011790558551614893908790600090613f5457613f54615ac2565b60006001600160a01b0316866001815181106148b1576148b1615ac2565b60200260200101516001600160a01b03161461495b576148ea866001815181106148dd576148dd615ac2565b6020026020010151613f73565b856001815181106148fd576148fd615ac2565b60200260200101516001600160a01b0316336001600160a01b03167f4d7694d695c57cc54947177c8e8a0e61aae664e9223492a798c32fadfc6419cc4243604051614952929190918252602082015260400190565b60405180910390a35b8560028151811061496e5761496e615ac2565b6020026020010151600d60006101000a8154816001600160a01b0302191690836001600160a01b03160217905550856003815181106149af576149af615ac2565b6020026020010151600e60006101000a8154816001600160a01b0302191690836001600160a01b03160217905550836001815181106149f0576149f0615ac2565b602090810291909101810151600f819055600d54600e54604080513381526001600160a01b039384169581019590955291169083015260608201527f02ab4b3fc023109c2d0da394bda239166c833f63c42b71b67ed4b836dca0ddfe9060800160405180910390a15050600b5460ff1695945050505050565b60005b600654811015614ac557816001600160a01b031660068281548110614a9357614a93615ac2565b6000918252602090912001546001600160a01b03161415614ab357614ac5565b80614abd81615ee9565b915050614a6c565b600654811415610d7657600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0384166001600160a01b03199091161790555050565b6001600160a01b0381166000908152600560205260409020805460ff16158015614b5157508054610100900460ff16155b15610d765760005b600654811015614bb257826001600160a01b031660068281548110614b8057614b80615ac2565b6000918252602090912001546001600160a01b03161415614ba057614bb2565b80614baa81615ee9565b915050614b59565b6006548110156114b55760068054614bcc90600190615f29565b81548110614bdc57614bdc615ac2565b600091825260209091200154600680546001600160a01b039092169183908110614c0857614c08615ac2565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506006805480614c4757614c47615f40565b600082815260209020810160001990810180546001600160a01b0319169055019055505050565b6000610d998284615f56565b6000610d998284615f75565b6000610d998284615f29565b6040516001600160a01b0383166024820152604481018290526114b590849063a9059cbb60e01b90606401614388565b60005b600654811015614d285760006005600060068481548110614ce857614ce8615ac2565b60009182526020808320909101546001600160a01b031683528201929092526040019020805461ffff191690555080614d2081615ee9565b915050614cc5565b50614d3560066000615103565b6040805142815243602082015233917f712bc71db81927a76b8bf1ea346247bb0ad58f18e4e5c1bd4aa0ec6573e02a2b910160405180910390a2565b6040516001600160a01b03808516602483015283166044820152606481018290526131259085906323b872dd60e01b90608401614388565b6000614dfe826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614e7e9092919063ffffffff16565b9050805160001480614e1f575080806020019051810190614e1f9190615ecc565b6114b55760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610b31565b6060614e8d8484600085614e95565b949350505050565b606082471015614ef65760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610b31565b600080866001600160a01b03168587604051614f129190615f97565b60006040518083038185875af1925050503d8060008114614f4f576040519150601f19603f3d011682016040523d82523d6000602084013e614f54565b606091505b5091509150614f6587838387614f70565b979650505050505050565b60608315614fdc578251614fd5576001600160a01b0385163b614fd55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610b31565b5081614e8d565b614e8d8383815115614ff15781518083602001fd5b8060405162461bcd60e51b8152600401610b3191906151bc565b8280546150179061595b565b90600052602060002090601f016020900481019282615039576000855561507f565b82601f106150525782800160ff1982351617855561507f565b8280016001018555821561507f579182015b8281111561507f578235825591602001919060010190615064565b5061508b92915061511d565b5090565b82805461509b9061595b565b90600052602060002090601f0160209004810192826150bd576000855561507f565b82601f106150d657805160ff191683800117855561507f565b8280016001018555821561507f579182015b8281111561507f5782518255916020019190600101906150e8565b5080546000825590600052602060002090810190610ebc91905b5b8082111561508b576000815560010161511e565b6001600160a01b0381168114610ebc57600080fd5b60006020828403121561515957600080fd5b8135610d9981615132565b60005b8381101561517f578181015183820152602001615167565b838111156131255750506000910152565b600081518084526151a8816020860160208601615164565b601f01601f19169290920160200192915050565b602081526000610d996020830184615190565b600080604083850312156151e257600080fd5b82356151ed81615132565b946020939093013593505050565b8015158114610ebc57600080fd5b600080600080600060a0868803121561522157600080fd5b853561522c81615132565b94506020860135935060408601359250606086013561524a816151fb565b9150608086013561525a81615132565b809150509295509295909350565b600060c0828403121561527a57600080fd5b50919050565b6000806040838503121561529357600080fd5b82356001600160401b038111156152a957600080fd5b6152b585828601615268565b92505060208301356152c681615132565b809150509250929050565b6000806000606084860312156152e657600080fd5b83356152f181615132565b9250602084013561530181615132565b929592945050506040919091013590565b6000610100828403121561527a57600080fd5b6000806040838503121561533857600080fd5b8235915060208301356001600160401b0381111561535557600080fd5b61536185828601615312565b9150509250929050565b60006020828403121561537d57600080fd5b5035919050565b600081518084526020808501945080840160005b838110156153bd5781516001600160a01b031687529582019590820190600101615398565b509495945050505050565b602081526000610d996020830184615384565b60008083601f8401126153ed57600080fd5b5081356001600160401b0381111561540457600080fd5b60208301915083602082850101111561541c57600080fd5b9250929050565b6000806020838503121561543657600080fd5b82356001600160401b0381111561544c57600080fd5b615458858286016153db565b90969095509350505050565b60008060008084860360c081121561547b57600080fd5b853561548681615132565b94506020860135935060408601356001600160401b038111156154a857600080fd5b6154b488828901615312565b9350506060605f19820112156154c957600080fd5b509295919450926060019150565b602080825282518282018190526000919060409081850190868401855b8281101561552257815180516001600160a01b031685528601518685015292840192908501906001016154f4565b5091979650505050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561556d5761556d61552f565b604052919050565b60006001600160401b0382111561558e5761558e61552f565b5060051b60200190565b600082601f8301126155a957600080fd5b813560206155be6155b983615575565b615545565b82815260059290921b840181019181810190868411156155dd57600080fd5b8286015b848110156155f857803583529183019183016155e1565b509695505050505050565b60008060006060848603121561561857600080fd5b833561562381615132565b92506020848101356001600160401b038082111561564057600080fd5b818701915087601f83011261565457600080fd5b81356156626155b982615575565b81815260059190911b8301840190848101908a83111561568157600080fd5b938501935b828510156156a857843561569981615132565b82529385019390850190615686565b9650505060408701359250808311156156c057600080fd5b50506156ce86828701615598565b9150509250925092565b600080600080600080600080600060c08a8c0312156156f657600080fd5b8935985060208a013561570881615132565b975060408a01356001600160401b038082111561572457600080fd5b6157308d838e016153db565b909950975060608c013591508082111561574957600080fd5b6157558d838e016153db565b909750955060808c013591508082111561576e57600080fd5b5061577b8c828d016153db565b90945092505060a08a013561578f81615132565b809150509295985092959850929598565b60008082840360c08112156157b457600080fd5b83356001600160401b038111156157ca57600080fd5b6157d686828701615268565b93505060a0601f19820112156157eb57600080fd5b506020830190509250929050565b60008083601f84011261580b57600080fd5b5081356001600160401b0381111561582257600080fd5b6020830191508360208260051b850101111561541c57600080fd5b60008060008060008060008060008060a08b8d03121561585c57600080fd5b8a356001600160401b038082111561587357600080fd5b61587f8e838f016157f9565b909c509a5060208d013591508082111561589857600080fd5b6158a48e838f016157f9565b909a50985060408d01359150808211156158bd57600080fd5b6158c98e838f016157f9565b909850965060608d01359150808211156158e257600080fd5b6158ee8e838f016157f9565b909650945060808d013591508082111561590757600080fd5b506159148d828e016157f9565b915080935050809150509295989b9194979a5092959850565b6000806040838503121561594057600080fd5b823561594b81615132565b915060208301356152c681615132565b600181811c9082168061596f57607f821691505b6020821081141561527a57634e487b7160e01b600052602260045260246000fd5b6000608082840312156159a257600080fd5b604051608081018181106001600160401b03821117156159c4576159c461552f565b60405282516159d2816151fb565b815260208301516159e2816151fb565b602082015260408301516159f5816151fb565b60408201526060830151615a08816151fb565b60608201529392505050565b600060208284031215615a2657600080fd5b8151610d9981615132565b6020808252600c908201526b2727aa102222a82627aca2a960a11b604082015260600190565b6000823560fe19833603018112615a6d57600080fd5b9190910192915050565b634e487b7160e01b600052601160045260246000fd5b60008219821115615aa057615aa0615a77565b500190565b60208082526003908201526212505360ea1b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038416815260606020808301829052600091615afd90840186615384565b838103604085015284518082528286019183019060005b81811015615b3057835183529284019291840191600101615b14565b509098975050505050505050565b600060208284031215615b5057600080fd5b5051919050565b8183823760009101908152919050565b838152818360208301376000910160200190815292915050565b6000806000806000806000806000806000806101808d8f031215615ba457600080fd5b8c51615baf81615132565b60208e0151909c50615bc081615132565b60408e015160608f0151919c509a50615bd881615132565b8099505060808d0151975060a08d0151965060c08d0151615bf8816151fb565b8096505060e08d015194506101008d015193506101208d015192506101408d015191506101608d0151615c2a816151fb565b809150509295989b509295989b509295989b565b60008060008060808587031215615c5457600080fd5b505082516020840151604085015160609095015191969095509092509050565b60006001600160401b03831115615c8d57615c8d61552f565b615ca0601f8401601f1916602001615545565b9050828152838383011115615cb457600080fd5b828260208301376000602084830101529392505050565b6000615cd96155b984615575565b80848252602080830192508560051b850136811115615cf757600080fd5b855b81811015615d465780356001600160401b03811115615d185760008081fd5b870136601f820112615d2a5760008081fd5b615d38368235868401615c74565b865250938201938201615cf9565b50919695505050505050565b6000615d606155b984615575565b80848252602080830192508560051b850136811115615d7e57600080fd5b855b81811015615d465780356001600160401b03811115615d9f5760008081fd5b870136601f820112615db15760008081fd5b615dbf368235868401615c74565b865250938201938201615d80565b6000808335601e19843603018112615de457600080fd5b8301803591506001600160401b03821115615dfe57600080fd5b60200191503681900382131561541c57600080fd5b858782376bffffffffffffffffffffffff19606095861b8116969091019586529290931b909116601484015260288301526048820152606801919050565b600060208284031215615e6357600080fd5b813560ff81168114610d9957600080fd5b87815260c060208201528560c0820152858760e0830137600060e08783010152600060e0601f19601f890116830101905060ff861660408301528460608301528360808301528260a083015298975050505050505050565b600060208284031215615ede57600080fd5b8151610d99816151fb565b6000600019821415615efd57615efd615a77565b5060010190565b600060ff821660ff84168060ff03821115615f2157615f21615a77565b019392505050565b600082821015615f3b57615f3b615a77565b500390565b634e487b7160e01b600052603160045260246000fd5b6000816000190483118215151615615f7057615f70615a77565b500290565b600082615f9257634e487b7160e01b600052601260045260246000fd5b500490565b60008251615a6d81846020870161516456fea2646970667358221220ae396549cb662327778df8a21b154a71e1284123ba70fa4f063777bc03b9269b64736f6c634300080c0033",
1803
+ "deployedBytecode": "0x6080604052600436106102965760003560e01c806357a3a31b11610166578063983b2d56116100d3578063aa492ef91161008f578063e086e5ec1161006c578063e086e5ec14610915578063e487c2e81461091d578063ef867ff414610932578063fe82269c1461095257005b8063aa492ef9146108b5578063b3998be0146108d5578063dd62ed3e146108f557005b8063983b2d56146107dc5780639a95be16146107fc578063a457c2d71461081c578063a8c09b0b1461083c578063a9059cbb1461085c578063aa271e1a1461087c57005b80637bb0679f116101225780637bb0679f146107325780637dda231e1461075057806382c03da5146107725780638b96412b1461078757806395d89b41146107a757806396fb3eaf146107bc57005b806357a3a31b1461066857806357ad5ff6146106885780635d1ca631146106a857806370a08231146106bc57806379cc6790146106f257806379d9d7f31461071257005b8063313ce5671161020457806340c10f19116101c057806340c10f19146105b157806342966c68146105d157806347ac7d55146105f15780634abc6762146106135780634f189cb21461063357806351ea43ff1461064857005b8063313ce567146104e6578063355274ea14610508578063361fef491461051d578063392e53cd1461053d5780633950935114610555578063397b37431461057557005b806318160ddd1161025357806318160ddd14610427578063191c918a146104465780631b53b05f1461046657806323b872dd1461048657806325b00243146104a65780633092afd5146104c657005b80627ffb781461029f57806301e88208146102db57806305e2c4cf1461032b57806306fdde0314610349578063095ea7b31461036b578063160a79251461039b57005b3661029d57005b005b3480156102ab57600080fd5b50600b5461010090046001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b3480156102e757600080fd5b506103146102f6366004615147565b60056020526000908152604090205460ff8082169161010090041682565b6040805192151583529015156020830152016102d2565b34801561033757600080fd5b506012546001600160a01b03166102be565b34801561035557600080fd5b5061035e610972565b6040516102d291906151bc565b34801561037757600080fd5b5061038b6103863660046151cf565b610a04565b60405190151581526020016102d2565b3480156103a757600080fd5b506104086103b6366004615147565b6040805180820190915260008082526020820152506001600160a01b031660009081526005602090815260409182902082518084019093525460ff808216151584526101009091041615159082015290565b60408051825115158152602092830151151592810192909252016102d2565b34801561043357600080fd5b506002545b6040519081526020016102d2565b34801561045257600080fd5b5061029d610461366004615209565b610a1e565b34801561047257600080fd5b5061029d610481366004615280565b610c63565b34801561049257600080fd5b5061038b6104a13660046152d1565b610d7a565b3480156104b257600080fd5b5061029d6104c1366004615147565b610da0565b3480156104d257600080fd5b5061029d6104e1366004615147565b610ebf565b3480156104f257600080fd5b5060125b60405160ff90911681526020016102d2565b34801561051457600080fd5b50600a54610438565b34801561052957600080fd5b5061029d610538366004615325565b610fdb565b34801561054957600080fd5b50600b5460ff1661038b565b34801561056157600080fd5b5061038b6105703660046151cf565b611028565b34801561058157600080fd5b50600d54600e54600f54604080516001600160a01b039485168152939092166020840152908201526060016102d2565b3480156105bd57600080fd5b5061029d6105cc3660046151cf565b61104a565b3480156105dd57600080fd5b5061029d6105ec36600461536b565b6110f3565b3480156105fd57600080fd5b506106066110fd565b6040516102d291906153c8565b34801561061f57600080fd5b5061029d61062e366004615147565b61115e565b34801561063f57600080fd5b5061029d6112cc565b34801561065457600080fd5b5061029d610663366004615423565b611396565b34801561067457600080fd5b5061029d610683366004615147565b6114ba565b34801561069457600080fd5b5061029d6106a33660046152d1565b61166d565b3480156106b457600080fd5b5060046104f6565b3480156106c857600080fd5b506104386106d7366004615147565b6001600160a01b031660009081526020819052604090205490565b3480156106fe57600080fd5b5061029d61070d3660046151cf565b6117ec565b34801561071e57600080fd5b5061029d61072d366004615464565b611801565b34801561073e57600080fd5b506013546001600160a01b03166102be565b34801561075c57600080fd5b50610765611a72565b6040516102d291906154d7565b34801561077e57600080fd5b5061029d611ae7565b34801561079357600080fd5b506104386107a2366004615603565b611b39565b3480156107b357600080fd5b5061035e611e61565b3480156107c857600080fd5b5061038b6107d7366004615147565b611e70565b3480156107e857600080fd5b5061029d6107f7366004615147565b611eee565b34801561080857600080fd5b5061035e6108173660046156d8565b61200a565b34801561082857600080fd5b5061038b6108373660046151cf565b612494565b34801561084857600080fd5b5061029d6108573660046157a0565b61251a565b34801561086857600080fd5b5061038b6108773660046151cf565b612987565b34801561088857600080fd5b5061038b610897366004615147565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156108c157600080fd5b5061029d6108d0366004615147565b612995565b3480156108e157600080fd5b5061038b6108f036600461583d565b612ab1565b34801561090157600080fd5b5061043861091036600461592d565b612bc0565b61029d612beb565b34801561092957600080fd5b506102be612c2b565b34801561093e57600080fd5b506102be61094d36600461536b565b612cc4565b34801561095e57600080fd5b5061029d61096d366004615147565b612cee565b6060600880546109819061595b565b80601f01602080910402602001604051908101604052809291908181526020018280546109ad9061595b565b80156109fa5780601f106109cf576101008083540402835291602001916109fa565b820191906000526020600020905b8154815290600101906020018083116109dd57829003601f168201915b5050505050905090565b600033610a12818585612e5c565b60019150505b92915050565b600b5460405163160a792560e01b81523360048201526101009091046001600160a01b03169063160a792590602401608060405180830381865afa158015610a6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8e9190615990565b6020015180610b155750600b546040516331a9108f60e11b815260016004820152339161010090046001600160a01b031690636352211e90602401602060405180830381865afa158015610ae6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0a9190615a14565b6001600160a01b0316145b610b3a5760405162461bcd60e51b8152600401610b3190615a31565b60405180910390fd5b610b42612f80565b8115610b5157610b5185612fda565b601780546001810182556000919091527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c150180546001600160a01b0319166001600160a01b0387169081179091556040519081527fa31ffd41531537eb31bfd827a3f5372b5f62bf4dd8579e5354b280dc58490e709060200160405180910390a1601554604051636b14d00560e11b81526001600160a01b0387811660048301523060248301819052604483018890526064830187905233608484015260a48301529091169063d629a00a9060c401600060405180830381600087803b158015610c3a57600080fd5b505af1158015610c4e573d6000803e3d6000fd5b50505050610c5c6001600755565b5050505050565b610c6b612f80565b604051631d746d8360e01b8152306004820152670de0b6b3a764000060248201523360448201526001600160a01b03821690631d746d8390606401600060405180830381600087803b158015610cc057600080fd5b505af1158015610cd4573d6000803e3d6000fd5b505033600090815260208190526040902054670de0b6b3a7640000925090501015610d415760405162461bcd60e51b815260206004820152601f60248201527f556e61626c6520746f206765742044542066726f6d2044697370656e736572006044820152606401610b31565b610d6c610d516020840184615147565b6020840135610d636040860186615a57565b85606001611801565b610d766001600755565b5050565b600033610d888582856130b1565b610d9385858561312b565b60019150505b9392505050565b600b5460405163160a792560e01b81523360048201526101009091046001600160a01b03169063160a792590602401608060405180830381865afa158015610dec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e109190615990565b6020015180610e975750600b546040516331a9108f60e11b815260016004820152339161010090046001600160a01b031690636352211e90602401602060405180830381865afa158015610e68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8c9190615a14565b6001600160a01b0316145b610eb35760405162461bcd60e51b8152600401610b3190615a31565b610ebc816132cf565b50565b600b5460405163160a792560e01b81523360048201526101009091046001600160a01b03169063160a792590602401608060405180830381865afa158015610f0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2f9190615990565b6020015180610fb65750600b546040516331a9108f60e11b815260016004820152339161010090046001600160a01b031690636352211e90602401602060405180830381865afa158015610f87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fab9190615a14565b6001600160a01b0316145b610fd25760405162461bcd60e51b8152600401610b3190615a31565b610ebc81613341565b60408051838152336020820152428183015243606082015290517f526e31449ea46e2aecf9b480c8d7dfa191348ef74ffdf75b445a6ab726daa6ff9181900360800190a1610d76816133a1565b600033610a1281858561103b8383612bc0565b6110459190615a8d565b612e5c565b3360009081526005602052604090205460ff166110965760405162461bcd60e51b815260206004820152600a6024820152692727aa1026a4a72a22a960b11b6044820152606401610b31565b600a546110ac826110a660025490565b9061379b565b11156110e95760405162461bcd60e51b815260206004820152600c60248201526b18d85c08195e18d95959195960a21b6044820152606401610b31565b610d7682826137a7565b610ebc3382613866565b606060178054806020026020016040519081016040528092919081815260200182805480156109fa57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611137575050505050905090565b600b5460405163160a792560e01b81523360048201526101009091046001600160a01b03169063160a792590602401608060405180830381865afa1580156111aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ce9190615990565b60200151806112555750600b546040516331a9108f60e11b815260016004820152339161010090046001600160a01b031690636352211e90602401602060405180830381865afa158015611226573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124a9190615a14565b6001600160a01b0316145b6112715760405162461bcd60e51b8152600401610b3190615a31565b6001600160a01b038116156112aa5761128981613998565b15156001146112aa5760405162461bcd60e51b8152600401610b3190615aa5565b601280546001600160a01b0319166001600160a01b0392909216919091179055565b600b546040516331a9108f60e11b8152600160048201526101009091046001600160a01b031690636352211e90602401602060405180830381865afa158015611319573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133d9190615a14565b6001600160a01b0316336001600160a01b03161461138c5760405162461bcd60e51b815260206004820152600c60248201526b3737ba1027232a27bbb732b960a11b6044820152606401610b31565b611394613a98565b565b600b5460405163160a792560e01b81523360048201526101009091046001600160a01b03169063160a792590602401608060405180830381865afa1580156113e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114069190615990565b602001518061148d5750600b546040516331a9108f60e11b815260016004820152339161010090046001600160a01b031690636352211e90602401602060405180830381865afa15801561145e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114829190615a14565b6001600160a01b0316145b6114a95760405162461bcd60e51b8152600401610b3190615a31565b6114b56010838361500b565b505050565b33600090815260056020526040902054610100900460ff168061154d5750600b5460405163160a792560e01b81523360048201526101009091046001600160a01b03169063160a792590602401608060405180830381865afa158015611524573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115489190615990565b602001515b806115d05750600b546040516331a9108f60e11b815260016004820152339161010090046001600160a01b031690636352211e90602401602060405180830381865afa1580156115a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115c59190615a14565b6001600160a01b0316145b61161c5760405162461bcd60e51b815260206004820152601c60248201527f4e4f54205041594d454e54204d414e41474552206f72204f574e4552000000006044820152606401610b31565b61162581613f73565b604080514281524360208201526001600160a01b0383169133917f4d7694d695c57cc54947177c8e8a0e61aae664e9223492a798c32fadfc6419cc910160405180910390a350565b600d546001600160a01b031633146116c75760405162461bcd60e51b815260206004820152601b60248201527f6e6f74207075626c6973684d61726b65744665654164647265737300000000006044820152606401610b31565b6001600160a01b03831661171d5760405162461bcd60e51b815260206004820152601960248201527f5f7075626c6973684d61726b65744665654164647265737320000000000000006044820152606401610b31565b6001600160a01b03821661176c5760405162461bcd60e51b81526020600482015260166024820152752fb83ab13634b9b426b0b935b2ba2332b2aa37b5b2b760511b6044820152606401610b31565b600d80546001600160a01b038581166001600160a01b03199283168117909355600e8054918616919092168117909155600f839055604080513381526020810193909352820152606081018290527f02ab4b3fc023109c2d0da394bda239166c833f63c42b71b67ed4b836dca0ddfe9060800160405180910390a1505050565b6117f78233836130b1565b610d768282613866565b33600090815260208190526040902054670de0b6b3a76400009081111561185a5760405162461bcd60e51b815260206004820152600d60248201526c139bdd08195b9bdd59da081115609a1b6044820152606401610b31565b6118648433613f95565b61186e8486613f95565b600d5460408051338152602081018490529081018690524260608201524360808201526001600160a01b03918216918716907fe1c4fa794edfa8f619b8257a077398950357b9c6398528f94480307352f9afcc9060a00160405180910390a36000600f541180156118e95750600e546001600160a01b031615155b80156118ff5750600d546001600160a01b031615155b1561197457600e54600d54600f54611927926001600160a01b03908116923392911690614038565b600e54600d54600f546040519081526001600160a01b0392831692909116907f4049a448ac6f0284a98d2cb9199e73605944ea5bec901a037f88c84703de82b29060200160405180910390a35b600082604001351180156119a1575060006119956040840160208501615147565b6001600160a01b031614155b80156119c3575060006119b76020840184615147565b6001600160a01b031614155b15611a60576119f36119db6040840160208501615147565b336119e96020860186615147565b8560400135614038565b611a036040830160208401615147565b6001600160a01b0316611a196020840184615147565b6001600160a01b03167f6d11837f46cc09b011cf4aae09fcade046c020aac088090ae4f77ff67b7079728460400135604051611a5791815260200190565b60405180910390a35b611a69836133a1565b610c5c816110f3565b60606016805480602002602001604051908101604052809291908181526020016000905b82821015611ade576000848152602090819020604080518082019091526002850290910180546001600160a01b03168252600190810154828401529083529092019101611a96565b50505050905090565b600b5461010090046001600160a01b0316331461138c5760405162461bcd60e51b815260206004820152601060248201526f1393d5080dcc8c4810dbdb9d1c9858dd60821b6044820152606401610b31565b600b5460405163160a792560e01b815233600482015260009161010090046001600160a01b03169063160a792590602401608060405180830381865afa158015611b87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bab9190615990565b6020015180611c325750600b546040516331a9108f60e11b815260016004820152339161010090046001600160a01b031690636352211e90602401602060405180830381865afa158015611c03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c279190615a14565b6001600160a01b0316145b611c4e5760405162461bcd60e51b8152600401610b3190615a31565b611c56612f80565b3083600381518110611c6a57611c6a615ac2565b60200260200101906001600160a01b031690816001600160a01b031681525050600082600481518110611c9f57611c9f615ac2565b60200260200101511115611cb657611cb684612fda565b601554604051638244937560e01b81526001600160a01b0390911690638244937590611cea90879087908790600401615ad8565b6020604051808303816000875af1158015611d09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2d9190615b3e565b905082600081518110611d4257611d42615ac2565b60200260200101516001600160a01b031683600181518110611d6657611d66615ac2565b60200260200101516001600160a01b03167fb3fac3ae95956dbac74e63ba8dac94081832395c8788e3049c900a7732f348058387604051611dba9291909182526001600160a01b0316602082015260400190565b60405180910390a3604080518082019091526001600160a01b03858116825260208201838152601680546001808201835560009290925293517fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b5124289600290950294850180546001600160a01b0319169190941617909255517fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b512428a90920191909155600755610d99565b6060600980546109819061595b565b600b5460405163160a792560e01b81526001600160a01b0383811660048301526000926101009004169063160a792590602401608060405180830381865afa158015611ec0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ee49190615990565b6020015192915050565b600b5460405163160a792560e01b81523360048201526101009091046001600160a01b03169063160a792590602401608060405180830381865afa158015611f3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f5e9190615990565b6020015180611fe55750600b546040516331a9108f60e11b815260016004820152339161010090046001600160a01b031690636352211e90602401602060405180830381865afa158015611fb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fda9190615a14565b6001600160a01b0316145b6120015760405162461bcd60e51b8152600401610b3190615a31565b610ebc81612fda565b6060816001600160a01b03166120c7878760405160200161202c929190615b57565b60408051601f198184030181529082905280516020918201207f19457468657265756d205369676e6564204d6573736167653a0a33320000000091830191909152603c820152605c016040516020818303038152906040528051906020012086868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061417f92505050565b6001600160a01b0316146121125760405162461bcd60e51b8152602060048201526012602482015271436f6e73756d6572207369676e617475726560701b6044820152606401610b31565b886001600160a01b03166121cf8b868660405160200161213493929190615b67565b60408051601f198184030181529082905280516020918201207f19457468657265756d205369676e6564204d6573736167653a0a33320000000091830191909152603c820152605c01604051602081830303815290604052805190602001208a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061417f92505050565b6001600160a01b03161461221a5760405162461bcd60e51b815260206004820152601260248201527150726f7669646572207369676e617475726560701b6044820152606401610b31565b6012546001600160a01b0316156122e5576012546040516370a0823160e01b81526001600160a01b038b8116600483015260009216906370a0823190602401602060405180830381865afa158015612276573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061229a9190615b3e565b9050600081116122e35760405162461bcd60e51b8152602060048201526014602482015273141c9bdd9a59195c881b9bdd08185b1b1bddd95960621b6044820152606401610b31565b505b6013546001600160a01b0316156123ab576013546040516370a0823160e01b81526001600160a01b038b8116600483015260009216906370a0823190602401602060405180830381865afa158015612341573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123659190615b3e565b9050600181106123a95760405162461bcd60e51b815260206004820152600f60248201526e141c9bdd9a59195c8819195b9a5959608a1b6044820152606401610b31565b505b6123b58a83614257565b15156001146123fa5760405162461bcd60e51b815260206004820152601160248201527037379031b7b739bab6b2b91037b93232b960791b6044820152606401610b31565b601080546124079061595b565b80601f01602080910402602001604051908101604052809291908181526020018280546124339061595b565b80156124805780601f1061245557610100808354040283529160200191612480565b820191906000526020600020905b81548152906001019060200180831161246357829003601f168201915b505050505090509998505050505050505050565b600033816124a28286612bc0565b9050838110156125025760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610b31565b61250f8286868403612e5c565b506001949350505050565b612522612f80565b60006125316020830183615147565b604051634c87087d60e01b81526020840135600482015290915060009081906001600160a01b03841690634c87087d9060240161018060405180830381865afa158015612582573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125a69190615b81565b5050505050505050935050925050306001600160a01b0316826001600160a01b0316146126255760405162461bcd60e51b815260206004820152602760248201527f5468697320466978656452617465206973206e6f742070726f766964696e67206044820152661d1a1a5cc8111560ca1b6064820152608401610b31565b604051636e8de4b560e11b815260208501356004820152670de0b6b3a76400006024820152606085013560448201526000906001600160a01b0385169063dd1bc96a90606401608060405180830381865afa158015612688573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126ac9190615c3e565b505050905084604001358111156127155760405162461bcd60e51b815260206004820152602760248201527f46697865645261746545786368616e67653a20546f6f206d616e79206261736560448201526620746f6b656e7360c81b6064820152608401610b31565b61272182333084614038565b6127426127316020870187615147565b6001600160a01b03841690836142df565b6001600160a01b0384166368c4b7e96020870135670de0b6b3a76400008461277060a08b0160808c01615147565b6040516001600160e01b031960e087901b1681526004810194909452602484019290925260448301526001600160a01b031660648201526060880135608482015260a401600060405180830381600087803b1580156127ce57600080fd5b505af11580156127e2573d6000803e3d6000fd5b505030600090815260208190526040902054670de0b6b3a764000092509050101561284f5760405162461bcd60e51b815260206004820152601f60248201527f556e61626c6520746f206275792044542066726f6d20466978656452617465006044820152606401610b31565b6128623033670de0b6b3a764000061312b565b61288d6128726020880188615147565b602088013561288460408a018a615a57565b89606001611801565b604051634c87087d60e01b8152602086013560048201526000906001600160a01b03861690634c87087d9060240161018060405180830381865afa1580156128d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128fd9190615b81565b509a5050505050505050505050600081111561297857604051637997ca3b60e11b815260208701356004820152602481018290526001600160a01b0386169063f32f947690604401600060405180830381600087803b15801561295f57600080fd5b505af1158015612973573d6000803e3d6000fd5b505050505b5050505050610d766001600755565b600033610a1281858561312b565b600b5460405163160a792560e01b81523360048201526101009091046001600160a01b03169063160a792590602401608060405180830381865afa1580156129e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a059190615990565b6020015180612a8c5750600b546040516331a9108f60e11b815260016004820152339161010090046001600160a01b031690636352211e90602401602060405180830381865afa158015612a5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a819190615a14565b6001600160a01b0316145b612aa85760405162461bcd60e51b8152600401610b3190615a31565b610ebc816143bf565b600b5460009060ff1615612afd5760405162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606401610b31565b612bb1612b0a8b8d615ccb565b8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c91829185019084908082843760009201919091525050604080516020808d0282810182019093528c82529093508c92508b918291850190849080828437600092019190915250612bac92508991508a9050615d52565b6144a0565b9b9a5050505050505050505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b612bf3612c2b565b6001600160a01b03166108fc479081150290604051600060405180830381858888f19350505050158015610ebc573d6000803e3d6000fd5b600c546000906001600160a01b0316612cb457600b546040516331a9108f60e11b8152600160048201526101009091046001600160a01b031690636352211e90602401602060405180830381865afa158015612c8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612caf9190615a14565b905090565b50600c546001600160a01b031690565b60068181548110612cd457600080fd5b6000918252602090912001546001600160a01b0316905081565b600b5460405163160a792560e01b81523360048201526101009091046001600160a01b03169063160a792590602401608060405180830381865afa158015612d3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d5e9190615990565b6020015180612de55750600b546040516331a9108f60e11b815260016004820152339161010090046001600160a01b031690636352211e90602401602060405180830381865afa158015612db6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dda9190615a14565b6001600160a01b0316145b612e015760405162461bcd60e51b8152600401610b3190615a31565b6001600160a01b03811615612e3a57612e1981613998565b1515600114612e3a5760405162461bcd60e51b8152600401610b3190615aa5565b601380546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316612ebe5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b31565b6001600160a01b038216612f1f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b31565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60026007541415612fd35760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610b31565b6002600755565b6001600160a01b03811615610ebc576001600160a01b0381166000908152600560205260409020805460ff16156130535760405162461bcd60e51b815260206004820152601d60248201527f4552433230526f6c65733a2020414c52454144592041204d494e5445520000006044820152606401610b31565b805460ff1916600117815561306782614a69565b6040805142815243602082015233916001600160a01b038516917f4f7e100eb1ee13e903798bd0d6aa854152e07eb05544f392b9409c12935c809591015b60405180910390a35050565b60006130bd8484612bc0565b9050600019811461312557818110156131185760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610b31565b6131258484848403612e5c565b50505050565b6001600160a01b03831661318f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b31565b6001600160a01b0382166131f15760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b31565b6001600160a01b038316600090815260208190526040902054818110156132695760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610b31565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3613125565b6001600160a01b03811660008181526005602052604090819020805461ff00191681559051909133917faee911eec8b2df8f3ae0464841541b1e5f339519bd5cf51889fe8b07fecff658906133309042904390918252602082015260400190565b60405180910390a3610d7682614b20565b6001600160a01b03811660008181526005602052604090819020805460ff191681559051909133917fefa2735987005aaa89c050c0ff8cc9ae7d9079d19382081c429130f98c52d480906133309042904390918252602082015260400190565b600060016133b260e0840184615dcd565b6133bf6020860186615147565b6133cf6040870160208801615147565b86604001358760c001356040516020016133ee96959493929190615e13565b60408051601f198184030181529082905280516020918201207f19457468657265756d205369676e6564204d6573736167653a0a33320000000091830191909152603c820152605c0160408051601f19818403018152919052805160209091012061345f6080850160608601615e51565b6040805160008152602081018083529390935260ff90911690820152608080850135606083015260a08086013591830191909152016020604051602081039080840390855afa1580156134b6573d6000803e3d6000fd5b5050604051601f19015191506134d190506020830183615147565b6001600160a01b0316816001600160a01b0316146135285760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642070726f76696465722066656560601b6044820152606401610b31565b6135386040830160208401615147565b6001600160a01b031661354e6020840184615147565b6001600160a01b03167ff8ed11cdaaf10eca2b6c941fb802cb8682afe86cac1eb93f70d0780fa062c544604085013561358a60e0870187615dcd565b61359a6080890160608a01615e51565b88608001358960a001358a60c001356040516135bc9796959493929190615e74565b60405180910390a3600082604001351180156135f1575060006135e56040840160208501615147565b6001600160a01b031614155b8015613613575060006136076020840184615147565b6001600160a01b031614155b15610d765760155460408051636c45e88160e01b815290516000926001600160a01b031691636c45e8819160048083019260209291908290030181865afa158015613662573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136869190615b3e565b9050600081156136b3576136b0670de0b6b3a76400006136aa604087013585614c6e565b90614c7a565b90505b60006136c3604086013583614c86565b90506136e46136d86040870160208801615147565b33308860400135614038565b6137156136f46020870187615147565b826137056040890160208a01615147565b6001600160a01b03169190614c92565b8115610c5c5760155460408051631a81876d60e01b81529051610c5c926001600160a01b031691631a81876d9160048083019260209291908290030181865afa158015613766573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061378a9190615a14565b836137056040890160208a01615147565b6000610d998284615a8d565b6001600160a01b0382166137fd5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610b31565b806002600082825461380f9190615a8d565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b0382166138c65760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610b31565b6001600160a01b0382166000908152602081905260409020548181101561393a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610b31565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b60006001600160a01b0382166139b057506001919050565b60115460405163480c258160e11b81526001600160a01b038481166004830152909116906390184b0290602401602060405180830381865afa1580156139fa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a1e9190615ecc565b613a2a57506000919050565b6011546040516304a1fd0d60e41b81526001600160a01b03848116600483015290911690634a1fd0d090602401602060405180830381865afa158015613a74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a189190615ecc565b601754601654600091613aaa91615a8d565b9050600080826001600160401b03811115613ac757613ac761552f565b604051908082528060200260200182016040528015613af0578160200160208202803683370190505b50905060005b601654811015613dd657600060168281548110613b1557613b15615ac2565b60009182526020822060029091020154601680546001600160a01b039092169350829182918591634c87087d919088908110613b5357613b53615ac2565b9060005260206000209060020201600101546040518263ffffffff1660e01b8152600401613b8391815260200190565b61018060405180830381865afa158015613ba1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bc59190615b81565b9b509b509b505050505050505050506000821115613c6b57836001600160a01b031663f32f947660168781548110613bff57613bff615ac2565b906000526020600020906002020160010154846040518363ffffffff1660e01b8152600401613c38929190918252602082015260400190565b600060405180830381600087803b158015613c5257600080fd5b505af1158015613c66573d6000803e3d6000fd5b505050505b8215613cff57836001600160a01b031663c612e48a60168781548110613c9357613c93615ac2565b906000526020600020906002020160010154856040518363ffffffff1660e01b8152600401613ccc929190918252602082015260400190565b600060405180830381600087803b158015613ce657600080fd5b505af1158015613cfa573d6000803e3d6000fd5b505050505b613d4260168681548110613d1557613d15615ac2565b600091825260208083206002909202909101546001600160a01b0316825260059052604090205460ff1690565b8015613d5057506001811515145b15613dbf5760168581548110613d6857613d68615ac2565b600091825260209091206002909102015486516001600160a01b0390911690879089908110613d9957613d99615ac2565b6001600160a01b039092166020928302919091019091015286613dbb81615ee9565b9750505b505050508080613dce90615ee9565b915050613af6565b5060005b601754811015613f1b5760178181548110613df757613df7615ac2565b60009182526020909120015460405163f9bfaa7d60e01b81523060048201526001600160a01b039091169063f9bfaa7d90602401600060405180830381600087803b158015613e4557600080fd5b505af1158015613e59573d6000803e3d6000fd5b50505050613e9b60178281548110613e7357613e73615ac2565b60009182526020808320909101546001600160a01b0316825260059052604090205460ff1690565b15613f095760178181548110613eb357613eb3615ac2565b9060005260206000200160009054906101000a90046001600160a01b0316828481518110613ee357613ee3615ac2565b6001600160a01b039092166020928302919091019091015282613f0581615ee9565b9350505b80613f1381615ee9565b915050613dda565b613f23614cc2565b50600c80546001600160a01b031916905560005b8281101561312557613f61828281518110613f5457613f54615ac2565b6020026020010151612fda565b80613f6b81615ee9565b915050613f37565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b60005b6001600160a01b03821660009081526014602052604090205481101561400d576001600160a01b0382166000908152601460205260409020805484919083908110613fe557613fe5615ac2565b90600052602060002001541415613ffb57505050565b8061400581615ee9565b915050613f98565b506001600160a01b031660009081526014602090815260408220805460018101825590835291200155565b6040516370a0823160e01b81526001600160a01b038381166004830152600091908616906370a0823190602401602060405180830381865afa158015614082573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140a69190615b3e565b90506140bd6001600160a01b038616858585614d71565b6140c7818361379b565b6040516370a0823160e01b81526001600160a01b0385811660048301528716906370a0823190602401602060405180830381865afa15801561410d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141319190615b3e565b1015610c5c5760405162461bcd60e51b815260206004820152601a60248201527f5472616e7366657220616d6f756e7420697320746f6f206c6f770000000000006044820152606401610b31565b600080600080845160411461419a5760009350505050610a18565b50505060208201516040830151604184015160ff16601b8110156141c6576141c3601b82615f04565b90505b8060ff16601b141580156141de57508060ff16601c14155b156141ef5760009350505050610a18565b60408051600081526020810180835288905260ff831691810191909152606081018490526080810183905260019060a0016020604051602081039080840390855afa158015614242573d6000803e3d6000fd5b5050604051601f190151979650505050505050565b6000805b6001600160a01b0383166000908152601460205260409020548110156142d5576001600160a01b03831660009081526014602052604090208054859190839081106142a8576142a8615ac2565b906000526020600020015414156142c3576001915050610a18565b806142cd81615ee9565b91505061425b565b5060009392505050565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526000919085169063dd62ed3e90604401602060405180830381865afa15801561432f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143539190615b3e565b90506131258463095ea7b360e01b8561436c8686615a8d565b6040516001600160a01b03909216602483015260448201526064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152614da9565b6001600160a01b03811615610ebc576001600160a01b03811660009081526005602052604090208054610100900460ff16156144485760405162461bcd60e51b815260206004820152602260248201527f4552433230526f6c65733a2020414c5245414459204120464545204d414e414760448201526122a960f11b6064820152608401610b31565b805461ff00191661010017815561445e82614a69565b6040805142815243602082015233916001600160a01b038516917fb17da2e9910b4ba5754e8872385ba315a238bafb5ae221fc85093c33432c40a791016130a5565b600080846000815181106144b6576144b6615ac2565b60200260200101519050846001815181106144d3576144d3615ac2565b6020908102919091010151601580546001600160a01b0319166001600160a01b0392831617905581166145315760405162461bcd60e51b815260206004820152600660248201526536b4b73a32b960d11b6044820152606401610b31565b6015546001600160a01b03166145725760405162461bcd60e51b81526020600482015260066024820152653937baba32b960d11b6044820152606401610b31565b8360008151811061458557614585615ac2565b6020026020010151600014156145c35760405162461bcd60e51b815260206004820152600360248201526206361760ec1b6044820152606401610b31565b836000815181106145d6576145d6615ac2565b6020026020010151600a81905550866000815181106145f7576145f7615ac2565b60200260200101516008908051906020019061461492919061508f565b508660018151811061462857614628615ac2565b60200260200101516009908051906020019061464592919061508f565b5082511561467f578260008151811061466057614660615ac2565b60200260200101516010908051906020019061467d92919061508f565b505b6004865111156146cb578560048151811061469c5761469c615ac2565b6020026020010151601160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b6011546001600160a01b03166147175760405162461bcd60e51b81526020600482015260116024820152706163636573734c697374466163746f727960781b6044820152606401610b31565b6005865111156147ab576147448660058151811061473757614737615ac2565b6020026020010151613998565b15156001146147655760405162461bcd60e51b8152600401610b3190615aa5565b8560058151811061477857614778615ac2565b6020026020010151601260006101000a8154816001600160a01b0302191690836001600160a01b031602179055506147bc565b601280546001600160a01b03191690555b600686511115614843576147dc8660068151811061473757614737615ac2565b15156001146147fd5760405162461bcd60e51b8152600401610b3190615aa5565b8560068151811061481057614810615ac2565b6020026020010151601360006101000a8154816001600160a01b0302191690836001600160a01b03160217905550614854565b601380546001600160a01b03191690555b600b805460ff196001600160a01b03841661010002166001600160a81b03199091161760011790558551614893908790600090613f5457613f54615ac2565b60006001600160a01b0316866001815181106148b1576148b1615ac2565b60200260200101516001600160a01b03161461495b576148ea866001815181106148dd576148dd615ac2565b6020026020010151613f73565b856001815181106148fd576148fd615ac2565b60200260200101516001600160a01b0316336001600160a01b03167f4d7694d695c57cc54947177c8e8a0e61aae664e9223492a798c32fadfc6419cc4243604051614952929190918252602082015260400190565b60405180910390a35b8560028151811061496e5761496e615ac2565b6020026020010151600d60006101000a8154816001600160a01b0302191690836001600160a01b03160217905550856003815181106149af576149af615ac2565b6020026020010151600e60006101000a8154816001600160a01b0302191690836001600160a01b03160217905550836001815181106149f0576149f0615ac2565b602090810291909101810151600f819055600d54600e54604080513381526001600160a01b039384169581019590955291169083015260608201527f02ab4b3fc023109c2d0da394bda239166c833f63c42b71b67ed4b836dca0ddfe9060800160405180910390a15050600b5460ff1695945050505050565b60005b600654811015614ac557816001600160a01b031660068281548110614a9357614a93615ac2565b6000918252602090912001546001600160a01b03161415614ab357614ac5565b80614abd81615ee9565b915050614a6c565b600654811415610d7657600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0384166001600160a01b03199091161790555050565b6001600160a01b0381166000908152600560205260409020805460ff16158015614b5157508054610100900460ff16155b15610d765760005b600654811015614bb257826001600160a01b031660068281548110614b8057614b80615ac2565b6000918252602090912001546001600160a01b03161415614ba057614bb2565b80614baa81615ee9565b915050614b59565b6006548110156114b55760068054614bcc90600190615f29565b81548110614bdc57614bdc615ac2565b600091825260209091200154600680546001600160a01b039092169183908110614c0857614c08615ac2565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506006805480614c4757614c47615f40565b600082815260209020810160001990810180546001600160a01b0319169055019055505050565b6000610d998284615f56565b6000610d998284615f75565b6000610d998284615f29565b6040516001600160a01b0383166024820152604481018290526114b590849063a9059cbb60e01b90606401614388565b60005b600654811015614d285760006005600060068481548110614ce857614ce8615ac2565b60009182526020808320909101546001600160a01b031683528201929092526040019020805461ffff191690555080614d2081615ee9565b915050614cc5565b50614d3560066000615103565b6040805142815243602082015233917f712bc71db81927a76b8bf1ea346247bb0ad58f18e4e5c1bd4aa0ec6573e02a2b910160405180910390a2565b6040516001600160a01b03808516602483015283166044820152606481018290526131259085906323b872dd60e01b90608401614388565b6000614dfe826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614e7e9092919063ffffffff16565b9050805160001480614e1f575080806020019051810190614e1f9190615ecc565b6114b55760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610b31565b6060614e8d8484600085614e95565b949350505050565b606082471015614ef65760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610b31565b600080866001600160a01b03168587604051614f129190615f97565b60006040518083038185875af1925050503d8060008114614f4f576040519150601f19603f3d011682016040523d82523d6000602084013e614f54565b606091505b5091509150614f6587838387614f70565b979650505050505050565b60608315614fdc578251614fd5576001600160a01b0385163b614fd55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610b31565b5081614e8d565b614e8d8383815115614ff15781518083602001fd5b8060405162461bcd60e51b8152600401610b3191906151bc565b8280546150179061595b565b90600052602060002090601f016020900481019282615039576000855561507f565b82601f106150525782800160ff1982351617855561507f565b8280016001018555821561507f579182015b8281111561507f578235825591602001919060010190615064565b5061508b92915061511d565b5090565b82805461509b9061595b565b90600052602060002090601f0160209004810192826150bd576000855561507f565b82601f106150d657805160ff191683800117855561507f565b8280016001018555821561507f579182015b8281111561507f5782518255916020019190600101906150e8565b5080546000825590600052602060002090810190610ebc91905b5b8082111561508b576000815560010161511e565b6001600160a01b0381168114610ebc57600080fd5b60006020828403121561515957600080fd5b8135610d9981615132565b60005b8381101561517f578181015183820152602001615167565b838111156131255750506000910152565b600081518084526151a8816020860160208601615164565b601f01601f19169290920160200192915050565b602081526000610d996020830184615190565b600080604083850312156151e257600080fd5b82356151ed81615132565b946020939093013593505050565b8015158114610ebc57600080fd5b600080600080600060a0868803121561522157600080fd5b853561522c81615132565b94506020860135935060408601359250606086013561524a816151fb565b9150608086013561525a81615132565b809150509295509295909350565b600060c0828403121561527a57600080fd5b50919050565b6000806040838503121561529357600080fd5b82356001600160401b038111156152a957600080fd5b6152b585828601615268565b92505060208301356152c681615132565b809150509250929050565b6000806000606084860312156152e657600080fd5b83356152f181615132565b9250602084013561530181615132565b929592945050506040919091013590565b6000610100828403121561527a57600080fd5b6000806040838503121561533857600080fd5b8235915060208301356001600160401b0381111561535557600080fd5b61536185828601615312565b9150509250929050565b60006020828403121561537d57600080fd5b5035919050565b600081518084526020808501945080840160005b838110156153bd5781516001600160a01b031687529582019590820190600101615398565b509495945050505050565b602081526000610d996020830184615384565b60008083601f8401126153ed57600080fd5b5081356001600160401b0381111561540457600080fd5b60208301915083602082850101111561541c57600080fd5b9250929050565b6000806020838503121561543657600080fd5b82356001600160401b0381111561544c57600080fd5b615458858286016153db565b90969095509350505050565b60008060008084860360c081121561547b57600080fd5b853561548681615132565b94506020860135935060408601356001600160401b038111156154a857600080fd5b6154b488828901615312565b9350506060605f19820112156154c957600080fd5b509295919450926060019150565b602080825282518282018190526000919060409081850190868401855b8281101561552257815180516001600160a01b031685528601518685015292840192908501906001016154f4565b5091979650505050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561556d5761556d61552f565b604052919050565b60006001600160401b0382111561558e5761558e61552f565b5060051b60200190565b600082601f8301126155a957600080fd5b813560206155be6155b983615575565b615545565b82815260059290921b840181019181810190868411156155dd57600080fd5b8286015b848110156155f857803583529183019183016155e1565b509695505050505050565b60008060006060848603121561561857600080fd5b833561562381615132565b92506020848101356001600160401b038082111561564057600080fd5b818701915087601f83011261565457600080fd5b81356156626155b982615575565b81815260059190911b8301840190848101908a83111561568157600080fd5b938501935b828510156156a857843561569981615132565b82529385019390850190615686565b9650505060408701359250808311156156c057600080fd5b50506156ce86828701615598565b9150509250925092565b600080600080600080600080600060c08a8c0312156156f657600080fd5b8935985060208a013561570881615132565b975060408a01356001600160401b038082111561572457600080fd5b6157308d838e016153db565b909950975060608c013591508082111561574957600080fd5b6157558d838e016153db565b909750955060808c013591508082111561576e57600080fd5b5061577b8c828d016153db565b90945092505060a08a013561578f81615132565b809150509295985092959850929598565b60008082840360c08112156157b457600080fd5b83356001600160401b038111156157ca57600080fd5b6157d686828701615268565b93505060a0601f19820112156157eb57600080fd5b506020830190509250929050565b60008083601f84011261580b57600080fd5b5081356001600160401b0381111561582257600080fd5b6020830191508360208260051b850101111561541c57600080fd5b60008060008060008060008060008060a08b8d03121561585c57600080fd5b8a356001600160401b038082111561587357600080fd5b61587f8e838f016157f9565b909c509a5060208d013591508082111561589857600080fd5b6158a48e838f016157f9565b909a50985060408d01359150808211156158bd57600080fd5b6158c98e838f016157f9565b909850965060608d01359150808211156158e257600080fd5b6158ee8e838f016157f9565b909650945060808d013591508082111561590757600080fd5b506159148d828e016157f9565b915080935050809150509295989b9194979a5092959850565b6000806040838503121561594057600080fd5b823561594b81615132565b915060208301356152c681615132565b600181811c9082168061596f57607f821691505b6020821081141561527a57634e487b7160e01b600052602260045260246000fd5b6000608082840312156159a257600080fd5b604051608081018181106001600160401b03821117156159c4576159c461552f565b60405282516159d2816151fb565b815260208301516159e2816151fb565b602082015260408301516159f5816151fb565b60408201526060830151615a08816151fb565b60608201529392505050565b600060208284031215615a2657600080fd5b8151610d9981615132565b6020808252600c908201526b2727aa102222a82627aca2a960a11b604082015260600190565b6000823560fe19833603018112615a6d57600080fd5b9190910192915050565b634e487b7160e01b600052601160045260246000fd5b60008219821115615aa057615aa0615a77565b500190565b60208082526003908201526212505360ea1b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038416815260606020808301829052600091615afd90840186615384565b838103604085015284518082528286019183019060005b81811015615b3057835183529284019291840191600101615b14565b509098975050505050505050565b600060208284031215615b5057600080fd5b5051919050565b8183823760009101908152919050565b838152818360208301376000910160200190815292915050565b6000806000806000806000806000806000806101808d8f031215615ba457600080fd5b8c51615baf81615132565b60208e0151909c50615bc081615132565b60408e015160608f0151919c509a50615bd881615132565b8099505060808d0151975060a08d0151965060c08d0151615bf8816151fb565b8096505060e08d015194506101008d015193506101208d015192506101408d015191506101608d0151615c2a816151fb565b809150509295989b509295989b509295989b565b60008060008060808587031215615c5457600080fd5b505082516020840151604085015160609095015191969095509092509050565b60006001600160401b03831115615c8d57615c8d61552f565b615ca0601f8401601f1916602001615545565b9050828152838383011115615cb457600080fd5b828260208301376000602084830101529392505050565b6000615cd96155b984615575565b80848252602080830192508560051b850136811115615cf757600080fd5b855b81811015615d465780356001600160401b03811115615d185760008081fd5b870136601f820112615d2a5760008081fd5b615d38368235868401615c74565b865250938201938201615cf9565b50919695505050505050565b6000615d606155b984615575565b80848252602080830192508560051b850136811115615d7e57600080fd5b855b81811015615d465780356001600160401b03811115615d9f5760008081fd5b870136601f820112615db15760008081fd5b615dbf368235868401615c74565b865250938201938201615d80565b6000808335601e19843603018112615de457600080fd5b8301803591506001600160401b03821115615dfe57600080fd5b60200191503681900382131561541c57600080fd5b858782376bffffffffffffffffffffffff19606095861b8116969091019586529290931b909116601484015260288301526048820152606801919050565b600060208284031215615e6357600080fd5b813560ff81168114610d9957600080fd5b87815260c060208201528560c0820152858760e0830137600060e08783010152600060e0601f19601f890116830101905060ff861660408301528460608301528360808301528260a083015298975050505050505050565b600060208284031215615ede57600080fd5b8151610d99816151fb565b6000600019821415615efd57615efd615a77565b5060010190565b600060ff821660ff84168060ff03821115615f2157615f21615a77565b019392505050565b600082821015615f3b57615f3b615a77565b500390565b634e487b7160e01b600052603160045260246000fd5b6000816000190483118215151615615f7057615f70615a77565b500290565b600082615f9257634e487b7160e01b600052601260045260246000fd5b500490565b60008251615a6d81846020870161516456fea2646970667358221220ae396549cb662327778df8a21b154a71e1284123ba70fa4f063777bc03b9269b64736f6c634300080c0033",
1804
+ "linkReferences": {},
1805
+ "deployedLinkReferences": {}
1806
+ }