@paulstinchcombe/gasless-nft-tx 0.11.3 → 0.12.0

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