mppx 0.5.13 → 0.5.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/Method.d.ts +5 -2
  3. package/dist/Method.d.ts.map +1 -1
  4. package/dist/Method.js.map +1 -1
  5. package/dist/mcp-sdk/server/Transport.d.ts.map +1 -1
  6. package/dist/mcp-sdk/server/Transport.js +8 -2
  7. package/dist/mcp-sdk/server/Transport.js.map +1 -1
  8. package/dist/server/Mppx.d.ts.map +1 -1
  9. package/dist/server/Mppx.js +17 -10
  10. package/dist/server/Mppx.js.map +1 -1
  11. package/dist/server/Request.js +5 -1
  12. package/dist/server/Request.js.map +1 -1
  13. package/dist/server/Transport.d.ts.map +1 -1
  14. package/dist/server/Transport.js +4 -0
  15. package/dist/server/Transport.js.map +1 -1
  16. package/dist/stripe/server/internal/html.gen.d.ts +1 -1
  17. package/dist/stripe/server/internal/html.gen.d.ts.map +1 -1
  18. package/dist/stripe/server/internal/html.gen.js +1 -1
  19. package/dist/stripe/server/internal/html.gen.js.map +1 -1
  20. package/dist/tempo/Methods.d.ts.map +1 -1
  21. package/dist/tempo/Methods.js +4 -2
  22. package/dist/tempo/Methods.js.map +1 -1
  23. package/dist/tempo/client/SessionManager.d.ts.map +1 -1
  24. package/dist/tempo/client/SessionManager.js +20 -10
  25. package/dist/tempo/client/SessionManager.js.map +1 -1
  26. package/dist/tempo/internal/fee-payer.d.ts +4 -1
  27. package/dist/tempo/internal/fee-payer.d.ts.map +1 -1
  28. package/dist/tempo/internal/fee-payer.js +99 -23
  29. package/dist/tempo/internal/fee-payer.js.map +1 -1
  30. package/dist/tempo/server/Charge.d.ts.map +1 -1
  31. package/dist/tempo/server/Charge.js +6 -0
  32. package/dist/tempo/server/Charge.js.map +1 -1
  33. package/dist/tempo/server/Session.d.ts +4 -0
  34. package/dist/tempo/server/Session.d.ts.map +1 -1
  35. package/dist/tempo/server/Session.js +79 -48
  36. package/dist/tempo/server/Session.js.map +1 -1
  37. package/dist/tempo/server/internal/html.gen.d.ts +1 -1
  38. package/dist/tempo/server/internal/html.gen.d.ts.map +1 -1
  39. package/dist/tempo/server/internal/html.gen.js +1 -1
  40. package/dist/tempo/server/internal/html.gen.js.map +1 -1
  41. package/dist/tempo/server/internal/transport.d.ts +0 -7
  42. package/dist/tempo/server/internal/transport.d.ts.map +1 -1
  43. package/dist/tempo/server/internal/transport.js +84 -13
  44. package/dist/tempo/server/internal/transport.js.map +1 -1
  45. package/dist/tempo/session/Chain.d.ts +5 -0
  46. package/dist/tempo/session/Chain.d.ts.map +1 -1
  47. package/dist/tempo/session/Chain.js +202 -63
  48. package/dist/tempo/session/Chain.js.map +1 -1
  49. package/dist/tempo/session/ChannelStore.d.ts +1 -0
  50. package/dist/tempo/session/ChannelStore.d.ts.map +1 -1
  51. package/dist/tempo/session/ChannelStore.js +38 -15
  52. package/dist/tempo/session/ChannelStore.js.map +1 -1
  53. package/package.json +2 -2
  54. package/src/Method.ts +5 -2
  55. package/src/internal/changeset.test.ts +106 -0
  56. package/src/mcp-sdk/client/McpClient.integration.test.ts +634 -0
  57. package/src/mcp-sdk/server/Transport.test.ts +1 -0
  58. package/src/mcp-sdk/server/Transport.ts +10 -2
  59. package/src/proxy/Proxy.test.ts +149 -1
  60. package/src/server/Mppx.test.ts +120 -0
  61. package/src/server/Mppx.ts +27 -11
  62. package/src/server/Request.test.ts +46 -1
  63. package/src/server/Request.ts +6 -1
  64. package/src/server/Transport.test.ts +2 -0
  65. package/src/server/Transport.ts +4 -0
  66. package/src/stripe/server/internal/html.gen.ts +1 -1
  67. package/src/tempo/Methods.test.ts +13 -0
  68. package/src/tempo/Methods.ts +23 -16
  69. package/src/tempo/client/SessionManager.ts +32 -9
  70. package/src/tempo/internal/fee-payer.test.ts +88 -16
  71. package/src/tempo/internal/fee-payer.ts +118 -23
  72. package/src/tempo/server/Charge.test.ts +73 -0
  73. package/src/tempo/server/Charge.ts +6 -0
  74. package/src/tempo/server/Session.test.ts +934 -47
  75. package/src/tempo/server/Session.ts +100 -52
  76. package/src/tempo/server/internal/html.gen.ts +1 -1
  77. package/src/tempo/server/internal/transport.test.ts +321 -10
  78. package/src/tempo/server/internal/transport.ts +101 -14
  79. package/src/tempo/session/Chain.test.ts +225 -2
  80. package/src/tempo/session/Chain.ts +250 -65
  81. package/src/tempo/session/ChannelStore.test.ts +23 -0
  82. package/src/tempo/session/ChannelStore.ts +46 -13
  83. package/src/viem/Client.test.ts +52 -1
@@ -47,7 +47,7 @@ import * as Transport from './internal/transport.js';
47
47
  */
48
48
  export function session(p) {
49
49
  const parameters = p;
50
- const { amount, channelStateTtl = 5_000, currency = defaults.resolveCurrency(parameters), decimals = defaults.decimals, store: rawStore = Store.memory(), suggestedDeposit, unitType, waitForConfirmation = true, } = parameters;
50
+ const { amount, channelStateTtl = 5_000, currency = defaults.resolveCurrency(parameters), decimals = defaults.decimals, feePayerPolicy, store: rawStore = Store.memory(), suggestedDeposit, unitType, waitForConfirmation = true, } = parameters;
51
51
  const lastOnChainVerified = new Map();
52
52
  const store = ChannelStore.fromStore(rawStore);
53
53
  const { account, recipient, feePayer, feePayerUrl } = Account.resolve(parameters);
@@ -116,7 +116,7 @@ export function session(p) {
116
116
  feePayer: resolvedFeePayer,
117
117
  };
118
118
  },
119
- async verify({ credential, request }) {
119
+ async verify({ credential, envelope, request }) {
120
120
  const { challenge, payload } = credential;
121
121
  const resolvedRequest = Methods.session.schema.request.parse(request);
122
122
  const methodDetails = resolvedRequest.methodDetails;
@@ -129,12 +129,12 @@ export function session(p) {
129
129
  let sessionReceipt;
130
130
  switch (payload.action) {
131
131
  case 'open':
132
- sessionReceipt = await handleOpen(store, client, challenge, payload, methodDetails, resolvedFeePayer, waitForConfirmation);
133
- lastOnChainVerified.set(payload.channelId, Date.now());
132
+ sessionReceipt = await handleOpen(store, client, challenge, payload, methodDetails, resolvedFeePayer, feePayerPolicy, waitForConfirmation);
133
+ lastOnChainVerified.set(sessionReceipt.channelId, Date.now());
134
134
  break;
135
135
  case 'topUp':
136
- sessionReceipt = await handleTopUp(store, client, challenge, payload, methodDetails, resolvedFeePayer);
137
- lastOnChainVerified.set(payload.channelId, Date.now());
136
+ sessionReceipt = await handleTopUp(store, client, challenge, payload, methodDetails, resolvedFeePayer, feePayerPolicy);
137
+ lastOnChainVerified.set(sessionReceipt.channelId, Date.now());
138
138
  break;
139
139
  case 'voucher':
140
140
  sessionReceipt = await handleVoucher(store, client, effectiveMinVoucherDelta, challenge, payload, methodDetails, channelStateTtl, lastOnChainVerified);
@@ -147,6 +147,21 @@ export function session(p) {
147
147
  reason: `unknown action: ${payload.action}`,
148
148
  });
149
149
  }
150
+ // In the default HTTP request/response mode, each successful content
151
+ // request consumes one unit immediately after the credential is accepted.
152
+ // This keeps equal-voucher replays bounded by the voucher's remaining
153
+ // balance instead of serving repeated responses for free.
154
+ if (!parameters.sse &&
155
+ envelope &&
156
+ isBillableContentRequest(envelope.capturedRequest) &&
157
+ (payload.action === 'open' || payload.action === 'voucher')) {
158
+ const charged = await charge(store, sessionReceipt.channelId, BigInt(resolvedRequest.amount));
159
+ sessionReceipt = {
160
+ ...sessionReceipt,
161
+ spent: charged.spent.toString(),
162
+ units: charged.units,
163
+ };
164
+ }
150
165
  return sessionReceipt;
151
166
  },
152
167
  // This hook acts as a gate: when it returns a Response, `withReceipt()`
@@ -156,30 +171,24 @@ export function session(p) {
156
171
  //
157
172
  // close and topUp are always gated (204) — they are pure management.
158
173
  //
159
- // open and voucher are gated only for bodyless POSTs (management
160
- // updates). POSTs with a body are content requests — the client's
161
- // original request piggybacked on the credential so they fall
162
- // through to serve content. GETs always fall through so auto-mode
163
- // clients (whose fetch wrapper bundles open+voucher into a single
164
- // GET retry) receive content as expected.
165
- respond({ credential, input }) {
174
+ // open and voucher share the same captured-request classifier used
175
+ // during verification. Non-billable requests are treated as management
176
+ // updates; billable requests fall through to the application handler.
177
+ respond({ credential, envelope, input }) {
166
178
  const { payload } = credential;
167
179
  if (payload.action === 'close')
168
180
  return new Response(null, { status: 204 });
169
181
  if (payload.action === 'topUp')
170
182
  return new Response(null, { status: 204 });
171
- // open and voucher: gate only bodyless POSTs (management updates).
172
- // POSTs with a body are content requests — fall through so the
173
- // upstream response is returned to the client.
174
- if (input.method === 'POST') {
175
- const contentLength = input.headers.get('content-length');
176
- if (contentLength !== null && contentLength !== '0')
177
- return undefined;
178
- if (input.headers.has('transfer-encoding'))
179
- return undefined;
180
- return new Response(null, { status: 204 });
181
- }
182
- return undefined;
183
+ const capturedRequest = envelope?.capturedRequest ?? {
184
+ hasBody: input.body !== null,
185
+ headers: input.headers,
186
+ method: input.method,
187
+ url: new URL(input.url),
188
+ };
189
+ if (isBillableContentRequest(capturedRequest))
190
+ return undefined;
191
+ return new Response(null, { status: 204 });
183
192
  },
184
193
  });
185
194
  }
@@ -263,6 +272,20 @@ function validateOnChainChannel(onChain, recipient, currency, amount) {
263
272
  });
264
273
  }
265
274
  }
275
+ function isBillableContentRequest(input) {
276
+ if (input.method === 'POST')
277
+ return hasCapturedRequestBody(input);
278
+ if (input.method === 'HEAD')
279
+ return false;
280
+ return true;
281
+ }
282
+ function hasCapturedRequestBody(input) {
283
+ const contentLength = input.headers.get('content-length');
284
+ const headerIndicatesBody = (contentLength !== null && contentLength !== '0') || input.headers.has('transfer-encoding');
285
+ if (input.hasBody === true)
286
+ return true;
287
+ return headerIndicatesBody;
288
+ }
266
289
  /**
267
290
  * Shared logic for verifying an incremental voucher and updating channel state.
268
291
  * Used by both handleVoucher and (indirectly) handleOpen.
@@ -349,8 +372,9 @@ async function verifyAndAcceptVoucher(parameters) {
349
372
  * transaction is validated and simulated via `eth_estimateGas`; the receipt
350
373
  * is returned immediately and the broadcast runs in the background.
351
374
  */
352
- async function handleOpen(store, client, challenge, payload, methodDetails, feePayer, waitForConfirmation) {
353
- const voucher = parseVoucherFromPayload(payload.channelId, payload.cumulativeAmount, payload.signature);
375
+ async function handleOpen(store, client, challenge, payload, methodDetails, feePayer, feePayerPolicy, waitForConfirmation) {
376
+ const channelId = ChannelStore.normalizeChannelId(payload.channelId);
377
+ const voucher = parseVoucherFromPayload(channelId, payload.cumulativeAmount, payload.signature);
354
378
  const recipient = challenge.request.recipient;
355
379
  const currency = challenge.request.currency;
356
380
  const amount = challenge.request.amount ? BigInt(challenge.request.amount) : undefined;
@@ -358,9 +382,11 @@ async function handleOpen(store, client, challenge, payload, methodDetails, feeP
358
382
  client,
359
383
  serializedTransaction: payload.transaction,
360
384
  escrowContract: methodDetails.escrowContract,
361
- channelId: payload.channelId,
385
+ channelId,
362
386
  recipient,
363
387
  currency,
388
+ challengeExpires: challenge.expires,
389
+ feePayerPolicy,
364
390
  feePayer,
365
391
  waitForConfirmation,
366
392
  });
@@ -380,7 +406,7 @@ async function handleOpen(store, client, challenge, payload, methodDetails, feeP
380
406
  if (!isValid) {
381
407
  throw new InvalidSignatureError({ reason: 'invalid voucher signature' });
382
408
  }
383
- const updated = await store.updateChannel(payload.channelId, (existing) => {
409
+ const updated = await store.updateChannel(channelId, (existing) => {
384
410
  if (existing) {
385
411
  if (voucher.cumulativeAmount <= existing.settledOnChain) {
386
412
  throw new VerificationFailedError({
@@ -409,7 +435,7 @@ async function handleOpen(store, client, challenge, payload, methodDetails, feeP
409
435
  };
410
436
  }
411
437
  return {
412
- channelId: payload.channelId,
438
+ channelId,
413
439
  chainId: methodDetails.chainId,
414
440
  escrowContract: methodDetails.escrowContract,
415
441
  closeRequestedAt: onChain.closeRequestedAt,
@@ -431,7 +457,7 @@ async function handleOpen(store, client, challenge, payload, methodDetails, feeP
431
457
  throw new VerificationFailedError({ reason: 'failed to create channel' });
432
458
  return createSessionReceipt({
433
459
  challengeId: challenge.id,
434
- channelId: payload.channelId,
460
+ channelId: updated.channelId,
435
461
  acceptedCumulative: updated.highestVoucherAmount,
436
462
  spent: updated.spent,
437
463
  units: updated.units,
@@ -445,8 +471,9 @@ async function handleOpen(store, client, challenge, payload, methodDetails, feeP
445
471
  * additionalDeposit — no voucher. The client must send a separate 'voucher'
446
472
  * action to authorize spending the new funds.
447
473
  */
448
- async function handleTopUp(store, client, challenge, payload, methodDetails, feePayer) {
449
- const channel = await store.getChannel(payload.channelId);
474
+ async function handleTopUp(store, client, challenge, payload, methodDetails, feePayer, feePayerPolicy) {
475
+ const channelId = ChannelStore.normalizeChannelId(payload.channelId);
476
+ const channel = await store.getChannel(channelId);
450
477
  if (!channel) {
451
478
  throw new ChannelNotFoundError({ reason: 'channel not found' });
452
479
  }
@@ -455,20 +482,22 @@ async function handleTopUp(store, client, challenge, payload, methodDetails, fee
455
482
  client,
456
483
  serializedTransaction: payload.transaction,
457
484
  escrowContract: methodDetails.escrowContract,
458
- channelId: payload.channelId,
485
+ channelId,
459
486
  currency: challenge.request.currency,
460
487
  declaredDeposit,
461
488
  previousDeposit: channel.deposit,
489
+ challengeExpires: challenge.expires,
490
+ feePayerPolicy,
462
491
  feePayer,
463
492
  });
464
- const updated = await store.updateChannel(payload.channelId, (current) => {
493
+ const updated = await store.updateChannel(channelId, (current) => {
465
494
  if (!current)
466
495
  throw new ChannelNotFoundError({ reason: 'channel not found' });
467
496
  return { ...current, deposit: onChainDeposit };
468
497
  });
469
498
  return createSessionReceipt({
470
499
  challengeId: challenge.id,
471
- channelId: payload.channelId,
500
+ channelId: updated?.channelId ?? channel.channelId,
472
501
  acceptedCumulative: updated?.highestVoucherAmount ?? channel.highestVoucherAmount,
473
502
  spent: updated?.spent ?? channel.spent,
474
503
  units: updated?.units ?? channel.units,
@@ -478,14 +507,15 @@ async function handleTopUp(store, client, challenge, payload, methodDetails, fee
478
507
  * Handle 'voucher' action - verify and accept a new voucher.
479
508
  */
480
509
  async function handleVoucher(store, client, minVoucherDelta, challenge, payload, methodDetails, channelStateTtl, lastOnChainVerified) {
481
- const channel = await store.getChannel(payload.channelId);
510
+ const channelId = ChannelStore.normalizeChannelId(payload.channelId);
511
+ const channel = await store.getChannel(channelId);
482
512
  if (!channel) {
483
513
  throw new ChannelNotFoundError({ reason: 'channel not found' });
484
514
  }
485
515
  if (channel.finalized) {
486
516
  throw new ChannelClosedError({ reason: 'channel is finalized' });
487
517
  }
488
- const voucher = parseVoucherFromPayload(payload.channelId, payload.cumulativeAmount, payload.signature);
518
+ const voucher = parseVoucherFromPayload(channelId, payload.cumulativeAmount, payload.signature);
489
519
  // Use locally-stored channel state as a trusted cache instead of
490
520
  // reading on-chain for every voucher. The on-chain state is verified
491
521
  // during `open` and `topUp` actions — subsequent vouchers within the
@@ -496,16 +526,16 @@ async function handleVoucher(store, client, minVoucherDelta, challenge, payload,
496
526
  // To guard against the payer initiating a forced close while vouchers
497
527
  // are still being accepted, re-query on-chain state when the cache
498
528
  // exceeds the configured staleness TTL (default: 5s).
499
- const lastVerified = lastOnChainVerified.get(payload.channelId) ?? 0;
529
+ const lastVerified = lastOnChainVerified.get(channelId) ?? 0;
500
530
  const isStale = Date.now() - lastVerified > channelStateTtl;
501
531
  const onChain = await (async () => {
502
532
  if (isStale) {
503
- const onChainChannel = await getOnChainChannel(client, methodDetails.escrowContract, payload.channelId);
504
- lastOnChainVerified.set(payload.channelId, Date.now());
533
+ const onChainChannel = await getOnChainChannel(client, methodDetails.escrowContract, channelId);
534
+ lastOnChainVerified.set(channelId, Date.now());
505
535
  // Persist closeRequestedAt so the cached path detects force-close
506
536
  // between re-queries.
507
537
  if (onChainChannel.closeRequestedAt !== 0n) {
508
- await store.updateChannel(payload.channelId, (current) => current ? { ...current, closeRequestedAt: onChainChannel.closeRequestedAt } : current);
538
+ await store.updateChannel(channelId, (current) => current ? { ...current, closeRequestedAt: onChainChannel.closeRequestedAt } : current);
509
539
  }
510
540
  return onChainChannel;
511
541
  }
@@ -525,7 +555,7 @@ async function handleVoucher(store, client, minVoucherDelta, challenge, payload,
525
555
  minVoucherDelta,
526
556
  challenge,
527
557
  channel,
528
- channelId: payload.channelId,
558
+ channelId,
529
559
  voucher,
530
560
  onChain,
531
561
  methodDetails,
@@ -535,15 +565,16 @@ async function handleVoucher(store, client, minVoucherDelta, challenge, payload,
535
565
  * Handle 'close' action - verify final voucher and close channel.
536
566
  */
537
567
  async function handleClose(store, client, challenge, payload, methodDetails, account, feePayer) {
538
- const channel = await store.getChannel(payload.channelId);
568
+ const channelId = ChannelStore.normalizeChannelId(payload.channelId);
569
+ const channel = await store.getChannel(channelId);
539
570
  if (!channel) {
540
571
  throw new ChannelNotFoundError({ reason: 'channel not found' });
541
572
  }
542
573
  if (channel.finalized) {
543
574
  throw new ChannelClosedError({ reason: 'channel is already finalized' });
544
575
  }
545
- const voucher = parseVoucherFromPayload(payload.channelId, payload.cumulativeAmount, payload.signature);
546
- const onChain = await getOnChainChannel(client, methodDetails.escrowContract, payload.channelId);
576
+ const voucher = parseVoucherFromPayload(channelId, payload.cumulativeAmount, payload.signature);
577
+ const onChain = await getOnChainChannel(client, methodDetails.escrowContract, channelId);
547
578
  if (onChain.finalized) {
548
579
  throw new ChannelClosedError({ reason: 'channel is finalized on-chain' });
549
580
  }
@@ -569,7 +600,7 @@ async function handleClose(store, client, challenge, payload, methodDetails, acc
569
600
  const txHash = await closeOnChain(client, methodDetails.escrowContract, voucher, {
570
601
  ...(feePayer && account ? { feePayer, account } : { account }),
571
602
  });
572
- const updated = await store.updateChannel(payload.channelId, (current) => {
603
+ const updated = await store.updateChannel(channelId, (current) => {
573
604
  if (!current)
574
605
  return null;
575
606
  const updateVoucher = voucher.cumulativeAmount > current.highestVoucherAmount;
@@ -585,7 +616,7 @@ async function handleClose(store, client, challenge, payload, methodDetails, acc
585
616
  });
586
617
  return createSessionReceipt({
587
618
  challengeId: challenge.id,
588
- channelId: payload.channelId,
619
+ channelId: updated?.channelId ?? channel.channelId,
589
620
  acceptedCumulative: voucher.cumulativeAmount,
590
621
  spent: updated?.spent ?? channel.spent,
591
622
  units: updated?.units ?? channel.units,
@@ -1 +1 @@
1
- {"version":3,"file":"Session.js","sourceRoot":"","sources":["../../../src/tempo/server/Session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAGL,UAAU,EACV,WAAW,GAGZ,MAAM,MAAM,CAAA;AACb,OAAO,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,aAAa,CAAA;AAElD,OAAO,EACL,yBAAyB,EACzB,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,iBAAiB,CAAA;AAGxB,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAA;AACzC,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,sBAAsB,CAAA;AAC9C,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAA;AACjD,OAAO,KAAK,QAAQ,MAAM,yBAAyB,CAAA;AAEnD,OAAO,KAAK,OAAO,MAAM,eAAe,CAAA;AACxC,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,YAAY,EACZ,iBAAiB,EAEjB,aAAa,GACd,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,YAAY,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAE5D,OAAO,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAC9E,OAAO,KAAK,SAAS,MAAM,yBAAyB,CAAA;AAWpD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,OAAO,CACrB,CAA+C;IAE/C,MAAM,UAAU,GAAG,CAAe,CAAA;IAClC,MAAM,EACJ,MAAM,EACN,eAAe,GAAG,KAAK,EACvB,QAAQ,GAAG,QAAQ,CAAC,eAAe,CAAC,UAAU,CAAC,EAC/C,QAAQ,GAAG,QAAQ,CAAC,QAAQ,EAC5B,KAAK,EAAE,QAAQ,GAAG,KAAK,CAAC,MAAM,EAAE,EAChC,gBAAgB,EAChB,QAAQ,EACR,mBAAmB,GAAG,IAAI,GAC3B,GAAG,UAAU,CAAA;IAEd,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAe,CAAA;IAElD,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;IAE9C,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IAEjF,IAAI,CAAC,OAAO;QACV,MAAM,IAAI,KAAK,CACb,8MAA8M,CAC/M,CAAA;IAEH,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC;QACnC,KAAK,EAAE,WAAW;QAClB,WAAW;QACX,SAAS,EAAE,UAAU,CAAC,SAAS;QAC/B,MAAM,EAAE,QAAQ,CAAC,MAAM;KACxB,CAAC,CAAA;IAGF,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG;QAC9B,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC;YACZ,KAAK;YACL,GAAG,CAAC,OAAO,UAAU,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;SACrE,CAAC;QACJ,CAAC,CAAC,SAAS,CAAA;IAGb,OAAO,MAAM,CAAC,QAAQ,CAA8C,OAAO,CAAC,OAAO,EAAE;QACnF,QAAQ,EAAE;YACR,MAAM;YACN,QAAQ;YACR,QAAQ;YACR,SAAS;YACT,gBAAgB;YAChB,QAAQ;SACc;QAExB,SAAS,EAAE,SAAkB;QAE7B,0CAA0C;QAC1C,KAAK,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE;YACnC,2CAA2C;YAC3C,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE;gBAChC,IAAI,OAAO,CAAC,OAAO;oBAAE,OAAO,OAAO,CAAC,OAAO,CAAA;gBAC3C,IAAI,UAAU,CAAC,OAAO;oBAAE,OAAO,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAA;gBACvD,OAAO,CAAC,MAAM,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAA;YACxC,CAAC,CAAC,EAAE,CAAA;YAEJ,oBAAoB;YACpB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE;gBAC/B,IAAI,CAAC;oBACH,OAAO,MAAM,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;gBACrC,CAAC;gBAAC,MAAM,CAAC;oBACP,MAAM,IAAI,KAAK,CAAC,qCAAqC,OAAO,GAAG,CAAC,CAAA;gBAClE,CAAC;YACH,CAAC,CAAC,EAAE,CAAA;YACJ,IAAI,MAAM,CAAC,KAAK,EAAE,EAAE,KAAK,OAAO;gBAC9B,MAAM,IAAI,KAAK,CAAC,sCAAsC,OAAO,GAAG,CAAC,CAAA;YAEnE,MAAM,cAAc,GAClB,OAAO,CAAC,cAAc;gBACtB,UAAU,CAAC,cAAc;gBACzB,QAAQ,CAAC,cAAc,CAAC,OAA+C,CAAC,CAAA;YAE1E,oBAAoB;YACpB,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE;gBAC7B,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAA;gBAClF,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,KAAK,KAAK,IAAI,CAAC,OAAO,IAAI,QAAQ,IAAI,WAAW,CAAC,CAAA;gBACpF,IAAI,UAAU;oBAAE,OAAO,OAAO,CAAA;gBAC9B,IAAI,SAAS;oBAAE,OAAO,IAAI,CAAA;gBAC1B,OAAO,SAAS,CAAA;YAClB,CAAC,CAAC,EAAE,CAAA;YAEJ,OAAO;gBACL,GAAG,OAAO;gBACV,OAAO;gBACP,cAAc,EAAE,cAAc;gBAC9B,QAAQ,EAAE,gBAAgB;aAC3B,CAAA;QACH,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE;YAClC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,UAA6D,CAAA;YAE5F,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YACrE,MAAM,aAAa,GAAG,eAAe,CAAC,aAAqC,CAAA;YAC3E,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,OAAO,EAAE,CAAC,CAAA;YAElE,MAAM,gBAAgB,GAAG,aAAa,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAA;YAC/E,MAAM,eAAe,GAAG,UAAU,CAAC,UAAU,CAAC,eAAe,IAAI,GAAG,EAAE,QAAQ,CAAC,CAAA;YAC/E,MAAM,wBAAwB,GAAG,aAAa,CAAC,eAAe;gBAC5D,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC;gBACvC,CAAC,CAAC,eAAe,CAAA;YAEnB,IAAI,cAA8B,CAAA;YAElC,QAAQ,OAAO,CAAC,MAAM,EAAE,CAAC;gBACvB,KAAK,MAAM;oBACT,cAAc,GAAG,MAAM,UAAU,CAC/B,KAAK,EACL,MAAM,EACN,SAAS,EACT,OAAO,EACP,aAAa,EACb,gBAAgB,EAChB,mBAAmB,CACpB,CAAA;oBACD,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;oBACtD,MAAK;gBAEP,KAAK,OAAO;oBACV,cAAc,GAAG,MAAM,WAAW,CAChC,KAAK,EACL,MAAM,EACN,SAAS,EACT,OAAO,EACP,aAAa,EACb,gBAAgB,CACjB,CAAA;oBACD,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;oBACtD,MAAK;gBAEP,KAAK,SAAS;oBACZ,cAAc,GAAG,MAAM,aAAa,CAClC,KAAK,EACL,MAAM,EACN,wBAAwB,EACxB,SAAS,EACT,OAAO,EACP,aAAa,EACb,eAAe,EACf,mBAAmB,CACpB,CAAA;oBACD,MAAK;gBAEP,KAAK,OAAO;oBACV,cAAc,GAAG,MAAM,WAAW,CAChC,KAAK,EACL,MAAM,EACN,SAAS,EACT,OAAO,EACP,aAAa,EACb,OAAO,EACP,gBAAgB,CACjB,CAAA;oBACD,MAAK;gBAEP;oBACE,MAAM,IAAI,eAAe,CAAC;wBACxB,MAAM,EAAE,mBAAoB,OAA8B,CAAC,MAAM,EAAE;qBACpE,CAAC,CAAA;YACN,CAAC;YAED,OAAO,cAAc,CAAA;QACvB,CAAC;QAED,wEAAwE;QACxE,uEAAuE;QACvE,oEAAoE;QACpE,mDAAmD;QACnD,EAAE;QACF,qEAAqE;QACrE,EAAE;QACF,iEAAiE;QACjE,kEAAkE;QAClE,gEAAgE;QAChE,kEAAkE;QAClE,kEAAkE;QAClE,0CAA0C;QAC1C,OAAO,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE;YAC3B,MAAM,EAAE,OAAO,EAAE,GAAG,UAA6D,CAAA;YAEjF,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO;gBAAE,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;YAC1E,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO;gBAAE,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;YAE1E,mEAAmE;YACnE,+DAA+D;YAC/D,+CAA+C;YAC/C,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC5B,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;gBACzD,IAAI,aAAa,KAAK,IAAI,IAAI,aAAa,KAAK,GAAG;oBAAE,OAAO,SAAS,CAAA;gBACrE,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;oBAAE,OAAO,SAAS,CAAA;gBAC5D,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;YAC5C,CAAC;YACD,OAAO,SAAS,CAAA;QAClB,CAAC;KACF,CAAC,CAAA;AACJ,CAAC;AAwDD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,KAAgC,EAChC,MAAmB,EACnB,SAAc,EACd,OAKC;IAED,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;IACjD,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,oBAAoB,CAAC,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC,CAAA;IAC7E,IAAI,CAAC,OAAO,CAAC,cAAc;QAAE,MAAM,IAAI,uBAAuB,CAAC,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAC,CAAA;IAElG,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,EAAE,EAAE,CAAA;IAChC,MAAM,cAAc,GAClB,OAAO,EAAE,cAAc;QACvB,QAAQ,CAAC,cAAc,CAAC,OAA+C,CAAC,CAAA;IAC1E,IAAI,CAAC,cAAc;QAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,OAAO,GAAG,CAAC,CAAA;IAElF,MAAM,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,gBAAgB,CAAA;IAC7D,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE;QACjF,GAAG,CAAC,OAAO,EAAE,QAAQ,IAAI,OAAO,EAAE,OAAO;YACvC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE;YAC1D,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;KACnC,CAAC,CAAA;IAEF,MAAM,KAAK,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;QAC/C,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAA;QACzB,MAAM,WAAW,GACf,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAA;QACjF,OAAO,EAAE,GAAG,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,CAAA;IACpD,CAAC,CAAC,CAAA;IAEF,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,KAAgC,EAChC,SAAc,EACd,MAAc;IAEd,IAAI,MAAkE,CAAA;IACtE,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,YAAY,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;IACzE,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,kBAAkB,CAAC,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC,CAAA;IAC/D,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,oBAAoB,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAA;QAC5E,MAAM,IAAI,wBAAwB,CAAC;YACjC,MAAM,EAAE,aAAa,MAAM,eAAe,SAAS,EAAE;SACtD,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,OAAO,CAAA;AACvB,CAAC;AAED;;GAEG;AACH,SAAS,sBAAsB,CAC7B,OAAuB,EACvB,SAAkB,EAClB,QAAiB,EACjB,MAAe;IAEf,IAAI,OAAO,CAAC,OAAO,KAAK,EAAE,EAAE,CAAC;QAC3B,MAAM,IAAI,oBAAoB,CAAC,EAAE,MAAM,EAAE,6BAA6B,EAAE,CAAC,CAAA;IAC3E,CAAC;IACD,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,MAAM,IAAI,kBAAkB,CAAC,EAAE,MAAM,EAAE,+BAA+B,EAAE,CAAC,CAAA;IAC3E,CAAC;IACD,IAAI,OAAO,CAAC,gBAAgB,KAAK,EAAE,EAAE,CAAC;QACpC,MAAM,IAAI,kBAAkB,CAAC,EAAE,MAAM,EAAE,qCAAqC,EAAE,CAAC,CAAA;IACjF,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC;QAC5D,MAAM,IAAI,uBAAuB,CAAC;YAChC,MAAM,EAAE,kDAAkD;SAC3D,CAAC,CAAA;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;QAC3D,MAAM,IAAI,uBAAuB,CAAC,EAAE,MAAM,EAAE,4CAA4C,EAAE,CAAC,CAAA;IAC7F,CAAC;IACD,IAAI,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,GAAG,MAAM,EAAE,CAAC;QACvE,MAAM,IAAI,wBAAwB,CAAC;YACjC,MAAM,EAAE,6DAA6D;SACtE,CAAC,CAAA;IACJ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,sBAAsB,CAAC,UASrC;IACC,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,GAC9F,UAAU,CAAA;IAEZ,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,MAAM,IAAI,kBAAkB,CAAC,EAAE,MAAM,EAAE,+BAA+B,EAAE,CAAC,CAAA;IAC3E,CAAC;IACD,IAAI,OAAO,CAAC,gBAAgB,KAAK,EAAE,EAAE,CAAC;QACpC,MAAM,IAAI,kBAAkB,CAAC,EAAE,MAAM,EAAE,qCAAqC,EAAE,CAAC,CAAA;IACjF,CAAC;IACD,iEAAiE;IACjE,oEAAoE;IACpE,4DAA4D;IAC5D,gEAAgE;IAChE,qEAAqE;IACrE,2CAA2C;IAC3C,IAAI,OAAO,CAAC,OAAO,KAAK,EAAE,IAAI,OAAO,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;QAC5D,MAAM,IAAI,kBAAkB,CAAC,EAAE,MAAM,EAAE,mCAAmC,EAAE,CAAC,CAAA;IAC/E,CAAC;IAED,IAAI,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAChD,MAAM,IAAI,uBAAuB,CAAC;YAChC,MAAM,EAAE,2DAA2D;SACpE,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,gBAAgB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QAC/C,MAAM,IAAI,yBAAyB,CAAC,EAAE,MAAM,EAAE,yCAAyC,EAAE,CAAC,CAAA;IAC5F,CAAC;IAED,IAAI,OAAO,CAAC,gBAAgB,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;QAC5D,MAAM,IAAI,uBAAuB,CAAC;YAChC,MAAM,EAAE,iFAAiF;SAC1F,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,aAAa,CACjC,aAAa,CAAC,cAAc,EAC5B,aAAa,CAAC,OAAO,EACrB,OAAO,EACP,OAAO,CAAC,gBAAgB,CACzB,CAAA;IAED,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,qBAAqB,CAAC,EAAE,MAAM,EAAE,2BAA2B,EAAE,CAAC,CAAA;IAC1E,CAAC;IAED,kEAAkE;IAClE,wDAAwD;IACxD,IAAI,OAAO,CAAC,gBAAgB,KAAK,OAAO,CAAC,oBAAoB,EAAE,CAAC;QAC9D,OAAO,oBAAoB,CAAC;YAC1B,WAAW,EAAE,SAAS,CAAC,EAAE;YACzB,SAAS;YACT,kBAAkB,EAAE,OAAO,CAAC,oBAAoB;YAChD,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,gBAAgB,GAAG,OAAO,CAAC,oBAAoB,CAAA;IACrE,IAAI,KAAK,GAAG,eAAe,EAAE,CAAC;QAC5B,MAAM,IAAI,kBAAkB,CAAC;YAC3B,MAAM,EAAE,iBAAiB,KAAK,kBAAkB,eAAe,EAAE;SAClE,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;QAC/D,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,oBAAoB,CAAC,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC,CAAA;QAC7E,IAAI,OAAO,CAAC,gBAAgB,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;YAC5D,OAAO;gBACL,GAAG,OAAO;gBACV,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,oBAAoB,EAAE,OAAO,CAAC,gBAAgB;gBAC9C,cAAc,EAAE,OAAO;aACxB,CAAA;QACH,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC,CAAC,CAAA;IACF,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,oBAAoB,CAAC,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC,CAAA;IAE7E,OAAO,oBAAoB,CAAC;QAC1B,WAAW,EAAE,SAAS,CAAC,EAAE;QACzB,SAAS;QACT,kBAAkB,EAAE,OAAO,CAAC,oBAAoB;QAChD,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,UAAU,CACvB,KAAgC,EAChC,MAAmB,EACnB,SAA8B,EAC9B,OAAsD,EACtD,aAAmC,EACnC,QAAkC,EAClC,mBAA4B;IAE5B,MAAM,OAAO,GAAG,uBAAuB,CACrC,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,gBAAgB,EACxB,OAAO,CAAC,SAAS,CAClB,CAAA;IAED,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,SAAoB,CAAA;IACxD,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,QAAmB,CAAA;IACtD,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,MAAgB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAEhG,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,wBAAwB,CAAC;QACzD,MAAM;QACN,qBAAqB,EAAE,OAAO,CAAC,WAAW;QAC1C,cAAc,EAAE,aAAa,CAAC,cAAc;QAC5C,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,mBAAmB;KACpB,CAAC,CAAA;IAEF,sBAAsB,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;IAE5D,MAAM,gBAAgB,GACpB,OAAO,CAAC,gBAAgB,KAAK,4CAA4C;QACvE,CAAC,CAAC,OAAO,CAAC,KAAK;QACf,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAA;IAE9B,IAAI,OAAO,CAAC,gBAAgB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QAC/C,MAAM,IAAI,yBAAyB,CAAC,EAAE,MAAM,EAAE,yCAAyC,EAAE,CAAC,CAAA;IAC5F,CAAC;IAED,IAAI,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAChD,MAAM,IAAI,uBAAuB,CAAC;YAChC,MAAM,EAAE,2DAA2D;SACpE,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,aAAa,CACjC,aAAa,CAAC,cAAc,EAC5B,aAAa,CAAC,OAAO,EACrB,OAAO,EACP,gBAAgB,CACjB,CAAA;IAED,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,qBAAqB,CAAC,EAAE,MAAM,EAAE,2BAA2B,EAAE,CAAC,CAAA;IAC1E,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE;QACxE,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,OAAO,CAAC,gBAAgB,IAAI,QAAQ,CAAC,cAAc,EAAE,CAAC;gBACxD,MAAM,IAAI,uBAAuB,CAAC;oBAChC,MAAM,EAAE,iDAAiD;iBAC1D,CAAC,CAAA;YACJ,CAAC;YAED,MAAM,cAAc,GAClB,OAAO,CAAC,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAA;YACvF,MAAM,KAAK,GAAG,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAA;YAE/E,IAAI,OAAO,CAAC,gBAAgB,GAAG,QAAQ,CAAC,oBAAoB,EAAE,CAAC;gBAC7D,OAAO;oBACL,GAAG,QAAQ;oBACX,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,cAAc;oBACd,KAAK;oBACL,oBAAoB,EAAE,OAAO,CAAC,gBAAgB;oBAC9C,cAAc,EAAE,OAAO;oBACvB,gBAAgB;iBACjB,CAAA;YACH,CAAC;YACD,OAAO;gBACL,GAAG,QAAQ;gBACX,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,cAAc;gBACd,KAAK;gBACL,gBAAgB;aACjB,CAAA;QACH,CAAC;QACD,OAAO;YACL,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,OAAO,EAAE,aAAa,CAAC,OAAO;YAC9B,cAAc,EAAE,aAAa,CAAC,cAAc;YAC5C,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;YAC1C,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,gBAAgB;YAChB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,cAAc,EAAE,OAAO,CAAC,OAAO;YAC/B,oBAAoB,EAAE,OAAO,CAAC,gBAAgB;YAC9C,cAAc,EAAE,OAAO;YACvB,KAAK,EAAE,OAAO,CAAC,OAAO;YACtB,KAAK,EAAE,CAAC;YACR,SAAS,EAAE,KAAK;YAChB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,uBAAuB,CAAC,EAAE,MAAM,EAAE,0BAA0B,EAAE,CAAC,CAAA;IAEvF,OAAO,oBAAoB,CAAC;QAC1B,WAAW,EAAE,SAAS,CAAC,EAAE;QACzB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,kBAAkB,EAAE,OAAO,CAAC,oBAAoB;QAChD,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM;KACP,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,WAAW,CACxB,KAAgC,EAChC,MAAmB,EACnB,SAA8B,EAC9B,OAAuD,EACvD,aAAmC,EACnC,QAAkC;IAElC,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IACzD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,oBAAoB,CAAC,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC,CAAA;IACjE,CAAC;IAED,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;IAEzD,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,MAAM,yBAAyB,CAAC;QACrE,MAAM;QACN,qBAAqB,EAAE,OAAO,CAAC,WAAW;QAC1C,cAAc,EAAE,aAAa,CAAC,cAAc;QAC5C,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,QAAQ,EAAE,SAAS,CAAC,OAAO,CAAC,QAAmB;QAC/C,eAAe;QACf,eAAe,EAAE,OAAO,CAAC,OAAO;QAChC,QAAQ;KACT,CAAC,CAAA;IAEF,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;QACvE,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,oBAAoB,CAAC,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC,CAAA;QAC7E,OAAO,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,CAAA;IAChD,CAAC,CAAC,CAAA;IAEF,OAAO,oBAAoB,CAAC;QAC1B,WAAW,EAAE,SAAS,CAAC,EAAE;QACzB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,kBAAkB,EAAE,OAAO,EAAE,oBAAoB,IAAI,OAAO,CAAC,oBAAoB;QACjF,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,OAAO,CAAC,KAAK;QACtC,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,OAAO,CAAC,KAAK;KACvC,CAAC,CAAA;AACJ,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,aAAa,CAC1B,KAAgC,EAChC,MAAmB,EACnB,eAAuB,EACvB,SAA8B,EAC9B,OAAyD,EACzD,aAAmC,EACnC,eAAuB,EACvB,mBAAqC;IAErC,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IACzD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,oBAAoB,CAAC,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC,CAAA;IACjE,CAAC;IACD,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,MAAM,IAAI,kBAAkB,CAAC,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAC,CAAA;IAClE,CAAC;IAED,MAAM,OAAO,GAAG,uBAAuB,CACrC,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,gBAAgB,EACxB,OAAO,CAAC,SAAS,CAClB,CAAA;IAED,iEAAiE;IACjE,qEAAqE;IACrE,qEAAqE;IACrE,gEAAgE;IAChE,mEAAmE;IACnE,gEAAgE;IAChE,EAAE;IACF,sEAAsE;IACtE,mEAAmE;IACnE,sDAAsD;IACtD,MAAM,YAAY,GAAG,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IACpE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,GAAG,eAAe,CAAA;IAE3D,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE;QAChC,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,cAAc,GAAG,MAAM,iBAAiB,CAC5C,MAAM,EACN,aAAa,CAAC,cAAc,EAC5B,OAAO,CAAC,SAAS,CAClB,CAAA;YACD,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;YACtD,kEAAkE;YAClE,sBAAsB;YACtB,IAAI,cAAc,CAAC,gBAAgB,KAAK,EAAE,EAAE,CAAC;gBAC3C,MAAM,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CACvD,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,gBAAgB,EAAE,cAAc,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,OAAO,CACtF,CAAA;YACH,CAAC;YACD,OAAO,cAAc,CAAA;QACvB,CAAC;QACD,OAAO;YACL,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;YAC1C,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;YAC1C,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,OAAO,EAAE,OAAO,CAAC,cAAc;SAChC,CAAA;IACH,CAAC,CAAC,EAAE,CAAA;IAEJ,OAAO,sBAAsB,CAAC;QAC5B,KAAK;QACL,eAAe;QACf,SAAS;QACT,OAAO;QACP,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,OAAO;QACP,OAAO;QACP,aAAa;KACd,CAAC,CAAA;AACJ,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,WAAW,CACxB,KAAgC,EAChC,MAAmB,EACnB,SAA8B,EAC9B,OAAuD,EACvD,aAAmC,EACnC,OAAsB,EACtB,QAAuB;IAEvB,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IACzD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,oBAAoB,CAAC,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC,CAAA;IACjE,CAAC;IACD,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,MAAM,IAAI,kBAAkB,CAAC,EAAE,MAAM,EAAE,8BAA8B,EAAE,CAAC,CAAA;IAC1E,CAAC;IAED,MAAM,OAAO,GAAG,uBAAuB,CACrC,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,gBAAgB,EACxB,OAAO,CAAC,SAAS,CAClB,CAAA;IAED,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,aAAa,CAAC,cAAc,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;IAEhG,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,MAAM,IAAI,kBAAkB,CAAC,EAAE,MAAM,EAAE,+BAA+B,EAAE,CAAC,CAAA;IAC3E,CAAC;IAED,IAAI,OAAO,CAAC,gBAAgB,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QAC7C,MAAM,IAAI,uBAAuB,CAAC;YAChC,MAAM,EAAE,mCAAmC,OAAO,CAAC,KAAK,UAAU;SACnE,CAAC,CAAA;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAChD,MAAM,IAAI,uBAAuB,CAAC;YAChC,MAAM,EAAE,kCAAkC,OAAO,CAAC,OAAO,qBAAqB;SAC/E,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,gBAAgB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QAC/C,MAAM,IAAI,yBAAyB,CAAC;YAClC,MAAM,EAAE,+CAA+C;SACxD,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,aAAa,CACjC,aAAa,CAAC,cAAc,EAC5B,aAAa,CAAC,OAAO,EACrB,OAAO,EACP,OAAO,CAAC,gBAAgB,CACzB,CAAA;IAED,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,qBAAqB,CAAC,EAAE,MAAM,EAAE,2BAA2B,EAAE,CAAC,CAAA;IAC1E,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,aAAa,CAAC,cAAc,EAAE,OAAO,EAAE;QAC/E,GAAG,CAAC,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;KAC/D,CAAC,CAAA;IAEF,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;QACvE,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAA;QACzB,MAAM,aAAa,GAAG,OAAO,CAAC,gBAAgB,GAAG,OAAO,CAAC,oBAAoB,CAAA;QAC7E,OAAO;YACL,GAAG,OAAO;YACV,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,GAAG,CAAC,aAAa,IAAI;gBACnB,oBAAoB,EAAE,OAAO,CAAC,gBAAgB;gBAC9C,cAAc,EAAE,OAAO;aACxB,CAAC;YACF,SAAS,EAAE,IAAI;SAChB,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,oBAAoB,CAAC;QAC1B,WAAW,EAAE,SAAS,CAAC,EAAE;QACzB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,kBAAkB,EAAE,OAAO,CAAC,gBAAgB;QAC5C,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,OAAO,CAAC,KAAK;QACtC,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,OAAO,CAAC,KAAK;QACtC,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,CAAC;KACxC,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"Session.js","sourceRoot":"","sources":["../../../src/tempo/server/Session.ts"],"names":[],"mappings":"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"}