@bananapus/721-hook-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.
Files changed (75) hide show
  1. package/README.md +4 -0
  2. package/deployments/arbitrum/JB721Checkpoints.json +794 -0
  3. package/deployments/arbitrum/JB721CheckpointsDeployer.json +158 -0
  4. package/deployments/arbitrum/JB721TiersHook.json +2817 -0
  5. package/deployments/arbitrum/JB721TiersHookDeployer.json +447 -0
  6. package/deployments/arbitrum/JB721TiersHookLib.json +713 -0
  7. package/deployments/arbitrum/JB721TiersHookProjectDeployer.json +1793 -0
  8. package/deployments/arbitrum/JB721TiersHookStore.json +1744 -0
  9. package/deployments/arbitrum/JB721TiersHook__ProjectBAN.json +3497 -0
  10. package/deployments/arbitrum/JB721TiersHook__ProjectCPN.json +3450 -0
  11. package/deployments/arbitrum_sepolia/JB721Checkpoints.json +794 -0
  12. package/deployments/arbitrum_sepolia/JB721CheckpointsDeployer.json +158 -0
  13. package/deployments/arbitrum_sepolia/JB721TiersHook.json +2817 -0
  14. package/deployments/arbitrum_sepolia/JB721TiersHookDeployer.json +447 -0
  15. package/deployments/arbitrum_sepolia/JB721TiersHookLib.json +713 -0
  16. package/deployments/arbitrum_sepolia/JB721TiersHookProjectDeployer.json +1793 -0
  17. package/deployments/arbitrum_sepolia/JB721TiersHookStore.json +1744 -0
  18. package/deployments/arbitrum_sepolia/JB721TiersHook__ProjectBAN.json +3497 -0
  19. package/deployments/arbitrum_sepolia/JB721TiersHook__ProjectCPN.json +3450 -0
  20. package/deployments/base/JB721Checkpoints.json +799 -0
  21. package/deployments/base/JB721CheckpointsDeployer.json +163 -0
  22. package/deployments/base/JB721TiersHook.json +2822 -0
  23. package/deployments/base/JB721TiersHookDeployer.json +452 -0
  24. package/deployments/base/JB721TiersHookLib.json +718 -0
  25. package/deployments/base/JB721TiersHookProjectDeployer.json +1798 -0
  26. package/deployments/base/JB721TiersHookStore.json +1749 -0
  27. package/deployments/base/JB721TiersHook__ProjectBAN.json +3502 -0
  28. package/deployments/base/JB721TiersHook__ProjectCPN.json +3455 -0
  29. package/deployments/base_sepolia/JB721Checkpoints.json +799 -0
  30. package/deployments/base_sepolia/JB721CheckpointsDeployer.json +163 -0
  31. package/deployments/base_sepolia/JB721TiersHook.json +2822 -0
  32. package/deployments/base_sepolia/JB721TiersHookDeployer.json +452 -0
  33. package/deployments/base_sepolia/JB721TiersHookLib.json +718 -0
  34. package/deployments/base_sepolia/JB721TiersHookProjectDeployer.json +1798 -0
  35. package/deployments/base_sepolia/JB721TiersHookStore.json +1749 -0
  36. package/deployments/base_sepolia/JB721TiersHook__ProjectBAN.json +3502 -0
  37. package/deployments/base_sepolia/JB721TiersHook__ProjectCPN.json +3455 -0
  38. package/deployments/ethereum/JB721Checkpoints.json +791 -0
  39. package/deployments/ethereum/JB721CheckpointsDeployer.json +155 -0
  40. package/deployments/ethereum/JB721TiersHook.json +2814 -0
  41. package/deployments/ethereum/JB721TiersHookDeployer.json +444 -0
  42. package/deployments/ethereum/JB721TiersHookLib.json +710 -0
  43. package/deployments/ethereum/JB721TiersHookProjectDeployer.json +1790 -0
  44. package/deployments/ethereum/JB721TiersHookStore.json +1741 -0
  45. package/deployments/ethereum/JB721TiersHook__ProjectBAN.json +3511 -0
  46. package/deployments/ethereum/JB721TiersHook__ProjectCPN.json +3503 -0
  47. package/deployments/optimism/JB721Checkpoints.json +799 -0
  48. package/deployments/optimism/JB721CheckpointsDeployer.json +163 -0
  49. package/deployments/optimism/JB721TiersHook.json +2822 -0
  50. package/deployments/optimism/JB721TiersHookDeployer.json +452 -0
  51. package/deployments/optimism/JB721TiersHookLib.json +718 -0
  52. package/deployments/optimism/JB721TiersHookProjectDeployer.json +1798 -0
  53. package/deployments/optimism/JB721TiersHookStore.json +1749 -0
  54. package/deployments/optimism/JB721TiersHook__ProjectBAN.json +3502 -0
  55. package/deployments/optimism/JB721TiersHook__ProjectCPN.json +3438 -0
  56. package/deployments/optimism_sepolia/JB721Checkpoints.json +799 -0
  57. package/deployments/optimism_sepolia/JB721CheckpointsDeployer.json +163 -0
  58. package/deployments/optimism_sepolia/JB721TiersHook.json +2822 -0
  59. package/deployments/optimism_sepolia/JB721TiersHookDeployer.json +452 -0
  60. package/deployments/optimism_sepolia/JB721TiersHookLib.json +718 -0
  61. package/deployments/optimism_sepolia/JB721TiersHookProjectDeployer.json +1798 -0
  62. package/deployments/optimism_sepolia/JB721TiersHookStore.json +1749 -0
  63. package/deployments/optimism_sepolia/JB721TiersHook__ProjectBAN.json +3453 -0
  64. package/deployments/optimism_sepolia/JB721TiersHook__ProjectCPN.json +3389 -0
  65. package/deployments/sepolia/JB721Checkpoints.json +791 -0
  66. package/deployments/sepolia/JB721CheckpointsDeployer.json +155 -0
  67. package/deployments/sepolia/JB721TiersHook.json +2814 -0
  68. package/deployments/sepolia/JB721TiersHookDeployer.json +444 -0
  69. package/deployments/sepolia/JB721TiersHookLib.json +710 -0
  70. package/deployments/sepolia/JB721TiersHookProjectDeployer.json +1790 -0
  71. package/deployments/sepolia/JB721TiersHookStore.json +1741 -0
  72. package/deployments/sepolia/JB721TiersHook__ProjectBAN.json +3511 -0
  73. package/deployments/sepolia/JB721TiersHook__ProjectCPN.json +3503 -0
  74. package/package.json +3 -2
  75. package/src/JB721TiersHookProjectDeployer.sol +20 -0
@@ -0,0 +1,718 @@
1
+ {
2
+ "format": "sphinx-sol-ct-artifact-1",
3
+ "address": "0x1bce2a3e60a6f4e72c756a7ead3484bb975c8378",
4
+ "sourceName": "node_modules/@bananapus/721-hook-v6/src/libraries/JB721TiersHookLib.sol",
5
+ "contractName": "JB721TiersHookLib",
6
+ "chainId": "0x14a34",
7
+ "abi": [
8
+ {
9
+ "type": "function",
10
+ "name": "computeSplitsAndWeight",
11
+ "inputs": [
12
+ {
13
+ "name": "store",
14
+ "type": "IJB721TiersHookStore",
15
+ "internalType": "contract IJB721TiersHookStore"
16
+ },
17
+ {
18
+ "name": "metadataIdTarget",
19
+ "type": "address",
20
+ "internalType": "address"
21
+ },
22
+ {
23
+ "name": "packedPricingContext",
24
+ "type": "uint256",
25
+ "internalType": "uint256"
26
+ },
27
+ {
28
+ "name": "prices",
29
+ "type": "IJBPrices",
30
+ "internalType": "contract IJBPrices"
31
+ },
32
+ {
33
+ "name": "context",
34
+ "type": "tuple",
35
+ "internalType": "struct JBBeforePayRecordedContext",
36
+ "components": [
37
+ {
38
+ "name": "terminal",
39
+ "type": "address",
40
+ "internalType": "address"
41
+ },
42
+ {
43
+ "name": "payer",
44
+ "type": "address",
45
+ "internalType": "address"
46
+ },
47
+ {
48
+ "name": "amount",
49
+ "type": "tuple",
50
+ "internalType": "struct JBTokenAmount",
51
+ "components": [
52
+ {
53
+ "name": "token",
54
+ "type": "address",
55
+ "internalType": "address"
56
+ },
57
+ {
58
+ "name": "decimals",
59
+ "type": "uint8",
60
+ "internalType": "uint8"
61
+ },
62
+ {
63
+ "name": "currency",
64
+ "type": "uint32",
65
+ "internalType": "uint32"
66
+ },
67
+ {
68
+ "name": "value",
69
+ "type": "uint256",
70
+ "internalType": "uint256"
71
+ }
72
+ ]
73
+ },
74
+ {
75
+ "name": "projectId",
76
+ "type": "uint256",
77
+ "internalType": "uint256"
78
+ },
79
+ {
80
+ "name": "rulesetId",
81
+ "type": "uint256",
82
+ "internalType": "uint256"
83
+ },
84
+ {
85
+ "name": "beneficiary",
86
+ "type": "address",
87
+ "internalType": "address"
88
+ },
89
+ {
90
+ "name": "weight",
91
+ "type": "uint256",
92
+ "internalType": "uint256"
93
+ },
94
+ {
95
+ "name": "reservedPercent",
96
+ "type": "uint256",
97
+ "internalType": "uint256"
98
+ },
99
+ {
100
+ "name": "metadata",
101
+ "type": "bytes",
102
+ "internalType": "bytes"
103
+ }
104
+ ]
105
+ }
106
+ ],
107
+ "outputs": [
108
+ {
109
+ "name": "weight",
110
+ "type": "uint256",
111
+ "internalType": "uint256"
112
+ },
113
+ {
114
+ "name": "totalSplitAmount",
115
+ "type": "uint256",
116
+ "internalType": "uint256"
117
+ },
118
+ {
119
+ "name": "splitMetadata",
120
+ "type": "bytes",
121
+ "internalType": "bytes"
122
+ },
123
+ {
124
+ "name": "beneficiary",
125
+ "type": "address",
126
+ "internalType": "address"
127
+ },
128
+ {
129
+ "name": "splitCreditWeight",
130
+ "type": "uint256",
131
+ "internalType": "uint256"
132
+ }
133
+ ],
134
+ "stateMutability": "view"
135
+ },
136
+ {
137
+ "type": "function",
138
+ "name": "normalizePaymentValue",
139
+ "inputs": [
140
+ {
141
+ "name": "packedPricingContext",
142
+ "type": "uint256",
143
+ "internalType": "uint256"
144
+ },
145
+ {
146
+ "name": "prices",
147
+ "type": "IJBPrices",
148
+ "internalType": "contract IJBPrices"
149
+ },
150
+ {
151
+ "name": "projectId",
152
+ "type": "uint256",
153
+ "internalType": "uint256"
154
+ },
155
+ {
156
+ "name": "amountValue",
157
+ "type": "uint256",
158
+ "internalType": "uint256"
159
+ },
160
+ {
161
+ "name": "amountCurrency",
162
+ "type": "uint256",
163
+ "internalType": "uint256"
164
+ },
165
+ {
166
+ "name": "amountDecimals",
167
+ "type": "uint256",
168
+ "internalType": "uint256"
169
+ }
170
+ ],
171
+ "outputs": [
172
+ {
173
+ "name": "value",
174
+ "type": "uint256",
175
+ "internalType": "uint256"
176
+ },
177
+ {
178
+ "name": "valid",
179
+ "type": "bool",
180
+ "internalType": "bool"
181
+ }
182
+ ],
183
+ "stateMutability": "view"
184
+ },
185
+ {
186
+ "type": "function",
187
+ "name": "resolveTokenURI",
188
+ "inputs": [
189
+ {
190
+ "name": "store",
191
+ "type": "IJB721TiersHookStore",
192
+ "internalType": "contract IJB721TiersHookStore"
193
+ },
194
+ {
195
+ "name": "hook",
196
+ "type": "address",
197
+ "internalType": "address"
198
+ },
199
+ {
200
+ "name": "baseUri",
201
+ "type": "string",
202
+ "internalType": "string"
203
+ },
204
+ {
205
+ "name": "tokenId",
206
+ "type": "uint256",
207
+ "internalType": "uint256"
208
+ }
209
+ ],
210
+ "outputs": [
211
+ {
212
+ "name": "",
213
+ "type": "string",
214
+ "internalType": "string"
215
+ }
216
+ ],
217
+ "stateMutability": "view"
218
+ },
219
+ {
220
+ "type": "event",
221
+ "name": "AddTier",
222
+ "inputs": [
223
+ {
224
+ "name": "tierId",
225
+ "type": "uint256",
226
+ "indexed": true,
227
+ "internalType": "uint256"
228
+ },
229
+ {
230
+ "name": "tier",
231
+ "type": "tuple",
232
+ "indexed": false,
233
+ "internalType": "struct JB721TierConfig",
234
+ "components": [
235
+ {
236
+ "name": "price",
237
+ "type": "uint104",
238
+ "internalType": "uint104"
239
+ },
240
+ {
241
+ "name": "initialSupply",
242
+ "type": "uint32",
243
+ "internalType": "uint32"
244
+ },
245
+ {
246
+ "name": "votingUnits",
247
+ "type": "uint32",
248
+ "internalType": "uint32"
249
+ },
250
+ {
251
+ "name": "reserveFrequency",
252
+ "type": "uint16",
253
+ "internalType": "uint16"
254
+ },
255
+ {
256
+ "name": "reserveBeneficiary",
257
+ "type": "address",
258
+ "internalType": "address"
259
+ },
260
+ {
261
+ "name": "encodedIpfsUri",
262
+ "type": "bytes32",
263
+ "internalType": "bytes32"
264
+ },
265
+ {
266
+ "name": "category",
267
+ "type": "uint24",
268
+ "internalType": "uint24"
269
+ },
270
+ {
271
+ "name": "discountPercent",
272
+ "type": "uint8",
273
+ "internalType": "uint8"
274
+ },
275
+ {
276
+ "name": "flags",
277
+ "type": "tuple",
278
+ "internalType": "struct JB721TierConfigFlags",
279
+ "components": [
280
+ {
281
+ "name": "allowOwnerMint",
282
+ "type": "bool",
283
+ "internalType": "bool"
284
+ },
285
+ {
286
+ "name": "useReserveBeneficiaryAsDefault",
287
+ "type": "bool",
288
+ "internalType": "bool"
289
+ },
290
+ {
291
+ "name": "transfersPausable",
292
+ "type": "bool",
293
+ "internalType": "bool"
294
+ },
295
+ {
296
+ "name": "useVotingUnits",
297
+ "type": "bool",
298
+ "internalType": "bool"
299
+ },
300
+ {
301
+ "name": "cantBeRemoved",
302
+ "type": "bool",
303
+ "internalType": "bool"
304
+ },
305
+ {
306
+ "name": "cantIncreaseDiscountPercent",
307
+ "type": "bool",
308
+ "internalType": "bool"
309
+ },
310
+ {
311
+ "name": "cantBuyWithCredits",
312
+ "type": "bool",
313
+ "internalType": "bool"
314
+ }
315
+ ]
316
+ },
317
+ {
318
+ "name": "splitPercent",
319
+ "type": "uint32",
320
+ "internalType": "uint32"
321
+ },
322
+ {
323
+ "name": "splits",
324
+ "type": "tuple[]",
325
+ "internalType": "struct JBSplit[]",
326
+ "components": [
327
+ {
328
+ "name": "percent",
329
+ "type": "uint32",
330
+ "internalType": "uint32"
331
+ },
332
+ {
333
+ "name": "projectId",
334
+ "type": "uint64",
335
+ "internalType": "uint64"
336
+ },
337
+ {
338
+ "name": "beneficiary",
339
+ "type": "address",
340
+ "internalType": "address payable"
341
+ },
342
+ {
343
+ "name": "preferAddToBalance",
344
+ "type": "bool",
345
+ "internalType": "bool"
346
+ },
347
+ {
348
+ "name": "lockedUntil",
349
+ "type": "uint48",
350
+ "internalType": "uint48"
351
+ },
352
+ {
353
+ "name": "hook",
354
+ "type": "address",
355
+ "internalType": "contract IJBSplitHook"
356
+ }
357
+ ]
358
+ }
359
+ ]
360
+ },
361
+ {
362
+ "name": "caller",
363
+ "type": "address",
364
+ "indexed": false,
365
+ "internalType": "address"
366
+ }
367
+ ],
368
+ "anonymous": false
369
+ },
370
+ {
371
+ "type": "event",
372
+ "name": "RemoveTier",
373
+ "inputs": [
374
+ {
375
+ "name": "tierId",
376
+ "type": "uint256",
377
+ "indexed": true,
378
+ "internalType": "uint256"
379
+ },
380
+ {
381
+ "name": "caller",
382
+ "type": "address",
383
+ "indexed": false,
384
+ "internalType": "address"
385
+ }
386
+ ],
387
+ "anonymous": false
388
+ },
389
+ {
390
+ "type": "event",
391
+ "name": "SetDiscountPercent",
392
+ "inputs": [
393
+ {
394
+ "name": "tierId",
395
+ "type": "uint256",
396
+ "indexed": true,
397
+ "internalType": "uint256"
398
+ },
399
+ {
400
+ "name": "discountPercent",
401
+ "type": "uint256",
402
+ "indexed": false,
403
+ "internalType": "uint256"
404
+ },
405
+ {
406
+ "name": "caller",
407
+ "type": "address",
408
+ "indexed": false,
409
+ "internalType": "address"
410
+ }
411
+ ],
412
+ "anonymous": false
413
+ },
414
+ {
415
+ "type": "event",
416
+ "name": "SplitPayoutReverted",
417
+ "inputs": [
418
+ {
419
+ "name": "projectId",
420
+ "type": "uint256",
421
+ "indexed": true,
422
+ "internalType": "uint256"
423
+ },
424
+ {
425
+ "name": "split",
426
+ "type": "tuple",
427
+ "indexed": false,
428
+ "internalType": "struct JBSplit",
429
+ "components": [
430
+ {
431
+ "name": "percent",
432
+ "type": "uint32",
433
+ "internalType": "uint32"
434
+ },
435
+ {
436
+ "name": "projectId",
437
+ "type": "uint64",
438
+ "internalType": "uint64"
439
+ },
440
+ {
441
+ "name": "beneficiary",
442
+ "type": "address",
443
+ "internalType": "address payable"
444
+ },
445
+ {
446
+ "name": "preferAddToBalance",
447
+ "type": "bool",
448
+ "internalType": "bool"
449
+ },
450
+ {
451
+ "name": "lockedUntil",
452
+ "type": "uint48",
453
+ "internalType": "uint48"
454
+ },
455
+ {
456
+ "name": "hook",
457
+ "type": "address",
458
+ "internalType": "contract IJBSplitHook"
459
+ }
460
+ ]
461
+ },
462
+ {
463
+ "name": "amount",
464
+ "type": "uint256",
465
+ "indexed": false,
466
+ "internalType": "uint256"
467
+ },
468
+ {
469
+ "name": "reason",
470
+ "type": "bytes",
471
+ "indexed": false,
472
+ "internalType": "bytes"
473
+ },
474
+ {
475
+ "name": "caller",
476
+ "type": "address",
477
+ "indexed": false,
478
+ "internalType": "address"
479
+ }
480
+ ],
481
+ "anonymous": false
482
+ },
483
+ {
484
+ "type": "error",
485
+ "name": "JB721TiersHookLib_NoTerminalForLeftover",
486
+ "inputs": [
487
+ {
488
+ "name": "projectId",
489
+ "type": "uint256",
490
+ "internalType": "uint256"
491
+ },
492
+ {
493
+ "name": "token",
494
+ "type": "address",
495
+ "internalType": "address"
496
+ },
497
+ {
498
+ "name": "leftoverAmount",
499
+ "type": "uint256",
500
+ "internalType": "uint256"
501
+ }
502
+ ]
503
+ },
504
+ {
505
+ "type": "error",
506
+ "name": "JB721TiersHookLib_SplitAmountMismatch",
507
+ "inputs": [
508
+ {
509
+ "name": "expectedAmount",
510
+ "type": "uint256",
511
+ "internalType": "uint256"
512
+ },
513
+ {
514
+ "name": "actualAmount",
515
+ "type": "uint256",
516
+ "internalType": "uint256"
517
+ }
518
+ ]
519
+ },
520
+ {
521
+ "type": "error",
522
+ "name": "JB721TiersHookLib_SplitFallbackFailed",
523
+ "inputs": [
524
+ {
525
+ "name": "projectId",
526
+ "type": "uint256",
527
+ "internalType": "uint256"
528
+ },
529
+ {
530
+ "name": "token",
531
+ "type": "address",
532
+ "internalType": "address"
533
+ },
534
+ {
535
+ "name": "amount",
536
+ "type": "uint256",
537
+ "internalType": "uint256"
538
+ },
539
+ {
540
+ "name": "reason",
541
+ "type": "bytes",
542
+ "internalType": "bytes"
543
+ }
544
+ ]
545
+ },
546
+ {
547
+ "type": "error",
548
+ "name": "JB721TiersHookLib_SplitMetadataLengthMismatch",
549
+ "inputs": [
550
+ {
551
+ "name": "tierIdCount",
552
+ "type": "uint256",
553
+ "internalType": "uint256"
554
+ },
555
+ {
556
+ "name": "amountCount",
557
+ "type": "uint256",
558
+ "internalType": "uint256"
559
+ }
560
+ ]
561
+ },
562
+ {
563
+ "type": "error",
564
+ "name": "JB721TiersHookLib_TokenTransferAmountMismatch",
565
+ "inputs": [
566
+ {
567
+ "name": "expectedAmount",
568
+ "type": "uint256",
569
+ "internalType": "uint256"
570
+ },
571
+ {
572
+ "name": "receivedAmount",
573
+ "type": "uint256",
574
+ "internalType": "uint256"
575
+ }
576
+ ]
577
+ },
578
+ {
579
+ "type": "error",
580
+ "name": "JB721TiersHook_CantBuyWithCredits",
581
+ "inputs": [
582
+ {
583
+ "name": "restrictedCost",
584
+ "type": "uint256",
585
+ "internalType": "uint256"
586
+ },
587
+ {
588
+ "name": "freshValue",
589
+ "type": "uint256",
590
+ "internalType": "uint256"
591
+ }
592
+ ]
593
+ },
594
+ {
595
+ "type": "error",
596
+ "name": "JB721TiersHook_Overspending",
597
+ "inputs": [
598
+ {
599
+ "name": "leftoverAmount",
600
+ "type": "uint256",
601
+ "internalType": "uint256"
602
+ }
603
+ ]
604
+ },
605
+ {
606
+ "type": "error",
607
+ "name": "PRBMath_MulDiv_Overflow",
608
+ "inputs": [
609
+ {
610
+ "name": "x",
611
+ "type": "uint256",
612
+ "internalType": "uint256"
613
+ },
614
+ {
615
+ "name": "y",
616
+ "type": "uint256",
617
+ "internalType": "uint256"
618
+ },
619
+ {
620
+ "name": "denominator",
621
+ "type": "uint256",
622
+ "internalType": "uint256"
623
+ }
624
+ ]
625
+ },
626
+ {
627
+ "type": "error",
628
+ "name": "SafeERC20FailedOperation",
629
+ "inputs": [
630
+ {
631
+ "name": "token",
632
+ "type": "address",
633
+ "internalType": "address"
634
+ }
635
+ ]
636
+ }
637
+ ],
638
+ "args": [],
639
+ "solcInputHash": "894c1b4178e64112dd366720741182fd",
640
+ "receipt": {
641
+ "type": "0x2",
642
+ "status": "0x1",
643
+ "cumulativeGasUsed": "0x6ae382",
644
+ "logs": [
645
+ {
646
+ "address": "0xa2ea7657440875bf916cbfc0cfa88f13e38ad463",
647
+ "topics": [
648
+ "0x572f161235911da04685a68c06adf558fc7e4a36909dca394650e0adc19cc93d",
649
+ "0x000000000000000000000000755ff2f75a0a586ecfa2b9a3c959cb662458a105",
650
+ "0x00000000000000000000000091f164e1300f13beaf77358e4d84ed78f8e99d38",
651
+ "0x2933e5ee9777c4a1faac36681a36a2eeb9b2d916aa189126de61a2f1d0e51cfb"
652
+ ],
653
+ "data": "0x0000000000000000000000000000000000000000000000000000000000000000",
654
+ "blockHash": "0x43cbfd0dbf991301dc8e0bcedde0e5f4313db51ad522d57aa2f614436f28be7e",
655
+ "blockNumber": "0x28ebdb3",
656
+ "blockTimestamp": "0x6a30da46",
657
+ "transactionHash": "0xe96c5b7cbcf4a59f6e4c2cf4b77f56f2e1be04b8da5ac7dd2f61b351eaf862d3",
658
+ "transactionIndex": "0xd",
659
+ "logIndex": "0x7a",
660
+ "removed": false
661
+ },
662
+ {
663
+ "address": "0x4dc161ef837ff1c4485b08ddfcdb182f2157be18",
664
+ "topics": [
665
+ "0x6895c13664aa4f67288b25d7a21d7aaa34916e355fb9b6fae0a139a9085becb8",
666
+ "0x00000000000000000000000091f164e1300f13beaf77358e4d84ed78f8e99d38"
667
+ ],
668
+ "data": "0x",
669
+ "blockHash": "0x43cbfd0dbf991301dc8e0bcedde0e5f4313db51ad522d57aa2f614436f28be7e",
670
+ "blockNumber": "0x28ebdb3",
671
+ "blockTimestamp": "0x6a30da46",
672
+ "transactionHash": "0xe96c5b7cbcf4a59f6e4c2cf4b77f56f2e1be04b8da5ac7dd2f61b351eaf862d3",
673
+ "transactionIndex": "0xd",
674
+ "logIndex": "0x7b",
675
+ "removed": false
676
+ },
677
+ {
678
+ "address": "0x91f164e1300f13beaf77358e4d84ed78f8e99d38",
679
+ "topics": [
680
+ "0xa65fb05c5808f5f389d72edeaf719ce38f4cc55c1f69ca3cbfb31c21501caa07",
681
+ "0xd5deab2e7deb1fc43c598724c179da0517b3ba8e35a6aa10843b370c51835520"
682
+ ],
683
+ "data": "0x0000000000000000000000000000000000000000000000000000000000000003",
684
+ "blockHash": "0x43cbfd0dbf991301dc8e0bcedde0e5f4313db51ad522d57aa2f614436f28be7e",
685
+ "blockNumber": "0x28ebdb3",
686
+ "blockTimestamp": "0x6a30da46",
687
+ "transactionHash": "0xe96c5b7cbcf4a59f6e4c2cf4b77f56f2e1be04b8da5ac7dd2f61b351eaf862d3",
688
+ "transactionIndex": "0xd",
689
+ "logIndex": "0x7c",
690
+ "removed": false
691
+ }
692
+ ],
693
+ "logsBloom": "0x00000000000010000000000000080000001000000000000000000000000000000000200000000000000000000040000000000000000000000000000000000000000000000000200000000000000000000000000000000040100000000000000040000000000004000000000000000000000000000000000000000000000080008800000000000000000104000000000000000000000000000000000000004000004000040000000000000000000000002200000000000000000000000004000000000002008000000000000000400000000000000000000000000000800000000000040000000100000000000000000200000000000080000000200000000000",
694
+ "transactionHash": "0xe96c5b7cbcf4a59f6e4c2cf4b77f56f2e1be04b8da5ac7dd2f61b351eaf862d3",
695
+ "transactionIndex": "0xd",
696
+ "blockHash": "0x43cbfd0dbf991301dc8e0bcedde0e5f4313db51ad522d57aa2f614436f28be7e",
697
+ "blockNumber": "0x28ebdb3",
698
+ "gasUsed": "0x437cfc",
699
+ "effectiveGasPrice": "0x802c80",
700
+ "blobGasUsed": "0x45c6a6",
701
+ "from": "0x755ff2f75a0a586ecfa2b9a3c959cb662458a105",
702
+ "to": "0xa2ea7657440875bf916cbfc0cfa88f13e38ad463",
703
+ "contractAddress": null,
704
+ "l1GasPrice": "0x3b0b5bdc",
705
+ "l1GasUsed": "0x280de",
706
+ "l1Fee": "0x889a0a1b94",
707
+ "l1BaseFeeScalar": "0x44d",
708
+ "l1BlobBaseFee": "0x39797ca",
709
+ "l1BlobBaseFeeScalar": "0xa118b",
710
+ "daFootprintGasScalar": "0x1be"
711
+ },
712
+ "bytecode": "0x614a3a610034600b8282823980515f1a607314602857634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe7300000000000000000000000000000000000000003014608060405260043610610090575f3560e01c8063b720e93f11610063578063b720e93f1461012b578063b99df6321461014a578063f236ea0a1461016e578063f327b88d1461018d575f5ffd5b80634e2a0e43146100945780636ce4a1df146100b557806392801ea6146100de578063a403c797146100fd575b5f5ffd5b81801561009f575f5ffd5b506100b36100ae366004612e8e565b6101b5565b005b6100c86100c3366004613026565b6103a8565b6040516100d591906130f9565b60405180910390f35b8180156100e9575f5ffd5b506100b36100f836600461310b565b610525565b818015610108575f5ffd5b5061011c61011736600461318f565b6105ca565b6040516100d593929190613229565b818015610136575f5ffd5b506100b36101453660046132b5565b610819565b61015d610158366004613344565b610a8e565b6040516100d59594939291906133c4565b818015610179575f5ffd5b506100b36101883660046137b5565b610c57565b6101a061019b366004613852565b610d5f565b604080519283529015156020830152016100d5565b8015610282575f5b81811015610225578282828181106101d7576101d761389e565b6040516001600160a01b038a16815260209182029390930135927f832d89d991be5351d793c20faf4b7dd44f8aa9ce39e3cb160c6317de6fbba72992500160405180910390a26001016101bd565b506040516320512ba160e01b81526001600160a01b038a16906320512ba19061025490859085906004016138b2565b5f604051808303815f87803b15801561026b575f5ffd5b505af115801561027d573d5f5f3e3d5ffd5b505050505b821561039d5760405163052e4c3b60e31b81525f906001600160a01b038b169063297261d8906102b89088908890600401613b79565b5f604051808303815f875af11580156102d3573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526102fa9190810190613c4a565b90505f5b84811015610384578181815181106103185761031861389e565b60200260200101517f69a4ea1744cea8816339fc8993142d1fdad6432f24f361f65d34dd642aa46b9f8787848181106103535761035361389e565b90506020028101906103659190613c7b565b89604051610374929190613c9a565b60405180910390a26001016102fe565b5061039b898989610395888a613cc3565b85610e9e565b505b505050505050505050565b604051630fab094760e01b81526001600160a01b0384811660048301526060915f91871690630fab094790602401602060405180830381865afa1580156103f1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104159190613ccf565b90506001600160a01b0381161561049f57604051635e703e7160e01b81526001600160a01b03868116600483015260248201859052821690635e703e71906044015f60405180830381865afa158015610470573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526104979190810190613cea565b91505061051d565b604051630c8df17160e41b81526001600160a01b0386811660048301526024820185905261051991869189169063c8df171090604401602060405180830381865afa1580156104f0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105149190613d5e565b61107f565b9150505b949350505050565b604080518381526001600160a01b038316602082015284917f8ebf585439d8c6edc7dfa9c0e01fdbb1d4e68d9969dc5341ebd8bca5cd9a7bd4910160405180910390a260405163284d148160e11b815260048101849052602481018390526001600160a01b0385169063509a2902906044015f604051808303815f87803b1580156105ae575f5ffd5b505af11580156105c0573d5f5f3e3d5ffd5b5050505050505050565b60408051808201909152600381526270617960e81b6020909101526060805f80808061064f8d861b7fadc756803e4eb4ccfb136b73d5f72e3dc0d452d30ae1f4bc82af394c73ce71151889898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506110e592505050565b915091508115610675575f8180602001905181019061066e9190613dd9565b9650159350505b508a90506001600160a01b03808a16908b160361069d576106968882613e3a565b90506106a1565b8792505b604051634228826f60e11b81523060048201525f906001600160a01b038f169063845104de9060240160a060405180830381865afa1580156106e5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107099190613e4d565b60600151158015610718575082155b905084515f146107ce575f8e6001600160a01b031663eaa19ab384885f6040518463ffffffff1660e01b815260040161075393929190613f18565b5f604051808303815f875af115801561076e573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526107959190810190613f42565b919850935090508c8111156107cc57604051635d7462ab60e11b815260048101829052602481018e90526044015b60405180910390fd5b505b81158015906107db575080155b156107fc5760405163215ccc4760e11b8152600481018390526024016107c3565b6108068483613e3a565b9350505050985098509895505050505050565b5f8061082783850185613fe8565b91509150805182511461085a57815181516040516375c679c360e01b8152600481019290925260248201526044016107c3565b5f5f5b8251811015610895578281815181106108785761087861389e565b60200260200101518261088b9190613e3a565b915060010161085d565b508681146108c057604051631c50088560e11b815260048101889052602481018290526044016107c3565b6001600160a01b03881661eeee146109eb576040516370a0823160e01b81523060048201525f906001600160a01b038a16906370a0823190602401602060405180830381865afa158015610916573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061093a9190613d5e565b90506109488933308b611285565b6040516370a0823160e01b81523060048201525f9082906001600160a01b038c16906370a0823190602401602060405180830381865afa15801561098e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109b29190613d5e565b6109bc91906140a1565b90508881146109e85760405163c654ace960e01b8152600481018a9052602481018290526044016107c3565b50505b5f5b8351811015610a7f57828181518110610a0857610a0861389e565b60200260200101515f03610a1e576001016109ed565b5f60a0858381518110610a3357610a3361389e565b602002602001015161ffff16901b8b6001600160a01b0316179050610a768e8e8e8d85898881518110610a6857610a6861389e565b60200260200101518e6112c1565b506001016109ed565b50505050505050505050505050565b5f8060608180610aad8a308b610aa86101608b018b6140b4565b6115e5565b90945092508315610acb57610ac584848a8a8a61193c565b90945092505b610ae161012087013560a0880135868d30611d8b565b94508315801590610af5575060a086013515155b8015610b675750604051634228826f60e11b81523060048201526001600160a01b038b169063845104de9060240160a060405180830381865afa158015610b3e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b629190613e4d565b608001515b15610b8357610b806101208701358560a0890135611e3c565b90505b610b95610120870161010088016140f6565b91505f80610c047ff7999d69b76834e7cc9d127cf1983bd001a90e7a0eacd792dddf8770f08d9166610bcb6101608b018b6140b4565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506110e592505050565b91509150818015610c1757506020815110155b15610c48575f81806020019051810190610c319190613ccf565b90506001600160a01b03811615610c46578094505b505b50509550955095509550959050565b60405163052e4c3b60e31b81525f906001600160a01b0388169063297261d890610c859085906004016142f3565b5f604051808303815f875af1158015610ca0573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610cc79190810190613c4a565b90505f5b8251811015610d4857818181518110610ce657610ce661389e565b60200260200101517f69a4ea1744cea8816339fc8993142d1fdad6432f24f361f65d34dd642aa46b9f848381518110610d2157610d2161389e565b602002602001015186604051610d38929190614356565b60405180910390a2600101610ccb565b50610d568686868585610e9e565b50505050505050565b5f8063ffffffff881660ff60208a901c16818603610ddf57808503610d8c57866001935093505050610e93565b80851115610dc057610d9e81866140a1565b610da990600a61444b565b610db3908861446a565b6001935093505050610e93565b610dca85826140a1565b610dd590600a61444b565b610db3908861447d565b6001600160a01b038916610dfa575f5f935093505050610e93565b610e8a87610e0983600a61444b565b604051631df139fd60e11b8152600481018c9052602481018a905260448101869052606481018990526001600160a01b038d1690633be273fa90608401602060405180830381865afa158015610e61573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e859190613d5e565b611e3c565b93506001925050505b965096945050505050565b5f5f5b8351811015610ee657838181518110610ebc57610ebc61389e565b60200260200101516101400151515f14610ede5781610eda81614494565b9250505b600101610ea1565b50805f03610ef45750611078565b5f816001600160401b03811115610f0d57610f0d612f4f565b604051908082528060200260200182016040528015610f5257816020015b604080518082019091525f815260606020820152815260200190600190039081610f2b5790505b5090505f5f5b855181101561101657858181518110610f7357610f7361389e565b60200260200101516101400151515f1461100e57604051806040016040528060a0878481518110610fa657610fa661389e565b6020026020010151901b896001600160a01b0316178152602001878381518110610fd257610fd261389e565b60200260200101516101400151815250838381518110610ff457610ff461389e565b6020026020010181905250818061100a90614494565b9250505b600101610f58565b50604051638a36dffd60e01b81526001600160a01b03891690638a36dffd90611047908a905f9087906004016144ac565b5f604051808303815f87803b15801561105e575f5ffd5b505af1158015611070573d5f5f3e3d5ffd5b505050505050505b5050505050565b604051609160f51b6020820152602281018290526060905f9060420160405160208183030381529060405290505f6110b682611f11565b905084816040516020016110cb92919061454b565b604051602081830303815290604052925050505b92915050565b5f6060602583511161110857505060408051602081019091525f8082529061127e565b5f8361111660046020613e3a565b815181106111265761112661389e565b0160209081015160f81c91505b5f85611140600484613e3a565b815181106111505761115061389e565b01602001516001600160f81b03191614801590611176575061117360208361447d565b81105b1561127b575f85611188600484613e3a565b815181106111985761119861389e565b016020908101518784019091015160f89190911c91506001600160e01b031980891690821603611271575f6111ce60208661447d565b6111d9600986613e3a565b10158061120e5750876111ed600986613e3a565b815181106111fd576111fd61389e565b01602001516001600160f81b031916155b61124757602088611220600987613e3a565b815181106112305761123061389e565b0160200151611242919060f81c61447d565b61124a565b87515b905060016112638961125d60208761447d565b8461209d565b96509650505050505061127e565b5050600501611133565b50505b9250929050565b6112938484848460016120e9565b6112bb57604051635274afe760e01b81526001600160a01b03851660048201526024016107c3565b50505050565b6040516369e11cc560e01b8152600481018690525f6024820181905260448201859052906001600160a01b038816906369e11cc5906064015f60405180830381865afa158015611313573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261133a919081019061455f565b5f939091506001600160a01b03861661eeee1490633b9aca0090855b84518110156113fa575f61138d838784815181106113765761137661389e565b60200260200101515f015163ffffffff1686611e3c565b905080156113c95780830392506113c28d8784815181106113b0576113b061389e565b60200260200101518c848f8e8d612156565b8103880197505b8582815181106113db576113db61389e565b60209081029190910101515163ffffffff169093039250600101611356565b506114058682613e3a565b905080156115d857604051630862026560e41b8152600481018a90526001600160a01b0389811660248301525f91908d1690638620265090604401602060405180830381865afa15801561145b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061147f9190613ccf565b90506001600160a01b0381166114c15760405163200bf9ff60e11b8152600481018b90526001600160a01b038a166024820152604481018390526064016107c3565b831561158c57806001600160a01b0316639e6eec05838c8c865f60405180602001604052805f8152506040518763ffffffff1660e01b815260040161150a959493929190614673565b5f604051808303818588803b158015611521575f5ffd5b505af193505050508015611533575060015b611587573d808015611560576040519150601f19603f3d011682016040523d82523d5f602084013e611565565b606091505b508a8a84836040516333e3da8b60e11b81526004016107c394939291906146b4565b611070565b5f5f61159a838c8e8761289c565b9150915080515f1415806115ae5750838214155b156115d4578b8b85836040516333e3da8b60e11b81526004016107c394939291906146b4565b5050505b5050505050505050505050565b60408051808201909152600381526270617960e81b6020909101525f606080828061166988841b7fadc756803e4eb4ccfb136b73d5f72e3dc0d452d30ae1f4bc82af394c73ce71151888888080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506110e592505050565b915091508161168e575f60405180602001604052805f81525094509450505050611932565b808060200190518101906116a29190613dd9565b905080935050505080515f036116ca57505060408051602081019091525f8082529150611932565b5f81516001600160401b038111156116e4576116e4612f4f565b60405190808252806020026020018201604052801561170d578160200160208202803683370190505b5090505f82516001600160401b0381111561172a5761172a612f4f565b604051908082528060200260200182016040528015611753578160200160208202803683370190505b5090505f5f5b84518110156118fb575f5f5f8e6001600160a01b0316631923fe698f8a87815181106117875761178761389e565b60200260200101516040518363ffffffff1660e01b81526004016117c49291906001600160a01b0392909216825261ffff16602082015260400190565b606060405180830381865afa1580156117df573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061180391906146e0565b9250925092508163ffffffff165f146118ed576001600160681b03831660ff821615611845576118388160ff841660c8611e3c565b61184290826140a1565b90505b8885815181106118575761185761389e565b60200260200101518887815181106118715761187161389e565b61ffff909216602092830291909101909101526118998163ffffffff8516633b9aca00611e3c565b8787815181106118ab576118ab61389e565b6020026020010181815250508686815181106118c9576118c961389e565b60200260200101518b6118dc9190613e3a565b9a50856118e881614494565b965050505b836001019350505050611759565b50801561192d57808352808252828260405160200161191b92919061472a565b60405160208183030381529060405294505b505050505b9550959350505050565b848460ff602086901c1663ffffffff861661195d60a0860160808701614782565b63ffffffff1614611b0b576001600160a01b03851661197f575f925050611932565b5f6001600160a01b038616633be273fa60c08701356119a460a0890160808a01614782565b63ffffffff8b166119bb60808b0160608c0161479d565b6040516001600160e01b031960e087901b168152600481019490945263ffffffff929092166024840152604483015260ff166064820152608401602060405180830381865afa158015611a10573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a349190613d5e565b90505f611a4283600a61444b565b90505f5f85806020019051810190611a5a91906147b8565b915091505f96505f5b8151811015611add57611a90828281518110611a8157611a8161389e565b60200260200101518686611e3c565b828281518110611aa257611aa261389e565b602002602001018181525050818181518110611ac057611ac061389e565b602002602001015188611ad39190613e3a565b9750600101611a63565b508181604051602001611af192919061472a565b604051602081830303815290604052955050505050611c98565b80611b1c608086016060870161479d565b60ff1614611c98575f5f83806020019051810190611b3a91906147b8565b915091505f94505f5b8151811015611c705783611b5d6080890160608a0161479d565b60ff161115611bd65783611b776080890160608a0161479d565b60ff16611b8491906140a1565b611b8f90600a61444b565b828281518110611ba157611ba161389e565b6020026020010151611bb3919061447d565b828281518110611bc557611bc561389e565b602002602001018181525050611c41565b611be6608088016060890161479d565b611bf39060ff16856140a1565b611bfe90600a61444b565b828281518110611c1057611c1061389e565b6020026020010151611c22919061446a565b828281518110611c3457611c3461389e565b6020026020010181815250505b818181518110611c5357611c5361389e565b602002602001015186611c669190613e3a565b9550600101611b43565b508181604051602001611c8492919061472a565b604051602081830303815290604052935050505b60a0840135831115611d8057815115611d78575f5f83806020019051810190611cc191906147b8565b5f969193509150855b8251811015611d4b57611cfe838281518110611ce857611ce861389e565b6020026020010151896040016060013584611e3c565b838281518110611d1057611d1061389e565b602002602001018181525050828181518110611d2e57611d2e61389e565b602002602001015187611d419190613e3a565b9650600101611cca565b508282604051602001611d5f92919061472a565b6040516020818303038152906040529450505050611d80565b60a084013592505b509550959350505050565b5f831580611e015750604051634228826f60e11b81526001600160a01b03838116600483015284169063845104de9060240160a060405180830381865afa158015611dd8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dfc9190613e4d565b608001515b15611e0d575084611e33565b83851115611e3057611e2986611e2386886140a1565b87611e3c565b9050611e33565b505f5b95945050505050565b5f80805f19858709858702925082811083820303915050805f03611e7357838281611e6957611e69614456565b0492505050611f0a565b838110611ea457604051630c740aef60e31b81526004810187905260248101869052604481018590526064016107c3565b5f848688098519600190810187169687900496828603819004959092119093035f82900391909104909201919091029190911760038402600290811880860282030280860282030280860282030280860282030280860282030280860290910302029150505b9392505050565b606081515f03611f3357604080515f80825260208201909252905b5092915050565b60408051602e8082526105e082019092525f91602082016105c0803683370190505090505f815f81518110611f6a57611f6a61389e565b60ff9092166020928302919091019091015282516001905f5b81811015612082575f868281518110611f9e57611f9e61389e565b016020015160f81c90505f5b8460ff16811015612027576008868281518110611fc957611fc961389e565b602002602001015160ff16901b82611fe19190613e3a565b9150611fee603a83614811565b8682815181106120005761200061389e565b60ff9092166020928302919091019091015261201d603a8361446a565b9150600101611faa565b505b80156120795761203a603a82614811565b858560ff168151811061204f5761204f61389e565b60ff90921660209283029190910190910152600190930192612072603a8261446a565b9050612029565b50600101611f83565b50611e3361209861209385856129de565b612a83565b612b23565b60608282036040519150601f19601f6020838501010116604052808252836020860101602083015f5b838110156120de5782810151828201526020016120c6565b505050509392505050565b6040516323b872dd60e01b5f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f51148316612145578383151615612139573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b60a08601515f906001600160a01b0387811661eeee14911615612433575f6040518060c00160405280896001600160a01b031681526020018881526020018581526020018781526020018681526020018a815250905081156122835760a08901516040516318b4127160e31b815247916001600160a01b03169063c5a09388908a906121e6908690600401614824565b5f604051808303818588803b1580156121fd575f5ffd5b505af19350505050801561220f575060015b61226f573d80801561223c576040519150601f19603f3d011682016040523d82523d5f602084013e612241565b606091505b50875f5160206149d45f395f51905f528c8b84336040516122659493929190614871565b60405180910390a2505b61227947826140a1565b9350505050612891565b6040516370a0823160e01b81523060048201525f906001600160a01b038a16906370a0823190602401602060405180830381865afa1580156122c7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122eb9190613d5e565b90506122fc898b60a001518a612bf9565b8960a001516001600160a01b031663c5a09388836040518263ffffffff1660e01b815260040161232c9190614824565b5f604051808303815f87803b158015612343575f5ffd5b505af1925050508015612354575060015b6123b4573d808015612381576040519150601f19603f3d011682016040523d82523d5f602084013e612386565b606091505b50875f5160206149d45f395f51905f528c8b84336040516123aa9493929190614871565b60405180910390a2505b6123c3898b60a001515f612bf9565b6040516370a0823160e01b81523060048201526001600160a01b038a16906370a0823190602401602060405180830381865afa158015612405573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124299190613d5e565b61227990826140a1565b60208801516001600160401b031615612714576020880151604051630862026560e41b81526001600160401b0390911660048201526001600160a01b0388811660248301525f91908b1690638620265090604401602060405180830381865afa1580156124a2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124c69190613ccf565b90506001600160a01b0381166124e0575f92505050612891565b88606001511561262e5781156125d357806001600160a01b0316639e6eec05888b602001518b8b5f60405180602001604052805f8152506040518763ffffffff1660e01b81526004016125379594939291906148b2565b5f604051808303818588803b15801561254e575f5ffd5b505af193505050508015612560575060015b6125c9573d80801561258d576040519150601f19603f3d011682016040523d82523d5f602084013e612592565b606091505b50865f5160206149d45f395f51905f528b8a84336040516125b69493929190614871565b60405180910390a25f9350505050612891565b8692505050612891565b60606125ee828a8c602001516001600160401b03168b61289c565b805191955091501561262657865f5160206149d45f395f51905f528b8a843360405161261d9493929190614871565b60405180910390a25b505050612891565b81156126f457806001600160a01b031663fef43257888b602001518b8b8e604001515f60405180602001604052805f8152506040518863ffffffff1660e01b8152600401612681969594939291906148fc565b60206040518083038185885af1935050505080156126bc575060408051601f3d908101601f191682019092526126b991810190613d5e565b60015b6126e9573d80801561258d576040519150601f19603f3d011682016040523d82523d5f602084013e612592565b508692505050612891565b60606125ee828a8c602001516001600160401b03168b8e60400151612c78565b60408801516001600160a01b03161561288c578015612798575f88604001516001600160a01b0316876040515f6040518083038185875af1925050503d805f811461277a576040519150601f19603f3d011682016040523d82523d5f602084013e61277f565b606091505b5050905080612792575f92505050612891565b50612883565b5f5f886001600160a01b03168a60400151896040516024016127cf9291906001600160a01b03929092168252602082015260400190565b60408051601f198184030181529181526020820180516001600160e01b031663a9059cbb60e01b17905251612804919061495f565b5f604051808303815f865af19150503d805f811461283d576040519150601f19603f3d011682016040523d82523d5f602084013e612842565b606091505b5091509150811580612870575080511580159061287057508080602001905181019061286e919061496a565b155b15612880575f9350505050612891565b50505b85915050612891565b5f9150505b979650505050505050565b5f60606128aa858785612bf9565b604080516020810182525f8082529151639e6eec0560e01b81526001600160a01b03891691639e6eec05916128ea9189918b918a91889190600401614673565b5f604051808303815f87803b158015612901575f5ffd5b505af1925050508015612912575060015b61294c573d80801561293f576040519150601f19603f3d011682016040523d82523d5f602084013e612944565b606091505b509150612950565b5060015b80156129c957604051636eb1769f60e11b81523060048201526001600160a01b03888116602483015287169063dd62ed3e90604401602060405180830381865afa1580156129a0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129c49190613d5e565b840392505b6129d486885f612bf9565b5094509492505050565b60605f8260ff166001600160401b038111156129fc576129fc612f4f565b604051908082528060200260200182016040528015612a25578160200160208202803683370190505b5090505f5b8360ff16811015612a7b57848181518110612a4757612a4761389e565b6020026020010151828281518110612a6157612a6161389e565b60ff90921660209283029190910190910152600101612a2a565b509392505050565b80516060905f816001600160401b03811115612aa157612aa1612f4f565b604051908082528060200260200182016040528015612aca578160200160208202803683370190505b5090505f5b82811015612a7b57848160018751030381518110612aef57612aef61389e565b6020026020010151828281518110612b0957612b0961389e565b60ff90921660209283029190910190910152600101612acf565b80516060905f816001600160401b03811115612b4157612b41612f4f565b6040519080825280601f01601f191660200182016040528015612b6b576020820181803683370190505b5090505f5b82811015612a7b576040518060600160405280603a81526020016149f4603a9139858281518110612ba357612ba361389e565b602002602001015160ff1681518110612bbe57612bbe61389e565b602001015160f81c60f81b828281518110612bdb57612bdb61389e565b60200101906001600160f81b03191690815f1a905350600101612b70565b612c058383835f612dc5565b612c7357612c1683835f6001612dc5565b612c3e57604051635274afe760e01b81526001600160a01b03841660048201526024016107c3565b612c4b8383836001612dc5565b612c7357604051635274afe760e01b81526001600160a01b03841660048201526024016107c3565b505050565b5f6060612c86868886612bf9565b604080516020810182525f808252915163fef4325760e01b81526001600160a01b038a169163fef4325791612cc7918a918c918b918b918991600401614985565b6020604051808303815f875af1925050508015612d01575060408051601f3d908101601f19168201909252612cfe91810190613d5e565b60015b612d3b573d808015612d2e576040519150601f19603f3d011682016040523d82523d5f602084013e612d33565b606091505b509150612d41565b50600190505b8015612dba57604051636eb1769f60e11b81523060048201526001600160a01b03898116602483015288169063dd62ed3e90604401602060405180830381865afa158015612d91573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612db59190613d5e565b850392505b611d8087895f612bf9565b60405163095ea7b360e01b5f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f51148316612e1b578383151615612e0f573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b6001600160a01b0381168114612e3b575f5ffd5b50565b8035612e4981612e27565b919050565b5f5f83601f840112612e5e575f5ffd5b5081356001600160401b03811115612e74575f5ffd5b6020830191508360208260051b850101111561127e575f5ffd5b5f5f5f5f5f5f5f5f5f60e08a8c031215612ea6575f5ffd5b8935612eb181612e27565b985060208a0135612ec181612e27565b975060408a0135965060608a0135612ed881612e27565b955060808a0135612ee881612e27565b945060a08a01356001600160401b03811115612f02575f5ffd5b612f0e8c828d01612e4e565b90955093505060c08a01356001600160401b03811115612f2c575f5ffd5b612f388c828d01612e4e565b915080935050809150509295985092959850929598565b634e487b7160e01b5f52604160045260245ffd5b60405160e081016001600160401b0381118282101715612f8557612f85612f4f565b60405290565b60405160c081016001600160401b0381118282101715612f8557612f85612f4f565b60405161016081016001600160401b0381118282101715612f8557612f85612f4f565b604051601f8201601f191681016001600160401b0381118282101715612ff857612ff8612f4f565b604052919050565b5f6001600160401b0382111561301857613018612f4f565b50601f01601f191660200190565b5f5f5f5f60808587031215613039575f5ffd5b843561304481612e27565b9350602085013561305481612e27565b925060408501356001600160401b0381111561306e575f5ffd5b8501601f8101871361307e575f5ffd5b803561309161308c82613000565b612fd0565b8181528860208385010111156130a5575f5ffd5b816020840160208301375f91810160200191909152949793965093946060013593505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f611f0a60208301846130cb565b5f5f5f5f6080858703121561311e575f5ffd5b843561312981612e27565b93506020850135925060408501359150606085013561314781612e27565b939692955090935050565b5f5f83601f840112613162575f5ffd5b5081356001600160401b03811115613178575f5ffd5b60208301915083602082850101111561127e575f5ffd5b5f5f5f5f5f5f5f5f60e0898b0312156131a6575f5ffd5b88356131b181612e27565b975060208901356131c181612e27565b96506040890135955060608901356131d881612e27565b945060808901356131e881612e27565b935060a0890135925060c08901356001600160401b03811115613209575f5ffd5b6132158b828c01613152565b999c989b5096995094979396929594505050565b606080825284519082018190525f9060208601906080840190835b81811015613262578351835260209384019390920191600101613244565b5050838103602080860191909152865180835291810192508601905f5b818110156132a157825161ffff1684526020938401939092019160010161327f565b505050604092909201929092529392505050565b5f5f5f5f5f5f5f5f5f6101008a8c0312156132ce575f5ffd5b89356132d981612e27565b985060208a01356132e981612e27565b975060408a0135965060608a013561330081612e27565b955060808a013561331081612e27565b945060a08a0135935060c08a0135925060e08a01356001600160401b03811115613338575f5ffd5b612f388c828d01613152565b5f5f5f5f5f60a08688031215613358575f5ffd5b853561336381612e27565b9450602086013561337381612e27565b935060408601359250606086013561338a81612e27565b915060808601356001600160401b038111156133a4575f5ffd5b860161018081890312156133b6575f5ffd5b809150509295509295909350565b85815284602082015260a060408201525f6133e260a08301866130cb565b6001600160a01b0394909416606083015250608001529392505050565b5f6001600160401b0382111561341757613417612f4f565b5060051b60200190565b6001600160681b0381168114612e3b575f5ffd5b8035612e4981613421565b63ffffffff81168114612e3b575f5ffd5b8035612e4981613440565b61ffff81168114612e3b575f5ffd5b8035612e498161345c565b803562ffffff81168114612e49575f5ffd5b60ff81168114612e3b575f5ffd5b8035612e4981613488565b8015158114612e3b575f5ffd5b8035612e49816134a1565b5f60e082840312156134c9575f5ffd5b6134d1612f63565b905081356134de816134a1565b815260208201356134ee816134a1565b60208201526040820135613501816134a1565b60408201526060820135613514816134a1565b6060820152613525608083016134ae565b608082015261353660a083016134ae565b60a082015261354760c083016134ae565b60c082015292915050565b6001600160401b0381168114612e3b575f5ffd5b65ffffffffffff81168114612e3b575f5ffd5b8035612e4981613566565b5f82601f830112613593575f5ffd5b81356135a161308c826133ff565b80828252602082019150602060c084028601019250858311156135c2575f5ffd5b602085015b838110156136625760c081880312156135de575f5ffd5b6135e6612f8b565b81356135f181613440565b8152602082013561360181613552565b6020820152604082013561361481612e27565b60408201526060820135613627816134a1565b6060820152608082013561363a81613566565b608082015260a082013561364d81612e27565b60a0820152835260209092019160c0016135c7565b5095945050505050565b5f61367961308c846133ff565b838152905060208101600584901b830185811115613695575f5ffd5b835b818110156137ab5780356001600160401b038111156136b4575f5ffd5b850161022081890312156136c6575f5ffd5b6136ce612fad565b6136d782613435565b81526136e560208301613451565b60208201526136f660408301613451565b60408201526137076060830161346b565b606082015261371860808301612e3e565b608082015260a0828101359082015261373360c08301613476565b60c082015261374460e08301613496565b60e08201526137578961010084016134b9565b61010082015261376a6101e08301613451565b6101208201526102008201356001600160401b03811115613789575f5ffd5b6137958a828501613584565b6101408301525084525060209283019201613697565b5050509392505050565b5f5f5f5f5f5f60c087890312156137ca575f5ffd5b86356137d581612e27565b955060208701356137e581612e27565b94506040870135935060608701356137fc81612e27565b9250608087013561380c81612e27565b915060a08701356001600160401b03811115613826575f5ffd5b8701601f81018913613836575f5ffd5b6138458982356020840161366c565b9150509295509295509295565b5f5f5f5f5f5f60c08789031215613867575f5ffd5b86359550602087013561387981612e27565b95989597505050506040840135936060810135936080820135935060a0909101359150565b634e487b7160e01b5f52603260045260245ffd5b602080825281018290525f6001600160fb1b038311156138d0575f5ffd5b8260051b80856040850137919091016040019392505050565b80356138f4816134a1565b151582526020810135613906816134a1565b15156020830152604081013561391b816134a1565b1515604083015261392e606082016134ae565b15156060830152613941608082016134ae565b1515608083015261395460a082016134ae565b151560a083015261396760c082016134ae565b80151560c0840152505050565b5f5f8335601e19843603018112613989575f5ffd5b83016020810192503590506001600160401b038111156139a7575f5ffd5b60c08102360382131561127e575f5ffd5b8183526020830192505f815f5b84811015613a735781356139d881613440565b63ffffffff16865260208201356139ee81613552565b6001600160401b031660208701526040820135613a0a81612e27565b6001600160a01b031660408701526060820135613a26816134a1565b15156060870152613a3960808301613579565b65ffffffffffff166080870152613a5260a08301612e3e565b6001600160a01b031660a087015260c09586019591909101906001016139c5565b5093949350505050565b613a9782613a8a83613435565b6001600160681b03169052565b5f613aa460208301613451565b63ffffffff166020840152613abb60408301613451565b63ffffffff166040840152613ad26060830161346b565b61ffff166060840152613ae760808301612e3e565b6001600160a01b0316608084015260a08281013590840152613b0b60c08301613476565b62ffffff1660c0840152613b2160e08301613496565b60ff1660e0840152613b3a6101008085019084016138e9565b613b476101e08301613451565b63ffffffff166101e0840152613b61610200830183613974565b610220610200860152611e33610220860182846139b8565b602080825281018290525f6040600584901b83018101908301858361021e1936839003015b87821015613be257868503603f190184528235818112613bbc575f5ffd5b613bc8868b8301613a7d565b955050602083019250602084019350600182019150613b9e565b5092979650505050505050565b5f82601f830112613bfe575f5ffd5b8151613c0c61308c826133ff565b8082825260208201915060208360051b860101925085831115613c2d575f5ffd5b602085015b83811015613662578051835260209283019201613c32565b5f60208284031215613c5a575f5ffd5b81516001600160401b03811115613c6f575f5ffd5b61051d84828501613bef565b5f823561021e19833603018112613c90575f5ffd5b9190910192915050565b604081525f613cac6040830185613a7d565b905060018060a01b03831660208301529392505050565b5f611f0a36848461366c565b5f60208284031215613cdf575f5ffd5b8151611f0a81612e27565b5f60208284031215613cfa575f5ffd5b81516001600160401b03811115613d0f575f5ffd5b8201601f81018413613d1f575f5ffd5b8051613d2d61308c82613000565b818152856020838501011115613d41575f5ffd5b8160208401602083015e5f91810160200191909152949350505050565b5f60208284031215613d6e575f5ffd5b5051919050565b5f82601f830112613d84575f5ffd5b8151613d9261308c826133ff565b8082825260208201915060208360051b860101925085831115613db3575f5ffd5b602085015b83811015613662578051613dcb8161345c565b835260209283019201613db8565b5f5f60408385031215613dea575f5ffd5b8251613df5816134a1565b60208401519092506001600160401b03811115613e10575f5ffd5b613e1c85828601613d75565b9150509250929050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156110df576110df613e26565b5f60a0828403128015613e5e575f5ffd5b5060405160a081016001600160401b0381118282101715613e8157613e81612f4f565b6040528251613e8f816134a1565b81526020830151613e9f816134a1565b60208201526040830151613eb2816134a1565b60408201526060830151613ec5816134a1565b60608201526080830151613ed8816134a1565b60808201529392505050565b5f8151808452602084019350602083015f5b82811015613a7357815161ffff16865260209586019590910190600101613ef6565b838152606060208201525f613f306060830185613ee4565b90508215156040830152949350505050565b5f5f5f60608486031215613f54575f5ffd5b83516001600160401b03811115613f69575f5ffd5b613f7586828701613bef565b60208601516040909601519097959650949350505050565b5f82601f830112613f9c575f5ffd5b8135613faa61308c826133ff565b8082825260208201915060208360051b860101925085831115613fcb575f5ffd5b602085015b83811015613662578035835260209283019201613fd0565b5f5f60408385031215613ff9575f5ffd5b82356001600160401b0381111561400e575f5ffd5b8301601f8101851361401e575f5ffd5b803561402c61308c826133ff565b8082825260208201915060208360051b85010192508783111561404d575f5ffd5b6020840193505b828410156140785783356140678161345c565b825260209384019390910190614054565b945050505060208301356001600160401b03811115614095575f5ffd5b613e1c85828601613f8d565b818103818111156110df576110df613e26565b5f5f8335601e198436030181126140c9575f5ffd5b8301803591506001600160401b038211156140e2575f5ffd5b60200191503681900382131561127e575f5ffd5b5f60208284031215614106575f5ffd5b8135611f0a81612e27565b80511515825260208101511515602083015260408101511515604083015260608101511515606083015260808101511515608083015260a081015161415a60a084018215159052565b5060c0810151612c7360c084018215159052565b805163ffffffff1682526020808201516001600160401b0316908301526040808201516001600160a01b039081169184019190915260608083015115159084015260808083015165ffffffffffff169084015260a09182015116910152565b5f8151808452602084019350602083015f5b82811015613a73576141f286835161416e565b60c09590950194602091909101906001016141df565b80516001600160681b031682525f602082015161422d602085018263ffffffff169052565b506040820151614245604085018263ffffffff169052565b50606082015161425b606085018261ffff169052565b50608082015161427660808501826001600160a01b03169052565b5060a082015160a084015260c082015161429760c085018262ffffff169052565b5060e08201516142ac60e085018260ff169052565b506101008201516142c1610100850182614111565b5061012082015163ffffffff81166101e08501525061014082015161022061020085015261051d6102208501826141cd565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b8281101561434a57603f19878603018452614335858351614208565b94506020938401939190910190600101614319565b50929695505050505050565b604081525f613cac6040830185614208565b6001815b60018411156143a35780850481111561438757614387613e26565b600184161561439557908102905b60019390931c92800261436c565b935093915050565b5f826143b9575060016110df565b816143c557505f6110df565b81600181146143db57600281146143e557614401565b60019150506110df565b60ff8411156143f6576143f6613e26565b50506001821b6110df565b5060208310610133831016604e8410600b8410161715614424575081810a6110df565b6144305f198484614368565b805f190482111561444357614443613e26565b029392505050565b5f611f0a83836143ab565b634e487b7160e01b5f52601260045260245ffd5b5f8261447857614478614456565b500490565b80820281158282048414176110df576110df613e26565b5f600182016144a5576144a5613e26565b5060010190565b5f606082018583528460208401526060604084015280845180835260808501915060808160051b8601019250602086015f5b8281101561452657607f19878603018452815180518652602081015190506040602087015261451060408701826141cd565b95505060209384019391909101906001016144de565b509298975050505050505050565b5f81518060208401855e5f93019283525090919050565b5f61051d6145598386614534565b84614534565b5f6020828403121561456f575f5ffd5b81516001600160401b03811115614584575f5ffd5b8201601f81018413614594575f5ffd5b80516145a261308c826133ff565b80828252602082019150602060c084028501019250868311156145c3575f5ffd5b6020840193505b828410156146695760c084880312156145e1575f5ffd5b6145e9612f8b565b84516145f481613440565b8152602085015161460481613552565b6020820152604085015161461781612e27565b6040820152606085015161462a816134a1565b6060820152608085015161463d81613566565b608082015260a085015161465081612e27565b60a0820152825260c093909301926020909101906145ca565b9695505050505050565b85815260018060a01b0385166020820152836040820152821515606082015260c060808201525f60c082015260e060a08201525f61289160e08301846130cb565b84815260018060a01b0384166020820152826040820152608060608201525f61466960808301846130cb565b5f5f5f606084860312156146f2575f5ffd5b83516146fd81613421565b602085015190935061470e81613440565b604085015190925061471f81613488565b809150509250925092565b604081525f61473c6040830185613ee4565b82810360208401528084518083526020830191506020860192505f5b81811015614776578351835260209384019390920191600101614758565b50909695505050505050565b5f60208284031215614792575f5ffd5b8135611f0a81613440565b5f602082840312156147ad575f5ffd5b8135611f0a81613488565b5f5f604083850312156147c9575f5ffd5b82516001600160401b038111156147de575f5ffd5b6147ea85828601613d75565b92505060208301516001600160401b03811115614805575f5ffd5b613e1c85828601613bef565b5f8261481f5761481f614456565b500690565b81516001600160a01b031681526020808301519082015260408083015190820152606080830151908201526080808301519082015260a082810151610160830191611f2c9084018261416e565b61487b818661416e565b8360c082015261012060e08201525f6148986101208301856130cb565b905060018060a01b03831661010083015295945050505050565b6001600160401b038616815260018060a01b0385166020820152836040820152821515606082015260c060808201525f60c082015260e060a08201525f61289160e08301846130cb565b6001600160401b03871681526001600160a01b03868116602083015260408201869052841660608201526080810183905260e060a082018190525f90820181905261010060c08301819052614953908301846130cb565b98975050505050505050565b5f611f0a8284614534565b5f6020828403121561497a575f5ffd5b8151611f0a816134a1565b8681526001600160a01b03868116602083015260408201869052841660608201526080810183905260e060a082018190525f90820181905261010060c08301819052614953908301846130cb56fe66801396c588b520bd3bcfb2e638b273ffffea3c6015e2b900cecf1d4d341e5131323334353637383941424344454647484a4b4c4d4e505152535455565758595a6162636465666768696a6b6d6e6f707172737475767778797aa164736f6c634300081c000a",
713
+ "deployedBytecode": "0x7300000000000000000000000000000000000000003014608060405260043610610090575f3560e01c8063b720e93f11610063578063b720e93f1461012b578063b99df6321461014a578063f236ea0a1461016e578063f327b88d1461018d575f5ffd5b80634e2a0e43146100945780636ce4a1df146100b557806392801ea6146100de578063a403c797146100fd575b5f5ffd5b81801561009f575f5ffd5b506100b36100ae366004612e8e565b6101b5565b005b6100c86100c3366004613026565b6103a8565b6040516100d591906130f9565b60405180910390f35b8180156100e9575f5ffd5b506100b36100f836600461310b565b610525565b818015610108575f5ffd5b5061011c61011736600461318f565b6105ca565b6040516100d593929190613229565b818015610136575f5ffd5b506100b36101453660046132b5565b610819565b61015d610158366004613344565b610a8e565b6040516100d59594939291906133c4565b818015610179575f5ffd5b506100b36101883660046137b5565b610c57565b6101a061019b366004613852565b610d5f565b604080519283529015156020830152016100d5565b8015610282575f5b81811015610225578282828181106101d7576101d761389e565b6040516001600160a01b038a16815260209182029390930135927f832d89d991be5351d793c20faf4b7dd44f8aa9ce39e3cb160c6317de6fbba72992500160405180910390a26001016101bd565b506040516320512ba160e01b81526001600160a01b038a16906320512ba19061025490859085906004016138b2565b5f604051808303815f87803b15801561026b575f5ffd5b505af115801561027d573d5f5f3e3d5ffd5b505050505b821561039d5760405163052e4c3b60e31b81525f906001600160a01b038b169063297261d8906102b89088908890600401613b79565b5f604051808303815f875af11580156102d3573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526102fa9190810190613c4a565b90505f5b84811015610384578181815181106103185761031861389e565b60200260200101517f69a4ea1744cea8816339fc8993142d1fdad6432f24f361f65d34dd642aa46b9f8787848181106103535761035361389e565b90506020028101906103659190613c7b565b89604051610374929190613c9a565b60405180910390a26001016102fe565b5061039b898989610395888a613cc3565b85610e9e565b505b505050505050505050565b604051630fab094760e01b81526001600160a01b0384811660048301526060915f91871690630fab094790602401602060405180830381865afa1580156103f1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104159190613ccf565b90506001600160a01b0381161561049f57604051635e703e7160e01b81526001600160a01b03868116600483015260248201859052821690635e703e71906044015f60405180830381865afa158015610470573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526104979190810190613cea565b91505061051d565b604051630c8df17160e41b81526001600160a01b0386811660048301526024820185905261051991869189169063c8df171090604401602060405180830381865afa1580156104f0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105149190613d5e565b61107f565b9150505b949350505050565b604080518381526001600160a01b038316602082015284917f8ebf585439d8c6edc7dfa9c0e01fdbb1d4e68d9969dc5341ebd8bca5cd9a7bd4910160405180910390a260405163284d148160e11b815260048101849052602481018390526001600160a01b0385169063509a2902906044015f604051808303815f87803b1580156105ae575f5ffd5b505af11580156105c0573d5f5f3e3d5ffd5b5050505050505050565b60408051808201909152600381526270617960e81b6020909101526060805f80808061064f8d861b7fadc756803e4eb4ccfb136b73d5f72e3dc0d452d30ae1f4bc82af394c73ce71151889898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506110e592505050565b915091508115610675575f8180602001905181019061066e9190613dd9565b9650159350505b508a90506001600160a01b03808a16908b160361069d576106968882613e3a565b90506106a1565b8792505b604051634228826f60e11b81523060048201525f906001600160a01b038f169063845104de9060240160a060405180830381865afa1580156106e5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107099190613e4d565b60600151158015610718575082155b905084515f146107ce575f8e6001600160a01b031663eaa19ab384885f6040518463ffffffff1660e01b815260040161075393929190613f18565b5f604051808303815f875af115801561076e573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526107959190810190613f42565b919850935090508c8111156107cc57604051635d7462ab60e11b815260048101829052602481018e90526044015b60405180910390fd5b505b81158015906107db575080155b156107fc5760405163215ccc4760e11b8152600481018390526024016107c3565b6108068483613e3a565b9350505050985098509895505050505050565b5f8061082783850185613fe8565b91509150805182511461085a57815181516040516375c679c360e01b8152600481019290925260248201526044016107c3565b5f5f5b8251811015610895578281815181106108785761087861389e565b60200260200101518261088b9190613e3a565b915060010161085d565b508681146108c057604051631c50088560e11b815260048101889052602481018290526044016107c3565b6001600160a01b03881661eeee146109eb576040516370a0823160e01b81523060048201525f906001600160a01b038a16906370a0823190602401602060405180830381865afa158015610916573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061093a9190613d5e565b90506109488933308b611285565b6040516370a0823160e01b81523060048201525f9082906001600160a01b038c16906370a0823190602401602060405180830381865afa15801561098e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109b29190613d5e565b6109bc91906140a1565b90508881146109e85760405163c654ace960e01b8152600481018a9052602481018290526044016107c3565b50505b5f5b8351811015610a7f57828181518110610a0857610a0861389e565b60200260200101515f03610a1e576001016109ed565b5f60a0858381518110610a3357610a3361389e565b602002602001015161ffff16901b8b6001600160a01b0316179050610a768e8e8e8d85898881518110610a6857610a6861389e565b60200260200101518e6112c1565b506001016109ed565b50505050505050505050505050565b5f8060608180610aad8a308b610aa86101608b018b6140b4565b6115e5565b90945092508315610acb57610ac584848a8a8a61193c565b90945092505b610ae161012087013560a0880135868d30611d8b565b94508315801590610af5575060a086013515155b8015610b675750604051634228826f60e11b81523060048201526001600160a01b038b169063845104de9060240160a060405180830381865afa158015610b3e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b629190613e4d565b608001515b15610b8357610b806101208701358560a0890135611e3c565b90505b610b95610120870161010088016140f6565b91505f80610c047ff7999d69b76834e7cc9d127cf1983bd001a90e7a0eacd792dddf8770f08d9166610bcb6101608b018b6140b4565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506110e592505050565b91509150818015610c1757506020815110155b15610c48575f81806020019051810190610c319190613ccf565b90506001600160a01b03811615610c46578094505b505b50509550955095509550959050565b60405163052e4c3b60e31b81525f906001600160a01b0388169063297261d890610c859085906004016142f3565b5f604051808303815f875af1158015610ca0573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610cc79190810190613c4a565b90505f5b8251811015610d4857818181518110610ce657610ce661389e565b60200260200101517f69a4ea1744cea8816339fc8993142d1fdad6432f24f361f65d34dd642aa46b9f848381518110610d2157610d2161389e565b602002602001015186604051610d38929190614356565b60405180910390a2600101610ccb565b50610d568686868585610e9e565b50505050505050565b5f8063ffffffff881660ff60208a901c16818603610ddf57808503610d8c57866001935093505050610e93565b80851115610dc057610d9e81866140a1565b610da990600a61444b565b610db3908861446a565b6001935093505050610e93565b610dca85826140a1565b610dd590600a61444b565b610db3908861447d565b6001600160a01b038916610dfa575f5f935093505050610e93565b610e8a87610e0983600a61444b565b604051631df139fd60e11b8152600481018c9052602481018a905260448101869052606481018990526001600160a01b038d1690633be273fa90608401602060405180830381865afa158015610e61573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e859190613d5e565b611e3c565b93506001925050505b965096945050505050565b5f5f5b8351811015610ee657838181518110610ebc57610ebc61389e565b60200260200101516101400151515f14610ede5781610eda81614494565b9250505b600101610ea1565b50805f03610ef45750611078565b5f816001600160401b03811115610f0d57610f0d612f4f565b604051908082528060200260200182016040528015610f5257816020015b604080518082019091525f815260606020820152815260200190600190039081610f2b5790505b5090505f5f5b855181101561101657858181518110610f7357610f7361389e565b60200260200101516101400151515f1461100e57604051806040016040528060a0878481518110610fa657610fa661389e565b6020026020010151901b896001600160a01b0316178152602001878381518110610fd257610fd261389e565b60200260200101516101400151815250838381518110610ff457610ff461389e565b6020026020010181905250818061100a90614494565b9250505b600101610f58565b50604051638a36dffd60e01b81526001600160a01b03891690638a36dffd90611047908a905f9087906004016144ac565b5f604051808303815f87803b15801561105e575f5ffd5b505af1158015611070573d5f5f3e3d5ffd5b505050505050505b5050505050565b604051609160f51b6020820152602281018290526060905f9060420160405160208183030381529060405290505f6110b682611f11565b905084816040516020016110cb92919061454b565b604051602081830303815290604052925050505b92915050565b5f6060602583511161110857505060408051602081019091525f8082529061127e565b5f8361111660046020613e3a565b815181106111265761112661389e565b0160209081015160f81c91505b5f85611140600484613e3a565b815181106111505761115061389e565b01602001516001600160f81b03191614801590611176575061117360208361447d565b81105b1561127b575f85611188600484613e3a565b815181106111985761119861389e565b016020908101518784019091015160f89190911c91506001600160e01b031980891690821603611271575f6111ce60208661447d565b6111d9600986613e3a565b10158061120e5750876111ed600986613e3a565b815181106111fd576111fd61389e565b01602001516001600160f81b031916155b61124757602088611220600987613e3a565b815181106112305761123061389e565b0160200151611242919060f81c61447d565b61124a565b87515b905060016112638961125d60208761447d565b8461209d565b96509650505050505061127e565b5050600501611133565b50505b9250929050565b6112938484848460016120e9565b6112bb57604051635274afe760e01b81526001600160a01b03851660048201526024016107c3565b50505050565b6040516369e11cc560e01b8152600481018690525f6024820181905260448201859052906001600160a01b038816906369e11cc5906064015f60405180830381865afa158015611313573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261133a919081019061455f565b5f939091506001600160a01b03861661eeee1490633b9aca0090855b84518110156113fa575f61138d838784815181106113765761137661389e565b60200260200101515f015163ffffffff1686611e3c565b905080156113c95780830392506113c28d8784815181106113b0576113b061389e565b60200260200101518c848f8e8d612156565b8103880197505b8582815181106113db576113db61389e565b60209081029190910101515163ffffffff169093039250600101611356565b506114058682613e3a565b905080156115d857604051630862026560e41b8152600481018a90526001600160a01b0389811660248301525f91908d1690638620265090604401602060405180830381865afa15801561145b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061147f9190613ccf565b90506001600160a01b0381166114c15760405163200bf9ff60e11b8152600481018b90526001600160a01b038a166024820152604481018390526064016107c3565b831561158c57806001600160a01b0316639e6eec05838c8c865f60405180602001604052805f8152506040518763ffffffff1660e01b815260040161150a959493929190614673565b5f604051808303818588803b158015611521575f5ffd5b505af193505050508015611533575060015b611587573d808015611560576040519150601f19603f3d011682016040523d82523d5f602084013e611565565b606091505b508a8a84836040516333e3da8b60e11b81526004016107c394939291906146b4565b611070565b5f5f61159a838c8e8761289c565b9150915080515f1415806115ae5750838214155b156115d4578b8b85836040516333e3da8b60e11b81526004016107c394939291906146b4565b5050505b5050505050505050505050565b60408051808201909152600381526270617960e81b6020909101525f606080828061166988841b7fadc756803e4eb4ccfb136b73d5f72e3dc0d452d30ae1f4bc82af394c73ce71151888888080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506110e592505050565b915091508161168e575f60405180602001604052805f81525094509450505050611932565b808060200190518101906116a29190613dd9565b905080935050505080515f036116ca57505060408051602081019091525f8082529150611932565b5f81516001600160401b038111156116e4576116e4612f4f565b60405190808252806020026020018201604052801561170d578160200160208202803683370190505b5090505f82516001600160401b0381111561172a5761172a612f4f565b604051908082528060200260200182016040528015611753578160200160208202803683370190505b5090505f5f5b84518110156118fb575f5f5f8e6001600160a01b0316631923fe698f8a87815181106117875761178761389e565b60200260200101516040518363ffffffff1660e01b81526004016117c49291906001600160a01b0392909216825261ffff16602082015260400190565b606060405180830381865afa1580156117df573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061180391906146e0565b9250925092508163ffffffff165f146118ed576001600160681b03831660ff821615611845576118388160ff841660c8611e3c565b61184290826140a1565b90505b8885815181106118575761185761389e565b60200260200101518887815181106118715761187161389e565b61ffff909216602092830291909101909101526118998163ffffffff8516633b9aca00611e3c565b8787815181106118ab576118ab61389e565b6020026020010181815250508686815181106118c9576118c961389e565b60200260200101518b6118dc9190613e3a565b9a50856118e881614494565b965050505b836001019350505050611759565b50801561192d57808352808252828260405160200161191b92919061472a565b60405160208183030381529060405294505b505050505b9550959350505050565b848460ff602086901c1663ffffffff861661195d60a0860160808701614782565b63ffffffff1614611b0b576001600160a01b03851661197f575f925050611932565b5f6001600160a01b038616633be273fa60c08701356119a460a0890160808a01614782565b63ffffffff8b166119bb60808b0160608c0161479d565b6040516001600160e01b031960e087901b168152600481019490945263ffffffff929092166024840152604483015260ff166064820152608401602060405180830381865afa158015611a10573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a349190613d5e565b90505f611a4283600a61444b565b90505f5f85806020019051810190611a5a91906147b8565b915091505f96505f5b8151811015611add57611a90828281518110611a8157611a8161389e565b60200260200101518686611e3c565b828281518110611aa257611aa261389e565b602002602001018181525050818181518110611ac057611ac061389e565b602002602001015188611ad39190613e3a565b9750600101611a63565b508181604051602001611af192919061472a565b604051602081830303815290604052955050505050611c98565b80611b1c608086016060870161479d565b60ff1614611c98575f5f83806020019051810190611b3a91906147b8565b915091505f94505f5b8151811015611c705783611b5d6080890160608a0161479d565b60ff161115611bd65783611b776080890160608a0161479d565b60ff16611b8491906140a1565b611b8f90600a61444b565b828281518110611ba157611ba161389e565b6020026020010151611bb3919061447d565b828281518110611bc557611bc561389e565b602002602001018181525050611c41565b611be6608088016060890161479d565b611bf39060ff16856140a1565b611bfe90600a61444b565b828281518110611c1057611c1061389e565b6020026020010151611c22919061446a565b828281518110611c3457611c3461389e565b6020026020010181815250505b818181518110611c5357611c5361389e565b602002602001015186611c669190613e3a565b9550600101611b43565b508181604051602001611c8492919061472a565b604051602081830303815290604052935050505b60a0840135831115611d8057815115611d78575f5f83806020019051810190611cc191906147b8565b5f969193509150855b8251811015611d4b57611cfe838281518110611ce857611ce861389e565b6020026020010151896040016060013584611e3c565b838281518110611d1057611d1061389e565b602002602001018181525050828181518110611d2e57611d2e61389e565b602002602001015187611d419190613e3a565b9650600101611cca565b508282604051602001611d5f92919061472a565b6040516020818303038152906040529450505050611d80565b60a084013592505b509550959350505050565b5f831580611e015750604051634228826f60e11b81526001600160a01b03838116600483015284169063845104de9060240160a060405180830381865afa158015611dd8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dfc9190613e4d565b608001515b15611e0d575084611e33565b83851115611e3057611e2986611e2386886140a1565b87611e3c565b9050611e33565b505f5b95945050505050565b5f80805f19858709858702925082811083820303915050805f03611e7357838281611e6957611e69614456565b0492505050611f0a565b838110611ea457604051630c740aef60e31b81526004810187905260248101869052604481018590526064016107c3565b5f848688098519600190810187169687900496828603819004959092119093035f82900391909104909201919091029190911760038402600290811880860282030280860282030280860282030280860282030280860282030280860290910302029150505b9392505050565b606081515f03611f3357604080515f80825260208201909252905b5092915050565b60408051602e8082526105e082019092525f91602082016105c0803683370190505090505f815f81518110611f6a57611f6a61389e565b60ff9092166020928302919091019091015282516001905f5b81811015612082575f868281518110611f9e57611f9e61389e565b016020015160f81c90505f5b8460ff16811015612027576008868281518110611fc957611fc961389e565b602002602001015160ff16901b82611fe19190613e3a565b9150611fee603a83614811565b8682815181106120005761200061389e565b60ff9092166020928302919091019091015261201d603a8361446a565b9150600101611faa565b505b80156120795761203a603a82614811565b858560ff168151811061204f5761204f61389e565b60ff90921660209283029190910190910152600190930192612072603a8261446a565b9050612029565b50600101611f83565b50611e3361209861209385856129de565b612a83565b612b23565b60608282036040519150601f19601f6020838501010116604052808252836020860101602083015f5b838110156120de5782810151828201526020016120c6565b505050509392505050565b6040516323b872dd60e01b5f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f51148316612145578383151615612139573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b60a08601515f906001600160a01b0387811661eeee14911615612433575f6040518060c00160405280896001600160a01b031681526020018881526020018581526020018781526020018681526020018a815250905081156122835760a08901516040516318b4127160e31b815247916001600160a01b03169063c5a09388908a906121e6908690600401614824565b5f604051808303818588803b1580156121fd575f5ffd5b505af19350505050801561220f575060015b61226f573d80801561223c576040519150601f19603f3d011682016040523d82523d5f602084013e612241565b606091505b50875f5160206149d45f395f51905f528c8b84336040516122659493929190614871565b60405180910390a2505b61227947826140a1565b9350505050612891565b6040516370a0823160e01b81523060048201525f906001600160a01b038a16906370a0823190602401602060405180830381865afa1580156122c7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122eb9190613d5e565b90506122fc898b60a001518a612bf9565b8960a001516001600160a01b031663c5a09388836040518263ffffffff1660e01b815260040161232c9190614824565b5f604051808303815f87803b158015612343575f5ffd5b505af1925050508015612354575060015b6123b4573d808015612381576040519150601f19603f3d011682016040523d82523d5f602084013e612386565b606091505b50875f5160206149d45f395f51905f528c8b84336040516123aa9493929190614871565b60405180910390a2505b6123c3898b60a001515f612bf9565b6040516370a0823160e01b81523060048201526001600160a01b038a16906370a0823190602401602060405180830381865afa158015612405573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124299190613d5e565b61227990826140a1565b60208801516001600160401b031615612714576020880151604051630862026560e41b81526001600160401b0390911660048201526001600160a01b0388811660248301525f91908b1690638620265090604401602060405180830381865afa1580156124a2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124c69190613ccf565b90506001600160a01b0381166124e0575f92505050612891565b88606001511561262e5781156125d357806001600160a01b0316639e6eec05888b602001518b8b5f60405180602001604052805f8152506040518763ffffffff1660e01b81526004016125379594939291906148b2565b5f604051808303818588803b15801561254e575f5ffd5b505af193505050508015612560575060015b6125c9573d80801561258d576040519150601f19603f3d011682016040523d82523d5f602084013e612592565b606091505b50865f5160206149d45f395f51905f528b8a84336040516125b69493929190614871565b60405180910390a25f9350505050612891565b8692505050612891565b60606125ee828a8c602001516001600160401b03168b61289c565b805191955091501561262657865f5160206149d45f395f51905f528b8a843360405161261d9493929190614871565b60405180910390a25b505050612891565b81156126f457806001600160a01b031663fef43257888b602001518b8b8e604001515f60405180602001604052805f8152506040518863ffffffff1660e01b8152600401612681969594939291906148fc565b60206040518083038185885af1935050505080156126bc575060408051601f3d908101601f191682019092526126b991810190613d5e565b60015b6126e9573d80801561258d576040519150601f19603f3d011682016040523d82523d5f602084013e612592565b508692505050612891565b60606125ee828a8c602001516001600160401b03168b8e60400151612c78565b60408801516001600160a01b03161561288c578015612798575f88604001516001600160a01b0316876040515f6040518083038185875af1925050503d805f811461277a576040519150601f19603f3d011682016040523d82523d5f602084013e61277f565b606091505b5050905080612792575f92505050612891565b50612883565b5f5f886001600160a01b03168a60400151896040516024016127cf9291906001600160a01b03929092168252602082015260400190565b60408051601f198184030181529181526020820180516001600160e01b031663a9059cbb60e01b17905251612804919061495f565b5f604051808303815f865af19150503d805f811461283d576040519150601f19603f3d011682016040523d82523d5f602084013e612842565b606091505b5091509150811580612870575080511580159061287057508080602001905181019061286e919061496a565b155b15612880575f9350505050612891565b50505b85915050612891565b5f9150505b979650505050505050565b5f60606128aa858785612bf9565b604080516020810182525f8082529151639e6eec0560e01b81526001600160a01b03891691639e6eec05916128ea9189918b918a91889190600401614673565b5f604051808303815f87803b158015612901575f5ffd5b505af1925050508015612912575060015b61294c573d80801561293f576040519150601f19603f3d011682016040523d82523d5f602084013e612944565b606091505b509150612950565b5060015b80156129c957604051636eb1769f60e11b81523060048201526001600160a01b03888116602483015287169063dd62ed3e90604401602060405180830381865afa1580156129a0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129c49190613d5e565b840392505b6129d486885f612bf9565b5094509492505050565b60605f8260ff166001600160401b038111156129fc576129fc612f4f565b604051908082528060200260200182016040528015612a25578160200160208202803683370190505b5090505f5b8360ff16811015612a7b57848181518110612a4757612a4761389e565b6020026020010151828281518110612a6157612a6161389e565b60ff90921660209283029190910190910152600101612a2a565b509392505050565b80516060905f816001600160401b03811115612aa157612aa1612f4f565b604051908082528060200260200182016040528015612aca578160200160208202803683370190505b5090505f5b82811015612a7b57848160018751030381518110612aef57612aef61389e565b6020026020010151828281518110612b0957612b0961389e565b60ff90921660209283029190910190910152600101612acf565b80516060905f816001600160401b03811115612b4157612b41612f4f565b6040519080825280601f01601f191660200182016040528015612b6b576020820181803683370190505b5090505f5b82811015612a7b576040518060600160405280603a81526020016149f4603a9139858281518110612ba357612ba361389e565b602002602001015160ff1681518110612bbe57612bbe61389e565b602001015160f81c60f81b828281518110612bdb57612bdb61389e565b60200101906001600160f81b03191690815f1a905350600101612b70565b612c058383835f612dc5565b612c7357612c1683835f6001612dc5565b612c3e57604051635274afe760e01b81526001600160a01b03841660048201526024016107c3565b612c4b8383836001612dc5565b612c7357604051635274afe760e01b81526001600160a01b03841660048201526024016107c3565b505050565b5f6060612c86868886612bf9565b604080516020810182525f808252915163fef4325760e01b81526001600160a01b038a169163fef4325791612cc7918a918c918b918b918991600401614985565b6020604051808303815f875af1925050508015612d01575060408051601f3d908101601f19168201909252612cfe91810190613d5e565b60015b612d3b573d808015612d2e576040519150601f19603f3d011682016040523d82523d5f602084013e612d33565b606091505b509150612d41565b50600190505b8015612dba57604051636eb1769f60e11b81523060048201526001600160a01b03898116602483015288169063dd62ed3e90604401602060405180830381865afa158015612d91573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612db59190613d5e565b850392505b611d8087895f612bf9565b60405163095ea7b360e01b5f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f51148316612e1b578383151615612e0f573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b6001600160a01b0381168114612e3b575f5ffd5b50565b8035612e4981612e27565b919050565b5f5f83601f840112612e5e575f5ffd5b5081356001600160401b03811115612e74575f5ffd5b6020830191508360208260051b850101111561127e575f5ffd5b5f5f5f5f5f5f5f5f5f60e08a8c031215612ea6575f5ffd5b8935612eb181612e27565b985060208a0135612ec181612e27565b975060408a0135965060608a0135612ed881612e27565b955060808a0135612ee881612e27565b945060a08a01356001600160401b03811115612f02575f5ffd5b612f0e8c828d01612e4e565b90955093505060c08a01356001600160401b03811115612f2c575f5ffd5b612f388c828d01612e4e565b915080935050809150509295985092959850929598565b634e487b7160e01b5f52604160045260245ffd5b60405160e081016001600160401b0381118282101715612f8557612f85612f4f565b60405290565b60405160c081016001600160401b0381118282101715612f8557612f85612f4f565b60405161016081016001600160401b0381118282101715612f8557612f85612f4f565b604051601f8201601f191681016001600160401b0381118282101715612ff857612ff8612f4f565b604052919050565b5f6001600160401b0382111561301857613018612f4f565b50601f01601f191660200190565b5f5f5f5f60808587031215613039575f5ffd5b843561304481612e27565b9350602085013561305481612e27565b925060408501356001600160401b0381111561306e575f5ffd5b8501601f8101871361307e575f5ffd5b803561309161308c82613000565b612fd0565b8181528860208385010111156130a5575f5ffd5b816020840160208301375f91810160200191909152949793965093946060013593505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f611f0a60208301846130cb565b5f5f5f5f6080858703121561311e575f5ffd5b843561312981612e27565b93506020850135925060408501359150606085013561314781612e27565b939692955090935050565b5f5f83601f840112613162575f5ffd5b5081356001600160401b03811115613178575f5ffd5b60208301915083602082850101111561127e575f5ffd5b5f5f5f5f5f5f5f5f60e0898b0312156131a6575f5ffd5b88356131b181612e27565b975060208901356131c181612e27565b96506040890135955060608901356131d881612e27565b945060808901356131e881612e27565b935060a0890135925060c08901356001600160401b03811115613209575f5ffd5b6132158b828c01613152565b999c989b5096995094979396929594505050565b606080825284519082018190525f9060208601906080840190835b81811015613262578351835260209384019390920191600101613244565b5050838103602080860191909152865180835291810192508601905f5b818110156132a157825161ffff1684526020938401939092019160010161327f565b505050604092909201929092529392505050565b5f5f5f5f5f5f5f5f5f6101008a8c0312156132ce575f5ffd5b89356132d981612e27565b985060208a01356132e981612e27565b975060408a0135965060608a013561330081612e27565b955060808a013561331081612e27565b945060a08a0135935060c08a0135925060e08a01356001600160401b03811115613338575f5ffd5b612f388c828d01613152565b5f5f5f5f5f60a08688031215613358575f5ffd5b853561336381612e27565b9450602086013561337381612e27565b935060408601359250606086013561338a81612e27565b915060808601356001600160401b038111156133a4575f5ffd5b860161018081890312156133b6575f5ffd5b809150509295509295909350565b85815284602082015260a060408201525f6133e260a08301866130cb565b6001600160a01b0394909416606083015250608001529392505050565b5f6001600160401b0382111561341757613417612f4f565b5060051b60200190565b6001600160681b0381168114612e3b575f5ffd5b8035612e4981613421565b63ffffffff81168114612e3b575f5ffd5b8035612e4981613440565b61ffff81168114612e3b575f5ffd5b8035612e498161345c565b803562ffffff81168114612e49575f5ffd5b60ff81168114612e3b575f5ffd5b8035612e4981613488565b8015158114612e3b575f5ffd5b8035612e49816134a1565b5f60e082840312156134c9575f5ffd5b6134d1612f63565b905081356134de816134a1565b815260208201356134ee816134a1565b60208201526040820135613501816134a1565b60408201526060820135613514816134a1565b6060820152613525608083016134ae565b608082015261353660a083016134ae565b60a082015261354760c083016134ae565b60c082015292915050565b6001600160401b0381168114612e3b575f5ffd5b65ffffffffffff81168114612e3b575f5ffd5b8035612e4981613566565b5f82601f830112613593575f5ffd5b81356135a161308c826133ff565b80828252602082019150602060c084028601019250858311156135c2575f5ffd5b602085015b838110156136625760c081880312156135de575f5ffd5b6135e6612f8b565b81356135f181613440565b8152602082013561360181613552565b6020820152604082013561361481612e27565b60408201526060820135613627816134a1565b6060820152608082013561363a81613566565b608082015260a082013561364d81612e27565b60a0820152835260209092019160c0016135c7565b5095945050505050565b5f61367961308c846133ff565b838152905060208101600584901b830185811115613695575f5ffd5b835b818110156137ab5780356001600160401b038111156136b4575f5ffd5b850161022081890312156136c6575f5ffd5b6136ce612fad565b6136d782613435565b81526136e560208301613451565b60208201526136f660408301613451565b60408201526137076060830161346b565b606082015261371860808301612e3e565b608082015260a0828101359082015261373360c08301613476565b60c082015261374460e08301613496565b60e08201526137578961010084016134b9565b61010082015261376a6101e08301613451565b6101208201526102008201356001600160401b03811115613789575f5ffd5b6137958a828501613584565b6101408301525084525060209283019201613697565b5050509392505050565b5f5f5f5f5f5f60c087890312156137ca575f5ffd5b86356137d581612e27565b955060208701356137e581612e27565b94506040870135935060608701356137fc81612e27565b9250608087013561380c81612e27565b915060a08701356001600160401b03811115613826575f5ffd5b8701601f81018913613836575f5ffd5b6138458982356020840161366c565b9150509295509295509295565b5f5f5f5f5f5f60c08789031215613867575f5ffd5b86359550602087013561387981612e27565b95989597505050506040840135936060810135936080820135935060a0909101359150565b634e487b7160e01b5f52603260045260245ffd5b602080825281018290525f6001600160fb1b038311156138d0575f5ffd5b8260051b80856040850137919091016040019392505050565b80356138f4816134a1565b151582526020810135613906816134a1565b15156020830152604081013561391b816134a1565b1515604083015261392e606082016134ae565b15156060830152613941608082016134ae565b1515608083015261395460a082016134ae565b151560a083015261396760c082016134ae565b80151560c0840152505050565b5f5f8335601e19843603018112613989575f5ffd5b83016020810192503590506001600160401b038111156139a7575f5ffd5b60c08102360382131561127e575f5ffd5b8183526020830192505f815f5b84811015613a735781356139d881613440565b63ffffffff16865260208201356139ee81613552565b6001600160401b031660208701526040820135613a0a81612e27565b6001600160a01b031660408701526060820135613a26816134a1565b15156060870152613a3960808301613579565b65ffffffffffff166080870152613a5260a08301612e3e565b6001600160a01b031660a087015260c09586019591909101906001016139c5565b5093949350505050565b613a9782613a8a83613435565b6001600160681b03169052565b5f613aa460208301613451565b63ffffffff166020840152613abb60408301613451565b63ffffffff166040840152613ad26060830161346b565b61ffff166060840152613ae760808301612e3e565b6001600160a01b0316608084015260a08281013590840152613b0b60c08301613476565b62ffffff1660c0840152613b2160e08301613496565b60ff1660e0840152613b3a6101008085019084016138e9565b613b476101e08301613451565b63ffffffff166101e0840152613b61610200830183613974565b610220610200860152611e33610220860182846139b8565b602080825281018290525f6040600584901b83018101908301858361021e1936839003015b87821015613be257868503603f190184528235818112613bbc575f5ffd5b613bc8868b8301613a7d565b955050602083019250602084019350600182019150613b9e565b5092979650505050505050565b5f82601f830112613bfe575f5ffd5b8151613c0c61308c826133ff565b8082825260208201915060208360051b860101925085831115613c2d575f5ffd5b602085015b83811015613662578051835260209283019201613c32565b5f60208284031215613c5a575f5ffd5b81516001600160401b03811115613c6f575f5ffd5b61051d84828501613bef565b5f823561021e19833603018112613c90575f5ffd5b9190910192915050565b604081525f613cac6040830185613a7d565b905060018060a01b03831660208301529392505050565b5f611f0a36848461366c565b5f60208284031215613cdf575f5ffd5b8151611f0a81612e27565b5f60208284031215613cfa575f5ffd5b81516001600160401b03811115613d0f575f5ffd5b8201601f81018413613d1f575f5ffd5b8051613d2d61308c82613000565b818152856020838501011115613d41575f5ffd5b8160208401602083015e5f91810160200191909152949350505050565b5f60208284031215613d6e575f5ffd5b5051919050565b5f82601f830112613d84575f5ffd5b8151613d9261308c826133ff565b8082825260208201915060208360051b860101925085831115613db3575f5ffd5b602085015b83811015613662578051613dcb8161345c565b835260209283019201613db8565b5f5f60408385031215613dea575f5ffd5b8251613df5816134a1565b60208401519092506001600160401b03811115613e10575f5ffd5b613e1c85828601613d75565b9150509250929050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156110df576110df613e26565b5f60a0828403128015613e5e575f5ffd5b5060405160a081016001600160401b0381118282101715613e8157613e81612f4f565b6040528251613e8f816134a1565b81526020830151613e9f816134a1565b60208201526040830151613eb2816134a1565b60408201526060830151613ec5816134a1565b60608201526080830151613ed8816134a1565b60808201529392505050565b5f8151808452602084019350602083015f5b82811015613a7357815161ffff16865260209586019590910190600101613ef6565b838152606060208201525f613f306060830185613ee4565b90508215156040830152949350505050565b5f5f5f60608486031215613f54575f5ffd5b83516001600160401b03811115613f69575f5ffd5b613f7586828701613bef565b60208601516040909601519097959650949350505050565b5f82601f830112613f9c575f5ffd5b8135613faa61308c826133ff565b8082825260208201915060208360051b860101925085831115613fcb575f5ffd5b602085015b83811015613662578035835260209283019201613fd0565b5f5f60408385031215613ff9575f5ffd5b82356001600160401b0381111561400e575f5ffd5b8301601f8101851361401e575f5ffd5b803561402c61308c826133ff565b8082825260208201915060208360051b85010192508783111561404d575f5ffd5b6020840193505b828410156140785783356140678161345c565b825260209384019390910190614054565b945050505060208301356001600160401b03811115614095575f5ffd5b613e1c85828601613f8d565b818103818111156110df576110df613e26565b5f5f8335601e198436030181126140c9575f5ffd5b8301803591506001600160401b038211156140e2575f5ffd5b60200191503681900382131561127e575f5ffd5b5f60208284031215614106575f5ffd5b8135611f0a81612e27565b80511515825260208101511515602083015260408101511515604083015260608101511515606083015260808101511515608083015260a081015161415a60a084018215159052565b5060c0810151612c7360c084018215159052565b805163ffffffff1682526020808201516001600160401b0316908301526040808201516001600160a01b039081169184019190915260608083015115159084015260808083015165ffffffffffff169084015260a09182015116910152565b5f8151808452602084019350602083015f5b82811015613a73576141f286835161416e565b60c09590950194602091909101906001016141df565b80516001600160681b031682525f602082015161422d602085018263ffffffff169052565b506040820151614245604085018263ffffffff169052565b50606082015161425b606085018261ffff169052565b50608082015161427660808501826001600160a01b03169052565b5060a082015160a084015260c082015161429760c085018262ffffff169052565b5060e08201516142ac60e085018260ff169052565b506101008201516142c1610100850182614111565b5061012082015163ffffffff81166101e08501525061014082015161022061020085015261051d6102208501826141cd565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b8281101561434a57603f19878603018452614335858351614208565b94506020938401939190910190600101614319565b50929695505050505050565b604081525f613cac6040830185614208565b6001815b60018411156143a35780850481111561438757614387613e26565b600184161561439557908102905b60019390931c92800261436c565b935093915050565b5f826143b9575060016110df565b816143c557505f6110df565b81600181146143db57600281146143e557614401565b60019150506110df565b60ff8411156143f6576143f6613e26565b50506001821b6110df565b5060208310610133831016604e8410600b8410161715614424575081810a6110df565b6144305f198484614368565b805f190482111561444357614443613e26565b029392505050565b5f611f0a83836143ab565b634e487b7160e01b5f52601260045260245ffd5b5f8261447857614478614456565b500490565b80820281158282048414176110df576110df613e26565b5f600182016144a5576144a5613e26565b5060010190565b5f606082018583528460208401526060604084015280845180835260808501915060808160051b8601019250602086015f5b8281101561452657607f19878603018452815180518652602081015190506040602087015261451060408701826141cd565b95505060209384019391909101906001016144de565b509298975050505050505050565b5f81518060208401855e5f93019283525090919050565b5f61051d6145598386614534565b84614534565b5f6020828403121561456f575f5ffd5b81516001600160401b03811115614584575f5ffd5b8201601f81018413614594575f5ffd5b80516145a261308c826133ff565b80828252602082019150602060c084028501019250868311156145c3575f5ffd5b6020840193505b828410156146695760c084880312156145e1575f5ffd5b6145e9612f8b565b84516145f481613440565b8152602085015161460481613552565b6020820152604085015161461781612e27565b6040820152606085015161462a816134a1565b6060820152608085015161463d81613566565b608082015260a085015161465081612e27565b60a0820152825260c093909301926020909101906145ca565b9695505050505050565b85815260018060a01b0385166020820152836040820152821515606082015260c060808201525f60c082015260e060a08201525f61289160e08301846130cb565b84815260018060a01b0384166020820152826040820152608060608201525f61466960808301846130cb565b5f5f5f606084860312156146f2575f5ffd5b83516146fd81613421565b602085015190935061470e81613440565b604085015190925061471f81613488565b809150509250925092565b604081525f61473c6040830185613ee4565b82810360208401528084518083526020830191506020860192505f5b81811015614776578351835260209384019390920191600101614758565b50909695505050505050565b5f60208284031215614792575f5ffd5b8135611f0a81613440565b5f602082840312156147ad575f5ffd5b8135611f0a81613488565b5f5f604083850312156147c9575f5ffd5b82516001600160401b038111156147de575f5ffd5b6147ea85828601613d75565b92505060208301516001600160401b03811115614805575f5ffd5b613e1c85828601613bef565b5f8261481f5761481f614456565b500690565b81516001600160a01b031681526020808301519082015260408083015190820152606080830151908201526080808301519082015260a082810151610160830191611f2c9084018261416e565b61487b818661416e565b8360c082015261012060e08201525f6148986101208301856130cb565b905060018060a01b03831661010083015295945050505050565b6001600160401b038616815260018060a01b0385166020820152836040820152821515606082015260c060808201525f60c082015260e060a08201525f61289160e08301846130cb565b6001600160401b03871681526001600160a01b03868116602083015260408201869052841660608201526080810183905260e060a082018190525f90820181905261010060c08301819052614953908301846130cb565b98975050505050505050565b5f611f0a8284614534565b5f6020828403121561497a575f5ffd5b8151611f0a816134a1565b8681526001600160a01b03868116602083015260408201869052841660608201526080810183905260e060a082018190525f90820181905261010060c08301819052614953908301846130cb56fe66801396c588b520bd3bcfb2e638b273ffffea3c6015e2b900cecf1d4d341e5131323334353637383941424344454647484a4b4c4d4e505152535455565758595a6162636465666768696a6b6d6e6f707172737475767778797aa164736f6c634300081c000a",
714
+ "metadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"leftoverAmount\",\"type\":\"uint256\"}],\"type\":\"error\",\"name\":\"JB721TiersHookLib_NoTerminalForLeftover\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expectedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actualAmount\",\"type\":\"uint256\"}],\"type\":\"error\",\"name\":\"JB721TiersHookLib_SplitAmountMismatch\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"type\":\"error\",\"name\":\"JB721TiersHookLib_SplitFallbackFailed\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tierIdCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountCount\",\"type\":\"uint256\"}],\"type\":\"error\",\"name\":\"JB721TiersHookLib_SplitMetadataLengthMismatch\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expectedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"receivedAmount\",\"type\":\"uint256\"}],\"type\":\"error\",\"name\":\"JB721TiersHookLib_TokenTransferAmountMismatch\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"restrictedCost\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"freshValue\",\"type\":\"uint256\"}],\"type\":\"error\",\"name\":\"JB721TiersHook_CantBuyWithCredits\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"leftoverAmount\",\"type\":\"uint256\"}],\"type\":\"error\",\"name\":\"JB721TiersHook_Overspending\"},{\"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\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"type\":\"error\",\"name\":\"SafeERC20FailedOperation\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tierId\",\"type\":\"uint256\",\"indexed\":true},{\"internalType\":\"struct JB721TierConfig\",\"name\":\"tier\",\"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\"}]}],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\",\"indexed\":false}],\"type\":\"event\",\"name\":\"AddTier\",\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tierId\",\"type\":\"uint256\",\"indexed\":true},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\",\"indexed\":false}],\"type\":\"event\",\"name\":\"RemoveTier\",\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tierId\",\"type\":\"uint256\",\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"discountPercent\",\"type\":\"uint256\",\"indexed\":false},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\",\"indexed\":false}],\"type\":\"event\",\"name\":\"SetDiscountPercent\",\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\",\"indexed\":true},{\"internalType\":\"struct JBSplit\",\"name\":\"split\",\"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\"}],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false},{\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\",\"indexed\":false},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\",\"indexed\":false}],\"type\":\"event\",\"name\":\"SplitPayoutReverted\",\"anonymous\":false},{\"inputs\":[{\"internalType\":\"contract IJB721TiersHookStore\",\"name\":\"store\",\"type\":\"IJB721TiersHookStore\"},{\"internalType\":\"address\",\"name\":\"metadataIdTarget\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"packedPricingContext\",\"type\":\"uint256\"},{\"internalType\":\"contract IJBPrices\",\"name\":\"prices\",\"type\":\"IJBPrices\"},{\"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\":\"computeSplitsAndWeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSplitAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"splitMetadata\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"splitCreditWeight\",\"type\":\"uint256\"}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"packedPricingContext\",\"type\":\"uint256\"},{\"internalType\":\"contract IJBPrices\",\"name\":\"prices\",\"type\":\"IJBPrices\"},{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountCurrency\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountDecimals\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"normalizePaymentValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"}]},{\"inputs\":[{\"internalType\":\"contract IJB721TiersHookStore\",\"name\":\"store\",\"type\":\"IJB721TiersHookStore\"},{\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"baseUri\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"resolveTokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}]}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"adjustTiersFor(IJB721TiersHookStore,IJBSplits,uint256,address,address,JB721TierConfig[],uint256[])\":{\"details\":\"Called via DELEGATECALL from the hook, so events are emitted from the hook's address.\",\"params\":{\"caller\":\"The msg.sender of the original call (for event emission).\",\"hookAddress\":\"The hook address.\",\"projectId\":\"The project ID.\",\"splits\":\"The splits contract to register tier split groups in.\",\"store\":\"The 721 tiers hook store.\",\"tierIdsToRemove\":\"The tier IDs to remove.\",\"tiersToAdd\":\"The tier configs to add.\"}},\"computeSplitsAndWeight(IJB721TiersHookStore,address,uint256,IJBPrices,JBBeforePayRecordedContext)\":{\"details\":\"Called via DELEGATECALL from the hook; uses address(this) as the hook address.\",\"params\":{\"context\":\"The full payment context.\",\"metadataIdTarget\":\"The metadata ID target for resolving pay metadata.\",\"packedPricingContext\":\"The packed pricing context (currency, decimals).\",\"prices\":\"The prices contract used for currency conversion.\",\"store\":\"The 721 tiers hook store.\"},\"returns\":{\"beneficiary\":\"The resolved beneficiary address.\",\"splitCreditWeight\":\"The weight attributable to tier splits when `issueTokensForSplits` is true. Zero when splits are absent or `issueTokensForSplits` is false.\",\"splitMetadata\":\"Encoded per-tier breakdown (tierIds, amounts).\",\"totalSplitAmount\":\"The total amount to forward for splits.\",\"weight\":\"The adjusted weight for token minting.\"}},\"distributeAll(IJBDirectory,IJBSplits,uint256,address,address,uint256,uint256,bytes)\":{\"details\":\"For ERC-20 tokens, pulls from the terminal using the allowance it granted via _beforeTransferTo.\",\"params\":{\"amount\":\"The total amount to distribute.\",\"decimals\":\"The token decimals.\",\"directory\":\"The directory to look up terminals.\",\"encodedSplitData\":\"The encoded per-tier breakdown from hookMetadata.\",\"hookAddress\":\"The hook address (for computing split group IDs).\",\"projectId\":\"The project ID of the hook.\",\"splits\":\"The splits contract to read tier split groups from.\",\"token\":\"The token to distribute.\"}},\"normalizePaymentValue(uint256,IJBPrices,uint256,uint256,uint256,uint256)\":{\"params\":{\"amountCurrency\":\"The payment amount currency.\",\"amountDecimals\":\"The payment amount decimals.\",\"amountValue\":\"The payment amount value.\",\"packedPricingContext\":\"The packed pricing context (currency, decimals).\",\"prices\":\"The prices contract used for currency conversion.\",\"projectId\":\"The project ID.\"},\"returns\":{\"valid\":\"Whether the value is valid (false means no prices contract and currencies differ).\",\"value\":\"The normalized value.\"}},\"prepareMint(IJB721TiersHookStore,address,uint256,address,address,uint256,bytes)\":{\"details\":\"Called via DELEGATECALL from the hook; uses address(this) as the hook address. Reverts with JB721TiersHook_CantBuyWithCredits or JB721TiersHook_Overspending on failure.\",\"params\":{\"beneficiary\":\"The address to mint NFTs to and track credits for.\",\"metadataIdTarget\":\"The metadata ID target for resolving pay metadata.\",\"payCredits\":\"The beneficiary's current pay credits balance.\",\"payer\":\"The address that initiated the payment.\",\"payerMetadata\":\"The metadata provided by the payer.\",\"store\":\"The 721 tiers hook store.\",\"value\":\"The normalized payment value.\"},\"returns\":{\"newPayCredits\":\"The beneficiary's updated pay credits balance.\",\"tierIdsToMint\":\"The tier IDs corresponding to each minted token (empty if none).\",\"tokenIds\":\"The token IDs minted (empty if none).\"}},\"recordAddTiersFor(IJB721TiersHookStore,IJBSplits,uint256,address,address,JB721TierConfig[])\":{\"details\":\"Used during initialization when tier configs are in memory.\",\"params\":{\"caller\":\"The msg.sender of the original call (for event emission).\",\"hookAddress\":\"The hook address.\",\"projectId\":\"The project ID.\",\"splits\":\"The splits contract to register tier split groups in.\",\"store\":\"The 721 tiers hook store.\",\"tiersToAdd\":\"The tier configs to add.\"}},\"resolveTokenURI(IJB721TiersHookStore,address,string,uint256)\":{\"details\":\"Extracted to the library to keep JBIpfsDecoder bytecode out of the hook contract (EIP-170 compliance).\",\"params\":{\"baseUri\":\"The base URI for IPFS-based token URIs.\",\"hook\":\"The hook address.\",\"store\":\"The 721 tiers hook store.\",\"tokenId\":\"The token ID to resolve the URI for.\"},\"returns\":{\"_0\":\"The resolved token URI string.\"}},\"setDiscountPercentOf(IJB721TiersHookStore,uint256,uint256,address)\":{\"params\":{\"caller\":\"The msg.sender of the original call.\",\"discountPercent\":\"The discount percent to set.\",\"store\":\"The 721 tiers hook store.\",\"tierId\":\"The ID of the tier.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"adjustTiersFor(IJB721TiersHookStore,IJBSplits,uint256,address,address,JB721TierConfig[],uint256[])\":{\"notice\":\"Handles the full tier adjustment logic: removes tiers, adds tiers, emits events, and sets splits.\"},\"computeSplitsAndWeight(IJB721TiersHookStore,address,uint256,IJBPrices,JBBeforePayRecordedContext)\":{\"notice\":\"Computes split amounts, weight adjustment, and resolved beneficiary for a payment.\"},\"distributeAll(IJBDirectory,IJBSplits,uint256,address,address,uint256,uint256,bytes)\":{\"notice\":\"Pulls ERC-20 tokens from the terminal (if needed) and distributes forwarded funds to tier splits.\"},\"normalizePaymentValue(uint256,IJBPrices,uint256,uint256,uint256,uint256)\":{\"notice\":\"Normalizes a payment value based on the packed pricing context.\"},\"prepareMint(IJB721TiersHookStore,address,uint256,address,address,uint256,bytes)\":{\"notice\":\"Prepares NFT minting data for a payment: combines credits, decodes metadata, records mint, and checks overspending.\"},\"recordAddTiersFor(IJB721TiersHookStore,IJBSplits,uint256,address,address,JB721TierConfig[])\":{\"notice\":\"Records new tiers, emits events, and sets their split groups.\"},\"resolveTokenURI(IJB721TiersHookStore,address,string,uint256)\":{\"notice\":\"Resolves the token URI for a given NFT token ID.\"},\"setDiscountPercentOf(IJB721TiersHookStore,uint256,uint256,address)\":{\"notice\":\"Set the discount percent for a tier, emitting an event and recording it in the store.\"}},\"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/721-hook-v6/src/libraries/JB721TiersHookLib.sol\":\"JB721TiersHookLib\"},\"evmVersion\":\"cancun\",\"libraries\":{}},\"sources\":{\"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/libraries/JB721Constants.sol\":{\"keccak256\":\"0x3c6fbbcc8c43e6d48e932dbb76ee6e089ca9e1d39e1aa833ec917a41d1393d0f\",\"urls\":[\"bzz-raw://8709be977323d2642044f21d4a79e631b84652eee29f27817083b1e3785b2b02\",\"dweb:/ipfs/QmSQGoGePXKcuPZAYUT7JZX28dg4jJxLNbquLFKmBvjHA7\"],\"license\":\"MIT\"},\"node_modules/@bananapus/721-hook-v6/src/libraries/JB721TiersHookLib.sol\":{\"keccak256\":\"0xb7f5ecda551bf67c90fb1b9779fdb61a39deea0327e7263da857acd8f55ad729\",\"urls\":[\"bzz-raw://a22ebf46961a66eb2304cae97241af175d887be4567420d372aee0e9bc788edd\",\"dweb:/ipfs/QmSLmxq1iqFdZAcHAPQKLtvyQTP6bHfwb47GraR2mRMKwo\"],\"license\":\"MIT\"},\"node_modules/@bananapus/721-hook-v6/src/libraries/JBIpfsDecoder.sol\":{\"keccak256\":\"0xf03a2003a8b2a0e131233b29d5ec60c8bdcef08fa4fdba660f43d0e106c046b8\",\"urls\":[\"bzz-raw://49864bd095e2fa015a8928e62f612a2c798c9af378ce49929f23d3631c8c4a17\",\"dweb:/ipfs/QmNSDJAmDad6PVhgtgzt8S9zwN5GHXxrFyt7vLvEGf5dQs\"],\"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/core-v6/src/enums/JBApprovalStatus.sol\":{\"keccak256\":\"0x58f3eed8b6ecea6b640f4eb78a5a416ce8737f9155e350ef4077db422b3fca8f\",\"urls\":[\"bzz-raw://0b56bde97ef9d8ec2a3e464202c5d2fee9c39597485b3fb8baaeef971cc63bc8\",\"dweb:/ipfs/QmSdPaNfPm83yibuSvgLbaqgZw7LYkTLhacrxDagH3sprJ\"],\"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/IJBPayHook.sol\":{\"keccak256\":\"0x08599d439d898566b311bc4bedf7f0050ce25c86e246c43f673f3ab4d2457f21\",\"urls\":[\"bzz-raw://db19e95707920262c79197be9296fe381782220bfaf00b71df3a4271da83832f\",\"dweb:/ipfs/QmYzdomQzXNSk46U5vkiEnDErJJdR17deL4S6hPundstZd\"],\"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/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/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/IJBTokenUriResolver.sol\":{\"keccak256\":\"0xcbdb1448260ebea5937411516957ef199099e34ff997e7f2a617c2898f921994\",\"urls\":[\"bzz-raw://d1cbf97e5684c987be6703c096e8230d870fab25a23eec8d209cd082e3f2637b\",\"dweb:/ipfs/QmNmzeuQoFiaUTQAcV1tyJyjUYEJ3t7386zTw4ofT7HoZM\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/libraries/JBConstants.sol\":{\"keccak256\":\"0x5d4b095f3b94c52f89b9cf8a8104de0242497e61f1b32ddc82e78a9ba71a6d0f\",\"urls\":[\"bzz-raw://3ac3340339e0b6a7aae881781b2830f59e3f44114955e2f770172a9bffddc104\",\"dweb:/ipfs/QmV9pFGNGcknqHLEuc6rmC1YPwuwtsokjzh1WX8H2jmVRp\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/libraries/JBMetadataResolver.sol\":{\"keccak256\":\"0x8f671604390274457e0d13806f9ca9aab44c784f4492612771bada213ed261bd\",\"urls\":[\"bzz-raw://e10babd77a88bb1e9c09d5a99b3f165ce46cca4b348e23add2dc4d53aefe07d7\",\"dweb:/ipfs/QmTLc2R1o5W3hkxX8avYrWPtf1oMLTtmve1sPujAbtoUtz\"],\"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/JBAfterPayRecordedContext.sol\":{\"keccak256\":\"0xcf1761f48e4cbd6eeeb64bb19e434eff50a7f666b2116657f88f63d19620c6de\",\"urls\":[\"bzz-raw://842fe47a4ad56c830040864b458de398efd0cf82eb0add9349e792d0c8b0c275\",\"dweb:/ipfs/QmXBj6EVnzvVX8ZYa2ndyjoSZDGjpXxaoy7dBuoGMaAmRX\"],\"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/JBPayHookSpecification.sol\":{\"keccak256\":\"0x28f565b626774c36a990ac999f268fbaf9d7f7861e862fab1fb8301f2534e8d1\",\"urls\":[\"bzz-raw://a5d7375934179178febd3b412099b1a5ff42a154ce8b949df2c11b5f3cb3b80e\",\"dweb:/ipfs/QmXP5vVq8Z6HntiuMcPWfQURCKejyiyHLKYuMmzCuUJJtV\"],\"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/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/JBTokenAmount.sol\":{\"keccak256\":\"0xc61593d33d5ec30e695d382948a1b944d01e29a8f2bfd29f75ecebcdbc7816de\",\"urls\":[\"bzz-raw://8992c1e5fca0c2342ecc0e734dfba6a2a752e4c29184784931d0971e44305051\",\"dweb:/ipfs/QmYNcaW3qeCkgAExUaFTq238fgfJuoYCTwjCn7jm94U4dJ\"],\"license\":\"MIT\"},\"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0xd5ea07362ab630a6a3dee4285a74cf2377044ca2e4be472755ad64d7c5d4b69d\",\"urls\":[\"bzz-raw://da5e832b40fc5c3145d3781e2e5fa60ac2052c9d08af7e300dc8ab80c4343100\",\"dweb:/ipfs/QmTzf7N5ZUdh5raqtzbM11yexiUoLC9z3Ws632MCuycq1d\"],\"license\":\"MIT\"},\"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x0afcb7e740d1537b252cb2676f600465ce6938398569f09ba1b9ca240dde2dfc\",\"urls\":[\"bzz-raw://1c299900ac4ec268d4570ecef0d697a3013cd11a6eb74e295ee3fbc945056037\",\"dweb:/ipfs/Qmab9owJoxcA7vJT5XNayCMaUR1qxqj1NDzzisduwaJMcZ\"],\"license\":\"MIT\"},\"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x1a6221315ce0307746c2c4827c125d821ee796c74a676787762f4778671d4f44\",\"urls\":[\"bzz-raw://1bb2332a7ee26dd0b0de9b7fe266749f54820c99ab6a3bcb6f7e6b751d47ee2d\",\"dweb:/ipfs/QmcRWpaBeCYkhy68PR3B4AgD7asuQk7PwkWxrvJbZcikLF\"],\"license\":\"MIT\"},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"],\"license\":\"MIT\"},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x304d732678032a9781ae85c8f204c8fba3d3a5e31c02616964e75cfdc5049098\",\"urls\":[\"bzz-raw://299ced486011781dc98f638059678323c03079fefae1482abaa2135b22fa92d0\",\"dweb:/ipfs/QmbZNbcPTBxNvwChavN2kkZZs7xHhYL7mv51KrxMhsMs3j\"],\"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/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}",
715
+ "gitCommit": "npm:@bananapus/721-hook-v6@1.0.1",
716
+ "gitDirty": false,
717
+ "history": []
718
+ }