@bananapus/omnichain-deployers-v6 1.0.0 → 1.1.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.
@@ -0,0 +1,3506 @@
1
+ {
2
+ "format": "sphinx-sol-ct-artifact-1",
3
+ "address": "0xb853758a70a6b4216c09f1d071ea2344aba0a34f",
4
+ "sourceName": "node_modules/@bananapus/omnichain-deployers-v6/src/JBOmnichainDeployer.sol",
5
+ "contractName": "JBOmnichainDeployer",
6
+ "chainId": "0xa4b1",
7
+ "abi": [
8
+ {
9
+ "type": "constructor",
10
+ "inputs": [
11
+ {
12
+ "name": "suckerRegistry",
13
+ "type": "address",
14
+ "internalType": "contract IJBSuckerRegistry"
15
+ },
16
+ {
17
+ "name": "hookDeployer",
18
+ "type": "address",
19
+ "internalType": "contract IJB721TiersHookDeployer"
20
+ },
21
+ {
22
+ "name": "permissions",
23
+ "type": "address",
24
+ "internalType": "contract IJBPermissions"
25
+ },
26
+ {
27
+ "name": "controller",
28
+ "type": "address",
29
+ "internalType": "contract IJBController"
30
+ },
31
+ {
32
+ "name": "trustedForwarder",
33
+ "type": "address",
34
+ "internalType": "address"
35
+ }
36
+ ],
37
+ "stateMutability": "nonpayable"
38
+ },
39
+ {
40
+ "type": "function",
41
+ "name": "CONTROLLER",
42
+ "inputs": [],
43
+ "outputs": [
44
+ {
45
+ "name": "",
46
+ "type": "address",
47
+ "internalType": "contract IJBController"
48
+ }
49
+ ],
50
+ "stateMutability": "view"
51
+ },
52
+ {
53
+ "type": "function",
54
+ "name": "DIRECTORY",
55
+ "inputs": [],
56
+ "outputs": [
57
+ {
58
+ "name": "",
59
+ "type": "address",
60
+ "internalType": "contract IJBDirectory"
61
+ }
62
+ ],
63
+ "stateMutability": "view"
64
+ },
65
+ {
66
+ "type": "function",
67
+ "name": "HOOK_DEPLOYER",
68
+ "inputs": [],
69
+ "outputs": [
70
+ {
71
+ "name": "",
72
+ "type": "address",
73
+ "internalType": "contract IJB721TiersHookDeployer"
74
+ }
75
+ ],
76
+ "stateMutability": "view"
77
+ },
78
+ {
79
+ "type": "function",
80
+ "name": "PERMISSIONS",
81
+ "inputs": [],
82
+ "outputs": [
83
+ {
84
+ "name": "",
85
+ "type": "address",
86
+ "internalType": "contract IJBPermissions"
87
+ }
88
+ ],
89
+ "stateMutability": "view"
90
+ },
91
+ {
92
+ "type": "function",
93
+ "name": "PROJECTS",
94
+ "inputs": [],
95
+ "outputs": [
96
+ {
97
+ "name": "",
98
+ "type": "address",
99
+ "internalType": "contract IJBProjects"
100
+ }
101
+ ],
102
+ "stateMutability": "view"
103
+ },
104
+ {
105
+ "type": "function",
106
+ "name": "SUCKER_REGISTRY",
107
+ "inputs": [],
108
+ "outputs": [
109
+ {
110
+ "name": "",
111
+ "type": "address",
112
+ "internalType": "contract IJBSuckerRegistry"
113
+ }
114
+ ],
115
+ "stateMutability": "view"
116
+ },
117
+ {
118
+ "type": "function",
119
+ "name": "beforeCashOutRecordedWith",
120
+ "inputs": [
121
+ {
122
+ "name": "context",
123
+ "type": "tuple",
124
+ "internalType": "struct JBBeforeCashOutRecordedContext",
125
+ "components": [
126
+ {
127
+ "name": "terminal",
128
+ "type": "address",
129
+ "internalType": "address"
130
+ },
131
+ {
132
+ "name": "holder",
133
+ "type": "address",
134
+ "internalType": "address"
135
+ },
136
+ {
137
+ "name": "projectId",
138
+ "type": "uint256",
139
+ "internalType": "uint256"
140
+ },
141
+ {
142
+ "name": "rulesetId",
143
+ "type": "uint256",
144
+ "internalType": "uint256"
145
+ },
146
+ {
147
+ "name": "cashOutCount",
148
+ "type": "uint256",
149
+ "internalType": "uint256"
150
+ },
151
+ {
152
+ "name": "totalSupply",
153
+ "type": "uint256",
154
+ "internalType": "uint256"
155
+ },
156
+ {
157
+ "name": "surplus",
158
+ "type": "tuple",
159
+ "internalType": "struct JBTokenAmount",
160
+ "components": [
161
+ {
162
+ "name": "token",
163
+ "type": "address",
164
+ "internalType": "address"
165
+ },
166
+ {
167
+ "name": "decimals",
168
+ "type": "uint8",
169
+ "internalType": "uint8"
170
+ },
171
+ {
172
+ "name": "currency",
173
+ "type": "uint32",
174
+ "internalType": "uint32"
175
+ },
176
+ {
177
+ "name": "value",
178
+ "type": "uint256",
179
+ "internalType": "uint256"
180
+ }
181
+ ]
182
+ },
183
+ {
184
+ "name": "scopeCashOutsToLocalBalances",
185
+ "type": "bool",
186
+ "internalType": "bool"
187
+ },
188
+ {
189
+ "name": "cashOutTaxRate",
190
+ "type": "uint256",
191
+ "internalType": "uint256"
192
+ },
193
+ {
194
+ "name": "beneficiaryIsFeeless",
195
+ "type": "bool",
196
+ "internalType": "bool"
197
+ },
198
+ {
199
+ "name": "metadata",
200
+ "type": "bytes",
201
+ "internalType": "bytes"
202
+ }
203
+ ]
204
+ }
205
+ ],
206
+ "outputs": [
207
+ {
208
+ "name": "cashOutTaxRate",
209
+ "type": "uint256",
210
+ "internalType": "uint256"
211
+ },
212
+ {
213
+ "name": "cashOutCount",
214
+ "type": "uint256",
215
+ "internalType": "uint256"
216
+ },
217
+ {
218
+ "name": "totalSupply",
219
+ "type": "uint256",
220
+ "internalType": "uint256"
221
+ },
222
+ {
223
+ "name": "effectiveSurplusValue",
224
+ "type": "uint256",
225
+ "internalType": "uint256"
226
+ },
227
+ {
228
+ "name": "hookSpecifications",
229
+ "type": "tuple[]",
230
+ "internalType": "struct JBCashOutHookSpecification[]",
231
+ "components": [
232
+ {
233
+ "name": "hook",
234
+ "type": "address",
235
+ "internalType": "contract IJBCashOutHook"
236
+ },
237
+ {
238
+ "name": "noop",
239
+ "type": "bool",
240
+ "internalType": "bool"
241
+ },
242
+ {
243
+ "name": "amount",
244
+ "type": "uint256",
245
+ "internalType": "uint256"
246
+ },
247
+ {
248
+ "name": "metadata",
249
+ "type": "bytes",
250
+ "internalType": "bytes"
251
+ }
252
+ ]
253
+ }
254
+ ],
255
+ "stateMutability": "view"
256
+ },
257
+ {
258
+ "type": "function",
259
+ "name": "beforePayRecordedWith",
260
+ "inputs": [
261
+ {
262
+ "name": "context",
263
+ "type": "tuple",
264
+ "internalType": "struct JBBeforePayRecordedContext",
265
+ "components": [
266
+ {
267
+ "name": "terminal",
268
+ "type": "address",
269
+ "internalType": "address"
270
+ },
271
+ {
272
+ "name": "payer",
273
+ "type": "address",
274
+ "internalType": "address"
275
+ },
276
+ {
277
+ "name": "amount",
278
+ "type": "tuple",
279
+ "internalType": "struct JBTokenAmount",
280
+ "components": [
281
+ {
282
+ "name": "token",
283
+ "type": "address",
284
+ "internalType": "address"
285
+ },
286
+ {
287
+ "name": "decimals",
288
+ "type": "uint8",
289
+ "internalType": "uint8"
290
+ },
291
+ {
292
+ "name": "currency",
293
+ "type": "uint32",
294
+ "internalType": "uint32"
295
+ },
296
+ {
297
+ "name": "value",
298
+ "type": "uint256",
299
+ "internalType": "uint256"
300
+ }
301
+ ]
302
+ },
303
+ {
304
+ "name": "projectId",
305
+ "type": "uint256",
306
+ "internalType": "uint256"
307
+ },
308
+ {
309
+ "name": "rulesetId",
310
+ "type": "uint256",
311
+ "internalType": "uint256"
312
+ },
313
+ {
314
+ "name": "beneficiary",
315
+ "type": "address",
316
+ "internalType": "address"
317
+ },
318
+ {
319
+ "name": "weight",
320
+ "type": "uint256",
321
+ "internalType": "uint256"
322
+ },
323
+ {
324
+ "name": "reservedPercent",
325
+ "type": "uint256",
326
+ "internalType": "uint256"
327
+ },
328
+ {
329
+ "name": "metadata",
330
+ "type": "bytes",
331
+ "internalType": "bytes"
332
+ }
333
+ ]
334
+ }
335
+ ],
336
+ "outputs": [
337
+ {
338
+ "name": "weight",
339
+ "type": "uint256",
340
+ "internalType": "uint256"
341
+ },
342
+ {
343
+ "name": "hookSpecifications",
344
+ "type": "tuple[]",
345
+ "internalType": "struct JBPayHookSpecification[]",
346
+ "components": [
347
+ {
348
+ "name": "hook",
349
+ "type": "address",
350
+ "internalType": "contract IJBPayHook"
351
+ },
352
+ {
353
+ "name": "noop",
354
+ "type": "bool",
355
+ "internalType": "bool"
356
+ },
357
+ {
358
+ "name": "amount",
359
+ "type": "uint256",
360
+ "internalType": "uint256"
361
+ },
362
+ {
363
+ "name": "metadata",
364
+ "type": "bytes",
365
+ "internalType": "bytes"
366
+ }
367
+ ]
368
+ }
369
+ ],
370
+ "stateMutability": "view"
371
+ },
372
+ {
373
+ "type": "function",
374
+ "name": "deploySuckersFor",
375
+ "inputs": [
376
+ {
377
+ "name": "projectId",
378
+ "type": "uint256",
379
+ "internalType": "uint256"
380
+ },
381
+ {
382
+ "name": "suckerDeploymentConfiguration",
383
+ "type": "tuple",
384
+ "internalType": "struct JBSuckerDeploymentConfig",
385
+ "components": [
386
+ {
387
+ "name": "deployerConfigurations",
388
+ "type": "tuple[]",
389
+ "internalType": "struct JBSuckerDeployerConfig[]",
390
+ "components": [
391
+ {
392
+ "name": "deployer",
393
+ "type": "address",
394
+ "internalType": "contract IJBSuckerDeployer"
395
+ },
396
+ {
397
+ "name": "peer",
398
+ "type": "bytes32",
399
+ "internalType": "bytes32"
400
+ },
401
+ {
402
+ "name": "mappings",
403
+ "type": "tuple[]",
404
+ "internalType": "struct JBTokenMapping[]",
405
+ "components": [
406
+ {
407
+ "name": "localToken",
408
+ "type": "address",
409
+ "internalType": "address"
410
+ },
411
+ {
412
+ "name": "minGas",
413
+ "type": "uint32",
414
+ "internalType": "uint32"
415
+ },
416
+ {
417
+ "name": "remoteToken",
418
+ "type": "bytes32",
419
+ "internalType": "bytes32"
420
+ }
421
+ ]
422
+ }
423
+ ]
424
+ },
425
+ {
426
+ "name": "salt",
427
+ "type": "bytes32",
428
+ "internalType": "bytes32"
429
+ }
430
+ ]
431
+ }
432
+ ],
433
+ "outputs": [
434
+ {
435
+ "name": "suckers",
436
+ "type": "address[]",
437
+ "internalType": "address[]"
438
+ }
439
+ ],
440
+ "stateMutability": "nonpayable"
441
+ },
442
+ {
443
+ "type": "function",
444
+ "name": "extraDataHookOf",
445
+ "inputs": [
446
+ {
447
+ "name": "projectId",
448
+ "type": "uint256",
449
+ "internalType": "uint256"
450
+ },
451
+ {
452
+ "name": "rulesetId",
453
+ "type": "uint256",
454
+ "internalType": "uint256"
455
+ }
456
+ ],
457
+ "outputs": [
458
+ {
459
+ "name": "hook",
460
+ "type": "tuple",
461
+ "internalType": "struct JBDeployerHookConfig",
462
+ "components": [
463
+ {
464
+ "name": "dataHook",
465
+ "type": "address",
466
+ "internalType": "contract IJBRulesetDataHook"
467
+ },
468
+ {
469
+ "name": "useDataHookForPay",
470
+ "type": "bool",
471
+ "internalType": "bool"
472
+ },
473
+ {
474
+ "name": "useDataHookForCashOut",
475
+ "type": "bool",
476
+ "internalType": "bool"
477
+ }
478
+ ]
479
+ }
480
+ ],
481
+ "stateMutability": "view"
482
+ },
483
+ {
484
+ "type": "function",
485
+ "name": "hasMintPermissionFor",
486
+ "inputs": [
487
+ {
488
+ "name": "projectId",
489
+ "type": "uint256",
490
+ "internalType": "uint256"
491
+ },
492
+ {
493
+ "name": "ruleset",
494
+ "type": "tuple",
495
+ "internalType": "struct JBRuleset",
496
+ "components": [
497
+ {
498
+ "name": "cycleNumber",
499
+ "type": "uint48",
500
+ "internalType": "uint48"
501
+ },
502
+ {
503
+ "name": "id",
504
+ "type": "uint48",
505
+ "internalType": "uint48"
506
+ },
507
+ {
508
+ "name": "basedOnId",
509
+ "type": "uint48",
510
+ "internalType": "uint48"
511
+ },
512
+ {
513
+ "name": "start",
514
+ "type": "uint48",
515
+ "internalType": "uint48"
516
+ },
517
+ {
518
+ "name": "duration",
519
+ "type": "uint32",
520
+ "internalType": "uint32"
521
+ },
522
+ {
523
+ "name": "weight",
524
+ "type": "uint112",
525
+ "internalType": "uint112"
526
+ },
527
+ {
528
+ "name": "weightCutPercent",
529
+ "type": "uint32",
530
+ "internalType": "uint32"
531
+ },
532
+ {
533
+ "name": "approvalHook",
534
+ "type": "address",
535
+ "internalType": "contract IJBRulesetApprovalHook"
536
+ },
537
+ {
538
+ "name": "metadata",
539
+ "type": "uint256",
540
+ "internalType": "uint256"
541
+ }
542
+ ]
543
+ },
544
+ {
545
+ "name": "addr",
546
+ "type": "address",
547
+ "internalType": "address"
548
+ }
549
+ ],
550
+ "outputs": [
551
+ {
552
+ "name": "",
553
+ "type": "bool",
554
+ "internalType": "bool"
555
+ }
556
+ ],
557
+ "stateMutability": "view"
558
+ },
559
+ {
560
+ "type": "function",
561
+ "name": "isTrustedForwarder",
562
+ "inputs": [
563
+ {
564
+ "name": "forwarder",
565
+ "type": "address",
566
+ "internalType": "address"
567
+ }
568
+ ],
569
+ "outputs": [
570
+ {
571
+ "name": "",
572
+ "type": "bool",
573
+ "internalType": "bool"
574
+ }
575
+ ],
576
+ "stateMutability": "view"
577
+ },
578
+ {
579
+ "type": "function",
580
+ "name": "launchProjectFor",
581
+ "inputs": [
582
+ {
583
+ "name": "owner",
584
+ "type": "address",
585
+ "internalType": "address"
586
+ },
587
+ {
588
+ "name": "projectUri",
589
+ "type": "string",
590
+ "internalType": "string"
591
+ },
592
+ {
593
+ "name": "deploy721Config",
594
+ "type": "tuple",
595
+ "internalType": "struct JBOmnichain721Config",
596
+ "components": [
597
+ {
598
+ "name": "deployTiersHookConfig",
599
+ "type": "tuple",
600
+ "internalType": "struct JBDeploy721TiersHookConfig",
601
+ "components": [
602
+ {
603
+ "name": "name",
604
+ "type": "string",
605
+ "internalType": "string"
606
+ },
607
+ {
608
+ "name": "symbol",
609
+ "type": "string",
610
+ "internalType": "string"
611
+ },
612
+ {
613
+ "name": "baseUri",
614
+ "type": "string",
615
+ "internalType": "string"
616
+ },
617
+ {
618
+ "name": "tokenUriResolver",
619
+ "type": "address",
620
+ "internalType": "contract IJB721TokenUriResolver"
621
+ },
622
+ {
623
+ "name": "contractUri",
624
+ "type": "string",
625
+ "internalType": "string"
626
+ },
627
+ {
628
+ "name": "tiersConfig",
629
+ "type": "tuple",
630
+ "internalType": "struct JB721InitTiersConfig",
631
+ "components": [
632
+ {
633
+ "name": "tiers",
634
+ "type": "tuple[]",
635
+ "internalType": "struct JB721TierConfig[]",
636
+ "components": [
637
+ {
638
+ "name": "price",
639
+ "type": "uint104",
640
+ "internalType": "uint104"
641
+ },
642
+ {
643
+ "name": "initialSupply",
644
+ "type": "uint32",
645
+ "internalType": "uint32"
646
+ },
647
+ {
648
+ "name": "votingUnits",
649
+ "type": "uint32",
650
+ "internalType": "uint32"
651
+ },
652
+ {
653
+ "name": "reserveFrequency",
654
+ "type": "uint16",
655
+ "internalType": "uint16"
656
+ },
657
+ {
658
+ "name": "reserveBeneficiary",
659
+ "type": "address",
660
+ "internalType": "address"
661
+ },
662
+ {
663
+ "name": "encodedIpfsUri",
664
+ "type": "bytes32",
665
+ "internalType": "bytes32"
666
+ },
667
+ {
668
+ "name": "category",
669
+ "type": "uint24",
670
+ "internalType": "uint24"
671
+ },
672
+ {
673
+ "name": "discountPercent",
674
+ "type": "uint8",
675
+ "internalType": "uint8"
676
+ },
677
+ {
678
+ "name": "flags",
679
+ "type": "tuple",
680
+ "internalType": "struct JB721TierConfigFlags",
681
+ "components": [
682
+ {
683
+ "name": "allowOwnerMint",
684
+ "type": "bool",
685
+ "internalType": "bool"
686
+ },
687
+ {
688
+ "name": "useReserveBeneficiaryAsDefault",
689
+ "type": "bool",
690
+ "internalType": "bool"
691
+ },
692
+ {
693
+ "name": "transfersPausable",
694
+ "type": "bool",
695
+ "internalType": "bool"
696
+ },
697
+ {
698
+ "name": "useVotingUnits",
699
+ "type": "bool",
700
+ "internalType": "bool"
701
+ },
702
+ {
703
+ "name": "cantBeRemoved",
704
+ "type": "bool",
705
+ "internalType": "bool"
706
+ },
707
+ {
708
+ "name": "cantIncreaseDiscountPercent",
709
+ "type": "bool",
710
+ "internalType": "bool"
711
+ },
712
+ {
713
+ "name": "cantBuyWithCredits",
714
+ "type": "bool",
715
+ "internalType": "bool"
716
+ }
717
+ ]
718
+ },
719
+ {
720
+ "name": "splitPercent",
721
+ "type": "uint32",
722
+ "internalType": "uint32"
723
+ },
724
+ {
725
+ "name": "splits",
726
+ "type": "tuple[]",
727
+ "internalType": "struct JBSplit[]",
728
+ "components": [
729
+ {
730
+ "name": "percent",
731
+ "type": "uint32",
732
+ "internalType": "uint32"
733
+ },
734
+ {
735
+ "name": "projectId",
736
+ "type": "uint64",
737
+ "internalType": "uint64"
738
+ },
739
+ {
740
+ "name": "beneficiary",
741
+ "type": "address",
742
+ "internalType": "address payable"
743
+ },
744
+ {
745
+ "name": "preferAddToBalance",
746
+ "type": "bool",
747
+ "internalType": "bool"
748
+ },
749
+ {
750
+ "name": "lockedUntil",
751
+ "type": "uint48",
752
+ "internalType": "uint48"
753
+ },
754
+ {
755
+ "name": "hook",
756
+ "type": "address",
757
+ "internalType": "contract IJBSplitHook"
758
+ }
759
+ ]
760
+ }
761
+ ]
762
+ },
763
+ {
764
+ "name": "currency",
765
+ "type": "uint32",
766
+ "internalType": "uint32"
767
+ },
768
+ {
769
+ "name": "decimals",
770
+ "type": "uint8",
771
+ "internalType": "uint8"
772
+ }
773
+ ]
774
+ },
775
+ {
776
+ "name": "flags",
777
+ "type": "tuple",
778
+ "internalType": "struct JB721TiersHookFlags",
779
+ "components": [
780
+ {
781
+ "name": "noNewTiersWithReserves",
782
+ "type": "bool",
783
+ "internalType": "bool"
784
+ },
785
+ {
786
+ "name": "noNewTiersWithVotes",
787
+ "type": "bool",
788
+ "internalType": "bool"
789
+ },
790
+ {
791
+ "name": "noNewTiersWithOwnerMinting",
792
+ "type": "bool",
793
+ "internalType": "bool"
794
+ },
795
+ {
796
+ "name": "preventOverspending",
797
+ "type": "bool",
798
+ "internalType": "bool"
799
+ },
800
+ {
801
+ "name": "issueTokensForSplits",
802
+ "type": "bool",
803
+ "internalType": "bool"
804
+ }
805
+ ]
806
+ }
807
+ ]
808
+ },
809
+ {
810
+ "name": "useDataHookForCashOut",
811
+ "type": "bool",
812
+ "internalType": "bool"
813
+ },
814
+ {
815
+ "name": "salt",
816
+ "type": "bytes32",
817
+ "internalType": "bytes32"
818
+ }
819
+ ]
820
+ },
821
+ {
822
+ "name": "rulesetConfigurations",
823
+ "type": "tuple[]",
824
+ "internalType": "struct JBRulesetConfig[]",
825
+ "components": [
826
+ {
827
+ "name": "mustStartAtOrAfter",
828
+ "type": "uint48",
829
+ "internalType": "uint48"
830
+ },
831
+ {
832
+ "name": "duration",
833
+ "type": "uint32",
834
+ "internalType": "uint32"
835
+ },
836
+ {
837
+ "name": "weight",
838
+ "type": "uint112",
839
+ "internalType": "uint112"
840
+ },
841
+ {
842
+ "name": "weightCutPercent",
843
+ "type": "uint32",
844
+ "internalType": "uint32"
845
+ },
846
+ {
847
+ "name": "approvalHook",
848
+ "type": "address",
849
+ "internalType": "contract IJBRulesetApprovalHook"
850
+ },
851
+ {
852
+ "name": "metadata",
853
+ "type": "tuple",
854
+ "internalType": "struct JBRulesetMetadata",
855
+ "components": [
856
+ {
857
+ "name": "reservedPercent",
858
+ "type": "uint16",
859
+ "internalType": "uint16"
860
+ },
861
+ {
862
+ "name": "cashOutTaxRate",
863
+ "type": "uint16",
864
+ "internalType": "uint16"
865
+ },
866
+ {
867
+ "name": "baseCurrency",
868
+ "type": "uint32",
869
+ "internalType": "uint32"
870
+ },
871
+ {
872
+ "name": "pausePay",
873
+ "type": "bool",
874
+ "internalType": "bool"
875
+ },
876
+ {
877
+ "name": "pauseCreditTransfers",
878
+ "type": "bool",
879
+ "internalType": "bool"
880
+ },
881
+ {
882
+ "name": "allowOwnerMinting",
883
+ "type": "bool",
884
+ "internalType": "bool"
885
+ },
886
+ {
887
+ "name": "allowSetCustomToken",
888
+ "type": "bool",
889
+ "internalType": "bool"
890
+ },
891
+ {
892
+ "name": "allowTerminalMigration",
893
+ "type": "bool",
894
+ "internalType": "bool"
895
+ },
896
+ {
897
+ "name": "allowSetTerminals",
898
+ "type": "bool",
899
+ "internalType": "bool"
900
+ },
901
+ {
902
+ "name": "allowSetController",
903
+ "type": "bool",
904
+ "internalType": "bool"
905
+ },
906
+ {
907
+ "name": "allowAddAccountingContext",
908
+ "type": "bool",
909
+ "internalType": "bool"
910
+ },
911
+ {
912
+ "name": "allowAddPriceFeed",
913
+ "type": "bool",
914
+ "internalType": "bool"
915
+ },
916
+ {
917
+ "name": "ownerMustSendPayouts",
918
+ "type": "bool",
919
+ "internalType": "bool"
920
+ },
921
+ {
922
+ "name": "holdFees",
923
+ "type": "bool",
924
+ "internalType": "bool"
925
+ },
926
+ {
927
+ "name": "scopeCashOutsToLocalBalances",
928
+ "type": "bool",
929
+ "internalType": "bool"
930
+ },
931
+ {
932
+ "name": "useDataHookForPay",
933
+ "type": "bool",
934
+ "internalType": "bool"
935
+ },
936
+ {
937
+ "name": "useDataHookForCashOut",
938
+ "type": "bool",
939
+ "internalType": "bool"
940
+ },
941
+ {
942
+ "name": "dataHook",
943
+ "type": "address",
944
+ "internalType": "address"
945
+ },
946
+ {
947
+ "name": "metadata",
948
+ "type": "uint16",
949
+ "internalType": "uint16"
950
+ }
951
+ ]
952
+ },
953
+ {
954
+ "name": "splitGroups",
955
+ "type": "tuple[]",
956
+ "internalType": "struct JBSplitGroup[]",
957
+ "components": [
958
+ {
959
+ "name": "groupId",
960
+ "type": "uint256",
961
+ "internalType": "uint256"
962
+ },
963
+ {
964
+ "name": "splits",
965
+ "type": "tuple[]",
966
+ "internalType": "struct JBSplit[]",
967
+ "components": [
968
+ {
969
+ "name": "percent",
970
+ "type": "uint32",
971
+ "internalType": "uint32"
972
+ },
973
+ {
974
+ "name": "projectId",
975
+ "type": "uint64",
976
+ "internalType": "uint64"
977
+ },
978
+ {
979
+ "name": "beneficiary",
980
+ "type": "address",
981
+ "internalType": "address payable"
982
+ },
983
+ {
984
+ "name": "preferAddToBalance",
985
+ "type": "bool",
986
+ "internalType": "bool"
987
+ },
988
+ {
989
+ "name": "lockedUntil",
990
+ "type": "uint48",
991
+ "internalType": "uint48"
992
+ },
993
+ {
994
+ "name": "hook",
995
+ "type": "address",
996
+ "internalType": "contract IJBSplitHook"
997
+ }
998
+ ]
999
+ }
1000
+ ]
1001
+ },
1002
+ {
1003
+ "name": "fundAccessLimitGroups",
1004
+ "type": "tuple[]",
1005
+ "internalType": "struct JBFundAccessLimitGroup[]",
1006
+ "components": [
1007
+ {
1008
+ "name": "terminal",
1009
+ "type": "address",
1010
+ "internalType": "address"
1011
+ },
1012
+ {
1013
+ "name": "token",
1014
+ "type": "address",
1015
+ "internalType": "address"
1016
+ },
1017
+ {
1018
+ "name": "payoutLimits",
1019
+ "type": "tuple[]",
1020
+ "internalType": "struct JBCurrencyAmount[]",
1021
+ "components": [
1022
+ {
1023
+ "name": "amount",
1024
+ "type": "uint224",
1025
+ "internalType": "uint224"
1026
+ },
1027
+ {
1028
+ "name": "currency",
1029
+ "type": "uint32",
1030
+ "internalType": "uint32"
1031
+ }
1032
+ ]
1033
+ },
1034
+ {
1035
+ "name": "surplusAllowances",
1036
+ "type": "tuple[]",
1037
+ "internalType": "struct JBCurrencyAmount[]",
1038
+ "components": [
1039
+ {
1040
+ "name": "amount",
1041
+ "type": "uint224",
1042
+ "internalType": "uint224"
1043
+ },
1044
+ {
1045
+ "name": "currency",
1046
+ "type": "uint32",
1047
+ "internalType": "uint32"
1048
+ }
1049
+ ]
1050
+ }
1051
+ ]
1052
+ }
1053
+ ]
1054
+ },
1055
+ {
1056
+ "name": "terminalConfigurations",
1057
+ "type": "tuple[]",
1058
+ "internalType": "struct JBTerminalConfig[]",
1059
+ "components": [
1060
+ {
1061
+ "name": "terminal",
1062
+ "type": "address",
1063
+ "internalType": "contract IJBTerminal"
1064
+ },
1065
+ {
1066
+ "name": "accountingContextsToAccept",
1067
+ "type": "tuple[]",
1068
+ "internalType": "struct JBAccountingContext[]",
1069
+ "components": [
1070
+ {
1071
+ "name": "token",
1072
+ "type": "address",
1073
+ "internalType": "address"
1074
+ },
1075
+ {
1076
+ "name": "decimals",
1077
+ "type": "uint8",
1078
+ "internalType": "uint8"
1079
+ },
1080
+ {
1081
+ "name": "currency",
1082
+ "type": "uint32",
1083
+ "internalType": "uint32"
1084
+ }
1085
+ ]
1086
+ }
1087
+ ]
1088
+ },
1089
+ {
1090
+ "name": "memo",
1091
+ "type": "string",
1092
+ "internalType": "string"
1093
+ },
1094
+ {
1095
+ "name": "suckerDeploymentConfiguration",
1096
+ "type": "tuple",
1097
+ "internalType": "struct JBSuckerDeploymentConfig",
1098
+ "components": [
1099
+ {
1100
+ "name": "deployerConfigurations",
1101
+ "type": "tuple[]",
1102
+ "internalType": "struct JBSuckerDeployerConfig[]",
1103
+ "components": [
1104
+ {
1105
+ "name": "deployer",
1106
+ "type": "address",
1107
+ "internalType": "contract IJBSuckerDeployer"
1108
+ },
1109
+ {
1110
+ "name": "peer",
1111
+ "type": "bytes32",
1112
+ "internalType": "bytes32"
1113
+ },
1114
+ {
1115
+ "name": "mappings",
1116
+ "type": "tuple[]",
1117
+ "internalType": "struct JBTokenMapping[]",
1118
+ "components": [
1119
+ {
1120
+ "name": "localToken",
1121
+ "type": "address",
1122
+ "internalType": "address"
1123
+ },
1124
+ {
1125
+ "name": "minGas",
1126
+ "type": "uint32",
1127
+ "internalType": "uint32"
1128
+ },
1129
+ {
1130
+ "name": "remoteToken",
1131
+ "type": "bytes32",
1132
+ "internalType": "bytes32"
1133
+ }
1134
+ ]
1135
+ }
1136
+ ]
1137
+ },
1138
+ {
1139
+ "name": "salt",
1140
+ "type": "bytes32",
1141
+ "internalType": "bytes32"
1142
+ }
1143
+ ]
1144
+ }
1145
+ ],
1146
+ "outputs": [
1147
+ {
1148
+ "name": "projectId",
1149
+ "type": "uint256",
1150
+ "internalType": "uint256"
1151
+ },
1152
+ {
1153
+ "name": "hook",
1154
+ "type": "address",
1155
+ "internalType": "contract IJB721TiersHook"
1156
+ },
1157
+ {
1158
+ "name": "suckers",
1159
+ "type": "address[]",
1160
+ "internalType": "address[]"
1161
+ }
1162
+ ],
1163
+ "stateMutability": "payable"
1164
+ },
1165
+ {
1166
+ "type": "function",
1167
+ "name": "launchProjectFor",
1168
+ "inputs": [
1169
+ {
1170
+ "name": "owner",
1171
+ "type": "address",
1172
+ "internalType": "address"
1173
+ },
1174
+ {
1175
+ "name": "projectUri",
1176
+ "type": "string",
1177
+ "internalType": "string"
1178
+ },
1179
+ {
1180
+ "name": "rulesetConfigurations",
1181
+ "type": "tuple[]",
1182
+ "internalType": "struct JBRulesetConfig[]",
1183
+ "components": [
1184
+ {
1185
+ "name": "mustStartAtOrAfter",
1186
+ "type": "uint48",
1187
+ "internalType": "uint48"
1188
+ },
1189
+ {
1190
+ "name": "duration",
1191
+ "type": "uint32",
1192
+ "internalType": "uint32"
1193
+ },
1194
+ {
1195
+ "name": "weight",
1196
+ "type": "uint112",
1197
+ "internalType": "uint112"
1198
+ },
1199
+ {
1200
+ "name": "weightCutPercent",
1201
+ "type": "uint32",
1202
+ "internalType": "uint32"
1203
+ },
1204
+ {
1205
+ "name": "approvalHook",
1206
+ "type": "address",
1207
+ "internalType": "contract IJBRulesetApprovalHook"
1208
+ },
1209
+ {
1210
+ "name": "metadata",
1211
+ "type": "tuple",
1212
+ "internalType": "struct JBRulesetMetadata",
1213
+ "components": [
1214
+ {
1215
+ "name": "reservedPercent",
1216
+ "type": "uint16",
1217
+ "internalType": "uint16"
1218
+ },
1219
+ {
1220
+ "name": "cashOutTaxRate",
1221
+ "type": "uint16",
1222
+ "internalType": "uint16"
1223
+ },
1224
+ {
1225
+ "name": "baseCurrency",
1226
+ "type": "uint32",
1227
+ "internalType": "uint32"
1228
+ },
1229
+ {
1230
+ "name": "pausePay",
1231
+ "type": "bool",
1232
+ "internalType": "bool"
1233
+ },
1234
+ {
1235
+ "name": "pauseCreditTransfers",
1236
+ "type": "bool",
1237
+ "internalType": "bool"
1238
+ },
1239
+ {
1240
+ "name": "allowOwnerMinting",
1241
+ "type": "bool",
1242
+ "internalType": "bool"
1243
+ },
1244
+ {
1245
+ "name": "allowSetCustomToken",
1246
+ "type": "bool",
1247
+ "internalType": "bool"
1248
+ },
1249
+ {
1250
+ "name": "allowTerminalMigration",
1251
+ "type": "bool",
1252
+ "internalType": "bool"
1253
+ },
1254
+ {
1255
+ "name": "allowSetTerminals",
1256
+ "type": "bool",
1257
+ "internalType": "bool"
1258
+ },
1259
+ {
1260
+ "name": "allowSetController",
1261
+ "type": "bool",
1262
+ "internalType": "bool"
1263
+ },
1264
+ {
1265
+ "name": "allowAddAccountingContext",
1266
+ "type": "bool",
1267
+ "internalType": "bool"
1268
+ },
1269
+ {
1270
+ "name": "allowAddPriceFeed",
1271
+ "type": "bool",
1272
+ "internalType": "bool"
1273
+ },
1274
+ {
1275
+ "name": "ownerMustSendPayouts",
1276
+ "type": "bool",
1277
+ "internalType": "bool"
1278
+ },
1279
+ {
1280
+ "name": "holdFees",
1281
+ "type": "bool",
1282
+ "internalType": "bool"
1283
+ },
1284
+ {
1285
+ "name": "scopeCashOutsToLocalBalances",
1286
+ "type": "bool",
1287
+ "internalType": "bool"
1288
+ },
1289
+ {
1290
+ "name": "useDataHookForPay",
1291
+ "type": "bool",
1292
+ "internalType": "bool"
1293
+ },
1294
+ {
1295
+ "name": "useDataHookForCashOut",
1296
+ "type": "bool",
1297
+ "internalType": "bool"
1298
+ },
1299
+ {
1300
+ "name": "dataHook",
1301
+ "type": "address",
1302
+ "internalType": "address"
1303
+ },
1304
+ {
1305
+ "name": "metadata",
1306
+ "type": "uint16",
1307
+ "internalType": "uint16"
1308
+ }
1309
+ ]
1310
+ },
1311
+ {
1312
+ "name": "splitGroups",
1313
+ "type": "tuple[]",
1314
+ "internalType": "struct JBSplitGroup[]",
1315
+ "components": [
1316
+ {
1317
+ "name": "groupId",
1318
+ "type": "uint256",
1319
+ "internalType": "uint256"
1320
+ },
1321
+ {
1322
+ "name": "splits",
1323
+ "type": "tuple[]",
1324
+ "internalType": "struct JBSplit[]",
1325
+ "components": [
1326
+ {
1327
+ "name": "percent",
1328
+ "type": "uint32",
1329
+ "internalType": "uint32"
1330
+ },
1331
+ {
1332
+ "name": "projectId",
1333
+ "type": "uint64",
1334
+ "internalType": "uint64"
1335
+ },
1336
+ {
1337
+ "name": "beneficiary",
1338
+ "type": "address",
1339
+ "internalType": "address payable"
1340
+ },
1341
+ {
1342
+ "name": "preferAddToBalance",
1343
+ "type": "bool",
1344
+ "internalType": "bool"
1345
+ },
1346
+ {
1347
+ "name": "lockedUntil",
1348
+ "type": "uint48",
1349
+ "internalType": "uint48"
1350
+ },
1351
+ {
1352
+ "name": "hook",
1353
+ "type": "address",
1354
+ "internalType": "contract IJBSplitHook"
1355
+ }
1356
+ ]
1357
+ }
1358
+ ]
1359
+ },
1360
+ {
1361
+ "name": "fundAccessLimitGroups",
1362
+ "type": "tuple[]",
1363
+ "internalType": "struct JBFundAccessLimitGroup[]",
1364
+ "components": [
1365
+ {
1366
+ "name": "terminal",
1367
+ "type": "address",
1368
+ "internalType": "address"
1369
+ },
1370
+ {
1371
+ "name": "token",
1372
+ "type": "address",
1373
+ "internalType": "address"
1374
+ },
1375
+ {
1376
+ "name": "payoutLimits",
1377
+ "type": "tuple[]",
1378
+ "internalType": "struct JBCurrencyAmount[]",
1379
+ "components": [
1380
+ {
1381
+ "name": "amount",
1382
+ "type": "uint224",
1383
+ "internalType": "uint224"
1384
+ },
1385
+ {
1386
+ "name": "currency",
1387
+ "type": "uint32",
1388
+ "internalType": "uint32"
1389
+ }
1390
+ ]
1391
+ },
1392
+ {
1393
+ "name": "surplusAllowances",
1394
+ "type": "tuple[]",
1395
+ "internalType": "struct JBCurrencyAmount[]",
1396
+ "components": [
1397
+ {
1398
+ "name": "amount",
1399
+ "type": "uint224",
1400
+ "internalType": "uint224"
1401
+ },
1402
+ {
1403
+ "name": "currency",
1404
+ "type": "uint32",
1405
+ "internalType": "uint32"
1406
+ }
1407
+ ]
1408
+ }
1409
+ ]
1410
+ }
1411
+ ]
1412
+ },
1413
+ {
1414
+ "name": "terminalConfigurations",
1415
+ "type": "tuple[]",
1416
+ "internalType": "struct JBTerminalConfig[]",
1417
+ "components": [
1418
+ {
1419
+ "name": "terminal",
1420
+ "type": "address",
1421
+ "internalType": "contract IJBTerminal"
1422
+ },
1423
+ {
1424
+ "name": "accountingContextsToAccept",
1425
+ "type": "tuple[]",
1426
+ "internalType": "struct JBAccountingContext[]",
1427
+ "components": [
1428
+ {
1429
+ "name": "token",
1430
+ "type": "address",
1431
+ "internalType": "address"
1432
+ },
1433
+ {
1434
+ "name": "decimals",
1435
+ "type": "uint8",
1436
+ "internalType": "uint8"
1437
+ },
1438
+ {
1439
+ "name": "currency",
1440
+ "type": "uint32",
1441
+ "internalType": "uint32"
1442
+ }
1443
+ ]
1444
+ }
1445
+ ]
1446
+ },
1447
+ {
1448
+ "name": "memo",
1449
+ "type": "string",
1450
+ "internalType": "string"
1451
+ },
1452
+ {
1453
+ "name": "suckerDeploymentConfiguration",
1454
+ "type": "tuple",
1455
+ "internalType": "struct JBSuckerDeploymentConfig",
1456
+ "components": [
1457
+ {
1458
+ "name": "deployerConfigurations",
1459
+ "type": "tuple[]",
1460
+ "internalType": "struct JBSuckerDeployerConfig[]",
1461
+ "components": [
1462
+ {
1463
+ "name": "deployer",
1464
+ "type": "address",
1465
+ "internalType": "contract IJBSuckerDeployer"
1466
+ },
1467
+ {
1468
+ "name": "peer",
1469
+ "type": "bytes32",
1470
+ "internalType": "bytes32"
1471
+ },
1472
+ {
1473
+ "name": "mappings",
1474
+ "type": "tuple[]",
1475
+ "internalType": "struct JBTokenMapping[]",
1476
+ "components": [
1477
+ {
1478
+ "name": "localToken",
1479
+ "type": "address",
1480
+ "internalType": "address"
1481
+ },
1482
+ {
1483
+ "name": "minGas",
1484
+ "type": "uint32",
1485
+ "internalType": "uint32"
1486
+ },
1487
+ {
1488
+ "name": "remoteToken",
1489
+ "type": "bytes32",
1490
+ "internalType": "bytes32"
1491
+ }
1492
+ ]
1493
+ }
1494
+ ]
1495
+ },
1496
+ {
1497
+ "name": "salt",
1498
+ "type": "bytes32",
1499
+ "internalType": "bytes32"
1500
+ }
1501
+ ]
1502
+ }
1503
+ ],
1504
+ "outputs": [
1505
+ {
1506
+ "name": "projectId",
1507
+ "type": "uint256",
1508
+ "internalType": "uint256"
1509
+ },
1510
+ {
1511
+ "name": "hook",
1512
+ "type": "address",
1513
+ "internalType": "contract IJB721TiersHook"
1514
+ },
1515
+ {
1516
+ "name": "suckers",
1517
+ "type": "address[]",
1518
+ "internalType": "address[]"
1519
+ }
1520
+ ],
1521
+ "stateMutability": "payable"
1522
+ },
1523
+ {
1524
+ "type": "function",
1525
+ "name": "launchRulesetsFor",
1526
+ "inputs": [
1527
+ {
1528
+ "name": "projectId",
1529
+ "type": "uint256",
1530
+ "internalType": "uint256"
1531
+ },
1532
+ {
1533
+ "name": "projectUri",
1534
+ "type": "string",
1535
+ "internalType": "string"
1536
+ },
1537
+ {
1538
+ "name": "rulesetConfigurations",
1539
+ "type": "tuple[]",
1540
+ "internalType": "struct JBRulesetConfig[]",
1541
+ "components": [
1542
+ {
1543
+ "name": "mustStartAtOrAfter",
1544
+ "type": "uint48",
1545
+ "internalType": "uint48"
1546
+ },
1547
+ {
1548
+ "name": "duration",
1549
+ "type": "uint32",
1550
+ "internalType": "uint32"
1551
+ },
1552
+ {
1553
+ "name": "weight",
1554
+ "type": "uint112",
1555
+ "internalType": "uint112"
1556
+ },
1557
+ {
1558
+ "name": "weightCutPercent",
1559
+ "type": "uint32",
1560
+ "internalType": "uint32"
1561
+ },
1562
+ {
1563
+ "name": "approvalHook",
1564
+ "type": "address",
1565
+ "internalType": "contract IJBRulesetApprovalHook"
1566
+ },
1567
+ {
1568
+ "name": "metadata",
1569
+ "type": "tuple",
1570
+ "internalType": "struct JBRulesetMetadata",
1571
+ "components": [
1572
+ {
1573
+ "name": "reservedPercent",
1574
+ "type": "uint16",
1575
+ "internalType": "uint16"
1576
+ },
1577
+ {
1578
+ "name": "cashOutTaxRate",
1579
+ "type": "uint16",
1580
+ "internalType": "uint16"
1581
+ },
1582
+ {
1583
+ "name": "baseCurrency",
1584
+ "type": "uint32",
1585
+ "internalType": "uint32"
1586
+ },
1587
+ {
1588
+ "name": "pausePay",
1589
+ "type": "bool",
1590
+ "internalType": "bool"
1591
+ },
1592
+ {
1593
+ "name": "pauseCreditTransfers",
1594
+ "type": "bool",
1595
+ "internalType": "bool"
1596
+ },
1597
+ {
1598
+ "name": "allowOwnerMinting",
1599
+ "type": "bool",
1600
+ "internalType": "bool"
1601
+ },
1602
+ {
1603
+ "name": "allowSetCustomToken",
1604
+ "type": "bool",
1605
+ "internalType": "bool"
1606
+ },
1607
+ {
1608
+ "name": "allowTerminalMigration",
1609
+ "type": "bool",
1610
+ "internalType": "bool"
1611
+ },
1612
+ {
1613
+ "name": "allowSetTerminals",
1614
+ "type": "bool",
1615
+ "internalType": "bool"
1616
+ },
1617
+ {
1618
+ "name": "allowSetController",
1619
+ "type": "bool",
1620
+ "internalType": "bool"
1621
+ },
1622
+ {
1623
+ "name": "allowAddAccountingContext",
1624
+ "type": "bool",
1625
+ "internalType": "bool"
1626
+ },
1627
+ {
1628
+ "name": "allowAddPriceFeed",
1629
+ "type": "bool",
1630
+ "internalType": "bool"
1631
+ },
1632
+ {
1633
+ "name": "ownerMustSendPayouts",
1634
+ "type": "bool",
1635
+ "internalType": "bool"
1636
+ },
1637
+ {
1638
+ "name": "holdFees",
1639
+ "type": "bool",
1640
+ "internalType": "bool"
1641
+ },
1642
+ {
1643
+ "name": "scopeCashOutsToLocalBalances",
1644
+ "type": "bool",
1645
+ "internalType": "bool"
1646
+ },
1647
+ {
1648
+ "name": "useDataHookForPay",
1649
+ "type": "bool",
1650
+ "internalType": "bool"
1651
+ },
1652
+ {
1653
+ "name": "useDataHookForCashOut",
1654
+ "type": "bool",
1655
+ "internalType": "bool"
1656
+ },
1657
+ {
1658
+ "name": "dataHook",
1659
+ "type": "address",
1660
+ "internalType": "address"
1661
+ },
1662
+ {
1663
+ "name": "metadata",
1664
+ "type": "uint16",
1665
+ "internalType": "uint16"
1666
+ }
1667
+ ]
1668
+ },
1669
+ {
1670
+ "name": "splitGroups",
1671
+ "type": "tuple[]",
1672
+ "internalType": "struct JBSplitGroup[]",
1673
+ "components": [
1674
+ {
1675
+ "name": "groupId",
1676
+ "type": "uint256",
1677
+ "internalType": "uint256"
1678
+ },
1679
+ {
1680
+ "name": "splits",
1681
+ "type": "tuple[]",
1682
+ "internalType": "struct JBSplit[]",
1683
+ "components": [
1684
+ {
1685
+ "name": "percent",
1686
+ "type": "uint32",
1687
+ "internalType": "uint32"
1688
+ },
1689
+ {
1690
+ "name": "projectId",
1691
+ "type": "uint64",
1692
+ "internalType": "uint64"
1693
+ },
1694
+ {
1695
+ "name": "beneficiary",
1696
+ "type": "address",
1697
+ "internalType": "address payable"
1698
+ },
1699
+ {
1700
+ "name": "preferAddToBalance",
1701
+ "type": "bool",
1702
+ "internalType": "bool"
1703
+ },
1704
+ {
1705
+ "name": "lockedUntil",
1706
+ "type": "uint48",
1707
+ "internalType": "uint48"
1708
+ },
1709
+ {
1710
+ "name": "hook",
1711
+ "type": "address",
1712
+ "internalType": "contract IJBSplitHook"
1713
+ }
1714
+ ]
1715
+ }
1716
+ ]
1717
+ },
1718
+ {
1719
+ "name": "fundAccessLimitGroups",
1720
+ "type": "tuple[]",
1721
+ "internalType": "struct JBFundAccessLimitGroup[]",
1722
+ "components": [
1723
+ {
1724
+ "name": "terminal",
1725
+ "type": "address",
1726
+ "internalType": "address"
1727
+ },
1728
+ {
1729
+ "name": "token",
1730
+ "type": "address",
1731
+ "internalType": "address"
1732
+ },
1733
+ {
1734
+ "name": "payoutLimits",
1735
+ "type": "tuple[]",
1736
+ "internalType": "struct JBCurrencyAmount[]",
1737
+ "components": [
1738
+ {
1739
+ "name": "amount",
1740
+ "type": "uint224",
1741
+ "internalType": "uint224"
1742
+ },
1743
+ {
1744
+ "name": "currency",
1745
+ "type": "uint32",
1746
+ "internalType": "uint32"
1747
+ }
1748
+ ]
1749
+ },
1750
+ {
1751
+ "name": "surplusAllowances",
1752
+ "type": "tuple[]",
1753
+ "internalType": "struct JBCurrencyAmount[]",
1754
+ "components": [
1755
+ {
1756
+ "name": "amount",
1757
+ "type": "uint224",
1758
+ "internalType": "uint224"
1759
+ },
1760
+ {
1761
+ "name": "currency",
1762
+ "type": "uint32",
1763
+ "internalType": "uint32"
1764
+ }
1765
+ ]
1766
+ }
1767
+ ]
1768
+ }
1769
+ ]
1770
+ },
1771
+ {
1772
+ "name": "terminalConfigurations",
1773
+ "type": "tuple[]",
1774
+ "internalType": "struct JBTerminalConfig[]",
1775
+ "components": [
1776
+ {
1777
+ "name": "terminal",
1778
+ "type": "address",
1779
+ "internalType": "contract IJBTerminal"
1780
+ },
1781
+ {
1782
+ "name": "accountingContextsToAccept",
1783
+ "type": "tuple[]",
1784
+ "internalType": "struct JBAccountingContext[]",
1785
+ "components": [
1786
+ {
1787
+ "name": "token",
1788
+ "type": "address",
1789
+ "internalType": "address"
1790
+ },
1791
+ {
1792
+ "name": "decimals",
1793
+ "type": "uint8",
1794
+ "internalType": "uint8"
1795
+ },
1796
+ {
1797
+ "name": "currency",
1798
+ "type": "uint32",
1799
+ "internalType": "uint32"
1800
+ }
1801
+ ]
1802
+ }
1803
+ ]
1804
+ },
1805
+ {
1806
+ "name": "memo",
1807
+ "type": "string",
1808
+ "internalType": "string"
1809
+ }
1810
+ ],
1811
+ "outputs": [
1812
+ {
1813
+ "name": "rulesetId",
1814
+ "type": "uint256",
1815
+ "internalType": "uint256"
1816
+ },
1817
+ {
1818
+ "name": "hook",
1819
+ "type": "address",
1820
+ "internalType": "contract IJB721TiersHook"
1821
+ }
1822
+ ],
1823
+ "stateMutability": "nonpayable"
1824
+ },
1825
+ {
1826
+ "type": "function",
1827
+ "name": "launchRulesetsFor",
1828
+ "inputs": [
1829
+ {
1830
+ "name": "projectId",
1831
+ "type": "uint256",
1832
+ "internalType": "uint256"
1833
+ },
1834
+ {
1835
+ "name": "projectUri",
1836
+ "type": "string",
1837
+ "internalType": "string"
1838
+ },
1839
+ {
1840
+ "name": "deploy721Config",
1841
+ "type": "tuple",
1842
+ "internalType": "struct JBOmnichain721Config",
1843
+ "components": [
1844
+ {
1845
+ "name": "deployTiersHookConfig",
1846
+ "type": "tuple",
1847
+ "internalType": "struct JBDeploy721TiersHookConfig",
1848
+ "components": [
1849
+ {
1850
+ "name": "name",
1851
+ "type": "string",
1852
+ "internalType": "string"
1853
+ },
1854
+ {
1855
+ "name": "symbol",
1856
+ "type": "string",
1857
+ "internalType": "string"
1858
+ },
1859
+ {
1860
+ "name": "baseUri",
1861
+ "type": "string",
1862
+ "internalType": "string"
1863
+ },
1864
+ {
1865
+ "name": "tokenUriResolver",
1866
+ "type": "address",
1867
+ "internalType": "contract IJB721TokenUriResolver"
1868
+ },
1869
+ {
1870
+ "name": "contractUri",
1871
+ "type": "string",
1872
+ "internalType": "string"
1873
+ },
1874
+ {
1875
+ "name": "tiersConfig",
1876
+ "type": "tuple",
1877
+ "internalType": "struct JB721InitTiersConfig",
1878
+ "components": [
1879
+ {
1880
+ "name": "tiers",
1881
+ "type": "tuple[]",
1882
+ "internalType": "struct JB721TierConfig[]",
1883
+ "components": [
1884
+ {
1885
+ "name": "price",
1886
+ "type": "uint104",
1887
+ "internalType": "uint104"
1888
+ },
1889
+ {
1890
+ "name": "initialSupply",
1891
+ "type": "uint32",
1892
+ "internalType": "uint32"
1893
+ },
1894
+ {
1895
+ "name": "votingUnits",
1896
+ "type": "uint32",
1897
+ "internalType": "uint32"
1898
+ },
1899
+ {
1900
+ "name": "reserveFrequency",
1901
+ "type": "uint16",
1902
+ "internalType": "uint16"
1903
+ },
1904
+ {
1905
+ "name": "reserveBeneficiary",
1906
+ "type": "address",
1907
+ "internalType": "address"
1908
+ },
1909
+ {
1910
+ "name": "encodedIpfsUri",
1911
+ "type": "bytes32",
1912
+ "internalType": "bytes32"
1913
+ },
1914
+ {
1915
+ "name": "category",
1916
+ "type": "uint24",
1917
+ "internalType": "uint24"
1918
+ },
1919
+ {
1920
+ "name": "discountPercent",
1921
+ "type": "uint8",
1922
+ "internalType": "uint8"
1923
+ },
1924
+ {
1925
+ "name": "flags",
1926
+ "type": "tuple",
1927
+ "internalType": "struct JB721TierConfigFlags",
1928
+ "components": [
1929
+ {
1930
+ "name": "allowOwnerMint",
1931
+ "type": "bool",
1932
+ "internalType": "bool"
1933
+ },
1934
+ {
1935
+ "name": "useReserveBeneficiaryAsDefault",
1936
+ "type": "bool",
1937
+ "internalType": "bool"
1938
+ },
1939
+ {
1940
+ "name": "transfersPausable",
1941
+ "type": "bool",
1942
+ "internalType": "bool"
1943
+ },
1944
+ {
1945
+ "name": "useVotingUnits",
1946
+ "type": "bool",
1947
+ "internalType": "bool"
1948
+ },
1949
+ {
1950
+ "name": "cantBeRemoved",
1951
+ "type": "bool",
1952
+ "internalType": "bool"
1953
+ },
1954
+ {
1955
+ "name": "cantIncreaseDiscountPercent",
1956
+ "type": "bool",
1957
+ "internalType": "bool"
1958
+ },
1959
+ {
1960
+ "name": "cantBuyWithCredits",
1961
+ "type": "bool",
1962
+ "internalType": "bool"
1963
+ }
1964
+ ]
1965
+ },
1966
+ {
1967
+ "name": "splitPercent",
1968
+ "type": "uint32",
1969
+ "internalType": "uint32"
1970
+ },
1971
+ {
1972
+ "name": "splits",
1973
+ "type": "tuple[]",
1974
+ "internalType": "struct JBSplit[]",
1975
+ "components": [
1976
+ {
1977
+ "name": "percent",
1978
+ "type": "uint32",
1979
+ "internalType": "uint32"
1980
+ },
1981
+ {
1982
+ "name": "projectId",
1983
+ "type": "uint64",
1984
+ "internalType": "uint64"
1985
+ },
1986
+ {
1987
+ "name": "beneficiary",
1988
+ "type": "address",
1989
+ "internalType": "address payable"
1990
+ },
1991
+ {
1992
+ "name": "preferAddToBalance",
1993
+ "type": "bool",
1994
+ "internalType": "bool"
1995
+ },
1996
+ {
1997
+ "name": "lockedUntil",
1998
+ "type": "uint48",
1999
+ "internalType": "uint48"
2000
+ },
2001
+ {
2002
+ "name": "hook",
2003
+ "type": "address",
2004
+ "internalType": "contract IJBSplitHook"
2005
+ }
2006
+ ]
2007
+ }
2008
+ ]
2009
+ },
2010
+ {
2011
+ "name": "currency",
2012
+ "type": "uint32",
2013
+ "internalType": "uint32"
2014
+ },
2015
+ {
2016
+ "name": "decimals",
2017
+ "type": "uint8",
2018
+ "internalType": "uint8"
2019
+ }
2020
+ ]
2021
+ },
2022
+ {
2023
+ "name": "flags",
2024
+ "type": "tuple",
2025
+ "internalType": "struct JB721TiersHookFlags",
2026
+ "components": [
2027
+ {
2028
+ "name": "noNewTiersWithReserves",
2029
+ "type": "bool",
2030
+ "internalType": "bool"
2031
+ },
2032
+ {
2033
+ "name": "noNewTiersWithVotes",
2034
+ "type": "bool",
2035
+ "internalType": "bool"
2036
+ },
2037
+ {
2038
+ "name": "noNewTiersWithOwnerMinting",
2039
+ "type": "bool",
2040
+ "internalType": "bool"
2041
+ },
2042
+ {
2043
+ "name": "preventOverspending",
2044
+ "type": "bool",
2045
+ "internalType": "bool"
2046
+ },
2047
+ {
2048
+ "name": "issueTokensForSplits",
2049
+ "type": "bool",
2050
+ "internalType": "bool"
2051
+ }
2052
+ ]
2053
+ }
2054
+ ]
2055
+ },
2056
+ {
2057
+ "name": "useDataHookForCashOut",
2058
+ "type": "bool",
2059
+ "internalType": "bool"
2060
+ },
2061
+ {
2062
+ "name": "salt",
2063
+ "type": "bytes32",
2064
+ "internalType": "bytes32"
2065
+ }
2066
+ ]
2067
+ },
2068
+ {
2069
+ "name": "rulesetConfigurations",
2070
+ "type": "tuple[]",
2071
+ "internalType": "struct JBRulesetConfig[]",
2072
+ "components": [
2073
+ {
2074
+ "name": "mustStartAtOrAfter",
2075
+ "type": "uint48",
2076
+ "internalType": "uint48"
2077
+ },
2078
+ {
2079
+ "name": "duration",
2080
+ "type": "uint32",
2081
+ "internalType": "uint32"
2082
+ },
2083
+ {
2084
+ "name": "weight",
2085
+ "type": "uint112",
2086
+ "internalType": "uint112"
2087
+ },
2088
+ {
2089
+ "name": "weightCutPercent",
2090
+ "type": "uint32",
2091
+ "internalType": "uint32"
2092
+ },
2093
+ {
2094
+ "name": "approvalHook",
2095
+ "type": "address",
2096
+ "internalType": "contract IJBRulesetApprovalHook"
2097
+ },
2098
+ {
2099
+ "name": "metadata",
2100
+ "type": "tuple",
2101
+ "internalType": "struct JBRulesetMetadata",
2102
+ "components": [
2103
+ {
2104
+ "name": "reservedPercent",
2105
+ "type": "uint16",
2106
+ "internalType": "uint16"
2107
+ },
2108
+ {
2109
+ "name": "cashOutTaxRate",
2110
+ "type": "uint16",
2111
+ "internalType": "uint16"
2112
+ },
2113
+ {
2114
+ "name": "baseCurrency",
2115
+ "type": "uint32",
2116
+ "internalType": "uint32"
2117
+ },
2118
+ {
2119
+ "name": "pausePay",
2120
+ "type": "bool",
2121
+ "internalType": "bool"
2122
+ },
2123
+ {
2124
+ "name": "pauseCreditTransfers",
2125
+ "type": "bool",
2126
+ "internalType": "bool"
2127
+ },
2128
+ {
2129
+ "name": "allowOwnerMinting",
2130
+ "type": "bool",
2131
+ "internalType": "bool"
2132
+ },
2133
+ {
2134
+ "name": "allowSetCustomToken",
2135
+ "type": "bool",
2136
+ "internalType": "bool"
2137
+ },
2138
+ {
2139
+ "name": "allowTerminalMigration",
2140
+ "type": "bool",
2141
+ "internalType": "bool"
2142
+ },
2143
+ {
2144
+ "name": "allowSetTerminals",
2145
+ "type": "bool",
2146
+ "internalType": "bool"
2147
+ },
2148
+ {
2149
+ "name": "allowSetController",
2150
+ "type": "bool",
2151
+ "internalType": "bool"
2152
+ },
2153
+ {
2154
+ "name": "allowAddAccountingContext",
2155
+ "type": "bool",
2156
+ "internalType": "bool"
2157
+ },
2158
+ {
2159
+ "name": "allowAddPriceFeed",
2160
+ "type": "bool",
2161
+ "internalType": "bool"
2162
+ },
2163
+ {
2164
+ "name": "ownerMustSendPayouts",
2165
+ "type": "bool",
2166
+ "internalType": "bool"
2167
+ },
2168
+ {
2169
+ "name": "holdFees",
2170
+ "type": "bool",
2171
+ "internalType": "bool"
2172
+ },
2173
+ {
2174
+ "name": "scopeCashOutsToLocalBalances",
2175
+ "type": "bool",
2176
+ "internalType": "bool"
2177
+ },
2178
+ {
2179
+ "name": "useDataHookForPay",
2180
+ "type": "bool",
2181
+ "internalType": "bool"
2182
+ },
2183
+ {
2184
+ "name": "useDataHookForCashOut",
2185
+ "type": "bool",
2186
+ "internalType": "bool"
2187
+ },
2188
+ {
2189
+ "name": "dataHook",
2190
+ "type": "address",
2191
+ "internalType": "address"
2192
+ },
2193
+ {
2194
+ "name": "metadata",
2195
+ "type": "uint16",
2196
+ "internalType": "uint16"
2197
+ }
2198
+ ]
2199
+ },
2200
+ {
2201
+ "name": "splitGroups",
2202
+ "type": "tuple[]",
2203
+ "internalType": "struct JBSplitGroup[]",
2204
+ "components": [
2205
+ {
2206
+ "name": "groupId",
2207
+ "type": "uint256",
2208
+ "internalType": "uint256"
2209
+ },
2210
+ {
2211
+ "name": "splits",
2212
+ "type": "tuple[]",
2213
+ "internalType": "struct JBSplit[]",
2214
+ "components": [
2215
+ {
2216
+ "name": "percent",
2217
+ "type": "uint32",
2218
+ "internalType": "uint32"
2219
+ },
2220
+ {
2221
+ "name": "projectId",
2222
+ "type": "uint64",
2223
+ "internalType": "uint64"
2224
+ },
2225
+ {
2226
+ "name": "beneficiary",
2227
+ "type": "address",
2228
+ "internalType": "address payable"
2229
+ },
2230
+ {
2231
+ "name": "preferAddToBalance",
2232
+ "type": "bool",
2233
+ "internalType": "bool"
2234
+ },
2235
+ {
2236
+ "name": "lockedUntil",
2237
+ "type": "uint48",
2238
+ "internalType": "uint48"
2239
+ },
2240
+ {
2241
+ "name": "hook",
2242
+ "type": "address",
2243
+ "internalType": "contract IJBSplitHook"
2244
+ }
2245
+ ]
2246
+ }
2247
+ ]
2248
+ },
2249
+ {
2250
+ "name": "fundAccessLimitGroups",
2251
+ "type": "tuple[]",
2252
+ "internalType": "struct JBFundAccessLimitGroup[]",
2253
+ "components": [
2254
+ {
2255
+ "name": "terminal",
2256
+ "type": "address",
2257
+ "internalType": "address"
2258
+ },
2259
+ {
2260
+ "name": "token",
2261
+ "type": "address",
2262
+ "internalType": "address"
2263
+ },
2264
+ {
2265
+ "name": "payoutLimits",
2266
+ "type": "tuple[]",
2267
+ "internalType": "struct JBCurrencyAmount[]",
2268
+ "components": [
2269
+ {
2270
+ "name": "amount",
2271
+ "type": "uint224",
2272
+ "internalType": "uint224"
2273
+ },
2274
+ {
2275
+ "name": "currency",
2276
+ "type": "uint32",
2277
+ "internalType": "uint32"
2278
+ }
2279
+ ]
2280
+ },
2281
+ {
2282
+ "name": "surplusAllowances",
2283
+ "type": "tuple[]",
2284
+ "internalType": "struct JBCurrencyAmount[]",
2285
+ "components": [
2286
+ {
2287
+ "name": "amount",
2288
+ "type": "uint224",
2289
+ "internalType": "uint224"
2290
+ },
2291
+ {
2292
+ "name": "currency",
2293
+ "type": "uint32",
2294
+ "internalType": "uint32"
2295
+ }
2296
+ ]
2297
+ }
2298
+ ]
2299
+ }
2300
+ ]
2301
+ },
2302
+ {
2303
+ "name": "terminalConfigurations",
2304
+ "type": "tuple[]",
2305
+ "internalType": "struct JBTerminalConfig[]",
2306
+ "components": [
2307
+ {
2308
+ "name": "terminal",
2309
+ "type": "address",
2310
+ "internalType": "contract IJBTerminal"
2311
+ },
2312
+ {
2313
+ "name": "accountingContextsToAccept",
2314
+ "type": "tuple[]",
2315
+ "internalType": "struct JBAccountingContext[]",
2316
+ "components": [
2317
+ {
2318
+ "name": "token",
2319
+ "type": "address",
2320
+ "internalType": "address"
2321
+ },
2322
+ {
2323
+ "name": "decimals",
2324
+ "type": "uint8",
2325
+ "internalType": "uint8"
2326
+ },
2327
+ {
2328
+ "name": "currency",
2329
+ "type": "uint32",
2330
+ "internalType": "uint32"
2331
+ }
2332
+ ]
2333
+ }
2334
+ ]
2335
+ },
2336
+ {
2337
+ "name": "memo",
2338
+ "type": "string",
2339
+ "internalType": "string"
2340
+ }
2341
+ ],
2342
+ "outputs": [
2343
+ {
2344
+ "name": "rulesetId",
2345
+ "type": "uint256",
2346
+ "internalType": "uint256"
2347
+ },
2348
+ {
2349
+ "name": "hook",
2350
+ "type": "address",
2351
+ "internalType": "contract IJB721TiersHook"
2352
+ }
2353
+ ],
2354
+ "stateMutability": "nonpayable"
2355
+ },
2356
+ {
2357
+ "type": "function",
2358
+ "name": "onERC721Received",
2359
+ "inputs": [
2360
+ {
2361
+ "name": "",
2362
+ "type": "address",
2363
+ "internalType": "address"
2364
+ },
2365
+ {
2366
+ "name": "from",
2367
+ "type": "address",
2368
+ "internalType": "address"
2369
+ },
2370
+ {
2371
+ "name": "tokenId",
2372
+ "type": "uint256",
2373
+ "internalType": "uint256"
2374
+ },
2375
+ {
2376
+ "name": "",
2377
+ "type": "bytes",
2378
+ "internalType": "bytes"
2379
+ }
2380
+ ],
2381
+ "outputs": [
2382
+ {
2383
+ "name": "",
2384
+ "type": "bytes4",
2385
+ "internalType": "bytes4"
2386
+ }
2387
+ ],
2388
+ "stateMutability": "view"
2389
+ },
2390
+ {
2391
+ "type": "function",
2392
+ "name": "originalPayer",
2393
+ "inputs": [],
2394
+ "outputs": [
2395
+ {
2396
+ "name": "",
2397
+ "type": "address",
2398
+ "internalType": "address"
2399
+ }
2400
+ ],
2401
+ "stateMutability": "view"
2402
+ },
2403
+ {
2404
+ "type": "function",
2405
+ "name": "peerChainAdjustedAccountsOf",
2406
+ "inputs": [
2407
+ {
2408
+ "name": "projectId",
2409
+ "type": "uint256",
2410
+ "internalType": "uint256"
2411
+ }
2412
+ ],
2413
+ "outputs": [
2414
+ {
2415
+ "name": "supply",
2416
+ "type": "uint256",
2417
+ "internalType": "uint256"
2418
+ },
2419
+ {
2420
+ "name": "contexts",
2421
+ "type": "tuple[]",
2422
+ "internalType": "struct JBSourceContext[]",
2423
+ "components": [
2424
+ {
2425
+ "name": "token",
2426
+ "type": "bytes32",
2427
+ "internalType": "bytes32"
2428
+ },
2429
+ {
2430
+ "name": "decimals",
2431
+ "type": "uint8",
2432
+ "internalType": "uint8"
2433
+ },
2434
+ {
2435
+ "name": "surplus",
2436
+ "type": "uint128",
2437
+ "internalType": "uint128"
2438
+ },
2439
+ {
2440
+ "name": "balance",
2441
+ "type": "uint128",
2442
+ "internalType": "uint128"
2443
+ }
2444
+ ]
2445
+ }
2446
+ ],
2447
+ "stateMutability": "view"
2448
+ },
2449
+ {
2450
+ "type": "function",
2451
+ "name": "queueRulesetsOf",
2452
+ "inputs": [
2453
+ {
2454
+ "name": "projectId",
2455
+ "type": "uint256",
2456
+ "internalType": "uint256"
2457
+ },
2458
+ {
2459
+ "name": "rulesetConfigurations",
2460
+ "type": "tuple[]",
2461
+ "internalType": "struct JBRulesetConfig[]",
2462
+ "components": [
2463
+ {
2464
+ "name": "mustStartAtOrAfter",
2465
+ "type": "uint48",
2466
+ "internalType": "uint48"
2467
+ },
2468
+ {
2469
+ "name": "duration",
2470
+ "type": "uint32",
2471
+ "internalType": "uint32"
2472
+ },
2473
+ {
2474
+ "name": "weight",
2475
+ "type": "uint112",
2476
+ "internalType": "uint112"
2477
+ },
2478
+ {
2479
+ "name": "weightCutPercent",
2480
+ "type": "uint32",
2481
+ "internalType": "uint32"
2482
+ },
2483
+ {
2484
+ "name": "approvalHook",
2485
+ "type": "address",
2486
+ "internalType": "contract IJBRulesetApprovalHook"
2487
+ },
2488
+ {
2489
+ "name": "metadata",
2490
+ "type": "tuple",
2491
+ "internalType": "struct JBRulesetMetadata",
2492
+ "components": [
2493
+ {
2494
+ "name": "reservedPercent",
2495
+ "type": "uint16",
2496
+ "internalType": "uint16"
2497
+ },
2498
+ {
2499
+ "name": "cashOutTaxRate",
2500
+ "type": "uint16",
2501
+ "internalType": "uint16"
2502
+ },
2503
+ {
2504
+ "name": "baseCurrency",
2505
+ "type": "uint32",
2506
+ "internalType": "uint32"
2507
+ },
2508
+ {
2509
+ "name": "pausePay",
2510
+ "type": "bool",
2511
+ "internalType": "bool"
2512
+ },
2513
+ {
2514
+ "name": "pauseCreditTransfers",
2515
+ "type": "bool",
2516
+ "internalType": "bool"
2517
+ },
2518
+ {
2519
+ "name": "allowOwnerMinting",
2520
+ "type": "bool",
2521
+ "internalType": "bool"
2522
+ },
2523
+ {
2524
+ "name": "allowSetCustomToken",
2525
+ "type": "bool",
2526
+ "internalType": "bool"
2527
+ },
2528
+ {
2529
+ "name": "allowTerminalMigration",
2530
+ "type": "bool",
2531
+ "internalType": "bool"
2532
+ },
2533
+ {
2534
+ "name": "allowSetTerminals",
2535
+ "type": "bool",
2536
+ "internalType": "bool"
2537
+ },
2538
+ {
2539
+ "name": "allowSetController",
2540
+ "type": "bool",
2541
+ "internalType": "bool"
2542
+ },
2543
+ {
2544
+ "name": "allowAddAccountingContext",
2545
+ "type": "bool",
2546
+ "internalType": "bool"
2547
+ },
2548
+ {
2549
+ "name": "allowAddPriceFeed",
2550
+ "type": "bool",
2551
+ "internalType": "bool"
2552
+ },
2553
+ {
2554
+ "name": "ownerMustSendPayouts",
2555
+ "type": "bool",
2556
+ "internalType": "bool"
2557
+ },
2558
+ {
2559
+ "name": "holdFees",
2560
+ "type": "bool",
2561
+ "internalType": "bool"
2562
+ },
2563
+ {
2564
+ "name": "scopeCashOutsToLocalBalances",
2565
+ "type": "bool",
2566
+ "internalType": "bool"
2567
+ },
2568
+ {
2569
+ "name": "useDataHookForPay",
2570
+ "type": "bool",
2571
+ "internalType": "bool"
2572
+ },
2573
+ {
2574
+ "name": "useDataHookForCashOut",
2575
+ "type": "bool",
2576
+ "internalType": "bool"
2577
+ },
2578
+ {
2579
+ "name": "dataHook",
2580
+ "type": "address",
2581
+ "internalType": "address"
2582
+ },
2583
+ {
2584
+ "name": "metadata",
2585
+ "type": "uint16",
2586
+ "internalType": "uint16"
2587
+ }
2588
+ ]
2589
+ },
2590
+ {
2591
+ "name": "splitGroups",
2592
+ "type": "tuple[]",
2593
+ "internalType": "struct JBSplitGroup[]",
2594
+ "components": [
2595
+ {
2596
+ "name": "groupId",
2597
+ "type": "uint256",
2598
+ "internalType": "uint256"
2599
+ },
2600
+ {
2601
+ "name": "splits",
2602
+ "type": "tuple[]",
2603
+ "internalType": "struct JBSplit[]",
2604
+ "components": [
2605
+ {
2606
+ "name": "percent",
2607
+ "type": "uint32",
2608
+ "internalType": "uint32"
2609
+ },
2610
+ {
2611
+ "name": "projectId",
2612
+ "type": "uint64",
2613
+ "internalType": "uint64"
2614
+ },
2615
+ {
2616
+ "name": "beneficiary",
2617
+ "type": "address",
2618
+ "internalType": "address payable"
2619
+ },
2620
+ {
2621
+ "name": "preferAddToBalance",
2622
+ "type": "bool",
2623
+ "internalType": "bool"
2624
+ },
2625
+ {
2626
+ "name": "lockedUntil",
2627
+ "type": "uint48",
2628
+ "internalType": "uint48"
2629
+ },
2630
+ {
2631
+ "name": "hook",
2632
+ "type": "address",
2633
+ "internalType": "contract IJBSplitHook"
2634
+ }
2635
+ ]
2636
+ }
2637
+ ]
2638
+ },
2639
+ {
2640
+ "name": "fundAccessLimitGroups",
2641
+ "type": "tuple[]",
2642
+ "internalType": "struct JBFundAccessLimitGroup[]",
2643
+ "components": [
2644
+ {
2645
+ "name": "terminal",
2646
+ "type": "address",
2647
+ "internalType": "address"
2648
+ },
2649
+ {
2650
+ "name": "token",
2651
+ "type": "address",
2652
+ "internalType": "address"
2653
+ },
2654
+ {
2655
+ "name": "payoutLimits",
2656
+ "type": "tuple[]",
2657
+ "internalType": "struct JBCurrencyAmount[]",
2658
+ "components": [
2659
+ {
2660
+ "name": "amount",
2661
+ "type": "uint224",
2662
+ "internalType": "uint224"
2663
+ },
2664
+ {
2665
+ "name": "currency",
2666
+ "type": "uint32",
2667
+ "internalType": "uint32"
2668
+ }
2669
+ ]
2670
+ },
2671
+ {
2672
+ "name": "surplusAllowances",
2673
+ "type": "tuple[]",
2674
+ "internalType": "struct JBCurrencyAmount[]",
2675
+ "components": [
2676
+ {
2677
+ "name": "amount",
2678
+ "type": "uint224",
2679
+ "internalType": "uint224"
2680
+ },
2681
+ {
2682
+ "name": "currency",
2683
+ "type": "uint32",
2684
+ "internalType": "uint32"
2685
+ }
2686
+ ]
2687
+ }
2688
+ ]
2689
+ }
2690
+ ]
2691
+ },
2692
+ {
2693
+ "name": "memo",
2694
+ "type": "string",
2695
+ "internalType": "string"
2696
+ }
2697
+ ],
2698
+ "outputs": [
2699
+ {
2700
+ "name": "rulesetId",
2701
+ "type": "uint256",
2702
+ "internalType": "uint256"
2703
+ },
2704
+ {
2705
+ "name": "hook",
2706
+ "type": "address",
2707
+ "internalType": "contract IJB721TiersHook"
2708
+ }
2709
+ ],
2710
+ "stateMutability": "nonpayable"
2711
+ },
2712
+ {
2713
+ "type": "function",
2714
+ "name": "queueRulesetsOf",
2715
+ "inputs": [
2716
+ {
2717
+ "name": "projectId",
2718
+ "type": "uint256",
2719
+ "internalType": "uint256"
2720
+ },
2721
+ {
2722
+ "name": "deploy721Config",
2723
+ "type": "tuple",
2724
+ "internalType": "struct JBOmnichain721Config",
2725
+ "components": [
2726
+ {
2727
+ "name": "deployTiersHookConfig",
2728
+ "type": "tuple",
2729
+ "internalType": "struct JBDeploy721TiersHookConfig",
2730
+ "components": [
2731
+ {
2732
+ "name": "name",
2733
+ "type": "string",
2734
+ "internalType": "string"
2735
+ },
2736
+ {
2737
+ "name": "symbol",
2738
+ "type": "string",
2739
+ "internalType": "string"
2740
+ },
2741
+ {
2742
+ "name": "baseUri",
2743
+ "type": "string",
2744
+ "internalType": "string"
2745
+ },
2746
+ {
2747
+ "name": "tokenUriResolver",
2748
+ "type": "address",
2749
+ "internalType": "contract IJB721TokenUriResolver"
2750
+ },
2751
+ {
2752
+ "name": "contractUri",
2753
+ "type": "string",
2754
+ "internalType": "string"
2755
+ },
2756
+ {
2757
+ "name": "tiersConfig",
2758
+ "type": "tuple",
2759
+ "internalType": "struct JB721InitTiersConfig",
2760
+ "components": [
2761
+ {
2762
+ "name": "tiers",
2763
+ "type": "tuple[]",
2764
+ "internalType": "struct JB721TierConfig[]",
2765
+ "components": [
2766
+ {
2767
+ "name": "price",
2768
+ "type": "uint104",
2769
+ "internalType": "uint104"
2770
+ },
2771
+ {
2772
+ "name": "initialSupply",
2773
+ "type": "uint32",
2774
+ "internalType": "uint32"
2775
+ },
2776
+ {
2777
+ "name": "votingUnits",
2778
+ "type": "uint32",
2779
+ "internalType": "uint32"
2780
+ },
2781
+ {
2782
+ "name": "reserveFrequency",
2783
+ "type": "uint16",
2784
+ "internalType": "uint16"
2785
+ },
2786
+ {
2787
+ "name": "reserveBeneficiary",
2788
+ "type": "address",
2789
+ "internalType": "address"
2790
+ },
2791
+ {
2792
+ "name": "encodedIpfsUri",
2793
+ "type": "bytes32",
2794
+ "internalType": "bytes32"
2795
+ },
2796
+ {
2797
+ "name": "category",
2798
+ "type": "uint24",
2799
+ "internalType": "uint24"
2800
+ },
2801
+ {
2802
+ "name": "discountPercent",
2803
+ "type": "uint8",
2804
+ "internalType": "uint8"
2805
+ },
2806
+ {
2807
+ "name": "flags",
2808
+ "type": "tuple",
2809
+ "internalType": "struct JB721TierConfigFlags",
2810
+ "components": [
2811
+ {
2812
+ "name": "allowOwnerMint",
2813
+ "type": "bool",
2814
+ "internalType": "bool"
2815
+ },
2816
+ {
2817
+ "name": "useReserveBeneficiaryAsDefault",
2818
+ "type": "bool",
2819
+ "internalType": "bool"
2820
+ },
2821
+ {
2822
+ "name": "transfersPausable",
2823
+ "type": "bool",
2824
+ "internalType": "bool"
2825
+ },
2826
+ {
2827
+ "name": "useVotingUnits",
2828
+ "type": "bool",
2829
+ "internalType": "bool"
2830
+ },
2831
+ {
2832
+ "name": "cantBeRemoved",
2833
+ "type": "bool",
2834
+ "internalType": "bool"
2835
+ },
2836
+ {
2837
+ "name": "cantIncreaseDiscountPercent",
2838
+ "type": "bool",
2839
+ "internalType": "bool"
2840
+ },
2841
+ {
2842
+ "name": "cantBuyWithCredits",
2843
+ "type": "bool",
2844
+ "internalType": "bool"
2845
+ }
2846
+ ]
2847
+ },
2848
+ {
2849
+ "name": "splitPercent",
2850
+ "type": "uint32",
2851
+ "internalType": "uint32"
2852
+ },
2853
+ {
2854
+ "name": "splits",
2855
+ "type": "tuple[]",
2856
+ "internalType": "struct JBSplit[]",
2857
+ "components": [
2858
+ {
2859
+ "name": "percent",
2860
+ "type": "uint32",
2861
+ "internalType": "uint32"
2862
+ },
2863
+ {
2864
+ "name": "projectId",
2865
+ "type": "uint64",
2866
+ "internalType": "uint64"
2867
+ },
2868
+ {
2869
+ "name": "beneficiary",
2870
+ "type": "address",
2871
+ "internalType": "address payable"
2872
+ },
2873
+ {
2874
+ "name": "preferAddToBalance",
2875
+ "type": "bool",
2876
+ "internalType": "bool"
2877
+ },
2878
+ {
2879
+ "name": "lockedUntil",
2880
+ "type": "uint48",
2881
+ "internalType": "uint48"
2882
+ },
2883
+ {
2884
+ "name": "hook",
2885
+ "type": "address",
2886
+ "internalType": "contract IJBSplitHook"
2887
+ }
2888
+ ]
2889
+ }
2890
+ ]
2891
+ },
2892
+ {
2893
+ "name": "currency",
2894
+ "type": "uint32",
2895
+ "internalType": "uint32"
2896
+ },
2897
+ {
2898
+ "name": "decimals",
2899
+ "type": "uint8",
2900
+ "internalType": "uint8"
2901
+ }
2902
+ ]
2903
+ },
2904
+ {
2905
+ "name": "flags",
2906
+ "type": "tuple",
2907
+ "internalType": "struct JB721TiersHookFlags",
2908
+ "components": [
2909
+ {
2910
+ "name": "noNewTiersWithReserves",
2911
+ "type": "bool",
2912
+ "internalType": "bool"
2913
+ },
2914
+ {
2915
+ "name": "noNewTiersWithVotes",
2916
+ "type": "bool",
2917
+ "internalType": "bool"
2918
+ },
2919
+ {
2920
+ "name": "noNewTiersWithOwnerMinting",
2921
+ "type": "bool",
2922
+ "internalType": "bool"
2923
+ },
2924
+ {
2925
+ "name": "preventOverspending",
2926
+ "type": "bool",
2927
+ "internalType": "bool"
2928
+ },
2929
+ {
2930
+ "name": "issueTokensForSplits",
2931
+ "type": "bool",
2932
+ "internalType": "bool"
2933
+ }
2934
+ ]
2935
+ }
2936
+ ]
2937
+ },
2938
+ {
2939
+ "name": "useDataHookForCashOut",
2940
+ "type": "bool",
2941
+ "internalType": "bool"
2942
+ },
2943
+ {
2944
+ "name": "salt",
2945
+ "type": "bytes32",
2946
+ "internalType": "bytes32"
2947
+ }
2948
+ ]
2949
+ },
2950
+ {
2951
+ "name": "rulesetConfigurations",
2952
+ "type": "tuple[]",
2953
+ "internalType": "struct JBRulesetConfig[]",
2954
+ "components": [
2955
+ {
2956
+ "name": "mustStartAtOrAfter",
2957
+ "type": "uint48",
2958
+ "internalType": "uint48"
2959
+ },
2960
+ {
2961
+ "name": "duration",
2962
+ "type": "uint32",
2963
+ "internalType": "uint32"
2964
+ },
2965
+ {
2966
+ "name": "weight",
2967
+ "type": "uint112",
2968
+ "internalType": "uint112"
2969
+ },
2970
+ {
2971
+ "name": "weightCutPercent",
2972
+ "type": "uint32",
2973
+ "internalType": "uint32"
2974
+ },
2975
+ {
2976
+ "name": "approvalHook",
2977
+ "type": "address",
2978
+ "internalType": "contract IJBRulesetApprovalHook"
2979
+ },
2980
+ {
2981
+ "name": "metadata",
2982
+ "type": "tuple",
2983
+ "internalType": "struct JBRulesetMetadata",
2984
+ "components": [
2985
+ {
2986
+ "name": "reservedPercent",
2987
+ "type": "uint16",
2988
+ "internalType": "uint16"
2989
+ },
2990
+ {
2991
+ "name": "cashOutTaxRate",
2992
+ "type": "uint16",
2993
+ "internalType": "uint16"
2994
+ },
2995
+ {
2996
+ "name": "baseCurrency",
2997
+ "type": "uint32",
2998
+ "internalType": "uint32"
2999
+ },
3000
+ {
3001
+ "name": "pausePay",
3002
+ "type": "bool",
3003
+ "internalType": "bool"
3004
+ },
3005
+ {
3006
+ "name": "pauseCreditTransfers",
3007
+ "type": "bool",
3008
+ "internalType": "bool"
3009
+ },
3010
+ {
3011
+ "name": "allowOwnerMinting",
3012
+ "type": "bool",
3013
+ "internalType": "bool"
3014
+ },
3015
+ {
3016
+ "name": "allowSetCustomToken",
3017
+ "type": "bool",
3018
+ "internalType": "bool"
3019
+ },
3020
+ {
3021
+ "name": "allowTerminalMigration",
3022
+ "type": "bool",
3023
+ "internalType": "bool"
3024
+ },
3025
+ {
3026
+ "name": "allowSetTerminals",
3027
+ "type": "bool",
3028
+ "internalType": "bool"
3029
+ },
3030
+ {
3031
+ "name": "allowSetController",
3032
+ "type": "bool",
3033
+ "internalType": "bool"
3034
+ },
3035
+ {
3036
+ "name": "allowAddAccountingContext",
3037
+ "type": "bool",
3038
+ "internalType": "bool"
3039
+ },
3040
+ {
3041
+ "name": "allowAddPriceFeed",
3042
+ "type": "bool",
3043
+ "internalType": "bool"
3044
+ },
3045
+ {
3046
+ "name": "ownerMustSendPayouts",
3047
+ "type": "bool",
3048
+ "internalType": "bool"
3049
+ },
3050
+ {
3051
+ "name": "holdFees",
3052
+ "type": "bool",
3053
+ "internalType": "bool"
3054
+ },
3055
+ {
3056
+ "name": "scopeCashOutsToLocalBalances",
3057
+ "type": "bool",
3058
+ "internalType": "bool"
3059
+ },
3060
+ {
3061
+ "name": "useDataHookForPay",
3062
+ "type": "bool",
3063
+ "internalType": "bool"
3064
+ },
3065
+ {
3066
+ "name": "useDataHookForCashOut",
3067
+ "type": "bool",
3068
+ "internalType": "bool"
3069
+ },
3070
+ {
3071
+ "name": "dataHook",
3072
+ "type": "address",
3073
+ "internalType": "address"
3074
+ },
3075
+ {
3076
+ "name": "metadata",
3077
+ "type": "uint16",
3078
+ "internalType": "uint16"
3079
+ }
3080
+ ]
3081
+ },
3082
+ {
3083
+ "name": "splitGroups",
3084
+ "type": "tuple[]",
3085
+ "internalType": "struct JBSplitGroup[]",
3086
+ "components": [
3087
+ {
3088
+ "name": "groupId",
3089
+ "type": "uint256",
3090
+ "internalType": "uint256"
3091
+ },
3092
+ {
3093
+ "name": "splits",
3094
+ "type": "tuple[]",
3095
+ "internalType": "struct JBSplit[]",
3096
+ "components": [
3097
+ {
3098
+ "name": "percent",
3099
+ "type": "uint32",
3100
+ "internalType": "uint32"
3101
+ },
3102
+ {
3103
+ "name": "projectId",
3104
+ "type": "uint64",
3105
+ "internalType": "uint64"
3106
+ },
3107
+ {
3108
+ "name": "beneficiary",
3109
+ "type": "address",
3110
+ "internalType": "address payable"
3111
+ },
3112
+ {
3113
+ "name": "preferAddToBalance",
3114
+ "type": "bool",
3115
+ "internalType": "bool"
3116
+ },
3117
+ {
3118
+ "name": "lockedUntil",
3119
+ "type": "uint48",
3120
+ "internalType": "uint48"
3121
+ },
3122
+ {
3123
+ "name": "hook",
3124
+ "type": "address",
3125
+ "internalType": "contract IJBSplitHook"
3126
+ }
3127
+ ]
3128
+ }
3129
+ ]
3130
+ },
3131
+ {
3132
+ "name": "fundAccessLimitGroups",
3133
+ "type": "tuple[]",
3134
+ "internalType": "struct JBFundAccessLimitGroup[]",
3135
+ "components": [
3136
+ {
3137
+ "name": "terminal",
3138
+ "type": "address",
3139
+ "internalType": "address"
3140
+ },
3141
+ {
3142
+ "name": "token",
3143
+ "type": "address",
3144
+ "internalType": "address"
3145
+ },
3146
+ {
3147
+ "name": "payoutLimits",
3148
+ "type": "tuple[]",
3149
+ "internalType": "struct JBCurrencyAmount[]",
3150
+ "components": [
3151
+ {
3152
+ "name": "amount",
3153
+ "type": "uint224",
3154
+ "internalType": "uint224"
3155
+ },
3156
+ {
3157
+ "name": "currency",
3158
+ "type": "uint32",
3159
+ "internalType": "uint32"
3160
+ }
3161
+ ]
3162
+ },
3163
+ {
3164
+ "name": "surplusAllowances",
3165
+ "type": "tuple[]",
3166
+ "internalType": "struct JBCurrencyAmount[]",
3167
+ "components": [
3168
+ {
3169
+ "name": "amount",
3170
+ "type": "uint224",
3171
+ "internalType": "uint224"
3172
+ },
3173
+ {
3174
+ "name": "currency",
3175
+ "type": "uint32",
3176
+ "internalType": "uint32"
3177
+ }
3178
+ ]
3179
+ }
3180
+ ]
3181
+ }
3182
+ ]
3183
+ },
3184
+ {
3185
+ "name": "memo",
3186
+ "type": "string",
3187
+ "internalType": "string"
3188
+ }
3189
+ ],
3190
+ "outputs": [
3191
+ {
3192
+ "name": "rulesetId",
3193
+ "type": "uint256",
3194
+ "internalType": "uint256"
3195
+ },
3196
+ {
3197
+ "name": "hook",
3198
+ "type": "address",
3199
+ "internalType": "contract IJB721TiersHook"
3200
+ }
3201
+ ],
3202
+ "stateMutability": "nonpayable"
3203
+ },
3204
+ {
3205
+ "type": "function",
3206
+ "name": "supportsInterface",
3207
+ "inputs": [
3208
+ {
3209
+ "name": "interfaceId",
3210
+ "type": "bytes4",
3211
+ "internalType": "bytes4"
3212
+ }
3213
+ ],
3214
+ "outputs": [
3215
+ {
3216
+ "name": "flag",
3217
+ "type": "bool",
3218
+ "internalType": "bool"
3219
+ }
3220
+ ],
3221
+ "stateMutability": "view"
3222
+ },
3223
+ {
3224
+ "type": "function",
3225
+ "name": "tiered721HookOf",
3226
+ "inputs": [
3227
+ {
3228
+ "name": "projectId",
3229
+ "type": "uint256",
3230
+ "internalType": "uint256"
3231
+ },
3232
+ {
3233
+ "name": "rulesetId",
3234
+ "type": "uint256",
3235
+ "internalType": "uint256"
3236
+ }
3237
+ ],
3238
+ "outputs": [
3239
+ {
3240
+ "name": "hook",
3241
+ "type": "address",
3242
+ "internalType": "contract IJB721TiersHook"
3243
+ },
3244
+ {
3245
+ "name": "useDataHookForCashOut",
3246
+ "type": "bool",
3247
+ "internalType": "bool"
3248
+ }
3249
+ ],
3250
+ "stateMutability": "view"
3251
+ },
3252
+ {
3253
+ "type": "function",
3254
+ "name": "trustedForwarder",
3255
+ "inputs": [],
3256
+ "outputs": [
3257
+ {
3258
+ "name": "",
3259
+ "type": "address",
3260
+ "internalType": "address"
3261
+ }
3262
+ ],
3263
+ "stateMutability": "view"
3264
+ },
3265
+ {
3266
+ "type": "error",
3267
+ "name": "JBOmnichainDeployer_ControllerMismatch",
3268
+ "inputs": [
3269
+ {
3270
+ "name": "projectId",
3271
+ "type": "uint256",
3272
+ "internalType": "uint256"
3273
+ },
3274
+ {
3275
+ "name": "expectedController",
3276
+ "type": "address",
3277
+ "internalType": "address"
3278
+ },
3279
+ {
3280
+ "name": "actualController",
3281
+ "type": "address",
3282
+ "internalType": "address"
3283
+ }
3284
+ ]
3285
+ },
3286
+ {
3287
+ "type": "error",
3288
+ "name": "JBOmnichainDeployer_InvalidHook",
3289
+ "inputs": [
3290
+ {
3291
+ "name": "hook",
3292
+ "type": "address",
3293
+ "internalType": "address"
3294
+ },
3295
+ {
3296
+ "name": "projectId",
3297
+ "type": "uint256",
3298
+ "internalType": "uint256"
3299
+ },
3300
+ {
3301
+ "name": "rulesetId",
3302
+ "type": "uint256",
3303
+ "internalType": "uint256"
3304
+ }
3305
+ ]
3306
+ },
3307
+ {
3308
+ "type": "error",
3309
+ "name": "JBOmnichainDeployer_NoRulesetConfigurations",
3310
+ "inputs": [
3311
+ {
3312
+ "name": "rulesetConfigurationCount",
3313
+ "type": "uint256",
3314
+ "internalType": "uint256"
3315
+ }
3316
+ ]
3317
+ },
3318
+ {
3319
+ "type": "error",
3320
+ "name": "JBOmnichainDeployer_RulesetIdsUnpredictable",
3321
+ "inputs": [
3322
+ {
3323
+ "name": "projectId",
3324
+ "type": "uint256",
3325
+ "internalType": "uint256"
3326
+ },
3327
+ {
3328
+ "name": "latestRulesetId",
3329
+ "type": "uint256",
3330
+ "internalType": "uint256"
3331
+ },
3332
+ {
3333
+ "name": "currentTimestamp",
3334
+ "type": "uint256",
3335
+ "internalType": "uint256"
3336
+ }
3337
+ ]
3338
+ },
3339
+ {
3340
+ "type": "error",
3341
+ "name": "JBOmnichainDeployer_UnexpectedNFTReceived",
3342
+ "inputs": [
3343
+ {
3344
+ "name": "caller",
3345
+ "type": "address",
3346
+ "internalType": "address"
3347
+ },
3348
+ {
3349
+ "name": "from",
3350
+ "type": "address",
3351
+ "internalType": "address"
3352
+ },
3353
+ {
3354
+ "name": "tokenId",
3355
+ "type": "uint256",
3356
+ "internalType": "uint256"
3357
+ }
3358
+ ]
3359
+ },
3360
+ {
3361
+ "type": "error",
3362
+ "name": "JBPermissioned_Unauthorized",
3363
+ "inputs": [
3364
+ {
3365
+ "name": "account",
3366
+ "type": "address",
3367
+ "internalType": "address"
3368
+ },
3369
+ {
3370
+ "name": "sender",
3371
+ "type": "address",
3372
+ "internalType": "address"
3373
+ },
3374
+ {
3375
+ "name": "projectId",
3376
+ "type": "uint256",
3377
+ "internalType": "uint256"
3378
+ },
3379
+ {
3380
+ "name": "permissionId",
3381
+ "type": "uint256",
3382
+ "internalType": "uint256"
3383
+ }
3384
+ ]
3385
+ },
3386
+ {
3387
+ "type": "error",
3388
+ "name": "PRBMath_MulDiv_Overflow",
3389
+ "inputs": [
3390
+ {
3391
+ "name": "x",
3392
+ "type": "uint256",
3393
+ "internalType": "uint256"
3394
+ },
3395
+ {
3396
+ "name": "y",
3397
+ "type": "uint256",
3398
+ "internalType": "uint256"
3399
+ },
3400
+ {
3401
+ "name": "denominator",
3402
+ "type": "uint256",
3403
+ "internalType": "uint256"
3404
+ }
3405
+ ]
3406
+ }
3407
+ ],
3408
+ "args": [
3409
+ "0x7903a854aE91eAf635430D120a1a434085cEf297",
3410
+ "0xb7B8EC35e2dd84afff04Ee769C6189e7A4d44A78",
3411
+ "0xf92AC1aB5A00033E35a3975739124F61928C36B0",
3412
+ "0x3Fcec3572e84b624477BcfF4E2CF1f7dEAb648F1",
3413
+ "0x3bA60b60933916a7C87D0860DcEE62a0CE34E3e2"
3414
+ ],
3415
+ "solcInputHash": "9a3e5010f6c6a02ca2f8c85694eb3be2",
3416
+ "receipt": {
3417
+ "blockHash": "0x3a359e312e0f710529b52a9a474579db8169bca45ccaf9992eebb31e2479cbb9",
3418
+ "blockNumber": "0x1c43515e",
3419
+ "contractAddress": null,
3420
+ "cumulativeGasUsed": "0x529da5",
3421
+ "effectiveGasPrice": "0x1312d00",
3422
+ "from": "0x755ff2f75a0a586ecfa2b9a3c959cb662458a105",
3423
+ "gasUsed": "0x506a38",
3424
+ "gasUsedForL1": "0x229c",
3425
+ "l1BlockNumber": "0x182884e",
3426
+ "logs": [
3427
+ {
3428
+ "address": "0xa2ea7657440875bf916cbfc0cfa88f13e38ad463",
3429
+ "topics": [
3430
+ "0x572f161235911da04685a68c06adf558fc7e4a36909dca394650e0adc19cc93d",
3431
+ "0x000000000000000000000000755ff2f75a0a586ecfa2b9a3c959cb662458a105",
3432
+ "0x00000000000000000000000091f164e1300f13beaf77358e4d84ed78f8e99d38",
3433
+ "0x2771254a38489db73ad054450b912f8183e7459cba5d2f80c59612d1885c7c88"
3434
+ ],
3435
+ "data": "0x0000000000000000000000000000000000000000000000000000000000000000",
3436
+ "blockNumber": "0x1c43515e",
3437
+ "transactionHash": "0x18f6507ad8145fc927a6540b0e8154643e680cf4a956d3b192a20fe92967def2",
3438
+ "transactionIndex": "0x2",
3439
+ "blockHash": "0x3a359e312e0f710529b52a9a474579db8169bca45ccaf9992eebb31e2479cbb9",
3440
+ "blockTimestamp": "0x6a31919e",
3441
+ "logIndex": "0x4",
3442
+ "removed": false
3443
+ },
3444
+ {
3445
+ "address": "0xf92ac1ab5a00033e35a3975739124f61928c36b0",
3446
+ "topics": [
3447
+ "0x5324a861114a736770617a7dad3321b8417dc39698b30adfade6d0367b2e5d59",
3448
+ "0x0000000000000000000000007903a854ae91eaf635430d120a1a434085cef297",
3449
+ "0x000000000000000000000000b853758a70a6b4216c09f1d071ea2344aba0a34f",
3450
+ "0x0000000000000000000000000000000000000000000000000000000000000000"
3451
+ ],
3452
+ "data": "0x00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000100000000000000000000000000000000b853758a70a6b4216c09f1d071ea2344aba0a34f00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020",
3453
+ "blockNumber": "0x1c43515e",
3454
+ "transactionHash": "0x18f6507ad8145fc927a6540b0e8154643e680cf4a956d3b192a20fe92967def2",
3455
+ "transactionIndex": "0x2",
3456
+ "blockHash": "0x3a359e312e0f710529b52a9a474579db8169bca45ccaf9992eebb31e2479cbb9",
3457
+ "blockTimestamp": "0x6a31919e",
3458
+ "logIndex": "0x5",
3459
+ "removed": false
3460
+ },
3461
+ {
3462
+ "address": "0x4dc161ef837ff1c4485b08ddfcdb182f2157be18",
3463
+ "topics": [
3464
+ "0x6895c13664aa4f67288b25d7a21d7aaa34916e355fb9b6fae0a139a9085becb8",
3465
+ "0x00000000000000000000000091f164e1300f13beaf77358e4d84ed78f8e99d38"
3466
+ ],
3467
+ "data": "0x",
3468
+ "blockNumber": "0x1c43515e",
3469
+ "transactionHash": "0x18f6507ad8145fc927a6540b0e8154643e680cf4a956d3b192a20fe92967def2",
3470
+ "transactionIndex": "0x2",
3471
+ "blockHash": "0x3a359e312e0f710529b52a9a474579db8169bca45ccaf9992eebb31e2479cbb9",
3472
+ "blockTimestamp": "0x6a31919e",
3473
+ "logIndex": "0x6",
3474
+ "removed": false
3475
+ },
3476
+ {
3477
+ "address": "0x91f164e1300f13beaf77358e4d84ed78f8e99d38",
3478
+ "topics": [
3479
+ "0xa65fb05c5808f5f389d72edeaf719ce38f4cc55c1f69ca3cbfb31c21501caa07",
3480
+ "0x7121bdb5da6ff5e4ab87d465ed70caab6b1014022975d109ade9af46634578d5"
3481
+ ],
3482
+ "data": "0x0000000000000000000000000000000000000000000000000000000000000058",
3483
+ "blockNumber": "0x1c43515e",
3484
+ "transactionHash": "0x18f6507ad8145fc927a6540b0e8154643e680cf4a956d3b192a20fe92967def2",
3485
+ "transactionIndex": "0x2",
3486
+ "blockHash": "0x3a359e312e0f710529b52a9a474579db8169bca45ccaf9992eebb31e2479cbb9",
3487
+ "blockTimestamp": "0x6a31919e",
3488
+ "logIndex": "0x7",
3489
+ "removed": false
3490
+ }
3491
+ ],
3492
+ "logsBloom": "0x00000000000010000000000000080000005000000000000000000000000000004000000000000000000000000040000010000000000000000000000000000000000100000000200000000000000000000000000002000040000000000000000040000000020000800000000000000800000000008020000000000000000080008800000000000008000104000000000000000000000100000000000000000000004000040000000080000000000000002200000000040800000000000004000000000002008000000000000000400000000000000000000000000000800020000000002000000900000800000000000210000000000080000040000000000000",
3493
+ "status": "0x1",
3494
+ "timeboosted": false,
3495
+ "to": "0xa2ea7657440875bf916cbfc0cfa88f13e38ad463",
3496
+ "transactionHash": "0x18f6507ad8145fc927a6540b0e8154643e680cf4a956d3b192a20fe92967def2",
3497
+ "transactionIndex": "0x2",
3498
+ "type": "0x2"
3499
+ },
3500
+ "bytecode": "0x61016080604052346103335760a081615be9803803809161002082856103f7565b8339810103126103335780516001600160a01b0381168103610333576020820151906001600160a01b03821682036103335760408301516001600160a01b03811681036103335760608401516001600160a01b0381169490919085830361033357608001516001600160a01b03811681036103335760805260a05260c05260405163293c499960e01b8152602081600481875afa9081156103a1575f916103ac575b506101205261014052610100526040516388bc2ef360e01b815290602090829060049082905afa9081156103a1575f9161035f575b5060e0526040805161010982826103f7565b6001815260208101601f19830136823781511561034b576020905261014051825191906001600160a01b0316606083016001600160401b03811184821017610337578452825260208201915f835283810191825260018060a01b0360a0511691823b15610333578451631127c92960e21b81523060048201526024810186905291516001600160a01b0316604483015292516001600160401b03166064820152915160606084840152805160a48401819052839160c48301916020909101905f5b8181106103175750505091815f81819503925af1801561030d576102fd575b50516157ce908161041b823960805181818161072d01528181610b920152615793015260a051818181610227015281816109dd0152818161463e0152818161496301528181614a4701528181614b2b0152614cc1015260c05181818161026b01528181612b9c01528181613cac015281816140e60152818161482e015281816150a9015261519f015260e0518181816106e90152818161505e0152615158015261010051818181610418015261536e01526101205181818161080f01528181610ebb01528181610f3d01528181613c0e01528181613d3f01528181613da6015281816140700152614721015261014051818181610346015281816108f50152818161281101528181612f7a0152613e650152f35b5f610307916103f7565b5f6101e9565b82513d5f823e3d90fd5b825160ff168452869450602093840193909201916001016101ca565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b90506020813d602011610399575b8161037a602093836103f7565b8101031261033357516001600160a01b0381168103610333575f6100f7565b3d915061036d565b6040513d5f823e3d90fd5b90506020939193813d6020116103ef575b816103ca602093836103f7565b810103126103335751916001600160a01b0383168303610333579092909160046100c2565b3d91506103bd565b601f909101601f19168101906001600160401b038211908210176103375760405256fe6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a714610fa957508063150b7a0214610eea578063293c499914610ea6578063296eee5114610e815780632d99317314610d915780633141db7014610d2c57806338945b5814610c835780634509224414610bc6578063572b6c0514610b72578063670d99be14610a90578063673706e8146107bb5780636a19a70f1461075c5780637da0a8771461071857806388bc2ef3146106d45780638cc35846146105fb57806394e1cf571461055e57806399f6d77f14610447578063abf8c5c814610403578063b0401dab14610375578063b5d2553314610331578063b64ce2c31461029a578063ee0fc12114610256578063f434c914146102125763f672acac14610124575f80fd5b3461020e57602036600319011261020e576004356001600160401b03811161020e576101c0600319823603011261020e5761016190600401612f70565b91939060405194859460a0860193865260208601526040850152606084015260a06080840152815180915260c0830190602060c08260051b8601019301915f905b8282106101b157505050500390f35b919360019193955060206101fe819260bf198a8203018652608060608a51878060a01b03815116845285810151151586850152604081015160408501520151918160608201520190611d0b565b96019201920185949391926101a2565b5f80fd5b3461020e575f36600319011261020e576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461020e575f36600319011261020e576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461020e57602036600319011261020e576102b6600435612b7f565b90604051918291604083019083526040602084015281518091526020606084019201905f5b8181106102e9575050500390f35b91935091602060806001926001600160801b03606088518051845260ff86820151168685015282604082015116604085015201511660608201520194019101918493926102db565b3461020e575f36600319011261020e576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461020e5761038336611cf5565b905f60408051610392816110fe565b82815282602082015201525f525f60205260405f20905f52602052606060405f20604051906103c0826110fe565b5460018060a01b0381169182815260ff60406020830192828560a01c1615158452019260a81c161515825260405192835251151560208301525115156040820152f35b3461020e575f36600319011261020e576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461020e5761016036600319011261020e5761012036602319011261020e57604051610472816110e2565b60243565ffffffffffff8116810361020e57815260443565ffffffffffff8116810361020e57602082015260643565ffffffffffff8116810361020e57604082015260843565ffffffffffff8116810361020e57606082015260a43563ffffffff8116810361020e57608082015260c4356001600160701b038116810361020e5760a082015260e43563ffffffff8116810361020e5760c0820152610104356001600160a01b038116810361020e5760e08201526101243561010082015261014435906001600160a01b038216820361020e57602091610554916004356127de565b6040519015158152f35b3461020e57608036600319011261020e576024356001600160401b03811161020e5761058e90369060040161191c565b6044356001600160401b03811161020e576105ad9036906004016113b8565b606435916001600160401b03831161020e576105d06105db933690600401611086565b92909160043561404a565b604080519283526001600160a01b039091166020830152819081015b0390f35b3461020e57602036600319011261020e576004356001600160401b03811161020e57610180600319823603011261020e5761063890600401612211565b90604051918291604083019083526040602084015281518091526060830190602060608260051b8601019301915f905b82821061067757505050500390f35b919360019193955060206106c48192605f198a8203018652608060608a51878060a01b03815116845285810151151586850152604081015160408501520151918160608201520190611d0b565b9601920192018594939192610668565b3461020e575f36600319011261020e576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461020e575f36600319011261020e576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461020e5761076a36611cf5565b905f52600160205260405f20905f526020526040805f20602082519161078f836110b3565b546001600160a01b03811680845260a09190911c60ff1615159190920181905282519182526020820152f35b3461020e57604036600319011261020e576024356004356001600160401b03821161020e5781600401906040600319843603011261020e576040516331a9108f60e11b8152600481018290526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610967575f91610a56575b50610850615768565b6001600160a01b038281169116808214158061099d575b610972576108f05f86866108d28a61088084848b614bde565b6108ba6108c861088e615768565b6040805160249590950135602086019081526001600160a01b0390921690850152929182906060820190565b03601f1981018352826111a2565b5190209280611d43565b604051639d7f900160e01b8152958694859491939160048601611e2d565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af18015610967576105f7915f91610945575b50604051918291602083526020830190611848565b61096191503d805f833e61095981836111a2565b810190611d78565b82610930565b6040513d5f823e3d90fd5b908360849260405192631326f75560e11b845260048401526024830152604482015260216064820152fd5b50604051631a45b42760e11b81526004810182905260248101839052604481018590526021606482015260016084820181905260a482015260208160c4817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610967575f91610a1c575b5015610867565b90506020813d602011610a4e575b81610a37602093836111a2565b8101031261020e57610a4890611f62565b87610a15565b3d9150610a2a565b90506020813d602011610a88575b81610a71602093836111a2565b8101031261020e57610a8290611d2f565b84610847565b3d9150610a64565b60c036600319011261020e57610aa461105c565b6024356001600160401b03811161020e57610ac3903690600401611086565b91906044356001600160401b03811161020e57610ae49036906004016113b8565b6064356001600160401b03811161020e57610b03903690600401611818565b6084929192356001600160401b03811161020e57610b25903690600401611086565b93909260a435966001600160401b03881161020e576040600319893603011261020e576105f798610b639860040197610b5d84613f4e565b92613bbd565b60409391935193849384611884565b3461020e57602036600319011261020e576020610b8d61105c565b6040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b039081169216919091148152f35b3461020e5760c036600319011261020e576024356001600160401b03811161020e57610bf6903690600401611086565b6044356001600160401b03811161020e57610c1590369060040161191c565b916064356001600160401b03811161020e57610c359036906004016113b8565b6084356001600160401b03811161020e57610c54903690600401611818565b9160a435956001600160401b03871161020e57610c786105db973690600401611086565b9690956004356146f1565b3461020e5760a036600319011261020e576024356001600160401b03811161020e57610cb3903690600401611086565b906044356001600160401b03811161020e57610cd39036906004016113b8565b916064356001600160401b03811161020e57610cf3903690600401611818565b90608435946001600160401b03861161020e57610d176105db963690600401611086565b959094610d2383613f4e565b916004356146f1565b3461020e57606036600319011261020e576024356001600160401b03811161020e57610d5c9036906004016113b8565b604435906001600160401b03821161020e57610d7f6105db923690600401611086565b91610d8981613f4e565b60043561404a565b60e036600319011261020e57610da561105c565b6024356001600160401b03811161020e57610dc4903690600401611086565b9091604435906001600160401b03821161020e576060600319833603011261020e576064356001600160401b03811161020e57610e059036906004016113b8565b906084356001600160401b03811161020e57610e25903690600401611818565b9060a4356001600160401b03811161020e57610e45903690600401611086565b94909360c435976001600160401b03891161020e5760406003198a3603011261020e576105f799610b5d610b639a60040199369060040161191c565b3461020e575f36600319011261020e576040515f5c6001600160a01b03168152602090f35b3461020e575f36600319011261020e576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461020e57608036600319011261020e57610f0361105c565b506024356001600160a01b0381169081900361020e576064356001600160401b03811161020e57610f38903690600401611086565b5050337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614801590610fa0575b610f8457604051630a85bd0160e11b8152602090f35b6388470c7960e01b5f523360045260245260443560445260645ffd5b50801515610f6e565b3461020e57602036600319011261020e576004359063ffffffff60e01b821680920361020e5760209163c1c8b89b60e01b811490811561104b575b811561103a575b8115611029575b8115611018575b8115611007575b5015158152f35b6301ffc9a760e01b14905083611000565b630a85bd0160e11b81149150610ff9565b63296eee5160e01b81149150610ff2565b63b64ce2c360e01b81149150610feb565b63e347239560e01b81149150610fe4565b600435906001600160a01b038216820361020e57565b35906001600160a01b038216820361020e57565b9181601f8401121561020e578235916001600160401b03831161020e576020838186019501011161020e57565b604081019081106001600160401b038211176110ce57604052565b634e487b7160e01b5f52604160045260245ffd5b61012081019081106001600160401b038211176110ce57604052565b606081019081106001600160401b038211176110ce57604052565b61026081019081106001600160401b038211176110ce57604052565b608081019081106001600160401b038211176110ce57604052565b60e081019081106001600160401b038211176110ce57604052565b61016081019081106001600160401b038211176110ce57604052565b60a081019081106001600160401b038211176110ce57604052565b90601f801991011681019081106001600160401b038211176110ce57604052565b6001600160401b0381116110ce5760051b60200190565b359065ffffffffffff8216820361020e57565b359063ffffffff8216820361020e57565b359061ffff8216820361020e57565b3590811515820361020e57565b81601f8201121561020e57803590611231826111c3565b9261123f60405194856111a2565b828452602060c081860194028301019181831161020e57602001925b828410611269575050505090565b60c08483031261020e576040519060c082018281106001600160401b038211176110ce57604052611299856111ed565b825260208501356001600160401b038116810361020e57602083015260408501356001600160a01b038116810361020e5760408301526112db6060860161120d565b60608301526112ec608086016111da565b608083015260a0850135906001600160a01b038216820361020e578260209260a060c095015281520193019261125b565b81601f8201121561020e57803590611334826111c3565b9261134260405194856111a2565b82845260208085019360061b8301019181831161020e57602001925b82841061136c575050505090565b60408483031261020e5760405190611383826110b3565b8435906001600160e01b038216820361020e5782602092604094526113a98388016111ed565b8382015281520193019261135e565b9080601f8301121561020e578135916113d0836111c3565b926113de60405194856111a2565b80845260208085019160051b8301019183831161020e5760208101915b83831061140a57505050505090565b82356001600160401b03811161020e578201808603601f190190610340821261020e576040519161010083018381106001600160401b038211176110ce57604052611457602083016111da565b8352611465604083016111ed565b60208401526060820135906001600160701b038216820361020e57610260916040850152611495608084016111ed565b60608501526114a660a08401611072565b6080850152609f19011261020e576040516114c081611119565b6114cc60c083016111fe565b81526114da60e083016111fe565b60208201526114ec61010083016111ed565b60408201526114fe610120830161120d565b6060820152611510610140830161120d565b6080820152611522610160830161120d565b60a0820152611534610180830161120d565b60c08201526115466101a0830161120d565b60e08201526115586101c0830161120d565b61010082015261156b6101e0830161120d565b61012082015261157e610200830161120d565b610140820152611591610220830161120d565b6101608201526115a4610240830161120d565b6101808201526115b7610260830161120d565b6101a08201526115ca610280830161120d565b6101c08201526115dd6102a0830161120d565b6101e08201526115f06102c0830161120d565b6102008201526116036102e08301611072565b61022082015261161661030083016111fe565b61024082015260a08301526103208101356001600160401b03811161020e5760209082010187601f8201121561020e57803590611652826111c3565b9161166060405193846111a2565b80835260208084019160051b830101918a831161020e5760208101915b8383106117b0575050505060c08301526103408101356001600160401b03811161020e57602091010186601f8201121561020e578035906116bd826111c3565b916116cb60405193846111a2565b80835260208084019160051b8301019189831161020e5760208101915b838310611706575050505060e08201528152602092830192016113fb565b82356001600160401b03811161020e578201906080828d03601f19011261020e576040519061173482611135565b61174060208401611072565b825261174e60408401611072565b602083015260608301356001600160401b03811161020e578d60206117759286010161131d565b60408301526080830135916001600160401b03831161020e576117a08e60208096958196010161131d565b60608201528152019201916116e8565b82356001600160401b03811161020e5782016040818e03601f19011261020e57604051916117dd836110b3565b602082013583526040820135926001600160401b03841161020e576118098f602080968196010161121a565b8382015281520192019161167d565b9181601f8401121561020e578235916001600160401b03831161020e576020808501948460051b01011161020e57565b90602080835192838152019201905f5b8181106118655750505090565b82516001600160a01b0316845260209384019390920191600101611858565b9081526001600160a01b0390911660208201526060604082018190526118ac92910190611848565b90565b6001600160401b0381116110ce57601f01601f191660200190565b81601f8201121561020e576020813591016118e4826118af565b926118f260405194856111a2565b8284528282011161020e57815f92602092838601378301015290565b359060ff8216820361020e57565b919060608382031261020e5760405190611935826110fe565b819380356001600160401b03811161020e57810190818303610160811261020e576040519361196385611150565b83356001600160401b03811161020e578161197f9186016118ca565b855260208401356001600160401b03811161020e57816119a09186016118ca565b602086015260408401356001600160401b03811161020e57816119c49186016118ca565b604086015260608401356001600160a01b038116810361020e57606086015260808401356001600160401b03811161020e5781611a029186016118ca565b608086015260a08401356001600160401b03811161020e57840160608183031261020e5760405191611a33836110fe565b81356001600160401b03811161020e5782019080601f8301121561020e57813591611a5d836111c3565b92611a6b60405194856111a2565b80845260208085019160051b8301019183831161020e5760208101915b838310611b4d57505050505060408392611ab89260a0969552611aad602082016111ed565b60208501520161190e565b60408201528583015260bf19011261020e576040928392611b29610140855192611ae184611187565b611aed60c0820161120d565b8452611afb60e0820161120d565b6020850152611b0d610100820161120d565b87850152611b1e610120820161120d565b60608501520161120d565b608082015260c08201528452611b416020820161120d565b60208501520135910152565b82356001600160401b03811161020e57820190818603601f190190610220821261020e5760405191611b7e8361116b565b60208401356cffffffffffffffffffffffffff8116810361020e578352611ba7604085016111ed565b6020840152611bb8606085016111ed565b6040840152611bc9608085016111fe565b6060840152611bda60a08501611072565b608084015260c084013560a084015260e08401359062ffffff8216820361020e5760e09160c0850152611c10610100860161190e565b8483015260ff19011261020e57604051611c2981611150565b611c36610120850161120d565b8152611c45610140850161120d565b6020820152611c57610160850161120d565b6040820152611c69610180850161120d565b6060820152611c7b6101a0850161120d565b6080820152611c8d6101c0850161120d565b60a0820152611c9f6101e0850161120d565b60c0820152610100830152611cb761020084016111ed565b610120830152610220830135916001600160401b03831161020e57611ce48860208096958196010161121a565b610140820152815201920191611a88565b604090600319011261020e576004359060243590565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b51906001600160a01b038216820361020e57565b903590601e198136030182121561020e57018035906001600160401b03821161020e57602001918160051b3603831361020e57565b60208183031261020e578051906001600160401b03821161020e57019080601f8301121561020e578151611dab816111c3565b92611db960405194856111a2565b81845260208085019260051b82010192831161020e57602001905b828210611de15750505090565b60208091611dee84611d2f565b815201910190611dd4565b9035601e198236030181121561020e5701602081359101916001600160401b03821161020e57606082023603831361020e57565b93919082916060860191865260208601526060604086015252608083019260808260051b82010193835f92605e1982360301905b858510611e72575050505050505090565b90919293949596607f1982820301855287358381121561020e57606082019190850180356001600160a01b0381169081900361020e57608091611ec5918452602081013560208501526040810190611df9565b60606040850152938490529101915f905b808210611ef757505050602080600192990195019501939594929190611e61565b909192606080600192838060a01b03611f0f88611072565b16815263ffffffff611f23602089016111ed565b16602082015260408701356040820152019401920190611ed6565b60405190611f4b82611135565b606080835f81525f60208201525f60408201520152565b5190811515820361020e57565b81601f8201121561020e57805190611f86826118af565b92611f9460405194856111a2565b8284526020838301011161020e57815f9260208093018386015e8301015290565b919060408382031261020e578251926020810151906001600160401b03821161020e57019080601f8301121561020e57815191611ff1836111c3565b92611fff60405194856111a2565b80845260208085019160051b8301019183831161020e5760208101915b83831061202b57505050505090565b82516001600160401b03811161020e578201906080828703601f19011261020e576040519061205982611135565b60208301516001600160a01b038116810361020e57825261207c60408401611f62565b6020830152606083015160408301526080830151916001600160401b03831161020e576120b188602080969581960101611f6f565b606082015281520192019161201c565b60609081906001600160a01b036120d782611072565b16845260ff6120e86020830161190e565b16602085015263ffffffff6120ff604083016111ed565b1660408501520135910152565b9035601e198236030181121561020e5701602081359101916001600160401b03821161020e57813603831361020e57565b908060209392818452848401375f828201840152601f01601f1916010190565b80511561216a5760200190565b634e487b7160e01b5f52603260045260245ffd5b805182101561216a5760209160051b010190565b9190820391821161219f57565b634e487b7160e01b5f52601160045260245ffd5b919082608091031261020e576040516121cb81611135565b60608082946121d981611072565b84526121e76020820161190e565b60208501526121f8604082016111ed565b60408501520135910152565b9190820180921161219f57565b905f9160c0810135805f52600160205260405f209360e083013594855f5260205260405f2060ff60405191612245836110b3565b546001600160a01b038116835260a01c1615156020820152612265611f3e565b935f915f975f935f905f9360018060a01b039051168061264e575b5060a08501359081811061263f5750505f965b6060975f93825f525f60205260405f20815f5260205260405f2092604051936122bb856110fe565b5460018060a01b03811680865260ff808360a01c1615159283602089015260a81c161515604087015215159081612637575b50612418575b5050505050156123f9575b50505081518515806123f1575b6123e6576123249086156123de5760ff60015b16612204565b9261232e846111c3565b9361233c60405195866111a2565b80855261234b601f19916111c3565b015f5b8181106123c757505083905f966123a9575b505f5b83518110156123a0578061239961237c6001938761217e565b51612387838b612204565b90612392828a61217e565b528761217e565b5001612363565b50939250935050565b600196506123b68561215d565b526123c08461215d565b505f612360565b6020906123d2611f3e565b8282890101520161234e565b60ff5f61231e565b509350606092915050565b50801561230b565b919250901561240c57505b5f80806122fe565b61012091500135612404565b91939998509193506101808636031261020e57604051612437816110e2565b61244087611072565b815261244e60208801611072565b90602081019182526124633660408a016121b3565b93604082019485528a8201938452608082019081526124856101008a01611072565b9a60a083019b8c526101208a01359b60c084018d815260e08501916101408d013583526101608d0135946001600160401b03861161020e576125569b5f9b8f6124d490612596993691016118ca565b6101008a019081528c51909701525160408051634661ac2360e11b815260206004820181905299516001600160a01b0390811660248301529a518b1660448201529b5180518b1660648e01529889015160ff1660848d015288015163ffffffff1660a48c015260609097015160c48b0152989a8b999690971697899788979190565b5160e488015251610104870152516001600160a01b03166101248601525161014485015251610164840152516101806101848401526101a4830190611d0b565b03915afa8015610967575f915f91612613575b50958195600192848061260a575b80612600575b6125eb575b50508515806125e2575b6125da575b808080806122f3565b94505f6125d1565b508015156125cc565b6125f89297508690614d3f565b945f806125c2565b50818714156125bd565b508115156125b7565b905061263191503d805f833e61262981836111a2565b810190611fb5565b5f6125a9565b90505f6122ed565b61264891612192565b96612293565b604051634661ac2360e11b8152602060048201529650600194505f9087906001600160a01b0361267d89611072565b1660248301526001600160a01b0361269760208a01611072565b1660448301526126ad6064830160408a016120c1565b60e482018b905261010482018690526001600160a01b036126d16101008a01611072565b1661012483015261012088013561014483015261014088013561016483015281806127176127036101608c018c61210c565b6101806101848501526101a484019161213d565b03915afa958615610967575f905f976127bf575b5095805115612280579a50509650612743829961215d565b519660408801516060890151805160a0811015612761575b50612280565b9080929350019060808183031261020e5761277e60208201611d2f565b5061278b60408201611d2f565b506060810151916001600160401b03831161020e576080926020806127b4930191840101611f6f565b500151905f8061275b565b90506127d69196503d805f833e61262981836111a2565b95905f61272b565b6040516383db9d0160e01b8152600481018290526001600160a01b038416602482015290929190602081806044810103817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610967575f916129d7575b506129cf57825f525f60205260405f2090602081019165ffffffffffff8351165f5260205260405f209360405194612880866110fe565b5494604060ff60018060a01b03881697888452818160a01c161515602085015260a81c161515910152846128b8575b50505050505f90565b65ffffffffffff946020946101006101649460405198899788966399f6d77f60e01b885260048801528183511660248801525116604486015265ffffffffffff604082015116606486015265ffffffffffff606082015116608486015263ffffffff60808201511660a48601526001600160701b0360a08201511660c486015263ffffffff60c08201511660e486015260018060a01b0360e082015116610104860152015161012484015260018060a01b03166101448301525afa908115610967575f91612995575b50612990575f808080806128af565b600190565b90506020813d6020116129c7575b816129b0602093836111a2565b8101031261020e576129c190611f62565b5f612981565b3d91506129a3565b505050600190565b90506020813d602011612a09575b816129f2602093836111a2565b8101031261020e57612a0390611f62565b5f612849565b3d91506129e5565b519065ffffffffffff8216820361020e57565b519063ffffffff8216820361020e57565b91908261012091031261020e57604051612a4e816110e2565b8092612a5981612a11565b8252612a6760208201612a11565b6020830152612a7860408201612a11565b6040830152612a8960608201612a11565b6060830152612a9a60808201612a24565b608083015260a08101516001600160701b038116810361020e5760a0830152612ac560c08201612a24565b60c083015260e08101516001600160a01b038116810361020e5760e083015261010090810151910152565b519061ffff8216820361020e57565b60405190612b0e6020836111a2565b5f80835282815b828110612b2157505050565b602090604051612b3081611135565b5f81525f838201525f60408201525f606082015282828501015201612b15565b3d15612b7a573d90612b61826118af565b91612b6f60405193846111a2565b82523d5f602084013e565b606090565b6040516320c94b1360e11b815260048101829052610380816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610967575f91612c9e575b50815f525f60205265ffffffffffff602060405f20920151165f5260205260405f2060405190612c03826110fe565b5460ff60018060a01b03821691828452818160a01c161515602085015260a81c161515604083015215612c94575160405163b64ce2c360e01b602082019081526024808301949094529281525f9283926001600160a01b031691612c686044826111a2565b51915afa612c74612b50565b9015612c8757612c8390614df4565b9091565b50612c90612aff565b5f91565b5050612c90612aff565b90506103803d8111612e4b575b612cb581836111a2565b81019080820391610380831261020e57612cd26102609183612a35565b9261011f19011261020e57610240612e4261036060405193612cf385611119565b612d006101208201612af0565b8552612d0f6101408201612af0565b6020860152612d216101608201612a24565b6040860152612d336101808201611f62565b6060860152612d456101a08201611f62565b6080860152612d576101c08201611f62565b60a0860152612d696101e08201611f62565b60c0860152612d7b6102008201611f62565b60e0860152612d8d6102208201611f62565b610100860152612d9e848201611f62565b610120860152612db16102608201611f62565b610140860152612dc46102808201611f62565b610160860152612dd76102a08201611f62565b610180860152612dea6102c08201611f62565b6101a0860152612dfd6102e08201611f62565b6101c0860152612e106103008201611f62565b6101e0860152612e236103208201611f62565b610200860152612e366103408201611d2f565b61022086015201612af0565b9101525f612bd4565b503d612cab565b919060a08382031261020e578251926020810151926040820151926060830151926080810151906001600160401b03821161020e57019080601f8301121561020e57815191612ea0836111c3565b92612eae60405194856111a2565b80845260208085019160051b8301019183831161020e5760208101915b838310612eda57505050505090565b82516001600160401b03811161020e578201906080828703601f19011261020e5760405190612f0882611135565b60208301516001600160a01b038116810361020e578252612f2b60408401611f62565b6020830152606083015160408301526080830151916001600160401b03831161020e57612f6088602080969581960101611f6f565b6060820152815201920191612ecb565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116919060609060208301908135908116810361020e57604080516383db9d0160e01b81529085013560048201526001600160a01b03919091166024820152602081604481885afa908115610967575f916136a1575b50613688576101608301359384608085013593849560a08101359485936101208301359561014084013580159081150361020e5761356d575b5060209060609560408501355f526001835260405f209a878601359b8c5f52845260405f206040519061305a826110b3565b546001600160a01b03811680835260a09190911c60ff161515959091018590528015159485613565575b508461343d575b5060609b60408701355f525f60205260405f20815f5260205260405f2094604051956130b6876110fe565b549060ff60018060a01b03831692838952818160a01c16151560208a015260a81c16151590816040890152159182613433575b508161342b575b50613225575b505050505050508151159081809261321c575b61320e5750158080613204575b156131e657508451600101968760011161219f57613133886111c3565b97613141604051998a6111a2565b808952613150601f19916111c3565b015f5b8181106131cf575050613166889261215d565b516131708961215d565b5261317a8861215d565b505f5b86518110156131be57613190818861217e565b519080600101918260011161219f57826131b7916131b06001958e61217e565b528b61217e565b500161317d565b5092959194509295505b9493929190565b6020906131da611f3e565b82828d01015201613153565b9692959396949091945f146131fc5750916131c8565b9050916131c8565b5085511515613116565b969794969395509193915050565b50865115613109565b6101c087989e9d979c999c36031261020e57613257604051966132478861116b565b6132508a611072565b8852611072565b60208701526040880135604087015286860152608085015260a08401526132813660c087016121b3565b60c0840152613293610140860161120d565b60e08401526101008301526132ab610180850161120d565b6101208301526001600160401b036101a08501351161020e575f946132db6101209536906101a0810135016118ca565b610140840190815261010084019a8b526080840191825260a0840189815260c08501805187018a9052935160408051633d9cab2b60e21b815260206004820181905288516001600160a01b039081166024840152818a015181166044840152838a01516064840152998901516084830152955160a4820152925160c484015294518051881660e48401529384015160ff166101048301529383015163ffffffff166101248201526060929092015161014483015260e084015115156101648301529951610184820152939091015115156101a484015296516101c06101c484015291968792911690829081906133d6906101e4830190611d0b565b03915afa928315610967575f935f955f916133fc575b509493955f8080808080806130f6565b9194505061341d9194503d805f833e61341581836111a2565b810190612e52565b96939150509390945f6133ec565b90505f6130f0565b151591505f6130e9565b604051633d9cab2b60e21b815260206004820152919d939b929a5093985096505f92879290916001600160a01b0361347488611072565b1660248501526001600160a01b0361348b87611072565b166044850152604087013560648501528c608485015260a48401528960c48401526134bc60e4840160c088016120c1565b6134c9610140870161120d565b15156101648401526101848301526134e4610180860161120d565b15156101a483015281806135136134ff6101a089018961210c565b6101c06101c48501526101e484019161213d565b03915afa948515610967575f975f975f975f975f91613539575b50969798999b5f61308b565b939a5050965096506135569194503d805f833e61341581836111a2565b9399929891979096935f61352d565b94505f613084565b6040805163139db5a960e31b815290850135600482015290979196916020826024818c5afa908115610967575f91613652575b6135aa9250612204565b9660e084013560ff811680910361020e576101008501359063ffffffff821680920361020e576064602092604051948593849263622c574160e11b845260408b01356004850152602484015260448301525afa908115610967575f9161361f575b5061361890602092612204565b9590613028565b90506020813d60201161364a575b8161363a602093836111a2565b8101031261020e5751602061360b565b3d915061362d565b90506020823d602011613680575b8161366d602093836111a2565b8101031261020e576135aa9151906135a0565b3d9150613660565b505f936080830135935060a08301359261012001359190565b90506020813d6020116136d3575b816136bc602093836111a2565b8101031261020e576136cd90611f62565b5f612fef565b3d91506136af565b90602080835192838152019201905f5b8181106136f85750505090565b909192602060c0600192865163ffffffff81511682526001600160401b03848201511684830152848060a01b03604082015116604083015260608101511515606083015265ffffffffffff608082015116608083015260a08580821b039101511660a082015201940191019190916136eb565b90602080835192838152019201905f5b8181106137885750505090565b825180516001600160e01b0316855260209081015163ffffffff16818601526040909401939092019160010161377b565b9080602083519182815201916020808360051b8301019401925f915b8383106137e457505050505090565b9091929394601f19828203018352855161034082019065ffffffffffff815116835263ffffffff60208201511660208401526001600160701b03604082015116604084015263ffffffff606082015116606084015260018060a01b03608082015116608084015261ffff61024060a08301518281511660a08701528260208201511660c087015263ffffffff60408201511660e0870152606081015115156101008701526080810151151561012087015260a0810151151561014087015260c0810151151561016087015260e0810151151561018087015261010081015115156101a087015261012081015115156101c087015261014081015115156101e0870152610160810151151561020087015261018081015115156102208701526101a08101511515828701526101c081015115156102608701526101e0810151151561028087015261020081015115156102a087015260018060a01b03610220820151166102c08701520151166102e084015260c0810151916103406103008501528251809152610360840160206103608360051b8701019401915f5b818110613a3f575050505060e0015191610320818303910152815180825260208201906020808260051b8501019401925f5b8281106139d2575050505050602080600192970193019301919392906137d5565b9091929394602080613a32600193601f19878203018952895190858060a01b038251168152858060a01b038483015116848201526060613a21604084015160806040850152608084019061376b565b92015190606081840391015261376b565b97019501939291016139b1565b90919294602080613a6e60019361035f198b82030188526040838b5180518452015191818582015201906136db565b9701940192910161397f565b98979596949391613aaa93613a9c928b5260a060208c015260a08b019161213d565b9088820360408a01526137b9565b938685036060880152808552602085019460208260051b82010195835f92603e1982360301905b858510613af157505050505050508460806118ac9596850391015261213d565b90919293949598601f1982820301855289358381121561020e57604082019190850180356001600160a01b0381169081900361020e57606091613b3a9184526020810190611df9565b60406020850152938490529101915f905b808210613b6c575050506020806001929b0195019501939594929190613ad1565b909192606080600192838060a01b03613b8488611072565b16815260ff613b956020890161190e565b16602082015263ffffffff613bac604089016111ed565b166040820152019401920190613b4b565b949892999697606098613bd6613bd1615768565b614fbe565b5f98906001600160a01b03166001600160a01b03198a5c1617895d60405163180e2b1160e31b81523060048201529b60208d602481347f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1978815610967578e9d5f99613f0f575b50908894939291859f6bffffffffffffffffffffffff60a01b5f5c165f5d613c6f87615042565b613c799087615210565b9e8f9060200151151590613c8d9288615544565b6040516307128b6b60e31b8152978897613caa9760048a01613a7a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691839103815a6020945f91f1801561096757613ee0575b50613cf58261513c565b6001600160a01b038716803b1561020e575f80916024604051809481936351106b4b60e11b83528860048401525af1801561096757613ecb575b50602081013580613dfa575b50507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163b15613df657604051632142170760e11b81523060048201526001600160a01b03928316602482015260448101919091529082908290606490829084907f0000000000000000000000000000000000000000000000000000000000000000165af18015613deb57613dd6575050565b613de18280926111a2565b613de85750565b80fd5b6040513d84823e3d90fd5b8280fd5b829650613e4090613e0e8387949587614bde565b6108ba6108c8613e1c615768565b60408051602081019586526001600160a01b03909216908201529182906060820190565b92613e606040519485938493639d7f900160e01b85528b60048601611e2d565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1908115613ec0578391613ea6575b50935f80613d3b565b613eba91503d8085833e61095981836111a2565b5f613e9d565b6040513d85823e3d90fd5b613ed89194505f906111a2565b5f925f613d2f565b6020813d602011613f07575b81613ef9602093836111a2565b8101031261020e5751613ceb565b3d9150613eec565b9d5093929190975060208d3d602011613f46575b81613f30602093836111a2565b8101031261020e578d9c5197909192935f613c48565b3d9150613f23565b90604051613f5b816110fe565b604051613f6781611150565b6060815260606020820152606060408201525f606082015260606080820152604051613f92816110fe565b606081525f60208201525f604082015260a0820152604051613fb381611187565b5f81525f60208201525f60408201525f60608201525f608082015260c082015281525f60208201525f6040820152809280518015614019575060a060129263ffffffff604083614003829661215d565b5101510151166020838351015101525101510152565b6328a3030960e21b5f5260045260245ffd5b9081602091031261020e57516001600160a01b038116810361020e5790565b6040516331a9108f60e11b81526004810182905291945f949093929091906020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610967575f916146b7575b506140b1615768565b6001600160a01b03918216911680821415806145fe575b6145d45750506140d781615042565b60405163d4a1b4b160e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169390602081600481885afa908115610967576024916020915f916145b7575b506040516319fade8560e11b81526004810186905292839182906001600160a01b03165afa908115610967575f91614585575b504281101561456b5750865160a0015151511561429d576141818783615210565b966001600160a01b03881690813b1561020e575f80926024604051809581936351106b4b60e11b83528960048401525af191821561096757899261426c575b509261421d6141e061420b96948a946020809a9801511515915b85615544565b93604051988997889687956303141db760e41b875260048701526060602487015260648601906137b9565b8481036003190160448601529161213d565b03925af19182156142605791614231575091565b90506020813d602011614258575b8161424c602093836111a2565b8101031261020e575191565b3d915061423f565b604051903d90823e3d90fd5b602098508896949192506141e061420b969461428b5f61421d946111a2565b8b5f9b509493969850949650506141c0565b60405163d4a1b4b160e01b8152909650602081600481875afa90811561096757602491610140915f9161454c575b5060405163855a54ed60e01b81526004810185905292839182906001600160a01b03165afa908115610967575f905f926144ff575b506020019065ffffffffffff825116151590816144c4575b5080614494575b156143ae575165ffffffffffff16955b815f52600160205260405f20875f5260205260405f209660405197614353896110b3565b549060ff602060018060a01b0384169a8b8152019260a01c16151582528880156143945750506020949261421d6141e061420b96948b8b95511515916141da565b8490630b77705360e01b5f5260045260245260445260645ffd5b5060405163d4a1b4b160e01b8152602081600481875afa90811561096757602491610120915f91614465575b506040516321d1336160e11b81526004810185905292839182906001600160a01b03165afa908115610967575f91614420575b506020015165ffffffffffff169561432f565b90506101203d811161445e575b61443781836111a2565b81016101208282031261020e5761445760209165ffffffffffff93612a35565b915061440d565b503d61442d565b614487915060203d60201161448d575b61447f81836111a2565b81019061402b565b5f6143da565b503d614475565b50815f52600160205260405f2065ffffffffffff8251165f5260205260018060a01b0360405f205416151561431f565b905060068110156144eb57600481149081156144e2575b505f614318565b9050155f6144db565b634e487b7160e01b5f52602160045260245ffd5b9150506101403d8111614545575b61451781836111a2565b81016101408282031261020e576145316101209183612a35565b91015190600682101561020e576020614300565b503d61450d565b614565915060203d60201161448d5761447f81836111a2565b5f6142cb565b8263b357f5c560e01b5f526004526024524260445260645ffd5b90506020813d6020116145af575b816145a0602093836111a2565b8101031261020e57515f614160565b3d9150614593565b6145ce9150823d841161448d5761447f81836111a2565b5f61412d565b9160849260405192631326f75560e11b845260048401526024830152604482015260026064820152fd5b50604051631a45b42760e11b81526004810182905260248101839052604481018490526002606482015260016084820181905260a482015260208160c4817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610967575f9161467d575b50156140c8565b90506020813d6020116146af575b81614698602093836111a2565b8101031261020e576146a990611f62565b5f614676565b3d915061468b565b90506020813d6020116146e9575b816146d2602093836111a2565b8101031261020e576146e390611d2f565b5f6140a8565b3d91506146c5565b9896979092949795939195604051946331a9108f60e11b86525f958b600482015260208160248160018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610967575f91614ba4575b5061475a615768565b6001600160a01b0391821691168082141580614aeb575b614ac057506001600160a01b03614786615768565b168181141580614a07575b6149dc5750886148d3575b506147a68b615042565b6147b0878c615210565b996001600160a01b038b1694853b1561020e575f809660248f604051998a9384926351106b4b60e11b845260048401525af18015610967578d968d916148a6575b50614829959493929161480e916020809b9c015115159189615544565b6040516307128b6b60e31b81529a8b98899860048a01613a7a565b0381847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af19081156142605790614872575b61487091509361513c565b565b506020813d60201161489e575b8161488c602093836111a2565b8101031261020e576148709051614865565b3d915061487f565b6020995061480e9150916148c15f61482998979695946111a2565b8d8a5f9b5050915091929394956147f1565b6001600160a01b036148e3615768565b168181141580614923575b6148f8575061479c565b908c60849260405192631326f75560e11b845260048401526024830152604482015260076064820152fd5b50604051631a45b42760e11b81526004810182905260248101839052604481018e90526007606482015260016084820181905260a482015260208160c4817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610967575f916149a2575b50156148ee565b90506020813d6020116149d4575b816149bd602093836111a2565b8101031261020e576149ce90611f62565b5f61499b565b3d91506149b0565b908c60849260405192631326f75560e11b8452600484015260248301526044820152600f6064820152fd5b50604051631a45b42760e11b81526004810182905260248101839052604481018e9052600f606482015260016084820181905260a482015260208160c4817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610967575f91614a86575b5015614791565b90506020813d602011614ab8575b81614aa1602093836111a2565b8101031261020e57614ab290611f62565b5f614a7f565b3d9150614a94565b908c60849260405192631326f75560e11b845260048401526024830152604482015260036064820152fd5b50604051631a45b42760e11b81526004810182905260248101839052604481018e90526003606482015260016084820181905260a482015260208160c4817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610967575f91614b6a575b5015614771565b90506020813d602011614b9c575b81614b85602093836111a2565b8101031261020e57614b9690611f62565b5f614b63565b3d9150614b78565b90506020813d602011614bd6575b81614bbf602093836111a2565b8101031261020e57614bd090611d2f565b5f614751565b3d9150614bb2565b905f5b614beb8480611d43565b9050811015614d3957614bfe8480611d43565b82101561216a578160051b810135605e198236030181121561020e570160200135614c2b57600101614be1565b50909150614c37615768565b6001600160a01b0392831692168083141580614c81575b614c5757505050565b6084935060405192631326f75560e11b845260048401526024830152604482015260226064820152fd5b50604051631a45b42760e11b81526004810182905260248101849052604481018390526022606482015260016084820181905260a482015260208160c4817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610967575f91614d00575b5015614c4e565b90506020813d8211614d31575b81614d1a602093836111a2565b8101031261020e57614d2b90611f62565b5f614cf9565b3d9150614d0d565b50505050565b90915f198383099280830292838086109503948086039514614dd25782851015614dba5790829109600182190182168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b630c740aef60e31b5f5260045260245260445260645ffd5b505091508115614de0570490565b634e487b7160e01b5f52601260045260245ffd5b6060815110612c8757602081015191604082015191604083108015614fb2575b8015614f9c575b614f905760208382010151906020840180941161219f57614e3d848251612192565b60071c8211614f8357614e4f826111c3565b614e5c60405191826111a2565b828152601f19614e6b846111c3565b015f5b818110614f54575050935f5b838110614e875750505050565b8060071b8181046080148215171561219f57614ea39083612204565b8301602081015190604081015190608060608201519101519160ff81118015614f44575b8015614f34575b614f2157916001600160801b03809260ff600197969560405196614ef188611135565b8752166020860152166040840152166060820152614f0f828961217e565b52614f1a818861217e565b5001614e7a565b5050505050505050915050612c90612aff565b506001600160801b038311614ece565b506001600160801b038211614ec7565b602090604051614f6381611135565b5f81525f838201525f60408201525f606082015282828601015201614e6e565b5050915050612c90612aff565b50915050612c90612aff565b508051601f19810190811161219f578311614e1b565b50601f83161515614e14565b803b156118ac575f80604051602081019063296eee5160e01b825260048152614fe86024826111a2565b5190845afa614ff5612b50565b90158015615037575b6150335760208180518101031261020e576001600160a01b039061502490602001611d2f565b168061502e575090565b905090565b5090565b506020815110614ffe565b604051632eec7b5560e11b8152600481018290526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610967575f916150fa575b506001600160a01b03169081156150f6577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316908183036150de57505050565b637da4da8b60e01b5f5260045260245260445260645ffd5b5050565b90506020813d602011615134575b81615115602093836111a2565b8101031261020e57516001600160a01b038116810361020e575f615096565b3d9150615108565b604051632eec7b5560e11b8152600481018290526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610967575f916151ce575b506001600160a01b03908116917f0000000000000000000000000000000000000000000000000000000000000000909116908183036150de57505050565b90506020813d602011615208575b816151e9602093836111a2565b8101031261020e57516001600160a01b038116810361020e575f615190565b3d91506151dc565b906040815191015180155f1461550957505f915b6040519283916337b4a3c360e11b83526004830152606060248301526152b661528d615277615261865161016060648801526101c4870190611d0b565b6020870151868203606319016084880152611d0b565b60408601518582036063190160a4870152611d0b565b60608501516001600160a01b031660c485015260808501518482036063190160e4860152611d0b565b9260a0810151936063198482030161010485015260608101948051956060835286518091526080830190602060808260051b8601019801915f905b8282106153e0575050505060c060209693869593604060ff818663ffffffff8d6080990151168d8601520151169101520151805115156101248601528681015115156101448601526040810151151561016486015260608101511515610184860152015115156101a4840152604483015203815f60018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1908115610967575f916153a1575090565b90506020813d6020116153d8575b816153bc602093836111a2565b8101031261020e57516001600160a01b038116810361020e5790565b3d91506153af565b9193949596975091976020806154f66001936102206101408e607f198d8503018952516cffffffffffffffffffffffffff815116845263ffffffff86820151168685015263ffffffff604082015116604085015261ffff6060820151166060850152878060a01b03608082015116608085015260a081015160a085015262ffffff60c08201511660c085015260ff60e08201511660e085015260c0610100820151805115156101008701528781015115156101208701526040810151151584870152606081015115156101608701526080810151151561018087015260a081015115156101a0870152015115156101c085015263ffffffff610120820151166101e08501520151918161020082015201906136db565b9a019201920189979695949391926152f1565b615511615768565b604080516001600160a01b039092166020830190815282820193909352815261553b6060826111a2565b51902091615224565b90919392935f5b83518110156157605761555e8142612204565b306001600160a01b0361022060a0615576868a61217e565b5101510151161461572a57906001916155ee604051615594816110b3565b60a085811b86900387811683528b151560208085019182525f8b815289825260408082208983529092522093518454915160ff60a01b1991909316166001600160a81b03199091161790151590911b60ff60a01b16179055565b828060a01b0361022060a0615603858a61217e565b510151015116615654575b503061022060a061561f848961217e565b5101510152816101e060a0615634848961217e565b51015101528161020060a0615649848961217e565b51015101520161554b565b828060a01b0361022060a0615669858a61217e565b5101510151169061570b6101e060a0615682868b61217e565b5101510151151561020060a0615698878c61217e565b5101510151151592604051946156ad866110fe565b8552602080860192835260408087019586525f8b815280835281812093815292909152902093518454915160ff60a01b1960a089811b8a900393909316166001600160a81b031990931692909217911515901b60ff60a01b16178355565b51815460ff60a81b191690151560a81b60ff60a81b161790555f61560e565b836001600160a01b0361022060a0615742868a61217e565b510151015116630b77705360e01b5f5260045260245260445260645ffd5b509193505050565b60143610158061578f575b1561578b57601319360136811161020e573560601c90565b3390565b50337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161461577356fea164736f6c634300081c000a",
3501
+ "deployedBytecode": "0x6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a714610fa957508063150b7a0214610eea578063293c499914610ea6578063296eee5114610e815780632d99317314610d915780633141db7014610d2c57806338945b5814610c835780634509224414610bc6578063572b6c0514610b72578063670d99be14610a90578063673706e8146107bb5780636a19a70f1461075c5780637da0a8771461071857806388bc2ef3146106d45780638cc35846146105fb57806394e1cf571461055e57806399f6d77f14610447578063abf8c5c814610403578063b0401dab14610375578063b5d2553314610331578063b64ce2c31461029a578063ee0fc12114610256578063f434c914146102125763f672acac14610124575f80fd5b3461020e57602036600319011261020e576004356001600160401b03811161020e576101c0600319823603011261020e5761016190600401612f70565b91939060405194859460a0860193865260208601526040850152606084015260a06080840152815180915260c0830190602060c08260051b8601019301915f905b8282106101b157505050500390f35b919360019193955060206101fe819260bf198a8203018652608060608a51878060a01b03815116845285810151151586850152604081015160408501520151918160608201520190611d0b565b96019201920185949391926101a2565b5f80fd5b3461020e575f36600319011261020e576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461020e575f36600319011261020e576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461020e57602036600319011261020e576102b6600435612b7f565b90604051918291604083019083526040602084015281518091526020606084019201905f5b8181106102e9575050500390f35b91935091602060806001926001600160801b03606088518051845260ff86820151168685015282604082015116604085015201511660608201520194019101918493926102db565b3461020e575f36600319011261020e576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461020e5761038336611cf5565b905f60408051610392816110fe565b82815282602082015201525f525f60205260405f20905f52602052606060405f20604051906103c0826110fe565b5460018060a01b0381169182815260ff60406020830192828560a01c1615158452019260a81c161515825260405192835251151560208301525115156040820152f35b3461020e575f36600319011261020e576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461020e5761016036600319011261020e5761012036602319011261020e57604051610472816110e2565b60243565ffffffffffff8116810361020e57815260443565ffffffffffff8116810361020e57602082015260643565ffffffffffff8116810361020e57604082015260843565ffffffffffff8116810361020e57606082015260a43563ffffffff8116810361020e57608082015260c4356001600160701b038116810361020e5760a082015260e43563ffffffff8116810361020e5760c0820152610104356001600160a01b038116810361020e5760e08201526101243561010082015261014435906001600160a01b038216820361020e57602091610554916004356127de565b6040519015158152f35b3461020e57608036600319011261020e576024356001600160401b03811161020e5761058e90369060040161191c565b6044356001600160401b03811161020e576105ad9036906004016113b8565b606435916001600160401b03831161020e576105d06105db933690600401611086565b92909160043561404a565b604080519283526001600160a01b039091166020830152819081015b0390f35b3461020e57602036600319011261020e576004356001600160401b03811161020e57610180600319823603011261020e5761063890600401612211565b90604051918291604083019083526040602084015281518091526060830190602060608260051b8601019301915f905b82821061067757505050500390f35b919360019193955060206106c48192605f198a8203018652608060608a51878060a01b03815116845285810151151586850152604081015160408501520151918160608201520190611d0b565b9601920192018594939192610668565b3461020e575f36600319011261020e576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461020e575f36600319011261020e576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461020e5761076a36611cf5565b905f52600160205260405f20905f526020526040805f20602082519161078f836110b3565b546001600160a01b03811680845260a09190911c60ff1615159190920181905282519182526020820152f35b3461020e57604036600319011261020e576024356004356001600160401b03821161020e5781600401906040600319843603011261020e576040516331a9108f60e11b8152600481018290526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610967575f91610a56575b50610850615768565b6001600160a01b038281169116808214158061099d575b610972576108f05f86866108d28a61088084848b614bde565b6108ba6108c861088e615768565b6040805160249590950135602086019081526001600160a01b0390921690850152929182906060820190565b03601f1981018352826111a2565b5190209280611d43565b604051639d7f900160e01b8152958694859491939160048601611e2d565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af18015610967576105f7915f91610945575b50604051918291602083526020830190611848565b61096191503d805f833e61095981836111a2565b810190611d78565b82610930565b6040513d5f823e3d90fd5b908360849260405192631326f75560e11b845260048401526024830152604482015260216064820152fd5b50604051631a45b42760e11b81526004810182905260248101839052604481018590526021606482015260016084820181905260a482015260208160c4817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610967575f91610a1c575b5015610867565b90506020813d602011610a4e575b81610a37602093836111a2565b8101031261020e57610a4890611f62565b87610a15565b3d9150610a2a565b90506020813d602011610a88575b81610a71602093836111a2565b8101031261020e57610a8290611d2f565b84610847565b3d9150610a64565b60c036600319011261020e57610aa461105c565b6024356001600160401b03811161020e57610ac3903690600401611086565b91906044356001600160401b03811161020e57610ae49036906004016113b8565b6064356001600160401b03811161020e57610b03903690600401611818565b6084929192356001600160401b03811161020e57610b25903690600401611086565b93909260a435966001600160401b03881161020e576040600319893603011261020e576105f798610b639860040197610b5d84613f4e565b92613bbd565b60409391935193849384611884565b3461020e57602036600319011261020e576020610b8d61105c565b6040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b039081169216919091148152f35b3461020e5760c036600319011261020e576024356001600160401b03811161020e57610bf6903690600401611086565b6044356001600160401b03811161020e57610c1590369060040161191c565b916064356001600160401b03811161020e57610c359036906004016113b8565b6084356001600160401b03811161020e57610c54903690600401611818565b9160a435956001600160401b03871161020e57610c786105db973690600401611086565b9690956004356146f1565b3461020e5760a036600319011261020e576024356001600160401b03811161020e57610cb3903690600401611086565b906044356001600160401b03811161020e57610cd39036906004016113b8565b916064356001600160401b03811161020e57610cf3903690600401611818565b90608435946001600160401b03861161020e57610d176105db963690600401611086565b959094610d2383613f4e565b916004356146f1565b3461020e57606036600319011261020e576024356001600160401b03811161020e57610d5c9036906004016113b8565b604435906001600160401b03821161020e57610d7f6105db923690600401611086565b91610d8981613f4e565b60043561404a565b60e036600319011261020e57610da561105c565b6024356001600160401b03811161020e57610dc4903690600401611086565b9091604435906001600160401b03821161020e576060600319833603011261020e576064356001600160401b03811161020e57610e059036906004016113b8565b906084356001600160401b03811161020e57610e25903690600401611818565b9060a4356001600160401b03811161020e57610e45903690600401611086565b94909360c435976001600160401b03891161020e5760406003198a3603011261020e576105f799610b5d610b639a60040199369060040161191c565b3461020e575f36600319011261020e576040515f5c6001600160a01b03168152602090f35b3461020e575f36600319011261020e576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461020e57608036600319011261020e57610f0361105c565b506024356001600160a01b0381169081900361020e576064356001600160401b03811161020e57610f38903690600401611086565b5050337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614801590610fa0575b610f8457604051630a85bd0160e11b8152602090f35b6388470c7960e01b5f523360045260245260443560445260645ffd5b50801515610f6e565b3461020e57602036600319011261020e576004359063ffffffff60e01b821680920361020e5760209163c1c8b89b60e01b811490811561104b575b811561103a575b8115611029575b8115611018575b8115611007575b5015158152f35b6301ffc9a760e01b14905083611000565b630a85bd0160e11b81149150610ff9565b63296eee5160e01b81149150610ff2565b63b64ce2c360e01b81149150610feb565b63e347239560e01b81149150610fe4565b600435906001600160a01b038216820361020e57565b35906001600160a01b038216820361020e57565b9181601f8401121561020e578235916001600160401b03831161020e576020838186019501011161020e57565b604081019081106001600160401b038211176110ce57604052565b634e487b7160e01b5f52604160045260245ffd5b61012081019081106001600160401b038211176110ce57604052565b606081019081106001600160401b038211176110ce57604052565b61026081019081106001600160401b038211176110ce57604052565b608081019081106001600160401b038211176110ce57604052565b60e081019081106001600160401b038211176110ce57604052565b61016081019081106001600160401b038211176110ce57604052565b60a081019081106001600160401b038211176110ce57604052565b90601f801991011681019081106001600160401b038211176110ce57604052565b6001600160401b0381116110ce5760051b60200190565b359065ffffffffffff8216820361020e57565b359063ffffffff8216820361020e57565b359061ffff8216820361020e57565b3590811515820361020e57565b81601f8201121561020e57803590611231826111c3565b9261123f60405194856111a2565b828452602060c081860194028301019181831161020e57602001925b828410611269575050505090565b60c08483031261020e576040519060c082018281106001600160401b038211176110ce57604052611299856111ed565b825260208501356001600160401b038116810361020e57602083015260408501356001600160a01b038116810361020e5760408301526112db6060860161120d565b60608301526112ec608086016111da565b608083015260a0850135906001600160a01b038216820361020e578260209260a060c095015281520193019261125b565b81601f8201121561020e57803590611334826111c3565b9261134260405194856111a2565b82845260208085019360061b8301019181831161020e57602001925b82841061136c575050505090565b60408483031261020e5760405190611383826110b3565b8435906001600160e01b038216820361020e5782602092604094526113a98388016111ed565b8382015281520193019261135e565b9080601f8301121561020e578135916113d0836111c3565b926113de60405194856111a2565b80845260208085019160051b8301019183831161020e5760208101915b83831061140a57505050505090565b82356001600160401b03811161020e578201808603601f190190610340821261020e576040519161010083018381106001600160401b038211176110ce57604052611457602083016111da565b8352611465604083016111ed565b60208401526060820135906001600160701b038216820361020e57610260916040850152611495608084016111ed565b60608501526114a660a08401611072565b6080850152609f19011261020e576040516114c081611119565b6114cc60c083016111fe565b81526114da60e083016111fe565b60208201526114ec61010083016111ed565b60408201526114fe610120830161120d565b6060820152611510610140830161120d565b6080820152611522610160830161120d565b60a0820152611534610180830161120d565b60c08201526115466101a0830161120d565b60e08201526115586101c0830161120d565b61010082015261156b6101e0830161120d565b61012082015261157e610200830161120d565b610140820152611591610220830161120d565b6101608201526115a4610240830161120d565b6101808201526115b7610260830161120d565b6101a08201526115ca610280830161120d565b6101c08201526115dd6102a0830161120d565b6101e08201526115f06102c0830161120d565b6102008201526116036102e08301611072565b61022082015261161661030083016111fe565b61024082015260a08301526103208101356001600160401b03811161020e5760209082010187601f8201121561020e57803590611652826111c3565b9161166060405193846111a2565b80835260208084019160051b830101918a831161020e5760208101915b8383106117b0575050505060c08301526103408101356001600160401b03811161020e57602091010186601f8201121561020e578035906116bd826111c3565b916116cb60405193846111a2565b80835260208084019160051b8301019189831161020e5760208101915b838310611706575050505060e08201528152602092830192016113fb565b82356001600160401b03811161020e578201906080828d03601f19011261020e576040519061173482611135565b61174060208401611072565b825261174e60408401611072565b602083015260608301356001600160401b03811161020e578d60206117759286010161131d565b60408301526080830135916001600160401b03831161020e576117a08e60208096958196010161131d565b60608201528152019201916116e8565b82356001600160401b03811161020e5782016040818e03601f19011261020e57604051916117dd836110b3565b602082013583526040820135926001600160401b03841161020e576118098f602080968196010161121a565b8382015281520192019161167d565b9181601f8401121561020e578235916001600160401b03831161020e576020808501948460051b01011161020e57565b90602080835192838152019201905f5b8181106118655750505090565b82516001600160a01b0316845260209384019390920191600101611858565b9081526001600160a01b0390911660208201526060604082018190526118ac92910190611848565b90565b6001600160401b0381116110ce57601f01601f191660200190565b81601f8201121561020e576020813591016118e4826118af565b926118f260405194856111a2565b8284528282011161020e57815f92602092838601378301015290565b359060ff8216820361020e57565b919060608382031261020e5760405190611935826110fe565b819380356001600160401b03811161020e57810190818303610160811261020e576040519361196385611150565b83356001600160401b03811161020e578161197f9186016118ca565b855260208401356001600160401b03811161020e57816119a09186016118ca565b602086015260408401356001600160401b03811161020e57816119c49186016118ca565b604086015260608401356001600160a01b038116810361020e57606086015260808401356001600160401b03811161020e5781611a029186016118ca565b608086015260a08401356001600160401b03811161020e57840160608183031261020e5760405191611a33836110fe565b81356001600160401b03811161020e5782019080601f8301121561020e57813591611a5d836111c3565b92611a6b60405194856111a2565b80845260208085019160051b8301019183831161020e5760208101915b838310611b4d57505050505060408392611ab89260a0969552611aad602082016111ed565b60208501520161190e565b60408201528583015260bf19011261020e576040928392611b29610140855192611ae184611187565b611aed60c0820161120d565b8452611afb60e0820161120d565b6020850152611b0d610100820161120d565b87850152611b1e610120820161120d565b60608501520161120d565b608082015260c08201528452611b416020820161120d565b60208501520135910152565b82356001600160401b03811161020e57820190818603601f190190610220821261020e5760405191611b7e8361116b565b60208401356cffffffffffffffffffffffffff8116810361020e578352611ba7604085016111ed565b6020840152611bb8606085016111ed565b6040840152611bc9608085016111fe565b6060840152611bda60a08501611072565b608084015260c084013560a084015260e08401359062ffffff8216820361020e5760e09160c0850152611c10610100860161190e565b8483015260ff19011261020e57604051611c2981611150565b611c36610120850161120d565b8152611c45610140850161120d565b6020820152611c57610160850161120d565b6040820152611c69610180850161120d565b6060820152611c7b6101a0850161120d565b6080820152611c8d6101c0850161120d565b60a0820152611c9f6101e0850161120d565b60c0820152610100830152611cb761020084016111ed565b610120830152610220830135916001600160401b03831161020e57611ce48860208096958196010161121a565b610140820152815201920191611a88565b604090600319011261020e576004359060243590565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b51906001600160a01b038216820361020e57565b903590601e198136030182121561020e57018035906001600160401b03821161020e57602001918160051b3603831361020e57565b60208183031261020e578051906001600160401b03821161020e57019080601f8301121561020e578151611dab816111c3565b92611db960405194856111a2565b81845260208085019260051b82010192831161020e57602001905b828210611de15750505090565b60208091611dee84611d2f565b815201910190611dd4565b9035601e198236030181121561020e5701602081359101916001600160401b03821161020e57606082023603831361020e57565b93919082916060860191865260208601526060604086015252608083019260808260051b82010193835f92605e1982360301905b858510611e72575050505050505090565b90919293949596607f1982820301855287358381121561020e57606082019190850180356001600160a01b0381169081900361020e57608091611ec5918452602081013560208501526040810190611df9565b60606040850152938490529101915f905b808210611ef757505050602080600192990195019501939594929190611e61565b909192606080600192838060a01b03611f0f88611072565b16815263ffffffff611f23602089016111ed565b16602082015260408701356040820152019401920190611ed6565b60405190611f4b82611135565b606080835f81525f60208201525f60408201520152565b5190811515820361020e57565b81601f8201121561020e57805190611f86826118af565b92611f9460405194856111a2565b8284526020838301011161020e57815f9260208093018386015e8301015290565b919060408382031261020e578251926020810151906001600160401b03821161020e57019080601f8301121561020e57815191611ff1836111c3565b92611fff60405194856111a2565b80845260208085019160051b8301019183831161020e5760208101915b83831061202b57505050505090565b82516001600160401b03811161020e578201906080828703601f19011261020e576040519061205982611135565b60208301516001600160a01b038116810361020e57825261207c60408401611f62565b6020830152606083015160408301526080830151916001600160401b03831161020e576120b188602080969581960101611f6f565b606082015281520192019161201c565b60609081906001600160a01b036120d782611072565b16845260ff6120e86020830161190e565b16602085015263ffffffff6120ff604083016111ed565b1660408501520135910152565b9035601e198236030181121561020e5701602081359101916001600160401b03821161020e57813603831361020e57565b908060209392818452848401375f828201840152601f01601f1916010190565b80511561216a5760200190565b634e487b7160e01b5f52603260045260245ffd5b805182101561216a5760209160051b010190565b9190820391821161219f57565b634e487b7160e01b5f52601160045260245ffd5b919082608091031261020e576040516121cb81611135565b60608082946121d981611072565b84526121e76020820161190e565b60208501526121f8604082016111ed565b60408501520135910152565b9190820180921161219f57565b905f9160c0810135805f52600160205260405f209360e083013594855f5260205260405f2060ff60405191612245836110b3565b546001600160a01b038116835260a01c1615156020820152612265611f3e565b935f915f975f935f905f9360018060a01b039051168061264e575b5060a08501359081811061263f5750505f965b6060975f93825f525f60205260405f20815f5260205260405f2092604051936122bb856110fe565b5460018060a01b03811680865260ff808360a01c1615159283602089015260a81c161515604087015215159081612637575b50612418575b5050505050156123f9575b50505081518515806123f1575b6123e6576123249086156123de5760ff60015b16612204565b9261232e846111c3565b9361233c60405195866111a2565b80855261234b601f19916111c3565b015f5b8181106123c757505083905f966123a9575b505f5b83518110156123a0578061239961237c6001938761217e565b51612387838b612204565b90612392828a61217e565b528761217e565b5001612363565b50939250935050565b600196506123b68561215d565b526123c08461215d565b505f612360565b6020906123d2611f3e565b8282890101520161234e565b60ff5f61231e565b509350606092915050565b50801561230b565b919250901561240c57505b5f80806122fe565b61012091500135612404565b91939998509193506101808636031261020e57604051612437816110e2565b61244087611072565b815261244e60208801611072565b90602081019182526124633660408a016121b3565b93604082019485528a8201938452608082019081526124856101008a01611072565b9a60a083019b8c526101208a01359b60c084018d815260e08501916101408d013583526101608d0135946001600160401b03861161020e576125569b5f9b8f6124d490612596993691016118ca565b6101008a019081528c51909701525160408051634661ac2360e11b815260206004820181905299516001600160a01b0390811660248301529a518b1660448201529b5180518b1660648e01529889015160ff1660848d015288015163ffffffff1660a48c015260609097015160c48b0152989a8b999690971697899788979190565b5160e488015251610104870152516001600160a01b03166101248601525161014485015251610164840152516101806101848401526101a4830190611d0b565b03915afa8015610967575f915f91612613575b50958195600192848061260a575b80612600575b6125eb575b50508515806125e2575b6125da575b808080806122f3565b94505f6125d1565b508015156125cc565b6125f89297508690614d3f565b945f806125c2565b50818714156125bd565b508115156125b7565b905061263191503d805f833e61262981836111a2565b810190611fb5565b5f6125a9565b90505f6122ed565b61264891612192565b96612293565b604051634661ac2360e11b8152602060048201529650600194505f9087906001600160a01b0361267d89611072565b1660248301526001600160a01b0361269760208a01611072565b1660448301526126ad6064830160408a016120c1565b60e482018b905261010482018690526001600160a01b036126d16101008a01611072565b1661012483015261012088013561014483015261014088013561016483015281806127176127036101608c018c61210c565b6101806101848501526101a484019161213d565b03915afa958615610967575f905f976127bf575b5095805115612280579a50509650612743829961215d565b519660408801516060890151805160a0811015612761575b50612280565b9080929350019060808183031261020e5761277e60208201611d2f565b5061278b60408201611d2f565b506060810151916001600160401b03831161020e576080926020806127b4930191840101611f6f565b500151905f8061275b565b90506127d69196503d805f833e61262981836111a2565b95905f61272b565b6040516383db9d0160e01b8152600481018290526001600160a01b038416602482015290929190602081806044810103817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610967575f916129d7575b506129cf57825f525f60205260405f2090602081019165ffffffffffff8351165f5260205260405f209360405194612880866110fe565b5494604060ff60018060a01b03881697888452818160a01c161515602085015260a81c161515910152846128b8575b50505050505f90565b65ffffffffffff946020946101006101649460405198899788966399f6d77f60e01b885260048801528183511660248801525116604486015265ffffffffffff604082015116606486015265ffffffffffff606082015116608486015263ffffffff60808201511660a48601526001600160701b0360a08201511660c486015263ffffffff60c08201511660e486015260018060a01b0360e082015116610104860152015161012484015260018060a01b03166101448301525afa908115610967575f91612995575b50612990575f808080806128af565b600190565b90506020813d6020116129c7575b816129b0602093836111a2565b8101031261020e576129c190611f62565b5f612981565b3d91506129a3565b505050600190565b90506020813d602011612a09575b816129f2602093836111a2565b8101031261020e57612a0390611f62565b5f612849565b3d91506129e5565b519065ffffffffffff8216820361020e57565b519063ffffffff8216820361020e57565b91908261012091031261020e57604051612a4e816110e2565b8092612a5981612a11565b8252612a6760208201612a11565b6020830152612a7860408201612a11565b6040830152612a8960608201612a11565b6060830152612a9a60808201612a24565b608083015260a08101516001600160701b038116810361020e5760a0830152612ac560c08201612a24565b60c083015260e08101516001600160a01b038116810361020e5760e083015261010090810151910152565b519061ffff8216820361020e57565b60405190612b0e6020836111a2565b5f80835282815b828110612b2157505050565b602090604051612b3081611135565b5f81525f838201525f60408201525f606082015282828501015201612b15565b3d15612b7a573d90612b61826118af565b91612b6f60405193846111a2565b82523d5f602084013e565b606090565b6040516320c94b1360e11b815260048101829052610380816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610967575f91612c9e575b50815f525f60205265ffffffffffff602060405f20920151165f5260205260405f2060405190612c03826110fe565b5460ff60018060a01b03821691828452818160a01c161515602085015260a81c161515604083015215612c94575160405163b64ce2c360e01b602082019081526024808301949094529281525f9283926001600160a01b031691612c686044826111a2565b51915afa612c74612b50565b9015612c8757612c8390614df4565b9091565b50612c90612aff565b5f91565b5050612c90612aff565b90506103803d8111612e4b575b612cb581836111a2565b81019080820391610380831261020e57612cd26102609183612a35565b9261011f19011261020e57610240612e4261036060405193612cf385611119565b612d006101208201612af0565b8552612d0f6101408201612af0565b6020860152612d216101608201612a24565b6040860152612d336101808201611f62565b6060860152612d456101a08201611f62565b6080860152612d576101c08201611f62565b60a0860152612d696101e08201611f62565b60c0860152612d7b6102008201611f62565b60e0860152612d8d6102208201611f62565b610100860152612d9e848201611f62565b610120860152612db16102608201611f62565b610140860152612dc46102808201611f62565b610160860152612dd76102a08201611f62565b610180860152612dea6102c08201611f62565b6101a0860152612dfd6102e08201611f62565b6101c0860152612e106103008201611f62565b6101e0860152612e236103208201611f62565b610200860152612e366103408201611d2f565b61022086015201612af0565b9101525f612bd4565b503d612cab565b919060a08382031261020e578251926020810151926040820151926060830151926080810151906001600160401b03821161020e57019080601f8301121561020e57815191612ea0836111c3565b92612eae60405194856111a2565b80845260208085019160051b8301019183831161020e5760208101915b838310612eda57505050505090565b82516001600160401b03811161020e578201906080828703601f19011261020e5760405190612f0882611135565b60208301516001600160a01b038116810361020e578252612f2b60408401611f62565b6020830152606083015160408301526080830151916001600160401b03831161020e57612f6088602080969581960101611f6f565b6060820152815201920191612ecb565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116919060609060208301908135908116810361020e57604080516383db9d0160e01b81529085013560048201526001600160a01b03919091166024820152602081604481885afa908115610967575f916136a1575b50613688576101608301359384608085013593849560a08101359485936101208301359561014084013580159081150361020e5761356d575b5060209060609560408501355f526001835260405f209a878601359b8c5f52845260405f206040519061305a826110b3565b546001600160a01b03811680835260a09190911c60ff161515959091018590528015159485613565575b508461343d575b5060609b60408701355f525f60205260405f20815f5260205260405f2094604051956130b6876110fe565b549060ff60018060a01b03831692838952818160a01c16151560208a015260a81c16151590816040890152159182613433575b508161342b575b50613225575b505050505050508151159081809261321c575b61320e5750158080613204575b156131e657508451600101968760011161219f57613133886111c3565b97613141604051998a6111a2565b808952613150601f19916111c3565b015f5b8181106131cf575050613166889261215d565b516131708961215d565b5261317a8861215d565b505f5b86518110156131be57613190818861217e565b519080600101918260011161219f57826131b7916131b06001958e61217e565b528b61217e565b500161317d565b5092959194509295505b9493929190565b6020906131da611f3e565b82828d01015201613153565b9692959396949091945f146131fc5750916131c8565b9050916131c8565b5085511515613116565b969794969395509193915050565b50865115613109565b6101c087989e9d979c999c36031261020e57613257604051966132478861116b565b6132508a611072565b8852611072565b60208701526040880135604087015286860152608085015260a08401526132813660c087016121b3565b60c0840152613293610140860161120d565b60e08401526101008301526132ab610180850161120d565b6101208301526001600160401b036101a08501351161020e575f946132db6101209536906101a0810135016118ca565b610140840190815261010084019a8b526080840191825260a0840189815260c08501805187018a9052935160408051633d9cab2b60e21b815260206004820181905288516001600160a01b039081166024840152818a015181166044840152838a01516064840152998901516084830152955160a4820152925160c484015294518051881660e48401529384015160ff166101048301529383015163ffffffff166101248201526060929092015161014483015260e084015115156101648301529951610184820152939091015115156101a484015296516101c06101c484015291968792911690829081906133d6906101e4830190611d0b565b03915afa928315610967575f935f955f916133fc575b509493955f8080808080806130f6565b9194505061341d9194503d805f833e61341581836111a2565b810190612e52565b96939150509390945f6133ec565b90505f6130f0565b151591505f6130e9565b604051633d9cab2b60e21b815260206004820152919d939b929a5093985096505f92879290916001600160a01b0361347488611072565b1660248501526001600160a01b0361348b87611072565b166044850152604087013560648501528c608485015260a48401528960c48401526134bc60e4840160c088016120c1565b6134c9610140870161120d565b15156101648401526101848301526134e4610180860161120d565b15156101a483015281806135136134ff6101a089018961210c565b6101c06101c48501526101e484019161213d565b03915afa948515610967575f975f975f975f975f91613539575b50969798999b5f61308b565b939a5050965096506135569194503d805f833e61341581836111a2565b9399929891979096935f61352d565b94505f613084565b6040805163139db5a960e31b815290850135600482015290979196916020826024818c5afa908115610967575f91613652575b6135aa9250612204565b9660e084013560ff811680910361020e576101008501359063ffffffff821680920361020e576064602092604051948593849263622c574160e11b845260408b01356004850152602484015260448301525afa908115610967575f9161361f575b5061361890602092612204565b9590613028565b90506020813d60201161364a575b8161363a602093836111a2565b8101031261020e5751602061360b565b3d915061362d565b90506020823d602011613680575b8161366d602093836111a2565b8101031261020e576135aa9151906135a0565b3d9150613660565b505f936080830135935060a08301359261012001359190565b90506020813d6020116136d3575b816136bc602093836111a2565b8101031261020e576136cd90611f62565b5f612fef565b3d91506136af565b90602080835192838152019201905f5b8181106136f85750505090565b909192602060c0600192865163ffffffff81511682526001600160401b03848201511684830152848060a01b03604082015116604083015260608101511515606083015265ffffffffffff608082015116608083015260a08580821b039101511660a082015201940191019190916136eb565b90602080835192838152019201905f5b8181106137885750505090565b825180516001600160e01b0316855260209081015163ffffffff16818601526040909401939092019160010161377b565b9080602083519182815201916020808360051b8301019401925f915b8383106137e457505050505090565b9091929394601f19828203018352855161034082019065ffffffffffff815116835263ffffffff60208201511660208401526001600160701b03604082015116604084015263ffffffff606082015116606084015260018060a01b03608082015116608084015261ffff61024060a08301518281511660a08701528260208201511660c087015263ffffffff60408201511660e0870152606081015115156101008701526080810151151561012087015260a0810151151561014087015260c0810151151561016087015260e0810151151561018087015261010081015115156101a087015261012081015115156101c087015261014081015115156101e0870152610160810151151561020087015261018081015115156102208701526101a08101511515828701526101c081015115156102608701526101e0810151151561028087015261020081015115156102a087015260018060a01b03610220820151166102c08701520151166102e084015260c0810151916103406103008501528251809152610360840160206103608360051b8701019401915f5b818110613a3f575050505060e0015191610320818303910152815180825260208201906020808260051b8501019401925f5b8281106139d2575050505050602080600192970193019301919392906137d5565b9091929394602080613a32600193601f19878203018952895190858060a01b038251168152858060a01b038483015116848201526060613a21604084015160806040850152608084019061376b565b92015190606081840391015261376b565b97019501939291016139b1565b90919294602080613a6e60019361035f198b82030188526040838b5180518452015191818582015201906136db565b9701940192910161397f565b98979596949391613aaa93613a9c928b5260a060208c015260a08b019161213d565b9088820360408a01526137b9565b938685036060880152808552602085019460208260051b82010195835f92603e1982360301905b858510613af157505050505050508460806118ac9596850391015261213d565b90919293949598601f1982820301855289358381121561020e57604082019190850180356001600160a01b0381169081900361020e57606091613b3a9184526020810190611df9565b60406020850152938490529101915f905b808210613b6c575050506020806001929b0195019501939594929190613ad1565b909192606080600192838060a01b03613b8488611072565b16815260ff613b956020890161190e565b16602082015263ffffffff613bac604089016111ed565b166040820152019401920190613b4b565b949892999697606098613bd6613bd1615768565b614fbe565b5f98906001600160a01b03166001600160a01b03198a5c1617895d60405163180e2b1160e31b81523060048201529b60208d602481347f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1978815610967578e9d5f99613f0f575b50908894939291859f6bffffffffffffffffffffffff60a01b5f5c165f5d613c6f87615042565b613c799087615210565b9e8f9060200151151590613c8d9288615544565b6040516307128b6b60e31b8152978897613caa9760048a01613a7a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691839103815a6020945f91f1801561096757613ee0575b50613cf58261513c565b6001600160a01b038716803b1561020e575f80916024604051809481936351106b4b60e11b83528860048401525af1801561096757613ecb575b50602081013580613dfa575b50507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163b15613df657604051632142170760e11b81523060048201526001600160a01b03928316602482015260448101919091529082908290606490829084907f0000000000000000000000000000000000000000000000000000000000000000165af18015613deb57613dd6575050565b613de18280926111a2565b613de85750565b80fd5b6040513d84823e3d90fd5b8280fd5b829650613e4090613e0e8387949587614bde565b6108ba6108c8613e1c615768565b60408051602081019586526001600160a01b03909216908201529182906060820190565b92613e606040519485938493639d7f900160e01b85528b60048601611e2d565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1908115613ec0578391613ea6575b50935f80613d3b565b613eba91503d8085833e61095981836111a2565b5f613e9d565b6040513d85823e3d90fd5b613ed89194505f906111a2565b5f925f613d2f565b6020813d602011613f07575b81613ef9602093836111a2565b8101031261020e5751613ceb565b3d9150613eec565b9d5093929190975060208d3d602011613f46575b81613f30602093836111a2565b8101031261020e578d9c5197909192935f613c48565b3d9150613f23565b90604051613f5b816110fe565b604051613f6781611150565b6060815260606020820152606060408201525f606082015260606080820152604051613f92816110fe565b606081525f60208201525f604082015260a0820152604051613fb381611187565b5f81525f60208201525f60408201525f60608201525f608082015260c082015281525f60208201525f6040820152809280518015614019575060a060129263ffffffff604083614003829661215d565b5101510151166020838351015101525101510152565b6328a3030960e21b5f5260045260245ffd5b9081602091031261020e57516001600160a01b038116810361020e5790565b6040516331a9108f60e11b81526004810182905291945f949093929091906020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610967575f916146b7575b506140b1615768565b6001600160a01b03918216911680821415806145fe575b6145d45750506140d781615042565b60405163d4a1b4b160e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169390602081600481885afa908115610967576024916020915f916145b7575b506040516319fade8560e11b81526004810186905292839182906001600160a01b03165afa908115610967575f91614585575b504281101561456b5750865160a0015151511561429d576141818783615210565b966001600160a01b03881690813b1561020e575f80926024604051809581936351106b4b60e11b83528960048401525af191821561096757899261426c575b509261421d6141e061420b96948a946020809a9801511515915b85615544565b93604051988997889687956303141db760e41b875260048701526060602487015260648601906137b9565b8481036003190160448601529161213d565b03925af19182156142605791614231575091565b90506020813d602011614258575b8161424c602093836111a2565b8101031261020e575191565b3d915061423f565b604051903d90823e3d90fd5b602098508896949192506141e061420b969461428b5f61421d946111a2565b8b5f9b509493969850949650506141c0565b60405163d4a1b4b160e01b8152909650602081600481875afa90811561096757602491610140915f9161454c575b5060405163855a54ed60e01b81526004810185905292839182906001600160a01b03165afa908115610967575f905f926144ff575b506020019065ffffffffffff825116151590816144c4575b5080614494575b156143ae575165ffffffffffff16955b815f52600160205260405f20875f5260205260405f209660405197614353896110b3565b549060ff602060018060a01b0384169a8b8152019260a01c16151582528880156143945750506020949261421d6141e061420b96948b8b95511515916141da565b8490630b77705360e01b5f5260045260245260445260645ffd5b5060405163d4a1b4b160e01b8152602081600481875afa90811561096757602491610120915f91614465575b506040516321d1336160e11b81526004810185905292839182906001600160a01b03165afa908115610967575f91614420575b506020015165ffffffffffff169561432f565b90506101203d811161445e575b61443781836111a2565b81016101208282031261020e5761445760209165ffffffffffff93612a35565b915061440d565b503d61442d565b614487915060203d60201161448d575b61447f81836111a2565b81019061402b565b5f6143da565b503d614475565b50815f52600160205260405f2065ffffffffffff8251165f5260205260018060a01b0360405f205416151561431f565b905060068110156144eb57600481149081156144e2575b505f614318565b9050155f6144db565b634e487b7160e01b5f52602160045260245ffd5b9150506101403d8111614545575b61451781836111a2565b81016101408282031261020e576145316101209183612a35565b91015190600682101561020e576020614300565b503d61450d565b614565915060203d60201161448d5761447f81836111a2565b5f6142cb565b8263b357f5c560e01b5f526004526024524260445260645ffd5b90506020813d6020116145af575b816145a0602093836111a2565b8101031261020e57515f614160565b3d9150614593565b6145ce9150823d841161448d5761447f81836111a2565b5f61412d565b9160849260405192631326f75560e11b845260048401526024830152604482015260026064820152fd5b50604051631a45b42760e11b81526004810182905260248101839052604481018490526002606482015260016084820181905260a482015260208160c4817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610967575f9161467d575b50156140c8565b90506020813d6020116146af575b81614698602093836111a2565b8101031261020e576146a990611f62565b5f614676565b3d915061468b565b90506020813d6020116146e9575b816146d2602093836111a2565b8101031261020e576146e390611d2f565b5f6140a8565b3d91506146c5565b9896979092949795939195604051946331a9108f60e11b86525f958b600482015260208160248160018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610967575f91614ba4575b5061475a615768565b6001600160a01b0391821691168082141580614aeb575b614ac057506001600160a01b03614786615768565b168181141580614a07575b6149dc5750886148d3575b506147a68b615042565b6147b0878c615210565b996001600160a01b038b1694853b1561020e575f809660248f604051998a9384926351106b4b60e11b845260048401525af18015610967578d968d916148a6575b50614829959493929161480e916020809b9c015115159189615544565b6040516307128b6b60e31b81529a8b98899860048a01613a7a565b0381847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af19081156142605790614872575b61487091509361513c565b565b506020813d60201161489e575b8161488c602093836111a2565b8101031261020e576148709051614865565b3d915061487f565b6020995061480e9150916148c15f61482998979695946111a2565b8d8a5f9b5050915091929394956147f1565b6001600160a01b036148e3615768565b168181141580614923575b6148f8575061479c565b908c60849260405192631326f75560e11b845260048401526024830152604482015260076064820152fd5b50604051631a45b42760e11b81526004810182905260248101839052604481018e90526007606482015260016084820181905260a482015260208160c4817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610967575f916149a2575b50156148ee565b90506020813d6020116149d4575b816149bd602093836111a2565b8101031261020e576149ce90611f62565b5f61499b565b3d91506149b0565b908c60849260405192631326f75560e11b8452600484015260248301526044820152600f6064820152fd5b50604051631a45b42760e11b81526004810182905260248101839052604481018e9052600f606482015260016084820181905260a482015260208160c4817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610967575f91614a86575b5015614791565b90506020813d602011614ab8575b81614aa1602093836111a2565b8101031261020e57614ab290611f62565b5f614a7f565b3d9150614a94565b908c60849260405192631326f75560e11b845260048401526024830152604482015260036064820152fd5b50604051631a45b42760e11b81526004810182905260248101839052604481018e90526003606482015260016084820181905260a482015260208160c4817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610967575f91614b6a575b5015614771565b90506020813d602011614b9c575b81614b85602093836111a2565b8101031261020e57614b9690611f62565b5f614b63565b3d9150614b78565b90506020813d602011614bd6575b81614bbf602093836111a2565b8101031261020e57614bd090611d2f565b5f614751565b3d9150614bb2565b905f5b614beb8480611d43565b9050811015614d3957614bfe8480611d43565b82101561216a578160051b810135605e198236030181121561020e570160200135614c2b57600101614be1565b50909150614c37615768565b6001600160a01b0392831692168083141580614c81575b614c5757505050565b6084935060405192631326f75560e11b845260048401526024830152604482015260226064820152fd5b50604051631a45b42760e11b81526004810182905260248101849052604481018390526022606482015260016084820181905260a482015260208160c4817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610967575f91614d00575b5015614c4e565b90506020813d8211614d31575b81614d1a602093836111a2565b8101031261020e57614d2b90611f62565b5f614cf9565b3d9150614d0d565b50505050565b90915f198383099280830292838086109503948086039514614dd25782851015614dba5790829109600182190182168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b630c740aef60e31b5f5260045260245260445260645ffd5b505091508115614de0570490565b634e487b7160e01b5f52601260045260245ffd5b6060815110612c8757602081015191604082015191604083108015614fb2575b8015614f9c575b614f905760208382010151906020840180941161219f57614e3d848251612192565b60071c8211614f8357614e4f826111c3565b614e5c60405191826111a2565b828152601f19614e6b846111c3565b015f5b818110614f54575050935f5b838110614e875750505050565b8060071b8181046080148215171561219f57614ea39083612204565b8301602081015190604081015190608060608201519101519160ff81118015614f44575b8015614f34575b614f2157916001600160801b03809260ff600197969560405196614ef188611135565b8752166020860152166040840152166060820152614f0f828961217e565b52614f1a818861217e565b5001614e7a565b5050505050505050915050612c90612aff565b506001600160801b038311614ece565b506001600160801b038211614ec7565b602090604051614f6381611135565b5f81525f838201525f60408201525f606082015282828601015201614e6e565b5050915050612c90612aff565b50915050612c90612aff565b508051601f19810190811161219f578311614e1b565b50601f83161515614e14565b803b156118ac575f80604051602081019063296eee5160e01b825260048152614fe86024826111a2565b5190845afa614ff5612b50565b90158015615037575b6150335760208180518101031261020e576001600160a01b039061502490602001611d2f565b168061502e575090565b905090565b5090565b506020815110614ffe565b604051632eec7b5560e11b8152600481018290526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610967575f916150fa575b506001600160a01b03169081156150f6577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316908183036150de57505050565b637da4da8b60e01b5f5260045260245260445260645ffd5b5050565b90506020813d602011615134575b81615115602093836111a2565b8101031261020e57516001600160a01b038116810361020e575f615096565b3d9150615108565b604051632eec7b5560e11b8152600481018290526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610967575f916151ce575b506001600160a01b03908116917f0000000000000000000000000000000000000000000000000000000000000000909116908183036150de57505050565b90506020813d602011615208575b816151e9602093836111a2565b8101031261020e57516001600160a01b038116810361020e575f615190565b3d91506151dc565b906040815191015180155f1461550957505f915b6040519283916337b4a3c360e11b83526004830152606060248301526152b661528d615277615261865161016060648801526101c4870190611d0b565b6020870151868203606319016084880152611d0b565b60408601518582036063190160a4870152611d0b565b60608501516001600160a01b031660c485015260808501518482036063190160e4860152611d0b565b9260a0810151936063198482030161010485015260608101948051956060835286518091526080830190602060808260051b8601019801915f905b8282106153e0575050505060c060209693869593604060ff818663ffffffff8d6080990151168d8601520151169101520151805115156101248601528681015115156101448601526040810151151561016486015260608101511515610184860152015115156101a4840152604483015203815f60018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1908115610967575f916153a1575090565b90506020813d6020116153d8575b816153bc602093836111a2565b8101031261020e57516001600160a01b038116810361020e5790565b3d91506153af565b9193949596975091976020806154f66001936102206101408e607f198d8503018952516cffffffffffffffffffffffffff815116845263ffffffff86820151168685015263ffffffff604082015116604085015261ffff6060820151166060850152878060a01b03608082015116608085015260a081015160a085015262ffffff60c08201511660c085015260ff60e08201511660e085015260c0610100820151805115156101008701528781015115156101208701526040810151151584870152606081015115156101608701526080810151151561018087015260a081015115156101a0870152015115156101c085015263ffffffff610120820151166101e08501520151918161020082015201906136db565b9a019201920189979695949391926152f1565b615511615768565b604080516001600160a01b039092166020830190815282820193909352815261553b6060826111a2565b51902091615224565b90919392935f5b83518110156157605761555e8142612204565b306001600160a01b0361022060a0615576868a61217e565b5101510151161461572a57906001916155ee604051615594816110b3565b60a085811b86900387811683528b151560208085019182525f8b815289825260408082208983529092522093518454915160ff60a01b1991909316166001600160a81b03199091161790151590911b60ff60a01b16179055565b828060a01b0361022060a0615603858a61217e565b510151015116615654575b503061022060a061561f848961217e565b5101510152816101e060a0615634848961217e565b51015101528161020060a0615649848961217e565b51015101520161554b565b828060a01b0361022060a0615669858a61217e565b5101510151169061570b6101e060a0615682868b61217e565b5101510151151561020060a0615698878c61217e565b5101510151151592604051946156ad866110fe565b8552602080860192835260408087019586525f8b815280835281812093815292909152902093518454915160ff60a01b1960a089811b8a900393909316166001600160a81b031990931692909217911515901b60ff60a01b16178355565b51815460ff60a81b191690151560a81b60ff60a81b161790555f61560e565b836001600160a01b0361022060a0615742868a61217e565b510151015116630b77705360e01b5f5260045260245260445260645ffd5b509193505050565b60143610158061578f575b1561578b57601319360136811161020e573560601c90565b3390565b50337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161461577356fea164736f6c634300081c000a",
3502
+ "metadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IJBSuckerRegistry\",\"name\":\"suckerRegistry\",\"type\":\"address\"},{\"internalType\":\"contract IJB721TiersHookDeployer\",\"name\":\"hookDeployer\",\"type\":\"address\"},{\"internalType\":\"contract IJBPermissions\",\"name\":\"permissions\",\"type\":\"address\"},{\"internalType\":\"contract IJBController\",\"name\":\"controller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"trustedForwarder\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"expectedController\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"actualController\",\"type\":\"address\"}],\"type\":\"error\",\"name\":\"JBOmnichainDeployer_ControllerMismatch\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rulesetId\",\"type\":\"uint256\"}],\"type\":\"error\",\"name\":\"JBOmnichainDeployer_InvalidHook\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"rulesetConfigurationCount\",\"type\":\"uint256\"}],\"type\":\"error\",\"name\":\"JBOmnichainDeployer_NoRulesetConfigurations\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"latestRulesetId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentTimestamp\",\"type\":\"uint256\"}],\"type\":\"error\",\"name\":\"JBOmnichainDeployer_RulesetIdsUnpredictable\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"type\":\"error\",\"name\":\"JBOmnichainDeployer_UnexpectedNFTReceived\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"permissionId\",\"type\":\"uint256\"}],\"type\":\"error\",\"name\":\"JBPermissioned_Unauthorized\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"type\":\"error\",\"name\":\"PRBMath_MulDiv_Overflow\"},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"CONTROLLER\",\"outputs\":[{\"internalType\":\"contract IJBController\",\"name\":\"\",\"type\":\"address\"}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"DIRECTORY\",\"outputs\":[{\"internalType\":\"contract IJBDirectory\",\"name\":\"\",\"type\":\"address\"}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"HOOK_DEPLOYER\",\"outputs\":[{\"internalType\":\"contract IJB721TiersHookDeployer\",\"name\":\"\",\"type\":\"address\"}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"PERMISSIONS\",\"outputs\":[{\"internalType\":\"contract IJBPermissions\",\"name\":\"\",\"type\":\"address\"}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"PROJECTS\",\"outputs\":[{\"internalType\":\"contract IJBProjects\",\"name\":\"\",\"type\":\"address\"}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"SUCKER_REGISTRY\",\"outputs\":[{\"internalType\":\"contract IJBSuckerRegistry\",\"name\":\"\",\"type\":\"address\"}]},{\"inputs\":[{\"internalType\":\"struct JBBeforeCashOutRecordedContext\",\"name\":\"context\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"address\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rulesetId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"cashOutCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"struct JBTokenAmount\",\"name\":\"surplus\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}]},{\"internalType\":\"bool\",\"name\":\"scopeCashOutsToLocalBalances\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"cashOutTaxRate\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"beneficiaryIsFeeless\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"beforeCashOutRecordedWith\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"cashOutTaxRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"cashOutCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"effectiveSurplusValue\",\"type\":\"uint256\"},{\"internalType\":\"struct JBCashOutHookSpecification[]\",\"name\":\"hookSpecifications\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"contract IJBCashOutHook\",\"name\":\"hook\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"noop\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}]}]},{\"inputs\":[{\"internalType\":\"struct JBBeforePayRecordedContext\",\"name\":\"context\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"address\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"internalType\":\"struct JBTokenAmount\",\"name\":\"amount\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}]},{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rulesetId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reservedPercent\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"beforePayRecordedWith\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"struct JBPayHookSpecification[]\",\"name\":\"hookSpecifications\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"contract IJBPayHook\",\"name\":\"hook\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"noop\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBSuckerDeploymentConfig\",\"name\":\"suckerDeploymentConfiguration\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"struct JBSuckerDeployerConfig[]\",\"name\":\"deployerConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"contract IJBSuckerDeployer\",\"name\":\"deployer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"},{\"internalType\":\"struct JBTokenMapping[]\",\"name\":\"mappings\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"localToken\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"minGas\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"remoteToken\",\"type\":\"bytes32\"}]}]},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"deploySuckersFor\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"suckers\",\"type\":\"address[]\"}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rulesetId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"extraDataHookOf\",\"outputs\":[{\"internalType\":\"struct JBDeployerHookConfig\",\"name\":\"hook\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"contract IJBRulesetDataHook\",\"name\":\"dataHook\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"useDataHookForPay\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useDataHookForCashOut\",\"type\":\"bool\"}]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBRuleset\",\"name\":\"ruleset\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint48\",\"name\":\"cycleNumber\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"id\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"basedOnId\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"},{\"internalType\":\"uint112\",\"name\":\"weight\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"weightCutPercent\",\"type\":\"uint32\"},{\"internalType\":\"contract IJBRulesetApprovalHook\",\"name\":\"approvalHook\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"metadata\",\"type\":\"uint256\"}]},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"hasMintPermissionFor\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"forwarder\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"isTrustedForwarder\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"projectUri\",\"type\":\"string\"},{\"internalType\":\"struct JBOmnichain721Config\",\"name\":\"deploy721Config\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"struct JBDeploy721TiersHookConfig\",\"name\":\"deployTiersHookConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"baseUri\",\"type\":\"string\"},{\"internalType\":\"contract IJB721TokenUriResolver\",\"name\":\"tokenUriResolver\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"contractUri\",\"type\":\"string\"},{\"internalType\":\"struct JB721InitTiersConfig\",\"name\":\"tiersConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"struct JB721TierConfig[]\",\"name\":\"tiers\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint104\",\"name\":\"price\",\"type\":\"uint104\"},{\"internalType\":\"uint32\",\"name\":\"initialSupply\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"votingUnits\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"reserveFrequency\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"encodedIpfsUri\",\"type\":\"bytes32\"},{\"internalType\":\"uint24\",\"name\":\"category\",\"type\":\"uint24\"},{\"internalType\":\"uint8\",\"name\":\"discountPercent\",\"type\":\"uint8\"},{\"internalType\":\"struct JB721TierConfigFlags\",\"name\":\"flags\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"bool\",\"name\":\"allowOwnerMint\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useReserveBeneficiaryAsDefault\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"transfersPausable\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useVotingUnits\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cantBeRemoved\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cantIncreaseDiscountPercent\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cantBuyWithCredits\",\"type\":\"bool\"}]},{\"internalType\":\"uint32\",\"name\":\"splitPercent\",\"type\":\"uint32\"},{\"internalType\":\"struct JBSplit[]\",\"name\":\"splits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint32\",\"name\":\"percent\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"projectId\",\"type\":\"uint64\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"preferAddToBalance\",\"type\":\"bool\"},{\"internalType\":\"uint48\",\"name\":\"lockedUntil\",\"type\":\"uint48\"},{\"internalType\":\"contract IJBSplitHook\",\"name\":\"hook\",\"type\":\"address\"}]}]},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"}]},{\"internalType\":\"struct JB721TiersHookFlags\",\"name\":\"flags\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"bool\",\"name\":\"noNewTiersWithReserves\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithVotes\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"preventOverspending\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"issueTokensForSplits\",\"type\":\"bool\"}]}]},{\"internalType\":\"bool\",\"name\":\"useDataHookForCashOut\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}]},{\"internalType\":\"struct JBRulesetConfig[]\",\"name\":\"rulesetConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint48\",\"name\":\"mustStartAtOrAfter\",\"type\":\"uint48\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"},{\"internalType\":\"uint112\",\"name\":\"weight\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"weightCutPercent\",\"type\":\"uint32\"},{\"internalType\":\"contract IJBRulesetApprovalHook\",\"name\":\"approvalHook\",\"type\":\"address\"},{\"internalType\":\"struct JBRulesetMetadata\",\"name\":\"metadata\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint16\",\"name\":\"reservedPercent\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"cashOutTaxRate\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"baseCurrency\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"pausePay\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"pauseCreditTransfers\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetCustomToken\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowTerminalMigration\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetTerminals\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetController\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddAccountingContext\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddPriceFeed\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"ownerMustSendPayouts\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"holdFees\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"scopeCashOutsToLocalBalances\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useDataHookForPay\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useDataHookForCashOut\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"dataHook\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"metadata\",\"type\":\"uint16\"}]},{\"internalType\":\"struct JBSplitGroup[]\",\"name\":\"splitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint256\",\"name\":\"groupId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBSplit[]\",\"name\":\"splits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint32\",\"name\":\"percent\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"projectId\",\"type\":\"uint64\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"preferAddToBalance\",\"type\":\"bool\"},{\"internalType\":\"uint48\",\"name\":\"lockedUntil\",\"type\":\"uint48\"},{\"internalType\":\"contract IJBSplitHook\",\"name\":\"hook\",\"type\":\"address\"}]}]},{\"internalType\":\"struct JBFundAccessLimitGroup[]\",\"name\":\"fundAccessLimitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"payoutLimits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"surplusAllowances\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]}]},{\"internalType\":\"struct JBTerminalConfig[]\",\"name\":\"terminalConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"contract IJBTerminal\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"struct JBAccountingContext[]\",\"name\":\"accountingContextsToAccept\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"},{\"internalType\":\"struct JBSuckerDeploymentConfig\",\"name\":\"suckerDeploymentConfiguration\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"struct JBSuckerDeployerConfig[]\",\"name\":\"deployerConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"contract IJBSuckerDeployer\",\"name\":\"deployer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"},{\"internalType\":\"struct JBTokenMapping[]\",\"name\":\"mappings\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"localToken\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"minGas\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"remoteToken\",\"type\":\"bytes32\"}]}]},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"launchProjectFor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"contract IJB721TiersHook\",\"name\":\"hook\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"suckers\",\"type\":\"address[]\"}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"projectUri\",\"type\":\"string\"},{\"internalType\":\"struct JBRulesetConfig[]\",\"name\":\"rulesetConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint48\",\"name\":\"mustStartAtOrAfter\",\"type\":\"uint48\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"},{\"internalType\":\"uint112\",\"name\":\"weight\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"weightCutPercent\",\"type\":\"uint32\"},{\"internalType\":\"contract IJBRulesetApprovalHook\",\"name\":\"approvalHook\",\"type\":\"address\"},{\"internalType\":\"struct JBRulesetMetadata\",\"name\":\"metadata\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint16\",\"name\":\"reservedPercent\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"cashOutTaxRate\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"baseCurrency\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"pausePay\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"pauseCreditTransfers\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetCustomToken\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowTerminalMigration\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetTerminals\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetController\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddAccountingContext\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddPriceFeed\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"ownerMustSendPayouts\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"holdFees\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"scopeCashOutsToLocalBalances\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useDataHookForPay\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useDataHookForCashOut\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"dataHook\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"metadata\",\"type\":\"uint16\"}]},{\"internalType\":\"struct JBSplitGroup[]\",\"name\":\"splitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint256\",\"name\":\"groupId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBSplit[]\",\"name\":\"splits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint32\",\"name\":\"percent\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"projectId\",\"type\":\"uint64\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"preferAddToBalance\",\"type\":\"bool\"},{\"internalType\":\"uint48\",\"name\":\"lockedUntil\",\"type\":\"uint48\"},{\"internalType\":\"contract IJBSplitHook\",\"name\":\"hook\",\"type\":\"address\"}]}]},{\"internalType\":\"struct JBFundAccessLimitGroup[]\",\"name\":\"fundAccessLimitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"payoutLimits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"surplusAllowances\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]}]},{\"internalType\":\"struct JBTerminalConfig[]\",\"name\":\"terminalConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"contract IJBTerminal\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"struct JBAccountingContext[]\",\"name\":\"accountingContextsToAccept\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"},{\"internalType\":\"struct JBSuckerDeploymentConfig\",\"name\":\"suckerDeploymentConfiguration\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"struct JBSuckerDeployerConfig[]\",\"name\":\"deployerConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"contract IJBSuckerDeployer\",\"name\":\"deployer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"},{\"internalType\":\"struct JBTokenMapping[]\",\"name\":\"mappings\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"localToken\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"minGas\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"remoteToken\",\"type\":\"bytes32\"}]}]},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"launchProjectFor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"contract IJB721TiersHook\",\"name\":\"hook\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"suckers\",\"type\":\"address[]\"}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"projectUri\",\"type\":\"string\"},{\"internalType\":\"struct JBRulesetConfig[]\",\"name\":\"rulesetConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint48\",\"name\":\"mustStartAtOrAfter\",\"type\":\"uint48\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"},{\"internalType\":\"uint112\",\"name\":\"weight\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"weightCutPercent\",\"type\":\"uint32\"},{\"internalType\":\"contract IJBRulesetApprovalHook\",\"name\":\"approvalHook\",\"type\":\"address\"},{\"internalType\":\"struct JBRulesetMetadata\",\"name\":\"metadata\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint16\",\"name\":\"reservedPercent\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"cashOutTaxRate\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"baseCurrency\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"pausePay\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"pauseCreditTransfers\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetCustomToken\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowTerminalMigration\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetTerminals\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetController\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddAccountingContext\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddPriceFeed\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"ownerMustSendPayouts\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"holdFees\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"scopeCashOutsToLocalBalances\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useDataHookForPay\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useDataHookForCashOut\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"dataHook\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"metadata\",\"type\":\"uint16\"}]},{\"internalType\":\"struct JBSplitGroup[]\",\"name\":\"splitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint256\",\"name\":\"groupId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBSplit[]\",\"name\":\"splits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint32\",\"name\":\"percent\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"projectId\",\"type\":\"uint64\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"preferAddToBalance\",\"type\":\"bool\"},{\"internalType\":\"uint48\",\"name\":\"lockedUntil\",\"type\":\"uint48\"},{\"internalType\":\"contract IJBSplitHook\",\"name\":\"hook\",\"type\":\"address\"}]}]},{\"internalType\":\"struct JBFundAccessLimitGroup[]\",\"name\":\"fundAccessLimitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"payoutLimits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"surplusAllowances\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]}]},{\"internalType\":\"struct JBTerminalConfig[]\",\"name\":\"terminalConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"contract IJBTerminal\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"struct JBAccountingContext[]\",\"name\":\"accountingContextsToAccept\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"launchRulesetsFor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"rulesetId\",\"type\":\"uint256\"},{\"internalType\":\"contract IJB721TiersHook\",\"name\":\"hook\",\"type\":\"address\"}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"projectUri\",\"type\":\"string\"},{\"internalType\":\"struct JBOmnichain721Config\",\"name\":\"deploy721Config\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"struct JBDeploy721TiersHookConfig\",\"name\":\"deployTiersHookConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"baseUri\",\"type\":\"string\"},{\"internalType\":\"contract IJB721TokenUriResolver\",\"name\":\"tokenUriResolver\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"contractUri\",\"type\":\"string\"},{\"internalType\":\"struct JB721InitTiersConfig\",\"name\":\"tiersConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"struct JB721TierConfig[]\",\"name\":\"tiers\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint104\",\"name\":\"price\",\"type\":\"uint104\"},{\"internalType\":\"uint32\",\"name\":\"initialSupply\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"votingUnits\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"reserveFrequency\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"encodedIpfsUri\",\"type\":\"bytes32\"},{\"internalType\":\"uint24\",\"name\":\"category\",\"type\":\"uint24\"},{\"internalType\":\"uint8\",\"name\":\"discountPercent\",\"type\":\"uint8\"},{\"internalType\":\"struct JB721TierConfigFlags\",\"name\":\"flags\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"bool\",\"name\":\"allowOwnerMint\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useReserveBeneficiaryAsDefault\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"transfersPausable\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useVotingUnits\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cantBeRemoved\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cantIncreaseDiscountPercent\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cantBuyWithCredits\",\"type\":\"bool\"}]},{\"internalType\":\"uint32\",\"name\":\"splitPercent\",\"type\":\"uint32\"},{\"internalType\":\"struct JBSplit[]\",\"name\":\"splits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint32\",\"name\":\"percent\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"projectId\",\"type\":\"uint64\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"preferAddToBalance\",\"type\":\"bool\"},{\"internalType\":\"uint48\",\"name\":\"lockedUntil\",\"type\":\"uint48\"},{\"internalType\":\"contract IJBSplitHook\",\"name\":\"hook\",\"type\":\"address\"}]}]},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"}]},{\"internalType\":\"struct JB721TiersHookFlags\",\"name\":\"flags\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"bool\",\"name\":\"noNewTiersWithReserves\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithVotes\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"preventOverspending\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"issueTokensForSplits\",\"type\":\"bool\"}]}]},{\"internalType\":\"bool\",\"name\":\"useDataHookForCashOut\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}]},{\"internalType\":\"struct JBRulesetConfig[]\",\"name\":\"rulesetConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint48\",\"name\":\"mustStartAtOrAfter\",\"type\":\"uint48\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"},{\"internalType\":\"uint112\",\"name\":\"weight\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"weightCutPercent\",\"type\":\"uint32\"},{\"internalType\":\"contract IJBRulesetApprovalHook\",\"name\":\"approvalHook\",\"type\":\"address\"},{\"internalType\":\"struct JBRulesetMetadata\",\"name\":\"metadata\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint16\",\"name\":\"reservedPercent\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"cashOutTaxRate\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"baseCurrency\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"pausePay\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"pauseCreditTransfers\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetCustomToken\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowTerminalMigration\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetTerminals\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetController\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddAccountingContext\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddPriceFeed\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"ownerMustSendPayouts\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"holdFees\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"scopeCashOutsToLocalBalances\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useDataHookForPay\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useDataHookForCashOut\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"dataHook\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"metadata\",\"type\":\"uint16\"}]},{\"internalType\":\"struct JBSplitGroup[]\",\"name\":\"splitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint256\",\"name\":\"groupId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBSplit[]\",\"name\":\"splits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint32\",\"name\":\"percent\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"projectId\",\"type\":\"uint64\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"preferAddToBalance\",\"type\":\"bool\"},{\"internalType\":\"uint48\",\"name\":\"lockedUntil\",\"type\":\"uint48\"},{\"internalType\":\"contract IJBSplitHook\",\"name\":\"hook\",\"type\":\"address\"}]}]},{\"internalType\":\"struct JBFundAccessLimitGroup[]\",\"name\":\"fundAccessLimitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"payoutLimits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"surplusAllowances\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]}]},{\"internalType\":\"struct JBTerminalConfig[]\",\"name\":\"terminalConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"contract IJBTerminal\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"struct JBAccountingContext[]\",\"name\":\"accountingContextsToAccept\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"launchRulesetsFor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"rulesetId\",\"type\":\"uint256\"},{\"internalType\":\"contract IJB721TiersHook\",\"name\":\"hook\",\"type\":\"address\"}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"originalPayer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"peerChainAdjustedAccountsOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"supply\",\"type\":\"uint256\"},{\"internalType\":\"struct JBSourceContext[]\",\"name\":\"contexts\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"bytes32\",\"name\":\"token\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint128\",\"name\":\"surplus\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"balance\",\"type\":\"uint128\"}]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBRulesetConfig[]\",\"name\":\"rulesetConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint48\",\"name\":\"mustStartAtOrAfter\",\"type\":\"uint48\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"},{\"internalType\":\"uint112\",\"name\":\"weight\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"weightCutPercent\",\"type\":\"uint32\"},{\"internalType\":\"contract IJBRulesetApprovalHook\",\"name\":\"approvalHook\",\"type\":\"address\"},{\"internalType\":\"struct JBRulesetMetadata\",\"name\":\"metadata\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint16\",\"name\":\"reservedPercent\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"cashOutTaxRate\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"baseCurrency\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"pausePay\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"pauseCreditTransfers\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetCustomToken\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowTerminalMigration\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetTerminals\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetController\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddAccountingContext\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddPriceFeed\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"ownerMustSendPayouts\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"holdFees\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"scopeCashOutsToLocalBalances\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useDataHookForPay\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useDataHookForCashOut\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"dataHook\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"metadata\",\"type\":\"uint16\"}]},{\"internalType\":\"struct JBSplitGroup[]\",\"name\":\"splitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint256\",\"name\":\"groupId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBSplit[]\",\"name\":\"splits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint32\",\"name\":\"percent\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"projectId\",\"type\":\"uint64\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"preferAddToBalance\",\"type\":\"bool\"},{\"internalType\":\"uint48\",\"name\":\"lockedUntil\",\"type\":\"uint48\"},{\"internalType\":\"contract IJBSplitHook\",\"name\":\"hook\",\"type\":\"address\"}]}]},{\"internalType\":\"struct JBFundAccessLimitGroup[]\",\"name\":\"fundAccessLimitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"payoutLimits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"surplusAllowances\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]}]},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"queueRulesetsOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"rulesetId\",\"type\":\"uint256\"},{\"internalType\":\"contract IJB721TiersHook\",\"name\":\"hook\",\"type\":\"address\"}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBOmnichain721Config\",\"name\":\"deploy721Config\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"struct JBDeploy721TiersHookConfig\",\"name\":\"deployTiersHookConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"baseUri\",\"type\":\"string\"},{\"internalType\":\"contract IJB721TokenUriResolver\",\"name\":\"tokenUriResolver\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"contractUri\",\"type\":\"string\"},{\"internalType\":\"struct JB721InitTiersConfig\",\"name\":\"tiersConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"struct JB721TierConfig[]\",\"name\":\"tiers\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint104\",\"name\":\"price\",\"type\":\"uint104\"},{\"internalType\":\"uint32\",\"name\":\"initialSupply\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"votingUnits\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"reserveFrequency\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"encodedIpfsUri\",\"type\":\"bytes32\"},{\"internalType\":\"uint24\",\"name\":\"category\",\"type\":\"uint24\"},{\"internalType\":\"uint8\",\"name\":\"discountPercent\",\"type\":\"uint8\"},{\"internalType\":\"struct JB721TierConfigFlags\",\"name\":\"flags\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"bool\",\"name\":\"allowOwnerMint\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useReserveBeneficiaryAsDefault\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"transfersPausable\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useVotingUnits\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cantBeRemoved\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cantIncreaseDiscountPercent\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cantBuyWithCredits\",\"type\":\"bool\"}]},{\"internalType\":\"uint32\",\"name\":\"splitPercent\",\"type\":\"uint32\"},{\"internalType\":\"struct JBSplit[]\",\"name\":\"splits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint32\",\"name\":\"percent\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"projectId\",\"type\":\"uint64\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"preferAddToBalance\",\"type\":\"bool\"},{\"internalType\":\"uint48\",\"name\":\"lockedUntil\",\"type\":\"uint48\"},{\"internalType\":\"contract IJBSplitHook\",\"name\":\"hook\",\"type\":\"address\"}]}]},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"}]},{\"internalType\":\"struct JB721TiersHookFlags\",\"name\":\"flags\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"bool\",\"name\":\"noNewTiersWithReserves\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithVotes\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"preventOverspending\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"issueTokensForSplits\",\"type\":\"bool\"}]}]},{\"internalType\":\"bool\",\"name\":\"useDataHookForCashOut\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}]},{\"internalType\":\"struct JBRulesetConfig[]\",\"name\":\"rulesetConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint48\",\"name\":\"mustStartAtOrAfter\",\"type\":\"uint48\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"},{\"internalType\":\"uint112\",\"name\":\"weight\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"weightCutPercent\",\"type\":\"uint32\"},{\"internalType\":\"contract IJBRulesetApprovalHook\",\"name\":\"approvalHook\",\"type\":\"address\"},{\"internalType\":\"struct JBRulesetMetadata\",\"name\":\"metadata\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint16\",\"name\":\"reservedPercent\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"cashOutTaxRate\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"baseCurrency\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"pausePay\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"pauseCreditTransfers\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetCustomToken\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowTerminalMigration\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetTerminals\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetController\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddAccountingContext\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddPriceFeed\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"ownerMustSendPayouts\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"holdFees\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"scopeCashOutsToLocalBalances\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useDataHookForPay\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useDataHookForCashOut\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"dataHook\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"metadata\",\"type\":\"uint16\"}]},{\"internalType\":\"struct JBSplitGroup[]\",\"name\":\"splitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint256\",\"name\":\"groupId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBSplit[]\",\"name\":\"splits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint32\",\"name\":\"percent\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"projectId\",\"type\":\"uint64\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"preferAddToBalance\",\"type\":\"bool\"},{\"internalType\":\"uint48\",\"name\":\"lockedUntil\",\"type\":\"uint48\"},{\"internalType\":\"contract IJBSplitHook\",\"name\":\"hook\",\"type\":\"address\"}]}]},{\"internalType\":\"struct JBFundAccessLimitGroup[]\",\"name\":\"fundAccessLimitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"payoutLimits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"surplusAllowances\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]}]},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"queueRulesetsOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"rulesetId\",\"type\":\"uint256\"},{\"internalType\":\"contract IJB721TiersHook\",\"name\":\"hook\",\"type\":\"address\"}]},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"flag\",\"type\":\"bool\"}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rulesetId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"tiered721HookOf\",\"outputs\":[{\"internalType\":\"contract IJB721TiersHook\",\"name\":\"hook\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"useDataHookForCashOut\",\"type\":\"bool\"}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"trustedForwarder\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}]}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"beforeCashOutRecordedWith((address,address,uint256,uint256,uint256,uint256,(address,uint8,uint32,uint256),bool,uint256,bool,bytes))\":{\"details\":\"Part of `IJBRulesetDataHook`. The 721 hook's returned `totalSupply` and `effectiveSurplusValue` are used when it handles cash outs (NFT redemptions use local denominators). Otherwise this contract's cross-chain values take precedence.\",\"params\":{\"context\":\"Standard Juicebox cash out context. See `JBBeforeCashOutRecordedContext`.\"},\"returns\":{\"cashOutCount\":\"The number of project tokens that are cashed out.\",\"cashOutTaxRate\":\"The cash out tax rate, which influences the amount of terminal tokens which get cashed out.\",\"effectiveSurplusValue\":\"The global surplus across all chains for proportional reclaim.\",\"hookSpecifications\":\"The amount of funds and the data to send to cash out hooks (this contract).\",\"totalSupply\":\"The total token supply across all chains (for both proportional reclaim and tax).\"}},\"beforePayRecordedWith((address,address,(address,uint8,uint32,uint256),uint256,uint256,address,uint256,uint256,bytes))\":{\"details\":\"Part of `IJBRulesetDataHook`. The 721 hook's weight already accounts for tier-split deductions. The extra hook receives the post-split amount so it only routes funds actually entering the project. If both return specifications, the 721 spec comes first.\",\"params\":{\"context\":\"Standard Juicebox payment context. See `JBBeforePayRecordedContext`.\"},\"returns\":{\"hookSpecifications\":\"Amounts (out of the payment) to send to pay hooks instead of the project. Useful for automatically routing funds from a treasury as payments come in.\",\"weight\":\"The weight which project tokens are minted relative to. This can be used to customize how many tokens get minted by a payment.\"}},\"constructor\":{\"params\":{\"controller\":\"The controller to use for every project launch and ruleset queue.\",\"hookDeployer\":\"The deployer to use for project's tiered ERC-721 hooks.\",\"permissions\":\"The permissions to use for the contract.\",\"suckerRegistry\":\"The registry to use for deploying and tracking each project's suckers.\",\"trustedForwarder\":\"The trusted forwarder for the ERC2771Context.\"}},\"deploySuckersFor(uint256,((address,bytes32,(address,uint32,bytes32)[])[],bytes32))\":{\"details\":\"Only the project's owner or an operator with `JBPermissionIds.DEPLOY_SUCKERS` can call this. Supplying an explicit non-default peer also requires `JBPermissionIds.SET_SUCKER_PEER`, matching the registry's direct-call authorization model. The salt includes `msg.sender` for replay protection — the same sender must call on both chains for deterministic address matching.\",\"params\":{\"projectId\":\"The ID of the project to deploy suckers for.\",\"suckerDeploymentConfiguration\":\"The suckers to set up for the project.\"},\"returns\":{\"suckers\":\"The addresses of the deployed suckers.\"}},\"extraDataHookOf(uint256,uint256)\":{\"params\":{\"projectId\":\"The ID of the project to get the extra data hook for.\",\"rulesetId\":\"The ID of the ruleset to get the extra data hook for.\"},\"returns\":{\"hook\":\"The extra data hook configured for the project/ruleset.\"}},\"hasMintPermissionFor(uint256,(uint48,uint48,uint48,uint48,uint32,uint112,uint32,address,uint256),address)\":{\"details\":\"Part of `IJBRulesetDataHook`. The 721 hook never grants mint permission, so only the extra hook is checked.\",\"params\":{\"addr\":\"The address to check the token minting permission of.\",\"projectId\":\"The ID of the project whose token can be minted.\",\"ruleset\":\"The ruleset to check the token minting permission of.\"},\"returns\":{\"_0\":\"flag A flag indicating whether the address has permission to mint the project's tokens on-demand.\"}},\"isTrustedForwarder(address)\":{\"details\":\"Indicates whether any particular address is the trusted forwarder.\"},\"launchProjectFor(address,string,((string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,(bool,bool,bool,bool,bool,bool,bool),uint32,(uint32,uint64,address,bool,uint48,address)[])[],uint32,uint8),(bool,bool,bool,bool,bool)),bool,bytes32),(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,address,uint16),(uint256,(uint32,uint64,address,bool,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],(address,(address,uint8,uint32)[])[],string,((address,bytes32,(address,uint32,bytes32)[])[],bytes32))\":{\"params\":{\"deploy721Config\":\"The 721 hook deployment config (hook config + cash-out flag + salt).\",\"memo\":\"A memo to pass along to the emitted event.\",\"owner\":\"The address to set as the owner of the project. The ERC-721 which confers this project's ownership will be sent to this address.\",\"projectUri\":\"The project's metadata URI.\",\"rulesetConfigurations\":\"The rulesets to queue. Custom data hooks are read from each ruleset's metadata.\",\"suckerDeploymentConfiguration\":\"The suckers to set up for the project. Suckers facilitate cross-chain token transfers between peer projects on different networks.\",\"terminalConfigurations\":\"The terminals to set up for the project.\"},\"returns\":{\"hook\":\"The 721 tiers hook that was deployed for the project.\",\"projectId\":\"The ID of the newly launched project.\",\"suckers\":\"The addresses of the deployed suckers.\"}},\"launchProjectFor(address,string,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,address,uint16),(uint256,(uint32,uint64,address,bool,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],(address,(address,uint8,uint32)[])[],string,((address,bytes32,(address,uint32,bytes32)[])[],bytes32))\":{\"details\":\"Uses `baseCurrency` from the first ruleset and `decimals = 18` for the default 721 config.\",\"params\":{\"memo\":\"A memo to pass along to the emitted event.\",\"owner\":\"The address to set as the owner of the project.\",\"projectUri\":\"The project's metadata URI.\",\"rulesetConfigurations\":\"The rulesets to queue.\",\"suckerDeploymentConfiguration\":\"The suckers to set up for the project.\",\"terminalConfigurations\":\"The terminals to set up for the project.\"},\"returns\":{\"hook\":\"The 721 tiers hook that was deployed for the project.\",\"projectId\":\"The ID of the newly launched project.\",\"suckers\":\"The addresses of the deployed suckers.\"}},\"launchRulesetsFor(uint256,string,((string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,(bool,bool,bool,bool,bool,bool,bool),uint32,(uint32,uint64,address,bool,uint48,address)[])[],uint32,uint8),(bool,bool,bool,bool,bool)),bool,bytes32),(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,address,uint16),(uint256,(uint32,uint64,address,bool,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],(address,(address,uint8,uint32)[])[],string)\":{\"params\":{\"deploy721Config\":\"The 721 hook deployment config (hook config + cash-out flag + salt).\",\"memo\":\"A memo to pass along to the emitted event.\",\"projectId\":\"The ID of the project to launch the rulesets for.\",\"projectUri\":\"The project's metadata URI. Pass an empty string to leave it unchanged.\",\"rulesetConfigurations\":\"The rulesets to launch. Custom data hooks are read from each ruleset's metadata.\",\"terminalConfigurations\":\"The terminals to set up for the project.\"},\"returns\":{\"hook\":\"The 721 tiers hook that was deployed for the project.\",\"rulesetId\":\"The ID of the newly launched rulesets.\"}},\"launchRulesetsFor(uint256,string,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,address,uint16),(uint256,(uint32,uint64,address,bool,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],(address,(address,uint8,uint32)[])[],string)\":{\"details\":\"Uses `baseCurrency` from the first ruleset and `decimals = 18` for the default 721 config.\",\"params\":{\"memo\":\"A memo to pass along to the emitted event.\",\"projectId\":\"The ID of the project to launch the rulesets for.\",\"projectUri\":\"The project's metadata URI. Pass an empty string to leave it unchanged.\",\"rulesetConfigurations\":\"The rulesets to launch.\",\"terminalConfigurations\":\"The terminals to set up for the project.\"},\"returns\":{\"hook\":\"The 721 tiers hook that was deployed for the project.\",\"rulesetId\":\"The ID of the newly launched rulesets.\"}},\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Make sure this contract can only receive project NFTs minted from `JBProjects` (not transferred).\"},\"peerChainAdjustedAccountsOf(uint256)\":{\"details\":\"Part of `IJBPeerChainAdjustedAccounts`. Uses staticcall to safely handle extra hooks that do not implement this interface.\",\"params\":{\"projectId\":\"The ID of the project to snapshot.\"},\"returns\":{\"contexts\":\"The extra per-context surplus and balance to include in the snapshot, un-valued.\",\"supply\":\"The extra supply to include in `sourceTotalSupply`.\"}},\"queueRulesetsOf(uint256,((string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,(bool,bool,bool,bool,bool,bool,bool),uint32,(uint32,uint64,address,bool,uint48,address)[])[],uint32,uint8),(bool,bool,bool,bool,bool)),bool,bytes32),(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,address,uint16),(uint256,(uint32,uint64,address,bool,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],string)\":{\"details\":\"If `deploy721Config.deployTiersHookConfig.tiersConfig.tiers.length > 0`, a new 721 hook is deployed. Otherwise, the 721 hook from the latest ruleset is carried forward.\",\"params\":{\"deploy721Config\":\"The 721 hook deployment config (hook config + cash-out flag + salt).\",\"memo\":\"A memo to pass along to the emitted event.\",\"projectId\":\"The ID of the project to queue the rulesets for.\",\"rulesetConfigurations\":\"The rulesets to queue. Custom data hooks are read from each ruleset's metadata.\"},\"returns\":{\"hook\":\"The 721 tiers hook (newly deployed or carried forward from the previous ruleset).\",\"rulesetId\":\"The ID of the newly queued rulesets.\"}},\"queueRulesetsOf(uint256,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,address,uint16),(uint256,(uint32,uint64,address,bool,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],string)\":{\"details\":\"Uses `baseCurrency` from the first ruleset and `decimals = 18` for the default 721 config. With 0 tiers in the default config, the existing hook is always carried forward.\",\"params\":{\"memo\":\"A memo to pass along to the emitted event.\",\"projectId\":\"The ID of the project to queue the rulesets for.\",\"rulesetConfigurations\":\"The rulesets to queue.\"},\"returns\":{\"hook\":\"The 721 tiers hook carried forward from the previous ruleset.\",\"rulesetId\":\"The ID of the newly queued rulesets.\"}},\"supportsInterface(bytes4)\":{\"details\":\"See `IERC165.supportsInterface`.\",\"params\":{\"interfaceId\":\"The interface ID to check.\"},\"returns\":{\"flag\":\"A flag indicating if the provided interface ID is supported.\"}},\"tiered721HookOf(uint256,uint256)\":{\"params\":{\"projectId\":\"The ID of the project to get the 721 hook for.\",\"rulesetId\":\"The ID of the ruleset to get the 721 hook for.\"},\"returns\":{\"hook\":\"The 721 tiers hook.\",\"useDataHookForCashOut\":\"Whether the 721 hook is used for cash outs.\"}},\"trustedForwarder()\":{\"details\":\"Returns the address of the trusted forwarder.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"CONTROLLER()\":{\"notice\":\"The canonical controller used for every project launch and ruleset queue.\"},\"DIRECTORY()\":{\"notice\":\"The directory used to confirm existing projects still use this deployer's canonical controller.\"},\"HOOK_DEPLOYER()\":{\"notice\":\"Deploys tiered ERC-721 hooks for projects.\"},\"PERMISSIONS()\":{\"notice\":\"A contract storing permissions.\"},\"PROJECTS()\":{\"notice\":\"Mints ERC-721s that represent Juicebox project ownership and transfers.\"},\"SUCKER_REGISTRY()\":{\"notice\":\"Deploys and tracks suckers for projects.\"},\"beforeCashOutRecordedWith((address,address,uint256,uint256,uint256,uint256,(address,uint8,uint32,uint256),bool,uint256,bool,bytes))\":{\"notice\":\"Called by the terminal before recording a cash out. Suckers get 0% tax so bridged tokens redeem at face value. For all other holders, this function aggregates total supply and surplus across all peer chains so the bonding curve reflects the project's global state, then delegates to the 721 hook and extra hook for further adjustments.\"},\"beforePayRecordedWith((address,address,(address,uint8,uint32,uint256),uint256,uint256,address,uint256,uint256,bytes))\":{\"notice\":\"Called by the terminal before recording a payment. Coordinates the 721 hook (which handles tier-based NFT minting and split deductions) with the extra hook (e.g. buyback, which may swap for a better token price). Merges their weight adjustments and hook specifications into a single response for the terminal.\"},\"deploySuckersFor(uint256,((address,bytes32,(address,uint32,bytes32)[])[],bytes32))\":{\"notice\":\"Deploy new cross-chain suckers for an existing project. Each sucker enables token bridging between this chain and a peer chain. The registry also maps configured tokens on each new sucker in the same call.\"},\"extraDataHookOf(uint256,uint256)\":{\"notice\":\"Get the extra data hook for a project and ruleset.\"},\"hasMintPermissionFor(uint256,(uint48,uint48,uint48,uint48,uint32,uint112,uint32,address,uint256),address)\":{\"notice\":\"Returns whether an address may mint a project's tokens on-demand. Suckers always get mint permission (so bridged tokens can be minted on the destination chain). Otherwise delegates to the extra data hook.\"},\"launchProjectFor(address,string,((string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,(bool,bool,bool,bool,bool,bool,bool),uint32,(uint32,uint64,address,bool,uint48,address)[])[],uint32,uint8),(bool,bool,bool,bool,bool)),bool,bytes32),(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,address,uint16),(uint256,(uint32,uint64,address,bool,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],(address,(address,uint8,uint32)[])[],string,((address,bytes32,(address,uint32,bytes32)[])[],bytes32))\":{\"notice\":\"Creates a project with a 721 tiers hook attached and with suckers.\"},\"launchProjectFor(address,string,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,address,uint16),(uint256,(uint32,uint64,address,bool,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],(address,(address,uint8,uint32)[])[],string,((address,bytes32,(address,uint32,bytes32)[])[],bytes32))\":{\"notice\":\"Creates a project with a default (empty-tier) 721 hook and with suckers.\"},\"launchRulesetsFor(uint256,string,((string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,(bool,bool,bool,bool,bool,bool,bool),uint32,(uint32,uint64,address,bool,uint48,address)[])[],uint32,uint8),(bool,bool,bool,bool,bool)),bool,bytes32),(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,address,uint16),(uint256,(uint32,uint64,address,bool,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],(address,(address,uint8,uint32)[])[],string)\":{\"notice\":\"Launches new rulesets for a project with a 721 tiers hook attached, using this contract as the data hook.\"},\"launchRulesetsFor(uint256,string,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,address,uint16),(uint256,(uint32,uint64,address,bool,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],(address,(address,uint8,uint32)[])[],string)\":{\"notice\":\"Launches new rulesets for a project with a default (empty-tier) 721 hook.\"},\"originalPayer()\":{\"notice\":\"The account that paid the creation fee for the project currently being launched.\"},\"peerChainAdjustedAccountsOf(uint256)\":{\"notice\":\"Forwards peer-chain adjusted accounts from the stored extra data hook. Suckers call this on the active data hook (which is this deployer after wrapping) to learn about additional supply and per-context surplus and balance that should be included in cross-chain snapshots. Without forwarding, the extra hook's peer-chain adjustments are silently masked, causing the bonding curve to use only local values and over-reclaiming on peer chains.\"},\"queueRulesetsOf(uint256,((string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,(bool,bool,bool,bool,bool,bool,bool),uint32,(uint32,uint64,address,bool,uint48,address)[])[],uint32,uint8),(bool,bool,bool,bool,bool)),bool,bytes32),(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,address,uint16),(uint256,(uint32,uint64,address,bool,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],string)\":{\"notice\":\"Queues new rulesets for a project with a 721 tiers hook attached, using this contract as the data hook.\"},\"queueRulesetsOf(uint256,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,address,uint16),(uint256,(uint32,uint64,address,bool,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],string)\":{\"notice\":\"Queues new rulesets for a project with a default (empty-tier) 721 hook, carrying forward the existing hook.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Indicates if this contract adheres to the specified interface.\"},\"tiered721HookOf(uint256,uint256)\":{\"notice\":\"Get the tiered 721 hook config for a project and ruleset.\"}},\"version\":1}},\"settings\":{\"remappings\":[\"@arbitrum/=node_modules/@arbitrum/\",\"@ballkidz/=node_modules/@ballkidz/\",\"@bananapus/=node_modules/@bananapus/\",\"@bannynet/=node_modules/@bannynet/\",\"@chainlink/=node_modules/@chainlink/\",\"@croptop/=node_modules/@croptop/\",\"@ensdomains/=node_modules/@ensdomains/\",\"@eth-optimism/=node_modules/@eth-optimism/\",\"@offchainlabs/=node_modules/@offchainlabs/\",\"@openzeppelin/=node_modules/@openzeppelin/\",\"@prb/=node_modules/@prb/\",\"@rev-net/=node_modules/@rev-net/\",\"@scroll-tech/=node_modules/@scroll-tech/\",\"@sphinx-labs/=node_modules/@sphinx-labs/\",\"@uniswap/=node_modules/@uniswap/\",\"@unruggable/=node_modules/@unruggable/\",\"@zksync/=node_modules/@zksync/\",\"base64-sol/=node_modules/base64-sol/\",\"ds-test/=node_modules/@uniswap/v4-core/lib/solmate/lib/ds-test/\",\"erc4626-tests/=node_modules/@uniswap/v4-core/lib/openzeppelin-contracts/lib/erc4626-tests/\",\"forge-gas-snapshot/=node_modules/@uniswap/v4-periphery/lib/permit2/lib/forge-gas-snapshot/\",\"forge-std/=lib/forge-std/src/\",\"hardhat/=node_modules/hardhat/\",\"lib/base64/=node_modules/base64-sol/\",\"openzeppelin-contracts/=node_modules/@uniswap/v4-core/lib/openzeppelin-contracts/\",\"permit2/=node_modules/@uniswap/v4-periphery/lib/permit2/\",\"solady/=node_modules/solady/\",\"solmate/=node_modules/@sphinx-labs/contracts/node_modules/solmate/\",\"typeface/=lib/typeface/contracts/\",\"v4-core/=node_modules/@uniswap/v4-periphery/lib/v4-core/\"],\"optimizer\":{\"enabled\":true,\"runs\":200},\"metadata\":{\"bytecodeHash\":\"none\"},\"compilationTarget\":{\"node_modules/@bananapus/omnichain-deployers-v6/src/JBOmnichainDeployer.sol\":\"JBOmnichainDeployer\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"viaIR\":true},\"sources\":{\"node_modules/@bananapus/721-hook-v6/src/enums/JB721TierOwnerMatch.sol\":{\"keccak256\":\"0x196b8bffd727045f2137c32c7765845bf9df116d16aff0292937622120b2f440\",\"urls\":[\"bzz-raw://bd0cc4b5b5e48ca3bc2c5db4ecfc21de5e26a5ec82c2345d68c2992a155e99b8\",\"dweb:/ipfs/QmaV7X2AMZ995bpDPyYRJFWD5xUrohsdb1osYkLrrGvupg\"],\"license\":\"MIT\"},\"node_modules/@bananapus/721-hook-v6/src/interfaces/IJB721Checkpoints.sol\":{\"keccak256\":\"0x5bf06a02c658969b414ec180e12ebd4a38e23bbc6e5f585890432f972e86da55\",\"urls\":[\"bzz-raw://e3beeb2f695cbe27b0900a7720ea0cf34cc54ae51d95ed6df1a1c51760f70806\",\"dweb:/ipfs/QmSSmVwpiFBRd3J6MBKjZ2Ea9vytEZVCPmKdhmzXJnhF1X\"],\"license\":\"MIT\"},\"node_modules/@bananapus/721-hook-v6/src/interfaces/IJB721Hook.sol\":{\"keccak256\":\"0x7bd4927dc430e63f4cb2f7592a4072798357216ab8b62e49e97a91eef842e88a\",\"urls\":[\"bzz-raw://1be3a8d952223912ca26e0038675ecfe58617ca8eb3f3542538532c3527b0cb7\",\"dweb:/ipfs/QmW8WF6gHxHTFCJU3kUMRCRdDvTJcpRomDS8nxeYmr8jPF\"],\"license\":\"MIT\"},\"node_modules/@bananapus/721-hook-v6/src/interfaces/IJB721TiersHook.sol\":{\"keccak256\":\"0xa247c65e6a17d311d976b0ceb4fc11d25a6e13b85e51a57e968b7b6f24ed1b9e\",\"urls\":[\"bzz-raw://940bee38a343493057d2021cc51690d085a0667980c32c57d971bb1c59cbdb22\",\"dweb:/ipfs/Qmc3fynSKGgkYcB4tMBKgGfjyjUd9ficoypHPyyMCcYEtq\"],\"license\":\"MIT\"},\"node_modules/@bananapus/721-hook-v6/src/interfaces/IJB721TiersHookDeployer.sol\":{\"keccak256\":\"0xdcc60f2dd90ed23856051df61651ee65d097ef32531c2ea40b9ddf817e556877\",\"urls\":[\"bzz-raw://3d5ffaf617c20b5c6346bad6654d9ca865678256fa97a3b8032deba13ccb614b\",\"dweb:/ipfs/QmTyhfKK2HVUe83pTV6Y88uWGFK659VHvB4emyHv4Lx7wp\"],\"license\":\"MIT\"},\"node_modules/@bananapus/721-hook-v6/src/interfaces/IJB721TiersHookProjectDeployer.sol\":{\"keccak256\":\"0xaadacbf692c25f26ad6c1c78be6013882854166cd1bc131062cf81e2a7dfb378\",\"urls\":[\"bzz-raw://c602ffc9e72e249e93bebc69a6f816f2fb2888b5a6649baef2e971542cc57f25\",\"dweb:/ipfs/QmWP286MM6X2dggsfu1e96CpCiSyAz65b2nncshEWXGZVr\"],\"license\":\"MIT\"},\"node_modules/@bananapus/721-hook-v6/src/interfaces/IJB721TiersHookStore.sol\":{\"keccak256\":\"0x0ec2d37e62f76d7536e5bd3091c56a0a3f96482ccbe5cbbbc0df89f85d6f0216\",\"urls\":[\"bzz-raw://41bd0e085fbf07d3b24aca0df7e6da01dd18ba91ecbb46cdd73707b315c924a4\",\"dweb:/ipfs/QmYGpECUfXdwsvnYEMRHuHH7UMvfgykh8mCU6KCFqGvWey\"],\"license\":\"MIT\"},\"node_modules/@bananapus/721-hook-v6/src/interfaces/IJB721TokenUriResolver.sol\":{\"keccak256\":\"0xef418fff2bb7811dc41c1807709741049889818bfb6096954b61b73edcf09f07\",\"urls\":[\"bzz-raw://5aea971649e1f5e17c258442e85d7cc4f8ca0faf9ad185f6b010784b7c6aa1dd\",\"dweb:/ipfs/QmQDZ3cfTdooCRLdRn8p4VKbSqPdZ8rSXL6vvYtNUJc5Vx\"],\"license\":\"MIT\"},\"node_modules/@bananapus/721-hook-v6/src/structs/JB721InitTiersConfig.sol\":{\"keccak256\":\"0x04a9e63f7f61e1c506d53ca70ae9c0e71b03b957f535d4e769b5d488ba425b7d\",\"urls\":[\"bzz-raw://b545fe59f580127a07a8ee7bc082c13c292337d30dc89b535cb5fbc255c29b96\",\"dweb:/ipfs/QmWTBb2LnXDvcJDDyD93ZJMhuybS5z6528TGQVjWQYaTTd\"],\"license\":\"MIT\"},\"node_modules/@bananapus/721-hook-v6/src/structs/JB721Tier.sol\":{\"keccak256\":\"0xf0e249848a1385d00956b9ba50d1a983515a6d40e932e0705c96b63b4d0f1ca7\",\"urls\":[\"bzz-raw://0fb9df1dfd7124dd3e7f37426d47944cace9ade5177064cd8c593e931103f907\",\"dweb:/ipfs/QmQDtwfqeDUGPJsipHPDoo4q3yNFtogQg5ZF1z8E6JbWvv\"],\"license\":\"MIT\"},\"node_modules/@bananapus/721-hook-v6/src/structs/JB721TierConfig.sol\":{\"keccak256\":\"0x0ad3eb9440c15f69e4d82a3d1a90fc6cf01703816f4c2534e9eab1a2d0e26d80\",\"urls\":[\"bzz-raw://e55fb400ffeddfad6eb94c259e5cc2406a93945414dd326f2e2733ddbd1c0513\",\"dweb:/ipfs/QmebwiqWs8XE5JRPbk1eJSaekTHdLUr3p3SRh4Ye3jkJJC\"],\"license\":\"MIT\"},\"node_modules/@bananapus/721-hook-v6/src/structs/JB721TierConfigFlags.sol\":{\"keccak256\":\"0xa96d61224a0c57d2cf1a15c8123925246b64c017a08f92a6d45dd5f5643960c1\",\"urls\":[\"bzz-raw://4689458074886b2569d1661a44d64129b7bae028b786d34578b8e34384ef9779\",\"dweb:/ipfs/QmTphmLU98MZb4DKWEMH4UFbAggchpshfHanH141LVDzta\"],\"license\":\"MIT\"},\"node_modules/@bananapus/721-hook-v6/src/structs/JB721TierFlags.sol\":{\"keccak256\":\"0x5f73fa3c927b1902b5d0927ad11a06960e29ad88a6e29b9405b9eaae8846c2c5\",\"urls\":[\"bzz-raw://13b0db30829eca17769c0e9fb011ccaebbda15e027c24175d8d6cc1163c0ca1c\",\"dweb:/ipfs/QmYmXASJGwsXRU2NYNyVzTyFbF78GjGTqo15Z5R64EX8AT\"],\"license\":\"MIT\"},\"node_modules/@bananapus/721-hook-v6/src/structs/JB721TiersHookFlags.sol\":{\"keccak256\":\"0xf59d1106597f60959606a8c7e55fae3fa7e8e95572ca8aca7c3b109679f456ee\",\"urls\":[\"bzz-raw://c883611c1fd3a046a81b7604711637624c11ee4f8a7413651d812a9f4d34671e\",\"dweb:/ipfs/Qmbsx8qoab3BQNm6q725hLb5XjSinKkZFZVQ1jDLiNH8wf\"],\"license\":\"MIT\"},\"node_modules/@bananapus/721-hook-v6/src/structs/JB721TiersMintReservesConfig.sol\":{\"keccak256\":\"0x86fe586a05e6d4bc6fab9b68996a7f4b74c5362ca6f24b9d8057ed7e4cd1c5ac\",\"urls\":[\"bzz-raw://0915f17d1f958ab1fe6b214d99ed62f1f858684898c803f1a8a6a557472dd140\",\"dweb:/ipfs/QmUhdnSV8UzkgvbtkYEKHrpyDEmc2aJxW5HQ1gucuxxu5A\"],\"license\":\"MIT\"},\"node_modules/@bananapus/721-hook-v6/src/structs/JB721TiersSetDiscountPercentConfig.sol\":{\"keccak256\":\"0x4672eacb6b0cda5e6f5f72ddb91463c52fb90b4df421053e3b40024f19a59954\",\"urls\":[\"bzz-raw://9d8e3a0b35d6b2a6ec66527594263400189b6c766bfd6943c83704380a989aec\",\"dweb:/ipfs/QmUE7NhFWsxjFRzTuRyHJ7oRx3JXD9CnG83t29PjGAhwPR\"],\"license\":\"MIT\"},\"node_modules/@bananapus/721-hook-v6/src/structs/JBDeploy721TiersHookConfig.sol\":{\"keccak256\":\"0x49cf6d840225467ff5e092419d28220afa51ff005730200bff454450225949a9\",\"urls\":[\"bzz-raw://002caf83fa409f5f94290d3fec875ee92ffd6d27237198e1c6d4d712c9db6966\",\"dweb:/ipfs/Qmc3nJxy4T7QRvEtXD5heH69942bcKepLR3qny58CoijBy\"],\"license\":\"MIT\"},\"node_modules/@bananapus/721-hook-v6/src/structs/JBLaunchProjectConfig.sol\":{\"keccak256\":\"0xcccee0f18ddbaacd8a319a6f816bf160393a8011706411bcb3754a8bc7556924\",\"urls\":[\"bzz-raw://3498e3c141a2acd66cc847ff12ab933b82dfbfe9ef3d694c82b8cf1c30fc29ae\",\"dweb:/ipfs/QmQkgV66WSQP9nPauA7UXiNjqF7KvxP7nhTQnAd7UqFPqQ\"],\"license\":\"MIT\"},\"node_modules/@bananapus/721-hook-v6/src/structs/JBLaunchRulesetsConfig.sol\":{\"keccak256\":\"0xa555f13101f23ca0496c82bb79d5b79524c9bf524a38da6593020f26a0c50404\",\"urls\":[\"bzz-raw://f0c6d1b582169d25db41a3fe3e65637ccd52e026755dcb9debe75806df05c05c\",\"dweb:/ipfs/QmZNWHPcijmx1asYnqXQoVQooPZyUsTgvX6zX7v3uLNe1c\"],\"license\":\"MIT\"},\"node_modules/@bananapus/721-hook-v6/src/structs/JBPayDataHookRulesetConfig.sol\":{\"keccak256\":\"0x052e19941b4216ae861e4d35fb9263c1cee943b55dd6811de7bca9863519a43f\",\"urls\":[\"bzz-raw://1f888993e89e20136847c0c096f76e4893d09bc1653b5f01aed93f4e8216d333\",\"dweb:/ipfs/QmNdVuP69J78Dcy4pqKjrmU9axURgEggdDjfCiLME9WUA3\"],\"license\":\"MIT\"},\"node_modules/@bananapus/721-hook-v6/src/structs/JBPayDataHookRulesetMetadata.sol\":{\"keccak256\":\"0xad4de190dcadb8049d92a9e24f95e20585bcf2cfe91a500557d5b27108dbe0ae\",\"urls\":[\"bzz-raw://c43d56cf27e2cff32e2379d45e57b3d6aaf7508571317b904cf0c4c3c35ae7b0\",\"dweb:/ipfs/QmWcmkb5xZtEd1JE8kLus3kLYNTYaiKNwpCmxegqZFiJ1E\"],\"license\":\"MIT\"},\"node_modules/@bananapus/721-hook-v6/src/structs/JBQueueRulesetsConfig.sol\":{\"keccak256\":\"0x2a5cd16da5b916fc0b0755264fd33f39b03077048266324991b682a3a526e911\",\"urls\":[\"bzz-raw://5d0604e409d7328ba2779220b7b677cc23099582b0044ba57a4e13bbc6771baa\",\"dweb:/ipfs/QmS5ckLxxr3vcDScSE71spwMjnwS3myogW3tVtt6DNUBBB\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/abstract/JBPermissioned.sol\":{\"keccak256\":\"0x16a1fa9f031564f9f3253d5e21327b228651269263bfbde10eb04862c65ed577\",\"urls\":[\"bzz-raw://4150d75d10f267953c0a42948ebd7bffe1568a5fb0dfe84befcda512ddf3a19c\",\"dweb:/ipfs/QmVMYXMRyiLySHCtoPke9AuVkhoVm9Gx1zoLMmSjXjFf2M\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/enums/JBApprovalStatus.sol\":{\"keccak256\":\"0x58f3eed8b6ecea6b640f4eb78a5a416ce8737f9155e350ef4077db422b3fca8f\",\"urls\":[\"bzz-raw://0b56bde97ef9d8ec2a3e464202c5d2fee9c39597485b3fb8baaeef971cc63bc8\",\"dweb:/ipfs/QmSdPaNfPm83yibuSvgLbaqgZw7LYkTLhacrxDagH3sprJ\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBActiveVotes.sol\":{\"keccak256\":\"0x2e5b40c3b1347e9763b8e77aeb989a5200f4011a30c6616a996b91b4ead1de40\",\"urls\":[\"bzz-raw://a679dda01d5cba08b202a0f71219734078f254705c21ec86326427d704fe6d8d\",\"dweb:/ipfs/QmQ9KsSiVLeVHSQPNGv4CV3J1BPrw2TFQMR2YoPvGa2Auk\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBCashOutHook.sol\":{\"keccak256\":\"0x2a6d327092775fdbeaf922b8364403102cae437f765f662fe142bf97e87c2ef1\",\"urls\":[\"bzz-raw://5f9a23971860b907569917fe14cbcc85993d83fb32e5342dd5338a1721e540f7\",\"dweb:/ipfs/Qmamt2n7HaWo2cUDn8K2FhrZPHBVxuaCWh9jf8V3WYPXMN\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBController.sol\":{\"keccak256\":\"0x7032c26dd11cec1ed279bd96a63c0b4f77126835e9fec744e259495827f9ad92\",\"urls\":[\"bzz-raw://a2129d48bed0763676d7f0854d6e784134642584f4c70fabdc7e9e5a9490bf13\",\"dweb:/ipfs/QmU1D5L4gxf2acwXz4QAp9fSZNVboDcj4qTE3xCz5bh2M4\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBDirectory.sol\":{\"keccak256\":\"0xb8f3ba0a544360b32c9f0a704168ee93c2960accfc010735c8cbea54941e63d5\",\"urls\":[\"bzz-raw://e9f14d5daa2357db4afe96313b40bf0c53c606315c9cb55109fffdc9c2fd85d0\",\"dweb:/ipfs/QmRPHFAiivM9CqdfocRyahdSjfWTbaSepPNCGGQU23ABcv\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBDirectoryAccessControl.sol\":{\"keccak256\":\"0x963e641f7b02187389fa813ab177b8d0f20a7a543f6ce2306e8d5f9db95d56e3\",\"urls\":[\"bzz-raw://b500161bcc70fac6830211b2f9855c2c1ab17a91226619cedde7daa166f9196c\",\"dweb:/ipfs/QmV92TK8CTZxVJoGBDEsBfUDidoLAobFmyL1NdQVJARpCD\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBFundAccessLimits.sol\":{\"keccak256\":\"0x0cb50a855cccbbe7c74a1ebc454112b7b63f502badd019895dd936365ac73340\",\"urls\":[\"bzz-raw://226be05349028b8f055e386fbc41f7db0feb6d027b6068c1c929b0924688e129\",\"dweb:/ipfs/QmXyotizn7pR8DQJtuj6Xkcr7LKorSkm9q8kQGaSDDikSw\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBPayHook.sol\":{\"keccak256\":\"0x08599d439d898566b311bc4bedf7f0050ce25c86e246c43f673f3ab4d2457f21\",\"urls\":[\"bzz-raw://db19e95707920262c79197be9296fe381782220bfaf00b71df3a4271da83832f\",\"dweb:/ipfs/QmYzdomQzXNSk46U5vkiEnDErJJdR17deL4S6hPundstZd\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBPayerTracker.sol\":{\"keccak256\":\"0x3001bd8830eb6a679ad8da45228285c01781fa1b5aa69d2ce7c83b754319ebb1\",\"urls\":[\"bzz-raw://5b639f43468a408ad929a919aeb8bc90cfa9d0bcea57192b087659114056352e\",\"dweb:/ipfs/QmXWvVTGLNnubb8vvSPcaU3vjawVSPaRHjifsjeUu2kDJ9\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBPermissioned.sol\":{\"keccak256\":\"0xa43d05c9cc31cd768072e60d4f097d60dfe199469bfc96aa8df29346a15ee4dc\",\"urls\":[\"bzz-raw://de7caab7841a56b681140993557374edb54763a08b28aaaba35f1bc1a01f7937\",\"dweb:/ipfs/QmQKG6QNm7PNebRtKeLSzzXgp71Yw5Ja37nGPCvVa62Rzu\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBPermissions.sol\":{\"keccak256\":\"0xb32e13d512a7deb9ba1e47bbc0992817a63caa9e1f2913d6c55b637a57084037\",\"urls\":[\"bzz-raw://0d291ccc6edc581febf386779423001b0ed4d3b5b021ec444f7bef01cb2f9d28\",\"dweb:/ipfs/QmSUFhJpcpWYLEUzt4KrzyC4am39TNost8tWAtn5GdAUg2\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBPriceFeed.sol\":{\"keccak256\":\"0x3a948500b5397c90e926f3bdef9423e7f095f906b23cd1503009802c80bedb41\",\"urls\":[\"bzz-raw://a0ea0b7e5d442257f6159799b7bf262615b0f04e5cd542b0980f131ae40a63bb\",\"dweb:/ipfs/QmX7uugLaXtT5XmYxqfrmDqU2YuknAeYjHMiLm9iHaRfHw\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBPrices.sol\":{\"keccak256\":\"0xed5e532f6ee86029a1a4a1ba8b593296f772909a5f9d95da6cc6c595a838446f\",\"urls\":[\"bzz-raw://4314cbfe4ebd96a48eaf1c14af860aa08b7cd6a73da10391746b4d3410d13d67\",\"dweb:/ipfs/QmfRkWFbxmJUMew6DsDGbK88PypDBUA6PDTJFvfBaMno5n\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBProjectUriRegistry.sol\":{\"keccak256\":\"0x4342aaa8b9566e17691f69fc71e050350dd89b63f5040f092f115610d7a6c0eb\",\"urls\":[\"bzz-raw://88ce07791403524a229b080ad05604962d5b54e57106a533f62bff8a32896b1d\",\"dweb:/ipfs/QmSYxFpoH714CF7mZVhgKvFdYHHgg8R4UGXVXhMS69C7H2\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBProjects.sol\":{\"keccak256\":\"0x72c6cbda5a93593e3cc49ef6c4e0848a4b6daa88c188c4192776af86c49911dc\",\"urls\":[\"bzz-raw://448ed5d7a704b5f4dd759514dbcb78160b82732ac6bd7bc368a9f8822045e6de\",\"dweb:/ipfs/QmbnpCPxQLDvQx5ymEy1Ty3aks7bjonydops1CsjCACJBN\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBRulesetApprovalHook.sol\":{\"keccak256\":\"0x11dd67effb025396bec1bb97d35a9ba162340e9a824c048e8286802a12acaa45\",\"urls\":[\"bzz-raw://bae11f483c66d98e7fad9bbf47249f6fa4434693e8bace78cbe6d4da9afee009\",\"dweb:/ipfs/QmWjrjPtr8dLGtXQBrz6idwcNqyx2yVSVVQtqo74yqUSZV\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBRulesetDataHook.sol\":{\"keccak256\":\"0xf9aad7d3c7de29e020af4fea893bbaa6a1c0e9a8ae5860331c9f4d68d1a5a99f\",\"urls\":[\"bzz-raw://e10b6ed0827ac155153544b8018d2fa812628016e8a168f7df771616f92fd6f4\",\"dweb:/ipfs/QmUB3zuj8B2MAdgSYEMPh7ovXuM1fBb7jN6gLVxstjcAE7\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBRulesets.sol\":{\"keccak256\":\"0x8fd69e04aa2b5962a917394c0a4baa6653f7cea93629a1915c1f9c2e870143e5\",\"urls\":[\"bzz-raw://6c7ce64037e6a11cc03e5c66607a219eb25c953ad76aa7b914d2a9e8f0cd5434\",\"dweb:/ipfs/QmYoTec9wfd89HAnNckC2XJWegtgUmfjmi1vJYT4LTXQ61\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBSplitHook.sol\":{\"keccak256\":\"0x8155763689f6f51b5c6712ac6f23728b248a8924e69e63f8aa14d01c78ea17f1\",\"urls\":[\"bzz-raw://7bab14bd7250cc3ba6665573f2a961308a3453015af7a0305488c0db1745f95b\",\"dweb:/ipfs/QmYpKwToPcSChWXyJ75SBEeWKugBygAnQ1WaZ8wWcu5rha\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBSplits.sol\":{\"keccak256\":\"0x9d27fe4d9aa6dcbb24a24ee1fc16e51b51fab1c4ab1eace93981e73f3c4ce636\",\"urls\":[\"bzz-raw://7a6a1243102ac23cb1643bcc670b6b16b70566877941233964159f9b37755113\",\"dweb:/ipfs/Qmewa2o3nyoRwZ4pdhWqUh1ShWXA3GHJffiVafcKYXg2Ao\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBTerminal.sol\":{\"keccak256\":\"0xa3621c12f7c2e33ee38b5de626a5939190d8a12b1e5318a7cd8d398595480cec\",\"urls\":[\"bzz-raw://1341254389038383117d9b23ed2f9d1812fc30ef1c11cfd6c8423918894d7ba3\",\"dweb:/ipfs/QmV2WJ5a3NW12RnZAM3ySbEfGHNN6GfqqpsMHXorfoxiQo\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBToken.sol\":{\"keccak256\":\"0xadb3a7c3c149b60b6b51fdfb2acc814956d8aa9bb94e745c0e907c171b0983f2\",\"urls\":[\"bzz-raw://dddd118b37582f19c7559bdf848f53a29fb16289311bd14957c95fdee9cd28e6\",\"dweb:/ipfs/QmbwWXXVR4SGH9tz6pMKKMZxZ8YF8iRQpMCP3DnXDadx3L\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBTokenUriResolver.sol\":{\"keccak256\":\"0xcbdb1448260ebea5937411516957ef199099e34ff997e7f2a617c2898f921994\",\"urls\":[\"bzz-raw://d1cbf97e5684c987be6703c096e8230d870fab25a23eec8d209cd082e3f2637b\",\"dweb:/ipfs/QmNmzeuQoFiaUTQAcV1tyJyjUYEJ3t7386zTw4ofT7HoZM\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBTokens.sol\":{\"keccak256\":\"0xf7b458ce7e75e1c4daf2052873846b7c99abb098c0d5fbb2ee5d18e132e4a76c\",\"urls\":[\"bzz-raw://ee20abdc20787df386809255eaee2ef27daca71d4769a0d146cc249502ab0604\",\"dweb:/ipfs/QmP3ZpnnnTQKKGNV9KyLxCYXkjBDuiAgqHX6NRGYuYzTaW\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/libraries/JBPayerTrackerLib.sol\":{\"keccak256\":\"0x5a13bae1bbbf4f7d538dfe203e653b870041e53e3fe45a3d14b7f46530fae118\",\"urls\":[\"bzz-raw://ffd02d89965935229f3dd649e91098ea49950bae24c5a08f013d043adde8b588\",\"dweb:/ipfs/QmZA1KeSDAjCgWV5diPB7GMetvzUoy5VikA1P98aqbPZMS\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/structs/JBAccountingContext.sol\":{\"keccak256\":\"0xf53e975ce2632558a95d0a57679dbb8afff984d06daaa530cd4c442e467c3403\",\"urls\":[\"bzz-raw://519f7c466c8d90227afe2bd9108e7477412600fea8b4134889795a58a51b156c\",\"dweb:/ipfs/QmaSHMrNLfP8D9RRUaYbMWURdZYweUmt5ysgtTGMZiwnai\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/structs/JBAfterCashOutRecordedContext.sol\":{\"keccak256\":\"0x8cd6d13c98bd825d7e61cb3b2f5cbf56e77f9a2f85eaa0e27d82f1fb8d5af4f7\",\"urls\":[\"bzz-raw://0e4ff9a254147cc6728b3bdc3862b77d15b518b49375e400b5f0b78552f14c62\",\"dweb:/ipfs/Qmd25R3LDrnRHiSdrNSdfqk8746A3J3VH44C5HDfHkFvU2\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/structs/JBAfterPayRecordedContext.sol\":{\"keccak256\":\"0xcf1761f48e4cbd6eeeb64bb19e434eff50a7f666b2116657f88f63d19620c6de\",\"urls\":[\"bzz-raw://842fe47a4ad56c830040864b458de398efd0cf82eb0add9349e792d0c8b0c275\",\"dweb:/ipfs/QmXBj6EVnzvVX8ZYa2ndyjoSZDGjpXxaoy7dBuoGMaAmRX\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/structs/JBBeforeCashOutRecordedContext.sol\":{\"keccak256\":\"0xd3af6ce6d8ef731aa746e08de846f0422b34a568a3d1000fb8f85a32ba5701b0\",\"urls\":[\"bzz-raw://237e31d3ee24305c1ff4ffb9f829a4159fbd6bb8b4ecb5b557aa16e7eb924bcd\",\"dweb:/ipfs/QmeW4zTaM2J8DDxdC7zLwaHryBLcC3ydbHNSTHcmyETGvG\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/structs/JBBeforePayRecordedContext.sol\":{\"keccak256\":\"0xa5e4dd0ffa54c8e56f3bb6a437b2e13ef8728ee15aee3d7cb1d0dc96317e75dd\",\"urls\":[\"bzz-raw://fcd2113962a3f34e782090a553f1ba5ace6653bd5d5f932e8bb5279f42bbcb5b\",\"dweb:/ipfs/QmWLhDEprdQsNFmPhmNojRHDhqwG2QMx58AV5j4o56P4mx\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/structs/JBCashOutHookSpecification.sol\":{\"keccak256\":\"0x1579c160a19e68eb06158f56120acf06b8aa4bbbc9836c80fabbb3d2e57ccf3d\",\"urls\":[\"bzz-raw://a81f5e0c384caf0ac11814825ce07e6c6cee97d28f60dcd65dfe8d529b6135fe\",\"dweb:/ipfs/QmY2q7oMFDMN1PoQ8zp7PUQu4K5dYKhYLKBKqrTy42YU6N\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/structs/JBCurrencyAmount.sol\":{\"keccak256\":\"0x7f321bbcbd13abfbc8f0d08a5adaaf8ef312db5bb899012fcffb6170fbb962a9\",\"urls\":[\"bzz-raw://bf9301ef1dbb3abda7b492585377617508ba048c6170f21a5e7d2b3c034eb384\",\"dweb:/ipfs/QmcetEFxSYLLNSZzPBpNn3Fc8sFcrFE8A8h12ZSj2tLgxD\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/structs/JBFundAccessLimitGroup.sol\":{\"keccak256\":\"0x7e62015441edc056c3959fb0e5d0b59a1b209a91ce4beab9d3f6c25e02daf0c0\",\"urls\":[\"bzz-raw://5c77a27155794a7c05ea17ed4bdb382039187b9effecc300563d7fb144029983\",\"dweb:/ipfs/QmXE4FptihU4wSqFLeGWsaNDpZmmNYFLEXMnWGhEC5pf3X\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/structs/JBPayHookSpecification.sol\":{\"keccak256\":\"0x28f565b626774c36a990ac999f268fbaf9d7f7861e862fab1fb8301f2534e8d1\",\"urls\":[\"bzz-raw://a5d7375934179178febd3b412099b1a5ff42a154ce8b949df2c11b5f3cb3b80e\",\"dweb:/ipfs/QmXP5vVq8Z6HntiuMcPWfQURCKejyiyHLKYuMmzCuUJJtV\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/structs/JBPermissionsData.sol\":{\"keccak256\":\"0x9cb75b1171657be08950f9fc9f6c2bcb2496f618de4ab932141d424dec29d9df\",\"urls\":[\"bzz-raw://a8f578d6132c92048ae553a3c13260ecfa657f4a1bbe18f6c550d96988167590\",\"dweb:/ipfs/QmSYfGm2mcYfMm4wfnZMTjuUr1kBJoq4vZSCkwdgi9BRFk\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/structs/JBRuleset.sol\":{\"keccak256\":\"0xd03f45345597fca43effe3bc593572c989f4294d909505e331cbd2640a801d23\",\"urls\":[\"bzz-raw://2cc09b335549f4982c16c1109f3078f09fb81c32370baff007633a38badb7a83\",\"dweb:/ipfs/QmYJHBvXscvokRqzdGdTCRQtHUpnePS2uaCDfgHLuuMo56\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/structs/JBRulesetConfig.sol\":{\"keccak256\":\"0x812ca14f18e228fde272c0caf56a59b71302bfb4f9c514ac6fb0989ab8e1c48e\",\"urls\":[\"bzz-raw://9b234704315ac567db402c89dd5be46ca029094872f6dd52698324dd6ddf6a2d\",\"dweb:/ipfs/QmYPUJHLkyUwbYfJ7UdcpgvyzPtibUmhrKtzXQcRtA8Kvz\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/structs/JBRulesetMetadata.sol\":{\"keccak256\":\"0xbb9bda3b7ebb6796fa091ee6ce3182ad2a03dc35b89df0fb1107fae7c26ae0b4\",\"urls\":[\"bzz-raw://1b400674d8ec4e3495041c03d5601c07a68eb5d18a0cff83a5823007d6bad36e\",\"dweb:/ipfs/Qma76CRFPwV9WZq2ttZ2FFvui5BvzRHnftrL3Tz1m9uGKv\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/structs/JBRulesetWithMetadata.sol\":{\"keccak256\":\"0x1bcfadf20488f6df65227f8d4d0fbf9b7539456a2389567f7fe3900d23289bc3\",\"urls\":[\"bzz-raw://0a15c399a71e5373f8c0484c6d6b83521eda31e063a2c53e4c5cec4e74550343\",\"dweb:/ipfs/QmQwi8zkjoTVXbK89NeETYimWCacTrNsesJdpLSvGdqMPX\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/structs/JBSplit.sol\":{\"keccak256\":\"0xf50ba85591d86076ff127e97af2c4b7d1a1be3e20e25d784b64591697d71ab52\",\"urls\":[\"bzz-raw://04276773313a01c2b816c95addea68843c21db3888f4c547eb6e6c486ac55547\",\"dweb:/ipfs/QmZGpxzryNkheek5V9dJWfcJyTP7T52PsPXgRBuweK2rsN\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/structs/JBSplitGroup.sol\":{\"keccak256\":\"0x8dc98fa9e730bee8bcc0a8acf1bc4db1c9b0edf307d969c9c9caa4d6b8d856d9\",\"urls\":[\"bzz-raw://66f4306e0e69c82033927952564fd617e7c4b29aa8b165d5b53a0ebe3109ea12\",\"dweb:/ipfs/QmQqN1u7FHAdEtEZNRcKvZwYtXEQVQnLd6FMzHESP7wDtx\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/structs/JBSplitHookContext.sol\":{\"keccak256\":\"0xa2246f4960ec2b24db3fbfce5d59782cdb9a8fb3c3f832a2c39ddc92859ff170\",\"urls\":[\"bzz-raw://3e3a0ae100c15bb15f0484cb68e3052c3d3d764f84e37020e8dd6b658ff98076\",\"dweb:/ipfs/QmPAv99zN7senrfCMMkeT4RMWpwTdqLgMURQR73BLRe4ZG\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/structs/JBTerminalConfig.sol\":{\"keccak256\":\"0x9e31505080d3754b6d7db96095b0545930ef6dbc035b91fcc32fdc76a0e7c2a5\",\"urls\":[\"bzz-raw://f7702ab33a1b713c37e5397a55d8ef089289f4da8034cfe9622cbc69a98c47de\",\"dweb:/ipfs/QmXyiXps4aJyiM7vtDC373QUoqwB4DMETaZzC5cZPJKaAK\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/structs/JBTokenAmount.sol\":{\"keccak256\":\"0xc61593d33d5ec30e695d382948a1b944d01e29a8f2bfd29f75ecebcdbc7816de\",\"urls\":[\"bzz-raw://8992c1e5fca0c2342ecc0e734dfba6a2a752e4c29184784931d0971e44305051\",\"dweb:/ipfs/QmYNcaW3qeCkgAExUaFTq238fgfJuoYCTwjCn7jm94U4dJ\"],\"license\":\"MIT\"},\"node_modules/@bananapus/omnichain-deployers-v6/src/JBOmnichainDeployer.sol\":{\"keccak256\":\"0x2c25864383d14aae195485f1e0dc0329b47951a2dd035bc4ca31837ab33dc946\",\"urls\":[\"bzz-raw://e052440d838518a5bdca767a4d56b635585cd2880f6a0f1cfd6373b5be724673\",\"dweb:/ipfs/QmYK5swETtK7GAYPdqQNcxWJDtFMkbJfGDNBbYjQUEkZVT\"],\"license\":\"MIT\"},\"node_modules/@bananapus/omnichain-deployers-v6/src/interfaces/IJBOmnichainDeployer.sol\":{\"keccak256\":\"0xb97035f44bd446a4128efbeb8fdfcc5505d83fbc2c2d20478c0ddfcc0c193f8a\",\"urls\":[\"bzz-raw://89015681ad528498cf8b3b7865410edf799e7451c6b209a8c29e190b3e95a79a\",\"dweb:/ipfs/QmTVU8tHL5DtDNuMVkNJBEx8PNJKstmd256mqitSdfKzC8\"],\"license\":\"MIT\"},\"node_modules/@bananapus/omnichain-deployers-v6/src/structs/JBDeployerHookConfig.sol\":{\"keccak256\":\"0xf515521f72200f56f09e171fe50a2da58c01d9fdf56d4db39fa94831f9588823\",\"urls\":[\"bzz-raw://c77084c0e27e0436bbbadbe6c28b5f175186598c74a3713418176d872c02ee65\",\"dweb:/ipfs/QmXpq4vDrvNZLbZdc879Nju5AGTxpgXR3oDFNcNyxy7jQR\"],\"license\":\"MIT\"},\"node_modules/@bananapus/omnichain-deployers-v6/src/structs/JBOmnichain721Config.sol\":{\"keccak256\":\"0x1ccad826888d3ef99393297356df205075208bf0dfb1424e07058fd6aacf7d3f\",\"urls\":[\"bzz-raw://b225ff8c00e99abd56805ec875acda8f0a0e4eed25ec95b7b247ebfa7b068390\",\"dweb:/ipfs/QmbhfukagNqZf8gqx4iAvzt7dS4Qkc64ydV85wufD3JYaD\"],\"license\":\"MIT\"},\"node_modules/@bananapus/omnichain-deployers-v6/src/structs/JBSuckerDeploymentConfig.sol\":{\"keccak256\":\"0x4014b00990dab5b4754d46e95a701a1044f4ceb56cf4c4db53552ae796ff4b2c\",\"urls\":[\"bzz-raw://4e4b955d61b1923ea45f0f9923c7fd0c68ec561a0817ac7af08a67352b4156bd\",\"dweb:/ipfs/QmNQfSYAvQYo5GMsYTpncL9XzYMwnSVRmcr5KkU765G4S1\"],\"license\":\"MIT\"},\"node_modules/@bananapus/omnichain-deployers-v6/src/structs/JBTiered721HookConfig.sol\":{\"keccak256\":\"0x3e16948659fd45644f394608163169849e41de67e500720ffd564ac41003f12e\",\"urls\":[\"bzz-raw://879f292d76d8bfd8007467e98a7c05296312e8ce6cecc8370e49865647935b8d\",\"dweb:/ipfs/QmWk71Fn7hQaqjA8v9dFmWAuTYYqWyCJwkvHSzNPuDYpKU\"],\"license\":\"MIT\"},\"node_modules/@bananapus/ownable-v6/src/JBOwnable.sol\":{\"keccak256\":\"0xd11a69067191189a41e75692a3b81366b6d2176b364032d83e167631892c04b8\",\"urls\":[\"bzz-raw://6c2c7d32775cd64383cd3a28ec17e54a3a55f9ea55edaf571af6b53bc50f066d\",\"dweb:/ipfs/QmcvHyEUMBvEK1QayXtgBGtTJth5C7bL24U9mKP4fsW6Yh\"],\"license\":\"MIT\"},\"node_modules/@bananapus/ownable-v6/src/JBOwnableOverrides.sol\":{\"keccak256\":\"0x1b85df8e56003cecfad1cb1aee04e0ada8b37f22b0be20df03f6685a7a772a70\",\"urls\":[\"bzz-raw://98a245649f9054c2fd29e3508c787fbc53db00b43ccb7e2998690d64c6ef15a9\",\"dweb:/ipfs/QmUL9Nikj4QnjkaddEMPX59ccziE1SAE28xneLaZ1X1AqX\"],\"license\":\"MIT\"},\"node_modules/@bananapus/ownable-v6/src/interfaces/IJBOwnable.sol\":{\"keccak256\":\"0x412aa3a3b9095fe3c7c81e08b8e0ab7775e0d57709648756cf565d78f991db5e\",\"urls\":[\"bzz-raw://0cdf10b412dfce9f6372192c6e5ee4262f994ec793455f8ff8f0c9f6ace6d4fd\",\"dweb:/ipfs/QmRGzsFo7Xb4JvKPQ7uwCLG7FiyEEMz6h1EGTiJCSuqwbB\"],\"license\":\"MIT\"},\"node_modules/@bananapus/ownable-v6/src/structs/JBOwner.sol\":{\"keccak256\":\"0xabdb1d1ac3542bc428519e0684e191222a67c8370296da1abce87b2865764c36\",\"urls\":[\"bzz-raw://8adfe62cee8df91cec9d99282af4971a600473e9c7cafb034c4bf09a27d56de1\",\"dweb:/ipfs/QmX4qn3ohYxTsUYyXicqMRC3BuEYL2zE1czVL9KdEvK8Fg\"],\"license\":\"MIT\"},\"node_modules/@bananapus/permission-ids-v6/src/JBPermissionIds.sol\":{\"keccak256\":\"0x5105c29834e0dce4e395e262f23089a1077404f5317c591c89f3621cdfda9628\",\"urls\":[\"bzz-raw://54deca2c06d77f5d1087911e8035d244dde2b08a5dc0dff146b86e6a314419e8\",\"dweb:/ipfs/QmNdpTioAbk6bahJx4aT1WFUY9aV182JH1Dn4FqfuqC8QC\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/enums/JBSuckerState.sol\":{\"keccak256\":\"0x0ee6d0d08cd4f538b8c9ff59d480c7c3371c4cb1971e5a67a89088b4b040a608\",\"urls\":[\"bzz-raw://b8cce8e51b084cc9a844dc1040aba00b63b01f97868d52cc9f38b9d354fd741f\",\"dweb:/ipfs/QmTveKLmdZAGbwEwaCTBwofSBtckZsDcew3E7iNTnpeskY\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/interfaces/IJBPeerChainAdjustedAccounts.sol\":{\"keccak256\":\"0x9edb4e2d8aa9becff5b761f84d16048fcc5c2136686ca05dd974f9d2b6568895\",\"urls\":[\"bzz-raw://bd9d6254c7e5c6f315d8e835b2414b943c629bf7ea8e7f23720cef433af6cc9a\",\"dweb:/ipfs/QmVDjtn5BgGhYCpFQ28b2e4rHMit9zLqZKmPCBSENFjBsT\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/interfaces/IJBSucker.sol\":{\"keccak256\":\"0x570edfbf153b28f44f5dcf4b8e9ee146be16ba08aee58178d288e121edd023d4\",\"urls\":[\"bzz-raw://f67f5797159640a3d39835b7dbac501ca3f4e95fbebdf4673dc884af6c8b4de3\",\"dweb:/ipfs/QmW49DYyf2vrwMz2Jt3x2NuA6Dy4phnyGpifMpGPacQ4qz\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/interfaces/IJBSuckerDeployer.sol\":{\"keccak256\":\"0x385534f1171e96f75da0fb34c31976a8bff68e3719a87fe526a1bd2c80044826\",\"urls\":[\"bzz-raw://af89283ddccdad821f8d975175082e8a3ecdccba35ad1ec626b2cebbfe5696ec\",\"dweb:/ipfs/QmXAzpwVBH1PwpCZoXFbTXk8v4wUhiKAzXF6chpe5cgoYJ\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/interfaces/IJBSuckerRegistry.sol\":{\"keccak256\":\"0xa80cf6e229335f88468be1625cb02d65bd84f585e047a720e53661dd5c9caab2\",\"urls\":[\"bzz-raw://01b17afe90ae5f10adfac0d32d54615128ac66fae4357d85f4e12a0cd7259b8d\",\"dweb:/ipfs/QmW3reADRJmkA2ay4AqM5TcseW3ybKvdbexZBG9FuLCUAi\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/libraries/JBPeerChainAdjustedAccountsLib.sol\":{\"keccak256\":\"0x838291ed97d7089a916f02cd87487cc6fe661af548b969d8ec1fa6d5aa3a918c\",\"urls\":[\"bzz-raw://9511a6fae687968dc8813374eabb4e16322dc4acc680f9f395c7365e3cade8cc\",\"dweb:/ipfs/QmYFq7weEEu9JUCKetn5FPNjg9YGfdMArU6pFhRdkfx1kb\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/structs/JBAccountingSnapshot.sol\":{\"keccak256\":\"0x3a3b48c50fe27dd4b2907dd26d9e48de0f8bf7e48e4ac42b65e4c8550b5037cf\",\"urls\":[\"bzz-raw://b61c627efb41e8bf1f77fec9e79a1d43846dfa14ec6d6dfe8b6fc93ab09c3bf8\",\"dweb:/ipfs/QmVx19cqSfeHHzr94n9iJAp45WC6sETtC6fp9SuHX8gNfF\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/structs/JBChainAccounting.sol\":{\"keccak256\":\"0x40ee90d31b301b8ad7c3879afa605cf65e9f41c763b3c84f9a73f15ef67b8dc3\",\"urls\":[\"bzz-raw://0ef0660386fefb8c4761f7a96484ae88027ae7432939fb43170b209cd54a01b7\",\"dweb:/ipfs/QmSyhhHEyHswUoTT99SekwfoVnCbL9cBjEDHsXcqpWxMKM\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/structs/JBClaim.sol\":{\"keccak256\":\"0xd616fb935e61727ce04832808667bd40dc121d66f5cc2f347018dfd971635dab\",\"urls\":[\"bzz-raw://dfdcfb12878dc03b4623ddfaa42afa7e8270e8a259a8c453ef4f7e916ca52876\",\"dweb:/ipfs/QmZyAUzatUq2HfGBpoKbeqkC7mpetQC27M3797wgNgkE6H\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/structs/JBInboxTreeRoot.sol\":{\"keccak256\":\"0x9553483a63fbad26d7f3fc50d47bbf309f6b2b316785bc179fa83f97f6ba88f1\",\"urls\":[\"bzz-raw://fddbe03a2a31812774aba9ffe44b0d0209da182f03ddd7fb8f8f2cb5858a3923\",\"dweb:/ipfs/QmeQJHXw5Bc8s3CXr9kE7Tw35m3Tcmq7DjrEidcB2CK5D5\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/structs/JBLeaf.sol\":{\"keccak256\":\"0x48da8acc3873c390430f57de4871bce06b0d9a1be75935a4367b694acab447e2\",\"urls\":[\"bzz-raw://0ecb27f67901ef293993dc257efa592191bd2464cf9c2afcf5b53a4ddaff905c\",\"dweb:/ipfs/QmdoA5SkomSqJvx7v3qn9Z1cTzzH43WDCozqoi7GBYKjaA\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/structs/JBOutboxTree.sol\":{\"keccak256\":\"0x52552d8927b83d06955f7d40552b19779bc05e3d4ee58a7e026d160fb1958a92\",\"urls\":[\"bzz-raw://d1f21d7415fa29bf088f1dfc3ba2e7251f1132424194703b7dc2493839495bbe\",\"dweb:/ipfs/QmTUL5mALZi8A6QyrWrp1Qdt2e5S72nyEDPuZPwgW54dc7\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/structs/JBPeerChainContext.sol\":{\"keccak256\":\"0x1da3d201771c88f2469069d3f2295fd26e2f494e0ec0c4d06d0ccb068f2b26bc\",\"urls\":[\"bzz-raw://2898b578f708e6988392fec3b1eca0eb07cb267c139ed7c1cf1b62f27a153e91\",\"dweb:/ipfs/QmVQJxAdkLZVyVGaeYywrwoA8GkTbBwLykWeroLJvS8A7w\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/structs/JBPeerChainValue.sol\":{\"keccak256\":\"0x784d12e2ee229cb8242366a27636228d2df62915f8bcc64cb6d72ddcf111f655\",\"urls\":[\"bzz-raw://b7d3885e5f02a52af36487ce6fa15f11ee41674c2821c8959ad6ccaac10941fb\",\"dweb:/ipfs/QmYVdYM55ajAKE78sEkf5GZo45k4iP8t6JceDnce4bpjrW\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/structs/JBRemoteToken.sol\":{\"keccak256\":\"0x972657457699a63ded3cba38b3796cf619fe1929b7e857d4861e52a06ad9b378\",\"urls\":[\"bzz-raw://b35379dc126296a4f8a47ebd2bc09101ec782677711373245b33017670deb051\",\"dweb:/ipfs/QmQs397EjjPgbZdzQR8yUC6vxMYj3nvJZ26RZ6qy9Thg9N\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/structs/JBSourceContext.sol\":{\"keccak256\":\"0x1fc57c102ae28eb62103063a13289ed484c5520ce220ee59f4412e9b78f431c2\",\"urls\":[\"bzz-raw://af3a7ba1d82c982f6396cc9444fb69afe2a90279eb6b8b147ce1626bab3836f7\",\"dweb:/ipfs/QmUZybGqw84SgTbqvDk27eXQhpPYLDz7FV6o4M4oJC4chK\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/structs/JBSuckerDeployerConfig.sol\":{\"keccak256\":\"0xee7d3235a13ea2a66a885f90a2623740029f58fad4121e59b46666abb598fcdd\",\"urls\":[\"bzz-raw://3702c6c3f19d11fa0d0cf8b918cdb122c27e2aec09a67386483834e98f533706\",\"dweb:/ipfs/QmZMwk65iWi5HCwLwHiqwrXSEJMnaZMEM9cW359matZ8AT\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/structs/JBSuckersPair.sol\":{\"keccak256\":\"0x535f28ba838f066ea773b575f83230663761996cc358f6f9b684340403faab18\",\"urls\":[\"bzz-raw://c94e5c03989b03d66ee9cc08c3299957a25b7c3492416792d1d8fa50d11f34e3\",\"dweb:/ipfs/QmTrsUX4KySQsVZYEY6hjwtL6g5cFqFkwopMMAU47Atyqf\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/structs/JBTokenMapping.sol\":{\"keccak256\":\"0x45ab5eb3775475cbf5b2c011ed8ea78fbc719f5dc13019409f09d53e9719f97b\",\"urls\":[\"bzz-raw://7010e7fe473cc892ee5fbb8310ebf7c739bc64e4c9311b6fd63a358dc16bb634\",\"dweb:/ipfs/Qmcj73PiufP2dRdPVGV3gSfdbneYH13Kx4NP1cYbV5aVX8\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/utils/MerkleLib.sol\":{\"keccak256\":\"0xb08ffa1c6d9394eed1396ecf6bf59333ec925c9cb80623248448a6f1f2a7b366\",\"urls\":[\"bzz-raw://da8df7bd8918eba5116f3ff527352f804f73dc430f03cf529b34b4bb225479d2\",\"dweb:/ipfs/QmarAXVxZAAxePcMgpzsE84E1LNnCEFZKRXjhaBUy46L74\"],\"license\":\"MIT OR Apache-2.0\"},\"node_modules/@openzeppelin/contracts/governance/utils/IVotes.sol\":{\"keccak256\":\"0xdf466d4c6aa9da903595262100def9c6d960045b2ada0357edc47953bc5e18d6\",\"urls\":[\"bzz-raw://889512f1c9468f4d5e0f90f46b849709fd6fedab29b8377f64f6c3ee8373beee\",\"dweb:/ipfs/QmefA385JqnvagxdFDpM3kxnxUtpJvkxkbTr66naQbAko9\"],\"license\":\"MIT\"},\"node_modules/@openzeppelin/contracts/interfaces/IERC5805.sol\":{\"keccak256\":\"0x8fbf3dddff71246ff9ffe21f9f0195a40583c4101c94c747691291f8b9e14ebd\",\"urls\":[\"bzz-raw://8d69db7468e95a56999df81f1c555215b3359483d610dbef17d898ef48801578\",\"dweb:/ipfs/QmSPaSUsHDGqffinNgwajKp8RUdwj3GyW3VqWWNPfwH4b4\"],\"license\":\"MIT\"},\"node_modules/@openzeppelin/contracts/interfaces/IERC6372.sol\":{\"keccak256\":\"0xed0f7f14eb30c80a82855ddc3f7267bb6290546e5847a8ffc33f599ce4bc5eb6\",\"urls\":[\"bzz-raw://63fab00bbb42ce6f132a93d1c1e1cfed5175821521fb8746caa48129787d2435\",\"dweb:/ipfs/QmVMBNhmVW1h35LsaYNyDChfyTwF8M3EW9T1JDFpsXiaQF\"],\"license\":\"MIT\"},\"node_modules/@openzeppelin/contracts/metatx/ERC2771Context.sol\":{\"keccak256\":\"0x9695d220b99dcf62910533bdf5d40d4cf6a4e04d5b106b6803a80586486dc7f7\",\"urls\":[\"bzz-raw://83b7aecd65882d8953643dce144efe91367082cc01830c9c4ed3c8a4837fb558\",\"dweb:/ipfs/QmQ5HxGavcCKjuhd8buv177qjG6A4kvxx4pZviceKdspdM\"],\"license\":\"MIT\"},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xf78f05f3b8c9f75570e85300d7b4600d7f6f6a198449273f31d44c1641adb46f\",\"urls\":[\"bzz-raw://e28b872613b45e0e801d4995aa4380be2531147bfe2d85c1d6275f1de514fba3\",\"dweb:/ipfs/QmeeFcfShHYaS3BdgVj78nxR28ZaVUwbvr66ud8bT6kzw9\"],\"license\":\"MIT\"},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x88cd5e3bee2e8c36b8d9058fbcaa81ad5704281b25634122234b55ea853d8055\",\"urls\":[\"bzz-raw://8dc7e7ab5b8ea36c15027ab04221b05d1c970f47a53e9fd47ead8ca665d49c7e\",\"dweb:/ipfs/Qmeeph7fsDyfRr8vb2L8KcDEmKPb224TAayMvgqgGAnqpL\"],\"license\":\"MIT\"},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"],\"license\":\"MIT\"},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"],\"license\":\"MIT\"},\"node_modules/@prb/math/src/Common.sol\":{\"keccak256\":\"0x1949276271967e9954a65f27c1c32e1dd73cbd1f3d2af88f2fdd694ba4b7da60\",\"urls\":[\"bzz-raw://ca414ac0a29a3d0d9e194afa73029a7d94168029df6aeb5f6a4b540d0072eb14\",\"dweb:/ipfs/QmYVipmQDvcvurNZZSFGjxabWXwEpdfijYYx2b3d7ico8U\"],\"license\":\"MIT\"}},\"version\":1}",
3503
+ "gitCommit": "npm:@bananapus/omnichain-deployers-v6@1.0.1",
3504
+ "gitDirty": false,
3505
+ "history": []
3506
+ }