@pimlico/alto 0.0.0-main.20250602T150752 → 0.0.0-main.20250605T142651
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.
- package/esm/cli/config/bundler.d.ts +40 -46
- package/esm/cli/config/bundler.js +6 -4
- package/esm/cli/config/bundler.js.map +1 -1
- package/esm/cli/config/options.js +0 -5
- package/esm/cli/config/options.js.map +1 -1
- package/esm/executor/executor.d.ts +0 -1
- package/esm/executor/executor.js +3 -19
- package/esm/executor/executor.js.map +1 -1
- package/esm/rpc/methods/boost_sendUserOperation.d.ts +878 -0
- package/esm/rpc/methods/boost_sendUserOperation.js +38 -0
- package/esm/rpc/methods/boost_sendUserOperation.js.map +1 -0
- package/esm/rpc/methods/eth_estimateUserOperationGas.js +0 -5
- package/esm/rpc/methods/eth_estimateUserOperationGas.js.map +1 -1
- package/esm/rpc/methods/eth_sendUserOperation.d.ts +1 -1
- package/esm/rpc/methods/eth_sendUserOperation.js +5 -5
- package/esm/rpc/methods/eth_sendUserOperation.js.map +1 -1
- package/esm/rpc/methods/index.js +3 -0
- package/esm/rpc/methods/index.js.map +1 -1
- package/esm/rpc/rpcHandler.d.ts +1 -1
- package/esm/rpc/rpcHandler.js +2 -2
- package/esm/rpc/rpcHandler.js.map +1 -1
- package/esm/types/schemas.d.ts +7623 -5305
- package/esm/types/schemas.js +7 -0
- package/esm/types/schemas.js.map +1 -1
- package/esm/utils/metrics.js +6 -1
- package/esm/utils/metrics.js.map +1 -1
- package/package.json +2 -2
- package/esm/executor/fastlane.d.ts +0 -9
- package/esm/executor/fastlane.js +0 -37
- package/esm/executor/fastlane.js.map +0 -1
package/esm/executor/executor.js
CHANGED
|
@@ -2,7 +2,6 @@ import { roundUpBigInt, maxBigInt, parseViemError, scaleBigIntByPercent } from "
|
|
|
2
2
|
import * as sentry from "@sentry/node";
|
|
3
3
|
import { IntrinsicGasTooLowError, NonceTooLowError, TransactionExecutionError, NonceTooHighError, BaseError } from "viem";
|
|
4
4
|
import { calculateAA95GasFloor, encodeHandleOpsCalldata, getAuthorizationList, getUserOpHashes, isTransactionUnderpricedError } from "./utils.js";
|
|
5
|
-
import { sendPflConditional } from "./fastlane.js";
|
|
6
5
|
import { filterOpsAndEstimateGas } from "./filterOpsAndEStimateGas.js";
|
|
7
6
|
export class Executor {
|
|
8
7
|
config;
|
|
@@ -27,8 +26,8 @@ export class Executor {
|
|
|
27
26
|
throw new Error("Method not implemented.");
|
|
28
27
|
}
|
|
29
28
|
async sendHandleOpsTransaction({ txParam, gasOpts }) {
|
|
30
|
-
const { entryPoint, userOps, account, gas, nonce
|
|
31
|
-
const { executorGasMultiplier, sendHandleOpsRetryCount, transactionUnderpricedMultiplier,
|
|
29
|
+
const { entryPoint, userOps, account, gas, nonce } = txParam;
|
|
30
|
+
const { executorGasMultiplier, sendHandleOpsRetryCount, transactionUnderpricedMultiplier, walletClient, publicClient } = this.config;
|
|
32
31
|
const handleOpsCalldata = encodeHandleOpsCalldata({
|
|
33
32
|
userOps: userOps.map(({ userOp }) => userOp),
|
|
34
33
|
beneficiary: account.address
|
|
@@ -50,19 +49,6 @@ export class Executor {
|
|
|
50
49
|
// Try sending the transaction and updating relevant fields if there is an error.
|
|
51
50
|
while (attempts < maxAttempts) {
|
|
52
51
|
try {
|
|
53
|
-
if (enableFastlane &&
|
|
54
|
-
isUserOpV06 &&
|
|
55
|
-
!txParam.isReplacementTx &&
|
|
56
|
-
attempts === 0) {
|
|
57
|
-
const serializedTransaction = await walletClient.signTransaction(request);
|
|
58
|
-
transactionHash = await sendPflConditional({
|
|
59
|
-
serializedTransaction,
|
|
60
|
-
publicClient,
|
|
61
|
-
walletClient,
|
|
62
|
-
logger: this.logger
|
|
63
|
-
});
|
|
64
|
-
break;
|
|
65
|
-
}
|
|
66
52
|
// Round up gasLimit to nearest multiple
|
|
67
53
|
request.gas = roundUpBigInt({
|
|
68
54
|
value: request.gas,
|
|
@@ -130,9 +116,8 @@ export class Executor {
|
|
|
130
116
|
return transactionHash;
|
|
131
117
|
}
|
|
132
118
|
async bundle({ executor, userOpBundle, nonce, gasPriceParams, isReplacementTx }) {
|
|
133
|
-
const { entryPoint, userOps
|
|
119
|
+
const { entryPoint, userOps } = userOpBundle;
|
|
134
120
|
const { maxFeePerGas, maxPriorityFeePerGas } = gasPriceParams;
|
|
135
|
-
const isUserOpV06 = version === "0.6";
|
|
136
121
|
let childLogger = this.logger.child({
|
|
137
122
|
isReplacementTx,
|
|
138
123
|
userOperations: getUserOpHashes(userOps),
|
|
@@ -218,7 +203,6 @@ export class Executor {
|
|
|
218
203
|
gas: gasLimit,
|
|
219
204
|
userOps: userOpsToBundle,
|
|
220
205
|
isReplacementTx,
|
|
221
|
-
isUserOpV06,
|
|
222
206
|
entryPoint
|
|
223
207
|
},
|
|
224
208
|
gasOpts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../executor/executor.ts"],"names":[],"mappings":"AAYA,OAAO,EACH,aAAa,EACb,SAAS,EACT,cAAc,EACd,oBAAoB,EACvB,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AACtC,OAAO,EACH,uBAAuB,EACvB,gBAAgB,EAChB,yBAAyB,EAGzB,iBAAiB,EACjB,SAAS,EACZ,MAAM,MAAM,CAAA;AACb,OAAO,EACH,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,eAAe,EACf,6BAA6B,EAChC,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../executor/executor.ts"],"names":[],"mappings":"AAYA,OAAO,EACH,aAAa,EACb,SAAS,EACT,cAAc,EACd,oBAAoB,EACvB,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AACtC,OAAO,EACH,uBAAuB,EACvB,gBAAgB,EAChB,yBAAyB,EAGzB,iBAAiB,EACjB,SAAS,EACZ,MAAM,MAAM,CAAA;AACb,OAAO,EACH,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,eAAe,EACf,6BAA6B,EAChC,MAAM,SAAS,CAAA;AAIhB,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AAgCnE,MAAM,OAAO,QAAQ;IACjB,MAAM,CAAY;IAClB,MAAM,CAAQ;IACd,OAAO,CAAS;IAChB,iBAAiB,CAA4B;IAC7C,eAAe,CAAiB;IAChC,OAAO,CAAS;IAChB,YAAY,CAAc;IAE1B,YAAY,EACR,MAAM,EACN,OAAO,EACP,iBAAiB,EACjB,OAAO,EACP,eAAe,EACf,YAAY,EAQf;QACG,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAA;QAC1C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,CAC1B,EAAE,MAAM,EAAE,UAAU,EAAE,EACtB;YACI,KAAK,EAAE,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,QAAQ;SACpD,CACJ,CAAA;QACD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;QACtC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;IACpC,CAAC;IAED,SAAS,CAAC,WAAoB,EAAE,IAAqB;QACjD,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC9C,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,EAC3B,OAAO,EACP,OAAO,EAIV;QACG,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,CAAA;QAE5D,MAAM,EACF,qBAAqB,EACrB,uBAAuB,EACvB,gCAAgC,EAChC,YAAY,EACZ,YAAY,EACf,GAAG,IAAI,CAAC,MAAM,CAAA;QAEf,MAAM,iBAAiB,GAAG,uBAAuB,CAAC;YAC9C,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC;YAC5C,WAAW,EAAE,OAAO,CAAC,OAAO;SAC/B,CAAC,CAAA;QAEF,MAAM,OAAO,GAAG;YACZ,EAAE,EAAE,UAAU;YACd,IAAI,EAAE,iBAAiB;YACvB,IAAI,EAAE,OAAO,CAAC,OAAO;YACrB,KAAK,EAAE,YAAY,CAAC,KAAK;YACzB,GAAG;YACH,OAAO;YACP,KAAK;YACL,GAAG,OAAO;SACb,CAAA;QAED,OAAO,CAAC,GAAG,GAAG,oBAAoB,CAAC,OAAO,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAA;QAEtE,IAAI,QAAQ,GAAG,CAAC,CAAA;QAChB,IAAI,eAAgC,CAAA;QACpC,MAAM,WAAW,GAAG,uBAAuB,CAAA;QAE3C,iFAAiF;QACjF,OAAO,QAAQ,GAAG,WAAW,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACD,wCAAwC;gBACxC,OAAO,CAAC,GAAG,GAAG,aAAa,CAAC;oBACxB,KAAK,EAAE,OAAO,CAAC,GAAG;oBAClB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,wBAAwB;iBACjD,CAAC,CAAA;gBAEF,eAAe,GAAG,MAAM,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;gBAE7D,MAAK;YACT,CAAC;YAAC,OAAO,CAAU,EAAE,CAAC;gBAClB,IAAI,CAAC,YAAY,SAAS,EAAE,CAAC;oBACzB,IAAI,6BAA6B,CAAC,CAAC,CAAC,EAAE,CAAC;wBACnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAA;wBAErD,OAAO,CAAC,KAAK,GAAG,MAAM,YAAY,CAAC,mBAAmB,CAAC;4BACnD,OAAO,EAAE,OAAO,CAAC,OAAO;4BACxB,QAAQ,EAAE,QAAQ;yBACrB,CAAC,CAAA;wBAEF,IACI,OAAO,CAAC,YAAY;4BACpB,OAAO,CAAC,oBAAoB,EAC9B,CAAC;4BACC,OAAO,CAAC,YAAY,GAAG,oBAAoB,CACvC,OAAO,CAAC,YAAY,EACpB,gCAAgC,CACnC,CAAA;4BACD,OAAO,CAAC,oBAAoB,GAAG,oBAAoB,CAC/C,OAAO,CAAC,oBAAoB,EAC5B,gCAAgC,CACnC,CAAA;wBACL,CAAC;wBAED,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;4BACnB,OAAO,CAAC,QAAQ,GAAG,oBAAoB,CACnC,OAAO,CAAC,QAAQ,EAChB,gCAAgC,CACnC,CAAA;wBACL,CAAC;oBACL,CAAC;gBACL,CAAC;gBAED,MAAM,KAAK,GAAG,CAA6B,CAAA;gBAE3C,IAAI,KAAK,YAAY,yBAAyB,EAAE,CAAC;oBAC7C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;oBAEzB,IAAI,KAAK,YAAY,gBAAgB,EAAE,CAAC;wBACpC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;wBAC3C,OAAO,CAAC,KAAK,GAAG,MAAM,YAAY,CAAC,mBAAmB,CAAC;4BACnD,OAAO,EAAE,OAAO,CAAC,IAAI;4BACrB,QAAQ,EAAE,QAAQ;yBACrB,CAAC,CAAA;oBACN,CAAC;oBAED,IAAI,KAAK,YAAY,iBAAiB,EAAE,CAAC;wBACrC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAA;wBAC5C,OAAO,CAAC,KAAK,GAAG,MAAM,YAAY,CAAC,mBAAmB,CAAC;4BACnD,OAAO,EAAE,OAAO,CAAC,IAAI;4BACrB,QAAQ,EAAE,QAAQ;yBACrB,CAAC,CAAA;oBACN,CAAC;oBAED,IAAI,KAAK,YAAY,uBAAuB,EAAE,CAAC;wBAC3C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAA;wBACnD,OAAO,CAAC,GAAG,GAAG,oBAAoB,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;oBACzD,CAAC;oBAED,qDAAqD;oBACrD,yFAAyF;oBACzF,IAAI,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC;wBACnD,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,kDAAkD,CACrD,CAAA;wBACD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;oBAC5D,CAAC;gBACL,CAAC;gBAED,QAAQ,EAAE,CAAA;gBAEV,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;oBAC3B,MAAM,KAAK,CAAA;gBACf,CAAC;YACL,CAAC;QACL,CAAC;QAED,gBAAgB;QAChB,IAAI,CAAC,eAAe,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;QACpD,CAAC;QAED,OAAO,eAAsB,CAAA;IACjC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EACT,QAAQ,EACR,YAAY,EACZ,KAAK,EACL,cAAc,EACd,eAAe,EAOlB;QACG,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,YAAY,CAAA;QAC5C,MAAM,EAAE,YAAY,EAAE,oBAAoB,EAAE,GAAG,cAAc,CAAA;QAE7D,IAAI,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YAChC,eAAe;YACf,cAAc,EAAE,eAAe,CAAC,OAAO,CAAC;YACxC,UAAU;SACb,CAAC,CAAA;QAEF,IAAI,cAAc,GAAG,MAAM,uBAAuB,CAAC;YAC/C,YAAY;YACZ,QAAQ;YACR,KAAK;YACL,YAAY;YACZ,oBAAoB;YACpB,mBAAmB,EAAE,IAAI,CAAC,MAAM,CAAC,mBAAmB;YACpD,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,WAAW;SACtB,CAAC,CAAA;QAEF,IAAI,cAAc,CAAC,MAAM,KAAK,mBAAmB,EAAE,CAAC;YAChD,WAAW,CAAC,KAAK,CACb,qDAAqD,CACxD,CAAA;YACD,OAAO;gBACH,MAAM,EAAE,8BAA8B;gBACtC,eAAe,EAAE,cAAc,CAAC,eAAe;gBAC/C,MAAM,EAAE,kBAAkB;aAC7B,CAAA;QACL,CAAC;QAED,IAAI,cAAc,CAAC,MAAM,KAAK,2BAA2B,EAAE,CAAC;YACxD,WAAW,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAA;YAC7C,OAAO;gBACH,MAAM,EAAE,2BAA2B;gBACnC,eAAe,EAAE,cAAc,CAAC,eAAe;aAClD,CAAA;QACL,CAAC;QAED,IAAI,EAAE,QAAQ,EAAE,eAAe,EAAE,eAAe,EAAE,GAAG,cAAc,CAAA;QAEnE,mEAAmE;QACnE,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YAC5B,eAAe;YACf,cAAc,EAAE,eAAe,CAAC,eAAe,CAAC;YAChD,UAAU;SACb,CAAC,CAAA;QAEF,gEAAgE;QAChE,MAAM,YAAY,GAAG,qBAAqB,CAAC;YACvC,OAAO,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC;YACpD,WAAW,EAAE,QAAQ,CAAC,OAAO;SAChC,CAAC,CAAA;QACF,QAAQ,GAAG,SAAS,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;QAE5C,IAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;YAClC,MAAM,eAAe,GACjB,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC;iBAC1D,MAAM,GAAG,KAAK,CAAA;YACvB,QAAQ,GAAG,YAAY,GAAG,MAAM,CAAC,eAAe,CAAC,CAAA;QACrD,CAAC;QAED,kFAAkF;QAClF,QAAQ,IAAI,MAAO,CAAA;QAEnB,IAAI,eAA0B,CAAA;QAC9B,IAAI,CAAC;YACD,MAAM,mBAAmB,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAA;YAC1D,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,eAAe,CAAC,CAAA;YAC/D,MAAM,EAAE,YAAY,EAAE,oBAAoB,EAAE,GAAG,cAAc,CAAA;YAE7D,IAAI,OAA2B,CAAA;YAC/B,IAAI,mBAAmB,EAAE,CAAC;gBACtB,OAAO,GAAG;oBACN,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,YAAY;iBACzB,CAAA;YACL,CAAC;iBAAM,IAAI,iBAAiB,EAAE,CAAC;gBAC3B,OAAO,GAAG;oBACN,IAAI,EAAE,SAAS;oBACf,YAAY;oBACZ,oBAAoB;oBACpB,iBAAiB;iBACpB,CAAA;YACL,CAAC;iBAAM,CAAC;gBACJ,OAAO,GAAG;oBACN,IAAI,EAAE,SAAS;oBACf,YAAY;oBACZ,oBAAoB;iBACvB,CAAA;YACL,CAAC;YAED,eAAe,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC;gBAClD,OAAO,EAAE;oBACL,OAAO,EAAE,QAAQ;oBACjB,KAAK;oBACL,GAAG,EAAE,QAAQ;oBACb,OAAO,EAAE,eAAe;oBACxB,eAAe;oBACf,UAAU;iBACb;gBACD,OAAO;aACV,CAAC,CAAA;YAEF,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;gBAC5B,YAAY,EAAE,eAAe,CAAC,eAAe,CAAC;gBAC9C,eAAe;aAClB,CAAC,CAAA;QACN,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACpB,MAAM,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,CAAA;YAC7B,MAAM,EAAE,eAAe,EAAE,eAAe,EAAE,GAAG,cAAc,CAAA;YAE3D,4CAA4C;YAC5C,IAAI,CAAC,CAAC,EAAE,CAAC;gBACL,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAA;gBAC5B,WAAW,CAAC,KAAK,CACb,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAC9B,6CAA6C,CAChD,CAAA;gBACD,OAAO;oBACH,eAAe;oBACf,eAAe;oBACf,MAAM,EAAE,2BAA2B;oBACnC,MAAM,EAAE,kBAAkB;iBAC7B,CAAA;YACL,CAAC;YAED,WAAW,CAAC,KAAK,CACb;gBACI,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACrC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,CACvD;aACJ,EACD,qCAAqC,CACxC,CAAA;YAED,OAAO;gBACH,eAAe;gBACf,eAAe;gBACf,MAAM,EAAE,2BAA2B;gBACnC,MAAM,EAAE,CAAC;aACZ,CAAA;QACL,CAAC;QAED,MAAM,cAAc,GAAG,eAAe,CAAA;QAEtC,MAAM,YAAY,GAAiB;YAC/B,MAAM,EAAE,gBAAgB;YACxB,cAAc;YACd,eAAe;YACf,eAAe;YACf,kBAAkB,EAAE;gBAChB,GAAG,EAAE,QAAQ;gBACb,YAAY,EAAE,cAAc,CAAC,YAAY;gBACzC,oBAAoB,EAAE,cAAc,CAAC,oBAAoB;gBACzD,KAAK;aACR;SACJ,CAAA;QAED,WAAW,CAAC,IAAI,CACZ;YACI,kBAAkB,EAAE,YAAY,CAAC,kBAAkB;YACnD,MAAM,EAAE,eAAe;YACvB,QAAQ,EAAE,eAAe,CAAC,cAAc,CAAC;SAC5C,EACD,8BAA8B,CACjC,CAAA;QAED,OAAO,YAAY,CAAA;IACvB,CAAC;CACJ"}
|