aiia-vault-sdk 1.0.1 → 1.0.2

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.
@@ -1,1519 +0,0 @@
1
- {
2
- "_format": "hh-sol-artifact-1",
3
- "contractName": "SeedRoundFundraiser",
4
- "sourceName": "contracts/SeedRoundFundraiser.sol",
5
- "abi": [
6
- {
7
- "inputs": [],
8
- "stateMutability": "nonpayable",
9
- "type": "constructor"
10
- },
11
- {
12
- "inputs": [],
13
- "name": "AccessControlBadConfirmation",
14
- "type": "error"
15
- },
16
- {
17
- "inputs": [
18
- {
19
- "internalType": "address",
20
- "name": "account",
21
- "type": "address"
22
- },
23
- {
24
- "internalType": "bytes32",
25
- "name": "neededRole",
26
- "type": "bytes32"
27
- }
28
- ],
29
- "name": "AccessControlUnauthorizedAccount",
30
- "type": "error"
31
- },
32
- {
33
- "inputs": [],
34
- "name": "AccountAlreadyParticipatedInAnotherRound",
35
- "type": "error"
36
- },
37
- {
38
- "inputs": [],
39
- "name": "AlreadyClaimed",
40
- "type": "error"
41
- },
42
- {
43
- "inputs": [],
44
- "name": "AlreadyRefunded",
45
- "type": "error"
46
- },
47
- {
48
- "inputs": [],
49
- "name": "ClaimingNotEnabled",
50
- "type": "error"
51
- },
52
- {
53
- "inputs": [],
54
- "name": "EthTransferFailed",
55
- "type": "error"
56
- },
57
- {
58
- "inputs": [],
59
- "name": "ExceedsMaxFundPerAccount",
60
- "type": "error"
61
- },
62
- {
63
- "inputs": [],
64
- "name": "ExceedsRoundTargetFund",
65
- "type": "error"
66
- },
67
- {
68
- "inputs": [],
69
- "name": "InsufficientBalance",
70
- "type": "error"
71
- },
72
- {
73
- "inputs": [],
74
- "name": "InvalidAllocation",
75
- "type": "error"
76
- },
77
- {
78
- "inputs": [],
79
- "name": "InvalidEndTime",
80
- "type": "error"
81
- },
82
- {
83
- "inputs": [],
84
- "name": "InvalidEthAmount",
85
- "type": "error"
86
- },
87
- {
88
- "inputs": [],
89
- "name": "InvalidInitialization",
90
- "type": "error"
91
- },
92
- {
93
- "inputs": [],
94
- "name": "InvalidMaxFundPerAccount",
95
- "type": "error"
96
- },
97
- {
98
- "inputs": [],
99
- "name": "InvalidRoundConfig",
100
- "type": "error"
101
- },
102
- {
103
- "inputs": [],
104
- "name": "InvalidRoundId",
105
- "type": "error"
106
- },
107
- {
108
- "inputs": [],
109
- "name": "InvalidStartTime",
110
- "type": "error"
111
- },
112
- {
113
- "inputs": [],
114
- "name": "InvalidTargetFund",
115
- "type": "error"
116
- },
117
- {
118
- "inputs": [],
119
- "name": "InvalidTokenAddress",
120
- "type": "error"
121
- },
122
- {
123
- "inputs": [],
124
- "name": "InvalidTokenPrice",
125
- "type": "error"
126
- },
127
- {
128
- "inputs": [],
129
- "name": "InvalidUserAddress",
130
- "type": "error"
131
- },
132
- {
133
- "inputs": [],
134
- "name": "NoParticipation",
135
- "type": "error"
136
- },
137
- {
138
- "inputs": [],
139
- "name": "NotInitializing",
140
- "type": "error"
141
- },
142
- {
143
- "inputs": [
144
- {
145
- "internalType": "address",
146
- "name": "owner",
147
- "type": "address"
148
- }
149
- ],
150
- "name": "OwnableInvalidOwner",
151
- "type": "error"
152
- },
153
- {
154
- "inputs": [
155
- {
156
- "internalType": "address",
157
- "name": "account",
158
- "type": "address"
159
- }
160
- ],
161
- "name": "OwnableUnauthorizedAccount",
162
- "type": "error"
163
- },
164
- {
165
- "inputs": [],
166
- "name": "RefundNotAllowed",
167
- "type": "error"
168
- },
169
- {
170
- "inputs": [],
171
- "name": "RoundAlreadyEnded",
172
- "type": "error"
173
- },
174
- {
175
- "inputs": [],
176
- "name": "RoundAlreadyExists",
177
- "type": "error"
178
- },
179
- {
180
- "inputs": [],
181
- "name": "RoundDoesNotExist",
182
- "type": "error"
183
- },
184
- {
185
- "inputs": [],
186
- "name": "RoundNotActive",
187
- "type": "error"
188
- },
189
- {
190
- "inputs": [],
191
- "name": "TokenNotWhitelisted",
192
- "type": "error"
193
- },
194
- {
195
- "inputs": [],
196
- "name": "TransferFailed",
197
- "type": "error"
198
- },
199
- {
200
- "inputs": [],
201
- "name": "ZeroAmount",
202
- "type": "error"
203
- },
204
- {
205
- "anonymous": false,
206
- "inputs": [
207
- {
208
- "indexed": true,
209
- "internalType": "uint256",
210
- "name": "roundId",
211
- "type": "uint256"
212
- },
213
- {
214
- "indexed": false,
215
- "internalType": "bool",
216
- "name": "enabled",
217
- "type": "bool"
218
- }
219
- ],
220
- "name": "ClaimingEnabledUpdated",
221
- "type": "event"
222
- },
223
- {
224
- "anonymous": false,
225
- "inputs": [
226
- {
227
- "indexed": true,
228
- "internalType": "uint256",
229
- "name": "roundId",
230
- "type": "uint256"
231
- },
232
- {
233
- "indexed": true,
234
- "internalType": "address",
235
- "name": "contributor",
236
- "type": "address"
237
- },
238
- {
239
- "indexed": true,
240
- "internalType": "address",
241
- "name": "token",
242
- "type": "address"
243
- },
244
- {
245
- "indexed": false,
246
- "internalType": "uint256",
247
- "name": "amount",
248
- "type": "uint256"
249
- },
250
- {
251
- "indexed": false,
252
- "internalType": "uint256",
253
- "name": "fundAmount",
254
- "type": "uint256"
255
- },
256
- {
257
- "indexed": false,
258
- "internalType": "uint256",
259
- "name": "tokenAllocation",
260
- "type": "uint256"
261
- }
262
- ],
263
- "name": "Contribution",
264
- "type": "event"
265
- },
266
- {
267
- "anonymous": false,
268
- "inputs": [
269
- {
270
- "indexed": false,
271
- "internalType": "uint64",
272
- "name": "version",
273
- "type": "uint64"
274
- }
275
- ],
276
- "name": "Initialized",
277
- "type": "event"
278
- },
279
- {
280
- "anonymous": false,
281
- "inputs": [
282
- {
283
- "indexed": true,
284
- "internalType": "uint256",
285
- "name": "roundId",
286
- "type": "uint256"
287
- },
288
- {
289
- "indexed": false,
290
- "internalType": "bool",
291
- "name": "enabled",
292
- "type": "bool"
293
- }
294
- ],
295
- "name": "MultiRoundParticipationUpdated",
296
- "type": "event"
297
- },
298
- {
299
- "anonymous": false,
300
- "inputs": [
301
- {
302
- "indexed": true,
303
- "internalType": "address",
304
- "name": "previousOwner",
305
- "type": "address"
306
- },
307
- {
308
- "indexed": true,
309
- "internalType": "address",
310
- "name": "newOwner",
311
- "type": "address"
312
- }
313
- ],
314
- "name": "OwnershipTransferred",
315
- "type": "event"
316
- },
317
- {
318
- "anonymous": false,
319
- "inputs": [
320
- {
321
- "indexed": true,
322
- "internalType": "address",
323
- "name": "oldToken",
324
- "type": "address"
325
- },
326
- {
327
- "indexed": true,
328
- "internalType": "address",
329
- "name": "newToken",
330
- "type": "address"
331
- }
332
- ],
333
- "name": "ProjectTokenUpdated",
334
- "type": "event"
335
- },
336
- {
337
- "anonymous": false,
338
- "inputs": [
339
- {
340
- "indexed": true,
341
- "internalType": "uint256",
342
- "name": "roundId",
343
- "type": "uint256"
344
- },
345
- {
346
- "indexed": false,
347
- "internalType": "bool",
348
- "name": "enabled",
349
- "type": "bool"
350
- }
351
- ],
352
- "name": "RefundEnabledUpdated",
353
- "type": "event"
354
- },
355
- {
356
- "anonymous": false,
357
- "inputs": [
358
- {
359
- "indexed": true,
360
- "internalType": "uint256",
361
- "name": "roundId",
362
- "type": "uint256"
363
- },
364
- {
365
- "indexed": true,
366
- "internalType": "address",
367
- "name": "user",
368
- "type": "address"
369
- },
370
- {
371
- "indexed": true,
372
- "internalType": "address",
373
- "name": "token",
374
- "type": "address"
375
- },
376
- {
377
- "indexed": false,
378
- "internalType": "uint256",
379
- "name": "amount",
380
- "type": "uint256"
381
- }
382
- ],
383
- "name": "Refunded",
384
- "type": "event"
385
- },
386
- {
387
- "anonymous": false,
388
- "inputs": [
389
- {
390
- "indexed": true,
391
- "internalType": "bytes32",
392
- "name": "role",
393
- "type": "bytes32"
394
- },
395
- {
396
- "indexed": true,
397
- "internalType": "bytes32",
398
- "name": "previousAdminRole",
399
- "type": "bytes32"
400
- },
401
- {
402
- "indexed": true,
403
- "internalType": "bytes32",
404
- "name": "newAdminRole",
405
- "type": "bytes32"
406
- }
407
- ],
408
- "name": "RoleAdminChanged",
409
- "type": "event"
410
- },
411
- {
412
- "anonymous": false,
413
- "inputs": [
414
- {
415
- "indexed": true,
416
- "internalType": "bytes32",
417
- "name": "role",
418
- "type": "bytes32"
419
- },
420
- {
421
- "indexed": true,
422
- "internalType": "address",
423
- "name": "account",
424
- "type": "address"
425
- },
426
- {
427
- "indexed": true,
428
- "internalType": "address",
429
- "name": "sender",
430
- "type": "address"
431
- }
432
- ],
433
- "name": "RoleGranted",
434
- "type": "event"
435
- },
436
- {
437
- "anonymous": false,
438
- "inputs": [
439
- {
440
- "indexed": true,
441
- "internalType": "bytes32",
442
- "name": "role",
443
- "type": "bytes32"
444
- },
445
- {
446
- "indexed": true,
447
- "internalType": "address",
448
- "name": "account",
449
- "type": "address"
450
- },
451
- {
452
- "indexed": true,
453
- "internalType": "address",
454
- "name": "sender",
455
- "type": "address"
456
- }
457
- ],
458
- "name": "RoleRevoked",
459
- "type": "event"
460
- },
461
- {
462
- "anonymous": false,
463
- "inputs": [
464
- {
465
- "indexed": true,
466
- "internalType": "uint256",
467
- "name": "roundId",
468
- "type": "uint256"
469
- },
470
- {
471
- "indexed": false,
472
- "internalType": "uint256",
473
- "name": "startTime",
474
- "type": "uint256"
475
- },
476
- {
477
- "indexed": false,
478
- "internalType": "uint256",
479
- "name": "endTime",
480
- "type": "uint256"
481
- },
482
- {
483
- "indexed": false,
484
- "internalType": "uint256",
485
- "name": "targetFund",
486
- "type": "uint256"
487
- },
488
- {
489
- "indexed": false,
490
- "internalType": "uint256",
491
- "name": "totalAllocation",
492
- "type": "uint256"
493
- },
494
- {
495
- "indexed": false,
496
- "internalType": "uint256",
497
- "name": "maxFundPerAccount",
498
- "type": "uint256"
499
- }
500
- ],
501
- "name": "RoundCreated",
502
- "type": "event"
503
- },
504
- {
505
- "anonymous": false,
506
- "inputs": [
507
- {
508
- "indexed": true,
509
- "internalType": "uint256",
510
- "name": "roundId",
511
- "type": "uint256"
512
- },
513
- {
514
- "indexed": false,
515
- "internalType": "uint256",
516
- "name": "raisedFunds",
517
- "type": "uint256"
518
- },
519
- {
520
- "indexed": false,
521
- "internalType": "uint256",
522
- "name": "participants",
523
- "type": "uint256"
524
- }
525
- ],
526
- "name": "RoundEnded",
527
- "type": "event"
528
- },
529
- {
530
- "anonymous": false,
531
- "inputs": [
532
- {
533
- "indexed": true,
534
- "internalType": "uint256",
535
- "name": "roundId",
536
- "type": "uint256"
537
- },
538
- {
539
- "indexed": false,
540
- "internalType": "uint256",
541
- "name": "startTime",
542
- "type": "uint256"
543
- },
544
- {
545
- "indexed": false,
546
- "internalType": "uint256",
547
- "name": "endTime",
548
- "type": "uint256"
549
- },
550
- {
551
- "indexed": false,
552
- "internalType": "uint256",
553
- "name": "targetFund",
554
- "type": "uint256"
555
- },
556
- {
557
- "indexed": false,
558
- "internalType": "uint256",
559
- "name": "totalAllocation",
560
- "type": "uint256"
561
- },
562
- {
563
- "indexed": false,
564
- "internalType": "uint256",
565
- "name": "maxFundPerAccount",
566
- "type": "uint256"
567
- }
568
- ],
569
- "name": "RoundUpdated",
570
- "type": "event"
571
- },
572
- {
573
- "anonymous": false,
574
- "inputs": [
575
- {
576
- "indexed": true,
577
- "internalType": "address",
578
- "name": "token",
579
- "type": "address"
580
- },
581
- {
582
- "indexed": false,
583
- "internalType": "uint256",
584
- "name": "oldPrice",
585
- "type": "uint256"
586
- },
587
- {
588
- "indexed": false,
589
- "internalType": "uint256",
590
- "name": "newPrice",
591
- "type": "uint256"
592
- }
593
- ],
594
- "name": "TokenPriceUpdated",
595
- "type": "event"
596
- },
597
- {
598
- "anonymous": false,
599
- "inputs": [
600
- {
601
- "indexed": true,
602
- "internalType": "address",
603
- "name": "token",
604
- "type": "address"
605
- }
606
- ],
607
- "name": "TokenRemovedFromWhitelist",
608
- "type": "event"
609
- },
610
- {
611
- "anonymous": false,
612
- "inputs": [
613
- {
614
- "indexed": true,
615
- "internalType": "address",
616
- "name": "token",
617
- "type": "address"
618
- },
619
- {
620
- "indexed": false,
621
- "internalType": "uint256",
622
- "name": "price",
623
- "type": "uint256"
624
- }
625
- ],
626
- "name": "TokenWhitelisted",
627
- "type": "event"
628
- },
629
- {
630
- "anonymous": false,
631
- "inputs": [
632
- {
633
- "indexed": true,
634
- "internalType": "uint256",
635
- "name": "roundId",
636
- "type": "uint256"
637
- },
638
- {
639
- "indexed": true,
640
- "internalType": "address",
641
- "name": "user",
642
- "type": "address"
643
- },
644
- {
645
- "indexed": false,
646
- "internalType": "uint256",
647
- "name": "amount",
648
- "type": "uint256"
649
- }
650
- ],
651
- "name": "TokensClaimed",
652
- "type": "event"
653
- },
654
- {
655
- "stateMutability": "payable",
656
- "type": "fallback"
657
- },
658
- {
659
- "inputs": [],
660
- "name": "DEFAULT_ADMIN_ROLE",
661
- "outputs": [
662
- {
663
- "internalType": "bytes32",
664
- "name": "",
665
- "type": "bytes32"
666
- }
667
- ],
668
- "stateMutability": "view",
669
- "type": "function"
670
- },
671
- {
672
- "inputs": [],
673
- "name": "ETH_ADDRESS",
674
- "outputs": [
675
- {
676
- "internalType": "address",
677
- "name": "",
678
- "type": "address"
679
- }
680
- ],
681
- "stateMutability": "view",
682
- "type": "function"
683
- },
684
- {
685
- "inputs": [],
686
- "name": "OPERATOR_ROLE",
687
- "outputs": [
688
- {
689
- "internalType": "bytes32",
690
- "name": "",
691
- "type": "bytes32"
692
- }
693
- ],
694
- "stateMutability": "view",
695
- "type": "function"
696
- },
697
- {
698
- "inputs": [],
699
- "name": "PRICE_PRECISION",
700
- "outputs": [
701
- {
702
- "internalType": "uint256",
703
- "name": "",
704
- "type": "uint256"
705
- }
706
- ],
707
- "stateMutability": "view",
708
- "type": "function"
709
- },
710
- {
711
- "inputs": [
712
- {
713
- "internalType": "address",
714
- "name": "_token",
715
- "type": "address"
716
- },
717
- {
718
- "internalType": "uint256",
719
- "name": "_price",
720
- "type": "uint256"
721
- }
722
- ],
723
- "name": "addWhitelistedToken",
724
- "outputs": [],
725
- "stateMutability": "nonpayable",
726
- "type": "function"
727
- },
728
- {
729
- "inputs": [],
730
- "name": "claimTokens",
731
- "outputs": [],
732
- "stateMutability": "nonpayable",
733
- "type": "function"
734
- },
735
- {
736
- "inputs": [
737
- {
738
- "internalType": "uint256",
739
- "name": "_roundId",
740
- "type": "uint256"
741
- }
742
- ],
743
- "name": "claimTokensByRoundId",
744
- "outputs": [],
745
- "stateMutability": "nonpayable",
746
- "type": "function"
747
- },
748
- {
749
- "inputs": [
750
- {
751
- "internalType": "uint256",
752
- "name": "_roundId",
753
- "type": "uint256"
754
- },
755
- {
756
- "internalType": "address",
757
- "name": "_token",
758
- "type": "address"
759
- },
760
- {
761
- "internalType": "uint256",
762
- "name": "_amount",
763
- "type": "uint256"
764
- }
765
- ],
766
- "name": "contribute",
767
- "outputs": [],
768
- "stateMutability": "payable",
769
- "type": "function"
770
- },
771
- {
772
- "inputs": [
773
- {
774
- "internalType": "uint256",
775
- "name": "_startTime",
776
- "type": "uint256"
777
- },
778
- {
779
- "internalType": "uint256",
780
- "name": "_endTime",
781
- "type": "uint256"
782
- },
783
- {
784
- "internalType": "uint256",
785
- "name": "_targetFund",
786
- "type": "uint256"
787
- },
788
- {
789
- "internalType": "uint256",
790
- "name": "_totalAllocation",
791
- "type": "uint256"
792
- },
793
- {
794
- "internalType": "uint256",
795
- "name": "_maxFundPerAccount",
796
- "type": "uint256"
797
- }
798
- ],
799
- "name": "createRound",
800
- "outputs": [],
801
- "stateMutability": "nonpayable",
802
- "type": "function"
803
- },
804
- {
805
- "inputs": [
806
- {
807
- "internalType": "uint256",
808
- "name": "_roundId",
809
- "type": "uint256"
810
- }
811
- ],
812
- "name": "endRound",
813
- "outputs": [],
814
- "stateMutability": "nonpayable",
815
- "type": "function"
816
- },
817
- {
818
- "inputs": [
819
- {
820
- "internalType": "bytes32",
821
- "name": "role",
822
- "type": "bytes32"
823
- }
824
- ],
825
- "name": "getRoleAdmin",
826
- "outputs": [
827
- {
828
- "internalType": "bytes32",
829
- "name": "",
830
- "type": "bytes32"
831
- }
832
- ],
833
- "stateMutability": "view",
834
- "type": "function"
835
- },
836
- {
837
- "inputs": [],
838
- "name": "getRoundsCount",
839
- "outputs": [
840
- {
841
- "internalType": "uint256",
842
- "name": "",
843
- "type": "uint256"
844
- }
845
- ],
846
- "stateMutability": "view",
847
- "type": "function"
848
- },
849
- {
850
- "inputs": [
851
- {
852
- "internalType": "address",
853
- "name": "_user",
854
- "type": "address"
855
- }
856
- ],
857
- "name": "getUserParticipatedRound",
858
- "outputs": [
859
- {
860
- "internalType": "uint256",
861
- "name": "roundId",
862
- "type": "uint256"
863
- }
864
- ],
865
- "stateMutability": "view",
866
- "type": "function"
867
- },
868
- {
869
- "inputs": [
870
- {
871
- "internalType": "uint256",
872
- "name": "_roundId",
873
- "type": "uint256"
874
- },
875
- {
876
- "internalType": "address",
877
- "name": "_user",
878
- "type": "address"
879
- }
880
- ],
881
- "name": "getUserRoundContribution",
882
- "outputs": [
883
- {
884
- "internalType": "uint256",
885
- "name": "fundAmount",
886
- "type": "uint256"
887
- },
888
- {
889
- "internalType": "uint256",
890
- "name": "tokenAllocation",
891
- "type": "uint256"
892
- },
893
- {
894
- "internalType": "bool",
895
- "name": "claimed",
896
- "type": "bool"
897
- },
898
- {
899
- "internalType": "bool",
900
- "name": "refunded",
901
- "type": "bool"
902
- },
903
- {
904
- "internalType": "address",
905
- "name": "contributedToken",
906
- "type": "address"
907
- },
908
- {
909
- "internalType": "uint256",
910
- "name": "contributedAmount",
911
- "type": "uint256"
912
- }
913
- ],
914
- "stateMutability": "view",
915
- "type": "function"
916
- },
917
- {
918
- "inputs": [
919
- {
920
- "internalType": "address",
921
- "name": "_user",
922
- "type": "address"
923
- }
924
- ],
925
- "name": "getUserTotalContribution",
926
- "outputs": [
927
- {
928
- "internalType": "uint256",
929
- "name": "totalFundAmount",
930
- "type": "uint256"
931
- },
932
- {
933
- "internalType": "uint256",
934
- "name": "totalTokenAllocation",
935
- "type": "uint256"
936
- }
937
- ],
938
- "stateMutability": "view",
939
- "type": "function"
940
- },
941
- {
942
- "inputs": [
943
- {
944
- "internalType": "address",
945
- "name": "operator",
946
- "type": "address"
947
- }
948
- ],
949
- "name": "grantOperatorRole",
950
- "outputs": [],
951
- "stateMutability": "nonpayable",
952
- "type": "function"
953
- },
954
- {
955
- "inputs": [
956
- {
957
- "internalType": "bytes32",
958
- "name": "role",
959
- "type": "bytes32"
960
- },
961
- {
962
- "internalType": "address",
963
- "name": "account",
964
- "type": "address"
965
- }
966
- ],
967
- "name": "grantRole",
968
- "outputs": [],
969
- "stateMutability": "nonpayable",
970
- "type": "function"
971
- },
972
- {
973
- "inputs": [
974
- {
975
- "internalType": "bytes32",
976
- "name": "role",
977
- "type": "bytes32"
978
- },
979
- {
980
- "internalType": "address",
981
- "name": "account",
982
- "type": "address"
983
- }
984
- ],
985
- "name": "hasRole",
986
- "outputs": [
987
- {
988
- "internalType": "bool",
989
- "name": "",
990
- "type": "bool"
991
- }
992
- ],
993
- "stateMutability": "view",
994
- "type": "function"
995
- },
996
- {
997
- "inputs": [
998
- {
999
- "internalType": "address",
1000
- "name": "_projectToken",
1001
- "type": "address"
1002
- }
1003
- ],
1004
- "name": "initialize",
1005
- "outputs": [],
1006
- "stateMutability": "nonpayable",
1007
- "type": "function"
1008
- },
1009
- {
1010
- "inputs": [
1011
- {
1012
- "internalType": "uint256",
1013
- "name": "_roundId",
1014
- "type": "uint256"
1015
- }
1016
- ],
1017
- "name": "isRoundActive",
1018
- "outputs": [
1019
- {
1020
- "internalType": "bool",
1021
- "name": "",
1022
- "type": "bool"
1023
- }
1024
- ],
1025
- "stateMutability": "view",
1026
- "type": "function"
1027
- },
1028
- {
1029
- "inputs": [],
1030
- "name": "owner",
1031
- "outputs": [
1032
- {
1033
- "internalType": "address",
1034
- "name": "",
1035
- "type": "address"
1036
- }
1037
- ],
1038
- "stateMutability": "view",
1039
- "type": "function"
1040
- },
1041
- {
1042
- "inputs": [],
1043
- "name": "projectToken",
1044
- "outputs": [
1045
- {
1046
- "internalType": "address",
1047
- "name": "",
1048
- "type": "address"
1049
- }
1050
- ],
1051
- "stateMutability": "view",
1052
- "type": "function"
1053
- },
1054
- {
1055
- "inputs": [],
1056
- "name": "refund",
1057
- "outputs": [],
1058
- "stateMutability": "nonpayable",
1059
- "type": "function"
1060
- },
1061
- {
1062
- "inputs": [
1063
- {
1064
- "internalType": "address",
1065
- "name": "_token",
1066
- "type": "address"
1067
- }
1068
- ],
1069
- "name": "removeWhitelistedToken",
1070
- "outputs": [],
1071
- "stateMutability": "nonpayable",
1072
- "type": "function"
1073
- },
1074
- {
1075
- "inputs": [],
1076
- "name": "renounceOwnership",
1077
- "outputs": [],
1078
- "stateMutability": "nonpayable",
1079
- "type": "function"
1080
- },
1081
- {
1082
- "inputs": [
1083
- {
1084
- "internalType": "bytes32",
1085
- "name": "role",
1086
- "type": "bytes32"
1087
- },
1088
- {
1089
- "internalType": "address",
1090
- "name": "callerConfirmation",
1091
- "type": "address"
1092
- }
1093
- ],
1094
- "name": "renounceRole",
1095
- "outputs": [],
1096
- "stateMutability": "nonpayable",
1097
- "type": "function"
1098
- },
1099
- {
1100
- "inputs": [
1101
- {
1102
- "internalType": "bytes32",
1103
- "name": "role",
1104
- "type": "bytes32"
1105
- },
1106
- {
1107
- "internalType": "address",
1108
- "name": "account",
1109
- "type": "address"
1110
- }
1111
- ],
1112
- "name": "revokeRole",
1113
- "outputs": [],
1114
- "stateMutability": "nonpayable",
1115
- "type": "function"
1116
- },
1117
- {
1118
- "inputs": [
1119
- {
1120
- "internalType": "uint256",
1121
- "name": "",
1122
- "type": "uint256"
1123
- }
1124
- ],
1125
- "name": "roundParticipants",
1126
- "outputs": [
1127
- {
1128
- "internalType": "uint256",
1129
- "name": "",
1130
- "type": "uint256"
1131
- }
1132
- ],
1133
- "stateMutability": "view",
1134
- "type": "function"
1135
- },
1136
- {
1137
- "inputs": [
1138
- {
1139
- "internalType": "uint256",
1140
- "name": "",
1141
- "type": "uint256"
1142
- }
1143
- ],
1144
- "name": "roundRaisedFunds",
1145
- "outputs": [
1146
- {
1147
- "internalType": "uint256",
1148
- "name": "",
1149
- "type": "uint256"
1150
- }
1151
- ],
1152
- "stateMutability": "view",
1153
- "type": "function"
1154
- },
1155
- {
1156
- "inputs": [
1157
- {
1158
- "internalType": "uint256",
1159
- "name": "",
1160
- "type": "uint256"
1161
- }
1162
- ],
1163
- "name": "rounds",
1164
- "outputs": [
1165
- {
1166
- "internalType": "uint256",
1167
- "name": "startTime",
1168
- "type": "uint256"
1169
- },
1170
- {
1171
- "internalType": "uint256",
1172
- "name": "endTime",
1173
- "type": "uint256"
1174
- },
1175
- {
1176
- "internalType": "uint256",
1177
- "name": "targetFund",
1178
- "type": "uint256"
1179
- },
1180
- {
1181
- "internalType": "uint256",
1182
- "name": "totalAllocation",
1183
- "type": "uint256"
1184
- },
1185
- {
1186
- "internalType": "uint256",
1187
- "name": "maxFundPerAccount",
1188
- "type": "uint256"
1189
- },
1190
- {
1191
- "internalType": "bool",
1192
- "name": "exists",
1193
- "type": "bool"
1194
- },
1195
- {
1196
- "internalType": "bool",
1197
- "name": "ended",
1198
- "type": "bool"
1199
- },
1200
- {
1201
- "internalType": "bool",
1202
- "name": "claimingEnabled",
1203
- "type": "bool"
1204
- },
1205
- {
1206
- "internalType": "bool",
1207
- "name": "refundEnabled",
1208
- "type": "bool"
1209
- },
1210
- {
1211
- "internalType": "bool",
1212
- "name": "allowMultiRoundParticipation",
1213
- "type": "bool"
1214
- }
1215
- ],
1216
- "stateMutability": "view",
1217
- "type": "function"
1218
- },
1219
- {
1220
- "inputs": [
1221
- {
1222
- "internalType": "uint256",
1223
- "name": "_roundId",
1224
- "type": "uint256"
1225
- },
1226
- {
1227
- "internalType": "bool",
1228
- "name": "_enabled",
1229
- "type": "bool"
1230
- }
1231
- ],
1232
- "name": "setClaimingEnabled",
1233
- "outputs": [],
1234
- "stateMutability": "nonpayable",
1235
- "type": "function"
1236
- },
1237
- {
1238
- "inputs": [
1239
- {
1240
- "internalType": "uint256",
1241
- "name": "_roundId",
1242
- "type": "uint256"
1243
- },
1244
- {
1245
- "internalType": "bool",
1246
- "name": "_enabled",
1247
- "type": "bool"
1248
- }
1249
- ],
1250
- "name": "setMultiRoundParticipation",
1251
- "outputs": [],
1252
- "stateMutability": "nonpayable",
1253
- "type": "function"
1254
- },
1255
- {
1256
- "inputs": [
1257
- {
1258
- "internalType": "address",
1259
- "name": "_projectToken",
1260
- "type": "address"
1261
- }
1262
- ],
1263
- "name": "setProjectToken",
1264
- "outputs": [],
1265
- "stateMutability": "nonpayable",
1266
- "type": "function"
1267
- },
1268
- {
1269
- "inputs": [
1270
- {
1271
- "internalType": "uint256",
1272
- "name": "_roundId",
1273
- "type": "uint256"
1274
- },
1275
- {
1276
- "internalType": "bool",
1277
- "name": "_enabled",
1278
- "type": "bool"
1279
- }
1280
- ],
1281
- "name": "setRefundEnabled",
1282
- "outputs": [],
1283
- "stateMutability": "nonpayable",
1284
- "type": "function"
1285
- },
1286
- {
1287
- "inputs": [
1288
- {
1289
- "internalType": "bytes4",
1290
- "name": "interfaceId",
1291
- "type": "bytes4"
1292
- }
1293
- ],
1294
- "name": "supportsInterface",
1295
- "outputs": [
1296
- {
1297
- "internalType": "bool",
1298
- "name": "",
1299
- "type": "bool"
1300
- }
1301
- ],
1302
- "stateMutability": "view",
1303
- "type": "function"
1304
- },
1305
- {
1306
- "inputs": [],
1307
- "name": "totalRaisedFunds",
1308
- "outputs": [
1309
- {
1310
- "internalType": "uint256",
1311
- "name": "",
1312
- "type": "uint256"
1313
- }
1314
- ],
1315
- "stateMutability": "view",
1316
- "type": "function"
1317
- },
1318
- {
1319
- "inputs": [],
1320
- "name": "totalRounds",
1321
- "outputs": [
1322
- {
1323
- "internalType": "uint256",
1324
- "name": "",
1325
- "type": "uint256"
1326
- }
1327
- ],
1328
- "stateMutability": "view",
1329
- "type": "function"
1330
- },
1331
- {
1332
- "inputs": [
1333
- {
1334
- "internalType": "address",
1335
- "name": "newOwner",
1336
- "type": "address"
1337
- }
1338
- ],
1339
- "name": "transferOwnership",
1340
- "outputs": [],
1341
- "stateMutability": "nonpayable",
1342
- "type": "function"
1343
- },
1344
- {
1345
- "inputs": [
1346
- {
1347
- "internalType": "uint256",
1348
- "name": "_roundId",
1349
- "type": "uint256"
1350
- },
1351
- {
1352
- "internalType": "uint256",
1353
- "name": "_startTime",
1354
- "type": "uint256"
1355
- },
1356
- {
1357
- "internalType": "uint256",
1358
- "name": "_endTime",
1359
- "type": "uint256"
1360
- },
1361
- {
1362
- "internalType": "uint256",
1363
- "name": "_targetFund",
1364
- "type": "uint256"
1365
- },
1366
- {
1367
- "internalType": "uint256",
1368
- "name": "_totalAllocation",
1369
- "type": "uint256"
1370
- },
1371
- {
1372
- "internalType": "uint256",
1373
- "name": "_maxFundPerAccount",
1374
- "type": "uint256"
1375
- }
1376
- ],
1377
- "name": "updateRound",
1378
- "outputs": [],
1379
- "stateMutability": "nonpayable",
1380
- "type": "function"
1381
- },
1382
- {
1383
- "inputs": [
1384
- {
1385
- "internalType": "address",
1386
- "name": "_token",
1387
- "type": "address"
1388
- },
1389
- {
1390
- "internalType": "uint256",
1391
- "name": "_newPrice",
1392
- "type": "uint256"
1393
- }
1394
- ],
1395
- "name": "updateTokenPrice",
1396
- "outputs": [],
1397
- "stateMutability": "nonpayable",
1398
- "type": "function"
1399
- },
1400
- {
1401
- "inputs": [
1402
- {
1403
- "internalType": "uint256",
1404
- "name": "",
1405
- "type": "uint256"
1406
- },
1407
- {
1408
- "internalType": "address",
1409
- "name": "",
1410
- "type": "address"
1411
- }
1412
- ],
1413
- "name": "userContributions",
1414
- "outputs": [
1415
- {
1416
- "internalType": "uint256",
1417
- "name": "fundAmount",
1418
- "type": "uint256"
1419
- },
1420
- {
1421
- "internalType": "uint256",
1422
- "name": "tokenAllocation",
1423
- "type": "uint256"
1424
- },
1425
- {
1426
- "internalType": "bool",
1427
- "name": "claimed",
1428
- "type": "bool"
1429
- },
1430
- {
1431
- "internalType": "bool",
1432
- "name": "refunded",
1433
- "type": "bool"
1434
- },
1435
- {
1436
- "internalType": "address",
1437
- "name": "contributedToken",
1438
- "type": "address"
1439
- },
1440
- {
1441
- "internalType": "uint256",
1442
- "name": "contributedAmount",
1443
- "type": "uint256"
1444
- }
1445
- ],
1446
- "stateMutability": "view",
1447
- "type": "function"
1448
- },
1449
- {
1450
- "inputs": [
1451
- {
1452
- "internalType": "address",
1453
- "name": "",
1454
- "type": "address"
1455
- }
1456
- ],
1457
- "name": "userParticipatedRound",
1458
- "outputs": [
1459
- {
1460
- "internalType": "uint256",
1461
- "name": "",
1462
- "type": "uint256"
1463
- }
1464
- ],
1465
- "stateMutability": "view",
1466
- "type": "function"
1467
- },
1468
- {
1469
- "inputs": [
1470
- {
1471
- "internalType": "address",
1472
- "name": "",
1473
- "type": "address"
1474
- }
1475
- ],
1476
- "name": "whitelistedTokens",
1477
- "outputs": [
1478
- {
1479
- "internalType": "bool",
1480
- "name": "isWhitelisted",
1481
- "type": "bool"
1482
- },
1483
- {
1484
- "internalType": "uint256",
1485
- "name": "price",
1486
- "type": "uint256"
1487
- }
1488
- ],
1489
- "stateMutability": "view",
1490
- "type": "function"
1491
- },
1492
- {
1493
- "inputs": [
1494
- {
1495
- "internalType": "address",
1496
- "name": "_token",
1497
- "type": "address"
1498
- },
1499
- {
1500
- "internalType": "uint256",
1501
- "name": "_amount",
1502
- "type": "uint256"
1503
- }
1504
- ],
1505
- "name": "withdrawFunds",
1506
- "outputs": [],
1507
- "stateMutability": "nonpayable",
1508
- "type": "function"
1509
- },
1510
- {
1511
- "stateMutability": "payable",
1512
- "type": "receive"
1513
- }
1514
- ],
1515
- "bytecode": "0x608060405234801561001057600080fd5b5061001f61002460201b60201c565b61018e565b600061003461012860201b60201c565b90508060000160089054906101000a900460ff161561007f576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff80168160000160009054906101000a900467ffffffffffffffff1667ffffffffffffffff16146101255767ffffffffffffffff8160000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d267ffffffffffffffff60405161011c9190610173565b60405180910390a15b50565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b600067ffffffffffffffff82169050919050565b61016d81610150565b82525050565b60006020820190506101886000830184610164565b92915050565b6149568061019d6000396000f3fe60806040526004361061026b5760003560e01c806395082d2511610144578063d4bcdfa1116100b6578063eb4c9e9b1161007a578063eb4c9e9b14610929578063ed54890d14610966578063efe9c9e2146109a8578063f0e1bb3e146109d1578063f2fde38b14610a0e578063f5b541a614610a375761026c565b8063d4bcdfa114610832578063d4ee651b1461085b578063d547741f14610884578063d871b0e3146108ad578063daf9c210146108eb5761026c565b8063a217fddf11610108578063a217fddf14610738578063a6be83dd14610763578063a734f06e1461078c578063c1075329146107b7578063c4428a89146107e0578063c4d66de8146108095761026c565b806395082d251461063f57806397ac4a251461066a5780639bb92c4e146106a75780639da64ac2146106d0578063a09686c41461070d5761026c565b80635a1e6ca1116101dd5780638952ac1e116101a15780638952ac1e146105215780638a5682991461053d5780638c65c81f146105685780638d52e555146105ae5780638da5cb5b146105d757806391d14854146106025761026c565b80635a1e6ca1146104525780635af6df4c1461047b5780636fed6940146104a4578063715018a6146104e15780637cf30c60146104f85761026c565b80632f2ff15d1161022f5780632f2ff15d1461037c57806336568abe146103a557806342683c67146103ce57806348c54b9d146103f95780634b60ce7714610410578063590e1ae31461043b5761026c565b806301ffc9a71461026e5780631c88705d146102ab578063248a9ca3146102d457806327ac0c581461031157806328f3e6581461033a5761026c565b5b005b34801561027a57600080fd5b5061029560048036038101906102909190613f46565b610a62565b6040516102a29190613f8e565b60405180910390f35b3480156102b757600080fd5b506102d260048036038101906102cd9190614007565b610a74565b005b3480156102e057600080fd5b506102fb60048036038101906102f6919061406a565b610bc4565b60405161030891906140a6565b60405180910390f35b34801561031d57600080fd5b5061033860048036038101906103339190614007565b610bf2565b005b34801561034657600080fd5b50610361600480360381019061035c91906140f7565b610c2e565b60405161037396959493929190614155565b60405180910390f35b34801561038857600080fd5b506103a3600480360381019061039e91906141b6565b610cfa565b005b3480156103b157600080fd5b506103cc60048036038101906103c791906141b6565b610d1c565b005b3480156103da57600080fd5b506103e3610d97565b6040516103f091906141f6565b60405180910390f35b34801561040557600080fd5b5061040e610d9d565b005b34801561041c57600080fd5b50610425610e3a565b6040516104329190614211565b60405180910390f35b34801561044757600080fd5b50610450610e60565b005b34801561045e57600080fd5b506104796004803603810190610474919061422c565b611366565b005b34801561048757600080fd5b506104a2600480360381019061049d9190614259565b6114b4565b005b3480156104b057600080fd5b506104cb60048036038101906104c6919061422c565b61178e565b6040516104d891906141f6565b60405180910390f35b3480156104ed57600080fd5b506104f66117a6565b005b34801561050457600080fd5b5061051f600480360381019061051a9190614300565b6117ba565b005b61053b60048036038101906105369190614340565b6118a9565b005b34801561054957600080fd5b506105526120de565b60405161055f91906141f6565b60405180910390f35b34801561057457600080fd5b5061058f600480360381019061058a919061422c565b6120e4565b6040516105a59a99989796959493929190614393565b60405180910390f35b3480156105ba57600080fd5b506105d560048036038101906105d09190614300565b612179565b005b3480156105e357600080fd5b506105ec612268565b6040516105f99190614211565b60405180910390f35b34801561060e57600080fd5b50610629600480360381019061062491906141b6565b6122a0565b6040516106369190613f8e565b60405180910390f35b34801561064b57600080fd5b50610654612319565b60405161066191906141f6565b60405180910390f35b34801561067657600080fd5b50610691600480360381019061068c919061422c565b612325565b60405161069e9190613f8e565b60405180910390f35b3480156106b357600080fd5b506106ce60048036038101906106c99190614300565b61241b565b005b3480156106dc57600080fd5b506106f760048036038101906106f29190614007565b61250a565b60405161070491906141f6565b60405180910390f35b34801561071957600080fd5b50610722612577565b60405161072f91906141f6565b60405180910390f35b34801561074457600080fd5b5061074d612581565b60405161075a91906140a6565b60405180910390f35b34801561076f57600080fd5b5061078a6004803603810190610785919061442f565b612588565b005b34801561079857600080fd5b506107a161288f565b6040516107ae9190614211565b60405180910390f35b3480156107c357600080fd5b506107de60048036038101906107d991906144bc565b612894565b005b3480156107ec57600080fd5b506108076004803603810190610802919061422c565b612b65565b005b34801561081557600080fd5b50610830600480360381019061082b9190614007565b612b72565b005b34801561083e57600080fd5b50610859600480360381019061085491906144bc565b612de9565b005b34801561086757600080fd5b50610882600480360381019061087d91906144bc565b612fc3565b005b34801561089057600080fd5b506108ab60048036038101906108a691906141b6565b61318e565b005b3480156108b957600080fd5b506108d460048036038101906108cf9190614007565b6131b0565b6040516108e29291906144fc565b60405180910390f35b3480156108f757600080fd5b50610912600480360381019061090d9190614007565b61324c565b604051610920929190614525565b60405180910390f35b34801561093557600080fd5b50610950600480360381019061094b9190614007565b61327d565b60405161095d91906141f6565b60405180910390f35b34801561097257600080fd5b5061098d600480360381019061098891906140f7565b613295565b60405161099f96959493929190614155565b60405180910390f35b3480156109b457600080fd5b506109cf60048036038101906109ca9190614007565b613318565b005b3480156109dd57600080fd5b506109f860048036038101906109f3919061422c565b61344c565b604051610a0591906141f6565b60405180910390f35b348015610a1a57600080fd5b50610a356004803603810190610a309190614007565b613464565b005b348015610a4357600080fd5b50610a4c6134ea565b604051610a5991906140a6565b60405180910390f35b6000610a6d8261350e565b9050919050565b7f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929610a9e81613588565b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16610b23576040517ff84835a000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fdd2e6d9f52cbe8f695939d018b7d4a216dc613a669876163ac548b916489d91760405160405180910390a25050565b600080610bcf61359c565b905080600001600084815260200190815260200160002060010154915050919050565b6000801b610bff81613588565b610c297f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929836135c4565b505050565b6000806000806000806000600260008a815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050806000015481600101548260020160009054906101000a900460ff168360020160019054906101000a900460ff168460020160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff168560030154965096509650965096509650509295509295509295565b610d0382610bc4565b610d0c81613588565b610d1683836135c4565b50505050565b610d246136c5565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610d88576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d9282826136cd565b505050565b60085481565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008103610e1b576040517f55842fea00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600182610e2a919061457d565b9050610e3681336137cf565b5050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008103610ede576040517f55842fea00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600182610eed919061457d565b90506001600082815260200190815260200160002060050160009054906101000a900460ff16610f49576040517f266f368500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600082815260200190815260200160002060050160039054906101000a900460ff16610fa3576040517f089c998700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006002600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816000015403611035576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060020160009054906101000a900460ff161561107e576040517f646cf55800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060020160019054906101000a900460ff16156110c7576040517fa85e6f1a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008160020160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008260030154905060018360020160016101000a81548160ff021916908315150217905550826000015460036000868152602001908152602001600020600082825461113d919061457d565b9250508190555082600001546008600082825461115a919061457d565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361123e5760003373ffffffffffffffffffffffffffffffffffffffff16826040516111bb906145e2565b60006040518083038185875af1925050503d80600081146111f8576040519150601f19603f3d011682016040523d82523d6000602084013e6111fd565b606091505b5050905080611238576040517f6d963f8800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506112f9565b60008273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b815260040161127b9291906145f7565b6020604051808303816000875af115801561129a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112be9190614635565b9050806112f7576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16857f1c26abe6289671e3a9d493647349673af828abb9dbadff1e81762387f7cd99a38460405161135791906141f6565b60405180910390a45050505050565b61136e613b7c565b6001600082815260200190815260200160002060050160009054906101000a900460ff166113c8576040517f266f368500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600082815260200190815260200160002060050160019054906101000a900460ff1615611423576040517f0f5eeea600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180600083815260200190815260200160002060050160016101000a81548160ff021916908315150217905550807fc5285db7d8a9c3a0ce0e8982ff9a84fe8df355101d9545735558c69efb4aad57600360008481526020019081526020016000205460046000858152602001908152602001600020546040516114a99291906144fc565b60405180910390a250565b6114bc613b7c565b428510156114f6576040517fb290253c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84841161152f576040517f38af65f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008303611569576040517fe2494de700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082036115a3576040517f0baf743200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008114806115b157508281115b156115e8576040517f90e3cae900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060075490506040518061014001604052808781526020018681526020018581526020018481526020018381526020016001151581526020016000151581526020016000151581526020016000151581526020016001151581525060016000838152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548160ff02191690831515021790555060e08201518160050160026101000a81548160ff0219169083151502179055506101008201518160050160036101000a81548160ff0219169083151502179055506101208201518160050160046101000a81548160ff0219169083151502179055509050506007600081548092919061174190614662565b9190505550807f21fb045299ceafb7a136c74ee07b22d481ee9bf37a85b2d8f20c59f83ada4133878787878760405161177e9594939291906146aa565b60405180910390a2505050505050565b60046020528060005260406000206000915090505481565b6117ae613b7c565b6117b86000613c03565b565b7f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b9296117e481613588565b6001600084815260200190815260200160002060050160009054906101000a900460ff1661183e576040517f266f368500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b816001600085815260200190815260200160002060050160036101000a81548160ff021916908315150217905550827f653b56ea3ea7dfba44234dbc807bac97a2a0adafb6d22427d818250375f1e9118360405161189c9190613f8e565b60405180910390a2505050565b6118b283612325565b6118e8576040517f3df07da500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff1661196d576040517ff84835a000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119e457600034036119dc576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b349050611a22565b60008203611a1e576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8190505b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008114158015611a835750600185611a7f91906146fd565b8114155b15611ae3576001600086815260200190815260200160002060050160049054906101000a900460ff16611ae2576040517f827a86b600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b60008060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015490506000670de0b6b3a76400008285611b409190614731565b611b4a91906147a2565b905060006002600089815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000828260000154611bb291906146fd565b9050600160008a815260200190815260200160002060040154811115611c04576040517f1cd861cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600083600360008c815260200190815260200160002054611c2591906146fd565b9050600160008b815260200190815260200160002060020154811115611c77576040517f397bb34300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614611d685760008973ffffffffffffffffffffffffffffffffffffffff166323b872dd33308b6040518463ffffffff1660e01b8152600401611cea939291906147d3565b6020604051808303816000875af1158015611d09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2d9190614635565b905080611d66576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b6000600160008c815260200190815260200160002060020154600160008d81526020019081526020016000206003015486611da39190614731565b611dad91906147a2565b90506000846000015403611e8557600460008c81526020019081526020016000206000815480929190611ddf90614662565b919050555060018b611df191906146fd565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550898460020160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550878460030181905550611f2f565b8973ffffffffffffffffffffffffffffffffffffffff168460020160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611efc5787846003016000828254611ef091906146fd565b92505081905550611f2e565b6040517ff84835a000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b84846000016000828254611f4391906146fd565b9250508190555080846001016000828254611f5e91906146fd565b9250508190555084600360008d81526020019081526020016000206000828254611f8891906146fd565b925050819055508460086000828254611fa191906146fd565b92505081905550600160008c815260200190815260200160002060020154600360008d815260200190815260200160002054106120675760018060008d815260200190815260200160002060050160016101000a81548160ff0219169083151502179055508a7fc5285db7d8a9c3a0ce0e8982ff9a84fe8df355101d9545735558c69efb4aad57600360008e815260200190815260200160002054600460008f81526020019081526020016000205460405161205e9291906144fc565b60405180910390a25b8973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff168c7fb479ec976a9860505652c0d9f5dc15bc5fbca1a55c3da9cabe662f1b6f8090d28b89866040516120c99392919061480a565b60405180910390a45050505050505050505050565b60075481565b60016020528060005260406000206000915090508060000154908060010154908060020154908060030154908060040154908060050160009054906101000a900460ff16908060050160019054906101000a900460ff16908060050160029054906101000a900460ff16908060050160039054906101000a900460ff16908060050160049054906101000a900460ff1690508a565b7f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b9296121a381613588565b6001600084815260200190815260200160002060050160009054906101000a900460ff166121fd576040517f266f368500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b816001600085815260200190815260200160002060050160046101000a81548160ff021916908315150217905550827f1c1c03453d1eefaa85a62e371adba496bc16fa6320bf5416b0af1249081ca84c8360405161225b9190613f8e565b60405180910390a2505050565b600080612273613cda565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b6000806122ab61359c565b905080600001600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1691505092915050565b670de0b6b3a764000081565b60006001600083815260200190815260200160002060050160009054906101000a900460ff166123585760009050612416565b6001600083815260200190815260200160002060050160019054906101000a900460ff161561238a5760009050612416565b60016000838152602001908152602001600020600001544210156123b15760009050612416565b60016000838152602001908152602001600020600101544211156123d85760009050612416565b60016000838152602001908152602001600020600201546003600084815260200190815260200160002054106124115760009050612416565b600190505b919050565b7f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b92961244581613588565b6001600084815260200190815260200160002060050160009054906101000a900460ff1661249f576040517f266f368500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b816001600085815260200190815260200160002060050160026101000a81548160ff021916908315150217905550827f74c19978ee48fa394fffde7cccc94793539daf917f2a8fd2d5e851409de3f7a0836040516124fd9190613f8e565b60405180910390a2505050565b600080600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008103612561576000915050612572565b60018161256e919061457d565b9150505b919050565b6000600754905090565b6000801b81565b612590613b7c565b6001600087815260200190815260200160002060050160009054906101000a900460ff166125ea576040517f266f368500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600087815260200190815260200160002060050160019054906101000a900460ff1615612645576040517f0f5eeea600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016000878152602001908152602001600020600001544210612694576040517f4eb5402b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b428510156126ce576040517fb290253c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b848411612707576040517f38af65f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008303612741576040517fe2494de700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000820361277b576040517f0baf743200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081148061278957508281115b156127c0576040517f90e3cae900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b846001600088815260200190815260200160002060000181905550836001600088815260200190815260200160002060010181905550826001600088815260200190815260200160002060020181905550816001600088815260200190815260200160002060030181905550806001600088815260200190815260200160002060040181905550857fe35865500052be0ea409d44d56e7f66a0e0728bab40a71f941ccd691b9159596868686868660405161287f9594939291906146aa565b60405180910390a2505050505050565b600081565b61289c613b7c565b600081036128d6576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036129ed5747811115612944576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff168260405161296a906145e2565b60006040518083038185875af1925050503d80600081146129a7576040519150601f19603f3d011682016040523d82523d6000602084013e6129ac565b606091505b50509050806129e7576040517f6d963f8800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50612b61565b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401612a289190614211565b602060405180830381865afa158015612a45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a699190614856565b905080821115612aa5576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33856040518363ffffffff1660e01b8152600401612ae29291906145f7565b6020604051808303816000875af1158015612b01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b259190614635565b905080612b5e576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505b5050565b612b6f81336137cf565b50565b6000612b7c613d02565b905060008160000160089054906101000a900460ff1615905060008260000160009054906101000a900467ffffffffffffffff1690506000808267ffffffffffffffff16148015612bca5750825b9050600060018367ffffffffffffffff16148015612bff575060003073ffffffffffffffffffffffffffffffffffffffff163b145b905081158015612c0d575080155b15612c44576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018560000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508315612c945760018560000160086101000a81548160ff0219169083151502179055505b612c9d33613d2a565b612ca5613d3e565b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603612d0b576040517f1eb00b0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b85600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612d596000801b336135c4565b50612d847f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929336135c4565b508315612de15760008560000160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d26001604051612dd891906148dc565b60405180910390a15b505050505050565b7f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929612e1381613588565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612e7c5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15612eb3576040517f1eb00b0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008203612eed576040517ff083859200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040518060400160405280600115158152602001838152506000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff021916908315150217905550602082015181600101559050508273ffffffffffffffffffffffffffffffffffffffff167fe184914670d9e097e90729e2a9159866b30b1203952f0586bedca1d6fcf130a883604051612fb691906141f6565b60405180910390a2505050565b7f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929612fed81613588565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16613072576040517ff84835a000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082036130ac576040517ff083859200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055508373ffffffffffffffffffffffffffffffffffffffff167f62e2c9c75b287778c0b58f1c1d83fa8f9978a33848e0b423735fd44f48ebe3c182856040516131809291906144fc565b60405180910390a250505050565b61319782610bc4565b6131a081613588565b6131aa83836136cd565b50505050565b60008060005b6007548110156132465760006002600083815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905080600001548461322491906146fd565b935080600101548361323691906146fd565b92505080806001019150506131b6565b50915091565b60006020528060005260406000206000915090508060000160009054906101000a900460ff16908060010154905082565b60056020528060005260406000206000915090505481565b6002602052816000526040600020602052806000526040600020600091509150508060000154908060010154908060020160009054906101000a900460ff16908060020160019054906101000a900460ff16908060020160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030154905086565b613320613b7c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603613386576040517f1eb00b0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f38b700f64059658d3f95b87d8db51f669197c89da3076d26d42bb8fb06159fa960405160405180910390a35050565b60036020528060005260406000206000915090505481565b61346c613b7c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036134de5760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016134d59190614211565b60405180910390fd5b6134e781613c03565b50565b7f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b92981565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480613581575061358082613d48565b5b9050919050565b613599816135946136c5565b613db2565b50565b60007f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800905090565b6000806135cf61359c565b90506135db84846122a0565b6136b957600181600001600086815260200190815260200160002060000160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506136556136c5565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506136bf565b60009150505b92915050565b600033905090565b6000806136d861359c565b90506136e484846122a0565b156137c357600081600001600086815260200190815260200160002060000160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061375f6136c5565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16857ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019150506137c9565b60009150505b92915050565b6001600083815260200190815260200160002060050160009054906101000a900460ff16613829576040517f266f368500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600083815260200190815260200160002060050160019054906101000a900460ff16158015613870575060016000838152602001908152602001600020600101544211155b156138a7576040517f3df07da500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600083815260200190815260200160002060050160029054906101000a900460ff16613901576040517fe2c858ee00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006002600084815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816000015403613993576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060020160009054906101000a900460ff16156139dc576040517f646cf55800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060020160019054906101000a900460ff1615613a25576040517fa85e6f1a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008160010154905060018260020160006101000a81548160ff0219169083151502179055506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85846040518363ffffffff1660e01b8152600401613aaa9291906145f7565b6020604051808303816000875af1158015613ac9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613aed9190614635565b905080613b26576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff16857f880f2ef2613b092f1a0a819f294155c98667eb294b7e6bf7a3810278142c1a1c84604051613b6d91906141f6565b60405180910390a35050505050565b613b846136c5565b73ffffffffffffffffffffffffffffffffffffffff16613ba2612268565b73ffffffffffffffffffffffffffffffffffffffff1614613c0157613bc56136c5565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401613bf89190614211565b60405180910390fd5b565b6000613c0d613cda565b905060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050828260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b60007f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300905090565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b613d32613e03565b613d3b81613e43565b50565b613d46613e03565b565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b613dbc82826122a0565b613dff5780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401613df69291906148f7565b60405180910390fd5b5050565b613e0b613ec9565b613e41576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b613e4b613e03565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603613ebd5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401613eb49190614211565b60405180910390fd5b613ec681613c03565b50565b6000613ed3613d02565b60000160089054906101000a900460ff16905090565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b613f2381613eee565b8114613f2e57600080fd5b50565b600081359050613f4081613f1a565b92915050565b600060208284031215613f5c57613f5b613ee9565b5b6000613f6a84828501613f31565b91505092915050565b60008115159050919050565b613f8881613f73565b82525050565b6000602082019050613fa36000830184613f7f565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613fd482613fa9565b9050919050565b613fe481613fc9565b8114613fef57600080fd5b50565b60008135905061400181613fdb565b92915050565b60006020828403121561401d5761401c613ee9565b5b600061402b84828501613ff2565b91505092915050565b6000819050919050565b61404781614034565b811461405257600080fd5b50565b6000813590506140648161403e565b92915050565b6000602082840312156140805761407f613ee9565b5b600061408e84828501614055565b91505092915050565b6140a081614034565b82525050565b60006020820190506140bb6000830184614097565b92915050565b6000819050919050565b6140d4816140c1565b81146140df57600080fd5b50565b6000813590506140f1816140cb565b92915050565b6000806040838503121561410e5761410d613ee9565b5b600061411c858286016140e2565b925050602061412d85828601613ff2565b9150509250929050565b614140816140c1565b82525050565b61414f81613fc9565b82525050565b600060c08201905061416a6000830189614137565b6141776020830188614137565b6141846040830187613f7f565b6141916060830186613f7f565b61419e6080830185614146565b6141ab60a0830184614137565b979650505050505050565b600080604083850312156141cd576141cc613ee9565b5b60006141db85828601614055565b92505060206141ec85828601613ff2565b9150509250929050565b600060208201905061420b6000830184614137565b92915050565b60006020820190506142266000830184614146565b92915050565b60006020828403121561424257614241613ee9565b5b6000614250848285016140e2565b91505092915050565b600080600080600060a0868803121561427557614274613ee9565b5b6000614283888289016140e2565b9550506020614294888289016140e2565b94505060406142a5888289016140e2565b93505060606142b6888289016140e2565b92505060806142c7888289016140e2565b9150509295509295909350565b6142dd81613f73565b81146142e857600080fd5b50565b6000813590506142fa816142d4565b92915050565b6000806040838503121561431757614316613ee9565b5b6000614325858286016140e2565b9250506020614336858286016142eb565b9150509250929050565b60008060006060848603121561435957614358613ee9565b5b6000614367868287016140e2565b935050602061437886828701613ff2565b9250506040614389868287016140e2565b9150509250925092565b6000610140820190506143a9600083018d614137565b6143b6602083018c614137565b6143c3604083018b614137565b6143d0606083018a614137565b6143dd6080830189614137565b6143ea60a0830188613f7f565b6143f760c0830187613f7f565b61440460e0830186613f7f565b614412610100830185613f7f565b614420610120830184613f7f565b9b9a5050505050505050505050565b60008060008060008060c0878903121561444c5761444b613ee9565b5b600061445a89828a016140e2565b965050602061446b89828a016140e2565b955050604061447c89828a016140e2565b945050606061448d89828a016140e2565b935050608061449e89828a016140e2565b92505060a06144af89828a016140e2565b9150509295509295509295565b600080604083850312156144d3576144d2613ee9565b5b60006144e185828601613ff2565b92505060206144f2858286016140e2565b9150509250929050565b60006040820190506145116000830185614137565b61451e6020830184614137565b9392505050565b600060408201905061453a6000830185613f7f565b6145476020830184614137565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614588826140c1565b9150614593836140c1565b92508282039050818111156145ab576145aa61454e565b5b92915050565b600081905092915050565b50565b60006145cc6000836145b1565b91506145d7826145bc565b600082019050919050565b60006145ed826145bf565b9150819050919050565b600060408201905061460c6000830185614146565b6146196020830184614137565b9392505050565b60008151905061462f816142d4565b92915050565b60006020828403121561464b5761464a613ee9565b5b600061465984828501614620565b91505092915050565b600061466d826140c1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361469f5761469e61454e565b5b600182019050919050565b600060a0820190506146bf6000830188614137565b6146cc6020830187614137565b6146d96040830186614137565b6146e66060830185614137565b6146f36080830184614137565b9695505050505050565b6000614708826140c1565b9150614713836140c1565b925082820190508082111561472b5761472a61454e565b5b92915050565b600061473c826140c1565b9150614747836140c1565b9250828202614755816140c1565b9150828204841483151761476c5761476b61454e565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006147ad826140c1565b91506147b8836140c1565b9250826147c8576147c7614773565b5b828204905092915050565b60006060820190506147e86000830186614146565b6147f56020830185614146565b6148026040830184614137565b949350505050565b600060608201905061481f6000830186614137565b61482c6020830185614137565b6148396040830184614137565b949350505050565b600081519050614850816140cb565b92915050565b60006020828403121561486c5761486b613ee9565b5b600061487a84828501614841565b91505092915050565b6000819050919050565b600067ffffffffffffffff82169050919050565b6000819050919050565b60006148c66148c16148bc84614883565b6148a1565b61488d565b9050919050565b6148d6816148ab565b82525050565b60006020820190506148f160008301846148cd565b92915050565b600060408201905061490c6000830185614146565b6149196020830184614097565b939250505056fea264697066735822122067cd1a53a4406a4ff96e0d045d7336688804c5331559439b9cb78198671d878264736f6c634300081c0033",
1516
- "deployedBytecode": "0x60806040526004361061026b5760003560e01c806395082d2511610144578063d4bcdfa1116100b6578063eb4c9e9b1161007a578063eb4c9e9b14610929578063ed54890d14610966578063efe9c9e2146109a8578063f0e1bb3e146109d1578063f2fde38b14610a0e578063f5b541a614610a375761026c565b8063d4bcdfa114610832578063d4ee651b1461085b578063d547741f14610884578063d871b0e3146108ad578063daf9c210146108eb5761026c565b8063a217fddf11610108578063a217fddf14610738578063a6be83dd14610763578063a734f06e1461078c578063c1075329146107b7578063c4428a89146107e0578063c4d66de8146108095761026c565b806395082d251461063f57806397ac4a251461066a5780639bb92c4e146106a75780639da64ac2146106d0578063a09686c41461070d5761026c565b80635a1e6ca1116101dd5780638952ac1e116101a15780638952ac1e146105215780638a5682991461053d5780638c65c81f146105685780638d52e555146105ae5780638da5cb5b146105d757806391d14854146106025761026c565b80635a1e6ca1146104525780635af6df4c1461047b5780636fed6940146104a4578063715018a6146104e15780637cf30c60146104f85761026c565b80632f2ff15d1161022f5780632f2ff15d1461037c57806336568abe146103a557806342683c67146103ce57806348c54b9d146103f95780634b60ce7714610410578063590e1ae31461043b5761026c565b806301ffc9a71461026e5780631c88705d146102ab578063248a9ca3146102d457806327ac0c581461031157806328f3e6581461033a5761026c565b5b005b34801561027a57600080fd5b5061029560048036038101906102909190613f46565b610a62565b6040516102a29190613f8e565b60405180910390f35b3480156102b757600080fd5b506102d260048036038101906102cd9190614007565b610a74565b005b3480156102e057600080fd5b506102fb60048036038101906102f6919061406a565b610bc4565b60405161030891906140a6565b60405180910390f35b34801561031d57600080fd5b5061033860048036038101906103339190614007565b610bf2565b005b34801561034657600080fd5b50610361600480360381019061035c91906140f7565b610c2e565b60405161037396959493929190614155565b60405180910390f35b34801561038857600080fd5b506103a3600480360381019061039e91906141b6565b610cfa565b005b3480156103b157600080fd5b506103cc60048036038101906103c791906141b6565b610d1c565b005b3480156103da57600080fd5b506103e3610d97565b6040516103f091906141f6565b60405180910390f35b34801561040557600080fd5b5061040e610d9d565b005b34801561041c57600080fd5b50610425610e3a565b6040516104329190614211565b60405180910390f35b34801561044757600080fd5b50610450610e60565b005b34801561045e57600080fd5b506104796004803603810190610474919061422c565b611366565b005b34801561048757600080fd5b506104a2600480360381019061049d9190614259565b6114b4565b005b3480156104b057600080fd5b506104cb60048036038101906104c6919061422c565b61178e565b6040516104d891906141f6565b60405180910390f35b3480156104ed57600080fd5b506104f66117a6565b005b34801561050457600080fd5b5061051f600480360381019061051a9190614300565b6117ba565b005b61053b60048036038101906105369190614340565b6118a9565b005b34801561054957600080fd5b506105526120de565b60405161055f91906141f6565b60405180910390f35b34801561057457600080fd5b5061058f600480360381019061058a919061422c565b6120e4565b6040516105a59a99989796959493929190614393565b60405180910390f35b3480156105ba57600080fd5b506105d560048036038101906105d09190614300565b612179565b005b3480156105e357600080fd5b506105ec612268565b6040516105f99190614211565b60405180910390f35b34801561060e57600080fd5b50610629600480360381019061062491906141b6565b6122a0565b6040516106369190613f8e565b60405180910390f35b34801561064b57600080fd5b50610654612319565b60405161066191906141f6565b60405180910390f35b34801561067657600080fd5b50610691600480360381019061068c919061422c565b612325565b60405161069e9190613f8e565b60405180910390f35b3480156106b357600080fd5b506106ce60048036038101906106c99190614300565b61241b565b005b3480156106dc57600080fd5b506106f760048036038101906106f29190614007565b61250a565b60405161070491906141f6565b60405180910390f35b34801561071957600080fd5b50610722612577565b60405161072f91906141f6565b60405180910390f35b34801561074457600080fd5b5061074d612581565b60405161075a91906140a6565b60405180910390f35b34801561076f57600080fd5b5061078a6004803603810190610785919061442f565b612588565b005b34801561079857600080fd5b506107a161288f565b6040516107ae9190614211565b60405180910390f35b3480156107c357600080fd5b506107de60048036038101906107d991906144bc565b612894565b005b3480156107ec57600080fd5b506108076004803603810190610802919061422c565b612b65565b005b34801561081557600080fd5b50610830600480360381019061082b9190614007565b612b72565b005b34801561083e57600080fd5b50610859600480360381019061085491906144bc565b612de9565b005b34801561086757600080fd5b50610882600480360381019061087d91906144bc565b612fc3565b005b34801561089057600080fd5b506108ab60048036038101906108a691906141b6565b61318e565b005b3480156108b957600080fd5b506108d460048036038101906108cf9190614007565b6131b0565b6040516108e29291906144fc565b60405180910390f35b3480156108f757600080fd5b50610912600480360381019061090d9190614007565b61324c565b604051610920929190614525565b60405180910390f35b34801561093557600080fd5b50610950600480360381019061094b9190614007565b61327d565b60405161095d91906141f6565b60405180910390f35b34801561097257600080fd5b5061098d600480360381019061098891906140f7565b613295565b60405161099f96959493929190614155565b60405180910390f35b3480156109b457600080fd5b506109cf60048036038101906109ca9190614007565b613318565b005b3480156109dd57600080fd5b506109f860048036038101906109f3919061422c565b61344c565b604051610a0591906141f6565b60405180910390f35b348015610a1a57600080fd5b50610a356004803603810190610a309190614007565b613464565b005b348015610a4357600080fd5b50610a4c6134ea565b604051610a5991906140a6565b60405180910390f35b6000610a6d8261350e565b9050919050565b7f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929610a9e81613588565b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16610b23576040517ff84835a000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fdd2e6d9f52cbe8f695939d018b7d4a216dc613a669876163ac548b916489d91760405160405180910390a25050565b600080610bcf61359c565b905080600001600084815260200190815260200160002060010154915050919050565b6000801b610bff81613588565b610c297f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929836135c4565b505050565b6000806000806000806000600260008a815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050806000015481600101548260020160009054906101000a900460ff168360020160019054906101000a900460ff168460020160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff168560030154965096509650965096509650509295509295509295565b610d0382610bc4565b610d0c81613588565b610d1683836135c4565b50505050565b610d246136c5565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610d88576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d9282826136cd565b505050565b60085481565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008103610e1b576040517f55842fea00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600182610e2a919061457d565b9050610e3681336137cf565b5050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008103610ede576040517f55842fea00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600182610eed919061457d565b90506001600082815260200190815260200160002060050160009054906101000a900460ff16610f49576040517f266f368500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600082815260200190815260200160002060050160039054906101000a900460ff16610fa3576040517f089c998700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006002600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816000015403611035576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060020160009054906101000a900460ff161561107e576040517f646cf55800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060020160019054906101000a900460ff16156110c7576040517fa85e6f1a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008160020160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008260030154905060018360020160016101000a81548160ff021916908315150217905550826000015460036000868152602001908152602001600020600082825461113d919061457d565b9250508190555082600001546008600082825461115a919061457d565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361123e5760003373ffffffffffffffffffffffffffffffffffffffff16826040516111bb906145e2565b60006040518083038185875af1925050503d80600081146111f8576040519150601f19603f3d011682016040523d82523d6000602084013e6111fd565b606091505b5050905080611238576040517f6d963f8800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506112f9565b60008273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b815260040161127b9291906145f7565b6020604051808303816000875af115801561129a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112be9190614635565b9050806112f7576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16857f1c26abe6289671e3a9d493647349673af828abb9dbadff1e81762387f7cd99a38460405161135791906141f6565b60405180910390a45050505050565b61136e613b7c565b6001600082815260200190815260200160002060050160009054906101000a900460ff166113c8576040517f266f368500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600082815260200190815260200160002060050160019054906101000a900460ff1615611423576040517f0f5eeea600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180600083815260200190815260200160002060050160016101000a81548160ff021916908315150217905550807fc5285db7d8a9c3a0ce0e8982ff9a84fe8df355101d9545735558c69efb4aad57600360008481526020019081526020016000205460046000858152602001908152602001600020546040516114a99291906144fc565b60405180910390a250565b6114bc613b7c565b428510156114f6576040517fb290253c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84841161152f576040517f38af65f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008303611569576040517fe2494de700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082036115a3576040517f0baf743200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008114806115b157508281115b156115e8576040517f90e3cae900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060075490506040518061014001604052808781526020018681526020018581526020018481526020018381526020016001151581526020016000151581526020016000151581526020016000151581526020016001151581525060016000838152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548160ff02191690831515021790555060e08201518160050160026101000a81548160ff0219169083151502179055506101008201518160050160036101000a81548160ff0219169083151502179055506101208201518160050160046101000a81548160ff0219169083151502179055509050506007600081548092919061174190614662565b9190505550807f21fb045299ceafb7a136c74ee07b22d481ee9bf37a85b2d8f20c59f83ada4133878787878760405161177e9594939291906146aa565b60405180910390a2505050505050565b60046020528060005260406000206000915090505481565b6117ae613b7c565b6117b86000613c03565b565b7f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b9296117e481613588565b6001600084815260200190815260200160002060050160009054906101000a900460ff1661183e576040517f266f368500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b816001600085815260200190815260200160002060050160036101000a81548160ff021916908315150217905550827f653b56ea3ea7dfba44234dbc807bac97a2a0adafb6d22427d818250375f1e9118360405161189c9190613f8e565b60405180910390a2505050565b6118b283612325565b6118e8576040517f3df07da500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff1661196d576040517ff84835a000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119e457600034036119dc576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b349050611a22565b60008203611a1e576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8190505b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008114158015611a835750600185611a7f91906146fd565b8114155b15611ae3576001600086815260200190815260200160002060050160049054906101000a900460ff16611ae2576040517f827a86b600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b60008060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015490506000670de0b6b3a76400008285611b409190614731565b611b4a91906147a2565b905060006002600089815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000828260000154611bb291906146fd565b9050600160008a815260200190815260200160002060040154811115611c04576040517f1cd861cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600083600360008c815260200190815260200160002054611c2591906146fd565b9050600160008b815260200190815260200160002060020154811115611c77576040517f397bb34300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614611d685760008973ffffffffffffffffffffffffffffffffffffffff166323b872dd33308b6040518463ffffffff1660e01b8152600401611cea939291906147d3565b6020604051808303816000875af1158015611d09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2d9190614635565b905080611d66576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b6000600160008c815260200190815260200160002060020154600160008d81526020019081526020016000206003015486611da39190614731565b611dad91906147a2565b90506000846000015403611e8557600460008c81526020019081526020016000206000815480929190611ddf90614662565b919050555060018b611df191906146fd565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550898460020160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550878460030181905550611f2f565b8973ffffffffffffffffffffffffffffffffffffffff168460020160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611efc5787846003016000828254611ef091906146fd565b92505081905550611f2e565b6040517ff84835a000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b84846000016000828254611f4391906146fd565b9250508190555080846001016000828254611f5e91906146fd565b9250508190555084600360008d81526020019081526020016000206000828254611f8891906146fd565b925050819055508460086000828254611fa191906146fd565b92505081905550600160008c815260200190815260200160002060020154600360008d815260200190815260200160002054106120675760018060008d815260200190815260200160002060050160016101000a81548160ff0219169083151502179055508a7fc5285db7d8a9c3a0ce0e8982ff9a84fe8df355101d9545735558c69efb4aad57600360008e815260200190815260200160002054600460008f81526020019081526020016000205460405161205e9291906144fc565b60405180910390a25b8973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff168c7fb479ec976a9860505652c0d9f5dc15bc5fbca1a55c3da9cabe662f1b6f8090d28b89866040516120c99392919061480a565b60405180910390a45050505050505050505050565b60075481565b60016020528060005260406000206000915090508060000154908060010154908060020154908060030154908060040154908060050160009054906101000a900460ff16908060050160019054906101000a900460ff16908060050160029054906101000a900460ff16908060050160039054906101000a900460ff16908060050160049054906101000a900460ff1690508a565b7f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b9296121a381613588565b6001600084815260200190815260200160002060050160009054906101000a900460ff166121fd576040517f266f368500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b816001600085815260200190815260200160002060050160046101000a81548160ff021916908315150217905550827f1c1c03453d1eefaa85a62e371adba496bc16fa6320bf5416b0af1249081ca84c8360405161225b9190613f8e565b60405180910390a2505050565b600080612273613cda565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b6000806122ab61359c565b905080600001600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1691505092915050565b670de0b6b3a764000081565b60006001600083815260200190815260200160002060050160009054906101000a900460ff166123585760009050612416565b6001600083815260200190815260200160002060050160019054906101000a900460ff161561238a5760009050612416565b60016000838152602001908152602001600020600001544210156123b15760009050612416565b60016000838152602001908152602001600020600101544211156123d85760009050612416565b60016000838152602001908152602001600020600201546003600084815260200190815260200160002054106124115760009050612416565b600190505b919050565b7f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b92961244581613588565b6001600084815260200190815260200160002060050160009054906101000a900460ff1661249f576040517f266f368500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b816001600085815260200190815260200160002060050160026101000a81548160ff021916908315150217905550827f74c19978ee48fa394fffde7cccc94793539daf917f2a8fd2d5e851409de3f7a0836040516124fd9190613f8e565b60405180910390a2505050565b600080600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008103612561576000915050612572565b60018161256e919061457d565b9150505b919050565b6000600754905090565b6000801b81565b612590613b7c565b6001600087815260200190815260200160002060050160009054906101000a900460ff166125ea576040517f266f368500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600087815260200190815260200160002060050160019054906101000a900460ff1615612645576040517f0f5eeea600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016000878152602001908152602001600020600001544210612694576040517f4eb5402b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b428510156126ce576040517fb290253c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b848411612707576040517f38af65f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008303612741576040517fe2494de700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000820361277b576040517f0baf743200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081148061278957508281115b156127c0576040517f90e3cae900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b846001600088815260200190815260200160002060000181905550836001600088815260200190815260200160002060010181905550826001600088815260200190815260200160002060020181905550816001600088815260200190815260200160002060030181905550806001600088815260200190815260200160002060040181905550857fe35865500052be0ea409d44d56e7f66a0e0728bab40a71f941ccd691b9159596868686868660405161287f9594939291906146aa565b60405180910390a2505050505050565b600081565b61289c613b7c565b600081036128d6576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036129ed5747811115612944576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff168260405161296a906145e2565b60006040518083038185875af1925050503d80600081146129a7576040519150601f19603f3d011682016040523d82523d6000602084013e6129ac565b606091505b50509050806129e7576040517f6d963f8800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50612b61565b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401612a289190614211565b602060405180830381865afa158015612a45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a699190614856565b905080821115612aa5576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33856040518363ffffffff1660e01b8152600401612ae29291906145f7565b6020604051808303816000875af1158015612b01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b259190614635565b905080612b5e576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505b5050565b612b6f81336137cf565b50565b6000612b7c613d02565b905060008160000160089054906101000a900460ff1615905060008260000160009054906101000a900467ffffffffffffffff1690506000808267ffffffffffffffff16148015612bca5750825b9050600060018367ffffffffffffffff16148015612bff575060003073ffffffffffffffffffffffffffffffffffffffff163b145b905081158015612c0d575080155b15612c44576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018560000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508315612c945760018560000160086101000a81548160ff0219169083151502179055505b612c9d33613d2a565b612ca5613d3e565b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603612d0b576040517f1eb00b0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b85600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612d596000801b336135c4565b50612d847f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929336135c4565b508315612de15760008560000160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d26001604051612dd891906148dc565b60405180910390a15b505050505050565b7f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929612e1381613588565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612e7c5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15612eb3576040517f1eb00b0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008203612eed576040517ff083859200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040518060400160405280600115158152602001838152506000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff021916908315150217905550602082015181600101559050508273ffffffffffffffffffffffffffffffffffffffff167fe184914670d9e097e90729e2a9159866b30b1203952f0586bedca1d6fcf130a883604051612fb691906141f6565b60405180910390a2505050565b7f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929612fed81613588565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16613072576040517ff84835a000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082036130ac576040517ff083859200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055508373ffffffffffffffffffffffffffffffffffffffff167f62e2c9c75b287778c0b58f1c1d83fa8f9978a33848e0b423735fd44f48ebe3c182856040516131809291906144fc565b60405180910390a250505050565b61319782610bc4565b6131a081613588565b6131aa83836136cd565b50505050565b60008060005b6007548110156132465760006002600083815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905080600001548461322491906146fd565b935080600101548361323691906146fd565b92505080806001019150506131b6565b50915091565b60006020528060005260406000206000915090508060000160009054906101000a900460ff16908060010154905082565b60056020528060005260406000206000915090505481565b6002602052816000526040600020602052806000526040600020600091509150508060000154908060010154908060020160009054906101000a900460ff16908060020160019054906101000a900460ff16908060020160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030154905086565b613320613b7c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603613386576040517f1eb00b0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f38b700f64059658d3f95b87d8db51f669197c89da3076d26d42bb8fb06159fa960405160405180910390a35050565b60036020528060005260406000206000915090505481565b61346c613b7c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036134de5760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016134d59190614211565b60405180910390fd5b6134e781613c03565b50565b7f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b92981565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480613581575061358082613d48565b5b9050919050565b613599816135946136c5565b613db2565b50565b60007f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800905090565b6000806135cf61359c565b90506135db84846122a0565b6136b957600181600001600086815260200190815260200160002060000160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506136556136c5565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506136bf565b60009150505b92915050565b600033905090565b6000806136d861359c565b90506136e484846122a0565b156137c357600081600001600086815260200190815260200160002060000160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061375f6136c5565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16857ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019150506137c9565b60009150505b92915050565b6001600083815260200190815260200160002060050160009054906101000a900460ff16613829576040517f266f368500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600083815260200190815260200160002060050160019054906101000a900460ff16158015613870575060016000838152602001908152602001600020600101544211155b156138a7576040517f3df07da500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600083815260200190815260200160002060050160029054906101000a900460ff16613901576040517fe2c858ee00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006002600084815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816000015403613993576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060020160009054906101000a900460ff16156139dc576040517f646cf55800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060020160019054906101000a900460ff1615613a25576040517fa85e6f1a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008160010154905060018260020160006101000a81548160ff0219169083151502179055506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85846040518363ffffffff1660e01b8152600401613aaa9291906145f7565b6020604051808303816000875af1158015613ac9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613aed9190614635565b905080613b26576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff16857f880f2ef2613b092f1a0a819f294155c98667eb294b7e6bf7a3810278142c1a1c84604051613b6d91906141f6565b60405180910390a35050505050565b613b846136c5565b73ffffffffffffffffffffffffffffffffffffffff16613ba2612268565b73ffffffffffffffffffffffffffffffffffffffff1614613c0157613bc56136c5565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401613bf89190614211565b60405180910390fd5b565b6000613c0d613cda565b905060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050828260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b60007f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300905090565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b613d32613e03565b613d3b81613e43565b50565b613d46613e03565b565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b613dbc82826122a0565b613dff5780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401613df69291906148f7565b60405180910390fd5b5050565b613e0b613ec9565b613e41576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b613e4b613e03565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603613ebd5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401613eb49190614211565b60405180910390fd5b613ec681613c03565b50565b6000613ed3613d02565b60000160089054906101000a900460ff16905090565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b613f2381613eee565b8114613f2e57600080fd5b50565b600081359050613f4081613f1a565b92915050565b600060208284031215613f5c57613f5b613ee9565b5b6000613f6a84828501613f31565b91505092915050565b60008115159050919050565b613f8881613f73565b82525050565b6000602082019050613fa36000830184613f7f565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613fd482613fa9565b9050919050565b613fe481613fc9565b8114613fef57600080fd5b50565b60008135905061400181613fdb565b92915050565b60006020828403121561401d5761401c613ee9565b5b600061402b84828501613ff2565b91505092915050565b6000819050919050565b61404781614034565b811461405257600080fd5b50565b6000813590506140648161403e565b92915050565b6000602082840312156140805761407f613ee9565b5b600061408e84828501614055565b91505092915050565b6140a081614034565b82525050565b60006020820190506140bb6000830184614097565b92915050565b6000819050919050565b6140d4816140c1565b81146140df57600080fd5b50565b6000813590506140f1816140cb565b92915050565b6000806040838503121561410e5761410d613ee9565b5b600061411c858286016140e2565b925050602061412d85828601613ff2565b9150509250929050565b614140816140c1565b82525050565b61414f81613fc9565b82525050565b600060c08201905061416a6000830189614137565b6141776020830188614137565b6141846040830187613f7f565b6141916060830186613f7f565b61419e6080830185614146565b6141ab60a0830184614137565b979650505050505050565b600080604083850312156141cd576141cc613ee9565b5b60006141db85828601614055565b92505060206141ec85828601613ff2565b9150509250929050565b600060208201905061420b6000830184614137565b92915050565b60006020820190506142266000830184614146565b92915050565b60006020828403121561424257614241613ee9565b5b6000614250848285016140e2565b91505092915050565b600080600080600060a0868803121561427557614274613ee9565b5b6000614283888289016140e2565b9550506020614294888289016140e2565b94505060406142a5888289016140e2565b93505060606142b6888289016140e2565b92505060806142c7888289016140e2565b9150509295509295909350565b6142dd81613f73565b81146142e857600080fd5b50565b6000813590506142fa816142d4565b92915050565b6000806040838503121561431757614316613ee9565b5b6000614325858286016140e2565b9250506020614336858286016142eb565b9150509250929050565b60008060006060848603121561435957614358613ee9565b5b6000614367868287016140e2565b935050602061437886828701613ff2565b9250506040614389868287016140e2565b9150509250925092565b6000610140820190506143a9600083018d614137565b6143b6602083018c614137565b6143c3604083018b614137565b6143d0606083018a614137565b6143dd6080830189614137565b6143ea60a0830188613f7f565b6143f760c0830187613f7f565b61440460e0830186613f7f565b614412610100830185613f7f565b614420610120830184613f7f565b9b9a5050505050505050505050565b60008060008060008060c0878903121561444c5761444b613ee9565b5b600061445a89828a016140e2565b965050602061446b89828a016140e2565b955050604061447c89828a016140e2565b945050606061448d89828a016140e2565b935050608061449e89828a016140e2565b92505060a06144af89828a016140e2565b9150509295509295509295565b600080604083850312156144d3576144d2613ee9565b5b60006144e185828601613ff2565b92505060206144f2858286016140e2565b9150509250929050565b60006040820190506145116000830185614137565b61451e6020830184614137565b9392505050565b600060408201905061453a6000830185613f7f565b6145476020830184614137565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614588826140c1565b9150614593836140c1565b92508282039050818111156145ab576145aa61454e565b5b92915050565b600081905092915050565b50565b60006145cc6000836145b1565b91506145d7826145bc565b600082019050919050565b60006145ed826145bf565b9150819050919050565b600060408201905061460c6000830185614146565b6146196020830184614137565b9392505050565b60008151905061462f816142d4565b92915050565b60006020828403121561464b5761464a613ee9565b5b600061465984828501614620565b91505092915050565b600061466d826140c1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361469f5761469e61454e565b5b600182019050919050565b600060a0820190506146bf6000830188614137565b6146cc6020830187614137565b6146d96040830186614137565b6146e66060830185614137565b6146f36080830184614137565b9695505050505050565b6000614708826140c1565b9150614713836140c1565b925082820190508082111561472b5761472a61454e565b5b92915050565b600061473c826140c1565b9150614747836140c1565b9250828202614755816140c1565b9150828204841483151761476c5761476b61454e565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006147ad826140c1565b91506147b8836140c1565b9250826147c8576147c7614773565b5b828204905092915050565b60006060820190506147e86000830186614146565b6147f56020830185614146565b6148026040830184614137565b949350505050565b600060608201905061481f6000830186614137565b61482c6020830185614137565b6148396040830184614137565b949350505050565b600081519050614850816140cb565b92915050565b60006020828403121561486c5761486b613ee9565b5b600061487a84828501614841565b91505092915050565b6000819050919050565b600067ffffffffffffffff82169050919050565b6000819050919050565b60006148c66148c16148bc84614883565b6148a1565b61488d565b9050919050565b6148d6816148ab565b82525050565b60006020820190506148f160008301846148cd565b92915050565b600060408201905061490c6000830185614146565b6149196020830184614097565b939250505056fea264697066735822122067cd1a53a4406a4ff96e0d045d7336688804c5331559439b9cb78198671d878264736f6c634300081c0033",
1517
- "linkReferences": {},
1518
- "deployedLinkReferences": {}
1519
- }