@bananapus/suckers-v6 1.0.2 → 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 (105) hide show
  1. package/deployments/arbitrum/CCIPHelper.json +939 -0
  2. package/deployments/arbitrum/JBArbitrumSucker.json +2310 -0
  3. package/deployments/arbitrum/JBArbitrumSuckerDeployer.json +443 -0
  4. package/deployments/arbitrum/JBCCIPLib.json +119 -0
  5. package/deployments/arbitrum/JBCCIPSuckerDeployer__BASE.json +474 -0
  6. package/deployments/arbitrum/JBCCIPSuckerDeployer__ETH.json +474 -0
  7. package/deployments/arbitrum/JBCCIPSuckerDeployer__OP.json +474 -0
  8. package/deployments/arbitrum/JBCCIPSucker__BASE.json +2460 -0
  9. package/deployments/arbitrum/JBCCIPSucker__ETH.json +2460 -0
  10. package/deployments/arbitrum/JBCCIPSucker__OP.json +2460 -0
  11. package/deployments/arbitrum/JBSuckerLib.json +457 -0
  12. package/deployments/arbitrum/JBSuckerRegistry.json +1234 -0
  13. package/deployments/arbitrum_sepolia/CCIPHelper.json +939 -0
  14. package/deployments/arbitrum_sepolia/JBArbitrumSucker.json +2310 -0
  15. package/deployments/arbitrum_sepolia/JBArbitrumSuckerDeployer.json +443 -0
  16. package/deployments/arbitrum_sepolia/JBCCIPLib.json +119 -0
  17. package/deployments/arbitrum_sepolia/JBCCIPSuckerDeployer__BASE_SEP.json +474 -0
  18. package/deployments/arbitrum_sepolia/JBCCIPSuckerDeployer__ETH_SEP.json +474 -0
  19. package/deployments/arbitrum_sepolia/JBCCIPSuckerDeployer__OP_SEP.json +474 -0
  20. package/deployments/arbitrum_sepolia/JBCCIPSucker__BASE_SEP.json +2460 -0
  21. package/deployments/arbitrum_sepolia/JBCCIPSucker__ETH_SEP.json +2460 -0
  22. package/deployments/arbitrum_sepolia/JBCCIPSucker__OP_SEP.json +2460 -0
  23. package/deployments/arbitrum_sepolia/JBSuckerLib.json +457 -0
  24. package/deployments/arbitrum_sepolia/JBSuckerRegistry.json +1234 -0
  25. package/deployments/base/CCIPHelper.json +944 -0
  26. package/deployments/base/JBBaseSucker.json +2302 -0
  27. package/deployments/base/JBBaseSuckerDeployer.json +430 -0
  28. package/deployments/base/JBCCIPLib.json +124 -0
  29. package/deployments/base/JBCCIPSuckerDeployer__ARB.json +479 -0
  30. package/deployments/base/JBCCIPSuckerDeployer__ETH.json +479 -0
  31. package/deployments/base/JBCCIPSuckerDeployer__OP.json +479 -0
  32. package/deployments/base/JBCCIPSucker__ARB.json +2465 -0
  33. package/deployments/base/JBCCIPSucker__ETH.json +2465 -0
  34. package/deployments/base/JBCCIPSucker__OP.json +2465 -0
  35. package/deployments/base/JBSuckerLib.json +462 -0
  36. package/deployments/base/JBSuckerRegistry.json +1239 -0
  37. package/deployments/base_sepolia/CCIPHelper.json +944 -0
  38. package/deployments/base_sepolia/JBBaseSucker.json +2302 -0
  39. package/deployments/base_sepolia/JBBaseSuckerDeployer.json +430 -0
  40. package/deployments/base_sepolia/JBCCIPLib.json +124 -0
  41. package/deployments/base_sepolia/JBCCIPSuckerDeployer__ARB_SEP.json +479 -0
  42. package/deployments/base_sepolia/JBCCIPSuckerDeployer__ETH_SEP.json +479 -0
  43. package/deployments/base_sepolia/JBCCIPSuckerDeployer__OP_SEP.json +479 -0
  44. package/deployments/base_sepolia/JBCCIPSucker__ARB_SEP.json +2465 -0
  45. package/deployments/base_sepolia/JBCCIPSucker__ETH_SEP.json +2465 -0
  46. package/deployments/base_sepolia/JBCCIPSucker__OP_SEP.json +2465 -0
  47. package/deployments/base_sepolia/JBSuckerLib.json +462 -0
  48. package/deployments/base_sepolia/JBSuckerRegistry.json +1239 -0
  49. package/deployments/ethereum/CCIPHelper.json +936 -0
  50. package/deployments/ethereum/JBArbitrumSucker.json +2307 -0
  51. package/deployments/ethereum/JBArbitrumSuckerDeployer.json +440 -0
  52. package/deployments/ethereum/JBBaseSucker.json +2294 -0
  53. package/deployments/ethereum/JBBaseSuckerDeployer.json +422 -0
  54. package/deployments/ethereum/JBCCIPLib.json +116 -0
  55. package/deployments/ethereum/JBCCIPSuckerDeployer__ARB.json +471 -0
  56. package/deployments/ethereum/JBCCIPSuckerDeployer__BASE.json +471 -0
  57. package/deployments/ethereum/JBCCIPSuckerDeployer__OP.json +471 -0
  58. package/deployments/ethereum/JBCCIPSucker__ARB.json +2457 -0
  59. package/deployments/ethereum/JBCCIPSucker__BASE.json +2457 -0
  60. package/deployments/ethereum/JBCCIPSucker__OP.json +2457 -0
  61. package/deployments/ethereum/JBOptimismSucker.json +2294 -0
  62. package/deployments/ethereum/JBOptimismSuckerDeployer.json +422 -0
  63. package/deployments/ethereum/JBSuckerLib.json +454 -0
  64. package/deployments/ethereum/JBSuckerRegistry.json +1231 -0
  65. package/deployments/optimism/CCIPHelper.json +944 -0
  66. package/deployments/optimism/JBCCIPLib.json +124 -0
  67. package/deployments/optimism/JBCCIPSuckerDeployer__ARB.json +479 -0
  68. package/deployments/optimism/JBCCIPSuckerDeployer__BASE.json +479 -0
  69. package/deployments/optimism/JBCCIPSuckerDeployer__ETH.json +479 -0
  70. package/deployments/optimism/JBCCIPSucker__ARB.json +2465 -0
  71. package/deployments/optimism/JBCCIPSucker__BASE.json +2465 -0
  72. package/deployments/optimism/JBCCIPSucker__ETH.json +2465 -0
  73. package/deployments/optimism/JBOptimismSucker.json +2302 -0
  74. package/deployments/optimism/JBOptimismSuckerDeployer.json +430 -0
  75. package/deployments/optimism/JBSuckerLib.json +462 -0
  76. package/deployments/optimism/JBSuckerRegistry.json +1239 -0
  77. package/deployments/optimism_sepolia/CCIPHelper.json +944 -0
  78. package/deployments/optimism_sepolia/JBCCIPLib.json +124 -0
  79. package/deployments/optimism_sepolia/JBCCIPSuckerDeployer__ARB_SEP.json +479 -0
  80. package/deployments/optimism_sepolia/JBCCIPSuckerDeployer__BASE_SEP.json +479 -0
  81. package/deployments/optimism_sepolia/JBCCIPSuckerDeployer__ETH_SEP.json +479 -0
  82. package/deployments/optimism_sepolia/JBCCIPSucker__ARB_SEP.json +2465 -0
  83. package/deployments/optimism_sepolia/JBCCIPSucker__BASE_SEP.json +2465 -0
  84. package/deployments/optimism_sepolia/JBCCIPSucker__ETH_SEP.json +2465 -0
  85. package/deployments/optimism_sepolia/JBOptimismSucker.json +2302 -0
  86. package/deployments/optimism_sepolia/JBOptimismSuckerDeployer.json +430 -0
  87. package/deployments/optimism_sepolia/JBSuckerLib.json +462 -0
  88. package/deployments/optimism_sepolia/JBSuckerRegistry.json +1239 -0
  89. package/deployments/sepolia/CCIPHelper.json +936 -0
  90. package/deployments/sepolia/JBArbitrumSucker.json +2307 -0
  91. package/deployments/sepolia/JBArbitrumSuckerDeployer.json +440 -0
  92. package/deployments/sepolia/JBBaseSucker.json +2294 -0
  93. package/deployments/sepolia/JBBaseSuckerDeployer.json +422 -0
  94. package/deployments/sepolia/JBCCIPLib.json +116 -0
  95. package/deployments/sepolia/JBCCIPSuckerDeployer__ARB_SEP.json +471 -0
  96. package/deployments/sepolia/JBCCIPSuckerDeployer__BASE_SEP.json +471 -0
  97. package/deployments/sepolia/JBCCIPSuckerDeployer__OP_SEP.json +471 -0
  98. package/deployments/sepolia/JBCCIPSucker__ARB_SEP.json +2457 -0
  99. package/deployments/sepolia/JBCCIPSucker__BASE_SEP.json +2457 -0
  100. package/deployments/sepolia/JBCCIPSucker__OP_SEP.json +2457 -0
  101. package/deployments/sepolia/JBOptimismSucker.json +2294 -0
  102. package/deployments/sepolia/JBOptimismSuckerDeployer.json +422 -0
  103. package/deployments/sepolia/JBSuckerLib.json +454 -0
  104. package/deployments/sepolia/JBSuckerRegistry.json +1231 -0
  105. package/package.json +2 -1
@@ -0,0 +1,2465 @@
1
+ {
2
+ "format": "sphinx-sol-ct-artifact-1",
3
+ "address": "0x396fea6c27171860c7a3134a1445ad2723507afc",
4
+ "sourceName": "node_modules/@bananapus/suckers-v6/src/JBCCIPSucker.sol",
5
+ "contractName": "JBCCIPSucker",
6
+ "chainId": "0xaa37dc",
7
+ "abi": [
8
+ {
9
+ "type": "constructor",
10
+ "inputs": [
11
+ {
12
+ "name": "deployer",
13
+ "type": "address",
14
+ "internalType": "contract JBCCIPSuckerDeployer"
15
+ },
16
+ {
17
+ "name": "directory",
18
+ "type": "address",
19
+ "internalType": "contract IJBDirectory"
20
+ },
21
+ {
22
+ "name": "permissions",
23
+ "type": "address",
24
+ "internalType": "contract IJBPermissions"
25
+ },
26
+ {
27
+ "name": "tokens",
28
+ "type": "address",
29
+ "internalType": "contract IJBTokens"
30
+ },
31
+ {
32
+ "name": "feeProjectId",
33
+ "type": "uint256",
34
+ "internalType": "uint256"
35
+ },
36
+ {
37
+ "name": "registry",
38
+ "type": "address",
39
+ "internalType": "contract IJBSuckerRegistry"
40
+ },
41
+ {
42
+ "name": "trustedForwarder",
43
+ "type": "address",
44
+ "internalType": "address"
45
+ }
46
+ ],
47
+ "stateMutability": "nonpayable"
48
+ },
49
+ {
50
+ "type": "receive",
51
+ "stateMutability": "payable"
52
+ },
53
+ {
54
+ "type": "function",
55
+ "name": "CCIP_ROUTER",
56
+ "inputs": [],
57
+ "outputs": [
58
+ {
59
+ "name": "",
60
+ "type": "address",
61
+ "internalType": "contract ICCIPRouter"
62
+ }
63
+ ],
64
+ "stateMutability": "view"
65
+ },
66
+ {
67
+ "type": "function",
68
+ "name": "DIRECTORY",
69
+ "inputs": [],
70
+ "outputs": [
71
+ {
72
+ "name": "",
73
+ "type": "address",
74
+ "internalType": "contract IJBDirectory"
75
+ }
76
+ ],
77
+ "stateMutability": "view"
78
+ },
79
+ {
80
+ "type": "function",
81
+ "name": "FEE_PROJECT_ID",
82
+ "inputs": [],
83
+ "outputs": [
84
+ {
85
+ "name": "",
86
+ "type": "uint256",
87
+ "internalType": "uint256"
88
+ }
89
+ ],
90
+ "stateMutability": "view"
91
+ },
92
+ {
93
+ "type": "function",
94
+ "name": "MESSAGE_VERSION",
95
+ "inputs": [],
96
+ "outputs": [
97
+ {
98
+ "name": "",
99
+ "type": "uint8",
100
+ "internalType": "uint8"
101
+ }
102
+ ],
103
+ "stateMutability": "view"
104
+ },
105
+ {
106
+ "type": "function",
107
+ "name": "MESSENGER_BASE_GAS_LIMIT",
108
+ "inputs": [],
109
+ "outputs": [
110
+ {
111
+ "name": "",
112
+ "type": "uint32",
113
+ "internalType": "uint32"
114
+ }
115
+ ],
116
+ "stateMutability": "view"
117
+ },
118
+ {
119
+ "type": "function",
120
+ "name": "MESSENGER_ERC20_MIN_GAS_LIMIT",
121
+ "inputs": [],
122
+ "outputs": [
123
+ {
124
+ "name": "",
125
+ "type": "uint32",
126
+ "internalType": "uint32"
127
+ }
128
+ ],
129
+ "stateMutability": "view"
130
+ },
131
+ {
132
+ "type": "function",
133
+ "name": "PERMISSIONS",
134
+ "inputs": [],
135
+ "outputs": [
136
+ {
137
+ "name": "",
138
+ "type": "address",
139
+ "internalType": "contract IJBPermissions"
140
+ }
141
+ ],
142
+ "stateMutability": "view"
143
+ },
144
+ {
145
+ "type": "function",
146
+ "name": "PROJECTS",
147
+ "inputs": [],
148
+ "outputs": [
149
+ {
150
+ "name": "",
151
+ "type": "address",
152
+ "internalType": "contract IJBProjects"
153
+ }
154
+ ],
155
+ "stateMutability": "view"
156
+ },
157
+ {
158
+ "type": "function",
159
+ "name": "REGISTRY",
160
+ "inputs": [],
161
+ "outputs": [
162
+ {
163
+ "name": "",
164
+ "type": "address",
165
+ "internalType": "contract IJBSuckerRegistry"
166
+ }
167
+ ],
168
+ "stateMutability": "view"
169
+ },
170
+ {
171
+ "type": "function",
172
+ "name": "REMOTE_CHAIN_ID",
173
+ "inputs": [],
174
+ "outputs": [
175
+ {
176
+ "name": "",
177
+ "type": "uint256",
178
+ "internalType": "uint256"
179
+ }
180
+ ],
181
+ "stateMutability": "view"
182
+ },
183
+ {
184
+ "type": "function",
185
+ "name": "REMOTE_CHAIN_SELECTOR",
186
+ "inputs": [],
187
+ "outputs": [
188
+ {
189
+ "name": "",
190
+ "type": "uint64",
191
+ "internalType": "uint64"
192
+ }
193
+ ],
194
+ "stateMutability": "view"
195
+ },
196
+ {
197
+ "type": "function",
198
+ "name": "TOKENS",
199
+ "inputs": [],
200
+ "outputs": [
201
+ {
202
+ "name": "",
203
+ "type": "address",
204
+ "internalType": "contract IJBTokens"
205
+ }
206
+ ],
207
+ "stateMutability": "view"
208
+ },
209
+ {
210
+ "type": "function",
211
+ "name": "amountToAddToBalanceOf",
212
+ "inputs": [
213
+ {
214
+ "name": "token",
215
+ "type": "address",
216
+ "internalType": "address"
217
+ }
218
+ ],
219
+ "outputs": [
220
+ {
221
+ "name": "",
222
+ "type": "uint256",
223
+ "internalType": "uint256"
224
+ }
225
+ ],
226
+ "stateMutability": "view"
227
+ },
228
+ {
229
+ "type": "function",
230
+ "name": "ccipReceive",
231
+ "inputs": [
232
+ {
233
+ "name": "any2EvmMessage",
234
+ "type": "tuple",
235
+ "internalType": "struct Client.Any2EVMMessage",
236
+ "components": [
237
+ {
238
+ "name": "messageId",
239
+ "type": "bytes32",
240
+ "internalType": "bytes32"
241
+ },
242
+ {
243
+ "name": "sourceChainSelector",
244
+ "type": "uint64",
245
+ "internalType": "uint64"
246
+ },
247
+ {
248
+ "name": "sender",
249
+ "type": "bytes",
250
+ "internalType": "bytes"
251
+ },
252
+ {
253
+ "name": "data",
254
+ "type": "bytes",
255
+ "internalType": "bytes"
256
+ },
257
+ {
258
+ "name": "destTokenAmounts",
259
+ "type": "tuple[]",
260
+ "internalType": "struct Client.EVMTokenAmount[]",
261
+ "components": [
262
+ {
263
+ "name": "token",
264
+ "type": "address",
265
+ "internalType": "address"
266
+ },
267
+ {
268
+ "name": "amount",
269
+ "type": "uint256",
270
+ "internalType": "uint256"
271
+ }
272
+ ]
273
+ }
274
+ ]
275
+ }
276
+ ],
277
+ "outputs": [],
278
+ "stateMutability": "nonpayable"
279
+ },
280
+ {
281
+ "type": "function",
282
+ "name": "claim",
283
+ "inputs": [
284
+ {
285
+ "name": "claims",
286
+ "type": "tuple[]",
287
+ "internalType": "struct JBClaim[]",
288
+ "components": [
289
+ {
290
+ "name": "token",
291
+ "type": "address",
292
+ "internalType": "address"
293
+ },
294
+ {
295
+ "name": "leaf",
296
+ "type": "tuple",
297
+ "internalType": "struct JBLeaf",
298
+ "components": [
299
+ {
300
+ "name": "index",
301
+ "type": "uint256",
302
+ "internalType": "uint256"
303
+ },
304
+ {
305
+ "name": "beneficiary",
306
+ "type": "bytes32",
307
+ "internalType": "bytes32"
308
+ },
309
+ {
310
+ "name": "projectTokenCount",
311
+ "type": "uint256",
312
+ "internalType": "uint256"
313
+ },
314
+ {
315
+ "name": "terminalTokenAmount",
316
+ "type": "uint256",
317
+ "internalType": "uint256"
318
+ },
319
+ {
320
+ "name": "metadata",
321
+ "type": "bytes32",
322
+ "internalType": "bytes32"
323
+ }
324
+ ]
325
+ },
326
+ {
327
+ "name": "proof",
328
+ "type": "bytes32[32]",
329
+ "internalType": "bytes32[32]"
330
+ }
331
+ ]
332
+ }
333
+ ],
334
+ "outputs": [],
335
+ "stateMutability": "nonpayable"
336
+ },
337
+ {
338
+ "type": "function",
339
+ "name": "claim",
340
+ "inputs": [
341
+ {
342
+ "name": "claimData",
343
+ "type": "tuple",
344
+ "internalType": "struct JBClaim",
345
+ "components": [
346
+ {
347
+ "name": "token",
348
+ "type": "address",
349
+ "internalType": "address"
350
+ },
351
+ {
352
+ "name": "leaf",
353
+ "type": "tuple",
354
+ "internalType": "struct JBLeaf",
355
+ "components": [
356
+ {
357
+ "name": "index",
358
+ "type": "uint256",
359
+ "internalType": "uint256"
360
+ },
361
+ {
362
+ "name": "beneficiary",
363
+ "type": "bytes32",
364
+ "internalType": "bytes32"
365
+ },
366
+ {
367
+ "name": "projectTokenCount",
368
+ "type": "uint256",
369
+ "internalType": "uint256"
370
+ },
371
+ {
372
+ "name": "terminalTokenAmount",
373
+ "type": "uint256",
374
+ "internalType": "uint256"
375
+ },
376
+ {
377
+ "name": "metadata",
378
+ "type": "bytes32",
379
+ "internalType": "bytes32"
380
+ }
381
+ ]
382
+ },
383
+ {
384
+ "name": "proof",
385
+ "type": "bytes32[32]",
386
+ "internalType": "bytes32[32]"
387
+ }
388
+ ]
389
+ }
390
+ ],
391
+ "outputs": [],
392
+ "stateMutability": "nonpayable"
393
+ },
394
+ {
395
+ "type": "function",
396
+ "name": "claimRetainedToRemoteFee",
397
+ "inputs": [
398
+ {
399
+ "name": "beneficiary",
400
+ "type": "address",
401
+ "internalType": "address payable"
402
+ }
403
+ ],
404
+ "outputs": [],
405
+ "stateMutability": "nonpayable"
406
+ },
407
+ {
408
+ "type": "function",
409
+ "name": "claimRetainedTransportPaymentRefund",
410
+ "inputs": [
411
+ {
412
+ "name": "beneficiary",
413
+ "type": "address",
414
+ "internalType": "address payable"
415
+ }
416
+ ],
417
+ "outputs": [],
418
+ "stateMutability": "nonpayable"
419
+ },
420
+ {
421
+ "type": "function",
422
+ "name": "deployer",
423
+ "inputs": [],
424
+ "outputs": [
425
+ {
426
+ "name": "",
427
+ "type": "address",
428
+ "internalType": "address"
429
+ }
430
+ ],
431
+ "stateMutability": "view"
432
+ },
433
+ {
434
+ "type": "function",
435
+ "name": "enableEmergencyHatchFor",
436
+ "inputs": [
437
+ {
438
+ "name": "tokens",
439
+ "type": "address[]",
440
+ "internalType": "address[]"
441
+ }
442
+ ],
443
+ "outputs": [],
444
+ "stateMutability": "nonpayable"
445
+ },
446
+ {
447
+ "type": "function",
448
+ "name": "executedLeafHashOf",
449
+ "inputs": [
450
+ {
451
+ "name": "token",
452
+ "type": "address",
453
+ "internalType": "address"
454
+ },
455
+ {
456
+ "name": "index",
457
+ "type": "uint256",
458
+ "internalType": "uint256"
459
+ }
460
+ ],
461
+ "outputs": [
462
+ {
463
+ "name": "",
464
+ "type": "bytes32",
465
+ "internalType": "bytes32"
466
+ }
467
+ ],
468
+ "stateMutability": "view"
469
+ },
470
+ {
471
+ "type": "function",
472
+ "name": "exitThroughEmergencyHatch",
473
+ "inputs": [
474
+ {
475
+ "name": "claimData",
476
+ "type": "tuple",
477
+ "internalType": "struct JBClaim",
478
+ "components": [
479
+ {
480
+ "name": "token",
481
+ "type": "address",
482
+ "internalType": "address"
483
+ },
484
+ {
485
+ "name": "leaf",
486
+ "type": "tuple",
487
+ "internalType": "struct JBLeaf",
488
+ "components": [
489
+ {
490
+ "name": "index",
491
+ "type": "uint256",
492
+ "internalType": "uint256"
493
+ },
494
+ {
495
+ "name": "beneficiary",
496
+ "type": "bytes32",
497
+ "internalType": "bytes32"
498
+ },
499
+ {
500
+ "name": "projectTokenCount",
501
+ "type": "uint256",
502
+ "internalType": "uint256"
503
+ },
504
+ {
505
+ "name": "terminalTokenAmount",
506
+ "type": "uint256",
507
+ "internalType": "uint256"
508
+ },
509
+ {
510
+ "name": "metadata",
511
+ "type": "bytes32",
512
+ "internalType": "bytes32"
513
+ }
514
+ ]
515
+ },
516
+ {
517
+ "name": "proof",
518
+ "type": "bytes32[32]",
519
+ "internalType": "bytes32[32]"
520
+ }
521
+ ]
522
+ }
523
+ ],
524
+ "outputs": [],
525
+ "stateMutability": "nonpayable"
526
+ },
527
+ {
528
+ "type": "function",
529
+ "name": "fromRemote",
530
+ "inputs": [
531
+ {
532
+ "name": "root",
533
+ "type": "tuple",
534
+ "internalType": "struct JBMessageRoot",
535
+ "components": [
536
+ {
537
+ "name": "version",
538
+ "type": "uint8",
539
+ "internalType": "uint8"
540
+ },
541
+ {
542
+ "name": "token",
543
+ "type": "bytes32",
544
+ "internalType": "bytes32"
545
+ },
546
+ {
547
+ "name": "amount",
548
+ "type": "uint256",
549
+ "internalType": "uint256"
550
+ },
551
+ {
552
+ "name": "remoteRoot",
553
+ "type": "tuple",
554
+ "internalType": "struct JBInboxTreeRoot",
555
+ "components": [
556
+ {
557
+ "name": "nonce",
558
+ "type": "uint64",
559
+ "internalType": "uint64"
560
+ },
561
+ {
562
+ "name": "root",
563
+ "type": "bytes32",
564
+ "internalType": "bytes32"
565
+ }
566
+ ]
567
+ },
568
+ {
569
+ "name": "accounts",
570
+ "type": "tuple[]",
571
+ "internalType": "struct JBChainAccounting[]",
572
+ "components": [
573
+ {
574
+ "name": "chainId",
575
+ "type": "uint256",
576
+ "internalType": "uint256"
577
+ },
578
+ {
579
+ "name": "totalSupply",
580
+ "type": "uint256",
581
+ "internalType": "uint256"
582
+ },
583
+ {
584
+ "name": "contexts",
585
+ "type": "tuple[]",
586
+ "internalType": "struct JBSourceContext[]",
587
+ "components": [
588
+ {
589
+ "name": "token",
590
+ "type": "bytes32",
591
+ "internalType": "bytes32"
592
+ },
593
+ {
594
+ "name": "decimals",
595
+ "type": "uint8",
596
+ "internalType": "uint8"
597
+ },
598
+ {
599
+ "name": "surplus",
600
+ "type": "uint128",
601
+ "internalType": "uint128"
602
+ },
603
+ {
604
+ "name": "balance",
605
+ "type": "uint128",
606
+ "internalType": "uint128"
607
+ }
608
+ ]
609
+ },
610
+ {
611
+ "name": "timestamp",
612
+ "type": "uint256",
613
+ "internalType": "uint256"
614
+ }
615
+ ]
616
+ }
617
+ ]
618
+ }
619
+ ],
620
+ "outputs": [],
621
+ "stateMutability": "payable"
622
+ },
623
+ {
624
+ "type": "function",
625
+ "name": "fromRemoteAccounting",
626
+ "inputs": [
627
+ {
628
+ "name": "snapshot",
629
+ "type": "tuple",
630
+ "internalType": "struct JBAccountingSnapshot",
631
+ "components": [
632
+ {
633
+ "name": "version",
634
+ "type": "uint8",
635
+ "internalType": "uint8"
636
+ },
637
+ {
638
+ "name": "accounts",
639
+ "type": "tuple[]",
640
+ "internalType": "struct JBChainAccounting[]",
641
+ "components": [
642
+ {
643
+ "name": "chainId",
644
+ "type": "uint256",
645
+ "internalType": "uint256"
646
+ },
647
+ {
648
+ "name": "totalSupply",
649
+ "type": "uint256",
650
+ "internalType": "uint256"
651
+ },
652
+ {
653
+ "name": "contexts",
654
+ "type": "tuple[]",
655
+ "internalType": "struct JBSourceContext[]",
656
+ "components": [
657
+ {
658
+ "name": "token",
659
+ "type": "bytes32",
660
+ "internalType": "bytes32"
661
+ },
662
+ {
663
+ "name": "decimals",
664
+ "type": "uint8",
665
+ "internalType": "uint8"
666
+ },
667
+ {
668
+ "name": "surplus",
669
+ "type": "uint128",
670
+ "internalType": "uint128"
671
+ },
672
+ {
673
+ "name": "balance",
674
+ "type": "uint128",
675
+ "internalType": "uint128"
676
+ }
677
+ ]
678
+ },
679
+ {
680
+ "name": "timestamp",
681
+ "type": "uint256",
682
+ "internalType": "uint256"
683
+ }
684
+ ]
685
+ }
686
+ ]
687
+ }
688
+ ],
689
+ "outputs": [],
690
+ "stateMutability": "nonpayable"
691
+ },
692
+ {
693
+ "type": "function",
694
+ "name": "getRouter",
695
+ "inputs": [],
696
+ "outputs": [
697
+ {
698
+ "name": "router",
699
+ "type": "address",
700
+ "internalType": "address"
701
+ }
702
+ ],
703
+ "stateMutability": "view"
704
+ },
705
+ {
706
+ "type": "function",
707
+ "name": "inboxOf",
708
+ "inputs": [
709
+ {
710
+ "name": "token",
711
+ "type": "address",
712
+ "internalType": "address"
713
+ }
714
+ ],
715
+ "outputs": [
716
+ {
717
+ "name": "",
718
+ "type": "tuple",
719
+ "internalType": "struct JBInboxTreeRoot",
720
+ "components": [
721
+ {
722
+ "name": "nonce",
723
+ "type": "uint64",
724
+ "internalType": "uint64"
725
+ },
726
+ {
727
+ "name": "root",
728
+ "type": "bytes32",
729
+ "internalType": "bytes32"
730
+ }
731
+ ]
732
+ }
733
+ ],
734
+ "stateMutability": "view"
735
+ },
736
+ {
737
+ "type": "function",
738
+ "name": "initialize",
739
+ "inputs": [
740
+ {
741
+ "name": "localProjectId",
742
+ "type": "uint256",
743
+ "internalType": "uint256"
744
+ },
745
+ {
746
+ "name": "remotePeer",
747
+ "type": "bytes32",
748
+ "internalType": "bytes32"
749
+ }
750
+ ],
751
+ "outputs": [],
752
+ "stateMutability": "nonpayable"
753
+ },
754
+ {
755
+ "type": "function",
756
+ "name": "initialize",
757
+ "inputs": [
758
+ {
759
+ "name": "initialProjectId",
760
+ "type": "uint256",
761
+ "internalType": "uint256"
762
+ }
763
+ ],
764
+ "outputs": [],
765
+ "stateMutability": "nonpayable"
766
+ },
767
+ {
768
+ "type": "function",
769
+ "name": "isMapped",
770
+ "inputs": [
771
+ {
772
+ "name": "token",
773
+ "type": "address",
774
+ "internalType": "address"
775
+ }
776
+ ],
777
+ "outputs": [
778
+ {
779
+ "name": "",
780
+ "type": "bool",
781
+ "internalType": "bool"
782
+ }
783
+ ],
784
+ "stateMutability": "view"
785
+ },
786
+ {
787
+ "type": "function",
788
+ "name": "isTrustedForwarder",
789
+ "inputs": [
790
+ {
791
+ "name": "forwarder",
792
+ "type": "address",
793
+ "internalType": "address"
794
+ }
795
+ ],
796
+ "outputs": [
797
+ {
798
+ "name": "",
799
+ "type": "bool",
800
+ "internalType": "bool"
801
+ }
802
+ ],
803
+ "stateMutability": "view"
804
+ },
805
+ {
806
+ "type": "function",
807
+ "name": "mapToken",
808
+ "inputs": [
809
+ {
810
+ "name": "map",
811
+ "type": "tuple",
812
+ "internalType": "struct JBTokenMapping",
813
+ "components": [
814
+ {
815
+ "name": "localToken",
816
+ "type": "address",
817
+ "internalType": "address"
818
+ },
819
+ {
820
+ "name": "minGas",
821
+ "type": "uint32",
822
+ "internalType": "uint32"
823
+ },
824
+ {
825
+ "name": "remoteToken",
826
+ "type": "bytes32",
827
+ "internalType": "bytes32"
828
+ }
829
+ ]
830
+ }
831
+ ],
832
+ "outputs": [],
833
+ "stateMutability": "payable"
834
+ },
835
+ {
836
+ "type": "function",
837
+ "name": "mapTokens",
838
+ "inputs": [
839
+ {
840
+ "name": "maps",
841
+ "type": "tuple[]",
842
+ "internalType": "struct JBTokenMapping[]",
843
+ "components": [
844
+ {
845
+ "name": "localToken",
846
+ "type": "address",
847
+ "internalType": "address"
848
+ },
849
+ {
850
+ "name": "minGas",
851
+ "type": "uint32",
852
+ "internalType": "uint32"
853
+ },
854
+ {
855
+ "name": "remoteToken",
856
+ "type": "bytes32",
857
+ "internalType": "bytes32"
858
+ }
859
+ ]
860
+ }
861
+ ],
862
+ "outputs": [],
863
+ "stateMutability": "payable"
864
+ },
865
+ {
866
+ "type": "function",
867
+ "name": "outboxOf",
868
+ "inputs": [
869
+ {
870
+ "name": "token",
871
+ "type": "address",
872
+ "internalType": "address"
873
+ }
874
+ ],
875
+ "outputs": [
876
+ {
877
+ "name": "",
878
+ "type": "tuple",
879
+ "internalType": "struct JBOutboxTree",
880
+ "components": [
881
+ {
882
+ "name": "nonce",
883
+ "type": "uint64",
884
+ "internalType": "uint64"
885
+ },
886
+ {
887
+ "name": "numberOfClaimsSent",
888
+ "type": "uint192",
889
+ "internalType": "uint192"
890
+ },
891
+ {
892
+ "name": "balance",
893
+ "type": "uint256",
894
+ "internalType": "uint256"
895
+ },
896
+ {
897
+ "name": "tree",
898
+ "type": "tuple",
899
+ "internalType": "struct MerkleLib.Tree",
900
+ "components": [
901
+ {
902
+ "name": "branch",
903
+ "type": "bytes32[32]",
904
+ "internalType": "bytes32[32]"
905
+ },
906
+ {
907
+ "name": "count",
908
+ "type": "uint256",
909
+ "internalType": "uint256"
910
+ }
911
+ ]
912
+ }
913
+ ]
914
+ }
915
+ ],
916
+ "stateMutability": "view"
917
+ },
918
+ {
919
+ "type": "function",
920
+ "name": "peer",
921
+ "inputs": [],
922
+ "outputs": [
923
+ {
924
+ "name": "",
925
+ "type": "bytes32",
926
+ "internalType": "bytes32"
927
+ }
928
+ ],
929
+ "stateMutability": "view"
930
+ },
931
+ {
932
+ "type": "function",
933
+ "name": "peerChainAccountsOf",
934
+ "inputs": [],
935
+ "outputs": [
936
+ {
937
+ "name": "accounts",
938
+ "type": "tuple[]",
939
+ "internalType": "struct JBChainAccounting[]",
940
+ "components": [
941
+ {
942
+ "name": "chainId",
943
+ "type": "uint256",
944
+ "internalType": "uint256"
945
+ },
946
+ {
947
+ "name": "totalSupply",
948
+ "type": "uint256",
949
+ "internalType": "uint256"
950
+ },
951
+ {
952
+ "name": "contexts",
953
+ "type": "tuple[]",
954
+ "internalType": "struct JBSourceContext[]",
955
+ "components": [
956
+ {
957
+ "name": "token",
958
+ "type": "bytes32",
959
+ "internalType": "bytes32"
960
+ },
961
+ {
962
+ "name": "decimals",
963
+ "type": "uint8",
964
+ "internalType": "uint8"
965
+ },
966
+ {
967
+ "name": "surplus",
968
+ "type": "uint128",
969
+ "internalType": "uint128"
970
+ },
971
+ {
972
+ "name": "balance",
973
+ "type": "uint128",
974
+ "internalType": "uint128"
975
+ }
976
+ ]
977
+ },
978
+ {
979
+ "name": "timestamp",
980
+ "type": "uint256",
981
+ "internalType": "uint256"
982
+ }
983
+ ]
984
+ }
985
+ ],
986
+ "stateMutability": "view"
987
+ },
988
+ {
989
+ "type": "function",
990
+ "name": "peerChainContextsOf",
991
+ "inputs": [
992
+ {
993
+ "name": "chainId",
994
+ "type": "uint256",
995
+ "internalType": "uint256"
996
+ }
997
+ ],
998
+ "outputs": [
999
+ {
1000
+ "name": "contexts",
1001
+ "type": "tuple[]",
1002
+ "internalType": "struct JBPeerChainContext[]",
1003
+ "components": [
1004
+ {
1005
+ "name": "currency",
1006
+ "type": "uint32",
1007
+ "internalType": "uint32"
1008
+ },
1009
+ {
1010
+ "name": "decimals",
1011
+ "type": "uint8",
1012
+ "internalType": "uint8"
1013
+ },
1014
+ {
1015
+ "name": "surplus",
1016
+ "type": "uint128",
1017
+ "internalType": "uint128"
1018
+ },
1019
+ {
1020
+ "name": "balance",
1021
+ "type": "uint128",
1022
+ "internalType": "uint128"
1023
+ }
1024
+ ]
1025
+ },
1026
+ {
1027
+ "name": "snapshot",
1028
+ "type": "uint256",
1029
+ "internalType": "uint256"
1030
+ }
1031
+ ],
1032
+ "stateMutability": "view"
1033
+ },
1034
+ {
1035
+ "type": "function",
1036
+ "name": "peerChainId",
1037
+ "inputs": [],
1038
+ "outputs": [
1039
+ {
1040
+ "name": "chainId",
1041
+ "type": "uint256",
1042
+ "internalType": "uint256"
1043
+ }
1044
+ ],
1045
+ "stateMutability": "view"
1046
+ },
1047
+ {
1048
+ "type": "function",
1049
+ "name": "peerChainIds",
1050
+ "inputs": [
1051
+ {
1052
+ "name": "includeVirtual",
1053
+ "type": "bool",
1054
+ "internalType": "bool"
1055
+ }
1056
+ ],
1057
+ "outputs": [
1058
+ {
1059
+ "name": "chainIds",
1060
+ "type": "uint256[]",
1061
+ "internalType": "uint256[]"
1062
+ }
1063
+ ],
1064
+ "stateMutability": "view"
1065
+ },
1066
+ {
1067
+ "type": "function",
1068
+ "name": "peerChainTotalSupplyOf",
1069
+ "inputs": [
1070
+ {
1071
+ "name": "chainId",
1072
+ "type": "uint256",
1073
+ "internalType": "uint256"
1074
+ }
1075
+ ],
1076
+ "outputs": [
1077
+ {
1078
+ "name": "",
1079
+ "type": "uint256",
1080
+ "internalType": "uint256"
1081
+ }
1082
+ ],
1083
+ "stateMutability": "view"
1084
+ },
1085
+ {
1086
+ "type": "function",
1087
+ "name": "peerChainTotalSupplyValue",
1088
+ "inputs": [
1089
+ {
1090
+ "name": "chainId",
1091
+ "type": "uint256",
1092
+ "internalType": "uint256"
1093
+ }
1094
+ ],
1095
+ "outputs": [
1096
+ {
1097
+ "name": "",
1098
+ "type": "tuple",
1099
+ "internalType": "struct JBPeerChainValue",
1100
+ "components": [
1101
+ {
1102
+ "name": "value",
1103
+ "type": "uint256",
1104
+ "internalType": "uint256"
1105
+ },
1106
+ {
1107
+ "name": "peerChainId",
1108
+ "type": "uint256",
1109
+ "internalType": "uint256"
1110
+ },
1111
+ {
1112
+ "name": "snapshotTimestamp",
1113
+ "type": "uint256",
1114
+ "internalType": "uint256"
1115
+ }
1116
+ ]
1117
+ }
1118
+ ],
1119
+ "stateMutability": "view"
1120
+ },
1121
+ {
1122
+ "type": "function",
1123
+ "name": "prepare",
1124
+ "inputs": [
1125
+ {
1126
+ "name": "projectTokenCount",
1127
+ "type": "uint256",
1128
+ "internalType": "uint256"
1129
+ },
1130
+ {
1131
+ "name": "beneficiary",
1132
+ "type": "bytes32",
1133
+ "internalType": "bytes32"
1134
+ },
1135
+ {
1136
+ "name": "minTokensReclaimed",
1137
+ "type": "uint256",
1138
+ "internalType": "uint256"
1139
+ },
1140
+ {
1141
+ "name": "token",
1142
+ "type": "address",
1143
+ "internalType": "address"
1144
+ },
1145
+ {
1146
+ "name": "metadata",
1147
+ "type": "bytes32",
1148
+ "internalType": "bytes32"
1149
+ }
1150
+ ],
1151
+ "outputs": [],
1152
+ "stateMutability": "nonpayable"
1153
+ },
1154
+ {
1155
+ "type": "function",
1156
+ "name": "projectId",
1157
+ "inputs": [],
1158
+ "outputs": [
1159
+ {
1160
+ "name": "",
1161
+ "type": "uint256",
1162
+ "internalType": "uint256"
1163
+ }
1164
+ ],
1165
+ "stateMutability": "view"
1166
+ },
1167
+ {
1168
+ "type": "function",
1169
+ "name": "remoteTokenFor",
1170
+ "inputs": [
1171
+ {
1172
+ "name": "token",
1173
+ "type": "address",
1174
+ "internalType": "address"
1175
+ }
1176
+ ],
1177
+ "outputs": [
1178
+ {
1179
+ "name": "",
1180
+ "type": "tuple",
1181
+ "internalType": "struct JBRemoteToken",
1182
+ "components": [
1183
+ {
1184
+ "name": "enabled",
1185
+ "type": "bool",
1186
+ "internalType": "bool"
1187
+ },
1188
+ {
1189
+ "name": "emergencyHatch",
1190
+ "type": "bool",
1191
+ "internalType": "bool"
1192
+ },
1193
+ {
1194
+ "name": "minGas",
1195
+ "type": "uint32",
1196
+ "internalType": "uint32"
1197
+ },
1198
+ {
1199
+ "name": "addr",
1200
+ "type": "bytes32",
1201
+ "internalType": "bytes32"
1202
+ }
1203
+ ]
1204
+ }
1205
+ ],
1206
+ "stateMutability": "view"
1207
+ },
1208
+ {
1209
+ "type": "function",
1210
+ "name": "retainedToRemoteFeeBalance",
1211
+ "inputs": [],
1212
+ "outputs": [
1213
+ {
1214
+ "name": "",
1215
+ "type": "uint256",
1216
+ "internalType": "uint256"
1217
+ }
1218
+ ],
1219
+ "stateMutability": "view"
1220
+ },
1221
+ {
1222
+ "type": "function",
1223
+ "name": "retainedToRemoteFeeOf",
1224
+ "inputs": [
1225
+ {
1226
+ "name": "account",
1227
+ "type": "address",
1228
+ "internalType": "address"
1229
+ }
1230
+ ],
1231
+ "outputs": [
1232
+ {
1233
+ "name": "amount",
1234
+ "type": "uint256",
1235
+ "internalType": "uint256"
1236
+ }
1237
+ ],
1238
+ "stateMutability": "view"
1239
+ },
1240
+ {
1241
+ "type": "function",
1242
+ "name": "retainedTransportPaymentRefundBalance",
1243
+ "inputs": [],
1244
+ "outputs": [
1245
+ {
1246
+ "name": "",
1247
+ "type": "uint256",
1248
+ "internalType": "uint256"
1249
+ }
1250
+ ],
1251
+ "stateMutability": "view"
1252
+ },
1253
+ {
1254
+ "type": "function",
1255
+ "name": "retainedTransportPaymentRefundOf",
1256
+ "inputs": [
1257
+ {
1258
+ "name": "account",
1259
+ "type": "address",
1260
+ "internalType": "address"
1261
+ }
1262
+ ],
1263
+ "outputs": [
1264
+ {
1265
+ "name": "amount",
1266
+ "type": "uint256",
1267
+ "internalType": "uint256"
1268
+ }
1269
+ ],
1270
+ "stateMutability": "view"
1271
+ },
1272
+ {
1273
+ "type": "function",
1274
+ "name": "setDeprecation",
1275
+ "inputs": [
1276
+ {
1277
+ "name": "timestamp",
1278
+ "type": "uint40",
1279
+ "internalType": "uint40"
1280
+ }
1281
+ ],
1282
+ "outputs": [],
1283
+ "stateMutability": "nonpayable"
1284
+ },
1285
+ {
1286
+ "type": "function",
1287
+ "name": "snapshotTimestampOf",
1288
+ "inputs": [
1289
+ {
1290
+ "name": "chainId",
1291
+ "type": "uint256",
1292
+ "internalType": "uint256"
1293
+ }
1294
+ ],
1295
+ "outputs": [
1296
+ {
1297
+ "name": "",
1298
+ "type": "uint256",
1299
+ "internalType": "uint256"
1300
+ }
1301
+ ],
1302
+ "stateMutability": "view"
1303
+ },
1304
+ {
1305
+ "type": "function",
1306
+ "name": "state",
1307
+ "inputs": [],
1308
+ "outputs": [
1309
+ {
1310
+ "name": "",
1311
+ "type": "uint8",
1312
+ "internalType": "enum JBSuckerState"
1313
+ }
1314
+ ],
1315
+ "stateMutability": "view"
1316
+ },
1317
+ {
1318
+ "type": "function",
1319
+ "name": "supportsInterface",
1320
+ "inputs": [
1321
+ {
1322
+ "name": "interfaceId",
1323
+ "type": "bytes4",
1324
+ "internalType": "bytes4"
1325
+ }
1326
+ ],
1327
+ "outputs": [
1328
+ {
1329
+ "name": "supported",
1330
+ "type": "bool",
1331
+ "internalType": "bool"
1332
+ }
1333
+ ],
1334
+ "stateMutability": "view"
1335
+ },
1336
+ {
1337
+ "type": "function",
1338
+ "name": "syncAccountingData",
1339
+ "inputs": [],
1340
+ "outputs": [],
1341
+ "stateMutability": "payable"
1342
+ },
1343
+ {
1344
+ "type": "function",
1345
+ "name": "toRemote",
1346
+ "inputs": [
1347
+ {
1348
+ "name": "token",
1349
+ "type": "address",
1350
+ "internalType": "address"
1351
+ }
1352
+ ],
1353
+ "outputs": [],
1354
+ "stateMutability": "payable"
1355
+ },
1356
+ {
1357
+ "type": "function",
1358
+ "name": "trustedForwarder",
1359
+ "inputs": [],
1360
+ "outputs": [
1361
+ {
1362
+ "name": "",
1363
+ "type": "address",
1364
+ "internalType": "address"
1365
+ }
1366
+ ],
1367
+ "stateMutability": "view"
1368
+ },
1369
+ {
1370
+ "type": "event",
1371
+ "name": "AccountingDataSynced",
1372
+ "inputs": [
1373
+ {
1374
+ "name": "sourceTimestamp",
1375
+ "type": "uint256",
1376
+ "indexed": false,
1377
+ "internalType": "uint256"
1378
+ },
1379
+ {
1380
+ "name": "caller",
1381
+ "type": "address",
1382
+ "indexed": false,
1383
+ "internalType": "address"
1384
+ }
1385
+ ],
1386
+ "anonymous": false
1387
+ },
1388
+ {
1389
+ "type": "event",
1390
+ "name": "ClaimFailed",
1391
+ "inputs": [
1392
+ {
1393
+ "name": "token",
1394
+ "type": "address",
1395
+ "indexed": true,
1396
+ "internalType": "address"
1397
+ },
1398
+ {
1399
+ "name": "index",
1400
+ "type": "uint256",
1401
+ "indexed": false,
1402
+ "internalType": "uint256"
1403
+ },
1404
+ {
1405
+ "name": "caller",
1406
+ "type": "address",
1407
+ "indexed": false,
1408
+ "internalType": "address"
1409
+ }
1410
+ ],
1411
+ "anonymous": false
1412
+ },
1413
+ {
1414
+ "type": "event",
1415
+ "name": "Claimed",
1416
+ "inputs": [
1417
+ {
1418
+ "name": "beneficiary",
1419
+ "type": "bytes32",
1420
+ "indexed": false,
1421
+ "internalType": "bytes32"
1422
+ },
1423
+ {
1424
+ "name": "token",
1425
+ "type": "address",
1426
+ "indexed": false,
1427
+ "internalType": "address"
1428
+ },
1429
+ {
1430
+ "name": "projectTokenCount",
1431
+ "type": "uint256",
1432
+ "indexed": false,
1433
+ "internalType": "uint256"
1434
+ },
1435
+ {
1436
+ "name": "terminalTokenAmount",
1437
+ "type": "uint256",
1438
+ "indexed": false,
1439
+ "internalType": "uint256"
1440
+ },
1441
+ {
1442
+ "name": "index",
1443
+ "type": "uint256",
1444
+ "indexed": false,
1445
+ "internalType": "uint256"
1446
+ },
1447
+ {
1448
+ "name": "metadata",
1449
+ "type": "bytes32",
1450
+ "indexed": false,
1451
+ "internalType": "bytes32"
1452
+ },
1453
+ {
1454
+ "name": "caller",
1455
+ "type": "address",
1456
+ "indexed": false,
1457
+ "internalType": "address"
1458
+ }
1459
+ ],
1460
+ "anonymous": false
1461
+ },
1462
+ {
1463
+ "type": "event",
1464
+ "name": "DeprecationTimeUpdated",
1465
+ "inputs": [
1466
+ {
1467
+ "name": "timestamp",
1468
+ "type": "uint40",
1469
+ "indexed": false,
1470
+ "internalType": "uint40"
1471
+ },
1472
+ {
1473
+ "name": "caller",
1474
+ "type": "address",
1475
+ "indexed": false,
1476
+ "internalType": "address"
1477
+ }
1478
+ ],
1479
+ "anonymous": false
1480
+ },
1481
+ {
1482
+ "type": "event",
1483
+ "name": "EmergencyExit",
1484
+ "inputs": [
1485
+ {
1486
+ "name": "beneficiary",
1487
+ "type": "address",
1488
+ "indexed": true,
1489
+ "internalType": "address"
1490
+ },
1491
+ {
1492
+ "name": "token",
1493
+ "type": "address",
1494
+ "indexed": true,
1495
+ "internalType": "address"
1496
+ },
1497
+ {
1498
+ "name": "terminalTokenAmount",
1499
+ "type": "uint256",
1500
+ "indexed": false,
1501
+ "internalType": "uint256"
1502
+ },
1503
+ {
1504
+ "name": "projectTokenCount",
1505
+ "type": "uint256",
1506
+ "indexed": false,
1507
+ "internalType": "uint256"
1508
+ },
1509
+ {
1510
+ "name": "caller",
1511
+ "type": "address",
1512
+ "indexed": false,
1513
+ "internalType": "address"
1514
+ }
1515
+ ],
1516
+ "anonymous": false
1517
+ },
1518
+ {
1519
+ "type": "event",
1520
+ "name": "EmergencyHatchOpened",
1521
+ "inputs": [
1522
+ {
1523
+ "name": "tokens",
1524
+ "type": "address[]",
1525
+ "indexed": false,
1526
+ "internalType": "address[]"
1527
+ },
1528
+ {
1529
+ "name": "caller",
1530
+ "type": "address",
1531
+ "indexed": false,
1532
+ "internalType": "address"
1533
+ }
1534
+ ],
1535
+ "anonymous": false
1536
+ },
1537
+ {
1538
+ "type": "event",
1539
+ "name": "Initialized",
1540
+ "inputs": [
1541
+ {
1542
+ "name": "version",
1543
+ "type": "uint64",
1544
+ "indexed": false,
1545
+ "internalType": "uint64"
1546
+ }
1547
+ ],
1548
+ "anonymous": false
1549
+ },
1550
+ {
1551
+ "type": "event",
1552
+ "name": "InsertToOutboxTree",
1553
+ "inputs": [
1554
+ {
1555
+ "name": "beneficiary",
1556
+ "type": "bytes32",
1557
+ "indexed": true,
1558
+ "internalType": "bytes32"
1559
+ },
1560
+ {
1561
+ "name": "token",
1562
+ "type": "address",
1563
+ "indexed": true,
1564
+ "internalType": "address"
1565
+ },
1566
+ {
1567
+ "name": "hashed",
1568
+ "type": "bytes32",
1569
+ "indexed": false,
1570
+ "internalType": "bytes32"
1571
+ },
1572
+ {
1573
+ "name": "index",
1574
+ "type": "uint256",
1575
+ "indexed": false,
1576
+ "internalType": "uint256"
1577
+ },
1578
+ {
1579
+ "name": "root",
1580
+ "type": "bytes32",
1581
+ "indexed": false,
1582
+ "internalType": "bytes32"
1583
+ },
1584
+ {
1585
+ "name": "projectTokenCount",
1586
+ "type": "uint256",
1587
+ "indexed": false,
1588
+ "internalType": "uint256"
1589
+ },
1590
+ {
1591
+ "name": "terminalTokenAmount",
1592
+ "type": "uint256",
1593
+ "indexed": false,
1594
+ "internalType": "uint256"
1595
+ },
1596
+ {
1597
+ "name": "metadata",
1598
+ "type": "bytes32",
1599
+ "indexed": false,
1600
+ "internalType": "bytes32"
1601
+ },
1602
+ {
1603
+ "name": "caller",
1604
+ "type": "address",
1605
+ "indexed": false,
1606
+ "internalType": "address"
1607
+ }
1608
+ ],
1609
+ "anonymous": false
1610
+ },
1611
+ {
1612
+ "type": "event",
1613
+ "name": "NewInboxTreeRoot",
1614
+ "inputs": [
1615
+ {
1616
+ "name": "token",
1617
+ "type": "address",
1618
+ "indexed": true,
1619
+ "internalType": "address"
1620
+ },
1621
+ {
1622
+ "name": "nonce",
1623
+ "type": "uint64",
1624
+ "indexed": false,
1625
+ "internalType": "uint64"
1626
+ },
1627
+ {
1628
+ "name": "root",
1629
+ "type": "bytes32",
1630
+ "indexed": false,
1631
+ "internalType": "bytes32"
1632
+ },
1633
+ {
1634
+ "name": "caller",
1635
+ "type": "address",
1636
+ "indexed": false,
1637
+ "internalType": "address"
1638
+ }
1639
+ ],
1640
+ "anonymous": false
1641
+ },
1642
+ {
1643
+ "type": "event",
1644
+ "name": "RetainedToRemoteFee",
1645
+ "inputs": [
1646
+ {
1647
+ "name": "account",
1648
+ "type": "address",
1649
+ "indexed": true,
1650
+ "internalType": "address"
1651
+ },
1652
+ {
1653
+ "name": "amount",
1654
+ "type": "uint256",
1655
+ "indexed": false,
1656
+ "internalType": "uint256"
1657
+ },
1658
+ {
1659
+ "name": "caller",
1660
+ "type": "address",
1661
+ "indexed": false,
1662
+ "internalType": "address"
1663
+ }
1664
+ ],
1665
+ "anonymous": false
1666
+ },
1667
+ {
1668
+ "type": "event",
1669
+ "name": "RetainedToRemoteFeeClaimed",
1670
+ "inputs": [
1671
+ {
1672
+ "name": "account",
1673
+ "type": "address",
1674
+ "indexed": true,
1675
+ "internalType": "address"
1676
+ },
1677
+ {
1678
+ "name": "beneficiary",
1679
+ "type": "address",
1680
+ "indexed": true,
1681
+ "internalType": "address"
1682
+ },
1683
+ {
1684
+ "name": "amount",
1685
+ "type": "uint256",
1686
+ "indexed": false,
1687
+ "internalType": "uint256"
1688
+ },
1689
+ {
1690
+ "name": "caller",
1691
+ "type": "address",
1692
+ "indexed": false,
1693
+ "internalType": "address"
1694
+ }
1695
+ ],
1696
+ "anonymous": false
1697
+ },
1698
+ {
1699
+ "type": "event",
1700
+ "name": "RetainedTransportPaymentRefund",
1701
+ "inputs": [
1702
+ {
1703
+ "name": "account",
1704
+ "type": "address",
1705
+ "indexed": true,
1706
+ "internalType": "address"
1707
+ },
1708
+ {
1709
+ "name": "amount",
1710
+ "type": "uint256",
1711
+ "indexed": false,
1712
+ "internalType": "uint256"
1713
+ },
1714
+ {
1715
+ "name": "caller",
1716
+ "type": "address",
1717
+ "indexed": false,
1718
+ "internalType": "address"
1719
+ }
1720
+ ],
1721
+ "anonymous": false
1722
+ },
1723
+ {
1724
+ "type": "event",
1725
+ "name": "RetainedTransportPaymentRefundClaimed",
1726
+ "inputs": [
1727
+ {
1728
+ "name": "account",
1729
+ "type": "address",
1730
+ "indexed": true,
1731
+ "internalType": "address"
1732
+ },
1733
+ {
1734
+ "name": "beneficiary",
1735
+ "type": "address",
1736
+ "indexed": true,
1737
+ "internalType": "address"
1738
+ },
1739
+ {
1740
+ "name": "amount",
1741
+ "type": "uint256",
1742
+ "indexed": false,
1743
+ "internalType": "uint256"
1744
+ },
1745
+ {
1746
+ "name": "caller",
1747
+ "type": "address",
1748
+ "indexed": false,
1749
+ "internalType": "address"
1750
+ }
1751
+ ],
1752
+ "anonymous": false
1753
+ },
1754
+ {
1755
+ "type": "event",
1756
+ "name": "RootToRemote",
1757
+ "inputs": [
1758
+ {
1759
+ "name": "root",
1760
+ "type": "bytes32",
1761
+ "indexed": true,
1762
+ "internalType": "bytes32"
1763
+ },
1764
+ {
1765
+ "name": "token",
1766
+ "type": "address",
1767
+ "indexed": true,
1768
+ "internalType": "address"
1769
+ },
1770
+ {
1771
+ "name": "index",
1772
+ "type": "uint256",
1773
+ "indexed": false,
1774
+ "internalType": "uint256"
1775
+ },
1776
+ {
1777
+ "name": "nonce",
1778
+ "type": "uint64",
1779
+ "indexed": false,
1780
+ "internalType": "uint64"
1781
+ },
1782
+ {
1783
+ "name": "caller",
1784
+ "type": "address",
1785
+ "indexed": false,
1786
+ "internalType": "address"
1787
+ }
1788
+ ],
1789
+ "anonymous": false
1790
+ },
1791
+ {
1792
+ "type": "event",
1793
+ "name": "StaleRootRejected",
1794
+ "inputs": [
1795
+ {
1796
+ "name": "token",
1797
+ "type": "address",
1798
+ "indexed": true,
1799
+ "internalType": "address"
1800
+ },
1801
+ {
1802
+ "name": "receivedNonce",
1803
+ "type": "uint64",
1804
+ "indexed": false,
1805
+ "internalType": "uint64"
1806
+ },
1807
+ {
1808
+ "name": "currentNonce",
1809
+ "type": "uint64",
1810
+ "indexed": false,
1811
+ "internalType": "uint64"
1812
+ },
1813
+ {
1814
+ "name": "caller",
1815
+ "type": "address",
1816
+ "indexed": false,
1817
+ "internalType": "address"
1818
+ }
1819
+ ],
1820
+ "anonymous": false
1821
+ },
1822
+ {
1823
+ "type": "event",
1824
+ "name": "TransportPaymentRefundFailed",
1825
+ "inputs": [
1826
+ {
1827
+ "name": "recipient",
1828
+ "type": "address",
1829
+ "indexed": true,
1830
+ "internalType": "address"
1831
+ },
1832
+ {
1833
+ "name": "amount",
1834
+ "type": "uint256",
1835
+ "indexed": false,
1836
+ "internalType": "uint256"
1837
+ },
1838
+ {
1839
+ "name": "caller",
1840
+ "type": "address",
1841
+ "indexed": false,
1842
+ "internalType": "address"
1843
+ }
1844
+ ],
1845
+ "anonymous": false
1846
+ },
1847
+ {
1848
+ "type": "error",
1849
+ "name": "InvalidInitialization",
1850
+ "inputs": []
1851
+ },
1852
+ {
1853
+ "type": "error",
1854
+ "name": "JBCCIPSucker_InvalidRouter",
1855
+ "inputs": [
1856
+ {
1857
+ "name": "router",
1858
+ "type": "address",
1859
+ "internalType": "address"
1860
+ }
1861
+ ]
1862
+ },
1863
+ {
1864
+ "type": "error",
1865
+ "name": "JBCCIPSucker_PositiveRootWithoutDelivery",
1866
+ "inputs": [
1867
+ {
1868
+ "name": "rootAmount",
1869
+ "type": "uint256",
1870
+ "internalType": "uint256"
1871
+ }
1872
+ ]
1873
+ },
1874
+ {
1875
+ "type": "error",
1876
+ "name": "JBCCIPSucker_UnderDeliveredAmount",
1877
+ "inputs": [
1878
+ {
1879
+ "name": "delivered",
1880
+ "type": "uint256",
1881
+ "internalType": "uint256"
1882
+ },
1883
+ {
1884
+ "name": "rootAmount",
1885
+ "type": "uint256",
1886
+ "internalType": "uint256"
1887
+ }
1888
+ ]
1889
+ },
1890
+ {
1891
+ "type": "error",
1892
+ "name": "JBCCIPSucker_UnexpectedDeliveredTokens",
1893
+ "inputs": [
1894
+ {
1895
+ "name": "count",
1896
+ "type": "uint256",
1897
+ "internalType": "uint256"
1898
+ }
1899
+ ]
1900
+ },
1901
+ {
1902
+ "type": "error",
1903
+ "name": "JBCCIPSucker_UnknownMessageType",
1904
+ "inputs": [
1905
+ {
1906
+ "name": "messageType",
1907
+ "type": "uint8",
1908
+ "internalType": "uint8"
1909
+ }
1910
+ ]
1911
+ },
1912
+ {
1913
+ "type": "error",
1914
+ "name": "JBCCIPSucker_WrongDeliveredToken",
1915
+ "inputs": [
1916
+ {
1917
+ "name": "delivered",
1918
+ "type": "address",
1919
+ "internalType": "address"
1920
+ },
1921
+ {
1922
+ "name": "expected",
1923
+ "type": "address",
1924
+ "internalType": "address"
1925
+ }
1926
+ ]
1927
+ },
1928
+ {
1929
+ "type": "error",
1930
+ "name": "JBPermissioned_Unauthorized",
1931
+ "inputs": [
1932
+ {
1933
+ "name": "account",
1934
+ "type": "address",
1935
+ "internalType": "address"
1936
+ },
1937
+ {
1938
+ "name": "sender",
1939
+ "type": "address",
1940
+ "internalType": "address"
1941
+ },
1942
+ {
1943
+ "name": "projectId",
1944
+ "type": "uint256",
1945
+ "internalType": "uint256"
1946
+ },
1947
+ {
1948
+ "name": "permissionId",
1949
+ "type": "uint256",
1950
+ "internalType": "uint256"
1951
+ }
1952
+ ]
1953
+ },
1954
+ {
1955
+ "type": "error",
1956
+ "name": "JBSucker_AccountingSyncUnsupported",
1957
+ "inputs": []
1958
+ },
1959
+ {
1960
+ "type": "error",
1961
+ "name": "JBSucker_AmountExceedsUint128",
1962
+ "inputs": [
1963
+ {
1964
+ "name": "amount",
1965
+ "type": "uint256",
1966
+ "internalType": "uint256"
1967
+ }
1968
+ ]
1969
+ },
1970
+ {
1971
+ "type": "error",
1972
+ "name": "JBSucker_BelowMinGas",
1973
+ "inputs": [
1974
+ {
1975
+ "name": "minGas",
1976
+ "type": "uint256",
1977
+ "internalType": "uint256"
1978
+ },
1979
+ {
1980
+ "name": "minGasLimit",
1981
+ "type": "uint256",
1982
+ "internalType": "uint256"
1983
+ }
1984
+ ]
1985
+ },
1986
+ {
1987
+ "type": "error",
1988
+ "name": "JBSucker_Deprecated",
1989
+ "inputs": [
1990
+ {
1991
+ "name": "state",
1992
+ "type": "uint8",
1993
+ "internalType": "enum JBSuckerState"
1994
+ }
1995
+ ]
1996
+ },
1997
+ {
1998
+ "type": "error",
1999
+ "name": "JBSucker_DeprecationTimestampTooSoon",
2000
+ "inputs": [
2001
+ {
2002
+ "name": "givenTime",
2003
+ "type": "uint256",
2004
+ "internalType": "uint256"
2005
+ },
2006
+ {
2007
+ "name": "minimumTime",
2008
+ "type": "uint256",
2009
+ "internalType": "uint256"
2010
+ }
2011
+ ]
2012
+ },
2013
+ {
2014
+ "type": "error",
2015
+ "name": "JBSucker_ExpectedMsgValue",
2016
+ "inputs": [
2017
+ {
2018
+ "name": "msgValue",
2019
+ "type": "uint256",
2020
+ "internalType": "uint256"
2021
+ }
2022
+ ]
2023
+ },
2024
+ {
2025
+ "type": "error",
2026
+ "name": "JBSucker_IndexOutOfRange",
2027
+ "inputs": [
2028
+ {
2029
+ "name": "index",
2030
+ "type": "uint256",
2031
+ "internalType": "uint256"
2032
+ }
2033
+ ]
2034
+ },
2035
+ {
2036
+ "type": "error",
2037
+ "name": "JBSucker_InsufficientBalance",
2038
+ "inputs": [
2039
+ {
2040
+ "name": "amount",
2041
+ "type": "uint256",
2042
+ "internalType": "uint256"
2043
+ },
2044
+ {
2045
+ "name": "balance",
2046
+ "type": "uint256",
2047
+ "internalType": "uint256"
2048
+ }
2049
+ ]
2050
+ },
2051
+ {
2052
+ "type": "error",
2053
+ "name": "JBSucker_InsufficientMsgValue",
2054
+ "inputs": [
2055
+ {
2056
+ "name": "received",
2057
+ "type": "uint256",
2058
+ "internalType": "uint256"
2059
+ },
2060
+ {
2061
+ "name": "expected",
2062
+ "type": "uint256",
2063
+ "internalType": "uint256"
2064
+ }
2065
+ ]
2066
+ },
2067
+ {
2068
+ "type": "error",
2069
+ "name": "JBSucker_InvalidMessageVersion",
2070
+ "inputs": [
2071
+ {
2072
+ "name": "received",
2073
+ "type": "uint8",
2074
+ "internalType": "uint8"
2075
+ },
2076
+ {
2077
+ "name": "expected",
2078
+ "type": "uint8",
2079
+ "internalType": "uint8"
2080
+ }
2081
+ ]
2082
+ },
2083
+ {
2084
+ "type": "error",
2085
+ "name": "JBSucker_InvalidNativeRemoteAddress",
2086
+ "inputs": [
2087
+ {
2088
+ "name": "remoteToken",
2089
+ "type": "bytes32",
2090
+ "internalType": "bytes32"
2091
+ }
2092
+ ]
2093
+ },
2094
+ {
2095
+ "type": "error",
2096
+ "name": "JBSucker_InvalidProof",
2097
+ "inputs": [
2098
+ {
2099
+ "name": "root",
2100
+ "type": "bytes32",
2101
+ "internalType": "bytes32"
2102
+ },
2103
+ {
2104
+ "name": "inboxRoot",
2105
+ "type": "bytes32",
2106
+ "internalType": "bytes32"
2107
+ }
2108
+ ]
2109
+ },
2110
+ {
2111
+ "type": "error",
2112
+ "name": "JBSucker_LeafAlreadyExecuted",
2113
+ "inputs": [
2114
+ {
2115
+ "name": "token",
2116
+ "type": "address",
2117
+ "internalType": "address"
2118
+ },
2119
+ {
2120
+ "name": "index",
2121
+ "type": "uint256",
2122
+ "internalType": "uint256"
2123
+ }
2124
+ ]
2125
+ },
2126
+ {
2127
+ "type": "error",
2128
+ "name": "JBSucker_NoRetainedToRemoteFee",
2129
+ "inputs": [
2130
+ {
2131
+ "name": "account",
2132
+ "type": "address",
2133
+ "internalType": "address"
2134
+ }
2135
+ ]
2136
+ },
2137
+ {
2138
+ "type": "error",
2139
+ "name": "JBSucker_NoRetainedTransportPaymentRefund",
2140
+ "inputs": [
2141
+ {
2142
+ "name": "account",
2143
+ "type": "address",
2144
+ "internalType": "address"
2145
+ }
2146
+ ]
2147
+ },
2148
+ {
2149
+ "type": "error",
2150
+ "name": "JBSucker_NoTerminalForToken",
2151
+ "inputs": [
2152
+ {
2153
+ "name": "projectId",
2154
+ "type": "uint256",
2155
+ "internalType": "uint256"
2156
+ },
2157
+ {
2158
+ "name": "token",
2159
+ "type": "address",
2160
+ "internalType": "address"
2161
+ }
2162
+ ]
2163
+ },
2164
+ {
2165
+ "type": "error",
2166
+ "name": "JBSucker_NotPeer",
2167
+ "inputs": [
2168
+ {
2169
+ "name": "caller",
2170
+ "type": "bytes32",
2171
+ "internalType": "bytes32"
2172
+ }
2173
+ ]
2174
+ },
2175
+ {
2176
+ "type": "error",
2177
+ "name": "JBSucker_NothingToSend",
2178
+ "inputs": [
2179
+ {
2180
+ "name": "token",
2181
+ "type": "address",
2182
+ "internalType": "address"
2183
+ },
2184
+ {
2185
+ "name": "outboxBalance",
2186
+ "type": "uint256",
2187
+ "internalType": "uint256"
2188
+ },
2189
+ {
2190
+ "name": "treeCount",
2191
+ "type": "uint256",
2192
+ "internalType": "uint256"
2193
+ },
2194
+ {
2195
+ "name": "numberOfClaimsSent",
2196
+ "type": "uint256",
2197
+ "internalType": "uint256"
2198
+ }
2199
+ ]
2200
+ },
2201
+ {
2202
+ "type": "error",
2203
+ "name": "JBSucker_RefundFailed",
2204
+ "inputs": [
2205
+ {
2206
+ "name": "beneficiary",
2207
+ "type": "address",
2208
+ "internalType": "address"
2209
+ },
2210
+ {
2211
+ "name": "amount",
2212
+ "type": "uint256",
2213
+ "internalType": "uint256"
2214
+ }
2215
+ ]
2216
+ },
2217
+ {
2218
+ "type": "error",
2219
+ "name": "JBSucker_RemoteTokenAlreadyMapped",
2220
+ "inputs": [
2221
+ {
2222
+ "name": "remoteToken",
2223
+ "type": "bytes32",
2224
+ "internalType": "bytes32"
2225
+ },
2226
+ {
2227
+ "name": "localToken",
2228
+ "type": "address",
2229
+ "internalType": "address"
2230
+ }
2231
+ ]
2232
+ },
2233
+ {
2234
+ "type": "error",
2235
+ "name": "JBSucker_TokenAlreadyMapped",
2236
+ "inputs": [
2237
+ {
2238
+ "name": "localToken",
2239
+ "type": "address",
2240
+ "internalType": "address"
2241
+ },
2242
+ {
2243
+ "name": "mappedTo",
2244
+ "type": "bytes32",
2245
+ "internalType": "bytes32"
2246
+ }
2247
+ ]
2248
+ },
2249
+ {
2250
+ "type": "error",
2251
+ "name": "JBSucker_TokenHasInvalidEmergencyHatchState",
2252
+ "inputs": [
2253
+ {
2254
+ "name": "token",
2255
+ "type": "address",
2256
+ "internalType": "address"
2257
+ }
2258
+ ]
2259
+ },
2260
+ {
2261
+ "type": "error",
2262
+ "name": "JBSucker_TokenNotMapped",
2263
+ "inputs": [
2264
+ {
2265
+ "name": "token",
2266
+ "type": "address",
2267
+ "internalType": "address"
2268
+ }
2269
+ ]
2270
+ },
2271
+ {
2272
+ "type": "error",
2273
+ "name": "JBSucker_UnexpectedMsgValue",
2274
+ "inputs": [
2275
+ {
2276
+ "name": "value",
2277
+ "type": "uint256",
2278
+ "internalType": "uint256"
2279
+ }
2280
+ ]
2281
+ },
2282
+ {
2283
+ "type": "error",
2284
+ "name": "JBSucker_UnexpectedTokenBalance",
2285
+ "inputs": [
2286
+ {
2287
+ "name": "token",
2288
+ "type": "address",
2289
+ "internalType": "address"
2290
+ },
2291
+ {
2292
+ "name": "expectedBalance",
2293
+ "type": "uint256",
2294
+ "internalType": "uint256"
2295
+ },
2296
+ {
2297
+ "name": "actualBalance",
2298
+ "type": "uint256",
2299
+ "internalType": "uint256"
2300
+ }
2301
+ ]
2302
+ },
2303
+ {
2304
+ "type": "error",
2305
+ "name": "JBSucker_ZeroBeneficiary",
2306
+ "inputs": [
2307
+ {
2308
+ "name": "beneficiary",
2309
+ "type": "bytes32",
2310
+ "internalType": "bytes32"
2311
+ }
2312
+ ]
2313
+ },
2314
+ {
2315
+ "type": "error",
2316
+ "name": "JBSucker_ZeroERC20Token",
2317
+ "inputs": [
2318
+ {
2319
+ "name": "projectId",
2320
+ "type": "uint256",
2321
+ "internalType": "uint256"
2322
+ }
2323
+ ]
2324
+ },
2325
+ {
2326
+ "type": "error",
2327
+ "name": "JBSucker_ZeroProjectTokenCount",
2328
+ "inputs": []
2329
+ },
2330
+ {
2331
+ "type": "error",
2332
+ "name": "MerkleLib_InsertTreeIsFull",
2333
+ "inputs": [
2334
+ {
2335
+ "name": "size",
2336
+ "type": "uint256",
2337
+ "internalType": "uint256"
2338
+ },
2339
+ {
2340
+ "name": "maxLeaves",
2341
+ "type": "uint256",
2342
+ "internalType": "uint256"
2343
+ }
2344
+ ]
2345
+ },
2346
+ {
2347
+ "type": "error",
2348
+ "name": "NotInitializing",
2349
+ "inputs": []
2350
+ },
2351
+ {
2352
+ "type": "error",
2353
+ "name": "SafeERC20FailedOperation",
2354
+ "inputs": [
2355
+ {
2356
+ "name": "token",
2357
+ "type": "address",
2358
+ "internalType": "address"
2359
+ }
2360
+ ]
2361
+ }
2362
+ ],
2363
+ "args": [
2364
+ "0x41d28BeDD5b0FbF65424B48c0e1dE92D5c882Fc7",
2365
+ "0x5AfF29060E023e6FB87BE5596652B33c65Af535B",
2366
+ "0xf92AC1aB5A00033E35a3975739124F61928C36B0",
2367
+ "0x1f80d8f057eE36b4C2656D107E4e4558B71bA7D9",
2368
+ "1",
2369
+ "0x7903a854aE91eAf635430D120a1a434085cEf297",
2370
+ "0x3bA60b60933916a7C87D0860DcEE62a0CE34E3e2"
2371
+ ],
2372
+ "solcInputHash": "02c61ed241a5148112a5af136a58bbd9",
2373
+ "receipt": {
2374
+ "type": "0x2",
2375
+ "status": "0x1",
2376
+ "cumulativeGasUsed": "0x5a035f",
2377
+ "logs": [
2378
+ {
2379
+ "address": "0xa2ea7657440875bf916cbfc0cfa88f13e38ad463",
2380
+ "topics": [
2381
+ "0x572f161235911da04685a68c06adf558fc7e4a36909dca394650e0adc19cc93d",
2382
+ "0x000000000000000000000000755ff2f75a0a586ecfa2b9a3c959cb662458a105",
2383
+ "0x00000000000000000000000091f164e1300f13beaf77358e4d84ed78f8e99d38",
2384
+ "0xc6c96094d050474176a38ba507ad0dcb9456dcb43f26aa2da9640a8c22cd8636"
2385
+ ],
2386
+ "data": "0x0000000000000000000000000000000000000000000000000000000000000000",
2387
+ "blockHash": "0x428cc3f07c9367e25ee0c6168b3d748efabe1bbad1558fbe239d529b76f01d55",
2388
+ "blockNumber": "0x2ad0029",
2389
+ "blockTimestamp": "0x6a30dbfe",
2390
+ "transactionHash": "0x8ec44929e79d53513173715922eadfe749a1a62b6d5468cf02fe7e2b536a36a5",
2391
+ "transactionIndex": "0x2",
2392
+ "logIndex": "0x3",
2393
+ "removed": false
2394
+ },
2395
+ {
2396
+ "address": "0x396fea6c27171860c7a3134a1445ad2723507afc",
2397
+ "topics": [
2398
+ "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2"
2399
+ ],
2400
+ "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff",
2401
+ "blockHash": "0x428cc3f07c9367e25ee0c6168b3d748efabe1bbad1558fbe239d529b76f01d55",
2402
+ "blockNumber": "0x2ad0029",
2403
+ "blockTimestamp": "0x6a30dbfe",
2404
+ "transactionHash": "0x8ec44929e79d53513173715922eadfe749a1a62b6d5468cf02fe7e2b536a36a5",
2405
+ "transactionIndex": "0x2",
2406
+ "logIndex": "0x4",
2407
+ "removed": false
2408
+ },
2409
+ {
2410
+ "address": "0x4dc161ef837ff1c4485b08ddfcdb182f2157be18",
2411
+ "topics": [
2412
+ "0x6895c13664aa4f67288b25d7a21d7aaa34916e355fb9b6fae0a139a9085becb8",
2413
+ "0x00000000000000000000000091f164e1300f13beaf77358e4d84ed78f8e99d38"
2414
+ ],
2415
+ "data": "0x",
2416
+ "blockHash": "0x428cc3f07c9367e25ee0c6168b3d748efabe1bbad1558fbe239d529b76f01d55",
2417
+ "blockNumber": "0x2ad0029",
2418
+ "blockTimestamp": "0x6a30dbfe",
2419
+ "transactionHash": "0x8ec44929e79d53513173715922eadfe749a1a62b6d5468cf02fe7e2b536a36a5",
2420
+ "transactionIndex": "0x2",
2421
+ "logIndex": "0x5",
2422
+ "removed": false
2423
+ },
2424
+ {
2425
+ "address": "0x91f164e1300f13beaf77358e4d84ed78f8e99d38",
2426
+ "topics": [
2427
+ "0xa65fb05c5808f5f389d72edeaf719ce38f4cc55c1f69ca3cbfb31c21501caa07",
2428
+ "0xd5deab2e7deb1fc43c598724c179da0517b3ba8e35a6aa10843b370c51835520"
2429
+ ],
2430
+ "data": "0x000000000000000000000000000000000000000000000000000000000000002b",
2431
+ "blockHash": "0x428cc3f07c9367e25ee0c6168b3d748efabe1bbad1558fbe239d529b76f01d55",
2432
+ "blockNumber": "0x2ad0029",
2433
+ "blockTimestamp": "0x6a30dbfe",
2434
+ "transactionHash": "0x8ec44929e79d53513173715922eadfe749a1a62b6d5468cf02fe7e2b536a36a5",
2435
+ "transactionIndex": "0x2",
2436
+ "logIndex": "0x6",
2437
+ "removed": false
2438
+ }
2439
+ ],
2440
+ "logsBloom": "0x00000000000010000000000000080000001000000000000000000000000000000000200000000000000000000040000000000000000000000000000000000000000000000000200000000000000000000000000000000040100000000000000040000000000004000000000400000000000000000000000000000000000080008800000000000000000904000000000000000000000280000000000000000000004000040200000000000000000001002200000000000000000000000004000000000002008000000000000000480000000000000004000000040000800000000000000000000100000000000000000200000000000080000000000000000000",
2441
+ "transactionHash": "0x8ec44929e79d53513173715922eadfe749a1a62b6d5468cf02fe7e2b536a36a5",
2442
+ "transactionIndex": "0x2",
2443
+ "blockHash": "0x428cc3f07c9367e25ee0c6168b3d748efabe1bbad1558fbe239d529b76f01d55",
2444
+ "blockNumber": "0x2ad0029",
2445
+ "gasUsed": "0x567895",
2446
+ "effectiveGasPrice": "0x24a02c",
2447
+ "blobGasUsed": "0x599e30",
2448
+ "from": "0x755ff2f75a0a586ecfa2b9a3c959cb662458a105",
2449
+ "to": "0xa2ea7657440875bf916cbfc0cfa88f13e38ad463",
2450
+ "contractAddress": null,
2451
+ "l1GasPrice": "0x3c5b3c16",
2452
+ "l1GasUsed": "0x395bf",
2453
+ "l1Fee": "0x257ec328980",
2454
+ "l1BaseFeeScalar": "0x1db0",
2455
+ "l1BlobBaseFee": "0x39e7eb4",
2456
+ "l1BlobBaseFeeScalar": "0xd2730",
2457
+ "daFootprintGasScalar": "0x190"
2458
+ },
2459
+ "bytecode": "0x6101c080604052346103365760e08161635d80380380916100208285610469565b8339810103126103365780516001600160a01b03811691908290036103365760208101516001600160a01b0381169190828103610336576040820151906001600160a01b0382168203610336576060830151936001600160a01b038516850361033657608084015160a0850151946001600160a01b03861686036103365760c00151926001600160a01b03841684036103365760049460209460805260a05260c05260e0526040519283809263293c499960e01b82525afa908115610342575f91610427575b506101005261012052610140525f51602061633d5f395f51905f525460ff8160401c16610418576002600160401b03196001600160401b038216016103c2575b506040516363a49dc360e01b8152602081600481855afa908115610342575f91610390575b506101805260405163d861618760e01b8152602081600481855afa908115610342575f9161034d575b506101a0526040516303788a6160e21b815290602090829060049082905afa908115610342575f916102fc575b506101608190526001600160a01b031680156102ea57604051615e9c90816104a18239608051818181611273015281816118090152614e37015260a051818181612a7e015281816133a7015281816141f20152614daa015260c051818181610c4401528181611e5e0152818161243701528181614608015281816146a9015281816149b90152615322015260e0518181816117120152612153015261010051818181610d6401526140c6015261012051818181610651015281816106ff015281816121020152818161245f015261534a015261014051818181610b580152611f2e015261016051818181611aaf015281816120510152818161561c0152615bc4015261018051818181610750015281816117d10152818161248e01528181613ae201528181613c54015261537901526101a05181818161061801528181611e2001526155fb0152f35b636e1f4ccd60e01b5f5260045260245ffd5b90506020813d60201161033a575b8161031760209383610469565b8101031261033657516001600160a01b0381168103610336575f6101a1565b5f80fd5b3d915061030a565b6040513d5f823e3d90fd5b90506020813d602011610388575b8161036860209383610469565b8101031261033657516001600160401b0381168103610336576004610174565b3d915061035b565b90506020813d6020116103ba575b816103ab60209383610469565b8101031261033657515f61014b565b3d915061039e565b6001600160401b0319166001600160401b039081175f51602061633d5f395f51905f52556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f610126565b63f92ee8a960e01b5f5260045ffd5b90506020813d602011610461575b8161044260209383610469565b8101031261033657516001600160a01b0381168103610336575f6100e6565b3d9150610435565b601f909101601f19168101906001600160401b0382119082101761048c57604052565b634e487b7160e01b5f52604160045260245ffdfe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063014dc2a61461037057806301ffc9a71461036b57806303da64a814610366578063056965111461036157806306433b1b1461035c5780630ce92d4b1461035757806311cda415146103525780631d831d5c1461034d57806322c9cc0f14610348578063293c4999146103435780633a5de07d1461033e5780633bef5ad5146103395780633f827a5a146103345780633fafa1271461032f5780634035d3b11461032a5780634ca0e69b146103255780634e415ad6146103205780634f0677e11461031b5780635417694914610316578063572b6c05146103115780635de4e83a1461030c5780636284386a14610307578063663d00f6146103025780636d9e384b146102fd5780636f4115a9146102f857806373cbdfc6146102f357806375451559146102ee5780637d1d0c5b146102a85780637da0a877146102e95780637de6fba2146102e4578063802c8fa0146102df57806385572ffb146102da57806388bc2ef3146102d557806392ee1ea7146102d05780639e6d7d43146102cb578063af629bbb146102c6578063b0f479a114610271578063b71c1179146102c1578063bf557aee146102bc578063c19d93fb146102b7578063c1ca1ec7146102b2578063cbb2adce146102ad578063cdfceeba146102a8578063cf26bafb146102a3578063d5f394881461029e578063d935222f14610299578063eac1f29e14610294578063f13465431461028f578063f3aefd7b1461028a578063f434c91414610285578063f925558c14610280578063fc072f231461027b578063fe4b84df146102765763fe5f42ca0361000e575b61203c565b612baf565b612ae8565b612aad565b612a69565b612966565b6128e5565b6128a0565b6127c3565b61279c565b61277f565b6117ba565b61259c565b6123f2565b6123c7565b612369565b612080565b611ed1565b611eaa565b611e8d565b611e49565b611a79565b61196e565b611838565b6117f4565b61175f565b611735565b6116fb565b611679565b611410565b611333565b6112a7565b61124f565b61112d565b611110565b610ff4565b610e6c565b610e23565b610df5565b610dda565b610db0565b610d93565b610d4f565b610c01565b610b43565b610b21565b610680565b61063c565b6105f9565b610593565b6104e6565b60203660031901126104e2576004356001600160401b0381116104e257366023820112156104e2578060040135906001600160401b0382116104e257602481019060243691606085020101116104e2575f5f5b83811061045557508061044457505f91905b5f925f925b80841061041657848034116103eb57005b610018906104106104096103fd614e0c565b6001600160a01b031690565b9134612cea565b90613f34565b9091929361043a6001916104348561042f89878a612c62565b613bd4565b90612ccf565b94019291906103da565b61044e9034612ca3565b91906103d5565b61048461046b610466838787612c62565b612c77565b6001600160a01b03165f908152600e6020526040902090565b6040610491838787612c62565b01351590816104bd575b506104a9575b6001016103c3565b906104b5600191612c95565b9190506104a1565b905060226104cc825460401c90565b9101546001600160c01b0390911614155f61049b565b5f80fd5b346104e25760203660031901126104e25760043563ffffffff60e01b81168091036104e257610534906385572ffb60e01b8114908115610538575b5060405190151581529081906020820190565b0390f35b6314a66dd360e21b811491508115610582575b8115610571575b8115610560575b505f610521565b6301ffc9a760e01b1490505f610559565b633d0d324560e21b81149150610552565b6332af4eb960e21b8114915061054b565b346104e25760203660031901126104e2576004356001600160401b0381116104e257366023820112156104e25780600401356001600160401b0381116104e2573660246104c08302840101116104e25760246100189201612e16565b5f9103126104e257565b346104e2575f3660031901126104e25760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346104e2575f3660031901126104e2576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b60603660031901126104e2575f6106976004612c77565b6001600160a01b0381165f908152600f602052604090206044359291906106c290613415565b613415565b906106d06020830151151590565b610b06576106de6004614cda565b60115461072b6106ed826140a9565b6106f5614e0c565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116949116841491614d1f565b803b156104e2576040516303827e8d60e01b81526001600160a01b03831660048201527f0000000000000000000000000000000000000000000000000000000000000000602482015260448101869052905f90829060649082905afa8015610b0157610ae7575b50606082018051858115159182610adc575b505080610ad3575b80610ab0575b610a8f5784159485159384610a26575b86806109d5575b61098d575b509061085092916108a395968580610983575b80610978575b80610941575b610916575b1561090f5750515b806108d5575b61083261080d6024613bca565b61081f610818612f04565b9615158752565b5f602087015263ffffffff166040860152565b60608401526001600160a01b03165f908152600f6020526040902090565b815181546020840151604085015165ffffffffffff1990921660ff931515939093169290921791151560081b61ff00169190911760109190911b65ffffffff000016178155606090910151600190910155565b8034116108ac57005b6001600160a01b036108bc614e0c565b169034033481116108d05761001891613f34565b612c81565b61090a826108eb835f52600d60205260405f2090565b80546001600160a01b0319166001600160a01b03909216919091179055565b610800565b90506107fa565b61093c61092c84515f52600d60205260405f2090565b80546001600160a01b0319169055565b6107f2565b5061096561095884515f52600d60205260405f2090565b546001600160a01b031690565b6001600160a01b038581169116146107ed565b5081835114156107e7565b50825115156107e1565b6001600160a01b0384165f908152600f602052604090206108a39650610850949392916109ca916109c3905b805460ff19169055565b8434614780565b3495509091926107ce565b506001600160a01b0384165f908152600e602052604090206109f9905b5460401c90565b6001600160a01b0385165f908152600e60205260409020602201546001600160c01b0390911614156107c9565b610a3b610958835f52600d60205260405f2090565b6001600160a01b0381168015159081610a7b575b50610a5a57506107c2565b63d6a305d960e01b5f5260048390526001600160a01b031660245260445b5ffd5b6001600160a01b038716141590505f610a4f565b5163aef430a360e01b5f526001600160a01b0390911660045260245260445ffd5b506001600160a01b0382165f908152600e602052604090206022015415156107b2565b508415156107ac565b14159050855f6107a4565b80610af55f610afb93612d8d565b806105ef565b5f610792565b612e0b565b6304bba81f60e41b5f526001600160a01b031660045260245ffd5b346104e2575f3660031901126104e2576020610b3b612ef7565b604051908152f35b346104e2575f3660031901126104e2576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b92919060408401906040855280518092526020606086019101915f5b818110610bb557505060209150930152565b9091602060806001926001600160801b036060885163ffffffff815116845260ff8682015116868501528260408201511660408501520151166060820152019401910192919092610ba3565b346104e25760203660031901126104e25760043560115490805f52601560205260405f2091604051928391633a37eccb60e01b8352606483019060018060a01b037f0000000000000000000000000000000000000000000000000000000000000000166004850152602484015260606044840152815480915260848301915f5260205f20905f5b818110610d095750505090805f920381730b2b545a4e2fd65d29f2417f1b26698d71769a8f5af4918215610b01575f92610ce1575b50610cd0905f52600760205260405f2090565b549061053460405192839283610b87565b610cd0919250610d02903d805f833e610cfa8183612d8d565b810190612f56565b9190610cbd565b8254845260018084015460ff8116602087015260081c6001600160801b039081166040870152600285015416606086015287955060809094019360039093019201610c88565b346104e2575f3660031901126104e2576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104e2575f3660031901126104e257602060405162030d408152f35b346104e25760203660031901126104e2576004355f526002602052602060405f2054604051908152f35b346104e2575f3660031901126104e257602060405160018152f35b346104e2575f3660031901126104e2576020601154604051908152f35b6001600160a01b038116036104e257565b346104e25760403660031901126104e257600435610e4081610e12565b6024359060018060a01b03165f52600160205260405f20905f52602052602060405f2054604051908152f35b346104e25760203660031901126104e2576004356001600160401b0381116104e2578060040190604060031982360301126104e257303303610ef857600160ff610eb58461302b565b1603610ed257610018916024610ecc920190613035565b90613f90565b610a78610ede8361302b565b63e667c12560e01b5f5260ff166004526001602452604490565b610a78610f04336103fd565b63f957028d60e01b5f52600452602490565b602081016020825282518091526040820191602060408360051b8301019401925f915b838310610f4857505050505090565b9091929394603f1982820301835285519060808101918051825260208101516020830152604081015192608060408401528351809152602060a084019401905f905b808210610fb0575050506060908101519101529460209081019493600101920190610f39565b909194602060806001926001600160801b0360608a518051845260ff8682015116868501528260408201511660408501520151166060820152019601920190610f8a565b346104e2575f3660031901126104e25760145461101081612f15565b9061101e6040519283612d8d565b808252601f1961102d82612f15565b015f5b8181106110e05750505f5b81811061105057604051806105348582610f16565b8061106961105f60019361306a565b90549060031b1c90565b61107b815f52600260205260405f2090565b546110ba611091835f52601560205260405f2090565b6110a3845f52600760205260405f2090565b54926110ad612f04565b9485526020850152613082565b604083015260608201526110ce828661311c565b526110d9818561311c565b500161103b565b6020906040516110ef81612d1c565b5f81525f83820152606060408201525f606082015282828701015201611030565b346104e2575f3660031901126104e2576020600454604051908152f35b346104e25760403660031901126104e2575f516020615e705f395f51905f52546004356024356001600160401b0361117d604085901c60ff1615611170565b1590565b946001600160401b031690565b1680159081611247575b600114908161123d575b159081611234575b50611225576111b491836111ab613130565b61121857614041565b6111ba57005b6111e460ff60401b195f516020615e705f395f51905f5254165f516020615e705f395f51905f5255565b604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29080602081015b0390a1005b61122061315d565b614041565b63f92ee8a960e01b5f5260045ffd5b9050155f611199565b303b159150611191565b849150611187565b346104e25760203660031901126104e257602060043561126e81610e12565b6040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b039081169216919091148152f35b346104e25760203660031901126104e2576105346004355f604080516112cc81612d3c565b8281528260208201520152805f52600260205260405f205490805f52600760205260405f2054906040519261130084612d3c565b83526020830152604082015260405191829182919091604080606083019480518452602081015160208501520151910152565b346104e25760203660031901126104e25760043564ffffffffff8116908181036104e25761135f614057565b61137360115461136e816140a9565b614167565b6212750042018042116108d05782151580611406575b6113e857506113b87f455efa76af2a8686dc0dd3041bda89ece5ba4691277d525e2161003bbca8b24592600855565b6113c0614e0c565b6040805164ffffffffff90931683526001600160a01b03909116602083015281908101611213565b630111a46b60e21b5f5264ffffffffff90911660045260245260445ffd5b5080831115611389565b60203660031901126104e2576004356001600160401b0381116104e257806004019060c060031982360301126104e257611449306103fd565b339081036116675750600160ff61145f8461302b565b1603610ed25760248101356001600160a01b03165f818152600a6020526040902061001893610ecc93909260a492606483019061149b8261319b565b81546001600160401b0390811691168110156115ef5750611539826001926115036114e67fc69d3412489554fb7820c4c2784cb644b6c79bfc117444b93977d3d33a9b8eac9661319b565b825467ffffffffffffffff19166001600160401b03909116178255565b608487013593849101557f27ae5ba08d7291c96c8cbddcc148bf48a6d68c7974b94356f53754ef6171d75783036115885761319b565b9261157d611545614e0c565b604080516001600160401b03909716875260208701949094526001600160a01b03908116938601939093529116929081906060820190565b0390a25b0190613035565b6115ea836115e46115bb6115b56115af8a60018060a01b03165f52600b60205260405f2090565b54612cc1565b60031690565b6001600160a01b0389165f908152600b60209081526040808320849055600c90915290206131a5565b906131b4565b61319b565b905061161b7f2eb8abf720d2b9cf9e357f7a24a2bee502a7bdba38de0de230e10c33dafbd3eb9261319b565b9261165f611627614e0c565b604080516001600160401b0397881681529490961660208501526001600160a01b039081169584019590955293169281906060820190565b0390a2611581565b610a78906001600160a01b0316610f04565b346104e25760203660031901126104e25760043561169681610e12565b61169e6131d1565b5060018060a01b03165f52600a60205260405f206001604051916116c183612d57565b6001600160401b038154168352015460208201526040518091610534826040810192602080916001600160401b0381511684520151910152565b346104e2575f3660031901126104e25760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346104e25760203660031901126104e2576004355f526007602052602060405f2054604051908152f35b346104e25760203660031901126104e2576004356001600160401b0381116104e257366023820112156104e25780600401356001600160401b0381116104e2573660248260051b840101116104e25760246100189201613253565b346104e2575f3660031901126104e25760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346104e2575f3660031901126104e2576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104e25760203660031901126104e25760043561185581610e12565b5f606060405161186481612d1c565b828152826020820152826040820152015260018060a01b03165f52600f60205261053460405f2060016040519161189a83612d1c565b63ffffffff815460ff81161515855260ff8160081c161515602086015260101c1660408401520154606082015260405191829182919091606080608083019480511515845260208101511515602085015263ffffffff60408201511660408501520151910152565b81516001600160401b031681526020808301516001600160c01b031690820152604080830151908201526060918201518051610480830194935f9084015b60208210611958575050506020610460910151910152565b6020806001928551815201930191019091611940565b346104e25760203660031901126104e25760043561198b81610e12565b6040519061199882612d1c565b5f82525f60208301525f60408301526040516119b381612d57565b6060610400936040516119c68682612d8d565b8536823783525f6020840152015260018060a01b03165f52600e60205260405f2090604051906119f582612d1c565b82546001600160401b038116835260401c60208301526001830154604083015260405190611a2282612d57565b60405190600285015f835b60208210611a63575050509381611a4961053496602294612d8d565b835201546020820152606082015260405191829182611902565b6001602081928554815201930191019091611a2d565b346104e25760203660031901126104e2576004356001600160401b0381116104e2578060040160a060031983360301126104e2577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03811633819003610ef857611afb6103fd611af3604487018661346b565b81019061294e565b611b096103fd6103fd612ef7565b6001600160a01b03821614801590611e08575b611df25750611b39611b31606486018561346b565b8101906134b8565b9060ff811680611d80575050611b5a8160208060849451830101910161382f565b940190611b67828561352b565b905060018111611d6e57611c635750604084015180611c4e57505b61eeee602085015114611bd9575b505050303b156104e2575f611bb9916040518093819263331e807b60e11b83526004830161395d565b038183305af18015610b0157611bcb57005b80610af55f61001893612d8d565b611bf89073d331f229eeeeb32e54b85fe4a0997627913fb9a59361352b565b9092803b156104e257611c24935f9360405195869485938493631446f65760e21b8552600485016138fb565b03915af48015610b0157611c3a575b8080611b90565b80610af55f611c4893612d8d565b5f611c33565b60016272c62f60e11b03195f5260045260245ffd5b611c76611c70838661352b565b906138dd565b90602086015161eeee81145f14611d5e575060206004916040519283809263e861e90760e01b82525afa908115610b01575f91611d2f575b506001600160a01b03165b611cc282612c77565b6001600160a01b03828116911603611d02575060200135604085015190818110611ced575050611b82565b635231144f60e11b5f5260045260245260445ffd5b611d0e610a7892612c77565b6346f21d7f60e01b5f526001600160a01b0390811660045216602452604490565b611d51915060203d602011611d57575b611d498183612d8d565b8101906138e6565b5f611cae565b503d611d3f565b6001600160a01b03169050611cb9565b6330b6751d60e01b5f5260045260245ffd5b919593509150600103611ddd5750906084611d9c92019061352b565b809150611d6e575080602080611db7935183010191016136cf565b303b156104e2575f611bb99160405180938192634ca0e69b60e01b83526004830161380b565b638664a67360e01b5f5260ff1660045260245ffd5b610a7890610f04906001600160a01b03166103fd565b50611e156024860161319b565b6001600160401b03807f00000000000000000000000000000000000000000000000000000000000000001691161415611b1c565b346104e2575f3660031901126104e2576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104e2575f3660031901126104e2576020604051620493e08152f35b346104e25760203660031901126104e2576020610b3b600435611ecc81610e12565b6139bb565b346104e25760a03660031901126104e257606435604435602435600435611ef784610e12565b60843592811561202d5782156120195760115460405163ea78803f60e01b8152600481018290526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610b01575f91611ffa575b506001600160a01b0316908115611fe857506001600160a01b0386165f908152600f60205260409020611f979061116c905b5460ff1690565b611fcc576100189591611fbf84611fc693611fb0614057565b611fb8614e0c565b30916142bd565b82846143d2565b916144aa565b63027edf0360e11b5f526001600160a01b03861660045260245ffd5b6309794d0160e11b5f5260045260245ffd5b612013915060203d602011611d5757611d498183612d8d565b5f611f5e565b63b2fe07f160e01b5f52600483905260245ffd5b632bcf4c5760e21b5f5260045ffd5b346104e2575f3660031901126104e2576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b60203660031901126104e25760043561209881610e12565b6001600160a01b0381165f908152600f602052604090206120b890613415565b602081015161234d576001600160a01b0382165f908152600e60205260409020600181015490811580612327575b6122ca575050604051634211591560e01b8152916020836004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa928315610b01575f936122a9575b5082341061229157826121506100189434612cea565b907f000000000000000000000000000000000000000000000000000000000000000061217b816145e3565b5f91906001600160a01b031680151580612288575b6121c9575b505015806121c0575b6121a9575b50614780565b6121ba906121b5614e0c565b6146e4565b5f6121a3565b5080151561219e565b61223b9160209185806121da614e0c565b936040519687958694859363fef4325760e01b855260048501916101209391835261eeee6020840152604083015260018060a01b031660608201525f608082015260e060a08201525f60e082015261010060c08201525f6101008201520190565b03925af1908161225b575b50612253575b5f80612195565b50600161224c565b61227c9060203d602011612281575b6122748183612d8d565b810190613a29565b612246565b503d61226a565b50831515612190565b630ee99a4760e01b5f5234600452602483905260445ffd5b6122c391935060203d602011612281576122748183612d8d565b915f61213a565b612323816122df602287940154915460401c90565b60405163096c1e2160e21b81526001600160a01b039094166004850152602484019490945260448301526001600160c01b0390921660648201529081906084820190565b0390fd5b50602281015461234761233b835460401c90565b6001600160c01b031690565b146120e6565b6304bba81f60e41b5f526001600160a01b03821660045260245ffd5b346104e25760203660031901126104e25760043561238681610e12565b60018060a01b03165f52600f6020526020600160405f2001541515604051908152f35b600411156123b357565b634e487b7160e01b5f52602160045260245ffd5b346104e2575f3660031901126104e2576123df613a38565b60405160048210156123b3576020918152f35b5f3660031901126104e257612405614057565b6124ce61241d600160125401806012554260801b1790565b60115460405163f1d0f27760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f000000000000000000000000000000000000000000000000000000000000000016602482015260448101919091527f000000000000000000000000000000000000000000000000000000000000000060648201526001608482015260a48101829052915f908390819060c4820190565b0381730b2b545a4e2fd65d29f2417f1b26698d71769a8f5af4908115610b0157610018925f92612544575b507f77bd1556265e71d247f11bb5886efda7fd5e5b21e6a4d2c871e8e6b49ac92f3d90612524614e0c565b604080519283526001600160a01b0391909116602083015290a134614911565b7f77bd1556265e71d247f11bb5886efda7fd5e5b21e6a4d2c871e8e6b49ac92f3d919250612583903d805f833e61257b8183612d8d565b8101906136cf565b91906124f9565b6104c09060031901126104e257600490565b346104e2576125aa3661258a565b80359060608101356125bb83610e12565b608082013560408301359260a0810135602082013560c0830164010000000082101561276c576001600160a01b0388165f908152600960209081526040808320600886901c8452909152902054600160ff84161b1661274b57918661273e836126ea86828d6126e56100189f9a838f8f6127469f9e8d917fa8d6760b4e1a89f513fc87990f66d051c419d735fb8191104014e0529d9ae2d39f936126938f93956126786126b19760018060a01b03165f52600960205260405f2090565b8160081c5f52602052600160ff60405f2092161b8154179055565b91608093916040519384526020840152604083015260608201522090565b84816126df846126d2839960018060a01b03165f52600160205260405f2090565b905f5260205260405f2090565b55615749565b61583b565b6126f386612c77565b936126fc614e0c565b604080519586526001600160a01b03968716602087015285018b9052606085018a9052608085019290925260a084015290921660c082015290819060e0820190565b0390a1612c77565b614985565b632939af3b60e21b5f526001600160a01b038816600452602482905260445ffd5b506309f6605160e41b5f5260045260245ffd5b346104e2575f3660031901126104e2576020600354604051908152f35b346104e2575f3660031901126104e2575f546040516001600160a01b039091168152602090f35b346104e2576100186127d43661258a565b60608101356127e282612c77565b9161274660808201359161280d60408201359560a0830135602084013590888760c08701948a614ac0565b600161281b61046b83612c77565b01612827848254612cea565b90556001600160a01b03851661283c82612c77565b7fe33107c4043e574d8a4da32dac235e219f8f34a0e45e473ea6643a6145f25285612898612868614e0c565b60408051898152602081018b90526001600160a01b03928316918101919091529381169416929081906060820190565b0390a3612c77565b346104e25760203660031901126104e2576004356128bd81610e12565b60018060a01b03165f526006602052602060405f2054604051908152f35b801515036104e257565b346104e25760203660031901126104e25761290a600435612905816128db565b613adf565b6040518091602082016020835281518091526020604084019201905f5b818110612935575050500390f35b8251845285945060209384019390920191600101612927565b908160209103126104e2573561296381610e12565b90565b346104e25760203660031901126104e25760043561298381610e12565b6001600160a01b038116908115612a565761299c614e0c565b6001600160a01b0381165f81815260066020526040902054909290918215612a3b576001600160a01b03165f9081526006602052604081207ffbcfe54e4aa35e7772f25a5f52fedccde889e4fc5031ad9826b9bf6b890baa599392612a1792849255612a12612a0d83600454612cea565b600455565b613f34565b612a1f614e0c565b604080519283526001600160a01b0391909116602083015290a3005b631733ad2160e21b5f526001600160a01b031660045260245ffd5b63b2fe07f160e01b5f525f60045260245ffd5b346104e2575f3660031901126104e2576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104e25760203660031901126104e257600435612aca81610e12565b60018060a01b03165f526005602052602060405f2054604051908152f35b346104e25760203660031901126104e257600435612b0581610e12565b6001600160a01b038116908115612a5657612b1e614e0c565b6001600160a01b0381165f81815260056020526040902054909290918215612b94576001600160a01b03165f9081526005602052604081207f1e70ff8443e61b2a2555b5ad56645461a75dd29591b5c4a6281f70a6d395db459392612a1792849255612a12612b8f83600354612cea565b600355565b63578a51dd60e11b5f526001600160a01b031660045260245ffd5b346104e25760203660031901126104e2575f516020615e705f395f51905f52546004356001600160401b03612bf3604084901c60ff1615936001600160401b031690565b1680159081612c46575b6001149081612c3c575b159081612c33575b50611225576111b49082612c21613130565b1561401157612c2e61315d565b614011565b9050155f612c0f565b303b159150612c07565b839150612bfd565b634e487b7160e01b5f52603260045260245ffd5b9190811015612c72576060020190565b612c4e565b3561296381610e12565b634e487b7160e01b5f52601160045260245ffd5b5f1981146108d05760010190565b8115612cad570490565b634e487b7160e01b5f52601260045260245ffd5b90600182018092116108d057565b919082018092116108d057565b5f198101919082116108d057565b919082039182116108d057565b9190811015612c72576104c0020190565b634e487b7160e01b5f52604160045260245ffd5b608081019081106001600160401b03821117612d3757604052565b612d08565b606081019081106001600160401b03821117612d3757604052565b604081019081106001600160401b03821117612d3757604052565b60a081019081106001600160401b03821117612d3757604052565b90601f801991011681019081106001600160401b03821117612d3757604052565b6104009092919260c0806104c08301958035612dc981610e12565b60018060a01b031684526020810135602085015260408101356040850152606081013560608501526080810135608085015260a081013560a085015201910137565b6040513d5f823e3d90fd5b5f5b828110612e2457505050565b612e2f818484612cf7565b90303b156104e257612e585f600193604051809381926365d956e760e11b835260048301612dae565b038183305af19081612ee3575b50612ede57612e78610466828686612cf7565b7fc1054f794d197971822697afa7ff4777cac6fb7a512e4bfec63aebaab98187b66020612ea6848888612cf7565b013591612eb1614e0c565b604080519485526001600160a01b0391909116602085015260a086901b8690039190911692a25b01612e18565b612ed8565b80610af55f612ef193612d8d565b5f612e65565b6013548061296357503090565b60405190612f13608083612d8d565b565b6001600160401b038111612d375760051b60200190565b63ffffffff8116036104e257565b60ff8116036104e257565b6001600160801b038116036104e257565b6020818303126104e2578051906001600160401b0382116104e2570181601f820112156104e257805190612f8982612f15565b92612f976040519485612d8d565b82845260208085019360071b830101918183116104e257602001925b828410612fc1575050505090565b6080848303126104e2576020608091604051612fdc81612d1c565b8651612fe781612f2c565b815282870151612ff681612f3a565b83820152604087015161300881612f45565b6040820152606087015161301b81612f45565b6060820152815201930192612fb3565b3561296381612f3a565b903590601e19813603018212156104e257018035906001600160401b0382116104e257602001918160051b360383136104e257565b601454811015612c725760145f5260205f2001905f90565b90815461308e81612f15565b9261309c6040519485612d8d565b81845260208401905f5260205f205f915b8383106130ba5750505050565b600360206001926040516130cd81612d1c565b855481526001600160801b038587015460ff81168584015260081c1660408201526001600160801b0360028701541660608201528152019201920191906130ad565b805115612c725760200190565b8051821015612c725760209160051b010190565b60016001600160401b03195f516020615e705f395f51905f525416175f516020615e705f395f51905f5255565b600160401b60ff60401b195f516020615e705f395f51905f525416175f516020615e705f395f51905f5255565b6001600160401b038116036104e257565b356129638161318a565b6004821015612c725701905f90565b916131cd9183549060031b91821b915f19901b19161790565b9055565b604051906131de82612d57565b5f6020838281520152565b9190811015612c725760051b0190565b604080825281018390529293929160608301905f5b818110613229575050602091509360018060a01b0316910152565b9091602080600192863561323c81610e12565b848060a01b0316815201940191019291909261320e565b9190601154613261816140a9565b613269614e0c565b916001600160a01b03808416908316141580613380575b613349575050505f5b8181106132d057507f8021bce60b20a9afb57085869a3552e0ee5b272b868df894fb30c5e90e74c07291926132cb6132bf614e0c565b604051938493846131f9565b0390a1565b806132de60019284876131e9565b356132e881610e12565b828060a01b03165f52600f60205261330760405f2060ff198154169055565b61334361333461331b61046684878a6131e9565b6001600160a01b03165f908152600f6020526040902090565b805461ff001916610100179055565b01613289565b604051631326f75560e11b81526001600160a01b039283166004820152929091166024830152604482015260236064820152608490fd5b50604051631a45b42760e11b8152602081806133a3602386888a6004860161412f565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610b01575f916133e6575b5015613280565b613408915060203d60201161340e575b6134008183612d8d565b81019061411a565b5f6133df565b503d6133f6565b9060405161342281612d1c565b60606001829463ffffffff815460ff81161515865260ff8160081c161515602087015260101c1660408501520154910152565b604051906104006134668184612d8d565b368337565b903590601e19813603018212156104e257018035906001600160401b0382116104e2576020019181360383136104e257565b6001600160401b038111612d3757601f01601f191660200190565b91906040838203126104e25782356134cf81612f3a565b926020810135906001600160401b0382116104e2570181601f820112156104e2578035906134fc8261349d565b9261350a6040519485612d8d565b828452602083830101116104e257815f926020809301838601378301015290565b903590601e19813603018212156104e257018035906001600160401b0382116104e257602001918160061b360383136104e257565b81601f820112156104e25780519061357782612f15565b926135856040519485612d8d565b82845260208085019360051b830101918183116104e25760208101935b8385106135b157505050505090565b84516001600160401b0381116104e25782016080818503601f1901126104e257604051906135de82612d1c565b602081015182526040810151602083015260608101516001600160401b0381116104e25760209082010185601f820112156104e257805161361e81612f15565b9161362c6040519384612d8d565b81835260208084019260071b820101908882116104e257602001915b81831061366e5750505060408301526080015160608201528152602094850194016135a2565b6080838a03126104e257602060809160405161368981612d1c565b855181528286015161369a81612f3a565b8382015260408601516136ac81612f45565b604082015260608601516136bf81612f45565b6060820152815201920191613648565b6020818303126104e2578051906001600160401b0382116104e257016040818303126104e2576040519161370283612d57565b815161370d81612f3a565b835260208201516001600160401b0381116104e25761372c9201613560565b602082015290565b9080602083519182815201916020808360051b8301019401925f915b83831061375f57505050505090565b9091929394601f1982820301835285519060808101918051825260208101516020830152604081015192608060408401528351809152602060a084019401905f905b8082106137c7575050506060908101519101529460209081019493600101920190613750565b909194602060806001926001600160801b0360608a518051845260ff86820151168685015282604082015116604085015201511660608201520196019201906137a1565b606060206129639381845260ff815116828501520151916040808201520190613734565b6020818303126104e2578051906001600160401b0382116104e257018082039160c083126104e257604080519361386585612d72565b835161387081612f3a565b8552602084015160208601528184015182860152605f1901126104e25760405161389981612d57565b60608301516138a78161318a565b815260808301516020820152606084015260a08201516001600160401b0381116104e2576138d59201613560565b608082015290565b9015612c725790565b908160209103126104e2575161296381610e12565b6001600160a01b0390911681526040602082018190528101839052606001915f5b8181106139295750505090565b909192604080600192863561393d81610e12565b848060a01b0316815260208701356020820152019401910191909161391c565b60e06080612963936020845260ff815116602085015260208101516040850152604081015160608501526139ab606082015183860190602080916001600160401b0381511684520151910152565b01519160c0808201520190613734565b6139c53082614250565b9060018060a01b031690815f52600e602052600160405f20015481039081116108d05761eeee8192146139f6575090565b905060035480821115613a235781039081116108d05760045480821115613a235781039081116108d05790565b50505f90565b908160209103126104e2575190565b6008548015613a6b57621274ff1981018181116108d0574210613a65574210613a6057600390565b600290565b50600190565b505f90565b60405190613a7f602083612d8d565b5f808352366020840137565b60408051909190613a9c8382612d8d565b6001815291601f1901366020840137565b90613ab782612f15565b613ac46040519182612d8d565b8281528092613ad5601f1991612f15565b0190602036910137565b907f00000000000000000000000000000000000000000000000000000000000000008015159283613bbf575b15613b995782613b79575b6014548315613b7057613b30613b2b82612cc1565b613aad565b935f5b828110613b505750613b43575050565b613b4d908461311c565b52565b80613b5f61105f60019361306a565b613b69828961311c565b5201613b33565b613b3081613aad565b9150613b9361116c611f90845f52601060205260405f2090565b91613b16565b909115613bb657613ba8613a8b565b90613bb28261310f565b5290565b50612963613a70565b468214159350613b0b565b3561296381612f2c565b91905f92613be181612c77565b90604081013592613c056106bd8460018060a01b03165f52600f60205260405f2090565b93613c136020860151151590565b613f0457613c2083614cda565b601154613c2f6106ed826140a9565b803b156104e2576040516303827e8d60e01b81526001600160a01b03861660048201527f0000000000000000000000000000000000000000000000000000000000000000602482015260448101839052905f90829060649082905afa8015610b0157613ef0575b5060608501918251828115159182613ee5575b505080613edc575b80613eb9575b613e985781159081159687613e30575b8280613de2575b613d94575b505061080d602087969461085096946108329489612f139b90613d8a575b80613d7f575b80613d55575b613d3a575b15613d32575051935b84613d17575b01613bca565b613d2d866108eb875f52600d60205260405f2090565b613d11565b905093613d0b565b613d5061092c84515f52600d60205260405f2090565b613d02565b50613d6c61095884515f52600d60205260405f2090565b6001600160a01b03898116911614613cfd565b508183511415613cf7565b5082511515613cf1565b6108329299508694610850969461080d93613dd3602094613dcc6109b9612f139e9d60018060a01b03165f52600f60205260405f2090565b8983614780565b9b945094965094969750613cd3565b506001600160a01b0387165f908152600e60205260409020613e03906109f2565b6001600160a01b0388165f908152600e60205260409020602201546001600160c01b039091161415613cce565b613e45610958855f52600d60205260405f2090565b6001600160a01b0381168015159081613e84575b50613e645750613cc7565b63d6a305d960e01b5f5260048590526001600160a01b031660245260445ffd5b6001600160a01b038a16141590505f613e59565b825163aef430a360e01b5f526001600160a01b03861660045260245260445ffd5b506001600160a01b0385165f908152600e60205260409020602201541515613cb7565b50811515613cb1565b14159050825f613ca9565b80610af55f613efe93612d8d565b5f613c96565b6304bba81f60e41b5f526001600160a01b03841660045260245ffd5b60405190613f2f602083612d8d565b5f8252565b6001600160a01b03165f80808085855af13d15613f8b573d613f558161349d565b90613f636040519283612d8d565b81525f60203d92013e5b15613f76575050565b630590bd2d60e41b5f5260045260245260445ffd5b613f6d565b90915f5b8381101561400b578060051b830135607e19843603018112156104e2578301908135606083013592602081013590604081013590601e19813603018212156104e25701908135916001600160401b0383116104e257602001908260071b360382136104e25760019561400594614fe7565b01613f94565b50915050565b6011555f6013556001600160a01b03614028614e0c565b166bffffffffffffffffffffffff60a01b5f5416175f55565b6011556013556001600160a01b03614028614e0c565b61405f613a38565b60048110156123b35760038114801561408b575b61407a5750565b62a7958f60e81b5f5260045260245ffd5b50614095816123a9565b60028114614073565b5190612f1382610e12565b6040516331a9108f60e11b815260048101919091526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610b01575f91614101575090565b612963915060203d602011611d5757611d498183612d8d565b908160209103126104e25751612963816128db565b6001600160a01b039182168152911660208201526040810191909152606081019190915260016080820181905260a082015260c00190565b61416f614e0c565b916001600160a01b038084169083161415806141cb575b61418f57505050565b604051631326f75560e11b81526001600160a01b0392831660048201529290911660248084019190915260448301919091526064820152608490fd5b50604051631a45b42760e11b8152602081806141ee602486888a6004860161412f565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610b01575f91614231575b5015614186565b61424a915060203d60201161340e576134008183612d8d565b5f61422a565b6001600160a01b03169061eeee82146142b7576040516370a0823160e01b81526001600160a01b03909116600482015290602090829060249082905afa908115610b01575f9161429e575090565b612963915060203d602011612281576122748183612d8d565b90503190565b6040516323b872dd60e01b5f9081526001600160a01b039384166004529290931660245260449390935260209060648180865af160015f511481161561432b575b6040919091525f606052156143105750565b635274afe760e01b5f526001600160a01b031660045260245ffd5b6001811516614341573d15833b151516166142fe565b503d5f823e3d90fd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6001600160a01b0391821681526020810192909252604082019290925291811660608301526080820192909252911660a082015260e060c082018190526129639291019061434a565b156143be57565b634e487b7160e01b5f52600160045260245ffd5b6011549193926143e76103fd80808887614678565b6001600160a01b038116156144895790602091865f6144063083614250565b95614432614412613f20565b6040516313da831760e01b8152998a97889687953093846004890161436e565b03925af1908115610b0157612f13925f92614464575b5061445e9061445983963090614250565b612cea565b146143b7565b61445e9192506144829060203d602011612281576122748183612d8d565b9190614448565b63b61c181f60e01b5f5260048490526001600160a01b03861660245260445ffd5b9193906001600160801b0385116145d0576001600160801b0383116145bd576144ee8285878691608093916040519384526020840152604083015260608201522090565b6001600160a01b0382165f908152600e602052604090209095909360028501936145188886615138565b60018601928354968188018098116108d0576145616022614567927fc92fa1150c24ee5470c272112539aab52450a5e05573e7ea7bdfb98829b893219a6145b898550154612cdc565b96615224565b92614570614e0c565b604080519b8c5260208c0198909852968a01939093526060890192909252608088019190915260a08701526001600160a01b0392831660c087015291169390819060e0820190565b0390a3565b826335bf001160e11b5f5260045260245ffd5b846335bf001160e11b5f5260045260245ffd5b604051630862026560e41b8152600481019190915261eeee60248201526020816044817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610b01575f91614643575090565b90506020813d602011614670575b8161465e60209383612d8d565b810103126104e2575161296381610e12565b3d9150614651565b604051630862026560e41b815260048101919091526001600160a01b039091166024820152602081806044810103817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610b01575f91614643575090565b60018060a01b031690815f52600560205260405f208054908282018092116108d05755600354908082018092116108d0577f2a3798c6648c17f70b43a33a8378cec543367ac1543e62aa7b3926605697177791600355614742614e0c565b604080519283526001600160a01b039091166020830152819081015b0390a2565b6001600160401b03166001600160401b0381146108d05760010190565b906060830151156148a157614793614057565b6001600160a01b0381165f908152600e6020526040902090602282015490811561489a57612f139460018401915f835493556148316147e16147dc87546001600160401b031690565b614763565b865467ffffffffffffffff19166001600160401b0382161787559461482c61480b60028901615224565b88546001600160401b0316604084901b67ffffffffffffffff191617909855565b612cdc565b9586867f47c5615513b0f669da2dd7e3362a34610ca2695d0a0e2da2160cee952eab203c614892614860614e0c565b604080519586526001600160401b038b1660208701526001600160a01b03918216908601528616939081906060820190565b0390a36152e8565b5050505050565b63027edf0360e11b5f9081526001600160a01b0391909116600452602490fd5b906040612963925f8152816020820152019061434a565b604051906148e7602083612d8d565b5f80835282815b8281106148fa57505050565b6020906149056131d1565b828285010152016148ee565b614969612f139261497761493e61494c61492e6020850151615429565b936040519283916020830161380b565b03601f198101835282612d8d565b60405193849160016020840152604080840152606083019061434a565b03601f198101845283612d8d565b61497f6148d8565b9261556d565b601154828193614a97575b5050604051632eec7b5560e11b8152600481018390529290506020836024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610b0157614a41946020945f93614a76575b506040516363fdc96f60e11b8152600481019490945260248401919091526001600160a01b0316604483015260a060648301525f60a4830181905260848301819052919384928391829060c4820190565b03926001600160a01b03165af18015610b0157614a5b5750565b614a739060203d602011612281576122748183612d8d565b50565b5f919350614a9090863d8811611d5757611d498183612d8d565b92906149f0565b614aa0926158c3565b5f8181614990565b6001600160c01b039081165f1901919082116108d057565b92909695949391640100000000851015614cc657614adc613a38565b614ae5816123a9565b60038114159081614cb1575b5080614c82575b614c66576001600160a01b0388165f908152600e60205260409020614b1c906109f2565b6001600160c01b038116151590869082614c4e575b5050614c2d57604080516001600160a01b038a1660208201908152614b7d92614b779290614b62908290810161493e565b5190206bffffffffffffffffffffffff191690565b60601c90565b6001600160a01b0381165f90815260096020908152604080832060088a901c8452909152902054600160ff88161b16614c0c5790614be76002614be1612f139a9b61046b8a612678614c069a999860018060a01b03165f52600960205260405f2090565b01615224565b9491608093916040519384526020840152604083015260608201522090565b9061583b565b632939af3b60e21b5f526001600160a01b038916600452602486905260445ffd5b632939af3b60e21b5f526001600160a01b038816600452602485905260445ffd5b614c5d91925061233b90614aa8565b1015855f614b31565b6304bba81f60e41b5f526001600160a01b03881660045260245ffd5b506001600160a01b0388165f908152600f60205260409020614cac9061116c905460081c60ff1690565b614af8565b60029150614cbe816123a9565b14155f614af1565b6309f6605160e41b5f52600485905260245ffd5b60200135614ce781612f2c565b63ffffffff81169062030d408210614cfd575050565b614d0690612f2c565b630555d0f160e41b5f5260045262030d4060245260445ffd5b9091614e0857614d2d614e0c565b916001600160a01b03808416908316141580614d84575b614d4d57505050565b604051631326f75560e11b81526001600160a01b039283166004820152929091166024830152604482015260206064820152608490fd5b50604051631a45b42760e11b815260208180614da68386888a6004860161412f565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610b01575f91614de9575b5015614d44565b614e02915060203d60201161340e576134008183612d8d565b5f614de2565b5050565b601436101580614e33575b15614e2f5760131936013681116104e2573560601c90565b3390565b50337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614614e17565b601454600160401b811015612d375760018101601455601454811015612c725760145f527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec0155565b8054905f815581614ebd575050565b816003029160038304036108d0575f5260205f20908101905b818110614ee1575050565b6003905f81555f60018201555f600282015501614ed6565b9190811015612c725760071b0190565b8054821015612c72575f52600360205f20910201905f90565b3561296381612f45565b8054600160401b811015612d3757614f4991600182018155614f09565b614fd4576002614fb76060612f139480358555600185016020820135614f6e81612f3a565b815460ff70ffffffffffffffffffffffffffffffff006040860135614f9281612f45565b60081b1692169070ffffffffffffffffffffffffffffffffff19161717905501614f22565b9101906001600160801b03166001600160801b0319825416179055565b634e487b7160e01b5f525f60045260245ffd5b90919392934682148015615121575b61489a5761500c825f52600760205260405f2090565b5483111561489a576150839261502a835f52600760205260405f2090565b5561503d825f52600260205260405f2090565b5561505661116c611f90835f52601060205260405f2090565b6150f1575b615075615070825f52601560205260405f2090565b614eae565b5f52601560205260405f2090565b905f5b8181106150935750505050565b806150aa6150a46001938588614ef9565b85614f2c565b6150b5818487614ef9565b356150d1610958848060a01b03925f52600d60205260405f2090565b16806150df575b5001615086565b6150e98286614f09565b50555f6150d8565b615113615106825f52601060205260405f2090565b805460ff19166001179055565b61511c81614e65565b61505b565b508115614ff6565b6020821015612c725701905f90565b9160208301906151488254612c95565b92838355839463ffffffff948581116151c957505f95915b6020871061518157845463515447c160e01b5f52600452602486905260445ffd5b6001808416146151b65761519861105f8884615129565b5f5260205260016151ad60405f209360011c90565b96019591615160565b9350612f1394506115e492959150615129565b63515447c160e01b5f52600452602485905260445ffd5b906020811015612c725760051b0190565b61042081019392915f825b6020821061520e575050506104000152565b60208060019285518152019301910190916151fc565b60208101549081156152c257615238613455565b905f5b60208110615292575050604051634a490c2560e01b815291602091839182916152689190600484016151f1565b0381730b2b545a4e2fd65d29f2417f1b26698d71769a8f5af4908115610b01575f9161429e575090565b80600180921b85166152a5575b0161523b565b6152b261105f8285615129565b6152bc82866151e0565b5261529f565b50507f27ae5ba08d7291c96c8cbddcc148bf48a6d68c7974b94356f53754ef6171d75790565b949091939550615303600160125401806012554260801b1790565b6011546060860151604051634cba057b60e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f000000000000000000000000000000000000000000000000000000000000000016602482015260448101929092527f00000000000000000000000000000000000000000000000000000000000000006064830152608482015260a481018590526001600160401b039790971660c488015260e487019190915260016101048701526101248601525f8561014481730b2b545a4e2fd65d29f2417f1b26698d71769a8f5af4938415610b0157612f13955f95615405575b50615b6f565b6154229195503d805f833e61541a8183612d8d565b81019061382f565b935f6153ff565b5f9080515f915b81831061546357505050620124f8810290808204620124f814901517156108d057620493e00180620493e0116108d05790565b9091926040615472858461311c565b5101515181018091116108d057926001019190615430565b91908260409103126104e257602082516154a3816128db565b92015190565b6001600160a01b0391821681526001600160401b039092166020830152918216604082015260608101929092529182166080820152911660a082015260c081019190915261014060e0820181905290949392916155089186019061434a565b848103610100860152602080835192838152019201905f5b818110615542575050506001600160a01b039091166101209390930192909252565b825180516001600160a01b031685526020908101518186015260409094019390920191600101615520565b92909192615579614e0c565b9283826157205750604051632f8eeb3d60e01b8152466004820152602081602481738f1a249e79030d4fac2102aa33e36e6676e048e45af4908115610b01576040946156449287925f91615701575b50975b6155d66103fd612ef7565b946001600160a01b038a16156156fb57835b8851630d6aca6560e31b81529a8b9889987f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060048c016154a9565b038173d331f229eeeeb32e54b85fe4a0997627913fb9a55af4918215610b01575f905f936156c7575b50615676575050565b61475e816156a5847f49a226512c7c6d0448c9d048f6243d67cab6c593596a82f21224aa748d1c5d5e94615cb8565b604080519485526001600160a01b039091166020850181905293918291820190565b90506156ec91925060403d6040116156f4575b6156e48183612d8d565b81019061548a565b91905f61566d565b503d6156da565b5f6155e8565b61571a915060203d602011611d5757611d498183612d8d565b5f6155c8565b615644906040945f976155cb565b61040061042092959493610440830196835260208301370152565b9092602090600161576a8460018060a01b03165f52600a60205260405f2090565b01549461578b60405195869384936307fbe4d560e41b85526004850161572e565b0381730b2b545a4e2fd65d29f2417f1b26698d71769a8f5af4918215610b01575f9261581a575b50828214615815576001600160a01b03165f908152600c60205260409020905f5b600481106157e15750505090565b6157ee61105f82856131a5565b8015158061580c575b61580457506001016157d3565b935050505090565b508083146157f7565b505090565b61583491925060203d602011612281576122748183612d8d565b905f6157b2565b9260209161585d60405194859384936307fbe4d560e41b85526004850161572e565b0381730b2b545a4e2fd65d29f2417f1b26698d71769a8f5af4908115610b01575f916158a4575b50818103615890575050565b6272c3e960e11b5f5260045260245260445ffd5b6158bd915060203d602011612281576122748183612d8d565b5f615884565b906158cd826139bb565b808211615aa657506158e26103fd8385614678565b906001600160a01b03821615615a85576001600160a01b038316935f9261eeee8614801592908590615a7d57506040516370a0823160e01b81523060048201526020816024818b5afa908115610b01575f91615a5e575b509461594685848a615d16565b823b156104e257604051639e6eec0560e01b815260048101929092526001600160a01b0387166024830152604482018590525f6064830181905260c0608484015260c4830181905260e060a484015260e4830181905291928391610104918391905af18015610b0157615a4a575b506159c0575b50505050565b6159c991612cea565b6040516370a0823160e01b815230600482015292909190602090849060249082905afa928315610b01575f93615a29575b50818303615a0857806159ba565b63884aa24960e01b5f526001600160a01b031660045260245260445260645ffd5b615a4391935060203d602011612281576122748183612d8d565b915f6159fa565b80610af55f615a5893612d8d565b5f6159b4565b615a77915060203d602011612281576122748183612d8d565b5f615939565b945083615946565b63b61c181f60e01b5f5260048490526001600160a01b03831660245260445ffd5b6360ec3e7160e01b5f5260049190915260245260445ffd5b91906040838203126104e25782516001600160401b0381116104e257830181601f820112156104e257805190615af382612f15565b92615b016040519485612d8d565b82845260208085019360061b830101918183116104e257602001925b828410615b355750505050602061296391930161409e565b6040848303126104e25760206040918251615b4f81612d57565b8651615b5a81610e12565b81528287015183820152815201930192615b1d565b91939293615b806080850151615429565b948115615c965790615bad615c0796610434615ba460405f96015163ffffffff1690565b63ffffffff1690565b60405163111504cd60e31b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152909416602485015260448401919091529194859081906064820190565b038173d331f229eeeeb32e54b85fe4a0997627913fb9a55af4918215610b0157615c6e61493e615c51615c6095612f13985f91615c73575b50965b6040519283916020830161395d565b604051948591602083016148c1565b03601f198101855284612d8d565b61556d565b615c8f91503d805f833e615c878183612d8d565b810190615abe565b505f615c3f565b505050612f1392615c6091615c6e61493e615c51615cb26148d8565b96615c42565b60018060a01b031690815f52600660205260405f208054908282018092116108d05755600454908082018092116108d0577feabe38586436d533b7eadb14fb6c3fd63dbb07d41e234f29313b28bf067a891f91600455614742614e0c565b60405163095ea7b360e01b5f9081526001600160a01b03841660045260248590529193929160209060448180885af19060015f5114821615615dc0575b60405215615d6057505050565b615d6a8184615dcf565b15615da25790615d7a9183615e34565b15615d825750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b635274afe760e01b5f9081526001600160a01b038416600452602490fd5b90843b15153d15161690615d53565b60405163095ea7b360e01b5f9081526001600160a01b03909316600452602483905290929160209060448180875af19260015f5114841615615e12575b50604052565b60018492941516615e2b573b15153d151616915f615e0c565b833d5f823e3d90fd5b92916040519163095ea7b360e01b5f5260018060a01b031660045260245260205f60448180875af19260015f5114841615615e12575060405256fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a164736f6c634300081c000af0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00",
2460
+ "deployedBytecode": "0x6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063014dc2a61461037057806301ffc9a71461036b57806303da64a814610366578063056965111461036157806306433b1b1461035c5780630ce92d4b1461035757806311cda415146103525780631d831d5c1461034d57806322c9cc0f14610348578063293c4999146103435780633a5de07d1461033e5780633bef5ad5146103395780633f827a5a146103345780633fafa1271461032f5780634035d3b11461032a5780634ca0e69b146103255780634e415ad6146103205780634f0677e11461031b5780635417694914610316578063572b6c05146103115780635de4e83a1461030c5780636284386a14610307578063663d00f6146103025780636d9e384b146102fd5780636f4115a9146102f857806373cbdfc6146102f357806375451559146102ee5780637d1d0c5b146102a85780637da0a877146102e95780637de6fba2146102e4578063802c8fa0146102df57806385572ffb146102da57806388bc2ef3146102d557806392ee1ea7146102d05780639e6d7d43146102cb578063af629bbb146102c6578063b0f479a114610271578063b71c1179146102c1578063bf557aee146102bc578063c19d93fb146102b7578063c1ca1ec7146102b2578063cbb2adce146102ad578063cdfceeba146102a8578063cf26bafb146102a3578063d5f394881461029e578063d935222f14610299578063eac1f29e14610294578063f13465431461028f578063f3aefd7b1461028a578063f434c91414610285578063f925558c14610280578063fc072f231461027b578063fe4b84df146102765763fe5f42ca0361000e575b61203c565b612baf565b612ae8565b612aad565b612a69565b612966565b6128e5565b6128a0565b6127c3565b61279c565b61277f565b6117ba565b61259c565b6123f2565b6123c7565b612369565b612080565b611ed1565b611eaa565b611e8d565b611e49565b611a79565b61196e565b611838565b6117f4565b61175f565b611735565b6116fb565b611679565b611410565b611333565b6112a7565b61124f565b61112d565b611110565b610ff4565b610e6c565b610e23565b610df5565b610dda565b610db0565b610d93565b610d4f565b610c01565b610b43565b610b21565b610680565b61063c565b6105f9565b610593565b6104e6565b60203660031901126104e2576004356001600160401b0381116104e257366023820112156104e2578060040135906001600160401b0382116104e257602481019060243691606085020101116104e2575f5f5b83811061045557508061044457505f91905b5f925f925b80841061041657848034116103eb57005b610018906104106104096103fd614e0c565b6001600160a01b031690565b9134612cea565b90613f34565b9091929361043a6001916104348561042f89878a612c62565b613bd4565b90612ccf565b94019291906103da565b61044e9034612ca3565b91906103d5565b61048461046b610466838787612c62565b612c77565b6001600160a01b03165f908152600e6020526040902090565b6040610491838787612c62565b01351590816104bd575b506104a9575b6001016103c3565b906104b5600191612c95565b9190506104a1565b905060226104cc825460401c90565b9101546001600160c01b0390911614155f61049b565b5f80fd5b346104e25760203660031901126104e25760043563ffffffff60e01b81168091036104e257610534906385572ffb60e01b8114908115610538575b5060405190151581529081906020820190565b0390f35b6314a66dd360e21b811491508115610582575b8115610571575b8115610560575b505f610521565b6301ffc9a760e01b1490505f610559565b633d0d324560e21b81149150610552565b6332af4eb960e21b8114915061054b565b346104e25760203660031901126104e2576004356001600160401b0381116104e257366023820112156104e25780600401356001600160401b0381116104e2573660246104c08302840101116104e25760246100189201612e16565b5f9103126104e257565b346104e2575f3660031901126104e25760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346104e2575f3660031901126104e2576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b60603660031901126104e2575f6106976004612c77565b6001600160a01b0381165f908152600f602052604090206044359291906106c290613415565b613415565b906106d06020830151151590565b610b06576106de6004614cda565b60115461072b6106ed826140a9565b6106f5614e0c565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116949116841491614d1f565b803b156104e2576040516303827e8d60e01b81526001600160a01b03831660048201527f0000000000000000000000000000000000000000000000000000000000000000602482015260448101869052905f90829060649082905afa8015610b0157610ae7575b50606082018051858115159182610adc575b505080610ad3575b80610ab0575b610a8f5784159485159384610a26575b86806109d5575b61098d575b509061085092916108a395968580610983575b80610978575b80610941575b610916575b1561090f5750515b806108d5575b61083261080d6024613bca565b61081f610818612f04565b9615158752565b5f602087015263ffffffff166040860152565b60608401526001600160a01b03165f908152600f6020526040902090565b815181546020840151604085015165ffffffffffff1990921660ff931515939093169290921791151560081b61ff00169190911760109190911b65ffffffff000016178155606090910151600190910155565b8034116108ac57005b6001600160a01b036108bc614e0c565b169034033481116108d05761001891613f34565b612c81565b61090a826108eb835f52600d60205260405f2090565b80546001600160a01b0319166001600160a01b03909216919091179055565b610800565b90506107fa565b61093c61092c84515f52600d60205260405f2090565b80546001600160a01b0319169055565b6107f2565b5061096561095884515f52600d60205260405f2090565b546001600160a01b031690565b6001600160a01b038581169116146107ed565b5081835114156107e7565b50825115156107e1565b6001600160a01b0384165f908152600f602052604090206108a39650610850949392916109ca916109c3905b805460ff19169055565b8434614780565b3495509091926107ce565b506001600160a01b0384165f908152600e602052604090206109f9905b5460401c90565b6001600160a01b0385165f908152600e60205260409020602201546001600160c01b0390911614156107c9565b610a3b610958835f52600d60205260405f2090565b6001600160a01b0381168015159081610a7b575b50610a5a57506107c2565b63d6a305d960e01b5f5260048390526001600160a01b031660245260445b5ffd5b6001600160a01b038716141590505f610a4f565b5163aef430a360e01b5f526001600160a01b0390911660045260245260445ffd5b506001600160a01b0382165f908152600e602052604090206022015415156107b2565b508415156107ac565b14159050855f6107a4565b80610af55f610afb93612d8d565b806105ef565b5f610792565b612e0b565b6304bba81f60e41b5f526001600160a01b031660045260245ffd5b346104e2575f3660031901126104e2576020610b3b612ef7565b604051908152f35b346104e2575f3660031901126104e2576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b92919060408401906040855280518092526020606086019101915f5b818110610bb557505060209150930152565b9091602060806001926001600160801b036060885163ffffffff815116845260ff8682015116868501528260408201511660408501520151166060820152019401910192919092610ba3565b346104e25760203660031901126104e25760043560115490805f52601560205260405f2091604051928391633a37eccb60e01b8352606483019060018060a01b037f0000000000000000000000000000000000000000000000000000000000000000166004850152602484015260606044840152815480915260848301915f5260205f20905f5b818110610d095750505090805f920381730b2b545a4e2fd65d29f2417f1b26698d71769a8f5af4918215610b01575f92610ce1575b50610cd0905f52600760205260405f2090565b549061053460405192839283610b87565b610cd0919250610d02903d805f833e610cfa8183612d8d565b810190612f56565b9190610cbd565b8254845260018084015460ff8116602087015260081c6001600160801b039081166040870152600285015416606086015287955060809094019360039093019201610c88565b346104e2575f3660031901126104e2576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104e2575f3660031901126104e257602060405162030d408152f35b346104e25760203660031901126104e2576004355f526002602052602060405f2054604051908152f35b346104e2575f3660031901126104e257602060405160018152f35b346104e2575f3660031901126104e2576020601154604051908152f35b6001600160a01b038116036104e257565b346104e25760403660031901126104e257600435610e4081610e12565b6024359060018060a01b03165f52600160205260405f20905f52602052602060405f2054604051908152f35b346104e25760203660031901126104e2576004356001600160401b0381116104e2578060040190604060031982360301126104e257303303610ef857600160ff610eb58461302b565b1603610ed257610018916024610ecc920190613035565b90613f90565b610a78610ede8361302b565b63e667c12560e01b5f5260ff166004526001602452604490565b610a78610f04336103fd565b63f957028d60e01b5f52600452602490565b602081016020825282518091526040820191602060408360051b8301019401925f915b838310610f4857505050505090565b9091929394603f1982820301835285519060808101918051825260208101516020830152604081015192608060408401528351809152602060a084019401905f905b808210610fb0575050506060908101519101529460209081019493600101920190610f39565b909194602060806001926001600160801b0360608a518051845260ff8682015116868501528260408201511660408501520151166060820152019601920190610f8a565b346104e2575f3660031901126104e25760145461101081612f15565b9061101e6040519283612d8d565b808252601f1961102d82612f15565b015f5b8181106110e05750505f5b81811061105057604051806105348582610f16565b8061106961105f60019361306a565b90549060031b1c90565b61107b815f52600260205260405f2090565b546110ba611091835f52601560205260405f2090565b6110a3845f52600760205260405f2090565b54926110ad612f04565b9485526020850152613082565b604083015260608201526110ce828661311c565b526110d9818561311c565b500161103b565b6020906040516110ef81612d1c565b5f81525f83820152606060408201525f606082015282828701015201611030565b346104e2575f3660031901126104e2576020600454604051908152f35b346104e25760403660031901126104e2575f516020615e705f395f51905f52546004356024356001600160401b0361117d604085901c60ff1615611170565b1590565b946001600160401b031690565b1680159081611247575b600114908161123d575b159081611234575b50611225576111b491836111ab613130565b61121857614041565b6111ba57005b6111e460ff60401b195f516020615e705f395f51905f5254165f516020615e705f395f51905f5255565b604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29080602081015b0390a1005b61122061315d565b614041565b63f92ee8a960e01b5f5260045ffd5b9050155f611199565b303b159150611191565b849150611187565b346104e25760203660031901126104e257602060043561126e81610e12565b6040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b039081169216919091148152f35b346104e25760203660031901126104e2576105346004355f604080516112cc81612d3c565b8281528260208201520152805f52600260205260405f205490805f52600760205260405f2054906040519261130084612d3c565b83526020830152604082015260405191829182919091604080606083019480518452602081015160208501520151910152565b346104e25760203660031901126104e25760043564ffffffffff8116908181036104e25761135f614057565b61137360115461136e816140a9565b614167565b6212750042018042116108d05782151580611406575b6113e857506113b87f455efa76af2a8686dc0dd3041bda89ece5ba4691277d525e2161003bbca8b24592600855565b6113c0614e0c565b6040805164ffffffffff90931683526001600160a01b03909116602083015281908101611213565b630111a46b60e21b5f5264ffffffffff90911660045260245260445ffd5b5080831115611389565b60203660031901126104e2576004356001600160401b0381116104e257806004019060c060031982360301126104e257611449306103fd565b339081036116675750600160ff61145f8461302b565b1603610ed25760248101356001600160a01b03165f818152600a6020526040902061001893610ecc93909260a492606483019061149b8261319b565b81546001600160401b0390811691168110156115ef5750611539826001926115036114e67fc69d3412489554fb7820c4c2784cb644b6c79bfc117444b93977d3d33a9b8eac9661319b565b825467ffffffffffffffff19166001600160401b03909116178255565b608487013593849101557f27ae5ba08d7291c96c8cbddcc148bf48a6d68c7974b94356f53754ef6171d75783036115885761319b565b9261157d611545614e0c565b604080516001600160401b03909716875260208701949094526001600160a01b03908116938601939093529116929081906060820190565b0390a25b0190613035565b6115ea836115e46115bb6115b56115af8a60018060a01b03165f52600b60205260405f2090565b54612cc1565b60031690565b6001600160a01b0389165f908152600b60209081526040808320849055600c90915290206131a5565b906131b4565b61319b565b905061161b7f2eb8abf720d2b9cf9e357f7a24a2bee502a7bdba38de0de230e10c33dafbd3eb9261319b565b9261165f611627614e0c565b604080516001600160401b0397881681529490961660208501526001600160a01b039081169584019590955293169281906060820190565b0390a2611581565b610a78906001600160a01b0316610f04565b346104e25760203660031901126104e25760043561169681610e12565b61169e6131d1565b5060018060a01b03165f52600a60205260405f206001604051916116c183612d57565b6001600160401b038154168352015460208201526040518091610534826040810192602080916001600160401b0381511684520151910152565b346104e2575f3660031901126104e25760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346104e25760203660031901126104e2576004355f526007602052602060405f2054604051908152f35b346104e25760203660031901126104e2576004356001600160401b0381116104e257366023820112156104e25780600401356001600160401b0381116104e2573660248260051b840101116104e25760246100189201613253565b346104e2575f3660031901126104e25760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346104e2575f3660031901126104e2576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104e25760203660031901126104e25760043561185581610e12565b5f606060405161186481612d1c565b828152826020820152826040820152015260018060a01b03165f52600f60205261053460405f2060016040519161189a83612d1c565b63ffffffff815460ff81161515855260ff8160081c161515602086015260101c1660408401520154606082015260405191829182919091606080608083019480511515845260208101511515602085015263ffffffff60408201511660408501520151910152565b81516001600160401b031681526020808301516001600160c01b031690820152604080830151908201526060918201518051610480830194935f9084015b60208210611958575050506020610460910151910152565b6020806001928551815201930191019091611940565b346104e25760203660031901126104e25760043561198b81610e12565b6040519061199882612d1c565b5f82525f60208301525f60408301526040516119b381612d57565b6060610400936040516119c68682612d8d565b8536823783525f6020840152015260018060a01b03165f52600e60205260405f2090604051906119f582612d1c565b82546001600160401b038116835260401c60208301526001830154604083015260405190611a2282612d57565b60405190600285015f835b60208210611a63575050509381611a4961053496602294612d8d565b835201546020820152606082015260405191829182611902565b6001602081928554815201930191019091611a2d565b346104e25760203660031901126104e2576004356001600160401b0381116104e2578060040160a060031983360301126104e2577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03811633819003610ef857611afb6103fd611af3604487018661346b565b81019061294e565b611b096103fd6103fd612ef7565b6001600160a01b03821614801590611e08575b611df25750611b39611b31606486018561346b565b8101906134b8565b9060ff811680611d80575050611b5a8160208060849451830101910161382f565b940190611b67828561352b565b905060018111611d6e57611c635750604084015180611c4e57505b61eeee602085015114611bd9575b505050303b156104e2575f611bb9916040518093819263331e807b60e11b83526004830161395d565b038183305af18015610b0157611bcb57005b80610af55f61001893612d8d565b611bf89073d331f229eeeeb32e54b85fe4a0997627913fb9a59361352b565b9092803b156104e257611c24935f9360405195869485938493631446f65760e21b8552600485016138fb565b03915af48015610b0157611c3a575b8080611b90565b80610af55f611c4893612d8d565b5f611c33565b60016272c62f60e11b03195f5260045260245ffd5b611c76611c70838661352b565b906138dd565b90602086015161eeee81145f14611d5e575060206004916040519283809263e861e90760e01b82525afa908115610b01575f91611d2f575b506001600160a01b03165b611cc282612c77565b6001600160a01b03828116911603611d02575060200135604085015190818110611ced575050611b82565b635231144f60e11b5f5260045260245260445ffd5b611d0e610a7892612c77565b6346f21d7f60e01b5f526001600160a01b0390811660045216602452604490565b611d51915060203d602011611d57575b611d498183612d8d565b8101906138e6565b5f611cae565b503d611d3f565b6001600160a01b03169050611cb9565b6330b6751d60e01b5f5260045260245ffd5b919593509150600103611ddd5750906084611d9c92019061352b565b809150611d6e575080602080611db7935183010191016136cf565b303b156104e2575f611bb99160405180938192634ca0e69b60e01b83526004830161380b565b638664a67360e01b5f5260ff1660045260245ffd5b610a7890610f04906001600160a01b03166103fd565b50611e156024860161319b565b6001600160401b03807f00000000000000000000000000000000000000000000000000000000000000001691161415611b1c565b346104e2575f3660031901126104e2576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104e2575f3660031901126104e2576020604051620493e08152f35b346104e25760203660031901126104e2576020610b3b600435611ecc81610e12565b6139bb565b346104e25760a03660031901126104e257606435604435602435600435611ef784610e12565b60843592811561202d5782156120195760115460405163ea78803f60e01b8152600481018290526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610b01575f91611ffa575b506001600160a01b0316908115611fe857506001600160a01b0386165f908152600f60205260409020611f979061116c905b5460ff1690565b611fcc576100189591611fbf84611fc693611fb0614057565b611fb8614e0c565b30916142bd565b82846143d2565b916144aa565b63027edf0360e11b5f526001600160a01b03861660045260245ffd5b6309794d0160e11b5f5260045260245ffd5b612013915060203d602011611d5757611d498183612d8d565b5f611f5e565b63b2fe07f160e01b5f52600483905260245ffd5b632bcf4c5760e21b5f5260045ffd5b346104e2575f3660031901126104e2576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b60203660031901126104e25760043561209881610e12565b6001600160a01b0381165f908152600f602052604090206120b890613415565b602081015161234d576001600160a01b0382165f908152600e60205260409020600181015490811580612327575b6122ca575050604051634211591560e01b8152916020836004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa928315610b01575f936122a9575b5082341061229157826121506100189434612cea565b907f000000000000000000000000000000000000000000000000000000000000000061217b816145e3565b5f91906001600160a01b031680151580612288575b6121c9575b505015806121c0575b6121a9575b50614780565b6121ba906121b5614e0c565b6146e4565b5f6121a3565b5080151561219e565b61223b9160209185806121da614e0c565b936040519687958694859363fef4325760e01b855260048501916101209391835261eeee6020840152604083015260018060a01b031660608201525f608082015260e060a08201525f60e082015261010060c08201525f6101008201520190565b03925af1908161225b575b50612253575b5f80612195565b50600161224c565b61227c9060203d602011612281575b6122748183612d8d565b810190613a29565b612246565b503d61226a565b50831515612190565b630ee99a4760e01b5f5234600452602483905260445ffd5b6122c391935060203d602011612281576122748183612d8d565b915f61213a565b612323816122df602287940154915460401c90565b60405163096c1e2160e21b81526001600160a01b039094166004850152602484019490945260448301526001600160c01b0390921660648201529081906084820190565b0390fd5b50602281015461234761233b835460401c90565b6001600160c01b031690565b146120e6565b6304bba81f60e41b5f526001600160a01b03821660045260245ffd5b346104e25760203660031901126104e25760043561238681610e12565b60018060a01b03165f52600f6020526020600160405f2001541515604051908152f35b600411156123b357565b634e487b7160e01b5f52602160045260245ffd5b346104e2575f3660031901126104e2576123df613a38565b60405160048210156123b3576020918152f35b5f3660031901126104e257612405614057565b6124ce61241d600160125401806012554260801b1790565b60115460405163f1d0f27760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f000000000000000000000000000000000000000000000000000000000000000016602482015260448101919091527f000000000000000000000000000000000000000000000000000000000000000060648201526001608482015260a48101829052915f908390819060c4820190565b0381730b2b545a4e2fd65d29f2417f1b26698d71769a8f5af4908115610b0157610018925f92612544575b507f77bd1556265e71d247f11bb5886efda7fd5e5b21e6a4d2c871e8e6b49ac92f3d90612524614e0c565b604080519283526001600160a01b0391909116602083015290a134614911565b7f77bd1556265e71d247f11bb5886efda7fd5e5b21e6a4d2c871e8e6b49ac92f3d919250612583903d805f833e61257b8183612d8d565b8101906136cf565b91906124f9565b6104c09060031901126104e257600490565b346104e2576125aa3661258a565b80359060608101356125bb83610e12565b608082013560408301359260a0810135602082013560c0830164010000000082101561276c576001600160a01b0388165f908152600960209081526040808320600886901c8452909152902054600160ff84161b1661274b57918661273e836126ea86828d6126e56100189f9a838f8f6127469f9e8d917fa8d6760b4e1a89f513fc87990f66d051c419d735fb8191104014e0529d9ae2d39f936126938f93956126786126b19760018060a01b03165f52600960205260405f2090565b8160081c5f52602052600160ff60405f2092161b8154179055565b91608093916040519384526020840152604083015260608201522090565b84816126df846126d2839960018060a01b03165f52600160205260405f2090565b905f5260205260405f2090565b55615749565b61583b565b6126f386612c77565b936126fc614e0c565b604080519586526001600160a01b03968716602087015285018b9052606085018a9052608085019290925260a084015290921660c082015290819060e0820190565b0390a1612c77565b614985565b632939af3b60e21b5f526001600160a01b038816600452602482905260445ffd5b506309f6605160e41b5f5260045260245ffd5b346104e2575f3660031901126104e2576020600354604051908152f35b346104e2575f3660031901126104e2575f546040516001600160a01b039091168152602090f35b346104e2576100186127d43661258a565b60608101356127e282612c77565b9161274660808201359161280d60408201359560a0830135602084013590888760c08701948a614ac0565b600161281b61046b83612c77565b01612827848254612cea565b90556001600160a01b03851661283c82612c77565b7fe33107c4043e574d8a4da32dac235e219f8f34a0e45e473ea6643a6145f25285612898612868614e0c565b60408051898152602081018b90526001600160a01b03928316918101919091529381169416929081906060820190565b0390a3612c77565b346104e25760203660031901126104e2576004356128bd81610e12565b60018060a01b03165f526006602052602060405f2054604051908152f35b801515036104e257565b346104e25760203660031901126104e25761290a600435612905816128db565b613adf565b6040518091602082016020835281518091526020604084019201905f5b818110612935575050500390f35b8251845285945060209384019390920191600101612927565b908160209103126104e2573561296381610e12565b90565b346104e25760203660031901126104e25760043561298381610e12565b6001600160a01b038116908115612a565761299c614e0c565b6001600160a01b0381165f81815260066020526040902054909290918215612a3b576001600160a01b03165f9081526006602052604081207ffbcfe54e4aa35e7772f25a5f52fedccde889e4fc5031ad9826b9bf6b890baa599392612a1792849255612a12612a0d83600454612cea565b600455565b613f34565b612a1f614e0c565b604080519283526001600160a01b0391909116602083015290a3005b631733ad2160e21b5f526001600160a01b031660045260245ffd5b63b2fe07f160e01b5f525f60045260245ffd5b346104e2575f3660031901126104e2576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104e25760203660031901126104e257600435612aca81610e12565b60018060a01b03165f526005602052602060405f2054604051908152f35b346104e25760203660031901126104e257600435612b0581610e12565b6001600160a01b038116908115612a5657612b1e614e0c565b6001600160a01b0381165f81815260056020526040902054909290918215612b94576001600160a01b03165f9081526005602052604081207f1e70ff8443e61b2a2555b5ad56645461a75dd29591b5c4a6281f70a6d395db459392612a1792849255612a12612b8f83600354612cea565b600355565b63578a51dd60e11b5f526001600160a01b031660045260245ffd5b346104e25760203660031901126104e2575f516020615e705f395f51905f52546004356001600160401b03612bf3604084901c60ff1615936001600160401b031690565b1680159081612c46575b6001149081612c3c575b159081612c33575b50611225576111b49082612c21613130565b1561401157612c2e61315d565b614011565b9050155f612c0f565b303b159150612c07565b839150612bfd565b634e487b7160e01b5f52603260045260245ffd5b9190811015612c72576060020190565b612c4e565b3561296381610e12565b634e487b7160e01b5f52601160045260245ffd5b5f1981146108d05760010190565b8115612cad570490565b634e487b7160e01b5f52601260045260245ffd5b90600182018092116108d057565b919082018092116108d057565b5f198101919082116108d057565b919082039182116108d057565b9190811015612c72576104c0020190565b634e487b7160e01b5f52604160045260245ffd5b608081019081106001600160401b03821117612d3757604052565b612d08565b606081019081106001600160401b03821117612d3757604052565b604081019081106001600160401b03821117612d3757604052565b60a081019081106001600160401b03821117612d3757604052565b90601f801991011681019081106001600160401b03821117612d3757604052565b6104009092919260c0806104c08301958035612dc981610e12565b60018060a01b031684526020810135602085015260408101356040850152606081013560608501526080810135608085015260a081013560a085015201910137565b6040513d5f823e3d90fd5b5f5b828110612e2457505050565b612e2f818484612cf7565b90303b156104e257612e585f600193604051809381926365d956e760e11b835260048301612dae565b038183305af19081612ee3575b50612ede57612e78610466828686612cf7565b7fc1054f794d197971822697afa7ff4777cac6fb7a512e4bfec63aebaab98187b66020612ea6848888612cf7565b013591612eb1614e0c565b604080519485526001600160a01b0391909116602085015260a086901b8690039190911692a25b01612e18565b612ed8565b80610af55f612ef193612d8d565b5f612e65565b6013548061296357503090565b60405190612f13608083612d8d565b565b6001600160401b038111612d375760051b60200190565b63ffffffff8116036104e257565b60ff8116036104e257565b6001600160801b038116036104e257565b6020818303126104e2578051906001600160401b0382116104e2570181601f820112156104e257805190612f8982612f15565b92612f976040519485612d8d565b82845260208085019360071b830101918183116104e257602001925b828410612fc1575050505090565b6080848303126104e2576020608091604051612fdc81612d1c565b8651612fe781612f2c565b815282870151612ff681612f3a565b83820152604087015161300881612f45565b6040820152606087015161301b81612f45565b6060820152815201930192612fb3565b3561296381612f3a565b903590601e19813603018212156104e257018035906001600160401b0382116104e257602001918160051b360383136104e257565b601454811015612c725760145f5260205f2001905f90565b90815461308e81612f15565b9261309c6040519485612d8d565b81845260208401905f5260205f205f915b8383106130ba5750505050565b600360206001926040516130cd81612d1c565b855481526001600160801b038587015460ff81168584015260081c1660408201526001600160801b0360028701541660608201528152019201920191906130ad565b805115612c725760200190565b8051821015612c725760209160051b010190565b60016001600160401b03195f516020615e705f395f51905f525416175f516020615e705f395f51905f5255565b600160401b60ff60401b195f516020615e705f395f51905f525416175f516020615e705f395f51905f5255565b6001600160401b038116036104e257565b356129638161318a565b6004821015612c725701905f90565b916131cd9183549060031b91821b915f19901b19161790565b9055565b604051906131de82612d57565b5f6020838281520152565b9190811015612c725760051b0190565b604080825281018390529293929160608301905f5b818110613229575050602091509360018060a01b0316910152565b9091602080600192863561323c81610e12565b848060a01b0316815201940191019291909261320e565b9190601154613261816140a9565b613269614e0c565b916001600160a01b03808416908316141580613380575b613349575050505f5b8181106132d057507f8021bce60b20a9afb57085869a3552e0ee5b272b868df894fb30c5e90e74c07291926132cb6132bf614e0c565b604051938493846131f9565b0390a1565b806132de60019284876131e9565b356132e881610e12565b828060a01b03165f52600f60205261330760405f2060ff198154169055565b61334361333461331b61046684878a6131e9565b6001600160a01b03165f908152600f6020526040902090565b805461ff001916610100179055565b01613289565b604051631326f75560e11b81526001600160a01b039283166004820152929091166024830152604482015260236064820152608490fd5b50604051631a45b42760e11b8152602081806133a3602386888a6004860161412f565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610b01575f916133e6575b5015613280565b613408915060203d60201161340e575b6134008183612d8d565b81019061411a565b5f6133df565b503d6133f6565b9060405161342281612d1c565b60606001829463ffffffff815460ff81161515865260ff8160081c161515602087015260101c1660408501520154910152565b604051906104006134668184612d8d565b368337565b903590601e19813603018212156104e257018035906001600160401b0382116104e2576020019181360383136104e257565b6001600160401b038111612d3757601f01601f191660200190565b91906040838203126104e25782356134cf81612f3a565b926020810135906001600160401b0382116104e2570181601f820112156104e2578035906134fc8261349d565b9261350a6040519485612d8d565b828452602083830101116104e257815f926020809301838601378301015290565b903590601e19813603018212156104e257018035906001600160401b0382116104e257602001918160061b360383136104e257565b81601f820112156104e25780519061357782612f15565b926135856040519485612d8d565b82845260208085019360051b830101918183116104e25760208101935b8385106135b157505050505090565b84516001600160401b0381116104e25782016080818503601f1901126104e257604051906135de82612d1c565b602081015182526040810151602083015260608101516001600160401b0381116104e25760209082010185601f820112156104e257805161361e81612f15565b9161362c6040519384612d8d565b81835260208084019260071b820101908882116104e257602001915b81831061366e5750505060408301526080015160608201528152602094850194016135a2565b6080838a03126104e257602060809160405161368981612d1c565b855181528286015161369a81612f3a565b8382015260408601516136ac81612f45565b604082015260608601516136bf81612f45565b6060820152815201920191613648565b6020818303126104e2578051906001600160401b0382116104e257016040818303126104e2576040519161370283612d57565b815161370d81612f3a565b835260208201516001600160401b0381116104e25761372c9201613560565b602082015290565b9080602083519182815201916020808360051b8301019401925f915b83831061375f57505050505090565b9091929394601f1982820301835285519060808101918051825260208101516020830152604081015192608060408401528351809152602060a084019401905f905b8082106137c7575050506060908101519101529460209081019493600101920190613750565b909194602060806001926001600160801b0360608a518051845260ff86820151168685015282604082015116604085015201511660608201520196019201906137a1565b606060206129639381845260ff815116828501520151916040808201520190613734565b6020818303126104e2578051906001600160401b0382116104e257018082039160c083126104e257604080519361386585612d72565b835161387081612f3a565b8552602084015160208601528184015182860152605f1901126104e25760405161389981612d57565b60608301516138a78161318a565b815260808301516020820152606084015260a08201516001600160401b0381116104e2576138d59201613560565b608082015290565b9015612c725790565b908160209103126104e2575161296381610e12565b6001600160a01b0390911681526040602082018190528101839052606001915f5b8181106139295750505090565b909192604080600192863561393d81610e12565b848060a01b0316815260208701356020820152019401910191909161391c565b60e06080612963936020845260ff815116602085015260208101516040850152604081015160608501526139ab606082015183860190602080916001600160401b0381511684520151910152565b01519160c0808201520190613734565b6139c53082614250565b9060018060a01b031690815f52600e602052600160405f20015481039081116108d05761eeee8192146139f6575090565b905060035480821115613a235781039081116108d05760045480821115613a235781039081116108d05790565b50505f90565b908160209103126104e2575190565b6008548015613a6b57621274ff1981018181116108d0574210613a65574210613a6057600390565b600290565b50600190565b505f90565b60405190613a7f602083612d8d565b5f808352366020840137565b60408051909190613a9c8382612d8d565b6001815291601f1901366020840137565b90613ab782612f15565b613ac46040519182612d8d565b8281528092613ad5601f1991612f15565b0190602036910137565b907f00000000000000000000000000000000000000000000000000000000000000008015159283613bbf575b15613b995782613b79575b6014548315613b7057613b30613b2b82612cc1565b613aad565b935f5b828110613b505750613b43575050565b613b4d908461311c565b52565b80613b5f61105f60019361306a565b613b69828961311c565b5201613b33565b613b3081613aad565b9150613b9361116c611f90845f52601060205260405f2090565b91613b16565b909115613bb657613ba8613a8b565b90613bb28261310f565b5290565b50612963613a70565b468214159350613b0b565b3561296381612f2c565b91905f92613be181612c77565b90604081013592613c056106bd8460018060a01b03165f52600f60205260405f2090565b93613c136020860151151590565b613f0457613c2083614cda565b601154613c2f6106ed826140a9565b803b156104e2576040516303827e8d60e01b81526001600160a01b03861660048201527f0000000000000000000000000000000000000000000000000000000000000000602482015260448101839052905f90829060649082905afa8015610b0157613ef0575b5060608501918251828115159182613ee5575b505080613edc575b80613eb9575b613e985781159081159687613e30575b8280613de2575b613d94575b505061080d602087969461085096946108329489612f139b90613d8a575b80613d7f575b80613d55575b613d3a575b15613d32575051935b84613d17575b01613bca565b613d2d866108eb875f52600d60205260405f2090565b613d11565b905093613d0b565b613d5061092c84515f52600d60205260405f2090565b613d02565b50613d6c61095884515f52600d60205260405f2090565b6001600160a01b03898116911614613cfd565b508183511415613cf7565b5082511515613cf1565b6108329299508694610850969461080d93613dd3602094613dcc6109b9612f139e9d60018060a01b03165f52600f60205260405f2090565b8983614780565b9b945094965094969750613cd3565b506001600160a01b0387165f908152600e60205260409020613e03906109f2565b6001600160a01b0388165f908152600e60205260409020602201546001600160c01b039091161415613cce565b613e45610958855f52600d60205260405f2090565b6001600160a01b0381168015159081613e84575b50613e645750613cc7565b63d6a305d960e01b5f5260048590526001600160a01b031660245260445ffd5b6001600160a01b038a16141590505f613e59565b825163aef430a360e01b5f526001600160a01b03861660045260245260445ffd5b506001600160a01b0385165f908152600e60205260409020602201541515613cb7565b50811515613cb1565b14159050825f613ca9565b80610af55f613efe93612d8d565b5f613c96565b6304bba81f60e41b5f526001600160a01b03841660045260245ffd5b60405190613f2f602083612d8d565b5f8252565b6001600160a01b03165f80808085855af13d15613f8b573d613f558161349d565b90613f636040519283612d8d565b81525f60203d92013e5b15613f76575050565b630590bd2d60e41b5f5260045260245260445ffd5b613f6d565b90915f5b8381101561400b578060051b830135607e19843603018112156104e2578301908135606083013592602081013590604081013590601e19813603018212156104e25701908135916001600160401b0383116104e257602001908260071b360382136104e25760019561400594614fe7565b01613f94565b50915050565b6011555f6013556001600160a01b03614028614e0c565b166bffffffffffffffffffffffff60a01b5f5416175f55565b6011556013556001600160a01b03614028614e0c565b61405f613a38565b60048110156123b35760038114801561408b575b61407a5750565b62a7958f60e81b5f5260045260245ffd5b50614095816123a9565b60028114614073565b5190612f1382610e12565b6040516331a9108f60e11b815260048101919091526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610b01575f91614101575090565b612963915060203d602011611d5757611d498183612d8d565b908160209103126104e25751612963816128db565b6001600160a01b039182168152911660208201526040810191909152606081019190915260016080820181905260a082015260c00190565b61416f614e0c565b916001600160a01b038084169083161415806141cb575b61418f57505050565b604051631326f75560e11b81526001600160a01b0392831660048201529290911660248084019190915260448301919091526064820152608490fd5b50604051631a45b42760e11b8152602081806141ee602486888a6004860161412f565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610b01575f91614231575b5015614186565b61424a915060203d60201161340e576134008183612d8d565b5f61422a565b6001600160a01b03169061eeee82146142b7576040516370a0823160e01b81526001600160a01b03909116600482015290602090829060249082905afa908115610b01575f9161429e575090565b612963915060203d602011612281576122748183612d8d565b90503190565b6040516323b872dd60e01b5f9081526001600160a01b039384166004529290931660245260449390935260209060648180865af160015f511481161561432b575b6040919091525f606052156143105750565b635274afe760e01b5f526001600160a01b031660045260245ffd5b6001811516614341573d15833b151516166142fe565b503d5f823e3d90fd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6001600160a01b0391821681526020810192909252604082019290925291811660608301526080820192909252911660a082015260e060c082018190526129639291019061434a565b156143be57565b634e487b7160e01b5f52600160045260245ffd5b6011549193926143e76103fd80808887614678565b6001600160a01b038116156144895790602091865f6144063083614250565b95614432614412613f20565b6040516313da831760e01b8152998a97889687953093846004890161436e565b03925af1908115610b0157612f13925f92614464575b5061445e9061445983963090614250565b612cea565b146143b7565b61445e9192506144829060203d602011612281576122748183612d8d565b9190614448565b63b61c181f60e01b5f5260048490526001600160a01b03861660245260445ffd5b9193906001600160801b0385116145d0576001600160801b0383116145bd576144ee8285878691608093916040519384526020840152604083015260608201522090565b6001600160a01b0382165f908152600e602052604090209095909360028501936145188886615138565b60018601928354968188018098116108d0576145616022614567927fc92fa1150c24ee5470c272112539aab52450a5e05573e7ea7bdfb98829b893219a6145b898550154612cdc565b96615224565b92614570614e0c565b604080519b8c5260208c0198909852968a01939093526060890192909252608088019190915260a08701526001600160a01b0392831660c087015291169390819060e0820190565b0390a3565b826335bf001160e11b5f5260045260245ffd5b846335bf001160e11b5f5260045260245ffd5b604051630862026560e41b8152600481019190915261eeee60248201526020816044817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610b01575f91614643575090565b90506020813d602011614670575b8161465e60209383612d8d565b810103126104e2575161296381610e12565b3d9150614651565b604051630862026560e41b815260048101919091526001600160a01b039091166024820152602081806044810103817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610b01575f91614643575090565b60018060a01b031690815f52600560205260405f208054908282018092116108d05755600354908082018092116108d0577f2a3798c6648c17f70b43a33a8378cec543367ac1543e62aa7b3926605697177791600355614742614e0c565b604080519283526001600160a01b039091166020830152819081015b0390a2565b6001600160401b03166001600160401b0381146108d05760010190565b906060830151156148a157614793614057565b6001600160a01b0381165f908152600e6020526040902090602282015490811561489a57612f139460018401915f835493556148316147e16147dc87546001600160401b031690565b614763565b865467ffffffffffffffff19166001600160401b0382161787559461482c61480b60028901615224565b88546001600160401b0316604084901b67ffffffffffffffff191617909855565b612cdc565b9586867f47c5615513b0f669da2dd7e3362a34610ca2695d0a0e2da2160cee952eab203c614892614860614e0c565b604080519586526001600160401b038b1660208701526001600160a01b03918216908601528616939081906060820190565b0390a36152e8565b5050505050565b63027edf0360e11b5f9081526001600160a01b0391909116600452602490fd5b906040612963925f8152816020820152019061434a565b604051906148e7602083612d8d565b5f80835282815b8281106148fa57505050565b6020906149056131d1565b828285010152016148ee565b614969612f139261497761493e61494c61492e6020850151615429565b936040519283916020830161380b565b03601f198101835282612d8d565b60405193849160016020840152604080840152606083019061434a565b03601f198101845283612d8d565b61497f6148d8565b9261556d565b601154828193614a97575b5050604051632eec7b5560e11b8152600481018390529290506020836024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610b0157614a41946020945f93614a76575b506040516363fdc96f60e11b8152600481019490945260248401919091526001600160a01b0316604483015260a060648301525f60a4830181905260848301819052919384928391829060c4820190565b03926001600160a01b03165af18015610b0157614a5b5750565b614a739060203d602011612281576122748183612d8d565b50565b5f919350614a9090863d8811611d5757611d498183612d8d565b92906149f0565b614aa0926158c3565b5f8181614990565b6001600160c01b039081165f1901919082116108d057565b92909695949391640100000000851015614cc657614adc613a38565b614ae5816123a9565b60038114159081614cb1575b5080614c82575b614c66576001600160a01b0388165f908152600e60205260409020614b1c906109f2565b6001600160c01b038116151590869082614c4e575b5050614c2d57604080516001600160a01b038a1660208201908152614b7d92614b779290614b62908290810161493e565b5190206bffffffffffffffffffffffff191690565b60601c90565b6001600160a01b0381165f90815260096020908152604080832060088a901c8452909152902054600160ff88161b16614c0c5790614be76002614be1612f139a9b61046b8a612678614c069a999860018060a01b03165f52600960205260405f2090565b01615224565b9491608093916040519384526020840152604083015260608201522090565b9061583b565b632939af3b60e21b5f526001600160a01b038916600452602486905260445ffd5b632939af3b60e21b5f526001600160a01b038816600452602485905260445ffd5b614c5d91925061233b90614aa8565b1015855f614b31565b6304bba81f60e41b5f526001600160a01b03881660045260245ffd5b506001600160a01b0388165f908152600f60205260409020614cac9061116c905460081c60ff1690565b614af8565b60029150614cbe816123a9565b14155f614af1565b6309f6605160e41b5f52600485905260245ffd5b60200135614ce781612f2c565b63ffffffff81169062030d408210614cfd575050565b614d0690612f2c565b630555d0f160e41b5f5260045262030d4060245260445ffd5b9091614e0857614d2d614e0c565b916001600160a01b03808416908316141580614d84575b614d4d57505050565b604051631326f75560e11b81526001600160a01b039283166004820152929091166024830152604482015260206064820152608490fd5b50604051631a45b42760e11b815260208180614da68386888a6004860161412f565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610b01575f91614de9575b5015614d44565b614e02915060203d60201161340e576134008183612d8d565b5f614de2565b5050565b601436101580614e33575b15614e2f5760131936013681116104e2573560601c90565b3390565b50337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614614e17565b601454600160401b811015612d375760018101601455601454811015612c725760145f527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec0155565b8054905f815581614ebd575050565b816003029160038304036108d0575f5260205f20908101905b818110614ee1575050565b6003905f81555f60018201555f600282015501614ed6565b9190811015612c725760071b0190565b8054821015612c72575f52600360205f20910201905f90565b3561296381612f45565b8054600160401b811015612d3757614f4991600182018155614f09565b614fd4576002614fb76060612f139480358555600185016020820135614f6e81612f3a565b815460ff70ffffffffffffffffffffffffffffffff006040860135614f9281612f45565b60081b1692169070ffffffffffffffffffffffffffffffffff19161717905501614f22565b9101906001600160801b03166001600160801b0319825416179055565b634e487b7160e01b5f525f60045260245ffd5b90919392934682148015615121575b61489a5761500c825f52600760205260405f2090565b5483111561489a576150839261502a835f52600760205260405f2090565b5561503d825f52600260205260405f2090565b5561505661116c611f90835f52601060205260405f2090565b6150f1575b615075615070825f52601560205260405f2090565b614eae565b5f52601560205260405f2090565b905f5b8181106150935750505050565b806150aa6150a46001938588614ef9565b85614f2c565b6150b5818487614ef9565b356150d1610958848060a01b03925f52600d60205260405f2090565b16806150df575b5001615086565b6150e98286614f09565b50555f6150d8565b615113615106825f52601060205260405f2090565b805460ff19166001179055565b61511c81614e65565b61505b565b508115614ff6565b6020821015612c725701905f90565b9160208301906151488254612c95565b92838355839463ffffffff948581116151c957505f95915b6020871061518157845463515447c160e01b5f52600452602486905260445ffd5b6001808416146151b65761519861105f8884615129565b5f5260205260016151ad60405f209360011c90565b96019591615160565b9350612f1394506115e492959150615129565b63515447c160e01b5f52600452602485905260445ffd5b906020811015612c725760051b0190565b61042081019392915f825b6020821061520e575050506104000152565b60208060019285518152019301910190916151fc565b60208101549081156152c257615238613455565b905f5b60208110615292575050604051634a490c2560e01b815291602091839182916152689190600484016151f1565b0381730b2b545a4e2fd65d29f2417f1b26698d71769a8f5af4908115610b01575f9161429e575090565b80600180921b85166152a5575b0161523b565b6152b261105f8285615129565b6152bc82866151e0565b5261529f565b50507f27ae5ba08d7291c96c8cbddcc148bf48a6d68c7974b94356f53754ef6171d75790565b949091939550615303600160125401806012554260801b1790565b6011546060860151604051634cba057b60e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f000000000000000000000000000000000000000000000000000000000000000016602482015260448101929092527f00000000000000000000000000000000000000000000000000000000000000006064830152608482015260a481018590526001600160401b039790971660c488015260e487019190915260016101048701526101248601525f8561014481730b2b545a4e2fd65d29f2417f1b26698d71769a8f5af4938415610b0157612f13955f95615405575b50615b6f565b6154229195503d805f833e61541a8183612d8d565b81019061382f565b935f6153ff565b5f9080515f915b81831061546357505050620124f8810290808204620124f814901517156108d057620493e00180620493e0116108d05790565b9091926040615472858461311c565b5101515181018091116108d057926001019190615430565b91908260409103126104e257602082516154a3816128db565b92015190565b6001600160a01b0391821681526001600160401b039092166020830152918216604082015260608101929092529182166080820152911660a082015260c081019190915261014060e0820181905290949392916155089186019061434a565b848103610100860152602080835192838152019201905f5b818110615542575050506001600160a01b039091166101209390930192909252565b825180516001600160a01b031685526020908101518186015260409094019390920191600101615520565b92909192615579614e0c565b9283826157205750604051632f8eeb3d60e01b8152466004820152602081602481738f1a249e79030d4fac2102aa33e36e6676e048e45af4908115610b01576040946156449287925f91615701575b50975b6155d66103fd612ef7565b946001600160a01b038a16156156fb57835b8851630d6aca6560e31b81529a8b9889987f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060048c016154a9565b038173d331f229eeeeb32e54b85fe4a0997627913fb9a55af4918215610b01575f905f936156c7575b50615676575050565b61475e816156a5847f49a226512c7c6d0448c9d048f6243d67cab6c593596a82f21224aa748d1c5d5e94615cb8565b604080519485526001600160a01b039091166020850181905293918291820190565b90506156ec91925060403d6040116156f4575b6156e48183612d8d565b81019061548a565b91905f61566d565b503d6156da565b5f6155e8565b61571a915060203d602011611d5757611d498183612d8d565b5f6155c8565b615644906040945f976155cb565b61040061042092959493610440830196835260208301370152565b9092602090600161576a8460018060a01b03165f52600a60205260405f2090565b01549461578b60405195869384936307fbe4d560e41b85526004850161572e565b0381730b2b545a4e2fd65d29f2417f1b26698d71769a8f5af4918215610b01575f9261581a575b50828214615815576001600160a01b03165f908152600c60205260409020905f5b600481106157e15750505090565b6157ee61105f82856131a5565b8015158061580c575b61580457506001016157d3565b935050505090565b508083146157f7565b505090565b61583491925060203d602011612281576122748183612d8d565b905f6157b2565b9260209161585d60405194859384936307fbe4d560e41b85526004850161572e565b0381730b2b545a4e2fd65d29f2417f1b26698d71769a8f5af4908115610b01575f916158a4575b50818103615890575050565b6272c3e960e11b5f5260045260245260445ffd5b6158bd915060203d602011612281576122748183612d8d565b5f615884565b906158cd826139bb565b808211615aa657506158e26103fd8385614678565b906001600160a01b03821615615a85576001600160a01b038316935f9261eeee8614801592908590615a7d57506040516370a0823160e01b81523060048201526020816024818b5afa908115610b01575f91615a5e575b509461594685848a615d16565b823b156104e257604051639e6eec0560e01b815260048101929092526001600160a01b0387166024830152604482018590525f6064830181905260c0608484015260c4830181905260e060a484015260e4830181905291928391610104918391905af18015610b0157615a4a575b506159c0575b50505050565b6159c991612cea565b6040516370a0823160e01b815230600482015292909190602090849060249082905afa928315610b01575f93615a29575b50818303615a0857806159ba565b63884aa24960e01b5f526001600160a01b031660045260245260445260645ffd5b615a4391935060203d602011612281576122748183612d8d565b915f6159fa565b80610af55f615a5893612d8d565b5f6159b4565b615a77915060203d602011612281576122748183612d8d565b5f615939565b945083615946565b63b61c181f60e01b5f5260048490526001600160a01b03831660245260445ffd5b6360ec3e7160e01b5f5260049190915260245260445ffd5b91906040838203126104e25782516001600160401b0381116104e257830181601f820112156104e257805190615af382612f15565b92615b016040519485612d8d565b82845260208085019360061b830101918183116104e257602001925b828410615b355750505050602061296391930161409e565b6040848303126104e25760206040918251615b4f81612d57565b8651615b5a81610e12565b81528287015183820152815201930192615b1d565b91939293615b806080850151615429565b948115615c965790615bad615c0796610434615ba460405f96015163ffffffff1690565b63ffffffff1690565b60405163111504cd60e31b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152909416602485015260448401919091529194859081906064820190565b038173d331f229eeeeb32e54b85fe4a0997627913fb9a55af4918215610b0157615c6e61493e615c51615c6095612f13985f91615c73575b50965b6040519283916020830161395d565b604051948591602083016148c1565b03601f198101855284612d8d565b61556d565b615c8f91503d805f833e615c878183612d8d565b810190615abe565b505f615c3f565b505050612f1392615c6091615c6e61493e615c51615cb26148d8565b96615c42565b60018060a01b031690815f52600660205260405f208054908282018092116108d05755600454908082018092116108d0577feabe38586436d533b7eadb14fb6c3fd63dbb07d41e234f29313b28bf067a891f91600455614742614e0c565b60405163095ea7b360e01b5f9081526001600160a01b03841660045260248590529193929160209060448180885af19060015f5114821615615dc0575b60405215615d6057505050565b615d6a8184615dcf565b15615da25790615d7a9183615e34565b15615d825750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b635274afe760e01b5f9081526001600160a01b038416600452602490fd5b90843b15153d15161690615d53565b60405163095ea7b360e01b5f9081526001600160a01b03909316600452602483905290929160209060448180875af19260015f5114841615615e12575b50604052565b60018492941516615e2b573b15153d151616915f615e0c565b833d5f823e3d90fd5b92916040519163095ea7b360e01b5f5260018060a01b031660045260245260205f60448180875af19260015f5114841615615e12575060405256fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a164736f6c634300081c000a",
2461
+ "metadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract JBCCIPSuckerDeployer\",\"name\":\"deployer\",\"type\":\"address\"},{\"internalType\":\"contract IJBDirectory\",\"name\":\"directory\",\"type\":\"address\"},{\"internalType\":\"contract IJBPermissions\",\"name\":\"permissions\",\"type\":\"address\"},{\"internalType\":\"contract IJBTokens\",\"name\":\"tokens\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"feeProjectId\",\"type\":\"uint256\"},{\"internalType\":\"contract IJBSuckerRegistry\",\"name\":\"registry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"trustedForwarder\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidInitialization\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"router\",\"type\":\"address\"}],\"type\":\"error\",\"name\":\"JBCCIPSucker_InvalidRouter\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"rootAmount\",\"type\":\"uint256\"}],\"type\":\"error\",\"name\":\"JBCCIPSucker_PositiveRootWithoutDelivery\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"delivered\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rootAmount\",\"type\":\"uint256\"}],\"type\":\"error\",\"name\":\"JBCCIPSucker_UnderDeliveredAmount\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"type\":\"error\",\"name\":\"JBCCIPSucker_UnexpectedDeliveredTokens\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"messageType\",\"type\":\"uint8\"}],\"type\":\"error\",\"name\":\"JBCCIPSucker_UnknownMessageType\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delivered\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"expected\",\"type\":\"address\"}],\"type\":\"error\",\"name\":\"JBCCIPSucker_WrongDeliveredToken\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"permissionId\",\"type\":\"uint256\"}],\"type\":\"error\",\"name\":\"JBPermissioned_Unauthorized\"},{\"inputs\":[],\"type\":\"error\",\"name\":\"JBSucker_AccountingSyncUnsupported\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"type\":\"error\",\"name\":\"JBSucker_AmountExceedsUint128\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGasLimit\",\"type\":\"uint256\"}],\"type\":\"error\",\"name\":\"JBSucker_BelowMinGas\"},{\"inputs\":[{\"internalType\":\"enum JBSuckerState\",\"name\":\"state\",\"type\":\"uint8\"}],\"type\":\"error\",\"name\":\"JBSucker_Deprecated\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"givenTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minimumTime\",\"type\":\"uint256\"}],\"type\":\"error\",\"name\":\"JBSucker_DeprecationTimestampTooSoon\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"}],\"type\":\"error\",\"name\":\"JBSucker_ExpectedMsgValue\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"type\":\"error\",\"name\":\"JBSucker_IndexOutOfRange\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"type\":\"error\",\"name\":\"JBSucker_InsufficientBalance\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"}],\"type\":\"error\",\"name\":\"JBSucker_InsufficientMsgValue\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"received\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"expected\",\"type\":\"uint8\"}],\"type\":\"error\",\"name\":\"JBSucker_InvalidMessageVersion\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"remoteToken\",\"type\":\"bytes32\"}],\"type\":\"error\",\"name\":\"JBSucker_InvalidNativeRemoteAddress\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"inboxRoot\",\"type\":\"bytes32\"}],\"type\":\"error\",\"name\":\"JBSucker_InvalidProof\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"type\":\"error\",\"name\":\"JBSucker_LeafAlreadyExecuted\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"type\":\"error\",\"name\":\"JBSucker_NoRetainedToRemoteFee\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"type\":\"error\",\"name\":\"JBSucker_NoRetainedTransportPaymentRefund\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"type\":\"error\",\"name\":\"JBSucker_NoTerminalForToken\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"caller\",\"type\":\"bytes32\"}],\"type\":\"error\",\"name\":\"JBSucker_NotPeer\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"outboxBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"treeCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"numberOfClaimsSent\",\"type\":\"uint256\"}],\"type\":\"error\",\"name\":\"JBSucker_NothingToSend\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"type\":\"error\",\"name\":\"JBSucker_RefundFailed\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"remoteToken\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"localToken\",\"type\":\"address\"}],\"type\":\"error\",\"name\":\"JBSucker_RemoteTokenAlreadyMapped\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"localToken\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"mappedTo\",\"type\":\"bytes32\"}],\"type\":\"error\",\"name\":\"JBSucker_TokenAlreadyMapped\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"type\":\"error\",\"name\":\"JBSucker_TokenHasInvalidEmergencyHatchState\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"type\":\"error\",\"name\":\"JBSucker_TokenNotMapped\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"type\":\"error\",\"name\":\"JBSucker_UnexpectedMsgValue\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"expectedBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actualBalance\",\"type\":\"uint256\"}],\"type\":\"error\",\"name\":\"JBSucker_UnexpectedTokenBalance\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"beneficiary\",\"type\":\"bytes32\"}],\"type\":\"error\",\"name\":\"JBSucker_ZeroBeneficiary\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"}],\"type\":\"error\",\"name\":\"JBSucker_ZeroERC20Token\"},{\"inputs\":[],\"type\":\"error\",\"name\":\"JBSucker_ZeroProjectTokenCount\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"size\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxLeaves\",\"type\":\"uint256\"}],\"type\":\"error\",\"name\":\"MerkleLib_InsertTreeIsFull\"},{\"inputs\":[],\"type\":\"error\",\"name\":\"NotInitializing\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"type\":\"error\",\"name\":\"SafeERC20FailedOperation\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sourceTimestamp\",\"type\":\"uint256\",\"indexed\":false},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\",\"indexed\":false}],\"type\":\"event\",\"name\":\"AccountingDataSynced\",\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\",\"indexed\":false},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\",\"indexed\":false}],\"type\":\"event\",\"name\":\"ClaimFailed\",\"anonymous\":false},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"beneficiary\",\"type\":\"bytes32\",\"indexed\":false},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"projectTokenCount\",\"type\":\"uint256\",\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"terminalTokenAmount\",\"type\":\"uint256\",\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\",\"indexed\":false},{\"internalType\":\"bytes32\",\"name\":\"metadata\",\"type\":\"bytes32\",\"indexed\":false},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\",\"indexed\":false}],\"type\":\"event\",\"name\":\"Claimed\",\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"timestamp\",\"type\":\"uint40\",\"indexed\":false},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\",\"indexed\":false}],\"type\":\"event\",\"name\":\"DeprecationTimeUpdated\",\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\",\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"terminalTokenAmount\",\"type\":\"uint256\",\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"projectTokenCount\",\"type\":\"uint256\",\"indexed\":false},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\",\"indexed\":false}],\"type\":\"event\",\"name\":\"EmergencyExit\",\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\",\"indexed\":false},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\",\"indexed\":false}],\"type\":\"event\",\"name\":\"EmergencyHatchOpened\",\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\",\"indexed\":false}],\"type\":\"event\",\"name\":\"Initialized\",\"anonymous\":false},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"beneficiary\",\"type\":\"bytes32\",\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"indexed\":true},{\"internalType\":\"bytes32\",\"name\":\"hashed\",\"type\":\"bytes32\",\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\",\"indexed\":false},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\",\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"projectTokenCount\",\"type\":\"uint256\",\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"terminalTokenAmount\",\"type\":\"uint256\",\"indexed\":false},{\"internalType\":\"bytes32\",\"name\":\"metadata\",\"type\":\"bytes32\",\"indexed\":false},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\",\"indexed\":false}],\"type\":\"event\",\"name\":\"InsertToOutboxTree\",\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"indexed\":true},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\",\"indexed\":false},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\",\"indexed\":false},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\",\"indexed\":false}],\"type\":\"event\",\"name\":\"NewInboxTreeRoot\",\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\",\"indexed\":false}],\"type\":\"event\",\"name\":\"RetainedToRemoteFee\",\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"indexed\":true},{\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\",\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\",\"indexed\":false}],\"type\":\"event\",\"name\":\"RetainedToRemoteFeeClaimed\",\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\",\"indexed\":false}],\"type\":\"event\",\"name\":\"RetainedTransportPaymentRefund\",\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"indexed\":true},{\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\",\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\",\"indexed\":false}],\"type\":\"event\",\"name\":\"RetainedTransportPaymentRefundClaimed\",\"anonymous\":false},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\",\"indexed\":true},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\",\"indexed\":false},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\",\"indexed\":false},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\",\"indexed\":false}],\"type\":\"event\",\"name\":\"RootToRemote\",\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\",\"indexed\":true},{\"internalType\":\"uint64\",\"name\":\"receivedNonce\",\"type\":\"uint64\",\"indexed\":false},{\"internalType\":\"uint64\",\"name\":\"currentNonce\",\"type\":\"uint64\",\"indexed\":false},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\",\"indexed\":false}],\"type\":\"event\",\"name\":\"StaleRootRejected\",\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\",\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\",\"indexed\":false}],\"type\":\"event\",\"name\":\"TransportPaymentRefundFailed\",\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"CCIP_ROUTER\",\"outputs\":[{\"internalType\":\"contract ICCIPRouter\",\"name\":\"\",\"type\":\"address\"}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"DIRECTORY\",\"outputs\":[{\"internalType\":\"contract IJBDirectory\",\"name\":\"\",\"type\":\"address\"}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"FEE_PROJECT_ID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"MESSAGE_VERSION\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"MESSENGER_BASE_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"MESSENGER_ERC20_MIN_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"PERMISSIONS\",\"outputs\":[{\"internalType\":\"contract IJBPermissions\",\"name\":\"\",\"type\":\"address\"}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"PROJECTS\",\"outputs\":[{\"internalType\":\"contract IJBProjects\",\"name\":\"\",\"type\":\"address\"}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"REGISTRY\",\"outputs\":[{\"internalType\":\"contract IJBSuckerRegistry\",\"name\":\"\",\"type\":\"address\"}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"REMOTE_CHAIN_ID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"REMOTE_CHAIN_SELECTOR\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"TOKENS\",\"outputs\":[{\"internalType\":\"contract IJBTokens\",\"name\":\"\",\"type\":\"address\"}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"amountToAddToBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}]},{\"inputs\":[{\"internalType\":\"struct Client.Any2EVMMessage\",\"name\":\"any2EvmMessage\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"struct Client.EVMTokenAmount[]\",\"name\":\"destTokenAmounts\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}]}]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"ccipReceive\"},{\"inputs\":[{\"internalType\":\"struct JBClaim[]\",\"name\":\"claims\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"struct JBLeaf\",\"name\":\"leaf\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"beneficiary\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"projectTokenCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"terminalTokenAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"metadata\",\"type\":\"bytes32\"}]},{\"internalType\":\"bytes32[32]\",\"name\":\"proof\",\"type\":\"bytes32[32]\"}]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"claim\"},{\"inputs\":[{\"internalType\":\"struct JBClaim\",\"name\":\"claimData\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"struct JBLeaf\",\"name\":\"leaf\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"beneficiary\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"projectTokenCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"terminalTokenAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"metadata\",\"type\":\"bytes32\"}]},{\"internalType\":\"bytes32[32]\",\"name\":\"proof\",\"type\":\"bytes32[32]\"}]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"claim\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"claimRetainedToRemoteFee\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"claimRetainedTransportPaymentRefund\"},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"deployer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}]},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"enableEmergencyHatchFor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"executedLeafHashOf\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}]},{\"inputs\":[{\"internalType\":\"struct JBClaim\",\"name\":\"claimData\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"struct JBLeaf\",\"name\":\"leaf\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"beneficiary\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"projectTokenCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"terminalTokenAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"metadata\",\"type\":\"bytes32\"}]},{\"internalType\":\"bytes32[32]\",\"name\":\"proof\",\"type\":\"bytes32[32]\"}]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"exitThroughEmergencyHatch\"},{\"inputs\":[{\"internalType\":\"struct JBMessageRoot\",\"name\":\"root\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"token\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"struct JBInboxTreeRoot\",\"name\":\"remoteRoot\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}]},{\"internalType\":\"struct JBChainAccounting[]\",\"name\":\"accounts\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"struct JBSourceContext[]\",\"name\":\"contexts\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"bytes32\",\"name\":\"token\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint128\",\"name\":\"surplus\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"balance\",\"type\":\"uint128\"}]},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}]}]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"fromRemote\"},{\"inputs\":[{\"internalType\":\"struct JBAccountingSnapshot\",\"name\":\"snapshot\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"},{\"internalType\":\"struct JBChainAccounting[]\",\"name\":\"accounts\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"struct JBSourceContext[]\",\"name\":\"contexts\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"bytes32\",\"name\":\"token\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint128\",\"name\":\"surplus\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"balance\",\"type\":\"uint128\"}]},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}]}]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"fromRemoteAccounting\"},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getRouter\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"router\",\"type\":\"address\"}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"inboxOf\",\"outputs\":[{\"internalType\":\"struct JBInboxTreeRoot\",\"name\":\"\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"localProjectId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"remotePeer\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"initialize\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"initialProjectId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"initialize\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"isMapped\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"forwarder\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"isTrustedForwarder\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}]},{\"inputs\":[{\"internalType\":\"struct JBTokenMapping\",\"name\":\"map\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"address\",\"name\":\"localToken\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"minGas\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"remoteToken\",\"type\":\"bytes32\"}]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"mapToken\"},{\"inputs\":[{\"internalType\":\"struct JBTokenMapping[]\",\"name\":\"maps\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"localToken\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"minGas\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"remoteToken\",\"type\":\"bytes32\"}]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"mapTokens\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"outboxOf\",\"outputs\":[{\"internalType\":\"struct JBOutboxTree\",\"name\":\"\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"uint192\",\"name\":\"numberOfClaimsSent\",\"type\":\"uint192\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"struct MerkleLib.Tree\",\"name\":\"tree\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"bytes32[32]\",\"name\":\"branch\",\"type\":\"bytes32[32]\"},{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}]}]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"peer\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"peerChainAccountsOf\",\"outputs\":[{\"internalType\":\"struct JBChainAccounting[]\",\"name\":\"accounts\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"struct JBSourceContext[]\",\"name\":\"contexts\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"bytes32\",\"name\":\"token\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint128\",\"name\":\"surplus\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"balance\",\"type\":\"uint128\"}]},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"peerChainContextsOf\",\"outputs\":[{\"internalType\":\"struct JBPeerChainContext[]\",\"name\":\"contexts\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint128\",\"name\":\"surplus\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"balance\",\"type\":\"uint128\"}]},{\"internalType\":\"uint256\",\"name\":\"snapshot\",\"type\":\"uint256\"}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"peerChainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}]},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"includeVirtual\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"peerChainIds\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"chainIds\",\"type\":\"uint256[]\"}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"peerChainTotalSupplyOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"peerChainTotalSupplyValue\",\"outputs\":[{\"internalType\":\"struct JBPeerChainValue\",\"name\":\"\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"peerChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"snapshotTimestamp\",\"type\":\"uint256\"}]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectTokenCount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"beneficiary\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"minTokensReclaimed\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"metadata\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"prepare\"},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"projectId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"remoteTokenFor\",\"outputs\":[{\"internalType\":\"struct JBRemoteToken\",\"name\":\"\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"emergencyHatch\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"minGas\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"addr\",\"type\":\"bytes32\"}]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"retainedToRemoteFeeBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"retainedToRemoteFeeOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"retainedTransportPaymentRefundBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"retainedTransportPaymentRefundOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}]},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"timestamp\",\"type\":\"uint40\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setDeprecation\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"snapshotTimestampOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"state\",\"outputs\":[{\"internalType\":\"enum JBSuckerState\",\"name\":\"\",\"type\":\"uint8\"}]},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"supported\",\"type\":\"bool\"}]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"syncAccountingData\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"toRemote\"},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"trustedForwarder\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"amountToAddToBalanceOf(address)\":{\"params\":{\"token\":\"The local terminal token to get the amount to add to balance for.\"},\"returns\":{\"_0\":\"The amount of terminal tokens available to add to the project's balance.\"}},\"ccipReceive((bytes32,uint64,bytes,bytes,(address,uint256)[]))\":{\"details\":\"Extremely important to ensure only router calls this.The CCIP NatSpec convention states that `ccipReceive` should not revert. We intentionally deviate: reverting on invalid sender/peer data is correct here because accepting and silently discarding a malformed message would lose the bridged tokens with no recovery path. A revert keeps tokens in the CCIP router where they can be retried or recovered.\",\"params\":{\"any2EvmMessage\":\"The message to process.\"}},\"claim((address,(uint256,bytes32,uint256,uint256,bytes32),bytes32[32]))\":{\"params\":{\"claimData\":\"The terminal token, merkle tree leaf, and proof for the claim.\"}},\"claim((address,(uint256,bytes32,uint256,uint256,bytes32),bytes32[32])[])\":{\"details\":\"Per-leaf resilience: each leaf is claimed through an external `this.claim(JBClaim)` sub-call wrapped in try/catch, so a single failing or stale leaf (e.g. its inbox root has not arrived yet, it was already executed, or a transient mint/add-to-balance dependency reverts) only skips that one leaf — the rest of the batch still settles. Because the sub-call is a separate message frame, a caught revert rolls back every state change that leaf attempted (its `_executedFor` bit, its `executedLeafHashOf` entry, and any `_addToBalance`/`mintTokensOf` effects), so the skipped leaf stays fully claimable later. Routing through `this.claim` is safe because the single-leaf `claim` mints to `claimData.leaf.beneficiary` and adds funds to the project balance — it never depends on `msg.sender` being the original batch caller, so the self-call does not change who is credited.\",\"params\":{\"claims\":\"A list of claims to perform (including the terminal token, merkle tree leaf, and proof for each claim).\"}},\"claimRetainedToRemoteFee(address)\":{\"params\":{\"beneficiary\":\"The address that should receive the retained ETH.\"}},\"claimRetainedTransportPaymentRefund(address)\":{\"params\":{\"beneficiary\":\"The address that should receive the retained ETH.\"}},\"constructor\":{\"params\":{\"deployer\":\"A contract that deploys the clones for this contract.\",\"directory\":\"A contract storing directories of terminals and controllers for each project.\",\"feeProjectId\":\"The ID of the project that receives fees.\",\"permissions\":\"A contract storing permissions.\",\"registry\":\"The sucker registry that tracks deployed suckers.\",\"tokens\":\"A contract that manages token minting and burning.\",\"trustedForwarder\":\"The trusted forwarder for ERC-2771 meta-transactions.\"}},\"enableEmergencyHatchFor(address[])\":{\"details\":\"For use when a token or a few tokens are no longer compatible with a bridge.\",\"params\":{\"tokens\":\"The terminal tokens to enable the emergency hatch for.\"}},\"exitThroughEmergencyHatch((address,(uint256,bytes32,uint256,uint256,bytes32),bytes32[32]))\":{\"params\":{\"claimData\":\"The terminal token, merkle tree leaf, and proof for the claim.\"}},\"fromRemote((uint8,bytes32,uint256,(uint64,bytes32),(uint256,uint256,(bytes32,uint8,uint128,uint128)[],uint256)[]))\":{\"details\":\"This can only be called by the messenger contract on the local chain, with a message from the remote peer.Nonce ordering: This function accepts any nonce strictly greater than the current inbox nonce, rather than requiring sequential (nonce == inbox.nonce + 1) processing. This is intentional because some bridges (e.g., Chainlink CCIP) do not guarantee in-order message delivery. If nonces arrive out of order, the inbox root is set to the latest nonce's root. Claims from earlier nonces remain provable against the latest root (the merkle tree is append-only), but users will need regenerated proofs computed against the current root. This trade-off is accepted because enforcing sequential nonces could permanently block a token's inbox if a single message is delayed or lost by the bridge.Post-deprecation root acceptance: Roots are accepted in DEPRECATED state to prevent stranding tokens that were sent before deprecation. Even though the mandatory `_maxMessagingDelay()` (14-day) buffer gives in-flight messages time to arrive, accepting roots after deprecation provides a stronger guarantee that users can always claim their bridged tokens. Double-spend is not a concern because `toRemote` is already disabled in `SENDING_DISABLED` and `DEPRECATED` states, so no new outbound transfers can occur.\",\"params\":{\"root\":\"The merkle root, token, and amount to receive.\"}},\"fromRemoteAccounting((uint8,(uint256,uint256,(bytes32,uint8,uint128,uint128)[],uint256)[]))\":{\"details\":\"This can only be called by the messenger contract on the local chain, with a message from the remote peer. It shares the same freshness gate as `fromRemote`, so stale accounting-only messages cannot roll back fresher state delivered by a root message.\",\"params\":{\"snapshot\":\"The peer-chain accounting snapshot to receive.\"}},\"getRouter()\":{\"returns\":{\"router\":\"The CCIP router address.\"}},\"inboxOf(address)\":{\"params\":{\"token\":\"The local terminal token to get the inbox for.\"},\"returns\":{\"_0\":\"The inbox tree root for the token.\"}},\"initialize(uint256)\":{\"params\":{\"initialProjectId\":\"The ID of the project (on the local chain) that this sucker is associated with.\"}},\"initialize(uint256,bytes32)\":{\"params\":{\"localProjectId\":\"The ID of the project (on the local chain) that this sucker is associated with.\",\"remotePeer\":\"The remote peer address. Leave zero to use the default deterministic same-address peer.\"}},\"isMapped(address)\":{\"params\":{\"token\":\"The terminal token to check.\"},\"returns\":{\"_0\":\"A boolean which is `true` if the token is mapped to a remote token and `false` if it is not.\"}},\"isTrustedForwarder(address)\":{\"details\":\"Indicates whether any particular address is the trusted forwarder.\"},\"mapToken((address,uint32,bytes32))\":{\"params\":{\"map\":\"The local and remote terminal token addresses to map, and minimum amount/gas limits for bridging them.\"}},\"mapTokens((address,uint32,bytes32)[])\":{\"params\":{\"maps\":\"A list of local and remote terminal token addresses to map, and minimum amount/gas limits for bridging them.\"}},\"outboxOf(address)\":{\"params\":{\"token\":\"The local terminal token to get the outbox for.\"},\"returns\":{\"_0\":\"The outbox tree for the token.\"}},\"peer()\":{\"details\":\"Defaults to `_toBytes32(address(this))`, assuming deterministic cross-chain deployment via CREATE2. The deployer (`JBSuckerDeployer`) uses `salt = keccak256(abi.encodePacked(_msgSender(), salt))` to ensure sender-specific determinism. An explicit peer can be set during clone initialization for deployments where the legitimate remote sucker address is known but does not match the local clone address.\",\"returns\":{\"_0\":\"The bytes32 representation of the peer sucker address.\"}},\"peerChainAccountsOf()\":{\"details\":\"The registry reads this to gather a project's full cross-chain knowledge and re-gossip it. Incoming contexts are stored in this sucker's token namespace where a mapping exists, so a hub forwards sibling-chain accounting in hub-local token terms and the next spoke only needs its mapping to the hub token.\",\"returns\":{\"accounts\":\"One accounting record per known peer chain.\"}},\"peerChainContextsOf(uint256)\":{\"details\":\"Stored contexts are already keyed in this sucker's token namespace where a mapping exists. This folds same-currency, same-decimals entries together. The result is un-valued — the registry values each context into a requested currency; the sucker consults no price oracle. Contexts that share a currency but carry different decimals are kept separate because the raw amounts are on different scales and cannot be summed directly.\",\"params\":{\"chainId\":\"The peer chain to read the contexts of.\"},\"returns\":{\"contexts\":\"The per-currency surplus and balance for the chain.\",\"snapshot\":\"The source freshness key of the chain's latest accepted record.\"}},\"peerChainId()\":{\"returns\":{\"chainId\":\"The chain ID of the peer.\"}},\"peerChainIds(bool)\":{\"details\":\"With `includeVirtual` false, returns only the directly-connected peer chain (the one this sucker is bridged to). With `includeVirtual` true, also returns every other chain it has learned about through gossip relayed by that peer. The directly-connected peer is always present (with a zero value until its first record) so the registry can enumerate the chain the moment this sucker is deployed. Until the sucker receives its first record, that entry is an empty sentinel (value 0, freshness 0) which the registry skips, so a freshly-deployed active sucker takes over a chain's accounting only once it has synced real data — a deprecated sucker's record keeps answering for the chain during the migration window.\",\"params\":{\"includeVirtual\":\"Whether to also include virtually-known (gossiped) peer chains.\"},\"returns\":{\"chainIds\":\"The peer chain IDs.\"}},\"peerChainTotalSupplyValue(uint256)\":{\"details\":\"Lets the registry read the value, the peer chain it belongs to, and its freshness in one call. The `value` matches `peerChainTotalSupplyOf(chainId)`.\",\"params\":{\"chainId\":\"The peer chain to read the total supply value of.\"},\"returns\":{\"_0\":\"A `JBPeerChainValue` with the total supply, peer chain ID, and snapshot freshness key.\"}},\"prepare(uint256,bytes32,uint256,address,bytes32)\":{\"details\":\"This adds the tokens and funds to the outbox tree for the `token`. They will be bridged by the next call to `toRemote` for the same `token`.Reentrancy protection: This function has implicit reentrancy protection through `_pullBackingAssets`. The `assert` in `_pullBackingAssets` verifies that the contract's token balance increased by exactly the amount reported by the terminal's `cashOutTokensOf`. A reentrant `prepare()` call would trigger a nested `cashOutTokensOf`, changing the contract's balance before the outer call's `assert` executes. The outer `assert` would then fail because the balance delta no longer matches the reported `reclaimedAmount`. Note: because `assert` is used (not `revert`), a failed reentrancy attempt will consume all remaining gas.\",\"params\":{\"beneficiary\":\"The recipient on the remote chain (bytes32 for cross-VM compatibility). For EVM peers: the EVM address left-padded to 32 bytes via `_toBytes32`. For SVM peers: the full 32-byte Solana public key.\",\"minTokensReclaimed\":\"The minimum amount of terminal tokens to cash out for. If the amount cashed out is less than this, the transaction will revert.\",\"projectTokenCount\":\"The number of project tokens to prepare for bridging.\",\"token\":\"The address of the terminal token to cash out for.\"}},\"projectId()\":{\"returns\":{\"_0\":\"The local project ID.\"}},\"remoteTokenFor(address)\":{\"params\":{\"token\":\"The local terminal token to get the remote token for.\"},\"returns\":{\"_0\":\"The remote token mapping for the given local token.\"}},\"setDeprecation(uint40)\":{\"params\":{\"timestamp\":\"The time after which the sucker will be deprecated. Or `0` to remove the upcoming deprecation.\"}},\"state()\":{\"returns\":{\"_0\":\"state The current deprecation state\"}},\"supportsInterface(bytes4)\":{\"details\":\"Should indicate whether the contract implements IAny2EVMMessageReceiver. This allows CCIP to check if ccipReceive is available before calling it. If this returns false or reverts, only tokens are transferred to the receiver. If this returns true, tokens are transferred and ccipReceive is called atomically. Additionally, if the receiver address does not have code associated with it at the time of execution (EXTCODESIZE returns 0), only tokens will be transferred.\",\"params\":{\"interfaceId\":\"The interface ID to check.\"},\"returns\":{\"supported\":\"Whether the interface is supported.\"}},\"syncAccountingData()\":{\"details\":\"The caller still provides any bridge transport payment through `msg.value`.\"},\"toRemote(address)\":{\"details\":\"This sends the outbox root for the specified `token` to the remote chain.Fee payment failure handling: The registry fee payment uses a best-effort pattern (try/catch). If the fee project's terminal doesn't exist or the `pay` call reverts, the fee ETH is retained as a refundable balance for the original caller instead of being added back to `transportPayment`. This preserves `transportPayment = msg.value - fee`, which is critical for zero-cost bridges (OP, Base, Celo, Arb L2->L1) that revert on non-zero transport payment. The retained fee is excluded from `amountToAddToBalanceOf`.\",\"params\":{\"token\":\"The terminal token to bridge.\"}},\"trustedForwarder()\":{\"details\":\"Returns the address of the trusted forwarder.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"CCIP_ROUTER()\":{\"notice\":\"The CCIP router used to bridge tokens between the local and remote chain.\"},\"DIRECTORY()\":{\"notice\":\"The directory of terminals and controllers for projects.\"},\"FEE_PROJECT_ID()\":{\"notice\":\"The project ID that receives the `toRemoteFee` payment. Typically the protocol project (ID 1).\"},\"MESSAGE_VERSION()\":{\"notice\":\"The message format version. Used to reject incompatible messages from remote chains.\"},\"MESSENGER_BASE_GAS_LIMIT()\":{\"notice\":\"A reasonable minimum gas limit for a basic cross-chain call to `fromRemote` on the remote chain.\"},\"MESSENGER_ERC20_MIN_GAS_LIMIT()\":{\"notice\":\"A reasonable minimum gas limit for performing an ERC-20 transfer on the remote chain.\"},\"PERMISSIONS()\":{\"notice\":\"A contract storing permissions.\"},\"PROJECTS()\":{\"notice\":\"The project registry (ERC-721 ownership).\"},\"REGISTRY()\":{\"notice\":\"The sucker registry that manages the global `toRemoteFee`.\"},\"REMOTE_CHAIN_ID()\":{\"notice\":\"The chain id of the remote chain.\"},\"REMOTE_CHAIN_SELECTOR()\":{\"notice\":\"The CCIP chain selector of the remote chain.\"},\"TOKENS()\":{\"notice\":\"The contract that manages token minting and burning.\"},\"amountToAddToBalanceOf(address)\":{\"notice\":\"The outstanding amount of tokens to be added to the project's balance by `claim`.\"},\"ccipReceive((bytes32,uint64,bytes,bytes,(address,uint256)[]))\":{\"notice\":\"The entrypoint for the CCIP router to call.\"},\"claim((address,(uint256,bytes32,uint256,uint256,bytes32),bytes32[32]))\":{\"notice\":\"Claim a single bridged entry: verifies the merkle proof against the inbox root, mints the specified project tokens for the beneficiary, and deposits the terminal tokens into the project's local balance.\"},\"claim((address,(uint256,bytes32,uint256,uint256,bytes32),bytes32[32])[])\":{\"notice\":\"Claim multiple bridged entries in a single transaction. Each claim mints project tokens for the beneficiary and deposits the corresponding terminal tokens into the project's local balance.\"},\"claimRetainedToRemoteFee(address)\":{\"notice\":\"Claim retained failed-fee ETH.\"},\"claimRetainedTransportPaymentRefund(address)\":{\"notice\":\"Claim retained failed transport-payment refund ETH.\"},\"deployer()\":{\"notice\":\"The address of this contract's deployer.\"},\"enableEmergencyHatchFor(address[])\":{\"notice\":\"Enables the emergency hatch for a list of tokens, allowing users to exit on the chain they deposited on.\"},\"executedLeafHashOf(address,uint256)\":{\"notice\":\"The keccak256 hash of the leaf data committed at execution time, keyed by `(terminalToken, leafIndex)`. Beneficiary contracts (e.g. `JBReferralSplitHook`) use this to authenticate post-hoc settlement when their `claim()` call was front-run by a direct external caller — they re-derive the hash from the claim data they hold and compare. Returns `bytes32(0)` for unexecuted indices — `_buildTreeHash` is pre-image-resistant so zero unambiguously means \\\"not executed\\\".\"},\"exitThroughEmergencyHatch((address,(uint256,bytes32,uint256,uint256,bytes32),bytes32[32]))\":{\"notice\":\"Emergency escape hatch: lets a user reclaim their project tokens and terminal tokens on the chain they deposited from, when the bridge has become permanently non-functional. Must be enabled by the project owner via `enableEmergencyHatchFor`.\"},\"fromRemote((uint8,bytes32,uint256,(uint64,bytes32),(uint256,uint256,(bytes32,uint8,uint128,uint128)[],uint256)[]))\":{\"notice\":\"Receive a merkle root and peer-chain accounting snapshot from the remote sucker. Updates the inbox tree so that users can claim bridged tokens. Also accepts any native-token funds delivered with the message.\"},\"fromRemoteAccounting((uint8,(uint256,uint256,(bytes32,uint8,uint128,uint128)[],uint256)[]))\":{\"notice\":\"Receive a peer-chain accounting snapshot from the remote sucker without updating any token-local inbox root.\"},\"getRouter()\":{\"notice\":\"Returns the address of the current CCIP router.\"},\"inboxOf(address)\":{\"notice\":\"The inbox merkle tree root for a given token.\"},\"initialize(uint256)\":{\"notice\":\"Initializes the sucker with the project ID.\"},\"initialize(uint256,bytes32)\":{\"notice\":\"Initializes the sucker with the project ID and an explicit peer address.\"},\"isMapped(address)\":{\"notice\":\"Checks whether the specified token is mapped to a remote token.\"},\"mapToken((address,uint32,bytes32))\":{\"notice\":\"Map an ERC-20 token on the local chain to a remote-chain ERC-20 token for bridging.\"},\"mapTokens((address,uint32,bytes32)[])\":{\"notice\":\"Configure which remote-chain tokens each local terminal token maps to, enabling (or disabling) those tokens for cross-chain bridging. Setting a remote token to `bytes32(0)` disables bridging and flushes any pending outbox entries. Requires `MAP_SUCKER_TOKEN` permission from the project owner or deployment registry.\"},\"outboxOf(address)\":{\"notice\":\"The outbox merkle tree for a given token.\"},\"peer()\":{\"notice\":\"The peer sucker on the remote chain, as a bytes32 for cross-VM compatibility.\"},\"peerChainAccountsOf()\":{\"notice\":\"The un-valued accounting record this sucker holds for every peer chain it has heard about.\"},\"peerChainContextsOf(uint256)\":{\"notice\":\"One peer chain's per-currency surplus and balance from its latest accepted record, plus that record's freshness key.\"},\"peerChainId()\":{\"notice\":\"Returns the chain on which the peer is located.\"},\"peerChainIds(bool)\":{\"notice\":\"The peer chains this sucker reports accounting for.\"},\"peerChainTotalSupplyOf(uint256)\":{\"notice\":\"The last known total token supply on each peer chain, updated each time a bridge message carries that chain's accounting record.\"},\"peerChainTotalSupplyValue(uint256)\":{\"notice\":\"One peer chain's total supply bundled with the peer chain ID and the record's freshness key.\"},\"prepare(uint256,bytes32,uint256,address,bytes32)\":{\"notice\":\"Queue project tokens for bridging to the remote chain. Transfers the caller's project tokens into this contract, cashes them out for the specified terminal token, and inserts a leaf into the outbox merkle tree. The queued entry will be bridged the next time anyone calls `toRemote` for the same `token`.\"},\"projectId()\":{\"notice\":\"The ID of the project (on the local chain) that this sucker is associated with.\"},\"remoteTokenFor(address)\":{\"notice\":\"Information about the token on the remote chain that the given token on the local chain is mapped to.\"},\"retainedToRemoteFeeBalance()\":{\"notice\":\"The total retained failed-fee ETH excluded from native add-to-balance accounting.\"},\"retainedToRemoteFeeOf(address)\":{\"notice\":\"The retained failed-fee ETH owed to each original `toRemote` caller.\"},\"retainedTransportPaymentRefundBalance()\":{\"notice\":\"The total retained failed transport-payment refund ETH excluded from native add-to-balance accounting.\"},\"retainedTransportPaymentRefundOf(address)\":{\"notice\":\"The retained failed transport-payment refund ETH owed to each original bridge caller.\"},\"setDeprecation(uint40)\":{\"notice\":\"Schedule (or cancel) the deprecation of this sucker. Once deprecated, no new outbound transfers are accepted and users can exit via the emergency hatch. Requires `SET_SUCKER_DEPRECATION` permission. A mandatory 14-day buffer ensures in-flight messages have time to arrive before the sucker fully shuts down.\"},\"snapshotTimestampOf(uint256)\":{\"notice\":\"The source-chain freshness key of the most recent accepted accounting record for each peer chain.\"},\"state()\":{\"notice\":\"Reports the deprecation state of the sucker.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Checks whether this contract supports a given interface.\"},\"syncAccountingData()\":{\"notice\":\"Send the latest peer-chain accounting data without sending an outbox root or paying the registry `toRemoteFee`.\"},\"toRemote(address)\":{\"notice\":\"Send the accumulated outbox merkle root and locked terminal-token funds for a given `token` across the bridge to the remote peer sucker. Anyone can call this once entries exist in the outbox. Requires `msg.value` to cover the registry's `toRemoteFee` plus any bridge transport payment.\"}},\"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/suckers-v6/src/JBCCIPSucker.sol\":\"JBCCIPSucker\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"viaIR\":true},\"sources\":{\"node_modules/@bananapus/core-v6/src/abstract/JBPermissioned.sol\":{\"keccak256\":\"0x16a1fa9f031564f9f3253d5e21327b228651269263bfbde10eb04862c65ed577\",\"urls\":[\"bzz-raw://4150d75d10f267953c0a42948ebd7bffe1568a5fb0dfe84befcda512ddf3a19c\",\"dweb:/ipfs/QmVMYXMRyiLySHCtoPke9AuVkhoVm9Gx1zoLMmSjXjFf2M\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/enums/JBApprovalStatus.sol\":{\"keccak256\":\"0x58f3eed8b6ecea6b640f4eb78a5a416ce8737f9155e350ef4077db422b3fca8f\",\"urls\":[\"bzz-raw://0b56bde97ef9d8ec2a3e464202c5d2fee9c39597485b3fb8baaeef971cc63bc8\",\"dweb:/ipfs/QmSdPaNfPm83yibuSvgLbaqgZw7LYkTLhacrxDagH3sprJ\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBCashOutHook.sol\":{\"keccak256\":\"0x2a6d327092775fdbeaf922b8364403102cae437f765f662fe142bf97e87c2ef1\",\"urls\":[\"bzz-raw://5f9a23971860b907569917fe14cbcc85993d83fb32e5342dd5338a1721e540f7\",\"dweb:/ipfs/Qmamt2n7HaWo2cUDn8K2FhrZPHBVxuaCWh9jf8V3WYPXMN\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBCashOutTerminal.sol\":{\"keccak256\":\"0x4923d51fd680cc280a9e90eec8e0597334ae2beb8c04d71289e319d7f82aa70b\",\"urls\":[\"bzz-raw://a39ee26c58248c154e5d4818fe544c614effded1c069b7d2e732c25d9caab4ff\",\"dweb:/ipfs/QmefeSH8CWtNQcrb8iNmfKKSViu3YnnJ9ciaNfEKhxgFHh\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBController.sol\":{\"keccak256\":\"0x7032c26dd11cec1ed279bd96a63c0b4f77126835e9fec744e259495827f9ad92\",\"urls\":[\"bzz-raw://a2129d48bed0763676d7f0854d6e784134642584f4c70fabdc7e9e5a9490bf13\",\"dweb:/ipfs/QmU1D5L4gxf2acwXz4QAp9fSZNVboDcj4qTE3xCz5bh2M4\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBDirectory.sol\":{\"keccak256\":\"0xb8f3ba0a544360b32c9f0a704168ee93c2960accfc010735c8cbea54941e63d5\",\"urls\":[\"bzz-raw://e9f14d5daa2357db4afe96313b40bf0c53c606315c9cb55109fffdc9c2fd85d0\",\"dweb:/ipfs/QmRPHFAiivM9CqdfocRyahdSjfWTbaSepPNCGGQU23ABcv\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBDirectoryAccessControl.sol\":{\"keccak256\":\"0x963e641f7b02187389fa813ab177b8d0f20a7a543f6ce2306e8d5f9db95d56e3\",\"urls\":[\"bzz-raw://b500161bcc70fac6830211b2f9855c2c1ab17a91226619cedde7daa166f9196c\",\"dweb:/ipfs/QmV92TK8CTZxVJoGBDEsBfUDidoLAobFmyL1NdQVJARpCD\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBFeeTerminal.sol\":{\"keccak256\":\"0xaaa9a98ad8967e1ab71b560f1cc07fc53d4900a8d595d53f5fb090d8e004562f\",\"urls\":[\"bzz-raw://36513a02be24f9677e0f1e82e01970c81c09043b69e4e60cb3007e2a05f3ce64\",\"dweb:/ipfs/QmZPKkEhgM5A5GzHG4TPxAe8HzjyLxLZzmJaDMDTNxV783\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBFeelessAddresses.sol\":{\"keccak256\":\"0x13cad5a8ef2daeb7634d93df6c9f6d1681b5344f4cdc89b03bbbd0953802fd8a\",\"urls\":[\"bzz-raw://35f25042894569b5c50a38d39ab3ceb91e4f69e56d448785701a3ffff335fe98\",\"dweb:/ipfs/QmTd6dF5X6L3v9bnfsh2ZKtRjK5ApwvmKipMWHNXfjwjBF\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBFeelessHook.sol\":{\"keccak256\":\"0x39b8d6e9798a90f555ea9ca44ade52f2fec5964df8994494bd5f4cfd42853602\",\"urls\":[\"bzz-raw://18e0a22e15d53db093648f6087280b45cf5a19571cf721ea49e4453f5da1cb98\",\"dweb:/ipfs/QmaRDN58nhCR4EkP3oaHpyG5EPgLtR2DSEDfPw4gRUG5Zd\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBFundAccessLimits.sol\":{\"keccak256\":\"0x0cb50a855cccbbe7c74a1ebc454112b7b63f502badd019895dd936365ac73340\",\"urls\":[\"bzz-raw://226be05349028b8f055e386fbc41f7db0feb6d027b6068c1c929b0924688e129\",\"dweb:/ipfs/QmXyotizn7pR8DQJtuj6Xkcr7LKorSkm9q8kQGaSDDikSw\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBMultiTerminal.sol\":{\"keccak256\":\"0x8e258ab09d0b1c429236d98a78610b829a9604e88f7c20fc1041535922c8b207\",\"urls\":[\"bzz-raw://0418c1dcfcd663ad55bf55ce38690e45ebefcc5a01575d6d7ecde18de283edab\",\"dweb:/ipfs/Qmbt2BJ3r9rLXqAZzrs36s24Ks3e6Ho3UTwvuUrtRdDtW6\"],\"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/IJBPayoutTerminal.sol\":{\"keccak256\":\"0x67353962158e3349be384d3ceec89db2b7525c5f5c7f6c8cb8f98aeb09142e95\",\"urls\":[\"bzz-raw://01e55c712af9794b2bf0caeab8bd2bd8150f4c6cab61dfec026d40652d5a26d6\",\"dweb:/ipfs/QmbbcxEBJ8UxFUbGPWvyu1cwxgU9YefwhdNuPvfj7LzSZw\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBPermissioned.sol\":{\"keccak256\":\"0xa43d05c9cc31cd768072e60d4f097d60dfe199469bfc96aa8df29346a15ee4dc\",\"urls\":[\"bzz-raw://de7caab7841a56b681140993557374edb54763a08b28aaaba35f1bc1a01f7937\",\"dweb:/ipfs/QmQKG6QNm7PNebRtKeLSzzXgp71Yw5Ja37nGPCvVa62Rzu\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBPermissions.sol\":{\"keccak256\":\"0xb32e13d512a7deb9ba1e47bbc0992817a63caa9e1f2913d6c55b637a57084037\",\"urls\":[\"bzz-raw://0d291ccc6edc581febf386779423001b0ed4d3b5b021ec444f7bef01cb2f9d28\",\"dweb:/ipfs/QmSUFhJpcpWYLEUzt4KrzyC4am39TNost8tWAtn5GdAUg2\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBPermitTerminal.sol\":{\"keccak256\":\"0x5540c746854add8cdc1911f9903a77c9fc97098d8d205075b8baf07485be5cd2\",\"urls\":[\"bzz-raw://b2136b9ac8a2f2429c83531150810b144f5f7f1855dc85c60fcf8e8c161889a3\",\"dweb:/ipfs/QmNSB7LStqYoPLkZcDwb1dTcakxBp9iENoFfkTaNswBYXj\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBPriceFeed.sol\":{\"keccak256\":\"0x3a948500b5397c90e926f3bdef9423e7f095f906b23cd1503009802c80bedb41\",\"urls\":[\"bzz-raw://a0ea0b7e5d442257f6159799b7bf262615b0f04e5cd542b0980f131ae40a63bb\",\"dweb:/ipfs/QmX7uugLaXtT5XmYxqfrmDqU2YuknAeYjHMiLm9iHaRfHw\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBPrices.sol\":{\"keccak256\":\"0xed5e532f6ee86029a1a4a1ba8b593296f772909a5f9d95da6cc6c595a838446f\",\"urls\":[\"bzz-raw://4314cbfe4ebd96a48eaf1c14af860aa08b7cd6a73da10391746b4d3410d13d67\",\"dweb:/ipfs/QmfRkWFbxmJUMew6DsDGbK88PypDBUA6PDTJFvfBaMno5n\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBProjectUriRegistry.sol\":{\"keccak256\":\"0x4342aaa8b9566e17691f69fc71e050350dd89b63f5040f092f115610d7a6c0eb\",\"urls\":[\"bzz-raw://88ce07791403524a229b080ad05604962d5b54e57106a533f62bff8a32896b1d\",\"dweb:/ipfs/QmSYxFpoH714CF7mZVhgKvFdYHHgg8R4UGXVXhMS69C7H2\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBProjects.sol\":{\"keccak256\":\"0x72c6cbda5a93593e3cc49ef6c4e0848a4b6daa88c188c4192776af86c49911dc\",\"urls\":[\"bzz-raw://448ed5d7a704b5f4dd759514dbcb78160b82732ac6bd7bc368a9f8822045e6de\",\"dweb:/ipfs/QmbnpCPxQLDvQx5ymEy1Ty3aks7bjonydops1CsjCACJBN\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBRulesetApprovalHook.sol\":{\"keccak256\":\"0x11dd67effb025396bec1bb97d35a9ba162340e9a824c048e8286802a12acaa45\",\"urls\":[\"bzz-raw://bae11f483c66d98e7fad9bbf47249f6fa4434693e8bace78cbe6d4da9afee009\",\"dweb:/ipfs/QmWjrjPtr8dLGtXQBrz6idwcNqyx2yVSVVQtqo74yqUSZV\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBRulesets.sol\":{\"keccak256\":\"0x8fd69e04aa2b5962a917394c0a4baa6653f7cea93629a1915c1f9c2e870143e5\",\"urls\":[\"bzz-raw://6c7ce64037e6a11cc03e5c66607a219eb25c953ad76aa7b914d2a9e8f0cd5434\",\"dweb:/ipfs/QmYoTec9wfd89HAnNckC2XJWegtgUmfjmi1vJYT4LTXQ61\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBSplitHook.sol\":{\"keccak256\":\"0x8155763689f6f51b5c6712ac6f23728b248a8924e69e63f8aa14d01c78ea17f1\",\"urls\":[\"bzz-raw://7bab14bd7250cc3ba6665573f2a961308a3453015af7a0305488c0db1745f95b\",\"dweb:/ipfs/QmYpKwToPcSChWXyJ75SBEeWKugBygAnQ1WaZ8wWcu5rha\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBSplits.sol\":{\"keccak256\":\"0x9d27fe4d9aa6dcbb24a24ee1fc16e51b51fab1c4ab1eace93981e73f3c4ce636\",\"urls\":[\"bzz-raw://7a6a1243102ac23cb1643bcc670b6b16b70566877941233964159f9b37755113\",\"dweb:/ipfs/Qmewa2o3nyoRwZ4pdhWqUh1ShWXA3GHJffiVafcKYXg2Ao\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBTerminal.sol\":{\"keccak256\":\"0xa3621c12f7c2e33ee38b5de626a5939190d8a12b1e5318a7cd8d398595480cec\",\"urls\":[\"bzz-raw://1341254389038383117d9b23ed2f9d1812fc30ef1c11cfd6c8423918894d7ba3\",\"dweb:/ipfs/QmV2WJ5a3NW12RnZAM3ySbEfGHNN6GfqqpsMHXorfoxiQo\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBTerminalStore.sol\":{\"keccak256\":\"0x0ab2fd1b5249ff9dcbb51585df7df8c09af309a984fb0a2378426c7fd1800f43\",\"urls\":[\"bzz-raw://8bab809f8ea5692c738fbeb3f83d7b7259e469e03b7e4e3011358f887636ca44\",\"dweb:/ipfs/QmdbyiVSctQZcfibvygyyJntRpwzRoMDKrSkPydn7VouYm\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBToken.sol\":{\"keccak256\":\"0xadb3a7c3c149b60b6b51fdfb2acc814956d8aa9bb94e745c0e907c171b0983f2\",\"urls\":[\"bzz-raw://dddd118b37582f19c7559bdf848f53a29fb16289311bd14957c95fdee9cd28e6\",\"dweb:/ipfs/QmbwWXXVR4SGH9tz6pMKKMZxZ8YF8iRQpMCP3DnXDadx3L\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBTokenUriResolver.sol\":{\"keccak256\":\"0xcbdb1448260ebea5937411516957ef199099e34ff997e7f2a617c2898f921994\",\"urls\":[\"bzz-raw://d1cbf97e5684c987be6703c096e8230d870fab25a23eec8d209cd082e3f2637b\",\"dweb:/ipfs/QmNmzeuQoFiaUTQAcV1tyJyjUYEJ3t7386zTw4ofT7HoZM\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/interfaces/IJBTokens.sol\":{\"keccak256\":\"0xf7b458ce7e75e1c4daf2052873846b7c99abb098c0d5fbb2ee5d18e132e4a76c\",\"urls\":[\"bzz-raw://ee20abdc20787df386809255eaee2ef27daca71d4769a0d146cc249502ab0604\",\"dweb:/ipfs/QmP3ZpnnnTQKKGNV9KyLxCYXkjBDuiAgqHX6NRGYuYzTaW\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/libraries/JBConstants.sol\":{\"keccak256\":\"0x5d4b095f3b94c52f89b9cf8a8104de0242497e61f1b32ddc82e78a9ba71a6d0f\",\"urls\":[\"bzz-raw://3ac3340339e0b6a7aae881781b2830f59e3f44114955e2f770172a9bffddc104\",\"dweb:/ipfs/QmV9pFGNGcknqHLEuc6rmC1YPwuwtsokjzh1WX8H2jmVRp\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/libraries/JBFixedPointNumber.sol\":{\"keccak256\":\"0x5e260964f6c2d08b2a2929630fe4f261e8a93f40f0d073ed1a8174dbc3ca2fef\",\"urls\":[\"bzz-raw://125b54e29e33cb009a34651b9e255ca3e49545079839e58d14d5c5992871a27d\",\"dweb:/ipfs/QmcGAm8kytywkQogQUabLhuYDC5kLnsTinAm1rBLFwRjf9\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/libraries/JBRulesetMetadataResolver.sol\":{\"keccak256\":\"0xbd3b117f9457dbe55bd29a2daf368a682c0ab25cbedc0139f309809a4ab646c5\",\"urls\":[\"bzz-raw://6a72f70e18edb22b8abc238ba169e5c775696d07915b5d91a8601c1a28ff096e\",\"dweb:/ipfs/QmQZHfiTLqdk1pv1hiursm2icuAwFSzmjGTxRaHMcAqsUh\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/structs/JBAccountingContext.sol\":{\"keccak256\":\"0xf53e975ce2632558a95d0a57679dbb8afff984d06daaa530cd4c442e467c3403\",\"urls\":[\"bzz-raw://519f7c466c8d90227afe2bd9108e7477412600fea8b4134889795a58a51b156c\",\"dweb:/ipfs/QmaSHMrNLfP8D9RRUaYbMWURdZYweUmt5ysgtTGMZiwnai\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/structs/JBAfterCashOutRecordedContext.sol\":{\"keccak256\":\"0x8cd6d13c98bd825d7e61cb3b2f5cbf56e77f9a2f85eaa0e27d82f1fb8d5af4f7\",\"urls\":[\"bzz-raw://0e4ff9a254147cc6728b3bdc3862b77d15b518b49375e400b5f0b78552f14c62\",\"dweb:/ipfs/Qmd25R3LDrnRHiSdrNSdfqk8746A3J3VH44C5HDfHkFvU2\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/structs/JBAfterPayRecordedContext.sol\":{\"keccak256\":\"0xcf1761f48e4cbd6eeeb64bb19e434eff50a7f666b2116657f88f63d19620c6de\",\"urls\":[\"bzz-raw://842fe47a4ad56c830040864b458de398efd0cf82eb0add9349e792d0c8b0c275\",\"dweb:/ipfs/QmXBj6EVnzvVX8ZYa2ndyjoSZDGjpXxaoy7dBuoGMaAmRX\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/structs/JBCashOutHookSpecification.sol\":{\"keccak256\":\"0x1579c160a19e68eb06158f56120acf06b8aa4bbbc9836c80fabbb3d2e57ccf3d\",\"urls\":[\"bzz-raw://a81f5e0c384caf0ac11814825ce07e6c6cee97d28f60dcd65dfe8d529b6135fe\",\"dweb:/ipfs/QmY2q7oMFDMN1PoQ8zp7PUQu4K5dYKhYLKBKqrTy42YU6N\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/structs/JBCurrencyAmount.sol\":{\"keccak256\":\"0x7f321bbcbd13abfbc8f0d08a5adaaf8ef312db5bb899012fcffb6170fbb962a9\",\"urls\":[\"bzz-raw://bf9301ef1dbb3abda7b492585377617508ba048c6170f21a5e7d2b3c034eb384\",\"dweb:/ipfs/QmcetEFxSYLLNSZzPBpNn3Fc8sFcrFE8A8h12ZSj2tLgxD\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/structs/JBFee.sol\":{\"keccak256\":\"0x354a99f21d8fa1e306886b0163c8b2daed66d32a2b2bcf6eb1dcefecfc7ef471\",\"urls\":[\"bzz-raw://91b468d942f96d5e27882b836d503125aedd8b0da4ea8e4295cd1b619a83073b\",\"dweb:/ipfs/QmT6TL5eEap2GvaWCwcsCEgVVVwnwnNWmBGskrkESJeFKu\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/structs/JBFundAccessLimitGroup.sol\":{\"keccak256\":\"0x7e62015441edc056c3959fb0e5d0b59a1b209a91ce4beab9d3f6c25e02daf0c0\",\"urls\":[\"bzz-raw://5c77a27155794a7c05ea17ed4bdb382039187b9effecc300563d7fb144029983\",\"dweb:/ipfs/QmXE4FptihU4wSqFLeGWsaNDpZmmNYFLEXMnWGhEC5pf3X\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/structs/JBPayHookSpecification.sol\":{\"keccak256\":\"0x28f565b626774c36a990ac999f268fbaf9d7f7861e862fab1fb8301f2534e8d1\",\"urls\":[\"bzz-raw://a5d7375934179178febd3b412099b1a5ff42a154ce8b949df2c11b5f3cb3b80e\",\"dweb:/ipfs/QmXP5vVq8Z6HntiuMcPWfQURCKejyiyHLKYuMmzCuUJJtV\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/structs/JBPermissionsData.sol\":{\"keccak256\":\"0x9cb75b1171657be08950f9fc9f6c2bcb2496f618de4ab932141d424dec29d9df\",\"urls\":[\"bzz-raw://a8f578d6132c92048ae553a3c13260ecfa657f4a1bbe18f6c550d96988167590\",\"dweb:/ipfs/QmSYfGm2mcYfMm4wfnZMTjuUr1kBJoq4vZSCkwdgi9BRFk\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/structs/JBRuleset.sol\":{\"keccak256\":\"0xd03f45345597fca43effe3bc593572c989f4294d909505e331cbd2640a801d23\",\"urls\":[\"bzz-raw://2cc09b335549f4982c16c1109f3078f09fb81c32370baff007633a38badb7a83\",\"dweb:/ipfs/QmYJHBvXscvokRqzdGdTCRQtHUpnePS2uaCDfgHLuuMo56\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/structs/JBRulesetConfig.sol\":{\"keccak256\":\"0x812ca14f18e228fde272c0caf56a59b71302bfb4f9c514ac6fb0989ab8e1c48e\",\"urls\":[\"bzz-raw://9b234704315ac567db402c89dd5be46ca029094872f6dd52698324dd6ddf6a2d\",\"dweb:/ipfs/QmYPUJHLkyUwbYfJ7UdcpgvyzPtibUmhrKtzXQcRtA8Kvz\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/structs/JBRulesetMetadata.sol\":{\"keccak256\":\"0xbb9bda3b7ebb6796fa091ee6ce3182ad2a03dc35b89df0fb1107fae7c26ae0b4\",\"urls\":[\"bzz-raw://1b400674d8ec4e3495041c03d5601c07a68eb5d18a0cff83a5823007d6bad36e\",\"dweb:/ipfs/Qma76CRFPwV9WZq2ttZ2FFvui5BvzRHnftrL3Tz1m9uGKv\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/structs/JBRulesetWithMetadata.sol\":{\"keccak256\":\"0x1bcfadf20488f6df65227f8d4d0fbf9b7539456a2389567f7fe3900d23289bc3\",\"urls\":[\"bzz-raw://0a15c399a71e5373f8c0484c6d6b83521eda31e063a2c53e4c5cec4e74550343\",\"dweb:/ipfs/QmQwi8zkjoTVXbK89NeETYimWCacTrNsesJdpLSvGdqMPX\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/structs/JBSplit.sol\":{\"keccak256\":\"0xf50ba85591d86076ff127e97af2c4b7d1a1be3e20e25d784b64591697d71ab52\",\"urls\":[\"bzz-raw://04276773313a01c2b816c95addea68843c21db3888f4c547eb6e6c486ac55547\",\"dweb:/ipfs/QmZGpxzryNkheek5V9dJWfcJyTP7T52PsPXgRBuweK2rsN\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/structs/JBSplitGroup.sol\":{\"keccak256\":\"0x8dc98fa9e730bee8bcc0a8acf1bc4db1c9b0edf307d969c9c9caa4d6b8d856d9\",\"urls\":[\"bzz-raw://66f4306e0e69c82033927952564fd617e7c4b29aa8b165d5b53a0ebe3109ea12\",\"dweb:/ipfs/QmQqN1u7FHAdEtEZNRcKvZwYtXEQVQnLd6FMzHESP7wDtx\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/structs/JBSplitHookContext.sol\":{\"keccak256\":\"0xa2246f4960ec2b24db3fbfce5d59782cdb9a8fb3c3f832a2c39ddc92859ff170\",\"urls\":[\"bzz-raw://3e3a0ae100c15bb15f0484cb68e3052c3d3d764f84e37020e8dd6b658ff98076\",\"dweb:/ipfs/QmPAv99zN7senrfCMMkeT4RMWpwTdqLgMURQR73BLRe4ZG\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/structs/JBTerminalConfig.sol\":{\"keccak256\":\"0x9e31505080d3754b6d7db96095b0545930ef6dbc035b91fcc32fdc76a0e7c2a5\",\"urls\":[\"bzz-raw://f7702ab33a1b713c37e5397a55d8ef089289f4da8034cfe9622cbc69a98c47de\",\"dweb:/ipfs/QmXyiXps4aJyiM7vtDC373QUoqwB4DMETaZzC5cZPJKaAK\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core-v6/src/structs/JBTokenAmount.sol\":{\"keccak256\":\"0xc61593d33d5ec30e695d382948a1b944d01e29a8f2bfd29f75ecebcdbc7816de\",\"urls\":[\"bzz-raw://8992c1e5fca0c2342ecc0e734dfba6a2a752e4c29184784931d0971e44305051\",\"dweb:/ipfs/QmYNcaW3qeCkgAExUaFTq238fgfJuoYCTwjCn7jm94U4dJ\"],\"license\":\"MIT\"},\"node_modules/@bananapus/permission-ids-v6/src/JBPermissionIds.sol\":{\"keccak256\":\"0x5105c29834e0dce4e395e262f23089a1077404f5317c591c89f3621cdfda9628\",\"urls\":[\"bzz-raw://54deca2c06d77f5d1087911e8035d244dde2b08a5dc0dff146b86e6a314419e8\",\"dweb:/ipfs/QmNdpTioAbk6bahJx4aT1WFUY9aV182JH1Dn4FqfuqC8QC\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/JBCCIPSucker.sol\":{\"keccak256\":\"0xb1620b28eb88a4a67e86ce626c6052ba321ade81edba40eb8581d532b157fb00\",\"urls\":[\"bzz-raw://db1fa8e0879011421b8b617fec56fa478cb3c28039520b48c85b2c5ac88855dd\",\"dweb:/ipfs/Qmbj9gS5bAA1ChimYs21KkPc3ezKhT6a3PkwDrYS29JqUv\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/JBSucker.sol\":{\"keccak256\":\"0x6bf9e8a6cd065a5c43cb1be44d62ed69cc6e86c1077ce3d2e5a2b552b83f1b73\",\"urls\":[\"bzz-raw://9c4da2083c8de16e2ced8bf7f0f9f03dcd5c6bce3089a0f42be15de5f67e6758\",\"dweb:/ipfs/QmTnwsoYbYtuVcppFFFDzR983WEd9rrjdXUr5zyRQUJaXX\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/deployers/JBCCIPSuckerDeployer.sol\":{\"keccak256\":\"0xdc4348e18d67c7f6316da098d0b1d5c15a555c2be88e362d2a80c0fd69fd8833\",\"urls\":[\"bzz-raw://161e11cc81b4e192deb88d4043c2bd9d5968bd345c8d84003bf3f0a183117e31\",\"dweb:/ipfs/Qmc1Sukck6tSJmqHuP7KZKr9adyUGPpFcEMLWfknXgV3wL\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/deployers/JBSuckerDeployer.sol\":{\"keccak256\":\"0x45fc70d622e3f74924cd11b3cc818ff40b030ecfd419e6724b24208ccb22797e\",\"urls\":[\"bzz-raw://9cc01e0a4f2fe2564ce4f872f6530b199f68c8a916ff174b61eb1bd302c8e60b\",\"dweb:/ipfs/QmPCKEYksbnuydzupCFrympzn3NFq6zcxt3y4EiecNmDW2\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/enums/JBSuckerState.sol\":{\"keccak256\":\"0x0ee6d0d08cd4f538b8c9ff59d480c7c3371c4cb1971e5a67a89088b4b040a608\",\"urls\":[\"bzz-raw://b8cce8e51b084cc9a844dc1040aba00b63b01f97868d52cc9f38b9d354fd741f\",\"dweb:/ipfs/QmTveKLmdZAGbwEwaCTBwofSBtckZsDcew3E7iNTnpeskY\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/interfaces/ICCIPRouter.sol\":{\"keccak256\":\"0x39a710c2228e5b9175a6e4f5ba8d18c33b8d4ca6e4d13a2c19e4b696106db220\",\"urls\":[\"bzz-raw://f221e355e65b83f558d3ddb92e68de730c02644158cf8881e80ec57d8eaf0c6d\",\"dweb:/ipfs/QmT2soR7tGRyjsA9cZbHy8XyCUMdK69t9c7MewZywaaJsY\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/interfaces/IJBCCIPSuckerDeployer.sol\":{\"keccak256\":\"0xe85577015e551a721312c12e6f90b8c6a7fd21fe5b7c5cbe8b1011acc3761cb5\",\"urls\":[\"bzz-raw://eda8c84af5c82721cca85b186a630076897cb6743f7c6baeabd61cd7430d729c\",\"dweb:/ipfs/QmNWGgXQDxcNoGGaHorKoRQufPz2mG2SGELqucRFEy9Rsp\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/interfaces/IJBPeerChainAdjustedAccounts.sol\":{\"keccak256\":\"0x9edb4e2d8aa9becff5b761f84d16048fcc5c2136686ca05dd974f9d2b6568895\",\"urls\":[\"bzz-raw://bd9d6254c7e5c6f315d8e835b2414b943c629bf7ea8e7f23720cef433af6cc9a\",\"dweb:/ipfs/QmVDjtn5BgGhYCpFQ28b2e4rHMit9zLqZKmPCBSENFjBsT\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/interfaces/IJBSucker.sol\":{\"keccak256\":\"0x570edfbf153b28f44f5dcf4b8e9ee146be16ba08aee58178d288e121edd023d4\",\"urls\":[\"bzz-raw://f67f5797159640a3d39835b7dbac501ca3f4e95fbebdf4673dc884af6c8b4de3\",\"dweb:/ipfs/QmW49DYyf2vrwMz2Jt3x2NuA6Dy4phnyGpifMpGPacQ4qz\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/interfaces/IJBSuckerDeployer.sol\":{\"keccak256\":\"0x385534f1171e96f75da0fb34c31976a8bff68e3719a87fe526a1bd2c80044826\",\"urls\":[\"bzz-raw://af89283ddccdad821f8d975175082e8a3ecdccba35ad1ec626b2cebbfe5696ec\",\"dweb:/ipfs/QmXAzpwVBH1PwpCZoXFbTXk8v4wUhiKAzXF6chpe5cgoYJ\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/interfaces/IJBSuckerExtended.sol\":{\"keccak256\":\"0xe3d34fd1bd702c37de48dc7a1cb7a8bee4fb3f38718ffdaf08ac2cea6338266d\",\"urls\":[\"bzz-raw://f4ce0af97c941ae72aecd78b7cb9376c741d0b4e2637fe5a63f08f44847dafca\",\"dweb:/ipfs/QmXuVb3CYnKywWPEFAuE4goXTrqkQgUbfQNSQHARdvRs9E\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/interfaces/IJBSuckerRegistry.sol\":{\"keccak256\":\"0xa80cf6e229335f88468be1625cb02d65bd84f585e047a720e53661dd5c9caab2\",\"urls\":[\"bzz-raw://01b17afe90ae5f10adfac0d32d54615128ac66fae4357d85f4e12a0cd7259b8d\",\"dweb:/ipfs/QmW3reADRJmkA2ay4AqM5TcseW3ybKvdbexZBG9FuLCUAi\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/interfaces/IWrappedNativeToken.sol\":{\"keccak256\":\"0xd71f962893ff6d4b7c77606602dd5de63c211efbecf51d0677d047107a4aa814\",\"urls\":[\"bzz-raw://5388f0f6c17dad9c478f6e55cec6d73fcc6ac43dc6714bb0e839ea904fd9033c\",\"dweb:/ipfs/QmWTJQHXEPWRYZgAh64D99kzkQa4EqbuKiHNm9JdypCmch\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/libraries/CCIPHelper.sol\":{\"keccak256\":\"0x3d04f34392bb7adb7226552fc7d1bc055ce86b3d0d744b6f9297f05207ba175b\",\"urls\":[\"bzz-raw://b82b460487d15b102dbaf260869c1ee3aaeec89e0ffc108f57f64750a173a918\",\"dweb:/ipfs/QmdA8ZaJDXePE2oKhmWFp5L4Aez7VHLsP1U6ijQ5Z4ZxGB\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/libraries/JBCCIPLib.sol\":{\"keccak256\":\"0xf7ebc8400cfc5d5c21536426888a7cda06fdee67724ed3f36da3d7fefb3065a1\",\"urls\":[\"bzz-raw://ebfdde94047d7cc303de3c51dc578a51eebfefae79866b5ed21ad0d8c2792b0a\",\"dweb:/ipfs/QmZ9BH2ooaHwA7jURUyNSpKsvBcoZKV41rinb8gEfppcyN\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/libraries/JBPeerChainAdjustedAccountsLib.sol\":{\"keccak256\":\"0x838291ed97d7089a916f02cd87487cc6fe661af548b969d8ec1fa6d5aa3a918c\",\"urls\":[\"bzz-raw://9511a6fae687968dc8813374eabb4e16322dc4acc680f9f395c7365e3cade8cc\",\"dweb:/ipfs/QmYFq7weEEu9JUCKetn5FPNjg9YGfdMArU6pFhRdkfx1kb\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/libraries/JBSuckerLib.sol\":{\"keccak256\":\"0x5ec3a9d29120856b97d6c6b692ebd78704bdde44af97b45676f54c370ee15c93\",\"urls\":[\"bzz-raw://082924b3338e8c55711254e4abc9c716626fe6fb764040437d0b7ae6e75367e9\",\"dweb:/ipfs/QmYtaK22AHrbZWAHUUPE9oXpu3vC5JJXfPPoK3QWoGQDWy\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/structs/JBAccountingSnapshot.sol\":{\"keccak256\":\"0x3a3b48c50fe27dd4b2907dd26d9e48de0f8bf7e48e4ac42b65e4c8550b5037cf\",\"urls\":[\"bzz-raw://b61c627efb41e8bf1f77fec9e79a1d43846dfa14ec6d6dfe8b6fc93ab09c3bf8\",\"dweb:/ipfs/QmVx19cqSfeHHzr94n9iJAp45WC6sETtC6fp9SuHX8gNfF\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/structs/JBChainAccounting.sol\":{\"keccak256\":\"0x40ee90d31b301b8ad7c3879afa605cf65e9f41c763b3c84f9a73f15ef67b8dc3\",\"urls\":[\"bzz-raw://0ef0660386fefb8c4761f7a96484ae88027ae7432939fb43170b209cd54a01b7\",\"dweb:/ipfs/QmSyhhHEyHswUoTT99SekwfoVnCbL9cBjEDHsXcqpWxMKM\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/structs/JBClaim.sol\":{\"keccak256\":\"0xd616fb935e61727ce04832808667bd40dc121d66f5cc2f347018dfd971635dab\",\"urls\":[\"bzz-raw://dfdcfb12878dc03b4623ddfaa42afa7e8270e8a259a8c453ef4f7e916ca52876\",\"dweb:/ipfs/QmZyAUzatUq2HfGBpoKbeqkC7mpetQC27M3797wgNgkE6H\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/structs/JBInboxTreeRoot.sol\":{\"keccak256\":\"0x9553483a63fbad26d7f3fc50d47bbf309f6b2b316785bc179fa83f97f6ba88f1\",\"urls\":[\"bzz-raw://fddbe03a2a31812774aba9ffe44b0d0209da182f03ddd7fb8f8f2cb5858a3923\",\"dweb:/ipfs/QmeQJHXw5Bc8s3CXr9kE7Tw35m3Tcmq7DjrEidcB2CK5D5\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/structs/JBLeaf.sol\":{\"keccak256\":\"0x48da8acc3873c390430f57de4871bce06b0d9a1be75935a4367b694acab447e2\",\"urls\":[\"bzz-raw://0ecb27f67901ef293993dc257efa592191bd2464cf9c2afcf5b53a4ddaff905c\",\"dweb:/ipfs/QmdoA5SkomSqJvx7v3qn9Z1cTzzH43WDCozqoi7GBYKjaA\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/structs/JBMessageRoot.sol\":{\"keccak256\":\"0x5f51bc50dd2617355fcf6bff543fd190a367f8c2edda2c2e431cac136f21fc27\",\"urls\":[\"bzz-raw://5627bec722dbc3778e3f3d9280cf93552af22679682489463fbb637226331f98\",\"dweb:/ipfs/QmSSK3apkXb86BN6cnhs8V1sTdfgonPXKhHbcwvUGY4zDf\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/structs/JBOutboxTree.sol\":{\"keccak256\":\"0x52552d8927b83d06955f7d40552b19779bc05e3d4ee58a7e026d160fb1958a92\",\"urls\":[\"bzz-raw://d1f21d7415fa29bf088f1dfc3ba2e7251f1132424194703b7dc2493839495bbe\",\"dweb:/ipfs/QmTUL5mALZi8A6QyrWrp1Qdt2e5S72nyEDPuZPwgW54dc7\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/structs/JBPeerChainContext.sol\":{\"keccak256\":\"0x1da3d201771c88f2469069d3f2295fd26e2f494e0ec0c4d06d0ccb068f2b26bc\",\"urls\":[\"bzz-raw://2898b578f708e6988392fec3b1eca0eb07cb267c139ed7c1cf1b62f27a153e91\",\"dweb:/ipfs/QmVQJxAdkLZVyVGaeYywrwoA8GkTbBwLykWeroLJvS8A7w\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/structs/JBPeerChainValue.sol\":{\"keccak256\":\"0x784d12e2ee229cb8242366a27636228d2df62915f8bcc64cb6d72ddcf111f655\",\"urls\":[\"bzz-raw://b7d3885e5f02a52af36487ce6fa15f11ee41674c2821c8959ad6ccaac10941fb\",\"dweb:/ipfs/QmYVdYM55ajAKE78sEkf5GZo45k4iP8t6JceDnce4bpjrW\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/structs/JBRemoteToken.sol\":{\"keccak256\":\"0x972657457699a63ded3cba38b3796cf619fe1929b7e857d4861e52a06ad9b378\",\"urls\":[\"bzz-raw://b35379dc126296a4f8a47ebd2bc09101ec782677711373245b33017670deb051\",\"dweb:/ipfs/QmQs397EjjPgbZdzQR8yUC6vxMYj3nvJZ26RZ6qy9Thg9N\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/structs/JBSourceContext.sol\":{\"keccak256\":\"0x1fc57c102ae28eb62103063a13289ed484c5520ce220ee59f4412e9b78f431c2\",\"urls\":[\"bzz-raw://af3a7ba1d82c982f6396cc9444fb69afe2a90279eb6b8b147ce1626bab3836f7\",\"dweb:/ipfs/QmUZybGqw84SgTbqvDk27eXQhpPYLDz7FV6o4M4oJC4chK\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/structs/JBSuckerDeployerConfig.sol\":{\"keccak256\":\"0xee7d3235a13ea2a66a885f90a2623740029f58fad4121e59b46666abb598fcdd\",\"urls\":[\"bzz-raw://3702c6c3f19d11fa0d0cf8b918cdb122c27e2aec09a67386483834e98f533706\",\"dweb:/ipfs/QmZMwk65iWi5HCwLwHiqwrXSEJMnaZMEM9cW359matZ8AT\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/structs/JBSuckersPair.sol\":{\"keccak256\":\"0x535f28ba838f066ea773b575f83230663761996cc358f6f9b684340403faab18\",\"urls\":[\"bzz-raw://c94e5c03989b03d66ee9cc08c3299957a25b7c3492416792d1d8fa50d11f34e3\",\"dweb:/ipfs/QmTrsUX4KySQsVZYEY6hjwtL6g5cFqFkwopMMAU47Atyqf\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/structs/JBTokenMapping.sol\":{\"keccak256\":\"0x45ab5eb3775475cbf5b2c011ed8ea78fbc719f5dc13019409f09d53e9719f97b\",\"urls\":[\"bzz-raw://7010e7fe473cc892ee5fbb8310ebf7c739bc64e4c9311b6fd63a358dc16bb634\",\"dweb:/ipfs/Qmcj73PiufP2dRdPVGV3gSfdbneYH13Kx4NP1cYbV5aVX8\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/utils/MerkleLib.sol\":{\"keccak256\":\"0xb08ffa1c6d9394eed1396ecf6bf59333ec925c9cb80623248448a6f1f2a7b366\",\"urls\":[\"bzz-raw://da8df7bd8918eba5116f3ff527352f804f73dc430f03cf529b34b4bb225479d2\",\"dweb:/ipfs/QmarAXVxZAAxePcMgpzsE84E1LNnCEFZKRXjhaBUy46L74\"],\"license\":\"MIT OR Apache-2.0\"},\"node_modules/@chainlink/contracts-ccip/contracts/interfaces/IAny2EVMMessageReceiver.sol\":{\"keccak256\":\"0x8f67554db88baee2d8facee3320fb85fd566f843b9e4bdb6870eafe1637d7919\",\"urls\":[\"bzz-raw://4fb75a68a7a53c0d2d444f996b60b77f329c6e25e96d695f6b6219eb92baebc5\",\"dweb:/ipfs/QmWCaGFSHSx17TgDou3EX2yuofPQnmkiuGX3isUmfHe3mb\"],\"license\":\"MIT\"},\"node_modules/@chainlink/contracts-ccip/contracts/interfaces/IRouterClient.sol\":{\"keccak256\":\"0x21280104a988eb7022f8968b1672bafba80a74e59f5512415009dff9a37be46a\",\"urls\":[\"bzz-raw://1bbcde3e9cd0c60f540ec0f2bbd70724cd6c9650428a1fade8c0589ef163d6ca\",\"dweb:/ipfs/QmajfuurMHa1SKWVVXsydeKuPCGzXkKtRUi2HW5EA7p6gr\"],\"license\":\"MIT\"},\"node_modules/@chainlink/contracts-ccip/contracts/libraries/Client.sol\":{\"keccak256\":\"0xe358b1c7da94e7c601ad4d3f19f50892393f59152b46838057cbc68b21fe9bc8\",\"urls\":[\"bzz-raw://070bdf838421d0c7cad76ecb420d36e175bfa909577a8b9f4761cc5578eaba7e\",\"dweb:/ipfs/QmXrYbsmRkkLe85ttb4Cwjfoz82LUbez55ecZyJPqnwy17\"],\"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/metatx/ERC2771Context.sol\":{\"keccak256\":\"0x9695d220b99dcf62910533bdf5d40d4cf6a4e04d5b106b6803a80586486dc7f7\",\"urls\":[\"bzz-raw://83b7aecd65882d8953643dce144efe91367082cc01830c9c4ed3c8a4837fb558\",\"dweb:/ipfs/QmQ5HxGavcCKjuhd8buv177qjG6A4kvxx4pZviceKdspdM\"],\"license\":\"MIT\"},\"node_modules/@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"],\"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/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"],\"license\":\"MIT\"},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x2d9dc2fe26180f74c11c13663647d38e259e45f95eb88f57b61d2160b0109d3e\",\"urls\":[\"bzz-raw://81233d1f98060113d9922180bb0f14f8335856fe9f339134b09335e9f678c377\",\"dweb:/ipfs/QmWh6R35SarhAn4z2wH8SU456jJSYL2FgucfTFgbHJJN4E\"],\"license\":\"MIT\"},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"],\"license\":\"MIT\"},\"node_modules/@openzeppelin/contracts/utils/structs/BitMaps.sol\":{\"keccak256\":\"0x3616f1b0d0a9ee1ca8f0953ecaceb9230e36f691c7974d30f964212acff52d2b\",\"urls\":[\"bzz-raw://d4bebdd07b31ac28e3e596ac6f0333da90a4e332405aa7d65f3a3a7e0b4cf15e\",\"dweb:/ipfs/QmckoDU5bBnye2UtPcrfJNahLD2FbxrnPP9nrREMWPpnug\"],\"license\":\"MIT\"},\"node_modules/@uniswap/permit2/src/interfaces/IAllowanceTransfer.sol\":{\"keccak256\":\"0x37f0ac203b6ef605c9533e1a739477e8e9dcea90710b40e645a367f8a21ace29\",\"urls\":[\"bzz-raw://e0104d72aeaec1cd66cc232e7de7b7ead08608efcc179491b8a66387614670b0\",\"dweb:/ipfs/QmfAZDyuNC9FXXbnJUwqHNwmAK6uRrXxtWEytLsxjskPsN\"],\"license\":\"MIT\"},\"node_modules/@uniswap/permit2/src/interfaces/IEIP712.sol\":{\"keccak256\":\"0xfdccf2b9639070803cd0e4198427fb0df3cc452ca59bd3b8a0d957a9a4254138\",\"urls\":[\"bzz-raw://f7c936ac42ce89e827db905a1544397f8bdf46db34cdb6aa1b90dea42fdb4c72\",\"dweb:/ipfs/QmVgurxo1N31qZqkPBirw9Z7S9tLYmv6jSwQp8R8ur2cBk\"],\"license\":\"MIT\"},\"node_modules/@uniswap/permit2/src/interfaces/IPermit2.sol\":{\"keccak256\":\"0xaa631cc9f53e699301d94233007110a345e6779011def484e8dd97b8fe0af771\",\"urls\":[\"bzz-raw://fc0502cf19c9c18f320a3001201e89e350393b75837f6b7971de18b2de06f30d\",\"dweb:/ipfs/QmT9SfhdJ7VJNNrf94g4H5usyi7ShqWGx7Cqsz9jZTjX96\"],\"license\":\"MIT\"},\"node_modules/@uniswap/permit2/src/interfaces/ISignatureTransfer.sol\":{\"keccak256\":\"0xe6df9966f8841dc3958ee86169c89de97e7f614c81c28b9dc947b12d732df64e\",\"urls\":[\"bzz-raw://3d4eafdee7f48c3be8350a94eb6edd0bfb2af2c105df65787a77174f356c0317\",\"dweb:/ipfs/QmY1j2adeeAhNpn6cUuthemxGCdLXHTfyMh9yTKsY4mZ2d\"],\"license\":\"MIT\"},\"node_modules/solady/src/utils/LibClone.sol\":{\"keccak256\":\"0x1b96fd03a3948155bd2fe95dc4980930c759b174026e18f11bc8e88d55ae030e\",\"urls\":[\"bzz-raw://64998d16472a127031ee6a796ed9afcf13dd662afd30eb4d3e2a42c2bc9fd204\",\"dweb:/ipfs/QmTXHGy9t8YTW96tjiZ8RBqmijXUTqc1JznEBqHv8Duc4A\"],\"license\":\"MIT\"}},\"version\":1}",
2462
+ "gitCommit": "npm:@bananapus/suckers-v6@1.0.2",
2463
+ "gitDirty": false,
2464
+ "history": []
2465
+ }