@ftptech/canton-agent-wallet 0.7.0 → 0.7.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"quest-fund.d.ts","sourceRoot":"","sources":["../src/quest-fund.ts"],"names":[],"mappings":"AA0BA,OAAO,EAA0B,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAGtE;;4EAE4E;AAC5E,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B,yDAAyD;IACzD,WAAW,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,0DAA0D;IAC1D,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,uCAAuC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAED;;8BAE8B;AAC9B,qBAAa,cAAe,SAAQ,KAAK;gBAC3B,OAAO,EAAE,MAAM;CAI5B;AAWD;;;GAGG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC,CAoG7E;AAED,MAAM,WAAW,gBAAgB;IAC/B,gDAAgD;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB;wCACoC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,2BAA2B;IAC3B,aAAa,CAAC,EAAE,OAAO,SAAS,CAAC;IACjC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,iFAAiF;IACjF,cAAc,CAAC,EAAE,MAAM,WAAW,GAAG,SAAS,CAAC;IAC/C,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACjE,UAAU,CAAC,EAAE,CACX,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,WAAW,CAAC,CAAC;CAC3B;AAED;iEACiE;AACjE,MAAM,MAAM,kBAAkB,GAC1B;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B,GACD;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjE;;;;;;;;;;GAUG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,kBAAkB,CAAC,CA4C7B"}
1
+ {"version":3,"file":"quest-fund.d.ts","sourceRoot":"","sources":["../src/quest-fund.ts"],"names":[],"mappings":"AA0BA,OAAO,EAA0B,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAGtE;;4EAE4E;AAC5E,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B,yDAAyD;IACzD,WAAW,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,0DAA0D;IAC1D,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,uCAAuC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAED;;8BAE8B;AAC9B,qBAAa,cAAe,SAAQ,KAAK;gBAC3B,OAAO,EAAE,MAAM;CAI5B;AAWD;;;GAGG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC,CAoG7E;AAED,MAAM,WAAW,gBAAgB;IAC/B,gDAAgD;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB;wCACoC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,2BAA2B;IAC3B,aAAa,CAAC,EAAE,OAAO,SAAS,CAAC;IACjC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,iFAAiF;IACjF,cAAc,CAAC,EAAE,MAAM,WAAW,GAAG,SAAS,CAAC;IAC/C,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACjE,UAAU,CAAC,EAAE,CACX,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,WAAW,CAAC,CAAC;CAC3B;AAED;iEACiE;AACjE,MAAM,MAAM,kBAAkB,GAC1B;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B,GACD;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjE;;;;;;;;;;GAUG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,kBAAkB,CAAC,CAqE7B"}
@@ -170,11 +170,33 @@ export async function fundViaQuest(opts) {
170
170
  const install = opts.installKey ??
171
171
  (async (secret, relayUrl, network) => {
172
172
  const key = agentKeyFromPrivatePem(secret);
173
- const w = await ensureWallet({ relayUrl, network, key, restore: true });
173
+ // ensureWallet is LOAD-FIRST: with a wallet already on disk it returns
174
+ // THAT wallet and silently ignores `key` (the CLI `import` refuses
175
+ // non-empty homes for exactly this reason). We only reach here after the
176
+ // no-clobber check DECIDED to replace (absent or empty wallet), so skip
177
+ // the store read with `ephemeral` and persist the imported key
178
+ // explicitly — otherwise the funded key is dropped and the empty boot
179
+ // wallet survives (found live: MCP auto_fund reported the funded party
180
+ // while wallet.json still held the empty boot wallet).
181
+ const w = await ensureWallet({
182
+ relayUrl,
183
+ network,
184
+ key,
185
+ restore: true,
186
+ ephemeral: true,
187
+ });
174
188
  saveWallet(w);
175
189
  return w;
176
190
  });
177
191
  const wallet = await install(funded.secret, opts.relayUrl, funded.network);
192
+ // FAIL LOUD, never lie: the installed wallet MUST be the funded party. Any
193
+ // install path that keeps a different wallet (a load-first ensure, a stale
194
+ // injected seam) would otherwise report success while the grant sits on a
195
+ // party whose key was just dropped.
196
+ if (wallet.party !== funded.party) {
197
+ throw new QuestFundError(`installed wallet party ${wallet.party} is not the funded party ${funded.party} — ` +
198
+ `the funded key was NOT persisted; refusing to report success`);
199
+ }
178
200
  return {
179
201
  kind: "funded",
180
202
  wallet,
@@ -1 +1 @@
1
- {"version":3,"file":"quest-fund.js","sourceRoot":"","sources":["../src/quest-fund.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quest-fund.js","sourceRoot":"","sources":["../src/quest-fund.ts"],"names":[],"mappings":"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"}
@@ -99,6 +99,12 @@ interface DecodedPrepared {
99
99
  * the backstop scans them so a foreign party placed ONLY as an input-contract
100
100
  * signatory/stakeholder (not in its argument) still surfaces. */
101
101
  inputContractPartyMeta: string[];
102
+ /** The SAME authenticated input contracts, GROUPED and carrying identity +
103
+ * template. The flattened lists above are unchanged and remain the generic
104
+ * backstop's input; this grouped view exists so a party occurrence can be
105
+ * related to the contract that explains it (provenance) instead of being
106
+ * accepted by value. */
107
+ inputContracts: DecodedInputContract[];
102
108
  }
103
109
  /**
104
110
  * Decode a base64 `PreparedTransaction` into the bits we validate.
@@ -110,6 +116,34 @@ interface DecodedPrepared {
110
116
  * enforced by the per-arm invariant (`assertSingleAllowedRootExercise`).
111
117
  */
112
118
  export declare function decodePrepared(preparedTransactionB64: string): DecodedPrepared;
119
+ /**
120
+ * Party leaves split by WHERE they appear, for the position-aware foreign-party
121
+ * backstop (the fix for the unpinned-admin/dso neutralization bypass):
122
+ * - `rootArg` : party leaves inside the validated root exercise's
123
+ * chosen_value (where the admin/dso legitimately sits, at a
124
+ * known field position).
125
+ * - `elsewhere` : EVERY other party occurrence anywhere else in the signed
126
+ * message — sibling/consequence node Value payloads, the
127
+ * node-level `repeated string party` metadata
128
+ * (signatories/stakeholders/acting_parties/choice_observers/
129
+ * key-maintainers) of ANY node, and the Create arguments of
130
+ * Metadata.input_contracts. The admin/dso is NOT auto-allowed
131
+ * here just because it equals the relay-supplied value at its
132
+ * root position (that value-global exemption is exactly the
133
+ * neutralization hole); it is allowed here ONLY if pinned to
134
+ * an independently-trusted value. Without a trusted pin a
135
+ * relay-controlled admin/dso appearing here is FOREIGN (fail
136
+ * closed) — a value-moving caller must plumb a trusted pin.
137
+ */
138
+ /** One authenticated `Metadata.input_contracts` entry, grouped (see
139
+ * {@link DecodedPrepared.inputContracts}). */
140
+ export interface DecodedInputContract {
141
+ contractId?: string;
142
+ templateQualifiedName?: string;
143
+ argument?: Uint8Array;
144
+ signatories: string[];
145
+ stakeholders: string[];
146
+ }
113
147
  interface ExtractedTransfer {
114
148
  sender: string;
115
149
  receiver: string;
@@ -1 +1 @@
1
- {"version":3,"file":"verify-prepared.d.ts","sourceRoot":"","sources":["../src/verify-prepared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verify-prepared.d.ts","sourceRoot":"","sources":["../src/verify-prepared.ts"],"names":[],"mappings":"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"}
@@ -744,6 +744,10 @@ const EX_RESULT = 13;
744
744
  const EX_CHOICE_OBSERVERS = 14;
745
745
  const EX_KEY = 15; // Exercise.key : optional GlobalKeyWithMaintainers
746
746
  // interactive.transaction.v1.Create field numbers.
747
+ // Field numbers CONFIRMED against a real MainNet PreparedTransaction (see
748
+ // src/__fixtures__/): lf_version=1, contract_id=2, package_name=3, template_id=4,
749
+ // create_argument=5, signatories=6, stakeholders=7, key=8.
750
+ const CREATE_CONTRACT_ID = 2; // Create.contract_id — identity of the created/input contract.
747
751
  const CREATE_TEMPLATE_ID = 4; // Create.template_id : Identifier (same shape as Exercise.template_id).
748
752
  const CREATE_ARGUMENT = 5;
749
753
  const CREATE_SIGNATORIES = 6;
@@ -983,6 +987,7 @@ export function decodePrepared(preparedTransactionB64) {
983
987
  let maxRecordTime;
984
988
  const inputContractValues = [];
985
989
  const inputContractPartyMeta = [];
990
+ const inputContracts = [];
986
991
  const metadata = lenFieldUnique(top, PT_METADATA, "PreparedTransaction.metadata");
987
992
  if (metadata !== undefined) {
988
993
  const md = decodeMessage(metadata);
@@ -1026,12 +1031,29 @@ export function decodePrepared(preparedTransactionB64) {
1026
1031
  const arg = lenFieldUnique(createFields, CREATE_ARGUMENT, "InputContract.v1.argument");
1027
1032
  if (arg !== undefined)
1028
1033
  inputContractValues.push(arg);
1029
- inputContractPartyMeta.push(...stringFields(createFields, CREATE_SIGNATORIES));
1030
- inputContractPartyMeta.push(...stringFields(createFields, CREATE_STAKEHOLDERS));
1034
+ const icSignatories = stringFields(createFields, CREATE_SIGNATORIES);
1035
+ const icStakeholders = stringFields(createFields, CREATE_STAKEHOLDERS);
1036
+ inputContractPartyMeta.push(...icSignatories);
1037
+ inputContractPartyMeta.push(...icStakeholders);
1031
1038
  const icKey = lenFieldUnique(createFields, CREATE_KEY, "InputContract.v1.key");
1032
1039
  if (icKey !== undefined) {
1033
1040
  collectGlobalKeyWithMaintainersParties(icKey, inputContractPartyMeta, 0);
1034
1041
  }
1042
+ // GROUPED view of the same authenticated input contract. The flattened
1043
+ // lists above stay exactly as they were (every existing consumer is
1044
+ // untouched); this adds the identity + template needed to relate a party
1045
+ // occurrence to the contract that explains it, instead of accepting a
1046
+ // party by VALUE alone.
1047
+ const icTmpl = lenFieldUnique(createFields, CREATE_TEMPLATE_ID, "InputContract.v1.template_id");
1048
+ const icCid = lenFieldUnique(createFields, CREATE_CONTRACT_ID, "InputContract.v1.contract_id");
1049
+ const icQualified = icTmpl !== undefined ? identifierQualifiedName(icTmpl) : undefined;
1050
+ inputContracts.push({
1051
+ ...(icCid !== undefined ? { contractId: utf8(icCid) } : {}),
1052
+ ...(icQualified !== undefined ? { templateQualifiedName: icQualified } : {}),
1053
+ ...(arg !== undefined ? { argument: arg } : {}),
1054
+ signatories: icSignatories,
1055
+ stakeholders: icStakeholders,
1056
+ });
1035
1057
  }
1036
1058
  }
1037
1059
  const transaction = lenFieldUnique(top, PT_TRANSACTION, "PreparedTransaction.transaction");
@@ -1085,6 +1107,7 @@ export function decodePrepared(preparedTransactionB64) {
1085
1107
  maxRecordTime,
1086
1108
  inputContractValues,
1087
1109
  inputContractPartyMeta,
1110
+ inputContracts,
1088
1111
  };
1089
1112
  }
1090
1113
  /* ────────────────────────────────────────────────────────────────────────
@@ -1393,21 +1416,35 @@ function assertContractIdMatches(ex, expected) {
1393
1416
  function collectSplitPartyLeaves(decoded, rootNodeId) {
1394
1417
  const rootArg = [];
1395
1418
  const elsewhere = [];
1419
+ const nodeValues = [];
1420
+ const inputArgs = [];
1396
1421
  for (const node of decoded.nodes) {
1397
1422
  const isRoot = node.nodeId === rootNodeId;
1423
+ // A node's VALUE payloads carry ownership (a Create argument names the owner
1424
+ // of what it creates), so they are tagged with the node's template and kept
1425
+ // OUT of the loose `elsewhere` bucket. For the generic (no role exception)
1426
+ // case they are checked with exactly the same rule as `elsewhere`, so this
1427
+ // split is behaviour-preserving.
1428
+ const tag = node.create?.templateQualifiedName;
1429
+ const collectValue = (value) => {
1430
+ const parties = [];
1431
+ collectPartyLeaves(value, parties, 0);
1432
+ if (parties.length > 0)
1433
+ nodeValues.push({ templateQualifiedName: tag, parties });
1434
+ };
1398
1435
  if (isRoot && node.exercise !== undefined) {
1399
1436
  // The root exercise's chosen_value is the only place the admin/dso may sit
1400
1437
  // at its pinned position; its exercise_result (also in node.values) is a
1401
- // consequence, so treat it as "elsewhere".
1438
+ // consequence, so treat it as a tagged value payload.
1402
1439
  collectPartyLeaves(node.exercise.chosenValue, rootArg, 0);
1403
1440
  for (const value of node.values) {
1404
1441
  if (value !== node.exercise.chosenValue)
1405
- collectPartyLeaves(value, elsewhere, 0);
1442
+ collectValue(value);
1406
1443
  }
1407
1444
  }
1408
1445
  else {
1409
1446
  for (const value of node.values)
1410
- collectPartyLeaves(value, elsewhere, 0);
1447
+ collectValue(value);
1411
1448
  }
1412
1449
  // Node-level party metadata (authorization/visibility parties) — for ALL
1413
1450
  // nodes including the root — are never a place the relay may introduce an
@@ -1415,16 +1452,23 @@ function collectSplitPartyLeaves(decoded, rootNodeId) {
1415
1452
  for (const p of node.partyMeta)
1416
1453
  elsewhere.push(p);
1417
1454
  }
1418
- // Metadata.input_contracts Create arguments (SIGNED): any party here is an
1419
- // input-contract payload party — not a place a new recipient legitimately
1420
- // appears, so scan it under `elsewhere` too.
1421
- for (const value of decoded.inputContractValues)
1422
- collectPartyLeaves(value, elsewhere, 0);
1455
+ // Authenticated input-contract ARGUMENTS, tagged by their template so a
1456
+ // protocol role can be recognised at the exact contract that explains it.
1457
+ for (const ic of decoded.inputContracts) {
1458
+ if (ic.argument === undefined)
1459
+ continue;
1460
+ const parties = [];
1461
+ collectPartyLeaves(ic.argument, parties, 0);
1462
+ if (parties.length > 0) {
1463
+ inputArgs.push({ templateQualifiedName: ic.templateQualifiedName, parties });
1464
+ }
1465
+ }
1423
1466
  // Metadata.input_contracts Create signatories/stakeholders/key (also SIGNED via
1424
- // the V2 metadata hasher's disclosed-contract hashNode): same treatment.
1467
+ // the V2 metadata hasher's disclosed-contract hashNode): authorization
1468
+ // metadata, same treatment as node metadata.
1425
1469
  for (const p of decoded.inputContractPartyMeta)
1426
1470
  elsewhere.push(p);
1427
- return { rootArg, elsewhere };
1471
+ return { rootArg, elsewhere, nodeValues, inputArgs };
1428
1472
  }
1429
1473
  /**
1430
1474
  * The foreign-party backstop, position-aware so a relay-supplied admin/dso can
@@ -1439,8 +1483,24 @@ function collectSplitPartyLeaves(decoded, rootNodeId) {
1439
1483
  * caller value — only then is it safe to value-exclude it
1440
1484
  * OUTSIDE its root position (consequence/meta/input nodes).
1441
1485
  */
1442
- function assertNoForeignParties(leaves, allowed, adminDso, adminDsoRootMax, adminDsoTrusted) {
1486
+ function assertNoForeignParties(leaves, allowed, adminDso, adminDsoRootMax, adminDsoTrusted,
1487
+ /** The `provider` of the MATCHED standard TransferPreapproval, when one was
1488
+ * proven to belong to this exact transfer (see matchPreapprovalProvider).
1489
+ * undefined → no exception at all, and every bucket below behaves exactly as
1490
+ * it did before this role existed. */
1491
+ preapprovalProvider) {
1443
1492
  const foreign = [];
1493
+ /** Templates at which the matched provider legitimately appears INSIDE a
1494
+ * payload. Everything else, including any Amulet/holding create, stays
1495
+ * foreign — that is the single loss barrier this exception rests on. */
1496
+ const providerArgTemplates = new Set([
1497
+ PREAPPROVAL_TEMPLATE, // its own provider field (declaration position 2)
1498
+ FEATURED_APP_RIGHT_TEMPLATE, // the provider's featured-app right, fetched
1499
+ FEATURED_APP_MARKER_TEMPLATE, // the reward marker naming it as beneficiary
1500
+ ]);
1501
+ const providerAllowedIn = (template) => preapprovalProvider !== undefined &&
1502
+ template !== undefined &&
1503
+ providerArgTemplates.has(template);
1444
1504
  // Root chosen_value: allow recipients freely; allow adminDso up to its known
1445
1505
  // count at its pinned position(s); a SECOND/extra occurrence (e.g. a smuggled
1446
1506
  // extra recipient leaf that happens to equal the admin/dso value) is foreign.
@@ -1473,8 +1533,50 @@ function assertNoForeignParties(leaves, allowed, adminDso, adminDsoRootMax, admi
1473
1533
  continue;
1474
1534
  if (adminDso !== undefined && adminDsoTrusted && p === adminDso)
1475
1535
  continue;
1536
+ // AUTHORIZATION / VISIBILITY metadata only. The matched preapproval provider
1537
+ // is a signatory of its own contract and an authorizer of the delivery
1538
+ // exercise, so it necessarily appears here. Ownership is NOT expressible in
1539
+ // this bucket — it lives in the tagged argument buckets below — so granting
1540
+ // the role here cannot create a second money destination.
1541
+ if (preapprovalProvider !== undefined && p === preapprovalProvider)
1542
+ continue;
1476
1543
  foreign.push(p);
1477
1544
  }
1545
+ // VALUE payloads (consequence Create arguments + exercise results). Identical
1546
+ // rule to `elsewhere` for everyone EXCEPT the provider, which is admitted only
1547
+ // inside the reward marker that names it as beneficiary. Any other create —
1548
+ // above all `Splice.Amulet:Amulet` — keeps rejecting it, so the provider can
1549
+ // never become an owner of value.
1550
+ for (const bucket of leaves.nodeValues) {
1551
+ for (const p of bucket.parties) {
1552
+ if (allowed.has(p))
1553
+ continue;
1554
+ if (adminDso !== undefined && adminDsoTrusted && p === adminDso)
1555
+ continue;
1556
+ if (preapprovalProvider !== undefined &&
1557
+ p === preapprovalProvider &&
1558
+ providerAllowedIn(bucket.templateQualifiedName)) {
1559
+ continue;
1560
+ }
1561
+ foreign.push(p);
1562
+ }
1563
+ }
1564
+ // Authenticated input-contract ARGUMENTS. Same rule; the provider is admitted
1565
+ // only inside the preapproval it provides and its own featured-app right.
1566
+ for (const bucket of leaves.inputArgs) {
1567
+ for (const p of bucket.parties) {
1568
+ if (allowed.has(p))
1569
+ continue;
1570
+ if (adminDso !== undefined && adminDsoTrusted && p === adminDso)
1571
+ continue;
1572
+ if (preapprovalProvider !== undefined &&
1573
+ p === preapprovalProvider &&
1574
+ providerAllowedIn(bucket.templateQualifiedName)) {
1575
+ continue;
1576
+ }
1577
+ foreign.push(p);
1578
+ }
1579
+ }
1478
1580
  if (foreign.length > 0) {
1479
1581
  const uniq = [...new Set(foreign)];
1480
1582
  throw new PreparedTransferMismatchError(`relay-prepared transaction references unexpected part${uniq.length === 1 ? "y" : "ies"} ` +
@@ -1482,6 +1584,131 @@ function assertNoForeignParties(leaves, allowed, adminDso, adminDsoRootMax, admi
1482
1584
  `(possible tampered/compromised relay redirecting funds)`);
1483
1585
  }
1484
1586
  }
1587
+ /* ────────────────────────────────────────────────────────────────────────
1588
+ * Standard validator-provided TransferPreapproval.
1589
+ *
1590
+ * A Splice `TransferPreapproval` is `signatory receiver, provider, dso`. The
1591
+ * merchant may create it through its OWN validator, in which case `provider` is
1592
+ * the validator operator party — a THIRD party, distinct from sender/receiver.
1593
+ * That is the stock shape (it keeps validator renewal automation and the
1594
+ * provider's featured-app attribution), so the payer wallet MUST be able to sign
1595
+ * such a transfer. Before this, the generic backstop read the provider as an
1596
+ * injected recipient and refused; only `provider == receiver` happened to pass.
1597
+ *
1598
+ * THE PROVIDER IS NEVER TRUSTED. It is read out of relay-supplied bytes, so it
1599
+ * is bound as a local PROTOCOL ROLE and only after proving, structurally, that
1600
+ * it is the provider of the exact preapproval this transfer delivers through:
1601
+ *
1602
+ * 1. exactly ONE authenticated input contract is a TransferPreapproval;
1603
+ * 2. its `receiver` equals the caller's intended receiver;
1604
+ * 3. its `dso` equals the transfer's instrument admin;
1605
+ * 4. its signatory set is exactly {receiver, provider, dso};
1606
+ * 5. a consequence exercises `TransferPreapproval_Send`/`_SendV2` on the
1607
+ * TransferPreapproval template, targeting THAT contract id.
1608
+ *
1609
+ * The role then buys exactly one thing: the provider stops being "foreign" in
1610
+ * authorization metadata and inside the three payloads that structurally must
1611
+ * name it. It is still foreign in the root transfer record and in every
1612
+ * value-owning position, so it can never become a second money destination.
1613
+ *
1614
+ * Residual, accepted knowingly: a fabricated-but-self-consistent preapproval can
1615
+ * satisfy 1-5 locally, because contract EXISTENCE is proven downstream by the
1616
+ * ledger, not here. The outcome of that is a signed transaction the participant
1617
+ * refuses to execute — denial and retry, never payer-fund loss, because the
1618
+ * money-position rule holds regardless.
1619
+ * ──────────────────────────────────────────────────────────────────────── */
1620
+ const PREAPPROVAL_TEMPLATE = "Splice.AmuletRules:TransferPreapproval";
1621
+ const FEATURED_APP_RIGHT_TEMPLATE = "Splice.Amulet:FeaturedAppRight";
1622
+ const FEATURED_APP_MARKER_TEMPLATE = "Splice.Amulet:FeaturedAppActivityMarker";
1623
+ /** Delivery choices that consume a TransferPreapproval. `_Send` is the legacy
1624
+ * name; the live TransferFactory path uses `_SendV2`. Both are already in
1625
+ * TRANSFER_CONSEQUENCE_CHOICES, so this set only identifies the delivery node. */
1626
+ const PREAPPROVAL_SEND_CHOICES = new Set([
1627
+ "TransferPreapproval_Send",
1628
+ "TransferPreapproval_SendV2",
1629
+ ]);
1630
+ /**
1631
+ * Read `TransferPreapproval` by DAML DECLARATION ORDER — [0] dso, [1] receiver,
1632
+ * [2] provider — with the same label/position-divergence guard the money fields
1633
+ * use, so a relay cannot relabel fields to move the provider slot. Order
1634
+ * CONFIRMED against a real MainNet input contract (see src/__fixtures__/).
1635
+ * Returns undefined when the record does not have that exact shape; the caller
1636
+ * then grants no role and the generic backstop refuses as before.
1637
+ */
1638
+ function extractTransferPreapproval(argument) {
1639
+ let entries;
1640
+ try {
1641
+ entries = recordEntries(argument);
1642
+ }
1643
+ catch {
1644
+ return undefined;
1645
+ }
1646
+ const dsoE = entryByDeclOrder(entries, 0, "dso");
1647
+ const receiverE = entryByDeclOrder(entries, 1, "receiver");
1648
+ const providerE = entryByDeclOrder(entries, 2, "provider");
1649
+ if (!dsoE || !receiverE || !providerE)
1650
+ return undefined;
1651
+ const dso = leafOf(dsoE.value);
1652
+ const receiver = leafOf(receiverE.value);
1653
+ const provider = leafOf(providerE.value);
1654
+ if (dso?.kind !== "party" || receiver?.kind !== "party" || provider?.kind !== "party") {
1655
+ return undefined;
1656
+ }
1657
+ return { dso: dso.value, receiver: receiver.value, provider: provider.value };
1658
+ }
1659
+ /**
1660
+ * Prove that this transfer delivers through a standard TransferPreapproval and
1661
+ * return ITS provider, or undefined when nothing may be granted. See the block
1662
+ * comment above for the five binding rules and the threat argument.
1663
+ *
1664
+ * Deliberately returns undefined (no role, generic backstop applies) rather than
1665
+ * throwing: a transfer that never touches a preapproval, or an ambiguous set of
1666
+ * them, must keep the pre-existing behaviour exactly.
1667
+ */
1668
+ function matchPreapprovalProvider(decoded, expectedReceiver, instrumentAdmin) {
1669
+ // 1. EXACTLY one authenticated preapproval input. Zero → nothing to grant.
1670
+ // Two or more → ambiguous, and picking one would let a relay pair an honest
1671
+ // preapproval with a decoy whose provider it controls. Refuse to grant.
1672
+ const candidates = decoded.inputContracts.filter((ic) => ic.templateQualifiedName === PREAPPROVAL_TEMPLATE);
1673
+ if (candidates.length !== 1)
1674
+ return undefined;
1675
+ const ic = candidates[0];
1676
+ if (ic.argument === undefined || ic.contractId === undefined)
1677
+ return undefined;
1678
+ const pre = extractTransferPreapproval(ic.argument);
1679
+ if (pre === undefined)
1680
+ return undefined;
1681
+ // 2 + 3. The preapproval must be FOR the payment we intend: our receiver, our
1682
+ // instrument admin. A preapproval belonging to anyone else grants
1683
+ // nothing, so a provider harvested from an unrelated contract is inert.
1684
+ if (pre.receiver !== expectedReceiver)
1685
+ return undefined;
1686
+ if (pre.dso !== instrumentAdmin)
1687
+ return undefined;
1688
+ // 4. Signatories must be exactly the protocol trio. A relay that appends an
1689
+ // extra signatory is not presenting a stock preapproval.
1690
+ const sigs = new Set(ic.signatories);
1691
+ if (sigs.size !== 3)
1692
+ return undefined;
1693
+ for (const p of [pre.dso, pre.receiver, pre.provider]) {
1694
+ if (!sigs.has(p))
1695
+ return undefined;
1696
+ }
1697
+ // The provider must never be aliased to a money party — that would smuggle a
1698
+ // money party into the role exception and exempt it everywhere.
1699
+ if (pre.provider === pre.receiver && pre.provider === pre.dso)
1700
+ return undefined;
1701
+ // 5. The delivery consequence must exercise the preapproval template on THAT
1702
+ // contract id. This binds the role to the node that actually spends it,
1703
+ // rather than to a contract merely present in the input set.
1704
+ const delivered = decoded.nodes.some((n) => n.exercise !== undefined &&
1705
+ PREAPPROVAL_SEND_CHOICES.has(n.exercise.choiceId) &&
1706
+ n.exercise.templateQualifiedName === PREAPPROVAL_TEMPLATE &&
1707
+ n.exercise.contractId === ic.contractId);
1708
+ if (!delivered)
1709
+ return undefined;
1710
+ return pre.provider;
1711
+ }
1485
1712
  /**
1486
1713
  * Cross-check the authoritative submitter (Metadata.submitter_info.act_as):
1487
1714
  * REQUIRE a non-empty act_as whose only party is the sender. The non-empty
@@ -1764,7 +1991,14 @@ export function assertPreparedTransferMatches(preparedTransactionB64, expect) {
1764
1991
  // unpinned admin can no longer be aliased to the attacker and smuggled in as a
1765
1992
  // consequence/metadata recipient.
1766
1993
  const leaves = collectSplitPartyLeaves(decoded, rootNodeId);
1767
- assertNoForeignParties(leaves, new Set([expect.sender, expect.receiver]), t.instrumentAdmin, 2 /* expectedAdmin + instrumentId.admin */, expect.instrumentAdmin !== undefined /* trusted iff caller pinned it */);
1994
+ // Standard validator-provided preapprovals put a THIRD party (the provider)
1995
+ // into authorization metadata and three specific payloads. Prove it is the
1996
+ // provider of the exact preapproval this transfer delivers through, then admit
1997
+ // it ONLY at those positions. undefined → no exception, byte-identical to the
1998
+ // pre-existing behaviour (self-provider merchants take this path unchanged,
1999
+ // because there the provider IS the receiver and was never foreign).
2000
+ const preapprovalProvider = matchPreapprovalProvider(decoded, expect.receiver, t.instrumentAdmin);
2001
+ assertNoForeignParties(leaves, new Set([expect.sender, expect.receiver]), t.instrumentAdmin, 2 /* expectedAdmin + instrumentId.admin */, expect.instrumentAdmin !== undefined /* trusted iff caller pinned it */, preapprovalProvider);
1768
2002
  }
1769
2003
  /* ════════════════════════════════════════════════════════════════════════
1770
2004
  * claim path — verify-before-sign for `TransferInstruction_Accept`.
@@ -1 +1 @@
1
- {"version":3,"file":"verify-prepared.js","sourceRoot":"","sources":["../src/verify-prepared.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuGG;AACH,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAG/E;;;;8EAI8E;AAC9E,MAAM,WAAW,GAAG,CAAC,CAAC;AACtB,MAAM,OAAO,GAAG,CAAC,CAAC;AAClB,MAAM,QAAQ,GAAG,CAAC,CAAC;AACnB,MAAM,OAAO,GAAG,CAAC,CAAC;AAsBlB,SAAS,UAAU,CAAC,GAAe,EAAE,GAAW;IAC9C,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,OAAO,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,CAAW,CAAC;QAC/B,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC;QACjC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;QAC5C,KAAK,IAAI,CAAC,CAAC;QACX,IAAI,KAAK,GAAG,EAAE;YAAE,MAAM;IACxB,CAAC;IACD,MAAM,IAAI,mBAAmB,CAAC,+BAA+B,CAAC,CAAC;AACjE,CAAC;AAED;;;;;GAKG;AACH,SAAS,aAAa,CAAC,GAAe;IACpC,MAAM,GAAG,GAAgB,EAAE,CAAC;IAC5B,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,OAAO,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACrD,GAAG,GAAG,EAAE,CAAC;QACT,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC;QACvB,IAAI,KAAK,KAAK,CAAC;YAAE,MAAM,IAAI,mBAAmB,CAAC,wBAAwB,CAAC,CAAC;QACzE,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACrD,GAAG,GAAG,EAAE,CAAC;YACT,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;gBACtC,MAAM,IAAI,mBAAmB,CAAC,wCAAwC,CAAC,CAAC;YAC1E,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/D,GAAG,IAAI,GAAG,CAAC;QACb,CAAC;aAAM,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,GAAG,CAAC;YAClB,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAChD,GAAG,GAAG,EAAE,CAAC;YACT,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;QACjF,CAAC;aAAM,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YAC5B,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM;gBAAE,MAAM,IAAI,mBAAmB,CAAC,8BAA8B,CAAC,CAAC;YACxF,2EAA2E;YAC3E,6EAA6E;YAC7E,wEAAwE;YACxE,2EAA2E;YAC3E,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;YACpE,GAAG,IAAI,CAAC,CAAC;QACX,CAAC;aAAM,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YAC5B,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM;gBAAE,MAAM,IAAI,mBAAmB,CAAC,8BAA8B,CAAC,CAAC;YACxF,GAAG,IAAI,CAAC,CAAC;YACT,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,mBAAmB,CAAC,kCAAkC,IAAI,EAAE,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,2EAA2E;AAC3E,SAAS,SAAS,CAAC,MAAmB,EAAE,KAAa;IACnD,OAAO,MAAM;SACV,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC;SAChF,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAmB,CAAC,CAAC;AACvC,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAS,cAAc,CACrB,MAAmB,EACnB,KAAa,EACb,IAAY;IAEZ,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACrC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,mBAAmB,CAC3B,sBAAsB,KAAK,KAAK,IAAI,aAAa,GAAG,CAAC,MAAM,WAAW;YACpE,gFAAgF,CACnF,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CAAC,MAAmB,EAAE,KAAa;IACvD,OAAO,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC;AACzC,CAAC;AAED,yDAAyD;AACzD,SAAS,IAAI,CAAC,KAAiB;IAC7B,OAAO,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACjE,CAAC;AAED,+DAA+D;AAC/D,SAAS,YAAY,CAAC,MAAmB,EAAE,KAAa;IACtD,OAAO,MAAM,CAAC,MAAM,CAClB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS,CAClF,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,SAAS,gBAAgB,CAAC,MAAmB,EAAE,KAAa;IAC1D,OAAO,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC;AAC5C,CAAC;AAED,qEAAqE;AACrE,SAAS,aAAa,CAAC,MAAmB,EAAE,KAAa;IACvD,OAAO,MAAM,CAAC,MAAM,CAClB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,YAAY,KAAK,SAAS,CAC/E,CAAC;AACJ,CAAC;AAED;6EAC6E;AAC7E,SAAS,iBAAiB,CAAC,MAAmB,EAAE,KAAa;IAC3D,OAAO,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC;AAC7C,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,eAAe,CAAC,KAAiB;IACxC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,mBAAmB,CAC3B,qBAAqB,KAAK,CAAC,MAAM,+CAA+C,CACjF,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,KAAK,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAW,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,kBAAkB,CACzB,MAAmB,EACnB,KAAa,EACb,IAAY;IAEZ,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACzC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,mBAAmB,CAC3B,8BAA8B,KAAK,KAAK,IAAI,aAAa,GAAG,CAAC,MAAM,WAAW;YAC5E,gFAAgF,CACnF,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACpB,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACzC,OAAO,eAAe,CAAC,IAAI,CAAC,YAA0B,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;;GAMG;AACH,SAAS,cAAc,CAAC,KAAiB;IACvC,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAW,CAAC;QAC7B,KAAK,IAAI,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC;QACnC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACnC,KAAK,IAAI,EAAE,CAAC;QACZ,IAAI,KAAK,GAAG,GAAG;YAAE,MAAM;IACzB,CAAC;IACD,MAAM,IAAI,mBAAmB,CAAC,+BAA+B,CAAC,CAAC;AACjE,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,iBAAiB,CACxB,MAAmB,EACnB,KAAa,EACb,IAAY;IAEZ,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACxC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,mBAAmB,CAC3B,6BAA6B,KAAK,KAAK,IAAI,aAAa,GAAG,CAAC,MAAM,WAAW;YAC3E,gFAAgF,CACnF,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACpB,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACzC,OAAO,cAAc,CAAC,IAAI,CAAC,WAAyB,CAAC,CAAC;AACxD,CAAC;AAED;;;;8EAI8E;AAE9E,uDAAuD;AACvD,sEAAsE;AACtE,uEAAuE;AACvE,uBAAuB;AACvB,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,iEAAiE;AACnF,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,sCAAsC;AACxD,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,gEAAgE;AACnF,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,sEAAsE;AACxF,MAAM,WAAW,GAAG,CAAC,CAAC,CAAC,wFAAwF;AAC/G,MAAM,SAAS,GAAG,CAAC,CAAC;AACpB,MAAM,OAAO,GAAG,CAAC,CAAC;AAClB,MAAM,MAAM,GAAG,CAAC,CAAC;AACjB,MAAM,aAAa,GAAG,CAAC,CAAC,CAAC,sEAAsE;AAC/F,MAAM,UAAU,GAAG,EAAE,CAAC;AACtB,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,MAAM,UAAU,GAAG,EAAE,CAAC,CAAC,sDAAsD;AAC7E,MAAM,SAAS,GAAG,EAAE,CAAC,CAAC,sDAAsD;AAC5E,MAAM,QAAQ,GAAG,EAAE,CAAC;AACpB,MAAM,SAAS,GAAG,EAAE,CAAC;AACrB,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC,2EAA2E;AAC9F;;;;;;;GAOG;AACH,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAS;IAC7C,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,WAAW;IACX,SAAS;IACT,OAAO;IACP,MAAM;IACN,aAAa;IACb,UAAU;IACV,MAAM;IACN,UAAU;IACV,SAAS;IACT,QAAQ;IACR,SAAS;IACT,MAAM;CACP,CAAC,CAAC;AACH,wEAAwE;AACxE,MAAM,aAAa,GAAG,CAAC,CAAC;AACxB,MAAM,QAAQ,GAAG,CAAC,CAAC;AACnB,MAAM,QAAQ,GAAG,CAAC,CAAC;AACnB,MAAM,aAAa,GAAG,CAAC,CAAC;AACxB,MAAM,cAAc,GAAG,CAAC,CAAC;AACzB,MAAM,aAAa,GAAG,CAAC,CAAC;AACxB,iFAAiF;AACjF,iFAAiF;AACjF,mEAAmE;AACnE,MAAM,WAAW,GAAG,CAAC,CAAC;AACtB,MAAM,SAAS,GAAG,CAAC,CAAC;AACpB,MAAM,WAAW,GAAG,CAAC,CAAC;AAsBtB,MAAM,SAAS,GAAG,EAAE,CAAC;AAErB,iFAAiF;AACjF,SAAS,aAAa,CAAC,KAAiB;IACtC,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,GAAG,GAAG,cAAc,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;IACxD,IAAI,GAAG,KAAK,SAAS;QAAE,MAAM,IAAI,mBAAmB,CAAC,yBAAyB,CAAC,CAAC;IAChF,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;QAC7D,MAAM,CAAC,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QAC5B,2EAA2E;QAC3E,uEAAuE;QACvE,MAAM,UAAU,GAAG,cAAc,CAAC,CAAC,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC;QACpE,MAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC;QAClE,IAAI,QAAQ,KAAK,SAAS;YAAE,MAAM,IAAI,mBAAmB,CAAC,4BAA4B,CAAC,CAAC;QACxF,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IACxE,CAAC,CAAC,CAAC;IACH,0EAA0E;IAC1E,6EAA6E;IAC7E,0EAA0E;IAC1E,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,KAAK,KAAK,EAAE;YAAE,SAAS;QAC7B,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,mBAAmB,CAC3B,yCAAyC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK;gBACnE,sCAAsC,CACzC,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,uBAAuB,CAAC,KAAiB;IAChD,MAAM,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAC/B,kCAAkC;IAClC,MAAM,UAAU,GAAyC;QACvD,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE;QACzC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE;QACrC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE;QACnC,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE;QACvC,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE;QAC3C,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE;QACnC,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE;QAC3C,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE;QACzC,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE;KAC1C,CAAC;IACF,8EAA8E;IAC9E,2EAA2E;IAC3E,gEAAgE;IAChE,MAAM,aAAa,GAAyC;QAC1D,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE;KACtC,CAAC;IACF,+EAA+E;IAC/E,6EAA6E;IAC7E,+EAA+E;IAC/E,iFAAiF;IACjF,iEAAiE;IACjE,MAAM,cAAc,GAAyC;QAC3D,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE;KAC9C,CAAC;IACF,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,MAAM,IAAI,mBAAmB,CAC3B,sBAAsB,CAAC,CAAC,IAAI,QAAQ,KAAK,8BAA8B;gBACrE,6DAA6D,CAChE,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;IAC7B,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,MAAM,IAAI,mBAAmB,CAC3B,sBAAsB,CAAC,CAAC,IAAI,QAAQ,KAAK,8BAA8B;gBACrE,6DAA6D,CAChE,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;IAC7B,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,MAAM,IAAI,mBAAmB,CAC3B,sBAAsB,CAAC,CAAC,IAAI,QAAQ,KAAK,8BAA8B;gBACrE,6DAA6D,CAChE,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QAChB,MAAM,IAAI,mBAAmB,CAC3B,8EAA8E,CAC/E,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,MAAM,CAAC,KAAiB;IAC/B,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAG,cAAc,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;IACxD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;IACtE,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;IAC9D,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;IAC5E,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;IACrD,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACnE,2EAA2E;IAC3E,iEAAiE;IACjE,MAAM,KAAK,GAAG,iBAAiB,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;IAC3D,8EAA8E;IAC9E,6EAA6E;IAC7E,4EAA4E;IAC5E,yEAAyE;IACzE,6EAA6E;IAC7E,8EAA8E;IAC9E,gFAAgF;IAChF,iFAAiF;IACjF,8EAA8E;IAC9E,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC;IAC9F,sEAAsE;IACtE,gFAAgF;IAChF,gFAAgF;IAChF,8EAA8E;IAC9E,+EAA+E;IAC/E,iFAAiF;IACjF,kFAAkF;IAClF,kFAAkF;IAClF,kEAAkE;IAClE,MAAM,SAAS,GAAG,kBAAkB,CAAC,CAAC,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;IACxE,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC;IACvF,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;qDAIqD;AACrD,SAAS,iBAAiB,CAAC,CAAS;IAClC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;GAKG;AACH,SAAS,uBAAuB,CAAC,KAAiB;IAChD,KAAK,MAAM,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,mBAAmB,CAC3B,kDAAkD,CAAC,CAAC,KAAK,uBAAuB;gBAC9E,8DAA8D,CACjE,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAS,kBAAkB,CACzB,KAAiB,EACjB,GAAa,EACb,KAAa;IAEb,IAAI,KAAK,GAAG,SAAS;QAAE,MAAM,IAAI,mBAAmB,CAAC,wBAAwB,CAAC,CAAC;IAC/E,8EAA8E;IAC9E,2EAA2E;IAC3E,6EAA6E;IAC7E,wEAAwE;IACxE,6EAA6E;IAC7E,6EAA6E;IAC7E,6CAA6C;IAC7C,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3B,IAAI,IAAI,EAAE,CAAC;QACT,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;YAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChD,OAAO,CAAC,wCAAwC;IAClD,CAAC;IACD,8EAA8E;IAC9E,2EAA2E;IAC3E,kEAAkE;IAClE,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAC/B,oCAAoC;IACpC,MAAM,GAAG,GAAG,cAAc,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;IACxD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QACrC,KAAK,MAAM,EAAE,IAAI,SAAS,CAAC,SAAS,EAAE,aAAa,CAAC,EAAE,CAAC;YACrD,MAAM,CAAC,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;YAC5B,MAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC;YAClE,IAAI,QAAQ,KAAK,SAAS;gBAAE,kBAAkB,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO;IACT,CAAC;IACD,0BAA0B;IAC1B,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;IACrD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,KAAK,MAAM,EAAE,IAAI,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,EAAE,CAAC;YAC/D,kBAAkB,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACzC,CAAC;QACD,OAAO;IACT,CAAC;IACD,iCAAiC;IACjC,MAAM,GAAG,GAAG,cAAc,CAAC,CAAC,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC;IAC5D,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,cAAc,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAC;QACnF,IAAI,KAAK,KAAK,SAAS;YAAE,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACnE,OAAO;IACT,CAAC;IACD,gCAAgC;IAChC,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;IAC9D,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;QACrF,IAAI,KAAK,KAAK,SAAS;YAAE,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACnE,OAAO;IACT,CAAC;IACD,2EAA2E;IAC3E,2EAA2E;IAC3E,2EAA2E;IAC3E,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;IAC7D,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC;YAClE,MAAM,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;YAC/B,MAAM,GAAG,GAAG,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC;YAC7D,IAAI,GAAG,KAAK,SAAS;gBAAE,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YAC/D,MAAM,GAAG,GAAG,cAAc,CAAC,CAAC,EAAE,WAAW,EAAE,oBAAoB,CAAC,CAAC;YACjE,IAAI,GAAG,KAAK,SAAS;gBAAE,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACjE,CAAC;QACD,OAAO;IACT,CAAC;IACD,8EAA8E;IAC9E,wDAAwD;IACxD,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC;IAChE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC;YACnE,MAAM,GAAG,GAAG,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,qBAAqB,CAAC,CAAC;YACrF,IAAI,GAAG,KAAK,SAAS;gBAAE,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAS,sCAAsC,CAC7C,IAAgB,EAChB,GAAa,EACb,KAAa;IAEb,IAAI,KAAK,GAAG,SAAS;QAAE,MAAM,IAAI,mBAAmB,CAAC,+BAA+B,CAAC,CAAC;IACtF,MAAM,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAC9B,0EAA0E;IAC1E,GAAG,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAC/C,6EAA6E;IAC7E,sEAAsE;IACtE,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,EAAE,QAAQ,EAAE,8BAA8B,CAAC,CAAC;IAC9E,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;QAC1F,IAAI,QAAQ,KAAK,SAAS;YAAE,kBAAkB,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AAED;;8EAE8E;AAE9E,yEAAyE;AACzE,yEAAyE;AACzE,mDAAmD;AACnD,uDAAuD;AACvD,kDAAkD;AAClD,qEAAqE;AACrE,sEAAsE;AACtE,uEAAuE;AACvE,8EAA8E;AAC9E,4CAA4C;AAC5C,MAAM,cAAc,GAAG,CAAC,CAAC;AACzB,MAAM,WAAW,GAAG,CAAC,CAAC;AACtB,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAC5B,MAAM,SAAS,GAAG,CAAC,CAAC;AACpB,8EAA8E;AAC9E,2EAA2E;AAC3E,qEAAqE;AACrE,oDAAoD;AACpD,4EAA4E;AAC5E,+EAA+E;AAC/E,yEAAyE;AACzE,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAC7B,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAC9B,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAC7B,MAAM,4BAA4B,GAAG,CAAC,CAAC;AACvC,MAAM,4BAA4B,GAAG,EAAE,CAAC;AACxC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAC9B,6EAA6E;AAC7E,6EAA6E;AAC7E,MAAM,KAAK,GAAG,CAAC,CAAC;AAChB,MAAM,QAAQ,GAAG,CAAC,CAAC;AACnB,MAAM,QAAQ,GAAG,CAAC,CAAC;AACnB,MAAM,OAAO,GAAG,CAAC,CAAC;AAClB,MAAM,OAAO,GAAG,IAAI,CAAC;AACrB,+CAA+C;AAC/C,MAAM,aAAa,GAAG,CAAC,CAAC;AACxB,MAAM,YAAY,GAAG,CAAC,CAAC;AACvB,MAAM,eAAe,GAAG,CAAC,CAAC;AAC1B,MAAM,eAAe,GAAG,CAAC,CAAC;AAC1B,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAC9B,yFAAyF;AACzF,MAAM,cAAc,GAAG,CAAC,CAAC,CAAC,wDAAwD;AAClF,MAAM,cAAc,GAAG,CAAC,CAAC;AACzB,MAAM,cAAc,GAAG,CAAC,CAAC;AACzB,MAAM,eAAe,GAAG,CAAC,CAAC;AAC1B,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAC5B,MAAM,YAAY,GAAG,CAAC,CAAC;AACvB,MAAM,eAAe,GAAG,EAAE,CAAC;AAC3B,MAAM,WAAW,GAAG,EAAE,CAAC;AACvB,MAAM,SAAS,GAAG,EAAE,CAAC;AACrB,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAC/B,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC,mDAAmD;AACtE,mDAAmD;AACnD,MAAM,kBAAkB,GAAG,CAAC,CAAC,CAAC,wEAAwE;AACtG,MAAM,eAAe,GAAG,CAAC,CAAC;AAC1B,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAC7B,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAC9B,MAAM,UAAU,GAAG,CAAC,CAAC,CAAC,iDAAiD;AACvE,mFAAmF;AACnF,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAC5B,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAC7B,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAC/B,MAAM,SAAS,GAAG,CAAC,CAAC,CAAC,gDAAgD;AACrE,gFAAgF;AAChF,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,4CAA4C;AAC/D,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,2CAA2C;AAC/D,MAAM,gBAAgB,GAAG,CAAC,CAAC,CAAC,+DAA+D;AAC3F,MAAM,aAAa,GAAG,CAAC,CAAC,CAAC,sDAAsD;AAC/E,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAC5B,sFAAsF;AACtF,gFAAgF;AAChF,MAAM,aAAa,GAAG,CAAC,CAAC;AACxB,MAAM,cAAc,GAAG,CAAC,CAAC;AACzB,MAAM,cAAc,GAAG,CAAC,CAAC;AAEzB,gDAAgD;AAChD,MAAM,eAAe,GAAG,0BAA0B,CAAC;AA2GnD,yEAAyE;AACzE,SAAS,YAAY,CAAC,MAAmB,EAAE,KAAa;IACtD,OAAO,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;GAMG;AACH,SAAS,uBAAuB,CAAC,OAAmB;IAClD,mEAAmE;IACnE,+EAA+E;IAC/E,gFAAgF;IAChF,6EAA6E;IAC7E,+EAA+E;IAC/E,8EAA8E;IAC9E,kDAAkD;IAClD,IAAI,UAAkC,CAAC;IACvC,IAAI,UAAkC,CAAC;IACvC,IAAI,wBAAwB,GAAG,KAAK,CAAC;IACrC,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QACjC,UAAU,GAAG,cAAc,CAAC,CAAC,EAAE,cAAc,EAAE,wBAAwB,CAAC,CAAC;QACzE,UAAU,GAAG,cAAc,CAAC,CAAC,EAAE,cAAc,EAAE,wBAAwB,CAAC,CAAC;QACzE,wBAAwB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,aAAa,CAAC,CAAC;IACtE,CAAC;IAAC,MAAM,CAAC;QACP,4DAA4D;IAC9D,CAAC;IACD,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QACzD,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;IACnD,CAAC;IACD,8EAA8E;IAC9E,gFAAgF;IAChF,gCAAgC;IAChC,IAAI,wBAAwB;QAAE,OAAO,SAAS,CAAC;IAC/C,4EAA4E;IAC5E,+EAA+E;IAC/E,+DAA+D;IAC/D,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,SAAS,CAAC;IACnE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;IACtF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAS,YAAY,CAAC,MAAkB;IAUtC,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAClC,qEAAqE;IACrE,2EAA2E;IAC3E,wEAAwE;IACxE,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,EAAE,aAAa,EAAE,gBAAgB,CAAC,CAAC;IACpE,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;IACjE,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,EAAE,eAAe,EAAE,kBAAkB,CAAC,CAAC;IAC1E,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,EAAE,eAAe,EAAE,kBAAkB,CAAC,CAAC;IAC1E,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,EAAE,mBAAmB,EAAE,sBAAsB,CAAC,CAAC;IACpF,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,MAAM,CACpE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CACvB,CAAC;IACF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,0BAA0B;IACxG,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,2BAA2B;IAEvG,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QACzC,MAAM,aAAa,GAAG,cAAc,CAAC,QAAQ,EAAE,YAAY,EAAE,oBAAoB,CAAC,CAAC;QACnF,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,EAAE,eAAe,EAAE,uBAAuB,CAAC,CAAC;QAClF,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,EAAE,SAAS,EAAE,0BAA0B,CAAC,CAAC;QAC/E,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5D,MAAM,IAAI,GAAG,cAAc,CAAC,QAAQ,EAAE,cAAc,EAAE,sBAAsB,CAAC,CAAC;QAC9E,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,EAAE,cAAc,EAAE,sBAAsB,CAAC,CAAC;QAClF,MAAM,MAAM,GAAiB,EAAE,CAAC;QAChC,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAG;YAChB,GAAG,YAAY,CAAC,QAAQ,EAAE,cAAc,CAAC;YACzC,GAAG,YAAY,CAAC,QAAQ,EAAE,eAAe,CAAC;YAC1C,GAAG,YAAY,CAAC,QAAQ,EAAE,iBAAiB,CAAC;YAC5C,GAAG,YAAY,CAAC,QAAQ,EAAE,mBAAmB,CAAC;SAC/C,CAAC;QACF,6EAA6E;QAC7E,uEAAuE;QACvE,uEAAuE;QACvE,qEAAqE;QACrE,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;QAC/D,IAAI,KAAK,KAAK,SAAS;YAAE,sCAAsC,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QACrF,MAAM,GAAG,GACP,aAAa,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS;YACjD,CAAC,CAAC;gBACE,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC;gBAC7B,WAAW,EAAE,MAAM;gBACnB,UAAU,EAAE,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;gBAC/D,qBAAqB,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;aACtF;YACH,CAAC,CAAC,SAAS,CAAC;QAChB,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAC1E,CAAC;IACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,GAAG,GAAG,cAAc,CAAC,OAAO,EAAE,eAAe,EAAE,iBAAiB,CAAC,CAAC;QACxE,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,CAAC,CAAC;QAChF,MAAM,SAAS,GAAG;YAChB,GAAG,YAAY,CAAC,OAAO,EAAE,kBAAkB,CAAC;YAC5C,GAAG,YAAY,CAAC,OAAO,EAAE,mBAAmB,CAAC;SAC9C,CAAC;QACF,wEAAwE;QACxE,6EAA6E;QAC7E,oEAAoE;QACpE,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QAC/D,IAAI,IAAI,KAAK,SAAS;YAAE,sCAAsC,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QACnF,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,sEAAsE;YACtE,4EAA4E;YAC5E,sCAAsC;YACtC,MAAM,EAAE;gBACN,qBAAqB,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;gBACvF,QAAQ,EAAE,GAAG;aACd;YACD,QAAQ,EAAE,EAAE;YACZ,MAAM,EAAE,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;YACtC,SAAS;SACV,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IACnE,CAAC;IACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,0EAA0E;QAC1E,wEAAwE;QACxE,mEAAmE;QACnE,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,SAAS,GAAG;YAChB,GAAG,YAAY,CAAC,OAAO,EAAE,iBAAiB,CAAC;YAC3C,GAAG,YAAY,CAAC,OAAO,EAAE,kBAAkB,CAAC;YAC5C,GAAG,YAAY,CAAC,OAAO,EAAE,oBAAoB,CAAC;SAC/C,CAAC;QACF,2EAA2E;QAC3E,uCAAuC;QACvC,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAC7D,IAAI,IAAI,KAAK,SAAS;YAAE,sCAAsC,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QACnF,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC;IAChE,CAAC;IACD,6EAA6E;IAC7E,+EAA+E;IAC/E,2EAA2E;IAC3E,mEAAmE;IACnE,MAAM,OAAO,GAAG,aAAa,CAAC,UAAwB,CAAC,CAAC;IACxD,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,GAAG,GAAG,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAC/D,IAAI,GAAG,KAAK,SAAS;QAAE,sCAAsC,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;IACjF,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC;AACvE,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,sBAA8B;IAC3D,IAAI,KAAa,CAAC;IAClB,IAAI,CAAC;QACH,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,mBAAmB,CAAC,yCAAyC,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,mBAAmB,CAAC,4CAA4C,CAAC,CAAC;IAEpG,MAAM,GAAG,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAEjC,oEAAoE;IACpE,+EAA+E;IAC/E,6EAA6E;IAC7E,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,cAAkC,CAAC;IACvC,IAAI,eAAmC,CAAC;IACxC,IAAI,sBAA0C,CAAC;IAC/C,IAAI,sBAA0C,CAAC;IAC/C,IAAI,aAAiC,CAAC;IACtC,MAAM,mBAAmB,GAAiB,EAAE,CAAC;IAC7C,MAAM,sBAAsB,GAAa,EAAE,CAAC;IAC5C,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,EAAE,WAAW,EAAE,8BAA8B,CAAC,CAAC;IAClF,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,EAAE,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QACnC,MAAM,EAAE,GAAG,cAAc,CAAC,EAAE,EAAE,iBAAiB,EAAE,yBAAyB,CAAC,CAAC;QAC5E,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,KAAK,MAAM,CAAC,IAAI,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,CAAC;QACD,2EAA2E;QAC3E,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,EAAE,kBAAkB,EAAE,0BAA0B,CAAC,CAAC;QAChF,IAAI,IAAI,KAAK,SAAS;YAAE,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,gFAAgF;QAChF,eAAe,GAAG,iBAAiB,CAAC,EAAE,EAAE,mBAAmB,EAAE,2BAA2B,CAAC,CAAC;QAC1F,sBAAsB,GAAG,iBAAiB,CACxC,EAAE,EACF,4BAA4B,EAC5B,oCAAoC,CACrC,CAAC;QACF,sBAAsB,GAAG,iBAAiB,CACxC,EAAE,EACF,4BAA4B,EAC5B,oCAAoC,CACrC,CAAC;QACF,aAAa,GAAG,iBAAiB,CAAC,EAAE,EAAE,kBAAkB,EAAE,0BAA0B,CAAC,CAAC;QACtF,4EAA4E;QAC5E,8EAA8E;QAC9E,4EAA4E;QAC5E,+EAA+E;QAC/E,8EAA8E;QAC9E,gFAAgF;QAChF,8EAA8E;QAC9E,gFAAgF;QAChF,KAAK,MAAM,EAAE,IAAI,SAAS,CAAC,EAAE,EAAE,kBAAkB,CAAC,EAAE,CAAC;YACnD,MAAM,QAAQ,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;YACnC,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC;YACrE,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,0EAA0E;gBAC1E,0EAA0E;gBAC1E,sEAAsE;gBACtE,uEAAuE;gBACvE,wEAAwE;gBACxE,wEAAwE;gBACxE,+BAA+B;gBAC/B,MAAM,IAAI,mBAAmB,CAC3B,iFAAiF;oBAC/E,kFAAkF,CACrF,CAAC;YACJ,CAAC;YACD,MAAM,YAAY,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC7C,MAAM,GAAG,GAAG,cAAc,CAAC,YAAY,EAAE,eAAe,EAAE,2BAA2B,CAAC,CAAC;YACvF,IAAI,GAAG,KAAK,SAAS;gBAAE,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrD,sBAAsB,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC,CAAC;YAC/E,sBAAsB,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC,CAAC;YAChF,MAAM,KAAK,GAAG,cAAc,CAAC,YAAY,EAAE,UAAU,EAAE,sBAAsB,CAAC,CAAC;YAC/E,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,sCAAsC,CAAC,KAAK,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,cAAc,CAAC,GAAG,EAAE,cAAc,EAAE,iCAAiC,CAAC,CAAC;IAC3F,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,IAAI,mBAAmB,CAAC,wCAAwC,CAAC,CAAC;IAC1E,CAAC;IACD,MAAM,EAAE,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,SAAS,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAEhD,MAAM,KAAK,GAAkB,EAAE,CAAC;IAChC,MAAM,SAAS,GAAsB,EAAE,CAAC;IACxC,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC;QAC3C,MAAM,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QAC9B,wEAAwE;QACxE,qEAAqE;QACrE,0BAA0B;QAC1B,MAAM,WAAW,GAAG,cAAc,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,4EAA4E;QAC5E,6EAA6E;QAC7E,4EAA4E;QAC5E,6EAA6E;QAC7E,MAAM,EAAE,GAAG,cAAc,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QACjD,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAC3B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,KAAK,OAAO,IAAI,CAAC,CAAC,KAAK,KAAK,OAAO,CACzE,CAAC;QACF,IAAI,EAAE,KAAK,SAAS,IAAI,cAAc,EAAE,CAAC;YACvC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;YAC1F,SAAS;QACX,CAAC;QACD,MAAM,EAAE,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC;YACT,MAAM;YACN,iBAAiB,EAAE,IAAI;YACvB,IAAI,EAAE,EAAE,CAAC,IAAI;YACb,QAAQ,EAAE,EAAE,CAAC,QAAQ;YACrB,MAAM,EAAE,EAAE,CAAC,MAAM;YACjB,QAAQ,EAAE,EAAE,CAAC,QAAQ;YACrB,MAAM,EAAE,EAAE,CAAC,MAAM;YACjB,SAAS,EAAE,EAAE,CAAC,SAAS;SACxB,CAAC,CAAC;QACH,IAAI,EAAE,CAAC,IAAI,KAAK,UAAU,IAAI,EAAE,CAAC,QAAQ,KAAK,SAAS;YAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;IACvF,CAAC;IACD,OAAO;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,SAAS;QACT,cAAc;QACd,eAAe;QACf,sBAAsB;QACtB,sBAAsB;QACtB,aAAa;QACb,mBAAmB;QACnB,sBAAsB;KACvB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,SAAS,+BAA+B,CACtC,OAAwB,EACxB,eAAuB;AACvB;wEACwE;AACxE,YAAoB,eAAe;AACnC;;;;;;8BAM8B;AAC9B,4BAA+C,EAAE;IAEjD,4EAA4E;IAC5E,8EAA8E;IAC9E,wEAAwE;IACxE,4DAA4D;IAC5D,MAAM,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,eAAe,CAAC,CAAC;IACzF,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,6BAA6B,CACrC,0CAA0C,eAAe,+BAA+B;YACtF,uCAAuC,CAC1C,CAAC;IACJ,CAAC;IACD,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,6BAA6B,CACrC,uCAAuC,gBAAgB,CAAC,MAAM,IAAI,SAAS,GAAG;YAC5E,wFAAwF,CAC3F,CAAC;IACJ,CAAC;IACD,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAC7C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,eAAe,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CACzF,CAAC;IACF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,6BAA6B,CACrC,6DAA6D;YAC3D,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAC3F,CAAC;IACJ,CAAC;IAED,8EAA8E;IAC9E,+EAA+E;IAC/E,kCAAkC;IAClC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,MAAM,IAAI,6BAA6B,CACrC,kDAAkD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY;gBACvF,uFAAuF;gBACvF,oCAAoC,CACvC,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,IAAI,6BAA6B,CACrC,kDAAkD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY;gBACvF,mDAAmD,CACtD,CAAC;QACJ,CAAC;QACD,8EAA8E;QAC9E,+EAA+E;QAC/E,8EAA8E;QAC9E,6EAA6E;QAC7E,2EAA2E;QAC3E,0EAA0E;QAC1E,wEAAwE;QACxE,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC5D,MAAM,IAAI,6BAA6B,CACrC,4DAA4D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI;gBACzF,yFAAyF;gBACzF,4CAA4C,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,YAAY,CAC1F,CAAC;QACJ,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,6BAA6B,CACrC,kCAAkC,OAAO,CAAC,KAAK,CAAC,MAAM,qCAAqC;YACzF,IAAI,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,sDAAsD;YACzF,iCAAiC,CACpC,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC5C,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACjC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,6BAA6B,CACrC,oDAAoD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK;gBAClF,yCAAyC,CAC5C,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAW,CAAC;IAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAClC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,IAAI,6BAA6B,CACrC,sCAAsC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,6BAA6B;YACvF,kBAAkB,CACrB,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACpE,MAAM,IAAI,6BAA6B,CACrC,iDAAiD,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,YAAY;YAC1F,kBAAkB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,IAAI,SAAS,CAAC,sBAAsB,CACrF,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,KAAK,eAAe,EAAE,CAAC;QACnD,MAAM,IAAI,6BAA6B,CACrC,+CAA+C,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK;YAC5F,YAAY,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,qBAAqB,CACnE,CAAC;IACJ,CAAC;IAED,4EAA4E;IAC5E,2EAA2E;IAC3E,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC;IACvB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,EAAY,CAAC;QACjC,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,SAAS;QAChC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,IAAI,6BAA6B,CACrC,uDAAuD,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,iBAAiB;gBACxF,0BAA0B,CAC7B,CAAC;QACJ,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvD,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACxE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,6BAA6B,CACrC,uCAAuC,OAAO,CAAC,MAAM,uCAAuC;YAC1F,QAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB;YACtF,2DAA2D,CAC9D,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;AAC7D,CAAC;AAED;;;;;;;8EAO8E;AAE9E;iFACiF;AACjF;;;;;;;;;;+DAU+D;AAC/D,MAAM,4BAA4B,GAAG,iBAAiB,CAAC;AAEvD;;;;;;;;;;;;;;;;GAgBG;AACH,SAAS,yBAAyB,CAChC,cAAkC,EAClC,QAA4B;IAE5B,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,CAAC,2CAA2C;IAC/E,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,IAAI,6BAA6B,CACrC,2EAA2E;YACzE,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,qBAAqB,CACnD,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,GAAG,cAAc,KAAK,QAAQ,CAAC;IAC1C,IAAI,CAAC,OAAO,IAAI,cAAc,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC;QAC3D,yEAAyE;QACzE,6EAA6E;QAC7E,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACzD,OAAO,GAAG,4BAA4B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtD,CAAC;IACD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,6BAA6B,CACrC,iDAAiD,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,cAAc;YAC3F,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,8DAA8D;YACzF,qDAAqD,CACxD,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;kEAIkE;AAClE,MAAM,cAAc,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAE3C,iFAAiF;AACjF,SAAS,UAAU,CAAC,MAA0B;IAC5C,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC;IACrC,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAC;IACb,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,qBAAqB,CAAC,OAAwB,EAAE,KAAa;IACpE,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACjD,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,IAAI,IAAI,GAAG,KAAK,GAAG,cAAc,IAAI,IAAI,GAAG,KAAK,GAAG,cAAc,EAAE,CAAC;YACnE,MAAM,IAAI,6BAA6B,CACrC,gDAAgD,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,OAAO;gBACjF,6CAA6C,CAChD,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACpD,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;QACrD,MAAM,IAAI,6BAA6B,CACrC,+CAA+C,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,OAAO;YACrF,0EAA0E,CAC7E,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC1D,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;QAC/C,MAAM,IAAI,6BAA6B,CACrC,yDAAyD,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,IAAI;YACzF,2CAA2C,CAC9C,CAAC;IACJ,CAAC;IACD,iFAAiF;IACjF,8EAA8E;IAC9E,0EAA0E;IAC1E,+EAA+E;IAC/E,qDAAqD;IACrD,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC1D,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,KAAK,GAAG,cAAc,EAAE,CAAC;QAC/D,MAAM,IAAI,6BAA6B,CACrC,yDAAyD,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,IAAI;YACzF,wFAAwF;YACxF,kBAAkB,CACrB,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,qBAAqB,CAC5B,EAAmB,EACnB,QAA4B;IAE5B,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO;IACnC,IAAI,EAAE,CAAC,qBAAqB,KAAK,SAAS,EAAE,CAAC;QAC3C,MAAM,IAAI,6BAA6B,CACrC,kFAAkF;YAChF,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,qBAAqB,CACnD,CAAC;IACJ,CAAC;IACD,IAAI,EAAE,CAAC,qBAAqB,KAAK,QAAQ,EAAE,CAAC;QAC1C,MAAM,IAAI,6BAA6B,CACrC,iDAAiD,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,qBAAqB,CAAC,KAAK;YAC5F,YAAY,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,mDAAmD,CAC1F,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,uBAAuB,CAC9B,EAAmB,EACnB,QAA4B;IAE5B,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO;IACnC,IAAI,EAAE,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,IAAI,6BAA6B,CACrC,kFAAkF;YAChF,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,qBAAqB,CACnD,CAAC;IACJ,CAAC;IACD,IAAI,EAAE,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,IAAI,6BAA6B,CACrC,4CAA4C,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK;YAC5E,YAAY,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,sBAAsB;YAC1D,wEAAwE,CAC3E,CAAC;IACJ,CAAC;AACH,CAAC;AA0BD;;;;;;GAMG;AACH,SAAS,uBAAuB,CAAC,OAAwB,EAAE,UAAkB;IAC3E,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC;QAC1C,IAAI,MAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC1C,2EAA2E;YAC3E,yEAAyE;YACzE,2CAA2C;YAC3C,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;YAC1D,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChC,IAAI,KAAK,KAAK,IAAI,CAAC,QAAQ,CAAC,WAAW;oBAAE,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;YACnF,CAAC;QACH,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM;gBAAE,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAC3E,CAAC;QACD,yEAAyE;QACzE,0EAA0E;QAC1E,+CAA+C;QAC/C,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS;YAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IACD,2EAA2E;IAC3E,0EAA0E;IAC1E,6CAA6C;IAC7C,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,mBAAmB;QAAE,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;IACzF,gFAAgF;IAChF,yEAAyE;IACzE,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,sBAAsB;QAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAChC,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,sBAAsB,CAC7B,MAAwB,EACxB,OAAoB,EACpB,QAA4B,EAC5B,eAAuB,EACvB,eAAwB;IAExB,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,6EAA6E;IAC7E,8EAA8E;IAC9E,8EAA8E;IAC9E,IAAI,cAAc,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,SAAS;QAC7B,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,KAAK,QAAQ,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;YACnE,cAAc,EAAE,CAAC;YACjB,SAAS;QACX,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,6EAA6E;IAC7E,gFAAgF;IAChF,kFAAkF;IAClF,6EAA6E;IAC7E,uEAAuE;IACvE,yEAAyE;IACzE,+EAA+E;IAC/E,8EAA8E;IAC9E,2EAA2E;IAC3E,4EAA4E;IAC5E,iEAAiE;IACjE,+EAA+E;IAC/E,6EAA6E;IAC7E,6EAA6E;IAC7E,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACjC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,SAAS;QAC7B,IAAI,QAAQ,KAAK,SAAS,IAAI,eAAe,IAAI,CAAC,KAAK,QAAQ;YAAE,SAAS;QAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QACnC,MAAM,IAAI,6BAA6B,CACrC,wDAAwD,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG;YACxF,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB;YACtE,yDAAyD,CAC5D,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,mBAAmB,CAAC,KAAe,EAAE,MAAc;IAC1D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,6BAA6B,CACrC,6EAA6E;YAC3E,4EAA4E,CAC/E,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;IACrD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,6BAA6B,CACrC,sCAAsC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,mBAAmB;YAC5E,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,qBAAqB,CACjD,CAAC;IACJ,CAAC;AACH,CAAC;AAgCD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,SAAS,gBAAgB,CACvB,OAAsB,EACtB,QAAgB,EAChB,KAAa;IAEb,0EAA0E;IAC1E,8EAA8E;IAC9E,oCAAoC;IACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,IAAI,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,EAAE,CAAC;YAClD,MAAM,IAAI,mBAAmB,CAC3B,yBAAyB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,wBAAwB,CAAC,gBAAgB;gBACrF,0CAA0C,QAAQ,sBAAsB;gBACxE,8DAA8D,CACjE,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5B,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACtC,iFAAiF;IACjF,IAAI,CAAC,CAAC,KAAK,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;QACxC,MAAM,IAAI,mBAAmB,CAC3B,6CAA6C,QAAQ,gBAAgB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG;YAC7F,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,wCAAwC;YACpE,8DAA8D,CACjE,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;mEAEmE;AACnE,SAAS,cAAc,CAAC,KAAiB;IACvC,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IACrD,MAAM,GAAG,GAAG,gBAAgB,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5D,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnD,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC7C,MAAM,IAAI,mBAAmB,CAAC,mCAAmC,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACtC,MAAM,IAAI,mBAAmB,CAAC,6BAA6B,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;AACtD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,WAAuB;IACrD,MAAM,GAAG,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IACvC,8EAA8E;IAC9E,8BAA8B;IAC9B,kEAAkE;IAClE,+EAA+E;IAC/E,0EAA0E;IAC1E,6EAA6E;IAC7E,wDAAwD;IACxD,EAAE;IACF,4EAA4E;IAC5E,+EAA+E;IAC/E,6EAA6E;IAC7E,8EAA8E;IAC9E,8EAA8E;IAC9E,yEAAyE;IACzE,+EAA+E;IAC/E,2EAA2E;IAC3E,4EAA4E;IAC5E,4EAA4E;IAC5E,0EAA0E;IAC1E,mEAAmE;IACnE,MAAM,WAAW,GAAG,gBAAgB,CAAC,GAAG,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC;IAChE,IAAI,CAAC,WAAW;QAAE,MAAM,IAAI,mBAAmB,CAAC,qDAAqD,CAAC,CAAC;IAEvG,MAAM,CAAC,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IAErC,8EAA8E;IAC9E,+EAA+E;IAC/E,+EAA+E;IAC/E,mFAAmF;IACnF,2EAA2E;IAC3E,0EAA0E;IAC1E,EAAE;IACF,gFAAgF;IAChF,sEAAsE;IACtE,4EAA4E;IAC5E,sEAAsE;IACtE,2EAA2E;IAC3E,8EAA8E;IAC9E,gFAAgF;IAChF,4EAA4E;IAC5E,2EAA2E;IAC3E,8EAA8E;IAC9E,0EAA0E;IAC1E,uEAAuE;IACvE,MAAM,OAAO,GAAG,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC;IAEtD,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3D,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACjE,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3D,MAAM,aAAa,GAAG,MAAM,EAAE,KAAK,CAAC;IAEpC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO;QAAE,MAAM,IAAI,mBAAmB,CAAC,gCAAgC,CAAC,CAAC;IACxG,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO;QAAE,MAAM,IAAI,mBAAmB,CAAC,kCAAkC,CAAC,CAAC;IAC9G,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;QAAE,MAAM,IAAI,mBAAmB,CAAC,gCAAgC,CAAC,CAAC;IAC1G,IAAI,CAAC,aAAa;QAAE,MAAM,IAAI,mBAAmB,CAAC,+BAA+B,CAAC,CAAC;IACnF,MAAM,UAAU,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;IAEjD,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,KAAK;QACpB,QAAQ,EAAE,QAAQ,CAAC,KAAK;QACxB,MAAM,EAAE,MAAM,CAAC,KAAK;QACpB,eAAe,EAAE,UAAU,CAAC,KAAK;QACjC,YAAY,EAAE,UAAU,CAAC,EAAE;KAC5B,CAAC;AACJ,CAAC;AA8CD,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5C,YAAY,OAAe;QACzB,KAAK,CAAC,wBAAwB,OAAO,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED,MAAM,OAAO,6BAA8B,SAAQ,KAAK;IACtD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,+BAA+B,CAAC;IAC9C,CAAC;CACF;AAED;;;;;;;GAOG;AACH;;;;;;;;uEAQuE;AACvE,MAAM,4BAA4B,GAAG;IACnC,SAAS;IACT,0BAA0B;IAC1B,4BAA4B;CACpB,CAAC;AAEX;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAC1D,IAAI,CAAC,CAAC;QAAE,OAAO,GAAG,CAAC;IACnB,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACxB,4EAA4E;IAC5E,4EAA4E;IAC5E,6EAA6E;IAC7E,2EAA2E;IAC3E,2EAA2E;IAC3E,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,sBAA8B,EAC9B,MAAmC;IAEnC,MAAM,OAAO,GAAG,cAAc,CAAC,sBAAsB,CAAC,CAAC;IAEvD,8EAA8E;IAC9E,2EAA2E;IAC3E,qEAAqE;IACrE,0EAA0E;IAC1E,4EAA4E;IAC5E,8EAA8E;IAC9E,6CAA6C;IAC7C,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,+BAA+B,CAClE,OAAO,EACP,eAAe,EACf,UAAU,EACV,4BAA4B,CAC7B,CAAC;IACF,MAAM,CAAC,GAAG,eAAe,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC;IAE1C,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;QAC/B,UAAU,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACzG,CAAC;IACD,IAAI,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,EAAE,CAAC;QACnC,UAAU,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC/G,CAAC;IACD,IAAI,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACjE,UAAU,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACzG,CAAC;IACD,IAAI,CAAC,CAAC,YAAY,KAAK,MAAM,CAAC,YAAY,EAAE,CAAC;QAC3C,UAAU,CAAC,IAAI,CACb,wBAAwB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAC3G,CAAC;IACJ,CAAC;IACD,4EAA4E;IAC5E,IAAI,MAAM,CAAC,eAAe,KAAK,SAAS,IAAI,CAAC,CAAC,eAAe,KAAK,MAAM,CAAC,eAAe,EAAE,CAAC;QACzF,UAAU,CAAC,IAAI,CACb,2BAA2B,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,CACpH,CAAC;IACJ,CAAC;IACD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,6BAA6B,CACrC,kDAAkD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;YAC1E,0EAA0E,CAC7E,CAAC;IACJ,CAAC;IAED,gFAAgF;IAChF,+EAA+E;IAC/E,kCAAkC;IAClC,IACE,CAAC,CAAC,eAAe,KAAK,MAAM,CAAC,MAAM;QACnC,CAAC,CAAC,eAAe,KAAK,MAAM,CAAC,QAAQ,EACrC,CAAC;QACD,MAAM,IAAI,6BAA6B,CACrC,8CAA8C,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,YAAY;YACzF,qDAAqD,CACxD,CAAC;IACJ,CAAC;IAED,8DAA8D;IAC9D,wEAAwE;IACxE,8EAA8E;IAC9E,8DAA8D;IAC9D,qBAAqB,CAAC,EAAE,EAAE,MAAM,CAAC,qBAAqB,CAAC,CAAC;IACxD,uBAAuB,CAAC,EAAE,EAAE,MAAM,CAAC,kBAAkB,CAAC,CAAC;IACvD,yBAAyB,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;IACzE,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAE3D,4EAA4E;IAC5E,4EAA4E;IAC5E,uEAAuE;IACvE,sCAAsC;IACtC,mBAAmB,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAElD,gFAAgF;IAChF,6EAA6E;IAC7E,8EAA8E;IAC9E,8EAA8E;IAC9E,+EAA+E;IAC/E,4EAA4E;IAC5E,+EAA+E;IAC/E,kCAAkC;IAClC,MAAM,MAAM,GAAG,uBAAuB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC5D,sBAAsB,CACpB,MAAM,EACN,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,EACzC,CAAC,CAAC,eAAe,EACjB,CAAC,CAAC,wCAAwC,EAC1C,MAAM,CAAC,eAAe,KAAK,SAAS,CAAC,kCAAkC,CACxE,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;8EAuB8E;AAE9E,iFAAiF;AACjF,MAAM,aAAa,GAAG,4BAA4B,CAAC;AACnD;;;;;iFAKiF;AACjF,MAAM,0BAA0B,GAAG,CAAC,SAAS,EAAE,uBAAuB,CAAU,CAAC;AAUjF;;;;;;;;GAQG;AACH,MAAM,UAAU,2BAA2B,CACzC,sBAA8B,EAC9B,MAAiC;IAEjC,MAAM,OAAO,GAAG,cAAc,CAAC,sBAAsB,CAAC,CAAC;IAEvD,kEAAkE;IAClE,gFAAgF;IAChF,iFAAiF;IACjF,4EAA4E;IAC5E,iFAAiF;IACjF,iFAAiF;IACjF,8EAA8E;IAC9E,8EAA8E;IAC9E,+BAA+B,CAC7B,OAAO,EACP,aAAa,EACb,aAAa,EACb,0BAA0B,CAC3B,CAAC;IAEF,gEAAgE;IAChE,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAE3D,4EAA4E;IAC5E,+EAA+E;IAC/E,oCAAoC;IACpC,mBAAmB,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;AACvD,CAAC;AA2CD,iFAAiF;AACjF,MAAM,OAAO,4BAA6B,SAAQ,KAAK;IACrD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,8BAA8B,CAAC;IAC7C,CAAC;CACF;AAED,+EAA+E;AAC/E,SAAS,oBAAoB,CAAC,CAAS,EAAE,CAAS;IAChD,IAAI,EAAU,CAAC;IACf,IAAI,EAAU,CAAC;IACf,IAAI,CAAC;QACH,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC9B,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,EAAE,CAAC,MAAM,KAAK,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7D,OAAO,eAAe,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AACjC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,sBAA8B,EAC9B,OAAe,EACf,OAA2B,EAAE;IAE7B,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,6BAA6B,CACrC,uFAAuF,CACxF,CAAC;IACJ,CAAC;IACD,IAAI,SAAiB,CAAC;IACtB,IAAI,CAAC;QACH,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,6BAA6B,CAAC,mDAAmD,CAAC,CAAC;IAC/F,CAAC;IACD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,6BAA6B,CAAC,sDAAsD,CAAC,CAAC;IAClG,CAAC;IACD,8EAA8E;IAC9E,6DAA6D;IAC7D,cAAc,CAAC,sBAAsB,CAAC,CAAC;IAEvC,mCAAmC;IACnC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,IAAI,KAAa,CAAC;QAClB,IAAI,CAAC;YACH,sEAAsE;YACtE,wEAAwE;YACxE,mEAAmE;YACnE,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC;QAC3D,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,wEAAwE;YACxE,qEAAqE;YACrE,MAAM,IAAI,6BAA6B,CACrC,sEAAsE;gBACpE,oBAAqB,CAAW,CAAC,OAAO,sBAAsB,CACjE,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,6BAA6B,CACrC,0EAA0E;gBACxE,uEAAuE;gBACvE,sDAAsD,CACzD,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,gEAAgE;IAC1E,CAAC;IAED,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;QACjC,OAAO,CAAC,oDAAoD;IAC9D,CAAC;IAED,2EAA2E;IAC3E,6EAA6E;IAC7E,oDAAoD;IACpD,MAAM,IAAI,6BAA6B,CACrC,4EAA4E;QAC1E,2EAA2E;QAC3E,4EAA4E;QAC5E,kEAAkE;QAClE,6EAA6E;QAC7E,0EAA0E,CAC7E,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CACtC,sBAA8B,EAC9B,OAAe;IAEf,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACnE,OAAO,MAAM,KAAK,OAAO,CAAC;AAC5B,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8EAgD8E;AAE9E;6EAC6E;AAC7E,MAAM,OAAO,+BAAgC,SAAQ,KAAK;IACxD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iCAAiC,CAAC;IAChD,CAAC;CACF;AAYD;;2CAE2C;AAC3C,SAAS,mBAAmB,CAAC,OAAe;IAC1C,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC3C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,eAAe,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;YAC5E,MAAM,EAAE,KAAK;SACd,CAAmB,CAAC;QACrB,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC;YACV,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;YAC5C,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE;gBAAE,OAAO,GAAG,CAAC;QACpC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,oCAAoC;IACtC,CAAC;IACD,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;AACpD,CAAC;AAED;;uEAEuE;AACvE,SAAS,cAAc,CAAC,KAAa;IACnC,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,GAAG,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC,CAAC,8BAA8B;IAC9D,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAChC,OAAO,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACxC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gCAAgC,CAC9C,yBAAmC,EACnC,MAAqC;IAErC,wCAAwC;IACxC,IACE,OAAO,MAAM,CAAC,oBAAoB,KAAK,QAAQ;QAC/C,MAAM,CAAC,oBAAoB,CAAC,MAAM,KAAK,CAAC,EACxC,CAAC;QACD,MAAM,IAAI,+BAA+B,CACvC,iFAAiF;YAC/E,iEAAiE,CACpE,CAAC;IACJ,CAAC;IAED,6EAA6E;IAC7E,iFAAiF;IACjF,MAAM,EAAE,GAAG,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACxC,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;QACrB,MAAM,IAAI,+BAA+B,CACvC,uCAAuC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa;YAC9E,iEAAiE,CACpE,CAAC;IACJ,CAAC;IACD,IAAI,EAAE,KAAK,MAAM,CAAC,oBAAoB,EAAE,CAAC;QACvC,MAAM,IAAI,+BAA+B,CACvC,kCAAkC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,sCAAsC;YACxF,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,oBAAoB,CAAC,8CAA8C;YAC5F,iGAAiG,CACpG,CAAC;IACJ,CAAC;IAED,uEAAuE;IACvE,2EAA2E;IAC3E,IAAI,CAAC,yBAAyB,IAAI,yBAAyB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,+BAA+B,CACvC,wEAAwE;YACtE,0DAA0D,CAC7D,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAC5D,IAAI,MAAM,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QACzB,MAAM,IAAI,+BAA+B,CACvC,gGAAgG,CACjG,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,KAAK,MAAM,KAAK,IAAI,yBAAyB,EAAE,CAAC;QAC9C,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACzC,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACnD,QAAQ,GAAG,IAAI,CAAC;YAChB,MAAM;QACR,CAAC;IACH,CAAC;IACD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,+BAA+B,CACvC,uFAAuF;YACrF,wFAAwF;YACxF,6DAA6D,CAChE,CAAC;IACJ,CAAC;IAED,+EAA+E;IAC/E,8EAA8E;IAC9E,+EAA+E;IAC/E,uEAAuE;IACvE,6EAA6E;IAC7E,gFAAgF;IAChF,6EAA6E;IAC7E,gFAAgF;IAChF,iCAAiC;IACjC,sCAAsC,CAAC,yBAAyB,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AACpF,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8EAiC8E;AAE9E;;;;oDAIoD;AACpD,SAAS,sBAAsB,CAAC,EAAyC;IACvE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,EAAE;QAAE,OAAO,SAAS,CAAC;IACvE,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;IACtC,6EAA6E;IAC7E,uEAAuE;IACvE,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,sCAAsC,CAC7C,yBAAmC,EACnC,MAAqC,EACrC,WAAmB;IAEnB,+EAA+E;IAC/E,MAAM,UAAU,GAAG,CAAC,EAAyC,EAAW,EAAE;QACxE,MAAM,KAAK,GAAG,sBAAsB,CAAC,EAAE,CAAC,CAAC;QACzC,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE,IAAI,eAAe,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAC3F,CAAC,CAAC;IAEF,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,IAAI,kBAAkB,GAAG,KAAK,CAAC;IAC/B,IAAI,cAAc,GAAG,KAAK,CAAC;IAE3B,KAAK,MAAM,KAAK,IAAI,yBAAyB,EAAE,CAAC;QAC9C,IAAI,EAAuB,CAAC;QAC5B,IAAI,CAAC;YACH,EAAE,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,+BAA+B,CACvC,uEAAuE;gBACrE,wBAAyB,CAAW,CAAC,OAAO,uBAAuB;gBACnE,qEAAqE,CACxE,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;QACpC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YAChD,MAAM,IAAI,+BAA+B,CACvC,6EAA6E;gBAC3E,qEAAqE,CACxE,CAAC;QACJ,CAAC;QAED,QAAQ,OAAO,CAAC,SAAS,EAAE,CAAC;YAC1B,KAAK,mBAAmB,CAAC,CAAC,CAAC;gBACzB,MAAM,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC;gBACpC,aAAa,GAAG,IAAI,CAAC;gBACrB,iDAAiD;gBACjD,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC;oBAC7B,MAAM,IAAI,+BAA+B,CACvC,4CAA4C,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW;wBAC5E,oBAAoB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB;wBACtE,kEAAkE,CACrE,CAAC;gBACJ,CAAC;gBACD,uBAAuB;gBACvB,IAAI,CAAC,CAAC,SAAS,KAAK,CAAC,EAAE,CAAC;oBACtB,MAAM,IAAI,+BAA+B,CACvC,8CAA8C,CAAC,CAAC,SAAS,kBAAkB;wBACzE,8EAA8E,CACjF,CAAC;gBACJ,CAAC;gBACD,sEAAsE;gBACtE,IAAI,CAAC,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC/B,MAAM,IAAI,+BAA+B,CACvC,wCAAwC,CAAC,CAAC,WAAW,CAAC,MAAM,gBAAgB;wBAC1E,sEAAsE;wBACtE,iEAAiE,CACpE,CAAC;gBACJ,CAAC;gBACD,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAClC,MAAM,IAAI,+BAA+B,CACvC,0EAA0E;wBACxE,uEAAuE;wBACvE,6DAA6D,CAChE,CAAC;gBACJ,CAAC;gBACD,MAAM;YACR,CAAC;YAED,KAAK,qBAAqB,CAAC,CAAC,CAAC;gBAC3B,MAAM,CAAC,GAAG,OAAO,CAAC,mBAAmB,CAAC;gBACtC,0EAA0E;gBAC1E,wEAAwE;gBACxE,yDAAyD;gBACzD,IAAI,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,oBAAoB,EAAE,CAAC;oBAChD,MAAM,IAAI,+BAA+B,CACvC,mDAAmD,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG;wBAC/E,gCAAgC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,oBAAoB,CAAC,KAAK;wBAChF,2EAA2E,CAC9E,CAAC;gBACJ,CAAC;gBACD,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC7B,MAAM,IAAI,+BAA+B,CACvC,2EAA2E;wBACzE,wEAAwE;wBACxE,sCAAsC,CACzC,CAAC;gBACJ,CAAC;gBACD,kBAAkB,GAAG,IAAI,CAAC;gBAC1B,MAAM;YACR,CAAC;YAED,KAAK,oBAAoB,CAAC,CAAC,CAAC;gBAC1B,MAAM,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC;gBACrC,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC;oBAC7B,MAAM,IAAI,+BAA+B,CACvC,6CAA6C,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW;wBAC7E,oBAAoB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,CACxE,CAAC;gBACJ,CAAC;gBACD,yEAAyE;gBACzE,0EAA0E;gBAC1E,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;oBACpB,MAAM,IAAI,+BAA+B,CACvC,+CAA+C,CAAC,CAAC,SAAS,oBAAoB;wBAC5E,sEAAsE,CACzE,CAAC;gBACJ,CAAC;gBACD,IAAI,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACnD,MAAM,IAAI,+BAA+B,CACvC,4EAA4E;wBAC1E,sDAAsD,CACzD,CAAC;gBACJ,CAAC;gBACD,cAAc,GAAG,IAAI,CAAC;gBACtB,MAAM;YACR,CAAC;YAED,OAAO,CAAC,CAAC,CAAC;gBACR,uEAAuE;gBACvE,uEAAuE;gBACvE,MAAM,IAAI,+BAA+B,CACvC,2EAA2E;oBACzE,IAAI,OAAO,CAAC,SAAS,iDAAiD;oBACtE,oEAAoE;oBACpE,qEAAqE,CACxE,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,gFAAgF;IAChF,iFAAiF;IACjF,6EAA6E;IAC7E,uEAAuE;IACvE,gFAAgF;IAChF,iFAAiF;IACjF,iFAAiF;IACjF,iFAAiF;IACjF,iFAAiF;IACjF,gFAAgF;IAChF,8EAA8E;IAC9E,wDAAwD;IACxD,IAAI,CAAC,aAAa,IAAI,CAAC,kBAAkB,IAAI,CAAC,cAAc,EAAE,CAAC;QAC7D,MAAM,IAAI,+BAA+B,CACvC,sEAAsE;YACpE,8EAA8E;YAC9E,iFAAiF;YACjF,iDAAiD,CACpD,CAAC;IACJ,CAAC;AACH,CAAC;AAGD,qFAAqF;AACrF,MAAM,uBAAuB,GAAG,uCAAuC,CAAC;AAExE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,6BAA6B,CAC3C,sBAA8B,EAC9B,KAAa;IAEb,MAAM,OAAO,GAAG,cAAc,CAAC,sBAAsB,CAAC,CAAC;IAEvD,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAChF,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,6BAA6B,CACrC,qDAAqD,SAAS,CAAC,MAAM,QAAQ;YAC3E,iFAAiF;YACjF,sBAAsB,CACzB,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC;IACpD,IAAI,UAAU,KAAK,uBAAuB,EAAE,CAAC;QAC3C,MAAM,IAAI,6BAA6B,CACrC,oDAAoD,uBAAuB,GAAG;YAC5E,iBAAiB,IAAI,CAAC,SAAS,CAAC,UAAU,IAAI,IAAI,CAAC,sBAAsB,CAC5E,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;QAC7D,MAAM,IAAI,6BAA6B,CACrC,4CAA4C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU;YACjF,YAAY,KAAK,sBAAsB,CAC1C,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"verify-prepared.js","sourceRoot":"","sources":["../src/verify-prepared.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ftptech/canton-agent-wallet",
3
3
  "private": false,
4
- "version": "0.7.0",
4
+ "version": "0.7.2",
5
5
  "description": "Self-custody Canton wallet + x402 autopay for AI agents. One CLI: create, pay, balance, withdraw, export, import. Backs the canton-x402-agent skill.",
6
6
  "license": "Apache-2.0",
7
7
  "author": "FTP team",
@@ -19,8 +19,8 @@
19
19
  "@canton-network/core-tx-visualizer": "~1.4.0",
20
20
  "@canton-network/core-ledger-proto": "~1.4.0",
21
21
  "undici": "^7.1.0",
22
- "@ftptech/x402-canton-client": "^0.6.1",
23
- "@ftptech/x402-canton-ledger": "^0.1.1"
22
+ "@ftptech/x402-canton-ledger": "^0.1.1",
23
+ "@ftptech/x402-canton-client": "^0.6.1"
24
24
  },
25
25
  "publishConfig": {
26
26
  "access": "public"
@@ -1,88 +0,0 @@
1
- /**
2
- * HOSTED-party merchant onboarding for x402-direct ("Design B").
3
- *
4
- * HOSTED vs EXTERNAL — why this is a separate path
5
- * ================================================
6
- * The agent-wallet `merchant-onboard` command (`createMerchantConsent` in tx.ts)
7
- * is EXTERNAL-PARTY only: the merchant party is an Ed25519 self-custody wallet,
8
- * so it onboards via the relay's interactive prepare -> sign-the-hash-locally ->
9
- * execute flow, gated by verify-before-sign (the relay is untrusted, so the agent
10
- * structurally re-checks the relay-prepared bytes before signing with its key).
11
- *
12
- * A HOSTED-party merchant is different: its party lives on its OWN Canton node
13
- * (a validator it operates), NOT in an external Ed25519 wallet. It therefore has
14
- * NO Ed25519 key, NO relay, NO wallet.json — and needs none of them. It authorizes
15
- * the `MerchantConsent` create directly on its own participant's JSON Ledger API
16
- * with a plain `CreateCommand` (`actAs: [merchant]`); the merchant's node supplies
17
- * the signatory authority. The facilitator is only an `observer` of the consent,
18
- * so it sees it over the synchronizer and the existing facilitator-minted path
19
- * (MerchantConsent_Accept) settles unchanged. No protocol change, no Ed25519.
20
- *
21
- * NO verify-before-sign is needed here (and there is nothing to verify against):
22
- * the merchant's OWN node builds and submits exactly what this function asks it to.
23
- * The create shape is fixed and value-moving-free by construction — a single
24
- * `MerchantConsent {merchant, facilitator}` create that captures the merchant's
25
- * one-time authorization and MOVES NO FUNDS. There is no untrusted relay in the
26
- * loop to substitute a facilitator or swap in a drain, so the structural
27
- * verify-before-sign backstop the external path applies has no role.
28
- *
29
- * PREREQ: the `x402-direct` DAR (x402-direct-0.1.0, package-id
30
- * f819db3288986a7f6c3157359ed02040e0a6080ceb6890309ecbb71eeeb93780) must be
31
- * uploaded + vetted on the merchant's participant so `#x402-direct:...` resolves.
32
- *
33
- * Idempotent (the consent is once-total): if a `MerchantConsent` for this
34
- * (merchant, facilitator) already exists, this returns `{ created: false }` and
35
- * submits nothing.
36
- *
37
- * Uses the global `fetch` (Node 18+); imports no Canton SDK — it is the same
38
- * dependency-free OIDC + JSON Ledger API v2 pattern the facilitator's funder
39
- * (e2e/fund.mjs) uses.
40
- */
41
- /** OIDC client-credentials config for minting the JSON Ledger API bearer token. */
42
- export interface HostedOidcConfig {
43
- /** OIDC token endpoint (e.g. `https://<issuer>/oauth/token`). */
44
- tokenEndpoint: string;
45
- /** OIDC client id (m2m client authorized for the merchant's participant). */
46
- clientId: string;
47
- /** OIDC client secret. */
48
- clientSecret: string;
49
- /** Ledger API audience the token is minted for. */
50
- audience: string;
51
- /** Optional OIDC scope. */
52
- scope?: string;
53
- }
54
- /** Inputs for {@link createMerchantConsentHosted}. */
55
- export interface CreateMerchantConsentHostedOptions {
56
- /** The merchant's participant JSON Ledger API base URL (no trailing path). */
57
- participantUrl: string;
58
- /** The synchronizer the consent is created on. */
59
- synchronizerId: string;
60
- /** The Ledger API user id to submit as (the merchant's participant m2m user). */
61
- userId: string;
62
- /** The merchant party id (signatory of the consent; also the `actAs` party). */
63
- merchant: string;
64
- /** The facilitator party id (observer of the consent). */
65
- facilitator: string;
66
- /** OIDC client-credentials config (token mint). */
67
- oidc: HostedOidcConfig;
68
- }
69
- /** Result of {@link createMerchantConsentHosted}. */
70
- export interface CreateMerchantConsentHostedResult {
71
- /** `true` if a new MerchantConsent was created; `false` if one already existed. */
72
- created: boolean;
73
- /** The MerchantConsent contract id, when resolvable (the existing one on a
74
- * no-op, or the freshly created one when the transaction's created event is
75
- * available). May be undefined on a fresh create if the event was not returned. */
76
- contractId?: string;
77
- }
78
- /**
79
- * Onboard a HOSTED-party merchant for x402-direct by creating its once-total
80
- * `MerchantConsent {merchant, facilitator}` on its own participant's JSON Ledger
81
- * API. Idempotent: returns `{ created: false, contractId }` if the consent
82
- * already exists, else creates it and returns `{ created: true, contractId? }`.
83
- *
84
- * See the file-level doc for the HOSTED-vs-EXTERNAL distinction and why no
85
- * verify-before-sign is required.
86
- */
87
- export declare function createMerchantConsentHosted(opts: CreateMerchantConsentHostedOptions): Promise<CreateMerchantConsentHostedResult>;
88
- //# sourceMappingURL=hosted-onboard.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hosted-onboard.d.ts","sourceRoot":"","sources":["../src/hosted-onboard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAQH,mFAAmF;AACnF,MAAM,WAAW,gBAAgB;IAC/B,iEAAiE;IACjE,aAAa,EAAE,MAAM,CAAC;IACtB,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,CAAC;IACjB,0BAA0B;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,sDAAsD;AACtD,MAAM,WAAW,kCAAkC;IACjD,8EAA8E;IAC9E,cAAc,EAAE,MAAM,CAAC;IACvB,kDAAkD;IAClD,cAAc,EAAE,MAAM,CAAC;IACvB,iFAAiF;IACjF,MAAM,EAAE,MAAM,CAAC;IACf,gFAAgF;IAChF,QAAQ,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,WAAW,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,IAAI,EAAE,gBAAgB,CAAC;CACxB;AAED,qDAAqD;AACrD,MAAM,WAAW,iCAAiC;IAChD,mFAAmF;IACnF,OAAO,EAAE,OAAO,CAAC;IACjB;;wFAEoF;IACpF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA0BD;;;;;;;;GAQG;AACH,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,kCAAkC,GACvC,OAAO,CAAC,iCAAiC,CAAC,CA8E5C"}
@@ -1,216 +0,0 @@
1
- /**
2
- * HOSTED-party merchant onboarding for x402-direct ("Design B").
3
- *
4
- * HOSTED vs EXTERNAL — why this is a separate path
5
- * ================================================
6
- * The agent-wallet `merchant-onboard` command (`createMerchantConsent` in tx.ts)
7
- * is EXTERNAL-PARTY only: the merchant party is an Ed25519 self-custody wallet,
8
- * so it onboards via the relay's interactive prepare -> sign-the-hash-locally ->
9
- * execute flow, gated by verify-before-sign (the relay is untrusted, so the agent
10
- * structurally re-checks the relay-prepared bytes before signing with its key).
11
- *
12
- * A HOSTED-party merchant is different: its party lives on its OWN Canton node
13
- * (a validator it operates), NOT in an external Ed25519 wallet. It therefore has
14
- * NO Ed25519 key, NO relay, NO wallet.json — and needs none of them. It authorizes
15
- * the `MerchantConsent` create directly on its own participant's JSON Ledger API
16
- * with a plain `CreateCommand` (`actAs: [merchant]`); the merchant's node supplies
17
- * the signatory authority. The facilitator is only an `observer` of the consent,
18
- * so it sees it over the synchronizer and the existing facilitator-minted path
19
- * (MerchantConsent_Accept) settles unchanged. No protocol change, no Ed25519.
20
- *
21
- * NO verify-before-sign is needed here (and there is nothing to verify against):
22
- * the merchant's OWN node builds and submits exactly what this function asks it to.
23
- * The create shape is fixed and value-moving-free by construction — a single
24
- * `MerchantConsent {merchant, facilitator}` create that captures the merchant's
25
- * one-time authorization and MOVES NO FUNDS. There is no untrusted relay in the
26
- * loop to substitute a facilitator or swap in a drain, so the structural
27
- * verify-before-sign backstop the external path applies has no role.
28
- *
29
- * PREREQ: the `x402-direct` DAR (x402-direct-0.1.0, package-id
30
- * f819db3288986a7f6c3157359ed02040e0a6080ceb6890309ecbb71eeeb93780) must be
31
- * uploaded + vetted on the merchant's participant so `#x402-direct:...` resolves.
32
- *
33
- * Idempotent (the consent is once-total): if a `MerchantConsent` for this
34
- * (merchant, facilitator) already exists, this returns `{ created: false }` and
35
- * submits nothing.
36
- *
37
- * Uses the global `fetch` (Node 18+); imports no Canton SDK — it is the same
38
- * dependency-free OIDC + JSON Ledger API v2 pattern the facilitator's funder
39
- * (e2e/fund.mjs) uses.
40
- */
41
- /** The x402-direct "Design B" standing-consent template the hosted merchant
42
- * creates. The `#`-prefixed package NAME (not the hex package-id) lets the
43
- * participant resolve its vetted version at create time — the same convention
44
- * tx.ts's external-party path uses. */
45
- const MERCHANT_CONSENT_TEMPLATE_ID = "#x402-direct:X402Direct:MerchantConsent";
46
- /** Mint a JSON Ledger API bearer token via the OIDC client-credentials grant. */
47
- async function mintToken(oidc) {
48
- const body = new URLSearchParams({
49
- grant_type: "client_credentials",
50
- client_id: oidc.clientId,
51
- client_secret: oidc.clientSecret,
52
- audience: oidc.audience,
53
- });
54
- if (oidc.scope)
55
- body.set("scope", oidc.scope);
56
- const r = await fetch(oidc.tokenEndpoint, {
57
- method: "POST",
58
- headers: { "content-type": "application/x-www-form-urlencoded" },
59
- body: body.toString(),
60
- });
61
- if (r.status !== 200) {
62
- throw new Error(`OIDC token mint failed: HTTP ${r.status}`);
63
- }
64
- const j = (await r.json());
65
- if (!j.access_token) {
66
- throw new Error("OIDC token mint: no access_token in response");
67
- }
68
- return j.access_token;
69
- }
70
- /**
71
- * Onboard a HOSTED-party merchant for x402-direct by creating its once-total
72
- * `MerchantConsent {merchant, facilitator}` on its own participant's JSON Ledger
73
- * API. Idempotent: returns `{ created: false, contractId }` if the consent
74
- * already exists, else creates it and returns `{ created: true, contractId? }`.
75
- *
76
- * See the file-level doc for the HOSTED-vs-EXTERNAL distinction and why no
77
- * verify-before-sign is required.
78
- */
79
- export async function createMerchantConsentHosted(opts) {
80
- const { participantUrl, synchronizerId, userId, merchant, facilitator, oidc } = opts;
81
- const token = await mintToken(oidc);
82
- // Authenticated POST to the merchant's JSON Ledger API v2.
83
- const ledgerPost = async (path, payload) => {
84
- const r = await fetch(participantUrl + path, {
85
- method: "POST",
86
- headers: {
87
- Authorization: `Bearer ${token}`,
88
- "content-type": "application/json",
89
- },
90
- body: JSON.stringify(payload),
91
- });
92
- const text = await r.text();
93
- let json;
94
- try {
95
- json = JSON.parse(text);
96
- }
97
- catch {
98
- json = undefined;
99
- }
100
- return { status: r.status, json, text };
101
- };
102
- const ledgerGet = async (path) => {
103
- const r = await fetch(participantUrl + path, {
104
- headers: { Authorization: `Bearer ${token}` },
105
- });
106
- return r.json();
107
- };
108
- // Once-total guard: is there already a MerchantConsent for this merchant naming
109
- // this facilitator? A TemplateFilter (not a wildcard) keeps the ACS query small
110
- // — a busy validator-operator party can hold many contracts.
111
- const existing = await existingConsentCid(ledgerPost, ledgerGet, merchant, facilitator);
112
- if (existing) {
113
- return { created: false, contractId: existing };
114
- }
115
- // No existing consent — create it. The merchant's node supplies the signatory
116
- // authority via actAs:[merchant]; the create shape is fixed and moves no funds.
117
- const commandId = `merchant-onboard-hosted-${Date.now()}`;
118
- const send = await ledgerPost("/v2/commands/submit-and-wait-for-transaction", {
119
- commands: {
120
- commandId,
121
- userId,
122
- actAs: [merchant],
123
- synchronizerId,
124
- disclosedContracts: [],
125
- commands: [
126
- {
127
- CreateCommand: {
128
- templateId: MERCHANT_CONSENT_TEMPLATE_ID,
129
- // Daml declaration order: [0] merchant, [1] facilitator.
130
- createArguments: { merchant, facilitator },
131
- },
132
- },
133
- ],
134
- },
135
- });
136
- if (send.status !== 200) {
137
- throw new Error(`merchant consent create failed: HTTP ${send.status} ${send.text.slice(0, 400)}`);
138
- }
139
- // contractId is best-effort: spread it only when resolvable so the result
140
- // conforms to exactOptionalPropertyTypes (no explicit `contractId: undefined`).
141
- const contractId = createdConsentCid(send.json);
142
- return { created: true, ...(contractId ? { contractId } : {}) };
143
- }
144
- /**
145
- * Scan the submit-and-wait-for-transaction response for the created
146
- * MerchantConsent's contract id. Best-effort — the contract id is informational
147
- * (the consent is once-total and the facilitator re-resolves it), so an
148
- * unrecognized event shape yields `undefined` rather than an error.
149
- */
150
- function createdConsentCid(transactionResponse) {
151
- if (typeof transactionResponse !== "object" || transactionResponse === null) {
152
- return undefined;
153
- }
154
- const tx = transactionResponse
155
- .transaction;
156
- const events = tx?.events;
157
- if (!Array.isArray(events))
158
- return undefined;
159
- for (const ev of events) {
160
- const created = ev
161
- ?.CreatedEvent;
162
- if (created?.contractId)
163
- return created.contractId;
164
- }
165
- return undefined;
166
- }
167
- /**
168
- * Query the merchant's ACS (scoped by a TemplateFilter to the MerchantConsent
169
- * template, active at ledger-end) for an existing consent naming this
170
- * facilitator. Returns its contract id, or `null` if none exists.
171
- */
172
- async function existingConsentCid(ledgerPost, ledgerGet, merchant, facilitator) {
173
- const end = (await ledgerGet("/v2/state/ledger-end"));
174
- const acs = await ledgerPost("/v2/state/active-contracts", {
175
- filter: {
176
- filtersByParty: {
177
- [merchant]: {
178
- cumulative: [
179
- {
180
- identifierFilter: {
181
- TemplateFilter: {
182
- value: {
183
- templateId: MERCHANT_CONSENT_TEMPLATE_ID,
184
- includeCreatedEventBlob: false,
185
- },
186
- },
187
- },
188
- },
189
- ],
190
- },
191
- },
192
- },
193
- verbose: false,
194
- activeAtOffset: end.offset,
195
- });
196
- const list = Array.isArray(acs.json)
197
- ? acs.json
198
- : (acs.json?.contractEntries ?? []);
199
- for (const entry of list) {
200
- const created = entry?.contractEntry?.JsActiveContract?.createdEvent;
201
- // Must match BOTH merchant AND facilitator. The ACS query is keyed on the
202
- // merchant party, but when that party is itself the facilitator (or any
203
- // observer of other consents), the query returns OTHER merchants'
204
- // MerchantConsents too — they all carry the same `facilitator`. Matching only
205
- // `facilitator` then FALSE-POSITIVES "already onboarded" and skips creating
206
- // this merchant's own consent, so the facilitator's findMerchantConsent (which
207
- // correctly pins `merchant`) later reports "no MerchantConsent". Pin both.
208
- if (created &&
209
- created.createArgument?.merchant === merchant &&
210
- created.createArgument?.facilitator === facilitator) {
211
- return created.contractId ?? null;
212
- }
213
- }
214
- return null;
215
- }
216
- //# sourceMappingURL=hosted-onboard.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hosted-onboard.js","sourceRoot":"","sources":["../src/hosted-onboard.ts"],"names":[],"mappings":"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"}