@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,2307 @@
1
+ {
2
+ "format": "sphinx-sol-ct-artifact-1",
3
+ "address": "0xf044d9f16c4bce21bd75227561bb3d1838ce8651",
4
+ "sourceName": "node_modules/@bananapus/suckers-v6/src/JBArbitrumSucker.sol",
5
+ "contractName": "JBArbitrumSucker",
6
+ "chainId": "0xaa36a7",
7
+ "abi": [
8
+ {
9
+ "type": "constructor",
10
+ "inputs": [
11
+ {
12
+ "name": "deployer",
13
+ "type": "address",
14
+ "internalType": "contract JBArbitrumSuckerDeployer"
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": "ARBINBOX",
56
+ "inputs": [],
57
+ "outputs": [
58
+ {
59
+ "name": "",
60
+ "type": "address",
61
+ "internalType": "contract IInbox"
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": "GATEWAYROUTER",
95
+ "inputs": [],
96
+ "outputs": [
97
+ {
98
+ "name": "",
99
+ "type": "address",
100
+ "internalType": "contract IArbGatewayRouter"
101
+ }
102
+ ],
103
+ "stateMutability": "view"
104
+ },
105
+ {
106
+ "type": "function",
107
+ "name": "LAYER",
108
+ "inputs": [],
109
+ "outputs": [
110
+ {
111
+ "name": "",
112
+ "type": "uint8",
113
+ "internalType": "enum JBLayer"
114
+ }
115
+ ],
116
+ "stateMutability": "view"
117
+ },
118
+ {
119
+ "type": "function",
120
+ "name": "MESSAGE_VERSION",
121
+ "inputs": [],
122
+ "outputs": [
123
+ {
124
+ "name": "",
125
+ "type": "uint8",
126
+ "internalType": "uint8"
127
+ }
128
+ ],
129
+ "stateMutability": "view"
130
+ },
131
+ {
132
+ "type": "function",
133
+ "name": "MESSENGER_BASE_GAS_LIMIT",
134
+ "inputs": [],
135
+ "outputs": [
136
+ {
137
+ "name": "",
138
+ "type": "uint32",
139
+ "internalType": "uint32"
140
+ }
141
+ ],
142
+ "stateMutability": "view"
143
+ },
144
+ {
145
+ "type": "function",
146
+ "name": "MESSENGER_ERC20_MIN_GAS_LIMIT",
147
+ "inputs": [],
148
+ "outputs": [
149
+ {
150
+ "name": "",
151
+ "type": "uint32",
152
+ "internalType": "uint32"
153
+ }
154
+ ],
155
+ "stateMutability": "view"
156
+ },
157
+ {
158
+ "type": "function",
159
+ "name": "PERMISSIONS",
160
+ "inputs": [],
161
+ "outputs": [
162
+ {
163
+ "name": "",
164
+ "type": "address",
165
+ "internalType": "contract IJBPermissions"
166
+ }
167
+ ],
168
+ "stateMutability": "view"
169
+ },
170
+ {
171
+ "type": "function",
172
+ "name": "PROJECTS",
173
+ "inputs": [],
174
+ "outputs": [
175
+ {
176
+ "name": "",
177
+ "type": "address",
178
+ "internalType": "contract IJBProjects"
179
+ }
180
+ ],
181
+ "stateMutability": "view"
182
+ },
183
+ {
184
+ "type": "function",
185
+ "name": "REGISTRY",
186
+ "inputs": [],
187
+ "outputs": [
188
+ {
189
+ "name": "",
190
+ "type": "address",
191
+ "internalType": "contract IJBSuckerRegistry"
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": "claim",
231
+ "inputs": [
232
+ {
233
+ "name": "claims",
234
+ "type": "tuple[]",
235
+ "internalType": "struct JBClaim[]",
236
+ "components": [
237
+ {
238
+ "name": "token",
239
+ "type": "address",
240
+ "internalType": "address"
241
+ },
242
+ {
243
+ "name": "leaf",
244
+ "type": "tuple",
245
+ "internalType": "struct JBLeaf",
246
+ "components": [
247
+ {
248
+ "name": "index",
249
+ "type": "uint256",
250
+ "internalType": "uint256"
251
+ },
252
+ {
253
+ "name": "beneficiary",
254
+ "type": "bytes32",
255
+ "internalType": "bytes32"
256
+ },
257
+ {
258
+ "name": "projectTokenCount",
259
+ "type": "uint256",
260
+ "internalType": "uint256"
261
+ },
262
+ {
263
+ "name": "terminalTokenAmount",
264
+ "type": "uint256",
265
+ "internalType": "uint256"
266
+ },
267
+ {
268
+ "name": "metadata",
269
+ "type": "bytes32",
270
+ "internalType": "bytes32"
271
+ }
272
+ ]
273
+ },
274
+ {
275
+ "name": "proof",
276
+ "type": "bytes32[32]",
277
+ "internalType": "bytes32[32]"
278
+ }
279
+ ]
280
+ }
281
+ ],
282
+ "outputs": [],
283
+ "stateMutability": "nonpayable"
284
+ },
285
+ {
286
+ "type": "function",
287
+ "name": "claim",
288
+ "inputs": [
289
+ {
290
+ "name": "claimData",
291
+ "type": "tuple",
292
+ "internalType": "struct JBClaim",
293
+ "components": [
294
+ {
295
+ "name": "token",
296
+ "type": "address",
297
+ "internalType": "address"
298
+ },
299
+ {
300
+ "name": "leaf",
301
+ "type": "tuple",
302
+ "internalType": "struct JBLeaf",
303
+ "components": [
304
+ {
305
+ "name": "index",
306
+ "type": "uint256",
307
+ "internalType": "uint256"
308
+ },
309
+ {
310
+ "name": "beneficiary",
311
+ "type": "bytes32",
312
+ "internalType": "bytes32"
313
+ },
314
+ {
315
+ "name": "projectTokenCount",
316
+ "type": "uint256",
317
+ "internalType": "uint256"
318
+ },
319
+ {
320
+ "name": "terminalTokenAmount",
321
+ "type": "uint256",
322
+ "internalType": "uint256"
323
+ },
324
+ {
325
+ "name": "metadata",
326
+ "type": "bytes32",
327
+ "internalType": "bytes32"
328
+ }
329
+ ]
330
+ },
331
+ {
332
+ "name": "proof",
333
+ "type": "bytes32[32]",
334
+ "internalType": "bytes32[32]"
335
+ }
336
+ ]
337
+ }
338
+ ],
339
+ "outputs": [],
340
+ "stateMutability": "nonpayable"
341
+ },
342
+ {
343
+ "type": "function",
344
+ "name": "claimRetainedToRemoteFee",
345
+ "inputs": [
346
+ {
347
+ "name": "beneficiary",
348
+ "type": "address",
349
+ "internalType": "address payable"
350
+ }
351
+ ],
352
+ "outputs": [],
353
+ "stateMutability": "nonpayable"
354
+ },
355
+ {
356
+ "type": "function",
357
+ "name": "claimRetainedTransportPaymentRefund",
358
+ "inputs": [
359
+ {
360
+ "name": "beneficiary",
361
+ "type": "address",
362
+ "internalType": "address payable"
363
+ }
364
+ ],
365
+ "outputs": [],
366
+ "stateMutability": "nonpayable"
367
+ },
368
+ {
369
+ "type": "function",
370
+ "name": "deployer",
371
+ "inputs": [],
372
+ "outputs": [
373
+ {
374
+ "name": "",
375
+ "type": "address",
376
+ "internalType": "address"
377
+ }
378
+ ],
379
+ "stateMutability": "view"
380
+ },
381
+ {
382
+ "type": "function",
383
+ "name": "enableEmergencyHatchFor",
384
+ "inputs": [
385
+ {
386
+ "name": "tokens",
387
+ "type": "address[]",
388
+ "internalType": "address[]"
389
+ }
390
+ ],
391
+ "outputs": [],
392
+ "stateMutability": "nonpayable"
393
+ },
394
+ {
395
+ "type": "function",
396
+ "name": "executedLeafHashOf",
397
+ "inputs": [
398
+ {
399
+ "name": "token",
400
+ "type": "address",
401
+ "internalType": "address"
402
+ },
403
+ {
404
+ "name": "index",
405
+ "type": "uint256",
406
+ "internalType": "uint256"
407
+ }
408
+ ],
409
+ "outputs": [
410
+ {
411
+ "name": "",
412
+ "type": "bytes32",
413
+ "internalType": "bytes32"
414
+ }
415
+ ],
416
+ "stateMutability": "view"
417
+ },
418
+ {
419
+ "type": "function",
420
+ "name": "exitThroughEmergencyHatch",
421
+ "inputs": [
422
+ {
423
+ "name": "claimData",
424
+ "type": "tuple",
425
+ "internalType": "struct JBClaim",
426
+ "components": [
427
+ {
428
+ "name": "token",
429
+ "type": "address",
430
+ "internalType": "address"
431
+ },
432
+ {
433
+ "name": "leaf",
434
+ "type": "tuple",
435
+ "internalType": "struct JBLeaf",
436
+ "components": [
437
+ {
438
+ "name": "index",
439
+ "type": "uint256",
440
+ "internalType": "uint256"
441
+ },
442
+ {
443
+ "name": "beneficiary",
444
+ "type": "bytes32",
445
+ "internalType": "bytes32"
446
+ },
447
+ {
448
+ "name": "projectTokenCount",
449
+ "type": "uint256",
450
+ "internalType": "uint256"
451
+ },
452
+ {
453
+ "name": "terminalTokenAmount",
454
+ "type": "uint256",
455
+ "internalType": "uint256"
456
+ },
457
+ {
458
+ "name": "metadata",
459
+ "type": "bytes32",
460
+ "internalType": "bytes32"
461
+ }
462
+ ]
463
+ },
464
+ {
465
+ "name": "proof",
466
+ "type": "bytes32[32]",
467
+ "internalType": "bytes32[32]"
468
+ }
469
+ ]
470
+ }
471
+ ],
472
+ "outputs": [],
473
+ "stateMutability": "nonpayable"
474
+ },
475
+ {
476
+ "type": "function",
477
+ "name": "fromRemote",
478
+ "inputs": [
479
+ {
480
+ "name": "root",
481
+ "type": "tuple",
482
+ "internalType": "struct JBMessageRoot",
483
+ "components": [
484
+ {
485
+ "name": "version",
486
+ "type": "uint8",
487
+ "internalType": "uint8"
488
+ },
489
+ {
490
+ "name": "token",
491
+ "type": "bytes32",
492
+ "internalType": "bytes32"
493
+ },
494
+ {
495
+ "name": "amount",
496
+ "type": "uint256",
497
+ "internalType": "uint256"
498
+ },
499
+ {
500
+ "name": "remoteRoot",
501
+ "type": "tuple",
502
+ "internalType": "struct JBInboxTreeRoot",
503
+ "components": [
504
+ {
505
+ "name": "nonce",
506
+ "type": "uint64",
507
+ "internalType": "uint64"
508
+ },
509
+ {
510
+ "name": "root",
511
+ "type": "bytes32",
512
+ "internalType": "bytes32"
513
+ }
514
+ ]
515
+ },
516
+ {
517
+ "name": "accounts",
518
+ "type": "tuple[]",
519
+ "internalType": "struct JBChainAccounting[]",
520
+ "components": [
521
+ {
522
+ "name": "chainId",
523
+ "type": "uint256",
524
+ "internalType": "uint256"
525
+ },
526
+ {
527
+ "name": "totalSupply",
528
+ "type": "uint256",
529
+ "internalType": "uint256"
530
+ },
531
+ {
532
+ "name": "contexts",
533
+ "type": "tuple[]",
534
+ "internalType": "struct JBSourceContext[]",
535
+ "components": [
536
+ {
537
+ "name": "token",
538
+ "type": "bytes32",
539
+ "internalType": "bytes32"
540
+ },
541
+ {
542
+ "name": "decimals",
543
+ "type": "uint8",
544
+ "internalType": "uint8"
545
+ },
546
+ {
547
+ "name": "surplus",
548
+ "type": "uint128",
549
+ "internalType": "uint128"
550
+ },
551
+ {
552
+ "name": "balance",
553
+ "type": "uint128",
554
+ "internalType": "uint128"
555
+ }
556
+ ]
557
+ },
558
+ {
559
+ "name": "timestamp",
560
+ "type": "uint256",
561
+ "internalType": "uint256"
562
+ }
563
+ ]
564
+ }
565
+ ]
566
+ }
567
+ ],
568
+ "outputs": [],
569
+ "stateMutability": "payable"
570
+ },
571
+ {
572
+ "type": "function",
573
+ "name": "fromRemoteAccounting",
574
+ "inputs": [
575
+ {
576
+ "name": "snapshot",
577
+ "type": "tuple",
578
+ "internalType": "struct JBAccountingSnapshot",
579
+ "components": [
580
+ {
581
+ "name": "version",
582
+ "type": "uint8",
583
+ "internalType": "uint8"
584
+ },
585
+ {
586
+ "name": "accounts",
587
+ "type": "tuple[]",
588
+ "internalType": "struct JBChainAccounting[]",
589
+ "components": [
590
+ {
591
+ "name": "chainId",
592
+ "type": "uint256",
593
+ "internalType": "uint256"
594
+ },
595
+ {
596
+ "name": "totalSupply",
597
+ "type": "uint256",
598
+ "internalType": "uint256"
599
+ },
600
+ {
601
+ "name": "contexts",
602
+ "type": "tuple[]",
603
+ "internalType": "struct JBSourceContext[]",
604
+ "components": [
605
+ {
606
+ "name": "token",
607
+ "type": "bytes32",
608
+ "internalType": "bytes32"
609
+ },
610
+ {
611
+ "name": "decimals",
612
+ "type": "uint8",
613
+ "internalType": "uint8"
614
+ },
615
+ {
616
+ "name": "surplus",
617
+ "type": "uint128",
618
+ "internalType": "uint128"
619
+ },
620
+ {
621
+ "name": "balance",
622
+ "type": "uint128",
623
+ "internalType": "uint128"
624
+ }
625
+ ]
626
+ },
627
+ {
628
+ "name": "timestamp",
629
+ "type": "uint256",
630
+ "internalType": "uint256"
631
+ }
632
+ ]
633
+ }
634
+ ]
635
+ }
636
+ ],
637
+ "outputs": [],
638
+ "stateMutability": "nonpayable"
639
+ },
640
+ {
641
+ "type": "function",
642
+ "name": "inboxOf",
643
+ "inputs": [
644
+ {
645
+ "name": "token",
646
+ "type": "address",
647
+ "internalType": "address"
648
+ }
649
+ ],
650
+ "outputs": [
651
+ {
652
+ "name": "",
653
+ "type": "tuple",
654
+ "internalType": "struct JBInboxTreeRoot",
655
+ "components": [
656
+ {
657
+ "name": "nonce",
658
+ "type": "uint64",
659
+ "internalType": "uint64"
660
+ },
661
+ {
662
+ "name": "root",
663
+ "type": "bytes32",
664
+ "internalType": "bytes32"
665
+ }
666
+ ]
667
+ }
668
+ ],
669
+ "stateMutability": "view"
670
+ },
671
+ {
672
+ "type": "function",
673
+ "name": "initialize",
674
+ "inputs": [
675
+ {
676
+ "name": "localProjectId",
677
+ "type": "uint256",
678
+ "internalType": "uint256"
679
+ },
680
+ {
681
+ "name": "remotePeer",
682
+ "type": "bytes32",
683
+ "internalType": "bytes32"
684
+ }
685
+ ],
686
+ "outputs": [],
687
+ "stateMutability": "nonpayable"
688
+ },
689
+ {
690
+ "type": "function",
691
+ "name": "initialize",
692
+ "inputs": [
693
+ {
694
+ "name": "initialProjectId",
695
+ "type": "uint256",
696
+ "internalType": "uint256"
697
+ }
698
+ ],
699
+ "outputs": [],
700
+ "stateMutability": "nonpayable"
701
+ },
702
+ {
703
+ "type": "function",
704
+ "name": "isMapped",
705
+ "inputs": [
706
+ {
707
+ "name": "token",
708
+ "type": "address",
709
+ "internalType": "address"
710
+ }
711
+ ],
712
+ "outputs": [
713
+ {
714
+ "name": "",
715
+ "type": "bool",
716
+ "internalType": "bool"
717
+ }
718
+ ],
719
+ "stateMutability": "view"
720
+ },
721
+ {
722
+ "type": "function",
723
+ "name": "isTrustedForwarder",
724
+ "inputs": [
725
+ {
726
+ "name": "forwarder",
727
+ "type": "address",
728
+ "internalType": "address"
729
+ }
730
+ ],
731
+ "outputs": [
732
+ {
733
+ "name": "",
734
+ "type": "bool",
735
+ "internalType": "bool"
736
+ }
737
+ ],
738
+ "stateMutability": "view"
739
+ },
740
+ {
741
+ "type": "function",
742
+ "name": "mapToken",
743
+ "inputs": [
744
+ {
745
+ "name": "map",
746
+ "type": "tuple",
747
+ "internalType": "struct JBTokenMapping",
748
+ "components": [
749
+ {
750
+ "name": "localToken",
751
+ "type": "address",
752
+ "internalType": "address"
753
+ },
754
+ {
755
+ "name": "minGas",
756
+ "type": "uint32",
757
+ "internalType": "uint32"
758
+ },
759
+ {
760
+ "name": "remoteToken",
761
+ "type": "bytes32",
762
+ "internalType": "bytes32"
763
+ }
764
+ ]
765
+ }
766
+ ],
767
+ "outputs": [],
768
+ "stateMutability": "payable"
769
+ },
770
+ {
771
+ "type": "function",
772
+ "name": "mapTokens",
773
+ "inputs": [
774
+ {
775
+ "name": "maps",
776
+ "type": "tuple[]",
777
+ "internalType": "struct JBTokenMapping[]",
778
+ "components": [
779
+ {
780
+ "name": "localToken",
781
+ "type": "address",
782
+ "internalType": "address"
783
+ },
784
+ {
785
+ "name": "minGas",
786
+ "type": "uint32",
787
+ "internalType": "uint32"
788
+ },
789
+ {
790
+ "name": "remoteToken",
791
+ "type": "bytes32",
792
+ "internalType": "bytes32"
793
+ }
794
+ ]
795
+ }
796
+ ],
797
+ "outputs": [],
798
+ "stateMutability": "payable"
799
+ },
800
+ {
801
+ "type": "function",
802
+ "name": "outboxOf",
803
+ "inputs": [
804
+ {
805
+ "name": "token",
806
+ "type": "address",
807
+ "internalType": "address"
808
+ }
809
+ ],
810
+ "outputs": [
811
+ {
812
+ "name": "",
813
+ "type": "tuple",
814
+ "internalType": "struct JBOutboxTree",
815
+ "components": [
816
+ {
817
+ "name": "nonce",
818
+ "type": "uint64",
819
+ "internalType": "uint64"
820
+ },
821
+ {
822
+ "name": "numberOfClaimsSent",
823
+ "type": "uint192",
824
+ "internalType": "uint192"
825
+ },
826
+ {
827
+ "name": "balance",
828
+ "type": "uint256",
829
+ "internalType": "uint256"
830
+ },
831
+ {
832
+ "name": "tree",
833
+ "type": "tuple",
834
+ "internalType": "struct MerkleLib.Tree",
835
+ "components": [
836
+ {
837
+ "name": "branch",
838
+ "type": "bytes32[32]",
839
+ "internalType": "bytes32[32]"
840
+ },
841
+ {
842
+ "name": "count",
843
+ "type": "uint256",
844
+ "internalType": "uint256"
845
+ }
846
+ ]
847
+ }
848
+ ]
849
+ }
850
+ ],
851
+ "stateMutability": "view"
852
+ },
853
+ {
854
+ "type": "function",
855
+ "name": "peer",
856
+ "inputs": [],
857
+ "outputs": [
858
+ {
859
+ "name": "",
860
+ "type": "bytes32",
861
+ "internalType": "bytes32"
862
+ }
863
+ ],
864
+ "stateMutability": "view"
865
+ },
866
+ {
867
+ "type": "function",
868
+ "name": "peerChainAccountsOf",
869
+ "inputs": [],
870
+ "outputs": [
871
+ {
872
+ "name": "accounts",
873
+ "type": "tuple[]",
874
+ "internalType": "struct JBChainAccounting[]",
875
+ "components": [
876
+ {
877
+ "name": "chainId",
878
+ "type": "uint256",
879
+ "internalType": "uint256"
880
+ },
881
+ {
882
+ "name": "totalSupply",
883
+ "type": "uint256",
884
+ "internalType": "uint256"
885
+ },
886
+ {
887
+ "name": "contexts",
888
+ "type": "tuple[]",
889
+ "internalType": "struct JBSourceContext[]",
890
+ "components": [
891
+ {
892
+ "name": "token",
893
+ "type": "bytes32",
894
+ "internalType": "bytes32"
895
+ },
896
+ {
897
+ "name": "decimals",
898
+ "type": "uint8",
899
+ "internalType": "uint8"
900
+ },
901
+ {
902
+ "name": "surplus",
903
+ "type": "uint128",
904
+ "internalType": "uint128"
905
+ },
906
+ {
907
+ "name": "balance",
908
+ "type": "uint128",
909
+ "internalType": "uint128"
910
+ }
911
+ ]
912
+ },
913
+ {
914
+ "name": "timestamp",
915
+ "type": "uint256",
916
+ "internalType": "uint256"
917
+ }
918
+ ]
919
+ }
920
+ ],
921
+ "stateMutability": "view"
922
+ },
923
+ {
924
+ "type": "function",
925
+ "name": "peerChainContextsOf",
926
+ "inputs": [
927
+ {
928
+ "name": "chainId",
929
+ "type": "uint256",
930
+ "internalType": "uint256"
931
+ }
932
+ ],
933
+ "outputs": [
934
+ {
935
+ "name": "contexts",
936
+ "type": "tuple[]",
937
+ "internalType": "struct JBPeerChainContext[]",
938
+ "components": [
939
+ {
940
+ "name": "currency",
941
+ "type": "uint32",
942
+ "internalType": "uint32"
943
+ },
944
+ {
945
+ "name": "decimals",
946
+ "type": "uint8",
947
+ "internalType": "uint8"
948
+ },
949
+ {
950
+ "name": "surplus",
951
+ "type": "uint128",
952
+ "internalType": "uint128"
953
+ },
954
+ {
955
+ "name": "balance",
956
+ "type": "uint128",
957
+ "internalType": "uint128"
958
+ }
959
+ ]
960
+ },
961
+ {
962
+ "name": "snapshot",
963
+ "type": "uint256",
964
+ "internalType": "uint256"
965
+ }
966
+ ],
967
+ "stateMutability": "view"
968
+ },
969
+ {
970
+ "type": "function",
971
+ "name": "peerChainId",
972
+ "inputs": [],
973
+ "outputs": [
974
+ {
975
+ "name": "",
976
+ "type": "uint256",
977
+ "internalType": "uint256"
978
+ }
979
+ ],
980
+ "stateMutability": "view"
981
+ },
982
+ {
983
+ "type": "function",
984
+ "name": "peerChainIds",
985
+ "inputs": [
986
+ {
987
+ "name": "includeVirtual",
988
+ "type": "bool",
989
+ "internalType": "bool"
990
+ }
991
+ ],
992
+ "outputs": [
993
+ {
994
+ "name": "chainIds",
995
+ "type": "uint256[]",
996
+ "internalType": "uint256[]"
997
+ }
998
+ ],
999
+ "stateMutability": "view"
1000
+ },
1001
+ {
1002
+ "type": "function",
1003
+ "name": "peerChainTotalSupplyOf",
1004
+ "inputs": [
1005
+ {
1006
+ "name": "chainId",
1007
+ "type": "uint256",
1008
+ "internalType": "uint256"
1009
+ }
1010
+ ],
1011
+ "outputs": [
1012
+ {
1013
+ "name": "",
1014
+ "type": "uint256",
1015
+ "internalType": "uint256"
1016
+ }
1017
+ ],
1018
+ "stateMutability": "view"
1019
+ },
1020
+ {
1021
+ "type": "function",
1022
+ "name": "peerChainTotalSupplyValue",
1023
+ "inputs": [
1024
+ {
1025
+ "name": "chainId",
1026
+ "type": "uint256",
1027
+ "internalType": "uint256"
1028
+ }
1029
+ ],
1030
+ "outputs": [
1031
+ {
1032
+ "name": "",
1033
+ "type": "tuple",
1034
+ "internalType": "struct JBPeerChainValue",
1035
+ "components": [
1036
+ {
1037
+ "name": "value",
1038
+ "type": "uint256",
1039
+ "internalType": "uint256"
1040
+ },
1041
+ {
1042
+ "name": "peerChainId",
1043
+ "type": "uint256",
1044
+ "internalType": "uint256"
1045
+ },
1046
+ {
1047
+ "name": "snapshotTimestamp",
1048
+ "type": "uint256",
1049
+ "internalType": "uint256"
1050
+ }
1051
+ ]
1052
+ }
1053
+ ],
1054
+ "stateMutability": "view"
1055
+ },
1056
+ {
1057
+ "type": "function",
1058
+ "name": "prepare",
1059
+ "inputs": [
1060
+ {
1061
+ "name": "projectTokenCount",
1062
+ "type": "uint256",
1063
+ "internalType": "uint256"
1064
+ },
1065
+ {
1066
+ "name": "beneficiary",
1067
+ "type": "bytes32",
1068
+ "internalType": "bytes32"
1069
+ },
1070
+ {
1071
+ "name": "minTokensReclaimed",
1072
+ "type": "uint256",
1073
+ "internalType": "uint256"
1074
+ },
1075
+ {
1076
+ "name": "token",
1077
+ "type": "address",
1078
+ "internalType": "address"
1079
+ },
1080
+ {
1081
+ "name": "metadata",
1082
+ "type": "bytes32",
1083
+ "internalType": "bytes32"
1084
+ }
1085
+ ],
1086
+ "outputs": [],
1087
+ "stateMutability": "nonpayable"
1088
+ },
1089
+ {
1090
+ "type": "function",
1091
+ "name": "projectId",
1092
+ "inputs": [],
1093
+ "outputs": [
1094
+ {
1095
+ "name": "",
1096
+ "type": "uint256",
1097
+ "internalType": "uint256"
1098
+ }
1099
+ ],
1100
+ "stateMutability": "view"
1101
+ },
1102
+ {
1103
+ "type": "function",
1104
+ "name": "remoteTokenFor",
1105
+ "inputs": [
1106
+ {
1107
+ "name": "token",
1108
+ "type": "address",
1109
+ "internalType": "address"
1110
+ }
1111
+ ],
1112
+ "outputs": [
1113
+ {
1114
+ "name": "",
1115
+ "type": "tuple",
1116
+ "internalType": "struct JBRemoteToken",
1117
+ "components": [
1118
+ {
1119
+ "name": "enabled",
1120
+ "type": "bool",
1121
+ "internalType": "bool"
1122
+ },
1123
+ {
1124
+ "name": "emergencyHatch",
1125
+ "type": "bool",
1126
+ "internalType": "bool"
1127
+ },
1128
+ {
1129
+ "name": "minGas",
1130
+ "type": "uint32",
1131
+ "internalType": "uint32"
1132
+ },
1133
+ {
1134
+ "name": "addr",
1135
+ "type": "bytes32",
1136
+ "internalType": "bytes32"
1137
+ }
1138
+ ]
1139
+ }
1140
+ ],
1141
+ "stateMutability": "view"
1142
+ },
1143
+ {
1144
+ "type": "function",
1145
+ "name": "retainedToRemoteFeeBalance",
1146
+ "inputs": [],
1147
+ "outputs": [
1148
+ {
1149
+ "name": "",
1150
+ "type": "uint256",
1151
+ "internalType": "uint256"
1152
+ }
1153
+ ],
1154
+ "stateMutability": "view"
1155
+ },
1156
+ {
1157
+ "type": "function",
1158
+ "name": "retainedToRemoteFeeOf",
1159
+ "inputs": [
1160
+ {
1161
+ "name": "account",
1162
+ "type": "address",
1163
+ "internalType": "address"
1164
+ }
1165
+ ],
1166
+ "outputs": [
1167
+ {
1168
+ "name": "amount",
1169
+ "type": "uint256",
1170
+ "internalType": "uint256"
1171
+ }
1172
+ ],
1173
+ "stateMutability": "view"
1174
+ },
1175
+ {
1176
+ "type": "function",
1177
+ "name": "retainedTransportPaymentRefundBalance",
1178
+ "inputs": [],
1179
+ "outputs": [
1180
+ {
1181
+ "name": "",
1182
+ "type": "uint256",
1183
+ "internalType": "uint256"
1184
+ }
1185
+ ],
1186
+ "stateMutability": "view"
1187
+ },
1188
+ {
1189
+ "type": "function",
1190
+ "name": "retainedTransportPaymentRefundOf",
1191
+ "inputs": [
1192
+ {
1193
+ "name": "account",
1194
+ "type": "address",
1195
+ "internalType": "address"
1196
+ }
1197
+ ],
1198
+ "outputs": [
1199
+ {
1200
+ "name": "amount",
1201
+ "type": "uint256",
1202
+ "internalType": "uint256"
1203
+ }
1204
+ ],
1205
+ "stateMutability": "view"
1206
+ },
1207
+ {
1208
+ "type": "function",
1209
+ "name": "setDeprecation",
1210
+ "inputs": [
1211
+ {
1212
+ "name": "timestamp",
1213
+ "type": "uint40",
1214
+ "internalType": "uint40"
1215
+ }
1216
+ ],
1217
+ "outputs": [],
1218
+ "stateMutability": "nonpayable"
1219
+ },
1220
+ {
1221
+ "type": "function",
1222
+ "name": "snapshotTimestampOf",
1223
+ "inputs": [
1224
+ {
1225
+ "name": "chainId",
1226
+ "type": "uint256",
1227
+ "internalType": "uint256"
1228
+ }
1229
+ ],
1230
+ "outputs": [
1231
+ {
1232
+ "name": "",
1233
+ "type": "uint256",
1234
+ "internalType": "uint256"
1235
+ }
1236
+ ],
1237
+ "stateMutability": "view"
1238
+ },
1239
+ {
1240
+ "type": "function",
1241
+ "name": "state",
1242
+ "inputs": [],
1243
+ "outputs": [
1244
+ {
1245
+ "name": "",
1246
+ "type": "uint8",
1247
+ "internalType": "enum JBSuckerState"
1248
+ }
1249
+ ],
1250
+ "stateMutability": "view"
1251
+ },
1252
+ {
1253
+ "type": "function",
1254
+ "name": "supportsInterface",
1255
+ "inputs": [
1256
+ {
1257
+ "name": "interfaceId",
1258
+ "type": "bytes4",
1259
+ "internalType": "bytes4"
1260
+ }
1261
+ ],
1262
+ "outputs": [
1263
+ {
1264
+ "name": "",
1265
+ "type": "bool",
1266
+ "internalType": "bool"
1267
+ }
1268
+ ],
1269
+ "stateMutability": "view"
1270
+ },
1271
+ {
1272
+ "type": "function",
1273
+ "name": "syncAccountingData",
1274
+ "inputs": [],
1275
+ "outputs": [],
1276
+ "stateMutability": "payable"
1277
+ },
1278
+ {
1279
+ "type": "function",
1280
+ "name": "toRemote",
1281
+ "inputs": [
1282
+ {
1283
+ "name": "token",
1284
+ "type": "address",
1285
+ "internalType": "address"
1286
+ }
1287
+ ],
1288
+ "outputs": [],
1289
+ "stateMutability": "payable"
1290
+ },
1291
+ {
1292
+ "type": "function",
1293
+ "name": "trustedForwarder",
1294
+ "inputs": [],
1295
+ "outputs": [
1296
+ {
1297
+ "name": "",
1298
+ "type": "address",
1299
+ "internalType": "address"
1300
+ }
1301
+ ],
1302
+ "stateMutability": "view"
1303
+ },
1304
+ {
1305
+ "type": "event",
1306
+ "name": "AccountingDataSynced",
1307
+ "inputs": [
1308
+ {
1309
+ "name": "sourceTimestamp",
1310
+ "type": "uint256",
1311
+ "indexed": false,
1312
+ "internalType": "uint256"
1313
+ },
1314
+ {
1315
+ "name": "caller",
1316
+ "type": "address",
1317
+ "indexed": false,
1318
+ "internalType": "address"
1319
+ }
1320
+ ],
1321
+ "anonymous": false
1322
+ },
1323
+ {
1324
+ "type": "event",
1325
+ "name": "ClaimFailed",
1326
+ "inputs": [
1327
+ {
1328
+ "name": "token",
1329
+ "type": "address",
1330
+ "indexed": true,
1331
+ "internalType": "address"
1332
+ },
1333
+ {
1334
+ "name": "index",
1335
+ "type": "uint256",
1336
+ "indexed": false,
1337
+ "internalType": "uint256"
1338
+ },
1339
+ {
1340
+ "name": "caller",
1341
+ "type": "address",
1342
+ "indexed": false,
1343
+ "internalType": "address"
1344
+ }
1345
+ ],
1346
+ "anonymous": false
1347
+ },
1348
+ {
1349
+ "type": "event",
1350
+ "name": "Claimed",
1351
+ "inputs": [
1352
+ {
1353
+ "name": "beneficiary",
1354
+ "type": "bytes32",
1355
+ "indexed": false,
1356
+ "internalType": "bytes32"
1357
+ },
1358
+ {
1359
+ "name": "token",
1360
+ "type": "address",
1361
+ "indexed": false,
1362
+ "internalType": "address"
1363
+ },
1364
+ {
1365
+ "name": "projectTokenCount",
1366
+ "type": "uint256",
1367
+ "indexed": false,
1368
+ "internalType": "uint256"
1369
+ },
1370
+ {
1371
+ "name": "terminalTokenAmount",
1372
+ "type": "uint256",
1373
+ "indexed": false,
1374
+ "internalType": "uint256"
1375
+ },
1376
+ {
1377
+ "name": "index",
1378
+ "type": "uint256",
1379
+ "indexed": false,
1380
+ "internalType": "uint256"
1381
+ },
1382
+ {
1383
+ "name": "metadata",
1384
+ "type": "bytes32",
1385
+ "indexed": false,
1386
+ "internalType": "bytes32"
1387
+ },
1388
+ {
1389
+ "name": "caller",
1390
+ "type": "address",
1391
+ "indexed": false,
1392
+ "internalType": "address"
1393
+ }
1394
+ ],
1395
+ "anonymous": false
1396
+ },
1397
+ {
1398
+ "type": "event",
1399
+ "name": "DeprecationTimeUpdated",
1400
+ "inputs": [
1401
+ {
1402
+ "name": "timestamp",
1403
+ "type": "uint40",
1404
+ "indexed": false,
1405
+ "internalType": "uint40"
1406
+ },
1407
+ {
1408
+ "name": "caller",
1409
+ "type": "address",
1410
+ "indexed": false,
1411
+ "internalType": "address"
1412
+ }
1413
+ ],
1414
+ "anonymous": false
1415
+ },
1416
+ {
1417
+ "type": "event",
1418
+ "name": "EmergencyExit",
1419
+ "inputs": [
1420
+ {
1421
+ "name": "beneficiary",
1422
+ "type": "address",
1423
+ "indexed": true,
1424
+ "internalType": "address"
1425
+ },
1426
+ {
1427
+ "name": "token",
1428
+ "type": "address",
1429
+ "indexed": true,
1430
+ "internalType": "address"
1431
+ },
1432
+ {
1433
+ "name": "terminalTokenAmount",
1434
+ "type": "uint256",
1435
+ "indexed": false,
1436
+ "internalType": "uint256"
1437
+ },
1438
+ {
1439
+ "name": "projectTokenCount",
1440
+ "type": "uint256",
1441
+ "indexed": false,
1442
+ "internalType": "uint256"
1443
+ },
1444
+ {
1445
+ "name": "caller",
1446
+ "type": "address",
1447
+ "indexed": false,
1448
+ "internalType": "address"
1449
+ }
1450
+ ],
1451
+ "anonymous": false
1452
+ },
1453
+ {
1454
+ "type": "event",
1455
+ "name": "EmergencyHatchOpened",
1456
+ "inputs": [
1457
+ {
1458
+ "name": "tokens",
1459
+ "type": "address[]",
1460
+ "indexed": false,
1461
+ "internalType": "address[]"
1462
+ },
1463
+ {
1464
+ "name": "caller",
1465
+ "type": "address",
1466
+ "indexed": false,
1467
+ "internalType": "address"
1468
+ }
1469
+ ],
1470
+ "anonymous": false
1471
+ },
1472
+ {
1473
+ "type": "event",
1474
+ "name": "Initialized",
1475
+ "inputs": [
1476
+ {
1477
+ "name": "version",
1478
+ "type": "uint64",
1479
+ "indexed": false,
1480
+ "internalType": "uint64"
1481
+ }
1482
+ ],
1483
+ "anonymous": false
1484
+ },
1485
+ {
1486
+ "type": "event",
1487
+ "name": "InsertToOutboxTree",
1488
+ "inputs": [
1489
+ {
1490
+ "name": "beneficiary",
1491
+ "type": "bytes32",
1492
+ "indexed": true,
1493
+ "internalType": "bytes32"
1494
+ },
1495
+ {
1496
+ "name": "token",
1497
+ "type": "address",
1498
+ "indexed": true,
1499
+ "internalType": "address"
1500
+ },
1501
+ {
1502
+ "name": "hashed",
1503
+ "type": "bytes32",
1504
+ "indexed": false,
1505
+ "internalType": "bytes32"
1506
+ },
1507
+ {
1508
+ "name": "index",
1509
+ "type": "uint256",
1510
+ "indexed": false,
1511
+ "internalType": "uint256"
1512
+ },
1513
+ {
1514
+ "name": "root",
1515
+ "type": "bytes32",
1516
+ "indexed": false,
1517
+ "internalType": "bytes32"
1518
+ },
1519
+ {
1520
+ "name": "projectTokenCount",
1521
+ "type": "uint256",
1522
+ "indexed": false,
1523
+ "internalType": "uint256"
1524
+ },
1525
+ {
1526
+ "name": "terminalTokenAmount",
1527
+ "type": "uint256",
1528
+ "indexed": false,
1529
+ "internalType": "uint256"
1530
+ },
1531
+ {
1532
+ "name": "metadata",
1533
+ "type": "bytes32",
1534
+ "indexed": false,
1535
+ "internalType": "bytes32"
1536
+ },
1537
+ {
1538
+ "name": "caller",
1539
+ "type": "address",
1540
+ "indexed": false,
1541
+ "internalType": "address"
1542
+ }
1543
+ ],
1544
+ "anonymous": false
1545
+ },
1546
+ {
1547
+ "type": "event",
1548
+ "name": "NewInboxTreeRoot",
1549
+ "inputs": [
1550
+ {
1551
+ "name": "token",
1552
+ "type": "address",
1553
+ "indexed": true,
1554
+ "internalType": "address"
1555
+ },
1556
+ {
1557
+ "name": "nonce",
1558
+ "type": "uint64",
1559
+ "indexed": false,
1560
+ "internalType": "uint64"
1561
+ },
1562
+ {
1563
+ "name": "root",
1564
+ "type": "bytes32",
1565
+ "indexed": false,
1566
+ "internalType": "bytes32"
1567
+ },
1568
+ {
1569
+ "name": "caller",
1570
+ "type": "address",
1571
+ "indexed": false,
1572
+ "internalType": "address"
1573
+ }
1574
+ ],
1575
+ "anonymous": false
1576
+ },
1577
+ {
1578
+ "type": "event",
1579
+ "name": "RetainedToRemoteFee",
1580
+ "inputs": [
1581
+ {
1582
+ "name": "account",
1583
+ "type": "address",
1584
+ "indexed": true,
1585
+ "internalType": "address"
1586
+ },
1587
+ {
1588
+ "name": "amount",
1589
+ "type": "uint256",
1590
+ "indexed": false,
1591
+ "internalType": "uint256"
1592
+ },
1593
+ {
1594
+ "name": "caller",
1595
+ "type": "address",
1596
+ "indexed": false,
1597
+ "internalType": "address"
1598
+ }
1599
+ ],
1600
+ "anonymous": false
1601
+ },
1602
+ {
1603
+ "type": "event",
1604
+ "name": "RetainedToRemoteFeeClaimed",
1605
+ "inputs": [
1606
+ {
1607
+ "name": "account",
1608
+ "type": "address",
1609
+ "indexed": true,
1610
+ "internalType": "address"
1611
+ },
1612
+ {
1613
+ "name": "beneficiary",
1614
+ "type": "address",
1615
+ "indexed": true,
1616
+ "internalType": "address"
1617
+ },
1618
+ {
1619
+ "name": "amount",
1620
+ "type": "uint256",
1621
+ "indexed": false,
1622
+ "internalType": "uint256"
1623
+ },
1624
+ {
1625
+ "name": "caller",
1626
+ "type": "address",
1627
+ "indexed": false,
1628
+ "internalType": "address"
1629
+ }
1630
+ ],
1631
+ "anonymous": false
1632
+ },
1633
+ {
1634
+ "type": "event",
1635
+ "name": "RetainedTransportPaymentRefund",
1636
+ "inputs": [
1637
+ {
1638
+ "name": "account",
1639
+ "type": "address",
1640
+ "indexed": true,
1641
+ "internalType": "address"
1642
+ },
1643
+ {
1644
+ "name": "amount",
1645
+ "type": "uint256",
1646
+ "indexed": false,
1647
+ "internalType": "uint256"
1648
+ },
1649
+ {
1650
+ "name": "caller",
1651
+ "type": "address",
1652
+ "indexed": false,
1653
+ "internalType": "address"
1654
+ }
1655
+ ],
1656
+ "anonymous": false
1657
+ },
1658
+ {
1659
+ "type": "event",
1660
+ "name": "RetainedTransportPaymentRefundClaimed",
1661
+ "inputs": [
1662
+ {
1663
+ "name": "account",
1664
+ "type": "address",
1665
+ "indexed": true,
1666
+ "internalType": "address"
1667
+ },
1668
+ {
1669
+ "name": "beneficiary",
1670
+ "type": "address",
1671
+ "indexed": true,
1672
+ "internalType": "address"
1673
+ },
1674
+ {
1675
+ "name": "amount",
1676
+ "type": "uint256",
1677
+ "indexed": false,
1678
+ "internalType": "uint256"
1679
+ },
1680
+ {
1681
+ "name": "caller",
1682
+ "type": "address",
1683
+ "indexed": false,
1684
+ "internalType": "address"
1685
+ }
1686
+ ],
1687
+ "anonymous": false
1688
+ },
1689
+ {
1690
+ "type": "event",
1691
+ "name": "RootToRemote",
1692
+ "inputs": [
1693
+ {
1694
+ "name": "root",
1695
+ "type": "bytes32",
1696
+ "indexed": true,
1697
+ "internalType": "bytes32"
1698
+ },
1699
+ {
1700
+ "name": "token",
1701
+ "type": "address",
1702
+ "indexed": true,
1703
+ "internalType": "address"
1704
+ },
1705
+ {
1706
+ "name": "index",
1707
+ "type": "uint256",
1708
+ "indexed": false,
1709
+ "internalType": "uint256"
1710
+ },
1711
+ {
1712
+ "name": "nonce",
1713
+ "type": "uint64",
1714
+ "indexed": false,
1715
+ "internalType": "uint64"
1716
+ },
1717
+ {
1718
+ "name": "caller",
1719
+ "type": "address",
1720
+ "indexed": false,
1721
+ "internalType": "address"
1722
+ }
1723
+ ],
1724
+ "anonymous": false
1725
+ },
1726
+ {
1727
+ "type": "event",
1728
+ "name": "StaleRootRejected",
1729
+ "inputs": [
1730
+ {
1731
+ "name": "token",
1732
+ "type": "address",
1733
+ "indexed": true,
1734
+ "internalType": "address"
1735
+ },
1736
+ {
1737
+ "name": "receivedNonce",
1738
+ "type": "uint64",
1739
+ "indexed": false,
1740
+ "internalType": "uint64"
1741
+ },
1742
+ {
1743
+ "name": "currentNonce",
1744
+ "type": "uint64",
1745
+ "indexed": false,
1746
+ "internalType": "uint64"
1747
+ },
1748
+ {
1749
+ "name": "caller",
1750
+ "type": "address",
1751
+ "indexed": false,
1752
+ "internalType": "address"
1753
+ }
1754
+ ],
1755
+ "anonymous": false
1756
+ },
1757
+ {
1758
+ "type": "error",
1759
+ "name": "InvalidInitialization",
1760
+ "inputs": []
1761
+ },
1762
+ {
1763
+ "type": "error",
1764
+ "name": "JBArbitrumSucker_NotEnoughGas",
1765
+ "inputs": [
1766
+ {
1767
+ "name": "payment",
1768
+ "type": "uint256",
1769
+ "internalType": "uint256"
1770
+ },
1771
+ {
1772
+ "name": "cost",
1773
+ "type": "uint256",
1774
+ "internalType": "uint256"
1775
+ }
1776
+ ]
1777
+ },
1778
+ {
1779
+ "type": "error",
1780
+ "name": "JBPermissioned_Unauthorized",
1781
+ "inputs": [
1782
+ {
1783
+ "name": "account",
1784
+ "type": "address",
1785
+ "internalType": "address"
1786
+ },
1787
+ {
1788
+ "name": "sender",
1789
+ "type": "address",
1790
+ "internalType": "address"
1791
+ },
1792
+ {
1793
+ "name": "projectId",
1794
+ "type": "uint256",
1795
+ "internalType": "uint256"
1796
+ },
1797
+ {
1798
+ "name": "permissionId",
1799
+ "type": "uint256",
1800
+ "internalType": "uint256"
1801
+ }
1802
+ ]
1803
+ },
1804
+ {
1805
+ "type": "error",
1806
+ "name": "JBSucker_AccountingSyncUnsupported",
1807
+ "inputs": []
1808
+ },
1809
+ {
1810
+ "type": "error",
1811
+ "name": "JBSucker_AmountExceedsUint128",
1812
+ "inputs": [
1813
+ {
1814
+ "name": "amount",
1815
+ "type": "uint256",
1816
+ "internalType": "uint256"
1817
+ }
1818
+ ]
1819
+ },
1820
+ {
1821
+ "type": "error",
1822
+ "name": "JBSucker_BelowMinGas",
1823
+ "inputs": [
1824
+ {
1825
+ "name": "minGas",
1826
+ "type": "uint256",
1827
+ "internalType": "uint256"
1828
+ },
1829
+ {
1830
+ "name": "minGasLimit",
1831
+ "type": "uint256",
1832
+ "internalType": "uint256"
1833
+ }
1834
+ ]
1835
+ },
1836
+ {
1837
+ "type": "error",
1838
+ "name": "JBSucker_Deprecated",
1839
+ "inputs": [
1840
+ {
1841
+ "name": "state",
1842
+ "type": "uint8",
1843
+ "internalType": "enum JBSuckerState"
1844
+ }
1845
+ ]
1846
+ },
1847
+ {
1848
+ "type": "error",
1849
+ "name": "JBSucker_DeprecationTimestampTooSoon",
1850
+ "inputs": [
1851
+ {
1852
+ "name": "givenTime",
1853
+ "type": "uint256",
1854
+ "internalType": "uint256"
1855
+ },
1856
+ {
1857
+ "name": "minimumTime",
1858
+ "type": "uint256",
1859
+ "internalType": "uint256"
1860
+ }
1861
+ ]
1862
+ },
1863
+ {
1864
+ "type": "error",
1865
+ "name": "JBSucker_ExpectedMsgValue",
1866
+ "inputs": [
1867
+ {
1868
+ "name": "msgValue",
1869
+ "type": "uint256",
1870
+ "internalType": "uint256"
1871
+ }
1872
+ ]
1873
+ },
1874
+ {
1875
+ "type": "error",
1876
+ "name": "JBSucker_IndexOutOfRange",
1877
+ "inputs": [
1878
+ {
1879
+ "name": "index",
1880
+ "type": "uint256",
1881
+ "internalType": "uint256"
1882
+ }
1883
+ ]
1884
+ },
1885
+ {
1886
+ "type": "error",
1887
+ "name": "JBSucker_InsufficientBalance",
1888
+ "inputs": [
1889
+ {
1890
+ "name": "amount",
1891
+ "type": "uint256",
1892
+ "internalType": "uint256"
1893
+ },
1894
+ {
1895
+ "name": "balance",
1896
+ "type": "uint256",
1897
+ "internalType": "uint256"
1898
+ }
1899
+ ]
1900
+ },
1901
+ {
1902
+ "type": "error",
1903
+ "name": "JBSucker_InsufficientMsgValue",
1904
+ "inputs": [
1905
+ {
1906
+ "name": "received",
1907
+ "type": "uint256",
1908
+ "internalType": "uint256"
1909
+ },
1910
+ {
1911
+ "name": "expected",
1912
+ "type": "uint256",
1913
+ "internalType": "uint256"
1914
+ }
1915
+ ]
1916
+ },
1917
+ {
1918
+ "type": "error",
1919
+ "name": "JBSucker_InvalidMessageVersion",
1920
+ "inputs": [
1921
+ {
1922
+ "name": "received",
1923
+ "type": "uint8",
1924
+ "internalType": "uint8"
1925
+ },
1926
+ {
1927
+ "name": "expected",
1928
+ "type": "uint8",
1929
+ "internalType": "uint8"
1930
+ }
1931
+ ]
1932
+ },
1933
+ {
1934
+ "type": "error",
1935
+ "name": "JBSucker_InvalidNativeRemoteAddress",
1936
+ "inputs": [
1937
+ {
1938
+ "name": "remoteToken",
1939
+ "type": "bytes32",
1940
+ "internalType": "bytes32"
1941
+ }
1942
+ ]
1943
+ },
1944
+ {
1945
+ "type": "error",
1946
+ "name": "JBSucker_InvalidProof",
1947
+ "inputs": [
1948
+ {
1949
+ "name": "root",
1950
+ "type": "bytes32",
1951
+ "internalType": "bytes32"
1952
+ },
1953
+ {
1954
+ "name": "inboxRoot",
1955
+ "type": "bytes32",
1956
+ "internalType": "bytes32"
1957
+ }
1958
+ ]
1959
+ },
1960
+ {
1961
+ "type": "error",
1962
+ "name": "JBSucker_LeafAlreadyExecuted",
1963
+ "inputs": [
1964
+ {
1965
+ "name": "token",
1966
+ "type": "address",
1967
+ "internalType": "address"
1968
+ },
1969
+ {
1970
+ "name": "index",
1971
+ "type": "uint256",
1972
+ "internalType": "uint256"
1973
+ }
1974
+ ]
1975
+ },
1976
+ {
1977
+ "type": "error",
1978
+ "name": "JBSucker_NoRetainedToRemoteFee",
1979
+ "inputs": [
1980
+ {
1981
+ "name": "account",
1982
+ "type": "address",
1983
+ "internalType": "address"
1984
+ }
1985
+ ]
1986
+ },
1987
+ {
1988
+ "type": "error",
1989
+ "name": "JBSucker_NoRetainedTransportPaymentRefund",
1990
+ "inputs": [
1991
+ {
1992
+ "name": "account",
1993
+ "type": "address",
1994
+ "internalType": "address"
1995
+ }
1996
+ ]
1997
+ },
1998
+ {
1999
+ "type": "error",
2000
+ "name": "JBSucker_NoTerminalForToken",
2001
+ "inputs": [
2002
+ {
2003
+ "name": "projectId",
2004
+ "type": "uint256",
2005
+ "internalType": "uint256"
2006
+ },
2007
+ {
2008
+ "name": "token",
2009
+ "type": "address",
2010
+ "internalType": "address"
2011
+ }
2012
+ ]
2013
+ },
2014
+ {
2015
+ "type": "error",
2016
+ "name": "JBSucker_NotPeer",
2017
+ "inputs": [
2018
+ {
2019
+ "name": "caller",
2020
+ "type": "bytes32",
2021
+ "internalType": "bytes32"
2022
+ }
2023
+ ]
2024
+ },
2025
+ {
2026
+ "type": "error",
2027
+ "name": "JBSucker_NothingToSend",
2028
+ "inputs": [
2029
+ {
2030
+ "name": "token",
2031
+ "type": "address",
2032
+ "internalType": "address"
2033
+ },
2034
+ {
2035
+ "name": "outboxBalance",
2036
+ "type": "uint256",
2037
+ "internalType": "uint256"
2038
+ },
2039
+ {
2040
+ "name": "treeCount",
2041
+ "type": "uint256",
2042
+ "internalType": "uint256"
2043
+ },
2044
+ {
2045
+ "name": "numberOfClaimsSent",
2046
+ "type": "uint256",
2047
+ "internalType": "uint256"
2048
+ }
2049
+ ]
2050
+ },
2051
+ {
2052
+ "type": "error",
2053
+ "name": "JBSucker_RefundFailed",
2054
+ "inputs": [
2055
+ {
2056
+ "name": "beneficiary",
2057
+ "type": "address",
2058
+ "internalType": "address"
2059
+ },
2060
+ {
2061
+ "name": "amount",
2062
+ "type": "uint256",
2063
+ "internalType": "uint256"
2064
+ }
2065
+ ]
2066
+ },
2067
+ {
2068
+ "type": "error",
2069
+ "name": "JBSucker_RemoteTokenAlreadyMapped",
2070
+ "inputs": [
2071
+ {
2072
+ "name": "remoteToken",
2073
+ "type": "bytes32",
2074
+ "internalType": "bytes32"
2075
+ },
2076
+ {
2077
+ "name": "localToken",
2078
+ "type": "address",
2079
+ "internalType": "address"
2080
+ }
2081
+ ]
2082
+ },
2083
+ {
2084
+ "type": "error",
2085
+ "name": "JBSucker_TokenAlreadyMapped",
2086
+ "inputs": [
2087
+ {
2088
+ "name": "localToken",
2089
+ "type": "address",
2090
+ "internalType": "address"
2091
+ },
2092
+ {
2093
+ "name": "mappedTo",
2094
+ "type": "bytes32",
2095
+ "internalType": "bytes32"
2096
+ }
2097
+ ]
2098
+ },
2099
+ {
2100
+ "type": "error",
2101
+ "name": "JBSucker_TokenHasInvalidEmergencyHatchState",
2102
+ "inputs": [
2103
+ {
2104
+ "name": "token",
2105
+ "type": "address",
2106
+ "internalType": "address"
2107
+ }
2108
+ ]
2109
+ },
2110
+ {
2111
+ "type": "error",
2112
+ "name": "JBSucker_TokenNotMapped",
2113
+ "inputs": [
2114
+ {
2115
+ "name": "token",
2116
+ "type": "address",
2117
+ "internalType": "address"
2118
+ }
2119
+ ]
2120
+ },
2121
+ {
2122
+ "type": "error",
2123
+ "name": "JBSucker_UnexpectedMsgValue",
2124
+ "inputs": [
2125
+ {
2126
+ "name": "value",
2127
+ "type": "uint256",
2128
+ "internalType": "uint256"
2129
+ }
2130
+ ]
2131
+ },
2132
+ {
2133
+ "type": "error",
2134
+ "name": "JBSucker_UnexpectedTokenBalance",
2135
+ "inputs": [
2136
+ {
2137
+ "name": "token",
2138
+ "type": "address",
2139
+ "internalType": "address"
2140
+ },
2141
+ {
2142
+ "name": "expectedBalance",
2143
+ "type": "uint256",
2144
+ "internalType": "uint256"
2145
+ },
2146
+ {
2147
+ "name": "actualBalance",
2148
+ "type": "uint256",
2149
+ "internalType": "uint256"
2150
+ }
2151
+ ]
2152
+ },
2153
+ {
2154
+ "type": "error",
2155
+ "name": "JBSucker_ZeroBeneficiary",
2156
+ "inputs": [
2157
+ {
2158
+ "name": "beneficiary",
2159
+ "type": "bytes32",
2160
+ "internalType": "bytes32"
2161
+ }
2162
+ ]
2163
+ },
2164
+ {
2165
+ "type": "error",
2166
+ "name": "JBSucker_ZeroERC20Token",
2167
+ "inputs": [
2168
+ {
2169
+ "name": "projectId",
2170
+ "type": "uint256",
2171
+ "internalType": "uint256"
2172
+ }
2173
+ ]
2174
+ },
2175
+ {
2176
+ "type": "error",
2177
+ "name": "JBSucker_ZeroProjectTokenCount",
2178
+ "inputs": []
2179
+ },
2180
+ {
2181
+ "type": "error",
2182
+ "name": "MerkleLib_InsertTreeIsFull",
2183
+ "inputs": [
2184
+ {
2185
+ "name": "size",
2186
+ "type": "uint256",
2187
+ "internalType": "uint256"
2188
+ },
2189
+ {
2190
+ "name": "maxLeaves",
2191
+ "type": "uint256",
2192
+ "internalType": "uint256"
2193
+ }
2194
+ ]
2195
+ },
2196
+ {
2197
+ "type": "error",
2198
+ "name": "NotInitializing",
2199
+ "inputs": []
2200
+ },
2201
+ {
2202
+ "type": "error",
2203
+ "name": "SafeERC20FailedOperation",
2204
+ "inputs": [
2205
+ {
2206
+ "name": "token",
2207
+ "type": "address",
2208
+ "internalType": "address"
2209
+ }
2210
+ ]
2211
+ }
2212
+ ],
2213
+ "args": [
2214
+ "0xa12ebFCA3d4E0810E4Ed174e4C08277c26917aCb",
2215
+ "0x5AfF29060E023e6FB87BE5596652B33c65Af535B",
2216
+ "0xf92AC1aB5A00033E35a3975739124F61928C36B0",
2217
+ "0x1f80d8f057eE36b4C2656D107E4e4558B71bA7D9",
2218
+ "1",
2219
+ "0x7903a854aE91eAf635430D120a1a434085cEf297",
2220
+ "0x3bA60b60933916a7C87D0860DcEE62a0CE34E3e2"
2221
+ ],
2222
+ "solcInputHash": "d03ac7c2867088e8a791383c85ca5635",
2223
+ "receipt": {
2224
+ "blockHash": "0xa852814da9011360e5eb3c442220ce57095c3c1d5fc86742ab4df708f6e250ba",
2225
+ "blockNumber": "0xa8ec96",
2226
+ "contractAddress": null,
2227
+ "cumulativeGasUsed": "0x578d91",
2228
+ "effectiveGasPrice": "0x2c8e42632",
2229
+ "from": "0x755ff2f75a0a586ecfa2b9a3c959cb662458a105",
2230
+ "gasUsed": "0x578d91",
2231
+ "logs": [
2232
+ {
2233
+ "address": "0xa2ea7657440875bf916cbfc0cfa88f13e38ad463",
2234
+ "topics": [
2235
+ "0x572f161235911da04685a68c06adf558fc7e4a36909dca394650e0adc19cc93d",
2236
+ "0x000000000000000000000000755ff2f75a0a586ecfa2b9a3c959cb662458a105",
2237
+ "0x00000000000000000000000091f164e1300f13beaf77358e4d84ed78f8e99d38",
2238
+ "0xcf5f9f9a2d776c6607ca962e35a610b33d7cf6db382c862fd46473d1da7e1149"
2239
+ ],
2240
+ "data": "0x0000000000000000000000000000000000000000000000000000000000000000",
2241
+ "blockNumber": "0xa8ec96",
2242
+ "transactionHash": "0x2cc108584a2da7f34a08375550cc6ca0371a0ec943f28c3aae42392b66028d6b",
2243
+ "transactionIndex": "0x0",
2244
+ "blockHash": "0xa852814da9011360e5eb3c442220ce57095c3c1d5fc86742ab4df708f6e250ba",
2245
+ "blockTimestamp": "0x6a30df58",
2246
+ "logIndex": "0x0",
2247
+ "removed": false
2248
+ },
2249
+ {
2250
+ "address": "0xf044d9f16c4bce21bd75227561bb3d1838ce8651",
2251
+ "topics": [
2252
+ "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2"
2253
+ ],
2254
+ "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff",
2255
+ "blockNumber": "0xa8ec96",
2256
+ "transactionHash": "0x2cc108584a2da7f34a08375550cc6ca0371a0ec943f28c3aae42392b66028d6b",
2257
+ "transactionIndex": "0x0",
2258
+ "blockHash": "0xa852814da9011360e5eb3c442220ce57095c3c1d5fc86742ab4df708f6e250ba",
2259
+ "blockTimestamp": "0x6a30df58",
2260
+ "logIndex": "0x1",
2261
+ "removed": false
2262
+ },
2263
+ {
2264
+ "address": "0x4dc161ef837ff1c4485b08ddfcdb182f2157be18",
2265
+ "topics": [
2266
+ "0x6895c13664aa4f67288b25d7a21d7aaa34916e355fb9b6fae0a139a9085becb8",
2267
+ "0x00000000000000000000000091f164e1300f13beaf77358e4d84ed78f8e99d38"
2268
+ ],
2269
+ "data": "0x",
2270
+ "blockNumber": "0xa8ec96",
2271
+ "transactionHash": "0x2cc108584a2da7f34a08375550cc6ca0371a0ec943f28c3aae42392b66028d6b",
2272
+ "transactionIndex": "0x0",
2273
+ "blockHash": "0xa852814da9011360e5eb3c442220ce57095c3c1d5fc86742ab4df708f6e250ba",
2274
+ "blockTimestamp": "0x6a30df58",
2275
+ "logIndex": "0x2",
2276
+ "removed": false
2277
+ },
2278
+ {
2279
+ "address": "0x91f164e1300f13beaf77358e4d84ed78f8e99d38",
2280
+ "topics": [
2281
+ "0xa65fb05c5808f5f389d72edeaf719ce38f4cc55c1f69ca3cbfb31c21501caa07",
2282
+ "0xd5deab2e7deb1fc43c598724c179da0517b3ba8e35a6aa10843b370c51835520"
2283
+ ],
2284
+ "data": "0x0000000000000000000000000000000000000000000000000000000000000036",
2285
+ "blockNumber": "0xa8ec96",
2286
+ "transactionHash": "0x2cc108584a2da7f34a08375550cc6ca0371a0ec943f28c3aae42392b66028d6b",
2287
+ "transactionIndex": "0x0",
2288
+ "blockHash": "0xa852814da9011360e5eb3c442220ce57095c3c1d5fc86742ab4df708f6e250ba",
2289
+ "blockTimestamp": "0x6a30df58",
2290
+ "logIndex": "0x3",
2291
+ "removed": false
2292
+ }
2293
+ ],
2294
+ "logsBloom": "0x00000000000010000000000000080000001000000000000000000000000000000000200000000000000000000040000000000002000000000000000000040000000000000000200000000000000000000000000000000040100000000000000040000000000004000000100000000000000000000000000000000000000080008800000200000000000904000000000000000000000080000000000000000000004000040000000000000000000000002200000000000000000000000004000000000002008000000000004000400000010000000004000000000000800000000000000000000100000000000000000200000000000080000000000000000000",
2295
+ "status": "0x1",
2296
+ "to": "0xa2ea7657440875bf916cbfc0cfa88f13e38ad463",
2297
+ "transactionHash": "0x2cc108584a2da7f34a08375550cc6ca0371a0ec943f28c3aae42392b66028d6b",
2298
+ "transactionIndex": "0x0",
2299
+ "type": "0x2"
2300
+ },
2301
+ "bytecode": "0x6101c0806040523461030c5760e08161647f8038038091610020828561044f565b83398101031261030c5780516001600160a01b038116919082900361030c5760208101516001600160a01b038116919082810361030c576040820151906001600160a01b038216820361030c576060830151936001600160a01b038516850361030c57608084015160a0850151946001600160a01b038616860361030c5760c00151926001600160a01b038416840361030c5760049460209460805260a05260c05260e0526040519283809263293c499960e01b82525afa908115610318575f9161040d575b506101005261012052610140525f51602061645f5f395f51905f525460ff8160401c166103fe576002600160401b03196001600160401b038216016103a8575b506040516307fada4960e01b8152602081600481855afa908115610318575f91610366575b506101805260405163155e066960e21b8152602081600481855afa908115610318575f91610323575b50610160526040516370a2b8db60e01b815290602090829060049082905afa908115610318575f916102d9575b506101a052604051615fd8908161048782396080518181816111df0152818161175801526149cf015260a05181818161266901528181612f7b01528181613c4a0152614942015260c051818181610bad015281816119c601528181611fba0152818161406001528181614101015281816144fe0152614f8d015260e05181818161169b0152611ccb015261010051818181610cd10152613b1e0152610120518181816105d00152818161067e01528181611c7a01528181611fe20152614fb5015261014051818181610ac10152611a96015261016051818181611bc9015281816138d8015281816153d7015281816154960152615e88015261018051818181612474015281816151f10152818161551f0152615cc501526101a0518181816120fd0152818161385c015281816144450152615c110152f35b90506020813d602011610310575b816102f46020938361044f565b8101031261030c5751600281101561030c575f6101a1565b5f80fd5b3d91506102e7565b6040513d5f823e3d90fd5b90506020813d60201161035e575b8161033e6020938361044f565b8101031261030c57516001600160a01b038116810361030c576004610174565b3d9150610331565b90506020813d6020116103a0575b816103816020938361044f565b8101031261030c57516001600160a01b038116810361030c575f61014b565b3d9150610374565b6001600160401b0319166001600160401b039081175f51602061645f5f395f51905f52556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f610126565b63f92ee8a960e01b5f5260045ffd5b90506020813d602011610447575b816104286020938361044f565b8101031261030c57516001600160a01b038116810361030c575f6100e6565b3d915061041b565b601f909101601f19168101906001600160401b0382119082101761047257604052565b634e487b7160e01b5f52604160045260245ffdfe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063014dc2a61461035957806301ffc9a71461035457806303da64a81461034f57806306433b1b1461034a5780630ce92d4b1461034557806311cda415146103405780631d831d5c1461033b57806322c9cc0f14610336578063293c4999146103315780633a5de07d1461032c5780633bef5ad5146103275780633f827a5a146103225780633fafa1271461031d5780634035d3b1146103185780634ca0e69b146103135780634e415ad61461030e5780634f0677e1146103095780635417694914610304578063572b6c05146102ff5780635de4e83a146102fa5780636284386a146102f5578063663d00f6146102f05780636d9e384b146102eb5780636f4115a9146102e657806373cbdfc6146102e157806375451559146102dc5780637da0a877146102d75780637de6fba2146102d2578063802c8fa0146102cd57806388bc2ef3146102c857806392ee1ea7146102c35780639e6d7d43146102be578063af629bbb146102b9578063b1012368146102b4578063b71c1179146102af578063bf557aee146102aa578063c19d93fb146102a5578063c1ca1ec7146102a0578063c86719b71461029b578063cbb2adce14610296578063cdfceeba14610291578063cf26bafb1461028c578063d5f3948814610287578063d935222f14610282578063defbb6971461027d578063eac1f29e14610278578063f134654314610273578063f3aefd7b1461026e578063f434c91414610269578063f925558c14610264578063fc072f231461025f5763fe4b84df0361000e5761279a565b6126d3565b612698565b612654565b612551565b6124e8565b6124a3565b61245f565b612382565b61235b565b61233e565b612324565b612141565b6120eb565b611f6f565b611f44565b611ee1565b611bf8565b611bb4565b611a39565b611a12565b6119f5565b6119b1565b6118a6565b611787565b611743565b6116e8565b6116be565b611684565b6115fd565b61137c565b61129f565b611213565b6111bb565b611099565b61107c565b610f60565b610dd9565b610d90565b610d62565b610d47565b610d1d565b610d00565b610cbc565b610b6a565b610aac565b610a8a565b6105ff565b6105bb565b610555565b6104cf565b60203660031901126104cb576004356001600160401b0381116104cb57366023820112156104cb578060040135906001600160401b0382116104cb57602481019060243691606085020101116104cb575f5f5b83811061043e57508061042d57505f91905b5f925f925b8084106103ff57848034116103d457005b610018906103f96103f26103e66149a4565b6001600160a01b031690565b91346128d8565b906137f3565b9091929361042360019161041d8561041889878a61284d565b61348e565b906128bd565b94019291906103c3565b6104379034612891565b91906103be565b61046d61045461044f83878761284d565b612862565b6001600160a01b03165f908152600e6020526040902090565b604061047a83878761284d565b01351590816104a6575b50610492575b6001016103ac565b9061049e600191612883565b91905061048a565b905060226104b5825460401c90565b9101546001600160c01b0390911614155f610484565b5f80fd5b346104cb5760203660031901126104cb5760043563ffffffff60e01b81168091036104cb576314a66dd360e21b8114908115610544575b8115610533575b8115610522575b506040519015158152602090f35b6301ffc9a760e01b1490505f610514565b633d0d324560e21b8114915061050d565b6332af4eb960e21b81149150610506565b346104cb5760203660031901126104cb576004356001600160401b0381116104cb57366023820112156104cb5780600401356001600160401b0381116104cb573660246104c08302840101116104cb5760246100189201612a04565b5f9103126104cb57565b346104cb575f3660031901126104cb576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b60603660031901126104cb575f6106166004612862565b6001600160a01b0381165f908152600f602052604090206044359291906106419061300d565b61300d565b9061064f6020830151151590565b610a6f5761065d600461481f565b6011546106aa61066c82613b01565b6106746149a4565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169491168414916148b7565b6106b2613301565b90803b156104cb576040516303827e8d60e01b81526001600160a01b03841660048201526024810192909252604482018690525f90829060649082905afa8015610a6a57610a50575b50606082018051858115159182610a45575b505080610a3c575b80610a19575b6109f8578415948515938461098f575b868061093e575b6108f6575b50906107b9929161080c959685806108ec575b806108e1575b806108aa575b61087f575b156108785750515b8061083e575b61079b6107766024613484565b610788610781612af2565b9615158752565b5f602087015263ffffffff166040860152565b60608401526001600160a01b03165f908152600f6020526040902090565b815181546020840151604085015165ffffffffffff1990921660ff931515939093169290921791151560081b61ff00169190911760109190911b65ffffffff000016178155606090910151600190910155565b80341161081557005b6001600160a01b036108256149a4565b1690340334811161083957610018916137f3565b61286f565b61087382610854835f52600d60205260405f2090565b80546001600160a01b0319166001600160a01b03909216919091179055565b610769565b9050610763565b6108a561089584515f52600d60205260405f2090565b80546001600160a01b0319169055565b61075b565b506108ce6108c184515f52600d60205260405f2090565b546001600160a01b031690565b6001600160a01b03858116911614610756565b508183511415610750565b508251151561074a565b6001600160a01b0384165f908152600f6020526040902061080c96506107b9949392916109339161092c905b805460ff19169055565b84346141d3565b349550909192610737565b506001600160a01b0384165f908152600e60205260409020610962905b5460401c90565b6001600160a01b0385165f908152600e60205260409020602201546001600160c01b039091161415610732565b6109a46108c1835f52600d60205260405f2090565b6001600160a01b03811680151590816109e4575b506109c3575061072b565b63d6a305d960e01b5f5260048390526001600160a01b031660245260445b5ffd5b6001600160a01b038716141590505f6109b8565b5163aef430a360e01b5f526001600160a01b0390911660045260245260445ffd5b506001600160a01b0382165f908152600e6020526040902060220154151561071b565b50841515610715565b14159050855f61070d565b80610a5e5f610a649361297b565b806105b1565b5f6106fb565b6129f9565b6304bba81f60e41b5f526001600160a01b031660045260245ffd5b346104cb575f3660031901126104cb576020610aa4612ae5565b604051908152f35b346104cb575f3660031901126104cb576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b92919060408401906040855280518092526020606086019101915f5b818110610b1e57505060209150930152565b9091602060806001926001600160801b036060885163ffffffff815116845260ff8682015116868501528260408201511660408501520151166060820152019401910192919092610b0c565b346104cb5760203660031901126104cb5760043560115490805f52601560205260405f2091604051928391633a37eccb60e01b8352606483019060018060a01b037f0000000000000000000000000000000000000000000000000000000000000000166004850152602484015260606044840152815480915260848301915f5260205f20905f5b818110610c765750505090805f920381730b2b545a4e2fd65d29f2417f1b26698d71769a8f5af4918215610a6a575f92610c4e575b50610c39905f52600760205260405f2090565b5490610c4a60405192839283610af0565b0390f35b610c39919250610c6f903d805f833e610c67818361297b565b810190612b42565b9190610c26565b8254845260018084015460ff8116602087015260081c6001600160801b039081166040870152600285015416606086015287955060809094019360039093019201610bf1565b346104cb575f3660031901126104cb576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104cb575f3660031901126104cb57602060405162030d408152f35b346104cb5760203660031901126104cb576004355f526002602052602060405f2054604051908152f35b346104cb575f3660031901126104cb57602060405160018152f35b346104cb575f3660031901126104cb576020601154604051908152f35b6001600160a01b038116036104cb57565b346104cb5760403660031901126104cb57600435610dad81610d7f565b6024359060018060a01b03165f52600160205260405f20905f52602052602060405f2054604051908152f35b346104cb5760203660031901126104cb576004356001600160401b0381116104cb578060040190604060031982360301126104cb57610e173361384f565b15610e6f578135610e2781612b26565b600160ff821603610e4857610018610e426024840185612c21565b906139f4565b80610e556109e192612b26565b63e667c12560e01b5f5260ff166004526001602452604490565b63f957028d60e01b5f523360045260245ffd5b602081016020825282518091526040820191602060408360051b8301019401925f915b838310610eb457505050505090565b9091929394603f1982820301835285519060808101918051825260208101516020830152604081015192608060408401528351809152602060a084019401905f905b808210610f1c575050506060908101519101529460209081019493600101920190610ea5565b909194602060806001926001600160801b0360608a518051845260ff8682015116868501528260408201511660408501520151166060820152019601920190610ef6565b346104cb575f3660031901126104cb57601454610f7c81612b01565b90610f8a604051928361297b565b808252601f19610f9982612b01565b015f5b81811061104c5750505f5b818110610fbc5760405180610c4a8582610e82565b80610fd5610fcb600193612c56565b90549060031b1c90565b610fe7815f52600260205260405f2090565b54611026610ffd835f52601560205260405f2090565b61100f845f52600760205260405f2090565b5492611019612af2565b9485526020850152612c6e565b6040830152606082015261103a8286612d08565b526110458185612d08565b5001610fa7565b60209060405161105b8161290a565b5f81525f83820152606060408201525f606082015282828701015201610f9c565b346104cb575f3660031901126104cb576020600454604051908152f35b346104cb5760403660031901126104cb575f516020615fac5f395f51905f52546004356024356001600160401b036110e9604085901c60ff16156110dc565b1590565b946001600160401b031690565b16801590816111b3575b60011490816111a9575b1590816111a0575b50611191576111209183611117612d1c565b61118457613aa5565b61112657005b61115060ff60401b195f516020615fac5f395f51905f5254165f516020615fac5f395f51905f5255565b604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29080602081015b0390a1005b61118c612d49565b613aa5565b63f92ee8a960e01b5f5260045ffd5b9050155f611105565b303b1591506110fd565b8491506110f3565b346104cb5760203660031901126104cb5760206004356111da81610d7f565b6040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b039081169216919091148152f35b346104cb5760203660031901126104cb57610c4a6004355f604080516112388161292a565b8281528260208201520152805f52600260205260405f205490805f52600760205260405f2054906040519261126c8461292a565b83526020830152604082015260405191829182919091604080606083019480518452602081015160208501520151910152565b346104cb5760203660031901126104cb5760043564ffffffffff8116908181036104cb576112cb613abb565b6112df6011546112da81613b01565b613bbf565b6212750042018042116108395782151580611372575b61135457506113247f455efa76af2a8686dc0dd3041bda89ece5ba4691277d525e2161003bbca8b24592600855565b61132c6149a4565b6040805164ffffffffff90931683526001600160a01b0390911660208301528190810161117f565b630111a46b60e21b5f5264ffffffffff90911660045260245260445ffd5b50808311156112f5565b60203660031901126104cb576004356001600160401b0381116104cb57806004019060c060031982360301126104cb576113b86110d83361384f565b6115dd57600160ff6113c984612c17565b16036115d15760248101356001600160a01b03165f818152600a6020526040902061001893610e4293909260a492606483019061140582612d87565b81546001600160401b03908116911681101561155957506114a38260019261146d6114507fc69d3412489554fb7820c4c2784cb644b6c79bfc117444b93977d3d33a9b8eac96612d87565b825467ffffffffffffffff19166001600160401b03909116178255565b608487013593849101557f27ae5ba08d7291c96c8cbddcc148bf48a6d68c7974b94356f53754ef6171d75783036114f257612d87565b926114e76114af6149a4565b604080516001600160401b03909716875260208701949094526001600160a01b03908116938601939093529116929081906060820190565b0390a25b0190612c21565b6115548361154e61152561151f6115198a60018060a01b03165f52600b60205260405f2090565b546128af565b60031690565b6001600160a01b0389165f908152600b60209081526040808320849055600c9091529020612d91565b90612da0565b612d87565b90506115857f2eb8abf720d2b9cf9e357f7a24a2bee502a7bdba38de0de230e10c33dafbd3eb92612d87565b926115c96115916149a4565b604080516001600160401b0397881681529490961660208501526001600160a01b039081169584019590955293169281906060820190565b0390a26114eb565b6109e1610e5583612c17565b6109e16115e9336103e6565b63f957028d60e01b5f52600452602490565b565b346104cb5760203660031901126104cb5760043561161a81610d7f565b5f602060405161162981612945565b828152015260018060a01b03165f52600a602052610c4a60405f2060016040519161165383612945565b80546001600160401b0316808452910154602092830190815260408051928352905192820192909252918291820190565b346104cb575f3660031901126104cb5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346104cb5760203660031901126104cb576004355f526007602052602060405f2054604051908152f35b346104cb5760203660031901126104cb576004356001600160401b0381116104cb57366023820112156104cb5780600401356001600160401b0381116104cb573660248260051b840101116104cb5760246100189201612e27565b346104cb575f3660031901126104cb576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104cb5760203660031901126104cb576004356117a481610d7f565b6117ac612fe9565b5060018060a01b03165f52600f602052610c4a60405f206001604051916117d28361290a565b63ffffffff815460ff81161515855260ff8160081c161515602086015260101c1660408401520154606082015260405191829182919091606080608083019480511515845260208101511515602085015263ffffffff60408201511660408501520151910152565b81516001600160401b031681526020808301516001600160c01b031690820152604080830151908201526060918201518051610480830194935f9084015b60208210611890575050506020610460910151910152565b6020806001928551815201930191019091611878565b346104cb5760203660031901126104cb576004356118c381610d7f565b604051906118d08261290a565b5f82525f60208301525f60408301526040516118eb81612945565b6060610400936040516118fe868261297b565b8536823783525f6020840152015260018060a01b03165f52600e60205260405f20906040519061192d8261290a565b82546001600160401b038116835260401c6020830152600183015460408301526040519061195a82612945565b60405190600285015f835b6020821061199b575050509381611981610c4a9660229461297b565b83520154602082015260608201526040519182918261183a565b6001602081928554815201930191019091611965565b346104cb575f3660031901126104cb576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104cb575f3660031901126104cb576020604051620493e08152f35b346104cb5760203660031901126104cb576020610aa4600435611a3481610d7f565b613063565b346104cb5760a03660031901126104cb57606435604435602435600435611a5f84610d7f565b608435928115611ba5578215611b915760115460405163ea78803f60e01b8152600481018290526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610a6a575f91611b62575b506001600160a01b0316908115611b5057506001600160a01b0386165f908152600f60205260409020611aff906110d8905b5460ff1690565b611b34576100189591611b2784611b2e93611b18613abb565b611b206149a4565b3091613d15565b8284613e2a565b91613f02565b63027edf0360e11b5f526001600160a01b03861660045260245ffd5b6309794d0160e11b5f5260045260245ffd5b611b84915060203d602011611b8a575b611b7c818361297b565b8101906130d1565b5f611ac6565b503d611b72565b63b2fe07f160e01b5f52600483905260245ffd5b632bcf4c5760e21b5f5260045ffd5b346104cb575f3660031901126104cb576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b60203660031901126104cb57600435611c1081610d7f565b6001600160a01b0381165f908152600f60205260409020611c309061300d565b6020810151611ec5576001600160a01b0382165f908152600e60205260409020600181015490811580611e9f575b611e42575050604051634211591560e01b8152916020836004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa928315610a6a575f93611e21575b50823410611e095782611cc861001894346128d8565b907f0000000000000000000000000000000000000000000000000000000000000000611cf38161403b565b5f91906001600160a01b031680151580611e00575b611d41575b50501580611d38575b611d21575b506141d3565b611d3290611d2d6149a4565b61413c565b5f611d1b565b50801515611d16565b611db3916020918580611d526149a4565b936040519687958694859363fef4325760e01b855260048501916101209391835261eeee6020840152604083015260018060a01b031660608201525f608082015260e060a08201525f60e082015261010060c08201525f6101008201520190565b03925af19081611dd3575b50611dcb575b5f80611d0d565b506001611dc4565b611df49060203d602011611df9575b611dec818361297b565b8101906130e6565b611dbe565b503d611de2565b50831515611d08565b630ee99a4760e01b5f5234600452602483905260445ffd5b611e3b91935060203d602011611df957611dec818361297b565b915f611cb2565b611e9b81611e57602287940154915460401c90565b60405163096c1e2160e21b81526001600160a01b039094166004850152602484019490945260448301526001600160c01b0390921660648201529081906084820190565b0390fd5b506022810154611ebf611eb3835460401c90565b6001600160c01b031690565b14611c5e565b6304bba81f60e41b5f526001600160a01b03821660045260245ffd5b346104cb5760203660031901126104cb57600435611efe81610d7f565b60018060a01b03165f52600f6020526020600160405f2001541515604051908152f35b634e487b7160e01b5f52602160045260245ffd5b60041115611f3f57565b611f21565b346104cb575f3660031901126104cb57611f5c6130f5565b6040516004821015611f3f576020918152f35b5f3660031901126104cb57611f82613abb565b611f97600160125401806012554260801b1790565b60115490611fa3613301565b60405163f1d0f27760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f0000000000000000000000000000000000000000000000000000000000000000166024820152604481019390935260648301526001608483015260a482018190525f8260c481730b2b545a4e2fd65d29f2417f1b26698d71769a8f5af4908115610a6a57610018925f9261209b575b507f77bd1556265e71d247f11bb5886efda7fd5e5b21e6a4d2c871e8e6b49ac92f3d9061207b6149a4565b604080519283526001600160a01b0391909116602083015290a1346143eb565b7f77bd1556265e71d247f11bb5886efda7fd5e5b21e6a4d2c871e8e6b49ac92f3d9192506120da903d805f833e6120d2818361297b565b81019061329c565b9190612050565b60021115611f3f57565b346104cb575f3660031901126104cb577f00000000000000000000000000000000000000000000000000000000000000006040516002821015611f3f576020918152f35b6104c09060031901126104cb57600490565b346104cb5761214f3661212f565b803590606081013561216083610d7f565b608082013560408301359260a0810135602082013560c08301640100000000821015612311576001600160a01b0388165f908152600960209081526040808320600886901c8452909152902054600160ff84161b166122f05791866122e38361228f86828d61228a6100189f9a838f8f6122eb9f9e8d917fa8d6760b4e1a89f513fc87990f66d051c419d735fb8191104014e0529d9ae2d39f936122388f939561221d6122569760018060a01b03165f52600960205260405f2090565b8160081c5f52602052600160ff60405f2092161b8154179055565b91608093916040519384526020840152604083015260608201522090565b848161228484612277839960018060a01b03165f52600160205260405f2090565b905f5260205260405f2090565b5561580f565b615901565b61229886612862565b936122a16149a4565b604080519586526001600160a01b03968716602087015285018b9052606085018a9052608085019290925260a084015290921660c082015290819060e0820190565b0390a1612862565b6144ca565b632939af3b60e21b5f526001600160a01b038816600452602482905260445ffd5b506309f6605160e41b5f5260045260245ffd5b346104cb575f3660031901126104cb576020610aa4613301565b346104cb575f3660031901126104cb576020600354604051908152f35b346104cb575f3660031901126104cb575f546040516001600160a01b039091168152602090f35b346104cb576100186123933661212f565b60608101356123a182612862565b916122eb6080820135916123cc60408201359560a0830135602084013590888760c08701948a614605565b60016123da61045483612862565b016123e68482546128d8565b90556001600160a01b0385166123fb82612862565b7fe33107c4043e574d8a4da32dac235e219f8f34a0e45e473ea6643a6145f252856124576124276149a4565b60408051898152602081018b90526001600160a01b03928316918101919091529381169416929081906060820190565b0390a3612862565b346104cb575f3660031901126104cb576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104cb5760203660031901126104cb576004356124c081610d7f565b60018060a01b03165f526006602052602060405f2054604051908152f35b801515036104cb57565b346104cb5760203660031901126104cb5761250d600435612508816124de565b6133b2565b6040518091602082016020835281518091526020604084019201905f5b818110612538575050500390f35b825184528594506020938401939092019160010161252a565b346104cb5760203660031901126104cb5760043561256e81610d7f565b6001600160a01b038116908115612641576125876149a4565b6001600160a01b0381165f81815260066020526040902054909290918215612626576001600160a01b03165f9081526006602052604081207ffbcfe54e4aa35e7772f25a5f52fedccde889e4fc5031ad9826b9bf6b890baa599392612602928492556125fd6125f8836004546128d8565b600455565b6137f3565b61260a6149a4565b604080519283526001600160a01b0391909116602083015290a3005b631733ad2160e21b5f526001600160a01b031660045260245ffd5b63b2fe07f160e01b5f525f60045260245ffd5b346104cb575f3660031901126104cb576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104cb5760203660031901126104cb576004356126b581610d7f565b60018060a01b03165f526005602052602060405f2054604051908152f35b346104cb5760203660031901126104cb576004356126f081610d7f565b6001600160a01b038116908115612641576127096149a4565b6001600160a01b0381165f8181526005602052604090205490929091821561277f576001600160a01b03165f9081526005602052604081207f1e70ff8443e61b2a2555b5ad56645461a75dd29591b5c4a6281f70a6d395db459392612602928492556125fd61277a836003546128d8565b600355565b63578a51dd60e11b5f526001600160a01b031660045260245ffd5b346104cb5760203660031901126104cb575f516020615fac5f395f51905f52546004356001600160401b036127de604084901c60ff1615936001600160401b031690565b1680159081612831575b6001149081612827575b15908161281e575b5061119157611120908261280c612d1c565b15613a7557612819612d49565b613a75565b9050155f6127fa565b303b1591506127f2565b8391506127e8565b634e487b7160e01b5f52603260045260245ffd5b919081101561285d576060020190565b612839565b3561286c81610d7f565b90565b634e487b7160e01b5f52601160045260245ffd5b5f1981146108395760010190565b811561289b570490565b634e487b7160e01b5f52601260045260245ffd5b906001820180921161083957565b9190820180921161083957565b5f1981019190821161083957565b9190820391821161083957565b919081101561285d576104c0020190565b634e487b7160e01b5f52604160045260245ffd5b608081019081106001600160401b0382111761292557604052565b6128f6565b606081019081106001600160401b0382111761292557604052565b604081019081106001600160401b0382111761292557604052565b60a081019081106001600160401b0382111761292557604052565b90601f801991011681019081106001600160401b0382111761292557604052565b6104009092919260c0806104c083019580356129b781610d7f565b60018060a01b031684526020810135602085015260408101356040850152606081013560608501526080810135608085015260a081013560a085015201910137565b6040513d5f823e3d90fd5b5f5b828110612a1257505050565b612a1d8184846128e5565b90303b156104cb57612a465f600193604051809381926365d956e760e11b83526004830161299c565b038183305af19081612ad1575b50612acc57612a6661044f8286866128e5565b7fc1054f794d197971822697afa7ff4777cac6fb7a512e4bfec63aebaab98187b66020612a948488886128e5565b013591612a9f6149a4565b604080519485526001600160a01b0391909116602085015260a086901b8690039190911692a25b01612a06565b612ac6565b80610a5e5f612adf9361297b565b5f612a53565b6013548061286c57503090565b604051906115fb60808361297b565b6001600160401b0381116129255760051b60200190565b63ffffffff8116036104cb57565b60ff8116036104cb57565b6001600160801b038116036104cb57565b6020818303126104cb578051906001600160401b0382116104cb570181601f820112156104cb57805190612b7582612b01565b92612b83604051948561297b565b82845260208085019360071b830101918183116104cb57602001925b828410612bad575050505090565b6080848303126104cb576020608091604051612bc88161290a565b8651612bd381612b18565b815282870151612be281612b26565b838201526040870151612bf481612b31565b60408201526060870151612c0781612b31565b6060820152815201930192612b9f565b3561286c81612b26565b903590601e19813603018212156104cb57018035906001600160401b0382116104cb57602001918160051b360383136104cb57565b60145481101561285d5760145f5260205f2001905f90565b908154612c7a81612b01565b92612c88604051948561297b565b81845260208401905f5260205f205f915b838310612ca65750505050565b60036020600192604051612cb98161290a565b855481526001600160801b038587015460ff81168584015260081c1660408201526001600160801b036002870154166060820152815201920192019190612c99565b80511561285d5760200190565b805182101561285d5760209160051b010190565b60016001600160401b03195f516020615fac5f395f51905f525416175f516020615fac5f395f51905f5255565b600160401b60ff60401b195f516020615fac5f395f51905f525416175f516020615fac5f395f51905f5255565b6001600160401b038116036104cb57565b3561286c81612d76565b600482101561285d5701905f90565b91612db99183549060031b91821b915f19901b19161790565b9055565b919081101561285d5760051b0190565b604080825281018390529293929160608301905f5b818110612dfd575050602091509360018060a01b0316910152565b90916020806001928635612e1081610d7f565b848060a01b03168152019401910192919092612de2565b9190601154612e3581613b01565b612e3d6149a4565b916001600160a01b03808416908316141580612f54575b612f1d575050505f5b818110612ea457507f8021bce60b20a9afb57085869a3552e0ee5b272b868df894fb30c5e90e74c0729192612e9f612e936149a4565b60405193849384612dcd565b0390a1565b80612eb26001928487612dbd565b35612ebc81610d7f565b828060a01b03165f52600f602052612edb60405f2060ff198154169055565b612f17612f08612eef61044f84878a612dbd565b6001600160a01b03165f908152600f6020526040902090565b805461ff001916610100179055565b01612e5d565b604051631326f75560e11b81526001600160a01b039283166004820152929091166024830152604482015260236064820152608490fd5b50604051631a45b42760e11b815260208180612f77602386888a60048601613b87565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610a6a575f91612fba575b5015612e54565b612fdc915060203d602011612fe2575b612fd4818361297b565b810190613b72565b5f612fb3565b503d612fca565b60405190612ff68261290a565b5f6060838281528260208201528260408201520152565b9060405161301a8161290a565b60606001829463ffffffff815460ff81161515865260ff8160081c161515602087015260101c1660408501520154910152565b6040519061040061305e818461297b565b368337565b61306d3082613ca8565b9060018060a01b031690815f52600e602052600160405f20015481039081116108395761eeee81921461309e575090565b9050600354808211156130cb57810390811161083957600454808211156130cb5781039081116108395790565b50505f90565b908160209103126104cb575161286c81610d7f565b908160209103126104cb575190565b600854801561312857621274ff19810181811161083957421061312257421061311d57600390565b600290565b50600190565b505f90565b81601f820112156104cb5780519061314482612b01565b92613152604051948561297b565b82845260208085019360051b830101918183116104cb5760208101935b83851061317e57505050505090565b84516001600160401b0381116104cb5782016080818503601f1901126104cb57604051906131ab8261290a565b602081015182526040810151602083015260608101516001600160401b0381116104cb5760209082010185601f820112156104cb5780516131eb81612b01565b916131f9604051938461297b565b81835260208084019260071b820101908882116104cb57602001915b81831061323b57505050604083015260800151606082015281526020948501940161316f565b6080838a03126104cb5760206080916040516132568161290a565b855181528286015161326781612b26565b83820152604086015161327981612b31565b6040820152606086015161328c81612b31565b6060820152815201920191613215565b6020818303126104cb578051906001600160401b0382116104cb57016040818303126104cb57604051916132cf83612945565b81516132da81612b26565b835260208201516001600160401b0381116104cb576132f9920161312d565b602082015290565b6001461461333d5761a4b146146133385762aa36a746146133315762066eee461461332a575f90565b62aa36a790565b62066eee90565b600190565b61a4b190565b6040519061335260208361297b565b5f808352366020840137565b6040805190919061336f838261297b565b6001815291601f1901366020840137565b9061338a82612b01565b613397604051918261297b565b82815280926133a8601f1991612b01565b0190602036910137565b906133bb613301565b8015159283613479575b156134535782613433575b601454831561342a576133ea6133e5826128af565b613380565b935f5b82811061340a57506133fd575050565b6134079084612d08565b52565b80613419610fcb600193612c56565b6134238289612d08565b52016133ed565b6133ea81613380565b915061344d6110d8611af8845f52601060205260405f2090565b916133d0565b9091156134705761346261335e565b9061346c82612cfb565b5290565b5061286c613343565b4682141593506133c5565b3561286c81612b18565b91905f9261349b81612862565b906040810135926134bf61063c8460018060a01b03165f52600f60205260405f2090565b936134cd6020860151151590565b6137a8576134da8361481f565b6011546134e961066c82613b01565b6134f1613301565b90803b156104cb576040516303827e8d60e01b81526001600160a01b03871660048201526024810192909252604482018390525f90829060649082905afa8015610a6a57613794575b5060608501918251828115159182613789575b505080613780575b8061375d575b61373c57811590811596876136d4575b8280613686575b613638575b505061077660208796946107b9969461079b94896115fb9b9061362e575b80613623575b806135f9575b6135de575b156135d6575051935b846135bb575b01613484565b6135d186610854875f52600d60205260405f2090565b6135b5565b9050936135af565b6135f461089584515f52600d60205260405f2090565b6135a6565b506136106108c184515f52600d60205260405f2090565b6001600160a01b038981169116146135a1565b50818351141561359b565b5082511515613595565b61079b92995086946107b99694610776936136776020946136706109226115fb9e9d60018060a01b03165f52600f60205260405f2090565b89836141d3565b9b945094965094969750613577565b506001600160a01b0387165f908152600e602052604090206136a79061095b565b6001600160a01b0388165f908152600e60205260409020602201546001600160c01b039091161415613572565b6136e96108c1855f52600d60205260405f2090565b6001600160a01b0381168015159081613728575b50613708575061356b565b63d6a305d960e01b5f5260048590526001600160a01b031660245260445ffd5b6001600160a01b038a16141590505f6136fd565b825163aef430a360e01b5f526001600160a01b03861660045260245260445ffd5b506001600160a01b0385165f908152600e6020526040902060220154151561355b565b50811515613555565b14159050825f61354d565b80610a5e5f6137a29361297b565b5f61353a565b6304bba81f60e41b5f526001600160a01b03841660045260245ffd5b6001600160401b03811161292557601f01601f191660200190565b604051906137ee60208361297b565b5f8252565b6001600160a01b03165f80808085855af13d1561384a573d613814816137c4565b90613822604051928361297b565b81525f60203d92013e5b15613835575050565b630590bd2d60e41b5f5260045260245260445ffd5b61382c565b61385a6103e6612ae5565b7f0000000000000000000000000000000000000000000000000000000000000000613884816120e1565b156138c3576138b4906001600160a01b0390811673111100000000000000000000000000000000111101166103e6565b6001600160a01b039091161490565b6040516373c6754960e11b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610a6a575f916139d5575b506001600160a01b0390811692168214918261392b57505090565b60405163ab5d894360e01b8152919250602090829060049082905afa908115610a6a576004916020915f916139b8575b50604051634032458160e11b815292839182906001600160a01b03165afa908115610a6a575f91613999575b506001600160a01b0391821691161490565b6139b2915060203d602011611b8a57611b7c818361297b565b5f613987565b6139cf9150823d8411611b8a57611b7c818361297b565b5f61395b565b6139ee915060203d602011611b8a57611b7c818361297b565b5f613910565b90915f5b83811015613a6f578060051b830135607e19843603018112156104cb578301908135606083013592602081013590604081013590601e19813603018212156104cb5701908135916001600160401b0383116104cb57602001908260071b360382136104cb57600195613a6994614b92565b016139f8565b50915050565b6011555f6013556001600160a01b03613a8c6149a4565b166bffffffffffffffffffffffff60a01b5f5416175f55565b6011556013556001600160a01b03613a8c6149a4565b613ac36130f5565b600481101580611f3f57600382148015613af5575b613ae0575050565b62a7958f60e81b5f52611f3f5760045260245ffd5b50505f60028214613ad8565b6040516331a9108f60e11b815260048101919091526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610a6a575f91613b59575090565b61286c915060203d602011611b8a57611b7c818361297b565b908160209103126104cb575161286c816124de565b6001600160a01b039182168152911660208201526040810191909152606081019190915260016080820181905260a082015260c00190565b613bc76149a4565b916001600160a01b03808416908316141580613c23575b613be757505050565b604051631326f75560e11b81526001600160a01b0392831660048201529290911660248084019190915260448301919091526064820152608490fd5b50604051631a45b42760e11b815260208180613c46602486888a60048601613b87565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610a6a575f91613c89575b5015613bde565b613ca2915060203d602011612fe257612fd4818361297b565b5f613c82565b6001600160a01b03169061eeee8214613d0f576040516370a0823160e01b81526001600160a01b03909116600482015290602090829060249082905afa908115610a6a575f91613cf6575090565b61286c915060203d602011611df957611dec818361297b565b90503190565b6040516323b872dd60e01b5f9081526001600160a01b039384166004529290931660245260449390935260209060648180865af160015f5114811615613d83575b6040919091525f60605215613d685750565b635274afe760e01b5f526001600160a01b031660045260245ffd5b6001811516613d99573d15833b15151616613d56565b503d5f823e3d90fd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6001600160a01b0391821681526020810192909252604082019290925291811660608301526080820192909252911660a082015260e060c0820181905261286c92910190613da2565b15613e1657565b634e487b7160e01b5f52600160045260245ffd5b601154919392613e3f6103e6808088876140d0565b6001600160a01b03811615613ee15790602091865f613e5e3083613ca8565b95613e8a613e6a6137df565b6040516313da831760e01b8152998a978896879530938460048901613dc6565b03925af1908115610a6a576115fb925f92613ebc575b50613eb690613eb183963090613ca8565b6128d8565b14613e0f565b613eb6919250613eda9060203d602011611df957611dec818361297b565b9190613ea0565b63b61c181f60e01b5f5260048490526001600160a01b03861660245260445ffd5b9193906001600160801b038511614028576001600160801b03831161401557613f468285878691608093916040519384526020840152604083015260608201522090565b6001600160a01b0382165f908152600e60205260409020909590936002850193613f708886614ce3565b600186019283549681880180981161083957613fb96022613fbf927fc92fa1150c24ee5470c272112539aab52450a5e05573e7ea7bdfb98829b893219a614010985501546128ca565b96614dcf565b92613fc86149a4565b604080519b8c5260208c0198909852968a01939093526060890192909252608088019190915260a08701526001600160a01b0392831660c087015291169390819060e0820190565b0390a3565b826335bf001160e11b5f5260045260245ffd5b846335bf001160e11b5f5260045260245ffd5b604051630862026560e41b8152600481019190915261eeee60248201526020816044817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610a6a575f9161409b575090565b90506020813d6020116140c8575b816140b66020938361297b565b810103126104cb575161286c81610d7f565b3d91506140a9565b604051630862026560e41b815260048101919091526001600160a01b039091166024820152602081806044810103817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610a6a575f9161409b575090565b60018060a01b031690815f52600560205260405f20805490828201809211610839575560035490808201809211610839577f2a3798c6648c17f70b43a33a8378cec543367ac1543e62aa7b392660569717779160035561419a6149a4565b604080519283526001600160a01b0391909116602083015290a2565b6001600160401b03166001600160401b0381146108395760010190565b906060830151156142f4576141e6613abb565b6001600160a01b0381165f908152600e602052604090209060228201549081156142ed576115fb9460018401915f8354935561428461423461422f87546001600160401b031690565b6141b6565b865467ffffffffffffffff19166001600160401b0382161787559461427f61425e60028901614dcf565b88546001600160401b0316604084901b67ffffffffffffffff191617909855565b6128ca565b9586867f47c5615513b0f669da2dd7e3362a34610ca2695d0a0e2da2160cee952eab203c6142e56142b36149a4565b604080519586526001600160401b038b1660208701526001600160a01b03918216908601528616939081906060820190565b0390a3614f41565b5050505050565b63027edf0360e11b5f9081526001600160a01b0391909116600452602490fd5b9080602083519182815201916020808360051b8301019401925f915b83831061433f57505050505090565b9091929394601f1982820301835285519060808101918051825260208101516020830152604081015192608060408401528351809152602060a084019401905f905b8082106143a7575050506060908101519101529460209081019493600101920190614330565b909194602060806001926001600160801b0360608a518051845260ff8682015116868501528260408201511660408501520151166060820152019601920190614381565b919091604051634ca0e69b60e01b602082015261443a8161442c602482016020815260ff885116602082015260606020890151916040808201520190614314565b03601f19810183528261297b565b614442612fe9565b907f000000000000000000000000000000000000000000000000000000000000000061446d816120e1565b6144a257821561448e5761448860206115fb959601516152a2565b926153a4565b631587a6a360e31b5f52600483905260245ffd5b90918094506144b6576115fb92935061511d565b636ba3461960e11b5f52600484905260245ffd5b6011548281936145dc575b5050604051632eec7b5560e11b8152600481018390529290506020836024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610a6a57614586946020945f936145bb575b506040516363fdc96f60e11b8152600481019490945260248401919091526001600160a01b0316604483015260a060648301525f60a4830181905260848301819052919384928391829060c4820190565b03926001600160a01b03165af18015610a6a576145a05750565b6145b89060203d602011611df957611dec818361297b565b50565b5f9193506145d590863d8811611b8a57611b7c818361297b565b9290614535565b6145e592615989565b5f81816144d5565b6001600160c01b039081165f19019190821161083957565b9290969594939164010000000085101561480b576146216130f5565b61462a81611f35565b600381141590816147f6575b50806147c7575b6147ab576001600160a01b0388165f908152600e602052604090206146619061095b565b6001600160c01b038116151590869082614793575b505061477257604080516001600160a01b038a16602082019081526146c2926146bc92906146a7908290810161442c565b5190206bffffffffffffffffffffffff191690565b60601c90565b6001600160a01b0381165f90815260096020908152604080832060088a901c8452909152902054600160ff88161b16614751579061472c60026147266115fb9a9b6104548a61221d61474b9a999860018060a01b03165f52600960205260405f2090565b01614dcf565b9491608093916040519384526020840152604083015260608201522090565b90615901565b632939af3b60e21b5f526001600160a01b038916600452602486905260445ffd5b632939af3b60e21b5f526001600160a01b038816600452602485905260445ffd5b6147a2919250611eb3906145ed565b1015855f614676565b6304bba81f60e41b5f526001600160a01b03881660045260245ffd5b506001600160a01b0388165f908152600f602052604090206147f1906110d8905460081c60ff1690565b61463d565b6002915061480381611f35565b14155f614636565b6309f6605160e41b5f52600485905260245ffd5b61eeee813561482d81610d7f565b6001600160a01b0316146148865760200162030d4063ffffffff823561485281612b18565b161061485b5750565b6148676109e191613484565b630555d0f160e41b5f5263ffffffff1660045262030d40602452604490565b6040013561eeee811415806148ae575b61489d5750565b62e80c7760e31b5f5260045260245ffd5b50801515614896565b90916149a0576148c56149a4565b916001600160a01b0380841690831614158061491c575b6148e557505050565b604051631326f75560e11b81526001600160a01b039283166004820152929091166024830152604482015260206064820152608490fd5b50604051631a45b42760e11b81526020818061493e8386888a60048601613b87565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610a6a575f91614981575b50156148dc565b61499a915060203d602011612fe257612fd4818361297b565b5f61497a565b5050565b6014361015806149cb575b156149c75760131936013681116104cb573560601c90565b3390565b50337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146149af565b601454600160401b811015612925576001810160145560145481101561285d5760145f527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec0155565b8181029291811591840414171561083957565b8054905f815581614a68575050565b81600302916003830403610839575f5260205f20908101905b818110614a8c575050565b6003905f81555f60018201555f600282015501614a81565b919081101561285d5760071b0190565b805482101561285d575f52600360205f20910201905f90565b3561286c81612b31565b8054600160401b81101561292557614af491600182018155614ab4565b614b7f576002614b6260606115fb9480358555600185016020820135614b1981612b26565b815460ff70ffffffffffffffffffffffffffffffff006040860135614b3d81612b31565b60081b1692169070ffffffffffffffffffffffffffffffffff19161717905501614acd565b9101906001600160801b03166001600160801b0319825416179055565b634e487b7160e01b5f525f60045260245ffd5b90919392934682148015614ccc575b6142ed57614bb7825f52600760205260405f2090565b548311156142ed57614c2e92614bd5835f52600760205260405f2090565b55614be8825f52600260205260405f2090565b55614c016110d8611af8835f52601060205260405f2090565b614c9c575b614c20614c1b825f52601560205260405f2090565b614a59565b5f52601560205260405f2090565b905f5b818110614c3e5750505050565b80614c55614c4f6001938588614aa4565b85614ad7565b614c60818487614aa4565b35614c7c6108c1848060a01b03925f52600d60205260405f2090565b1680614c8a575b5001614c31565b614c948286614ab4565b50555f614c83565b614cbe614cb1825f52601060205260405f2090565b805460ff19166001179055565b614cc7816149fd565b614c06565b508115614ba1565b602082101561285d5701905f90565b916020830190614cf38254612883565b92838355839463ffffffff94858111614d7457505f95915b60208710614d2c57845463515447c160e01b5f52600452602486905260445ffd5b600180841614614d6157614d43610fcb8884614cd4565b5f526020526001614d5860405f209360011c90565b96019591614d0b565b93506115fb945061154e92959150614cd4565b63515447c160e01b5f52600452602485905260445ffd5b90602081101561285d5760051b0190565b61042081019392915f825b60208210614db9575050506104000152565b6020806001928551815201930191019091614da7565b6020810154908115614e6d57614de361304d565b905f5b60208110614e3d575050604051634a490c2560e01b81529160209183918291614e13919060048401614d9c565b0381730b2b545a4e2fd65d29f2417f1b26698d71769a8f5af4908115610a6a575f91613cf6575090565b80600180921b8516614e50575b01614de6565b614e5d610fcb8285614cd4565b614e678286614d8b565b52614e4a565b50507f27ae5ba08d7291c96c8cbddcc148bf48a6d68c7974b94356f53754ef6171d75790565b6020818303126104cb578051906001600160401b0382116104cb57018082039160c083126104cb576040805193614ec985612960565b8351614ed481612b26565b8552602084015160208601528184015182860152605f1901126104cb57604051614efd81612945565b6060830151614f0b81612d76565b815260808301516020820152606084015260a08201516001600160401b0381116104cb57614f39920161312d565b608082015290565b949091939550614f5c600160125401806012554260801b1790565b906001600160401b0360115497614f71613301565b6060880151604051634cba057b60e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f0000000000000000000000000000000000000000000000000000000000000000166024820152604481019b909b5260648b019190915260848a015260a489018690521660c488015260e487015260016101048701526101248601525f8561014481730b2b545a4e2fd65d29f2417f1b26698d71769a8f5af4938415610a6a576115fb955f95615044575b50615b84565b6150619195503d805f833e615059818361297b565b810190614e93565b935f61503e565b6020818303126104cb578051906001600160401b0382116104cb570181601f820112156104cb5780519061509b826137c4565b926150a9604051948561297b565b828452602083830101116104cb57815f9260208093018386015e8301015290565b6001600160a01b03918216815291166020820152604081019190915260806060820181905261286c92910190613da2565b6001600160a01b03909116815260406020820181905261286c92910190613da2565b615151915060209061512d612ae5565b6040516349460b4d60e11b815293849283926001600160a01b0316600484016150fb565b03815f60645af18015610a6a576145a05750565b9190915f906151756103e6612ae5565b6001600160a01b0382169590919061eeee87141580615299575b1561528757826151c66151b88860605f9501956151b2875160018060a01b031690565b90615c97565b93516001600160a01b031690565b6151ec6151d16137df565b604051637b3a3c8b60e01b8152998a948594600486016150ca565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1908115610a6a576152549660209661523893615267575b50615d29565b6040518095819482936349460b4d60e11b8452600484016150fb565b039160645af18015610a6a576145a05750565b615282903d805f833e61527a818361297b565b810190615068565b615232565b50509050615254935060209290615238565b5085151561518f565b5f9080515f915b8183106152dc57505050620124f8810290808204620124f8149015171561083957620493e00180620493e0116108395790565b90919260406152eb8584612d08565b510151518101809111610839579260010191906152a9565b6001600160a01b03918216815291811660208301529091166040820152606081019190915260a06080820181905261286c92910190613da2565b60409061286c939281528160208201520190613da2565b6001600160a01b03918216815291811660208301529091166040820152606081019190915263ffffffff91909116608082015260a081019190915260e060c0820181905261286c92910190613da2565b815160405163a66b327d60e01b815260048101919091524860248201529094939192506020816044816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610a6a575f91615448575b506154124883614a46565b8101808211610839578086106154315750936115fb93945f4892615df0565b6328a7a8cb60e11b5f52600486905260245260445ffd5b615461915060203d602011611df957611dec818361297b565b5f615407565b835160405163a66b327d60e01b815260048101919091524860248201529095939490915f916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016602085604481845afa948515610a6a575f956157d3575b506154e16154db4889614a46565b866128bd565b6001600160a01b038a16939061eeee851415806157ca575b1561579857604051635ed004ff60e11b81526001600160a01b038c8116600483015290947f000000000000000000000000000000000000000000000000000000000000000090911693929190602086602481885afa958615610a6a578d8b915f98615775575b505f9061556d6103e6612ae5565b906155966155796137df565b604051635063b54b60e11b81529586948594309060048701615303565b03816001600160a01b038b165afa948515610a6a576155e5956020925f9161575b575b505160405163a66b327d60e01b8152600481019190915248602482015295869190829081906044820190565b03915afa938415610a6a575f94615737575b50604001906156286156224861561d615614865163ffffffff1690565b63ffffffff1690565b614a46565b856128bd565b9261563384836128bd565b81106157125781848f928d9594615649916128d8565b90615653916128d8565b60011c9485615661916128bd565b9461566b916128bd565b9a8161567692615c97565b5061567f6149a4565b9c615688612ae5565b6001600160a01b0316915163ffffffff16946156a26137df565b6040519182916156b5916020840161533d565b03601f19810182526156c7908261297b565b604051634fb1a07b60e01b81529e8f96879586956156eb9548949060048901615354565b03915a945f95f1918215610a6a576115fb9861570b936152675750615d29565b4892615df0565b61571f846109e1936128bd565b6328a7a8cb60e11b5f52600491909152602452604490565b60409194506157549060203d602011611df957611dec818361297b565b93906155f7565b61576f91503d805f833e61527a818361297b565b5f6155b9565b5f9198506157919060203d602011611b8a57611b7c818361297b565b979061555f565b94509998505050508087106157b357506115fb94959161570b565b6328a7a8cb60e11b5f52600487905260245260445ffd5b508715156154f9565b6157ed91955060203d602011611df957611dec818361297b565b935f6154cd565b61040061042092959493610440830196835260208301370152565b909260209060016158308460018060a01b03165f52600a60205260405f2090565b01549461585160405195869384936307fbe4d560e41b8552600485016157f4565b0381730b2b545a4e2fd65d29f2417f1b26698d71769a8f5af4918215610a6a575f926158e0575b508282146158db576001600160a01b03165f908152600c60205260409020905f5b600481106158a75750505090565b6158b4610fcb8285612d91565b801515806158d2575b6158ca5750600101615899565b935050505090565b508083146158bd565b505090565b6158fa91925060203d602011611df957611dec818361297b565b905f615878565b9260209161592360405194859384936307fbe4d560e41b8552600485016157f4565b0381730b2b545a4e2fd65d29f2417f1b26698d71769a8f5af4908115610a6a575f9161596a575b50818103615956575050565b6272c3e960e11b5f5260045260245260445ffd5b615983915060203d602011611df957611dec818361297b565b5f61594a565b9061599382613063565b808211615b6c57506159a86103e683856140d0565b906001600160a01b03821615615b4b576001600160a01b038316935f9261eeee8614801592908590615b4357506040516370a0823160e01b81523060048201526020816024818b5afa908115610a6a575f91615b24575b5094615a0c85848a615da1565b823b156104cb57604051639e6eec0560e01b815260048101929092526001600160a01b0387166024830152604482018590525f6064830181905260c0608484015260c4830181905260e060a484015260e4830181905291928391610104918391905af18015610a6a57615b10575b50615a86575b50505050565b615a8f916128d8565b6040516370a0823160e01b815230600482015292909190602090849060249082905afa928315610a6a575f93615aef575b50818303615ace5780615a80565b63884aa24960e01b5f526001600160a01b031660045260245260445260645ffd5b615b0991935060203d602011611df957611dec818361297b565b915f615ac0565b80610a5e5f615b1e9361297b565b5f615a7a565b615b3d915060203d602011611df957611dec818361297b565b5f6159ff565b945083615a0c565b63b61c181f60e01b5f5260048490526001600160a01b03831660245260445ffd5b6360ec3e7160e01b5f5260049190915260245260445ffd5b94939092916040519163331e807b60e11b6020840152615c0f83615c01602482016020815260ff85511660208201526020850151604082015260408501516060820152615bec60608601516080830190602080916001600160401b0381511684520151910152565b60e060808601519160c0808201520190614314565b03601f19810185528461297b565b7f0000000000000000000000000000000000000000000000000000000000000000615c39816120e1565b615c6f578615615c5b5795615c5560806115fb979801516152a2565b94615467565b631587a6a360e31b5f52600487905260245ffd5b5090919285615c83576115fb949550615165565b636ba3461960e11b5f52600486905260245ffd5b604051635ed004ff60e11b81526001600160a01b0392831660048201529093929091602090839060249082907f0000000000000000000000000000000000000000000000000000000000000000165afa8015610a6a576115fb925f91615d0a575b509384906001600160a01b0316615da1565b615d23915060203d602011611b8a57611b7c818361297b565b5f615cf8565b90615d355f8284615ebf565b15615d3e575050565b615d488183615f0c565b15615d80575f615d589183615f70565b15615d605750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b50635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b9190615dae828285615ebf565b15615db857505050565b615dc28184615f0c565b15615dd25790615d589183615f70565b635274afe760e01b5f9081526001600160a01b038416600452602490fd5b939493909290916001600160a01b03615e07612ae5565b169380840180941161083957602095610100615e8492615e256149a4565b956040519a8b998a988998633737453560e11b8a5260048a019560018060a01b03841687528e870152604086015260018060a01b0316606085015260018060a01b0316608084015260a083015260c08201528160e08201520190613da2565b03917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af18015610a6a576145a05750565b92916040519163095ea7b360e01b5f5260018060a01b031660045260245260205f60448180875af19260015f5114841615615efb575b50604052565b3d15903b151516909216915f615ef5565b60405163095ea7b360e01b5f9081526001600160a01b03909316600452602483905290929160209060448180875af19260015f5114841615615f4e5750604052565b60018492941516615f67573b15153d151616915f615ef5565b833d5f823e3d90fd5b92916040519163095ea7b360e01b5f5260018060a01b031660045260245260205f60448180875af19260015f5114841615615f4e575060405256fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a164736f6c634300081c000af0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00",
2302
+ "deployedBytecode": "0x6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063014dc2a61461035957806301ffc9a71461035457806303da64a81461034f57806306433b1b1461034a5780630ce92d4b1461034557806311cda415146103405780631d831d5c1461033b57806322c9cc0f14610336578063293c4999146103315780633a5de07d1461032c5780633bef5ad5146103275780633f827a5a146103225780633fafa1271461031d5780634035d3b1146103185780634ca0e69b146103135780634e415ad61461030e5780634f0677e1146103095780635417694914610304578063572b6c05146102ff5780635de4e83a146102fa5780636284386a146102f5578063663d00f6146102f05780636d9e384b146102eb5780636f4115a9146102e657806373cbdfc6146102e157806375451559146102dc5780637da0a877146102d75780637de6fba2146102d2578063802c8fa0146102cd57806388bc2ef3146102c857806392ee1ea7146102c35780639e6d7d43146102be578063af629bbb146102b9578063b1012368146102b4578063b71c1179146102af578063bf557aee146102aa578063c19d93fb146102a5578063c1ca1ec7146102a0578063c86719b71461029b578063cbb2adce14610296578063cdfceeba14610291578063cf26bafb1461028c578063d5f3948814610287578063d935222f14610282578063defbb6971461027d578063eac1f29e14610278578063f134654314610273578063f3aefd7b1461026e578063f434c91414610269578063f925558c14610264578063fc072f231461025f5763fe4b84df0361000e5761279a565b6126d3565b612698565b612654565b612551565b6124e8565b6124a3565b61245f565b612382565b61235b565b61233e565b612324565b612141565b6120eb565b611f6f565b611f44565b611ee1565b611bf8565b611bb4565b611a39565b611a12565b6119f5565b6119b1565b6118a6565b611787565b611743565b6116e8565b6116be565b611684565b6115fd565b61137c565b61129f565b611213565b6111bb565b611099565b61107c565b610f60565b610dd9565b610d90565b610d62565b610d47565b610d1d565b610d00565b610cbc565b610b6a565b610aac565b610a8a565b6105ff565b6105bb565b610555565b6104cf565b60203660031901126104cb576004356001600160401b0381116104cb57366023820112156104cb578060040135906001600160401b0382116104cb57602481019060243691606085020101116104cb575f5f5b83811061043e57508061042d57505f91905b5f925f925b8084106103ff57848034116103d457005b610018906103f96103f26103e66149a4565b6001600160a01b031690565b91346128d8565b906137f3565b9091929361042360019161041d8561041889878a61284d565b61348e565b906128bd565b94019291906103c3565b6104379034612891565b91906103be565b61046d61045461044f83878761284d565b612862565b6001600160a01b03165f908152600e6020526040902090565b604061047a83878761284d565b01351590816104a6575b50610492575b6001016103ac565b9061049e600191612883565b91905061048a565b905060226104b5825460401c90565b9101546001600160c01b0390911614155f610484565b5f80fd5b346104cb5760203660031901126104cb5760043563ffffffff60e01b81168091036104cb576314a66dd360e21b8114908115610544575b8115610533575b8115610522575b506040519015158152602090f35b6301ffc9a760e01b1490505f610514565b633d0d324560e21b8114915061050d565b6332af4eb960e21b81149150610506565b346104cb5760203660031901126104cb576004356001600160401b0381116104cb57366023820112156104cb5780600401356001600160401b0381116104cb573660246104c08302840101116104cb5760246100189201612a04565b5f9103126104cb57565b346104cb575f3660031901126104cb576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b60603660031901126104cb575f6106166004612862565b6001600160a01b0381165f908152600f602052604090206044359291906106419061300d565b61300d565b9061064f6020830151151590565b610a6f5761065d600461481f565b6011546106aa61066c82613b01565b6106746149a4565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169491168414916148b7565b6106b2613301565b90803b156104cb576040516303827e8d60e01b81526001600160a01b03841660048201526024810192909252604482018690525f90829060649082905afa8015610a6a57610a50575b50606082018051858115159182610a45575b505080610a3c575b80610a19575b6109f8578415948515938461098f575b868061093e575b6108f6575b50906107b9929161080c959685806108ec575b806108e1575b806108aa575b61087f575b156108785750515b8061083e575b61079b6107766024613484565b610788610781612af2565b9615158752565b5f602087015263ffffffff166040860152565b60608401526001600160a01b03165f908152600f6020526040902090565b815181546020840151604085015165ffffffffffff1990921660ff931515939093169290921791151560081b61ff00169190911760109190911b65ffffffff000016178155606090910151600190910155565b80341161081557005b6001600160a01b036108256149a4565b1690340334811161083957610018916137f3565b61286f565b61087382610854835f52600d60205260405f2090565b80546001600160a01b0319166001600160a01b03909216919091179055565b610769565b9050610763565b6108a561089584515f52600d60205260405f2090565b80546001600160a01b0319169055565b61075b565b506108ce6108c184515f52600d60205260405f2090565b546001600160a01b031690565b6001600160a01b03858116911614610756565b508183511415610750565b508251151561074a565b6001600160a01b0384165f908152600f6020526040902061080c96506107b9949392916109339161092c905b805460ff19169055565b84346141d3565b349550909192610737565b506001600160a01b0384165f908152600e60205260409020610962905b5460401c90565b6001600160a01b0385165f908152600e60205260409020602201546001600160c01b039091161415610732565b6109a46108c1835f52600d60205260405f2090565b6001600160a01b03811680151590816109e4575b506109c3575061072b565b63d6a305d960e01b5f5260048390526001600160a01b031660245260445b5ffd5b6001600160a01b038716141590505f6109b8565b5163aef430a360e01b5f526001600160a01b0390911660045260245260445ffd5b506001600160a01b0382165f908152600e6020526040902060220154151561071b565b50841515610715565b14159050855f61070d565b80610a5e5f610a649361297b565b806105b1565b5f6106fb565b6129f9565b6304bba81f60e41b5f526001600160a01b031660045260245ffd5b346104cb575f3660031901126104cb576020610aa4612ae5565b604051908152f35b346104cb575f3660031901126104cb576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b92919060408401906040855280518092526020606086019101915f5b818110610b1e57505060209150930152565b9091602060806001926001600160801b036060885163ffffffff815116845260ff8682015116868501528260408201511660408501520151166060820152019401910192919092610b0c565b346104cb5760203660031901126104cb5760043560115490805f52601560205260405f2091604051928391633a37eccb60e01b8352606483019060018060a01b037f0000000000000000000000000000000000000000000000000000000000000000166004850152602484015260606044840152815480915260848301915f5260205f20905f5b818110610c765750505090805f920381730b2b545a4e2fd65d29f2417f1b26698d71769a8f5af4918215610a6a575f92610c4e575b50610c39905f52600760205260405f2090565b5490610c4a60405192839283610af0565b0390f35b610c39919250610c6f903d805f833e610c67818361297b565b810190612b42565b9190610c26565b8254845260018084015460ff8116602087015260081c6001600160801b039081166040870152600285015416606086015287955060809094019360039093019201610bf1565b346104cb575f3660031901126104cb576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104cb575f3660031901126104cb57602060405162030d408152f35b346104cb5760203660031901126104cb576004355f526002602052602060405f2054604051908152f35b346104cb575f3660031901126104cb57602060405160018152f35b346104cb575f3660031901126104cb576020601154604051908152f35b6001600160a01b038116036104cb57565b346104cb5760403660031901126104cb57600435610dad81610d7f565b6024359060018060a01b03165f52600160205260405f20905f52602052602060405f2054604051908152f35b346104cb5760203660031901126104cb576004356001600160401b0381116104cb578060040190604060031982360301126104cb57610e173361384f565b15610e6f578135610e2781612b26565b600160ff821603610e4857610018610e426024840185612c21565b906139f4565b80610e556109e192612b26565b63e667c12560e01b5f5260ff166004526001602452604490565b63f957028d60e01b5f523360045260245ffd5b602081016020825282518091526040820191602060408360051b8301019401925f915b838310610eb457505050505090565b9091929394603f1982820301835285519060808101918051825260208101516020830152604081015192608060408401528351809152602060a084019401905f905b808210610f1c575050506060908101519101529460209081019493600101920190610ea5565b909194602060806001926001600160801b0360608a518051845260ff8682015116868501528260408201511660408501520151166060820152019601920190610ef6565b346104cb575f3660031901126104cb57601454610f7c81612b01565b90610f8a604051928361297b565b808252601f19610f9982612b01565b015f5b81811061104c5750505f5b818110610fbc5760405180610c4a8582610e82565b80610fd5610fcb600193612c56565b90549060031b1c90565b610fe7815f52600260205260405f2090565b54611026610ffd835f52601560205260405f2090565b61100f845f52600760205260405f2090565b5492611019612af2565b9485526020850152612c6e565b6040830152606082015261103a8286612d08565b526110458185612d08565b5001610fa7565b60209060405161105b8161290a565b5f81525f83820152606060408201525f606082015282828701015201610f9c565b346104cb575f3660031901126104cb576020600454604051908152f35b346104cb5760403660031901126104cb575f516020615fac5f395f51905f52546004356024356001600160401b036110e9604085901c60ff16156110dc565b1590565b946001600160401b031690565b16801590816111b3575b60011490816111a9575b1590816111a0575b50611191576111209183611117612d1c565b61118457613aa5565b61112657005b61115060ff60401b195f516020615fac5f395f51905f5254165f516020615fac5f395f51905f5255565b604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29080602081015b0390a1005b61118c612d49565b613aa5565b63f92ee8a960e01b5f5260045ffd5b9050155f611105565b303b1591506110fd565b8491506110f3565b346104cb5760203660031901126104cb5760206004356111da81610d7f565b6040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b039081169216919091148152f35b346104cb5760203660031901126104cb57610c4a6004355f604080516112388161292a565b8281528260208201520152805f52600260205260405f205490805f52600760205260405f2054906040519261126c8461292a565b83526020830152604082015260405191829182919091604080606083019480518452602081015160208501520151910152565b346104cb5760203660031901126104cb5760043564ffffffffff8116908181036104cb576112cb613abb565b6112df6011546112da81613b01565b613bbf565b6212750042018042116108395782151580611372575b61135457506113247f455efa76af2a8686dc0dd3041bda89ece5ba4691277d525e2161003bbca8b24592600855565b61132c6149a4565b6040805164ffffffffff90931683526001600160a01b0390911660208301528190810161117f565b630111a46b60e21b5f5264ffffffffff90911660045260245260445ffd5b50808311156112f5565b60203660031901126104cb576004356001600160401b0381116104cb57806004019060c060031982360301126104cb576113b86110d83361384f565b6115dd57600160ff6113c984612c17565b16036115d15760248101356001600160a01b03165f818152600a6020526040902061001893610e4293909260a492606483019061140582612d87565b81546001600160401b03908116911681101561155957506114a38260019261146d6114507fc69d3412489554fb7820c4c2784cb644b6c79bfc117444b93977d3d33a9b8eac96612d87565b825467ffffffffffffffff19166001600160401b03909116178255565b608487013593849101557f27ae5ba08d7291c96c8cbddcc148bf48a6d68c7974b94356f53754ef6171d75783036114f257612d87565b926114e76114af6149a4565b604080516001600160401b03909716875260208701949094526001600160a01b03908116938601939093529116929081906060820190565b0390a25b0190612c21565b6115548361154e61152561151f6115198a60018060a01b03165f52600b60205260405f2090565b546128af565b60031690565b6001600160a01b0389165f908152600b60209081526040808320849055600c9091529020612d91565b90612da0565b612d87565b90506115857f2eb8abf720d2b9cf9e357f7a24a2bee502a7bdba38de0de230e10c33dafbd3eb92612d87565b926115c96115916149a4565b604080516001600160401b0397881681529490961660208501526001600160a01b039081169584019590955293169281906060820190565b0390a26114eb565b6109e1610e5583612c17565b6109e16115e9336103e6565b63f957028d60e01b5f52600452602490565b565b346104cb5760203660031901126104cb5760043561161a81610d7f565b5f602060405161162981612945565b828152015260018060a01b03165f52600a602052610c4a60405f2060016040519161165383612945565b80546001600160401b0316808452910154602092830190815260408051928352905192820192909252918291820190565b346104cb575f3660031901126104cb5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346104cb5760203660031901126104cb576004355f526007602052602060405f2054604051908152f35b346104cb5760203660031901126104cb576004356001600160401b0381116104cb57366023820112156104cb5780600401356001600160401b0381116104cb573660248260051b840101116104cb5760246100189201612e27565b346104cb575f3660031901126104cb576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104cb5760203660031901126104cb576004356117a481610d7f565b6117ac612fe9565b5060018060a01b03165f52600f602052610c4a60405f206001604051916117d28361290a565b63ffffffff815460ff81161515855260ff8160081c161515602086015260101c1660408401520154606082015260405191829182919091606080608083019480511515845260208101511515602085015263ffffffff60408201511660408501520151910152565b81516001600160401b031681526020808301516001600160c01b031690820152604080830151908201526060918201518051610480830194935f9084015b60208210611890575050506020610460910151910152565b6020806001928551815201930191019091611878565b346104cb5760203660031901126104cb576004356118c381610d7f565b604051906118d08261290a565b5f82525f60208301525f60408301526040516118eb81612945565b6060610400936040516118fe868261297b565b8536823783525f6020840152015260018060a01b03165f52600e60205260405f20906040519061192d8261290a565b82546001600160401b038116835260401c6020830152600183015460408301526040519061195a82612945565b60405190600285015f835b6020821061199b575050509381611981610c4a9660229461297b565b83520154602082015260608201526040519182918261183a565b6001602081928554815201930191019091611965565b346104cb575f3660031901126104cb576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104cb575f3660031901126104cb576020604051620493e08152f35b346104cb5760203660031901126104cb576020610aa4600435611a3481610d7f565b613063565b346104cb5760a03660031901126104cb57606435604435602435600435611a5f84610d7f565b608435928115611ba5578215611b915760115460405163ea78803f60e01b8152600481018290526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610a6a575f91611b62575b506001600160a01b0316908115611b5057506001600160a01b0386165f908152600f60205260409020611aff906110d8905b5460ff1690565b611b34576100189591611b2784611b2e93611b18613abb565b611b206149a4565b3091613d15565b8284613e2a565b91613f02565b63027edf0360e11b5f526001600160a01b03861660045260245ffd5b6309794d0160e11b5f5260045260245ffd5b611b84915060203d602011611b8a575b611b7c818361297b565b8101906130d1565b5f611ac6565b503d611b72565b63b2fe07f160e01b5f52600483905260245ffd5b632bcf4c5760e21b5f5260045ffd5b346104cb575f3660031901126104cb576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b60203660031901126104cb57600435611c1081610d7f565b6001600160a01b0381165f908152600f60205260409020611c309061300d565b6020810151611ec5576001600160a01b0382165f908152600e60205260409020600181015490811580611e9f575b611e42575050604051634211591560e01b8152916020836004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa928315610a6a575f93611e21575b50823410611e095782611cc861001894346128d8565b907f0000000000000000000000000000000000000000000000000000000000000000611cf38161403b565b5f91906001600160a01b031680151580611e00575b611d41575b50501580611d38575b611d21575b506141d3565b611d3290611d2d6149a4565b61413c565b5f611d1b565b50801515611d16565b611db3916020918580611d526149a4565b936040519687958694859363fef4325760e01b855260048501916101209391835261eeee6020840152604083015260018060a01b031660608201525f608082015260e060a08201525f60e082015261010060c08201525f6101008201520190565b03925af19081611dd3575b50611dcb575b5f80611d0d565b506001611dc4565b611df49060203d602011611df9575b611dec818361297b565b8101906130e6565b611dbe565b503d611de2565b50831515611d08565b630ee99a4760e01b5f5234600452602483905260445ffd5b611e3b91935060203d602011611df957611dec818361297b565b915f611cb2565b611e9b81611e57602287940154915460401c90565b60405163096c1e2160e21b81526001600160a01b039094166004850152602484019490945260448301526001600160c01b0390921660648201529081906084820190565b0390fd5b506022810154611ebf611eb3835460401c90565b6001600160c01b031690565b14611c5e565b6304bba81f60e41b5f526001600160a01b03821660045260245ffd5b346104cb5760203660031901126104cb57600435611efe81610d7f565b60018060a01b03165f52600f6020526020600160405f2001541515604051908152f35b634e487b7160e01b5f52602160045260245ffd5b60041115611f3f57565b611f21565b346104cb575f3660031901126104cb57611f5c6130f5565b6040516004821015611f3f576020918152f35b5f3660031901126104cb57611f82613abb565b611f97600160125401806012554260801b1790565b60115490611fa3613301565b60405163f1d0f27760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f0000000000000000000000000000000000000000000000000000000000000000166024820152604481019390935260648301526001608483015260a482018190525f8260c481730b2b545a4e2fd65d29f2417f1b26698d71769a8f5af4908115610a6a57610018925f9261209b575b507f77bd1556265e71d247f11bb5886efda7fd5e5b21e6a4d2c871e8e6b49ac92f3d9061207b6149a4565b604080519283526001600160a01b0391909116602083015290a1346143eb565b7f77bd1556265e71d247f11bb5886efda7fd5e5b21e6a4d2c871e8e6b49ac92f3d9192506120da903d805f833e6120d2818361297b565b81019061329c565b9190612050565b60021115611f3f57565b346104cb575f3660031901126104cb577f00000000000000000000000000000000000000000000000000000000000000006040516002821015611f3f576020918152f35b6104c09060031901126104cb57600490565b346104cb5761214f3661212f565b803590606081013561216083610d7f565b608082013560408301359260a0810135602082013560c08301640100000000821015612311576001600160a01b0388165f908152600960209081526040808320600886901c8452909152902054600160ff84161b166122f05791866122e38361228f86828d61228a6100189f9a838f8f6122eb9f9e8d917fa8d6760b4e1a89f513fc87990f66d051c419d735fb8191104014e0529d9ae2d39f936122388f939561221d6122569760018060a01b03165f52600960205260405f2090565b8160081c5f52602052600160ff60405f2092161b8154179055565b91608093916040519384526020840152604083015260608201522090565b848161228484612277839960018060a01b03165f52600160205260405f2090565b905f5260205260405f2090565b5561580f565b615901565b61229886612862565b936122a16149a4565b604080519586526001600160a01b03968716602087015285018b9052606085018a9052608085019290925260a084015290921660c082015290819060e0820190565b0390a1612862565b6144ca565b632939af3b60e21b5f526001600160a01b038816600452602482905260445ffd5b506309f6605160e41b5f5260045260245ffd5b346104cb575f3660031901126104cb576020610aa4613301565b346104cb575f3660031901126104cb576020600354604051908152f35b346104cb575f3660031901126104cb575f546040516001600160a01b039091168152602090f35b346104cb576100186123933661212f565b60608101356123a182612862565b916122eb6080820135916123cc60408201359560a0830135602084013590888760c08701948a614605565b60016123da61045483612862565b016123e68482546128d8565b90556001600160a01b0385166123fb82612862565b7fe33107c4043e574d8a4da32dac235e219f8f34a0e45e473ea6643a6145f252856124576124276149a4565b60408051898152602081018b90526001600160a01b03928316918101919091529381169416929081906060820190565b0390a3612862565b346104cb575f3660031901126104cb576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104cb5760203660031901126104cb576004356124c081610d7f565b60018060a01b03165f526006602052602060405f2054604051908152f35b801515036104cb57565b346104cb5760203660031901126104cb5761250d600435612508816124de565b6133b2565b6040518091602082016020835281518091526020604084019201905f5b818110612538575050500390f35b825184528594506020938401939092019160010161252a565b346104cb5760203660031901126104cb5760043561256e81610d7f565b6001600160a01b038116908115612641576125876149a4565b6001600160a01b0381165f81815260066020526040902054909290918215612626576001600160a01b03165f9081526006602052604081207ffbcfe54e4aa35e7772f25a5f52fedccde889e4fc5031ad9826b9bf6b890baa599392612602928492556125fd6125f8836004546128d8565b600455565b6137f3565b61260a6149a4565b604080519283526001600160a01b0391909116602083015290a3005b631733ad2160e21b5f526001600160a01b031660045260245ffd5b63b2fe07f160e01b5f525f60045260245ffd5b346104cb575f3660031901126104cb576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104cb5760203660031901126104cb576004356126b581610d7f565b60018060a01b03165f526005602052602060405f2054604051908152f35b346104cb5760203660031901126104cb576004356126f081610d7f565b6001600160a01b038116908115612641576127096149a4565b6001600160a01b0381165f8181526005602052604090205490929091821561277f576001600160a01b03165f9081526005602052604081207f1e70ff8443e61b2a2555b5ad56645461a75dd29591b5c4a6281f70a6d395db459392612602928492556125fd61277a836003546128d8565b600355565b63578a51dd60e11b5f526001600160a01b031660045260245ffd5b346104cb5760203660031901126104cb575f516020615fac5f395f51905f52546004356001600160401b036127de604084901c60ff1615936001600160401b031690565b1680159081612831575b6001149081612827575b15908161281e575b5061119157611120908261280c612d1c565b15613a7557612819612d49565b613a75565b9050155f6127fa565b303b1591506127f2565b8391506127e8565b634e487b7160e01b5f52603260045260245ffd5b919081101561285d576060020190565b612839565b3561286c81610d7f565b90565b634e487b7160e01b5f52601160045260245ffd5b5f1981146108395760010190565b811561289b570490565b634e487b7160e01b5f52601260045260245ffd5b906001820180921161083957565b9190820180921161083957565b5f1981019190821161083957565b9190820391821161083957565b919081101561285d576104c0020190565b634e487b7160e01b5f52604160045260245ffd5b608081019081106001600160401b0382111761292557604052565b6128f6565b606081019081106001600160401b0382111761292557604052565b604081019081106001600160401b0382111761292557604052565b60a081019081106001600160401b0382111761292557604052565b90601f801991011681019081106001600160401b0382111761292557604052565b6104009092919260c0806104c083019580356129b781610d7f565b60018060a01b031684526020810135602085015260408101356040850152606081013560608501526080810135608085015260a081013560a085015201910137565b6040513d5f823e3d90fd5b5f5b828110612a1257505050565b612a1d8184846128e5565b90303b156104cb57612a465f600193604051809381926365d956e760e11b83526004830161299c565b038183305af19081612ad1575b50612acc57612a6661044f8286866128e5565b7fc1054f794d197971822697afa7ff4777cac6fb7a512e4bfec63aebaab98187b66020612a948488886128e5565b013591612a9f6149a4565b604080519485526001600160a01b0391909116602085015260a086901b8690039190911692a25b01612a06565b612ac6565b80610a5e5f612adf9361297b565b5f612a53565b6013548061286c57503090565b604051906115fb60808361297b565b6001600160401b0381116129255760051b60200190565b63ffffffff8116036104cb57565b60ff8116036104cb57565b6001600160801b038116036104cb57565b6020818303126104cb578051906001600160401b0382116104cb570181601f820112156104cb57805190612b7582612b01565b92612b83604051948561297b565b82845260208085019360071b830101918183116104cb57602001925b828410612bad575050505090565b6080848303126104cb576020608091604051612bc88161290a565b8651612bd381612b18565b815282870151612be281612b26565b838201526040870151612bf481612b31565b60408201526060870151612c0781612b31565b6060820152815201930192612b9f565b3561286c81612b26565b903590601e19813603018212156104cb57018035906001600160401b0382116104cb57602001918160051b360383136104cb57565b60145481101561285d5760145f5260205f2001905f90565b908154612c7a81612b01565b92612c88604051948561297b565b81845260208401905f5260205f205f915b838310612ca65750505050565b60036020600192604051612cb98161290a565b855481526001600160801b038587015460ff81168584015260081c1660408201526001600160801b036002870154166060820152815201920192019190612c99565b80511561285d5760200190565b805182101561285d5760209160051b010190565b60016001600160401b03195f516020615fac5f395f51905f525416175f516020615fac5f395f51905f5255565b600160401b60ff60401b195f516020615fac5f395f51905f525416175f516020615fac5f395f51905f5255565b6001600160401b038116036104cb57565b3561286c81612d76565b600482101561285d5701905f90565b91612db99183549060031b91821b915f19901b19161790565b9055565b919081101561285d5760051b0190565b604080825281018390529293929160608301905f5b818110612dfd575050602091509360018060a01b0316910152565b90916020806001928635612e1081610d7f565b848060a01b03168152019401910192919092612de2565b9190601154612e3581613b01565b612e3d6149a4565b916001600160a01b03808416908316141580612f54575b612f1d575050505f5b818110612ea457507f8021bce60b20a9afb57085869a3552e0ee5b272b868df894fb30c5e90e74c0729192612e9f612e936149a4565b60405193849384612dcd565b0390a1565b80612eb26001928487612dbd565b35612ebc81610d7f565b828060a01b03165f52600f602052612edb60405f2060ff198154169055565b612f17612f08612eef61044f84878a612dbd565b6001600160a01b03165f908152600f6020526040902090565b805461ff001916610100179055565b01612e5d565b604051631326f75560e11b81526001600160a01b039283166004820152929091166024830152604482015260236064820152608490fd5b50604051631a45b42760e11b815260208180612f77602386888a60048601613b87565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610a6a575f91612fba575b5015612e54565b612fdc915060203d602011612fe2575b612fd4818361297b565b810190613b72565b5f612fb3565b503d612fca565b60405190612ff68261290a565b5f6060838281528260208201528260408201520152565b9060405161301a8161290a565b60606001829463ffffffff815460ff81161515865260ff8160081c161515602087015260101c1660408501520154910152565b6040519061040061305e818461297b565b368337565b61306d3082613ca8565b9060018060a01b031690815f52600e602052600160405f20015481039081116108395761eeee81921461309e575090565b9050600354808211156130cb57810390811161083957600454808211156130cb5781039081116108395790565b50505f90565b908160209103126104cb575161286c81610d7f565b908160209103126104cb575190565b600854801561312857621274ff19810181811161083957421061312257421061311d57600390565b600290565b50600190565b505f90565b81601f820112156104cb5780519061314482612b01565b92613152604051948561297b565b82845260208085019360051b830101918183116104cb5760208101935b83851061317e57505050505090565b84516001600160401b0381116104cb5782016080818503601f1901126104cb57604051906131ab8261290a565b602081015182526040810151602083015260608101516001600160401b0381116104cb5760209082010185601f820112156104cb5780516131eb81612b01565b916131f9604051938461297b565b81835260208084019260071b820101908882116104cb57602001915b81831061323b57505050604083015260800151606082015281526020948501940161316f565b6080838a03126104cb5760206080916040516132568161290a565b855181528286015161326781612b26565b83820152604086015161327981612b31565b6040820152606086015161328c81612b31565b6060820152815201920191613215565b6020818303126104cb578051906001600160401b0382116104cb57016040818303126104cb57604051916132cf83612945565b81516132da81612b26565b835260208201516001600160401b0381116104cb576132f9920161312d565b602082015290565b6001461461333d5761a4b146146133385762aa36a746146133315762066eee461461332a575f90565b62aa36a790565b62066eee90565b600190565b61a4b190565b6040519061335260208361297b565b5f808352366020840137565b6040805190919061336f838261297b565b6001815291601f1901366020840137565b9061338a82612b01565b613397604051918261297b565b82815280926133a8601f1991612b01565b0190602036910137565b906133bb613301565b8015159283613479575b156134535782613433575b601454831561342a576133ea6133e5826128af565b613380565b935f5b82811061340a57506133fd575050565b6134079084612d08565b52565b80613419610fcb600193612c56565b6134238289612d08565b52016133ed565b6133ea81613380565b915061344d6110d8611af8845f52601060205260405f2090565b916133d0565b9091156134705761346261335e565b9061346c82612cfb565b5290565b5061286c613343565b4682141593506133c5565b3561286c81612b18565b91905f9261349b81612862565b906040810135926134bf61063c8460018060a01b03165f52600f60205260405f2090565b936134cd6020860151151590565b6137a8576134da8361481f565b6011546134e961066c82613b01565b6134f1613301565b90803b156104cb576040516303827e8d60e01b81526001600160a01b03871660048201526024810192909252604482018390525f90829060649082905afa8015610a6a57613794575b5060608501918251828115159182613789575b505080613780575b8061375d575b61373c57811590811596876136d4575b8280613686575b613638575b505061077660208796946107b9969461079b94896115fb9b9061362e575b80613623575b806135f9575b6135de575b156135d6575051935b846135bb575b01613484565b6135d186610854875f52600d60205260405f2090565b6135b5565b9050936135af565b6135f461089584515f52600d60205260405f2090565b6135a6565b506136106108c184515f52600d60205260405f2090565b6001600160a01b038981169116146135a1565b50818351141561359b565b5082511515613595565b61079b92995086946107b99694610776936136776020946136706109226115fb9e9d60018060a01b03165f52600f60205260405f2090565b89836141d3565b9b945094965094969750613577565b506001600160a01b0387165f908152600e602052604090206136a79061095b565b6001600160a01b0388165f908152600e60205260409020602201546001600160c01b039091161415613572565b6136e96108c1855f52600d60205260405f2090565b6001600160a01b0381168015159081613728575b50613708575061356b565b63d6a305d960e01b5f5260048590526001600160a01b031660245260445ffd5b6001600160a01b038a16141590505f6136fd565b825163aef430a360e01b5f526001600160a01b03861660045260245260445ffd5b506001600160a01b0385165f908152600e6020526040902060220154151561355b565b50811515613555565b14159050825f61354d565b80610a5e5f6137a29361297b565b5f61353a565b6304bba81f60e41b5f526001600160a01b03841660045260245ffd5b6001600160401b03811161292557601f01601f191660200190565b604051906137ee60208361297b565b5f8252565b6001600160a01b03165f80808085855af13d1561384a573d613814816137c4565b90613822604051928361297b565b81525f60203d92013e5b15613835575050565b630590bd2d60e41b5f5260045260245260445ffd5b61382c565b61385a6103e6612ae5565b7f0000000000000000000000000000000000000000000000000000000000000000613884816120e1565b156138c3576138b4906001600160a01b0390811673111100000000000000000000000000000000111101166103e6565b6001600160a01b039091161490565b6040516373c6754960e11b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610a6a575f916139d5575b506001600160a01b0390811692168214918261392b57505090565b60405163ab5d894360e01b8152919250602090829060049082905afa908115610a6a576004916020915f916139b8575b50604051634032458160e11b815292839182906001600160a01b03165afa908115610a6a575f91613999575b506001600160a01b0391821691161490565b6139b2915060203d602011611b8a57611b7c818361297b565b5f613987565b6139cf9150823d8411611b8a57611b7c818361297b565b5f61395b565b6139ee915060203d602011611b8a57611b7c818361297b565b5f613910565b90915f5b83811015613a6f578060051b830135607e19843603018112156104cb578301908135606083013592602081013590604081013590601e19813603018212156104cb5701908135916001600160401b0383116104cb57602001908260071b360382136104cb57600195613a6994614b92565b016139f8565b50915050565b6011555f6013556001600160a01b03613a8c6149a4565b166bffffffffffffffffffffffff60a01b5f5416175f55565b6011556013556001600160a01b03613a8c6149a4565b613ac36130f5565b600481101580611f3f57600382148015613af5575b613ae0575050565b62a7958f60e81b5f52611f3f5760045260245ffd5b50505f60028214613ad8565b6040516331a9108f60e11b815260048101919091526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610a6a575f91613b59575090565b61286c915060203d602011611b8a57611b7c818361297b565b908160209103126104cb575161286c816124de565b6001600160a01b039182168152911660208201526040810191909152606081019190915260016080820181905260a082015260c00190565b613bc76149a4565b916001600160a01b03808416908316141580613c23575b613be757505050565b604051631326f75560e11b81526001600160a01b0392831660048201529290911660248084019190915260448301919091526064820152608490fd5b50604051631a45b42760e11b815260208180613c46602486888a60048601613b87565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610a6a575f91613c89575b5015613bde565b613ca2915060203d602011612fe257612fd4818361297b565b5f613c82565b6001600160a01b03169061eeee8214613d0f576040516370a0823160e01b81526001600160a01b03909116600482015290602090829060249082905afa908115610a6a575f91613cf6575090565b61286c915060203d602011611df957611dec818361297b565b90503190565b6040516323b872dd60e01b5f9081526001600160a01b039384166004529290931660245260449390935260209060648180865af160015f5114811615613d83575b6040919091525f60605215613d685750565b635274afe760e01b5f526001600160a01b031660045260245ffd5b6001811516613d99573d15833b15151616613d56565b503d5f823e3d90fd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6001600160a01b0391821681526020810192909252604082019290925291811660608301526080820192909252911660a082015260e060c0820181905261286c92910190613da2565b15613e1657565b634e487b7160e01b5f52600160045260245ffd5b601154919392613e3f6103e6808088876140d0565b6001600160a01b03811615613ee15790602091865f613e5e3083613ca8565b95613e8a613e6a6137df565b6040516313da831760e01b8152998a978896879530938460048901613dc6565b03925af1908115610a6a576115fb925f92613ebc575b50613eb690613eb183963090613ca8565b6128d8565b14613e0f565b613eb6919250613eda9060203d602011611df957611dec818361297b565b9190613ea0565b63b61c181f60e01b5f5260048490526001600160a01b03861660245260445ffd5b9193906001600160801b038511614028576001600160801b03831161401557613f468285878691608093916040519384526020840152604083015260608201522090565b6001600160a01b0382165f908152600e60205260409020909590936002850193613f708886614ce3565b600186019283549681880180981161083957613fb96022613fbf927fc92fa1150c24ee5470c272112539aab52450a5e05573e7ea7bdfb98829b893219a614010985501546128ca565b96614dcf565b92613fc86149a4565b604080519b8c5260208c0198909852968a01939093526060890192909252608088019190915260a08701526001600160a01b0392831660c087015291169390819060e0820190565b0390a3565b826335bf001160e11b5f5260045260245ffd5b846335bf001160e11b5f5260045260245ffd5b604051630862026560e41b8152600481019190915261eeee60248201526020816044817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610a6a575f9161409b575090565b90506020813d6020116140c8575b816140b66020938361297b565b810103126104cb575161286c81610d7f565b3d91506140a9565b604051630862026560e41b815260048101919091526001600160a01b039091166024820152602081806044810103817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610a6a575f9161409b575090565b60018060a01b031690815f52600560205260405f20805490828201809211610839575560035490808201809211610839577f2a3798c6648c17f70b43a33a8378cec543367ac1543e62aa7b392660569717779160035561419a6149a4565b604080519283526001600160a01b0391909116602083015290a2565b6001600160401b03166001600160401b0381146108395760010190565b906060830151156142f4576141e6613abb565b6001600160a01b0381165f908152600e602052604090209060228201549081156142ed576115fb9460018401915f8354935561428461423461422f87546001600160401b031690565b6141b6565b865467ffffffffffffffff19166001600160401b0382161787559461427f61425e60028901614dcf565b88546001600160401b0316604084901b67ffffffffffffffff191617909855565b6128ca565b9586867f47c5615513b0f669da2dd7e3362a34610ca2695d0a0e2da2160cee952eab203c6142e56142b36149a4565b604080519586526001600160401b038b1660208701526001600160a01b03918216908601528616939081906060820190565b0390a3614f41565b5050505050565b63027edf0360e11b5f9081526001600160a01b0391909116600452602490fd5b9080602083519182815201916020808360051b8301019401925f915b83831061433f57505050505090565b9091929394601f1982820301835285519060808101918051825260208101516020830152604081015192608060408401528351809152602060a084019401905f905b8082106143a7575050506060908101519101529460209081019493600101920190614330565b909194602060806001926001600160801b0360608a518051845260ff8682015116868501528260408201511660408501520151166060820152019601920190614381565b919091604051634ca0e69b60e01b602082015261443a8161442c602482016020815260ff885116602082015260606020890151916040808201520190614314565b03601f19810183528261297b565b614442612fe9565b907f000000000000000000000000000000000000000000000000000000000000000061446d816120e1565b6144a257821561448e5761448860206115fb959601516152a2565b926153a4565b631587a6a360e31b5f52600483905260245ffd5b90918094506144b6576115fb92935061511d565b636ba3461960e11b5f52600484905260245ffd5b6011548281936145dc575b5050604051632eec7b5560e11b8152600481018390529290506020836024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610a6a57614586946020945f936145bb575b506040516363fdc96f60e11b8152600481019490945260248401919091526001600160a01b0316604483015260a060648301525f60a4830181905260848301819052919384928391829060c4820190565b03926001600160a01b03165af18015610a6a576145a05750565b6145b89060203d602011611df957611dec818361297b565b50565b5f9193506145d590863d8811611b8a57611b7c818361297b565b9290614535565b6145e592615989565b5f81816144d5565b6001600160c01b039081165f19019190821161083957565b9290969594939164010000000085101561480b576146216130f5565b61462a81611f35565b600381141590816147f6575b50806147c7575b6147ab576001600160a01b0388165f908152600e602052604090206146619061095b565b6001600160c01b038116151590869082614793575b505061477257604080516001600160a01b038a16602082019081526146c2926146bc92906146a7908290810161442c565b5190206bffffffffffffffffffffffff191690565b60601c90565b6001600160a01b0381165f90815260096020908152604080832060088a901c8452909152902054600160ff88161b16614751579061472c60026147266115fb9a9b6104548a61221d61474b9a999860018060a01b03165f52600960205260405f2090565b01614dcf565b9491608093916040519384526020840152604083015260608201522090565b90615901565b632939af3b60e21b5f526001600160a01b038916600452602486905260445ffd5b632939af3b60e21b5f526001600160a01b038816600452602485905260445ffd5b6147a2919250611eb3906145ed565b1015855f614676565b6304bba81f60e41b5f526001600160a01b03881660045260245ffd5b506001600160a01b0388165f908152600f602052604090206147f1906110d8905460081c60ff1690565b61463d565b6002915061480381611f35565b14155f614636565b6309f6605160e41b5f52600485905260245ffd5b61eeee813561482d81610d7f565b6001600160a01b0316146148865760200162030d4063ffffffff823561485281612b18565b161061485b5750565b6148676109e191613484565b630555d0f160e41b5f5263ffffffff1660045262030d40602452604490565b6040013561eeee811415806148ae575b61489d5750565b62e80c7760e31b5f5260045260245ffd5b50801515614896565b90916149a0576148c56149a4565b916001600160a01b0380841690831614158061491c575b6148e557505050565b604051631326f75560e11b81526001600160a01b039283166004820152929091166024830152604482015260206064820152608490fd5b50604051631a45b42760e11b81526020818061493e8386888a60048601613b87565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610a6a575f91614981575b50156148dc565b61499a915060203d602011612fe257612fd4818361297b565b5f61497a565b5050565b6014361015806149cb575b156149c75760131936013681116104cb573560601c90565b3390565b50337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146149af565b601454600160401b811015612925576001810160145560145481101561285d5760145f527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec0155565b8181029291811591840414171561083957565b8054905f815581614a68575050565b81600302916003830403610839575f5260205f20908101905b818110614a8c575050565b6003905f81555f60018201555f600282015501614a81565b919081101561285d5760071b0190565b805482101561285d575f52600360205f20910201905f90565b3561286c81612b31565b8054600160401b81101561292557614af491600182018155614ab4565b614b7f576002614b6260606115fb9480358555600185016020820135614b1981612b26565b815460ff70ffffffffffffffffffffffffffffffff006040860135614b3d81612b31565b60081b1692169070ffffffffffffffffffffffffffffffffff19161717905501614acd565b9101906001600160801b03166001600160801b0319825416179055565b634e487b7160e01b5f525f60045260245ffd5b90919392934682148015614ccc575b6142ed57614bb7825f52600760205260405f2090565b548311156142ed57614c2e92614bd5835f52600760205260405f2090565b55614be8825f52600260205260405f2090565b55614c016110d8611af8835f52601060205260405f2090565b614c9c575b614c20614c1b825f52601560205260405f2090565b614a59565b5f52601560205260405f2090565b905f5b818110614c3e5750505050565b80614c55614c4f6001938588614aa4565b85614ad7565b614c60818487614aa4565b35614c7c6108c1848060a01b03925f52600d60205260405f2090565b1680614c8a575b5001614c31565b614c948286614ab4565b50555f614c83565b614cbe614cb1825f52601060205260405f2090565b805460ff19166001179055565b614cc7816149fd565b614c06565b508115614ba1565b602082101561285d5701905f90565b916020830190614cf38254612883565b92838355839463ffffffff94858111614d7457505f95915b60208710614d2c57845463515447c160e01b5f52600452602486905260445ffd5b600180841614614d6157614d43610fcb8884614cd4565b5f526020526001614d5860405f209360011c90565b96019591614d0b565b93506115fb945061154e92959150614cd4565b63515447c160e01b5f52600452602485905260445ffd5b90602081101561285d5760051b0190565b61042081019392915f825b60208210614db9575050506104000152565b6020806001928551815201930191019091614da7565b6020810154908115614e6d57614de361304d565b905f5b60208110614e3d575050604051634a490c2560e01b81529160209183918291614e13919060048401614d9c565b0381730b2b545a4e2fd65d29f2417f1b26698d71769a8f5af4908115610a6a575f91613cf6575090565b80600180921b8516614e50575b01614de6565b614e5d610fcb8285614cd4565b614e678286614d8b565b52614e4a565b50507f27ae5ba08d7291c96c8cbddcc148bf48a6d68c7974b94356f53754ef6171d75790565b6020818303126104cb578051906001600160401b0382116104cb57018082039160c083126104cb576040805193614ec985612960565b8351614ed481612b26565b8552602084015160208601528184015182860152605f1901126104cb57604051614efd81612945565b6060830151614f0b81612d76565b815260808301516020820152606084015260a08201516001600160401b0381116104cb57614f39920161312d565b608082015290565b949091939550614f5c600160125401806012554260801b1790565b906001600160401b0360115497614f71613301565b6060880151604051634cba057b60e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f0000000000000000000000000000000000000000000000000000000000000000166024820152604481019b909b5260648b019190915260848a015260a489018690521660c488015260e487015260016101048701526101248601525f8561014481730b2b545a4e2fd65d29f2417f1b26698d71769a8f5af4938415610a6a576115fb955f95615044575b50615b84565b6150619195503d805f833e615059818361297b565b810190614e93565b935f61503e565b6020818303126104cb578051906001600160401b0382116104cb570181601f820112156104cb5780519061509b826137c4565b926150a9604051948561297b565b828452602083830101116104cb57815f9260208093018386015e8301015290565b6001600160a01b03918216815291166020820152604081019190915260806060820181905261286c92910190613da2565b6001600160a01b03909116815260406020820181905261286c92910190613da2565b615151915060209061512d612ae5565b6040516349460b4d60e11b815293849283926001600160a01b0316600484016150fb565b03815f60645af18015610a6a576145a05750565b9190915f906151756103e6612ae5565b6001600160a01b0382169590919061eeee87141580615299575b1561528757826151c66151b88860605f9501956151b2875160018060a01b031690565b90615c97565b93516001600160a01b031690565b6151ec6151d16137df565b604051637b3a3c8b60e01b8152998a948594600486016150ca565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1908115610a6a576152549660209661523893615267575b50615d29565b6040518095819482936349460b4d60e11b8452600484016150fb565b039160645af18015610a6a576145a05750565b615282903d805f833e61527a818361297b565b810190615068565b615232565b50509050615254935060209290615238565b5085151561518f565b5f9080515f915b8183106152dc57505050620124f8810290808204620124f8149015171561083957620493e00180620493e0116108395790565b90919260406152eb8584612d08565b510151518101809111610839579260010191906152a9565b6001600160a01b03918216815291811660208301529091166040820152606081019190915260a06080820181905261286c92910190613da2565b60409061286c939281528160208201520190613da2565b6001600160a01b03918216815291811660208301529091166040820152606081019190915263ffffffff91909116608082015260a081019190915260e060c0820181905261286c92910190613da2565b815160405163a66b327d60e01b815260048101919091524860248201529094939192506020816044816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610a6a575f91615448575b506154124883614a46565b8101808211610839578086106154315750936115fb93945f4892615df0565b6328a7a8cb60e11b5f52600486905260245260445ffd5b615461915060203d602011611df957611dec818361297b565b5f615407565b835160405163a66b327d60e01b815260048101919091524860248201529095939490915f916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016602085604481845afa948515610a6a575f956157d3575b506154e16154db4889614a46565b866128bd565b6001600160a01b038a16939061eeee851415806157ca575b1561579857604051635ed004ff60e11b81526001600160a01b038c8116600483015290947f000000000000000000000000000000000000000000000000000000000000000090911693929190602086602481885afa958615610a6a578d8b915f98615775575b505f9061556d6103e6612ae5565b906155966155796137df565b604051635063b54b60e11b81529586948594309060048701615303565b03816001600160a01b038b165afa948515610a6a576155e5956020925f9161575b575b505160405163a66b327d60e01b8152600481019190915248602482015295869190829081906044820190565b03915afa938415610a6a575f94615737575b50604001906156286156224861561d615614865163ffffffff1690565b63ffffffff1690565b614a46565b856128bd565b9261563384836128bd565b81106157125781848f928d9594615649916128d8565b90615653916128d8565b60011c9485615661916128bd565b9461566b916128bd565b9a8161567692615c97565b5061567f6149a4565b9c615688612ae5565b6001600160a01b0316915163ffffffff16946156a26137df565b6040519182916156b5916020840161533d565b03601f19810182526156c7908261297b565b604051634fb1a07b60e01b81529e8f96879586956156eb9548949060048901615354565b03915a945f95f1918215610a6a576115fb9861570b936152675750615d29565b4892615df0565b61571f846109e1936128bd565b6328a7a8cb60e11b5f52600491909152602452604490565b60409194506157549060203d602011611df957611dec818361297b565b93906155f7565b61576f91503d805f833e61527a818361297b565b5f6155b9565b5f9198506157919060203d602011611b8a57611b7c818361297b565b979061555f565b94509998505050508087106157b357506115fb94959161570b565b6328a7a8cb60e11b5f52600487905260245260445ffd5b508715156154f9565b6157ed91955060203d602011611df957611dec818361297b565b935f6154cd565b61040061042092959493610440830196835260208301370152565b909260209060016158308460018060a01b03165f52600a60205260405f2090565b01549461585160405195869384936307fbe4d560e41b8552600485016157f4565b0381730b2b545a4e2fd65d29f2417f1b26698d71769a8f5af4918215610a6a575f926158e0575b508282146158db576001600160a01b03165f908152600c60205260409020905f5b600481106158a75750505090565b6158b4610fcb8285612d91565b801515806158d2575b6158ca5750600101615899565b935050505090565b508083146158bd565b505090565b6158fa91925060203d602011611df957611dec818361297b565b905f615878565b9260209161592360405194859384936307fbe4d560e41b8552600485016157f4565b0381730b2b545a4e2fd65d29f2417f1b26698d71769a8f5af4908115610a6a575f9161596a575b50818103615956575050565b6272c3e960e11b5f5260045260245260445ffd5b615983915060203d602011611df957611dec818361297b565b5f61594a565b9061599382613063565b808211615b6c57506159a86103e683856140d0565b906001600160a01b03821615615b4b576001600160a01b038316935f9261eeee8614801592908590615b4357506040516370a0823160e01b81523060048201526020816024818b5afa908115610a6a575f91615b24575b5094615a0c85848a615da1565b823b156104cb57604051639e6eec0560e01b815260048101929092526001600160a01b0387166024830152604482018590525f6064830181905260c0608484015260c4830181905260e060a484015260e4830181905291928391610104918391905af18015610a6a57615b10575b50615a86575b50505050565b615a8f916128d8565b6040516370a0823160e01b815230600482015292909190602090849060249082905afa928315610a6a575f93615aef575b50818303615ace5780615a80565b63884aa24960e01b5f526001600160a01b031660045260245260445260645ffd5b615b0991935060203d602011611df957611dec818361297b565b915f615ac0565b80610a5e5f615b1e9361297b565b5f615a7a565b615b3d915060203d602011611df957611dec818361297b565b5f6159ff565b945083615a0c565b63b61c181f60e01b5f5260048490526001600160a01b03831660245260445ffd5b6360ec3e7160e01b5f5260049190915260245260445ffd5b94939092916040519163331e807b60e11b6020840152615c0f83615c01602482016020815260ff85511660208201526020850151604082015260408501516060820152615bec60608601516080830190602080916001600160401b0381511684520151910152565b60e060808601519160c0808201520190614314565b03601f19810185528461297b565b7f0000000000000000000000000000000000000000000000000000000000000000615c39816120e1565b615c6f578615615c5b5795615c5560806115fb979801516152a2565b94615467565b631587a6a360e31b5f52600487905260245ffd5b5090919285615c83576115fb949550615165565b636ba3461960e11b5f52600486905260245ffd5b604051635ed004ff60e11b81526001600160a01b0392831660048201529093929091602090839060249082907f0000000000000000000000000000000000000000000000000000000000000000165afa8015610a6a576115fb925f91615d0a575b509384906001600160a01b0316615da1565b615d23915060203d602011611b8a57611b7c818361297b565b5f615cf8565b90615d355f8284615ebf565b15615d3e575050565b615d488183615f0c565b15615d80575f615d589183615f70565b15615d605750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b50635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b9190615dae828285615ebf565b15615db857505050565b615dc28184615f0c565b15615dd25790615d589183615f70565b635274afe760e01b5f9081526001600160a01b038416600452602490fd5b939493909290916001600160a01b03615e07612ae5565b169380840180941161083957602095610100615e8492615e256149a4565b956040519a8b998a988998633737453560e11b8a5260048a019560018060a01b03841687528e870152604086015260018060a01b0316606085015260018060a01b0316608084015260a083015260c08201528160e08201520190613da2565b03917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af18015610a6a576145a05750565b92916040519163095ea7b360e01b5f5260018060a01b031660045260245260205f60448180875af19260015f5114841615615efb575b50604052565b3d15903b151516909216915f615ef5565b60405163095ea7b360e01b5f9081526001600160a01b03909316600452602483905290929160209060448180875af19260015f5114841615615f4e5750604052565b60018492941516615f67573b15153d151616915f615ef5565b833d5f823e3d90fd5b92916040519163095ea7b360e01b5f5260018060a01b031660045260245260205f60448180875af19260015f5114841615615f4e575060405256fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a164736f6c634300081c000a",
2303
+ "metadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract JBArbitrumSuckerDeployer\",\"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\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"cost\",\"type\":\"uint256\"}],\"type\":\"error\",\"name\":\"JBArbitrumSucker_NotEnoughGas\"},{\"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\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"ARBINBOX\",\"outputs\":[{\"internalType\":\"contract IInbox\",\"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\":\"GATEWAYROUTER\",\"outputs\":[{\"internalType\":\"contract IArbGatewayRouter\",\"name\":\"\",\"type\":\"address\"}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"LAYER\",\"outputs\":[{\"internalType\":\"enum JBLayer\",\"name\":\"\",\"type\":\"uint8\"}]},{\"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\":\"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 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\":[{\"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\":\"\",\"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\":\"\",\"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.\"}},\"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\":{\"directory\":\"A contract storing directories of terminals and controllers for each project.\",\"permissions\":\"A contract storing permissions.\",\"tokens\":\"A contract that manages token minting and burning.\"}},\"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.\"}},\"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\":{\"_0\":\"chainId 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)\":{\"params\":{\"interfaceId\":\"The interface ID to check.\"},\"returns\":{\"_0\":\"A boolean indicating 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\":{\"ARBINBOX()\":{\"notice\":\"The inbox used to send messages between the local and remote sucker.\"},\"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).\"},\"GATEWAYROUTER()\":{\"notice\":\"The gateway router for the specific chain\"},\"LAYER()\":{\"notice\":\"The layer that this contract is on.\"},\"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`.\"},\"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`.\"},\"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.\"},\"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\":\"Indicates whether this contract supports the 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/JBArbitrumSucker.sol\":\"JBArbitrumSucker\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"viaIR\":true},\"sources\":{\"node_modules/@arbitrum/nitro-contracts/src/bridge/DelayBufferTypes.sol\":{\"keccak256\":\"0x1ad1d78baed19ceb435d9d73a0890ae753a0246ed3085bde8ac942df8cd37c6f\",\"urls\":[\"bzz-raw://83fbf63f2fa1fb4deb9e76edc1e1f6b4bae05bf5b8676423f6251d5a2b33ed78\",\"dweb:/ipfs/QmaccnTmiwQF57AcBXCdLZp7QWjjNgb3PV3USSeFye5TaS\"],\"license\":\"BUSL-1.1\"},\"node_modules/@arbitrum/nitro-contracts/src/bridge/IBridge.sol\":{\"keccak256\":\"0xc5f1c2ea4cb8a1da4c0fd900a32dc6a8bdfac6f8288bf9a6eb886a7485e2c4a0\",\"urls\":[\"bzz-raw://2ec09214cca8b097550cd6beac7f6b81ac5f598998d372aec6cede08cfc0cefd\",\"dweb:/ipfs/QmTLi7EgZvX3VqemmxV61cgWGsDanRqSvef19djGg6BysX\"],\"license\":\"BUSL-1.1\"},\"node_modules/@arbitrum/nitro-contracts/src/bridge/IDelayedMessageProvider.sol\":{\"keccak256\":\"0x1f216daf990c329310f44818e1c05d81c07fe875a5a07dd379d2c8fac921f208\",\"urls\":[\"bzz-raw://d6ccdab97fb5c8b7d9a80b713dc6bd9bc0e71e9d41900ac5c7cf96cb2643aad6\",\"dweb:/ipfs/QmeypCFXVXbTu3RehtFti4PMfuTCyzVKDwfGiZ2PeewRSG\"],\"license\":\"BUSL-1.1\"},\"node_modules/@arbitrum/nitro-contracts/src/bridge/IInbox.sol\":{\"keccak256\":\"0xce1fb0be8de8cd0dfc23f1375cdd3196bab2f0a20a85f0f4f626129ffd4a539f\",\"urls\":[\"bzz-raw://f39a0fc43181ea15d7e71fdeb7de1e8689afd3505cde4e4456504c369b6fb68b\",\"dweb:/ipfs/QmWRpDdq6HQppRScukDPQWypkW1nM8aj7mKnzUXxdxkEn3\"],\"license\":\"BUSL-1.1\"},\"node_modules/@arbitrum/nitro-contracts/src/bridge/IInboxBase.sol\":{\"keccak256\":\"0x9a725daa07ab87e05f86ba76db4f74e47bf57f56dfeb1a610b998f96e43e04b9\",\"urls\":[\"bzz-raw://a3b034bb8da34b79bf0e4155aca38db1dd5dda8bb04fc37f54adfbf8f6201a72\",\"dweb:/ipfs/QmZCQYNBpxJCY4CV2NDcws6Ef2MHzdDRyRvYcwc6joy5iy\"],\"license\":\"BUSL-1.1\"},\"node_modules/@arbitrum/nitro-contracts/src/bridge/IOutbox.sol\":{\"keccak256\":\"0x125b938cccdfe5b0f3a379b9e6340d0fbffd0c7bf905689fa857bedd334b0771\",\"urls\":[\"bzz-raw://58cf1d279d01f88e804342d4e9cca8aecc35cf1701755cd3589c9e5e1b8a84c3\",\"dweb:/ipfs/QmdcqyoQjwewkKGC1qWg8u8jxrwKam6Vsac9B8vtTRNETq\"],\"license\":\"BUSL-1.1\"},\"node_modules/@arbitrum/nitro-contracts/src/bridge/IOwnable.sol\":{\"keccak256\":\"0x0ce0ccc2cd25968ab37aef146be9c9a615c3f2ad239fa759d1745190666729fd\",\"urls\":[\"bzz-raw://6516e1a94fdc9530b90ceb408e3083ecc7e844afd4fc34a7ccab89a191c3b88f\",\"dweb:/ipfs/QmZ4UwQe1pgTJxx1XqzcAKTgu9Wo6qZA5WSCPHygFJSdi8\"],\"license\":\"BUSL-1.1\"},\"node_modules/@arbitrum/nitro-contracts/src/bridge/ISequencerInbox.sol\":{\"keccak256\":\"0x9c98b117456d17ffb1ddabac3b08633cf68399b970604cc531069dad29536a8b\",\"urls\":[\"bzz-raw://a19736f54c2679d1945be7087615bfca97eb1eaf881dd495634442e97ef92b74\",\"dweb:/ipfs/QmQCLZbu8aNSvYNYa2g7WEpDExJmWW4tbJhxc4XmwpJ9bm\"],\"license\":\"BUSL-1.1\"},\"node_modules/@arbitrum/nitro-contracts/src/bridge/Messages.sol\":{\"keccak256\":\"0x002a404b3da98b6dd5c0366c086e49a28b5f4158f61a386c9799cd4f616214b6\",\"urls\":[\"bzz-raw://266d13b0d88a7ff4a66cbbb84828087d92536b7bb1a964df7abcb97973bb11e6\",\"dweb:/ipfs/QmanoAuyENGCUS2PvijcgBxGYpW4NjsGD9nVZ6mSynSS1r\"],\"license\":\"BUSL-1.1\"},\"node_modules/@arbitrum/nitro-contracts/src/libraries/AddressAliasHelper.sol\":{\"keccak256\":\"0x7b2e5b25e2ebb4e94d4930f4b2054a5d3ff81d791dc7bae598ccde8d7b8458e0\",\"urls\":[\"bzz-raw://07ef97ad544e4d4447a88af5e042202346eb33cdbdd5ea9f15ac648eb8be8fc3\",\"dweb:/ipfs/QmRAdQ7G7XBmdWdQZQwwqZpeMx29YY3T8TvWaiaP3VVeYH\"],\"license\":\"BUSL-1.1\"},\"node_modules/@arbitrum/nitro-contracts/src/libraries/IGasRefunder.sol\":{\"keccak256\":\"0x35d07855184f8d31087ad0b67d1a8ccd0653a3a6c59c02513eb9c53b3371a385\",\"urls\":[\"bzz-raw://20eec9a16fa9003971a1ac5f5f7a3b7c558c57cba01f98c50959b5c93786f639\",\"dweb:/ipfs/QmaRQpgwZVQYe2EsFS4UrvrnFabJLQwUaBXm14C8V4rhBM\"],\"license\":\"BUSL-1.1\"},\"node_modules/@arbitrum/nitro-contracts/src/precompiles/ArbSys.sol\":{\"keccak256\":\"0xa14c64e78cf18bb86896aa1c82453fb2646420f12a3963314ba66f00030eee9b\",\"urls\":[\"bzz-raw://e542142e4e11e9b5d02b718c9d4f04edb235b312d51a19f072a5d2a7ed6236bc\",\"dweb:/ipfs/QmVAbeprgJ7WFXJR5NSGRrV8N9oeerf9HKNbPfBscbHspq\"],\"license\":\"BUSL-1.1\"},\"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/JBArbitrumSucker.sol\":{\"keccak256\":\"0xa787d76d677191dbef3cb5c66386c3f63573e080465525c1013aaa6ded0345d5\",\"urls\":[\"bzz-raw://c3947d983de7e41b157e5510061951ae5bbed1b35552d77da415c591b64c5366\",\"dweb:/ipfs/QmdSrv46s3nn5s58DmhEnNZ9NywyQqT9Qt6AfgRsKRxMme\"],\"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/JBArbitrumSuckerDeployer.sol\":{\"keccak256\":\"0xa4f10720781386f58516fbb676dbfaafce49041f4c1eeb02e159eaafbb70e874\",\"urls\":[\"bzz-raw://c7db090a93f1d68e579250c2b672704dc88b47f2cae4b9138f7b8974765f4a22\",\"dweb:/ipfs/QmeNBQ9NkEqVKy1TXHzUc9TJ5RqUvgwk3sZ7j49QyfJNod\"],\"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/JBLayer.sol\":{\"keccak256\":\"0x15d74493cb3713c6883e144a39bda3d0e4f9f2b7eed1ea88491e788e2e64f992\",\"urls\":[\"bzz-raw://ee37c37e5488bbb279302ba70f88e314921c44723452edd3bd4aeabac2d5011f\",\"dweb:/ipfs/QmbCwjeEW5dRmKZ6LqjPCGSX4gjaEmss4EXjs2dU6i1w6t\"],\"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/IArbGatewayRouter.sol\":{\"keccak256\":\"0xa841672f15914b60b920a16a16935886fb125039ec3ffe889a130739a22924f3\",\"urls\":[\"bzz-raw://940694971ac9ec7906786ef36b3ff55bbd41eda4898354857f0ac6134aadc365\",\"dweb:/ipfs/QmTN4RjUPAsbzsnEUi5uLQx9c64DXnb2Tx8TiqQJcYroio\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/interfaces/IArbL1GatewayRouter.sol\":{\"keccak256\":\"0x893ea572209a77f3c1ec4ccb25edbaed92b5d80e1b886f76c7047df3c4ec1225\",\"urls\":[\"bzz-raw://a89d3b0eec0e752535203c6f5a7cb77622fa8c3818e0d2081381350b8831aa03\",\"dweb:/ipfs/Qmaft7GeXAY4awYcvUkLNbt1EZvKjUd5RBK9Bd8BusbhwA\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/interfaces/IArbL2GatewayRouter.sol\":{\"keccak256\":\"0x1a84c7e9708b6b66d49ff138306a98667b5ee7905999f443d0a270eaba8be613\",\"urls\":[\"bzz-raw://7acf0dd649357c9e95886b89a1dc473ac95fac997a56378426f5903fa1e50f21\",\"dweb:/ipfs/QmTr6PRARYEuEo3BSa3ftnuHcjVxESfjsLR6FBioGtuFNH\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/interfaces/IJBArbitrumSucker.sol\":{\"keccak256\":\"0x0722e6ca2c8048abc14f242cf91a675f785385ea3b4b9393793b8533d44d38b5\",\"urls\":[\"bzz-raw://61b8ebdad3f1a006ba8ab4a76f6c6638430ebc6d587803686b9736662e100c42\",\"dweb:/ipfs/QmNduzSkGRmog7kJFihr9PDZvd76bZsffwTsyDdGPoJZp2\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/interfaces/IJBArbitrumSuckerDeployer.sol\":{\"keccak256\":\"0x17d32a05c919020a4edd39aff3a24c1e99c008637bf0ff175dce66b191710a08\",\"urls\":[\"bzz-raw://46762a87d9bfd77f36d2847c3259b86be95a8a92243aa9b370ce85fc5f7f0ed1\",\"dweb:/ipfs/QmTiQwiPNunK4WJ4SWWj8GUhN7oLdNjsmBgAS1r5wG9t6X\"],\"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/IL1ArbitrumGateway.sol\":{\"keccak256\":\"0x872c86f2f81d47012fccd7e3c920d123ca3122f6ae28fef7b42b624febcca4c2\",\"urls\":[\"bzz-raw://ff862406b31f12cc05e83013932b1bfd8561af571d03c030968ca128542d015f\",\"dweb:/ipfs/QmfTpCZBEQjbhgnPnVCtxPcHtecRvX5KnC3xpdQgkhHscH\"],\"license\":\"MIT\"},\"node_modules/@bananapus/suckers-v6/src/libraries/ARBChains.sol\":{\"keccak256\":\"0x5a55d14a0cda0f0d9e52ca2997f0604a71f96658014f2cbcaabbde1f68822100\",\"urls\":[\"bzz-raw://24efc086d0d223dbd7f91bbc288cf6499f92f7f9fc9aa82e5948dc00a298d215\",\"dweb:/ipfs/QmNrs3Jrpa6sqBvBwv3NpHXPytRuQ8RR19ABavshtBhxzF\"],\"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/@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}",
2304
+ "gitCommit": "npm:@bananapus/suckers-v6@1.0.2",
2305
+ "gitDirty": false,
2306
+ "history": []
2307
+ }