@qcobro/common 1.12.4 → 1.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/dist/billing/evaluate.d.ts +36 -0
  2. package/dist/billing/evaluate.d.ts.map +1 -0
  3. package/dist/billing/evaluate.js +136 -0
  4. package/dist/billing/evaluate.js.map +1 -0
  5. package/dist/billing/index.d.ts +7 -0
  6. package/dist/billing/index.d.ts.map +1 -0
  7. package/dist/billing/index.js +7 -0
  8. package/dist/billing/index.js.map +1 -0
  9. package/dist/billing/ledger.d.ts +70 -0
  10. package/dist/billing/ledger.d.ts.map +1 -0
  11. package/dist/billing/ledger.js +59 -0
  12. package/dist/billing/ledger.js.map +1 -0
  13. package/dist/billing/money.d.ts +26 -0
  14. package/dist/billing/money.d.ts.map +1 -0
  15. package/dist/billing/money.js +58 -0
  16. package/dist/billing/money.js.map +1 -0
  17. package/dist/billing/pricing.d.ts +58 -0
  18. package/dist/billing/pricing.d.ts.map +1 -0
  19. package/dist/billing/pricing.js +68 -0
  20. package/dist/billing/pricing.js.map +1 -0
  21. package/dist/billing/proration.d.ts +8 -0
  22. package/dist/billing/proration.d.ts.map +1 -0
  23. package/dist/billing/proration.js +17 -0
  24. package/dist/billing/proration.js.map +1 -0
  25. package/dist/billing/rates.d.ts +108 -0
  26. package/dist/billing/rates.d.ts.map +1 -0
  27. package/dist/billing/rates.js +56 -0
  28. package/dist/billing/rates.js.map +1 -0
  29. package/dist/bin/engineEval.d.ts +67 -0
  30. package/dist/bin/engineEval.d.ts.map +1 -0
  31. package/dist/bin/engineEval.js +290 -0
  32. package/dist/bin/engineEval.js.map +1 -0
  33. package/dist/config.d.ts +141 -1
  34. package/dist/config.d.ts.map +1 -1
  35. package/dist/config.js +70 -2
  36. package/dist/config.js.map +1 -1
  37. package/dist/evaluation/evaluate.d.ts +4 -0
  38. package/dist/evaluation/evaluate.d.ts.map +1 -0
  39. package/dist/evaluation/evaluate.js +504 -0
  40. package/dist/evaluation/evaluate.js.map +1 -0
  41. package/dist/evaluation/index.d.ts +3 -0
  42. package/dist/evaluation/index.d.ts.map +1 -0
  43. package/dist/evaluation/index.js +3 -0
  44. package/dist/evaluation/index.js.map +1 -0
  45. package/dist/evaluation/scorecard.d.ts +84 -0
  46. package/dist/evaluation/scorecard.d.ts.map +1 -0
  47. package/dist/evaluation/scorecard.js +29 -0
  48. package/dist/evaluation/scorecard.js.map +1 -0
  49. package/dist/index.d.ts +2 -0
  50. package/dist/index.d.ts.map +1 -1
  51. package/dist/index.js +2 -0
  52. package/dist/index.js.map +1 -1
  53. package/dist/schemas/billing.d.ts +74 -0
  54. package/dist/schemas/billing.d.ts.map +1 -0
  55. package/dist/schemas/billing.js +68 -0
  56. package/dist/schemas/billing.js.map +1 -0
  57. package/dist/schemas/engineEvents.d.ts +407 -0
  58. package/dist/schemas/engineEvents.d.ts.map +1 -0
  59. package/dist/schemas/engineEvents.js +179 -0
  60. package/dist/schemas/engineEvents.js.map +1 -0
  61. package/dist/schemas/index.d.ts +2 -0
  62. package/dist/schemas/index.d.ts.map +1 -1
  63. package/dist/schemas/index.js +2 -0
  64. package/dist/schemas/index.js.map +1 -1
  65. package/dist/types/billing.d.ts +134 -0
  66. package/dist/types/billing.d.ts.map +1 -0
  67. package/dist/types/billing.js +8 -0
  68. package/dist/types/billing.js.map +1 -0
  69. package/dist/types/engine.d.ts +13 -2
  70. package/dist/types/engine.d.ts.map +1 -1
  71. package/dist/types/engine.js +12 -1
  72. package/dist/types/engine.js.map +1 -1
  73. package/dist/types/index.d.ts +1 -0
  74. package/dist/types/index.d.ts.map +1 -1
  75. package/dist/types/index.js +1 -0
  76. package/dist/types/index.js.map +1 -1
  77. package/dist/utils/index.d.ts +2 -1
  78. package/dist/utils/index.d.ts.map +1 -1
  79. package/dist/utils/index.js +2 -1
  80. package/dist/utils/index.js.map +1 -1
  81. package/dist/utils/pacing.d.ts +17 -0
  82. package/dist/utils/pacing.d.ts.map +1 -0
  83. package/dist/utils/pacing.js +18 -0
  84. package/dist/utils/pacing.js.map +1 -0
  85. package/dist/utils/time.d.ts +16 -0
  86. package/dist/utils/time.d.ts.map +1 -1
  87. package/dist/utils/time.js +17 -0
  88. package/dist/utils/time.js.map +1 -1
  89. package/package.json +4 -1
package/dist/config.d.ts CHANGED
@@ -186,6 +186,102 @@ export declare const announcementConfigSchema: z.ZodOptional<z.ZodObject<{
186
186
  message: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
187
187
  }, z.core.$strip>>;
188
188
  export type AnnouncementConfig = z.infer<typeof announcementConfigSchema>;
189
+ /**
190
+ * One sellable plan. Plans are quoted in the deployment's billing currency;
191
+ * `monthlyPrice` (what the card is charged) and `monthlyAllowance` (the usage
192
+ * credit granted each cycle) are separate on purpose — "pay 29, get 35" is a
193
+ * config edit, not a schema change. `stripePriceId` joins the catalog to the
194
+ * Stripe price backing the subscription item.
195
+ */
196
+ export declare const billingPlanSchema: z.ZodObject<{
197
+ key: z.ZodString;
198
+ name: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
199
+ monthlyPrice: z.ZodNumber;
200
+ monthlyAllowance: z.ZodNumber;
201
+ stripePriceId: z.ZodString;
202
+ rates: z.ZodObject<{
203
+ sms: z.ZodObject<{
204
+ perMessage: z.ZodNumber;
205
+ }, z.core.$strict>;
206
+ email: z.ZodObject<{
207
+ perMessage: z.ZodNumber;
208
+ }, z.core.$strict>;
209
+ whatsappMessage: z.ZodObject<{
210
+ perMessage: z.ZodNumber;
211
+ }, z.core.$strict>;
212
+ voicePrerecorded: z.ZodObject<{
213
+ perMinute: z.ZodNumber;
214
+ increments: z.ZodString;
215
+ }, z.core.$strict>;
216
+ voiceAi: z.ZodObject<{
217
+ perMinute: z.ZodNumber;
218
+ increments: z.ZodString;
219
+ }, z.core.$strict>;
220
+ whatsappVoicePrerecorded: z.ZodObject<{
221
+ perMinute: z.ZodNumber;
222
+ increments: z.ZodString;
223
+ }, z.core.$strict>;
224
+ whatsappVoiceAi: z.ZodObject<{
225
+ perMinute: z.ZodNumber;
226
+ increments: z.ZodString;
227
+ }, z.core.$strict>;
228
+ }, z.core.$strict>;
229
+ }, z.core.$strip>;
230
+ export type BillingPlan = z.infer<typeof billingPlanSchema>;
231
+ /**
232
+ * Usage-based billing. The plan catalog is deployment config (this section);
233
+ * all billing STATE — workspace→plan assignment, balances, ledger, Stripe ids,
234
+ * enterprise rate overrides — lives in the database. `plans` is ORDERED: array
235
+ * index defines the upgrade path shown in the console. When `enabled` is false,
236
+ * dispatch paths neither meter usage nor enforce credit gates (pre-billing
237
+ * behavior, and the rollback switch). Stripe credentials are optional so
238
+ * metering-only and self-hosted deployments can run without payment; checkout
239
+ * and webhook surfaces error clearly when they're absent.
240
+ */
241
+ export declare const billingConfigSchema: z.ZodOptional<z.ZodObject<{
242
+ enabled: z.ZodDefault<z.ZodBoolean>;
243
+ currency: z.ZodDefault<z.ZodString>;
244
+ stripe: z.ZodOptional<z.ZodObject<{
245
+ secretKey: z.ZodString;
246
+ webhookSigningSecret: z.ZodString;
247
+ }, z.core.$strip>>;
248
+ voiceDebitEstimateSeconds: z.ZodDefault<z.ZodNumber>;
249
+ plans: z.ZodArray<z.ZodObject<{
250
+ key: z.ZodString;
251
+ name: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
252
+ monthlyPrice: z.ZodNumber;
253
+ monthlyAllowance: z.ZodNumber;
254
+ stripePriceId: z.ZodString;
255
+ rates: z.ZodObject<{
256
+ sms: z.ZodObject<{
257
+ perMessage: z.ZodNumber;
258
+ }, z.core.$strict>;
259
+ email: z.ZodObject<{
260
+ perMessage: z.ZodNumber;
261
+ }, z.core.$strict>;
262
+ whatsappMessage: z.ZodObject<{
263
+ perMessage: z.ZodNumber;
264
+ }, z.core.$strict>;
265
+ voicePrerecorded: z.ZodObject<{
266
+ perMinute: z.ZodNumber;
267
+ increments: z.ZodString;
268
+ }, z.core.$strict>;
269
+ voiceAi: z.ZodObject<{
270
+ perMinute: z.ZodNumber;
271
+ increments: z.ZodString;
272
+ }, z.core.$strict>;
273
+ whatsappVoicePrerecorded: z.ZodObject<{
274
+ perMinute: z.ZodNumber;
275
+ increments: z.ZodString;
276
+ }, z.core.$strict>;
277
+ whatsappVoiceAi: z.ZodObject<{
278
+ perMinute: z.ZodNumber;
279
+ increments: z.ZodString;
280
+ }, z.core.$strict>;
281
+ }, z.core.$strict>;
282
+ }, z.core.$strip>>;
283
+ }, z.core.$strip>>;
284
+ export type BillingConfig = z.infer<typeof billingConfigSchema>;
189
285
  export declare const qcobroConfigSchema: z.ZodObject<{
190
286
  database: z.ZodObject<{
191
287
  url: z.ZodString;
@@ -287,6 +383,49 @@ export declare const qcobroConfigSchema: z.ZodObject<{
287
383
  title: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
288
384
  message: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
289
385
  }, z.core.$strip>>;
386
+ billing: z.ZodOptional<z.ZodObject<{
387
+ enabled: z.ZodDefault<z.ZodBoolean>;
388
+ currency: z.ZodDefault<z.ZodString>;
389
+ stripe: z.ZodOptional<z.ZodObject<{
390
+ secretKey: z.ZodString;
391
+ webhookSigningSecret: z.ZodString;
392
+ }, z.core.$strip>>;
393
+ voiceDebitEstimateSeconds: z.ZodDefault<z.ZodNumber>;
394
+ plans: z.ZodArray<z.ZodObject<{
395
+ key: z.ZodString;
396
+ name: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
397
+ monthlyPrice: z.ZodNumber;
398
+ monthlyAllowance: z.ZodNumber;
399
+ stripePriceId: z.ZodString;
400
+ rates: z.ZodObject<{
401
+ sms: z.ZodObject<{
402
+ perMessage: z.ZodNumber;
403
+ }, z.core.$strict>;
404
+ email: z.ZodObject<{
405
+ perMessage: z.ZodNumber;
406
+ }, z.core.$strict>;
407
+ whatsappMessage: z.ZodObject<{
408
+ perMessage: z.ZodNumber;
409
+ }, z.core.$strict>;
410
+ voicePrerecorded: z.ZodObject<{
411
+ perMinute: z.ZodNumber;
412
+ increments: z.ZodString;
413
+ }, z.core.$strict>;
414
+ voiceAi: z.ZodObject<{
415
+ perMinute: z.ZodNumber;
416
+ increments: z.ZodString;
417
+ }, z.core.$strict>;
418
+ whatsappVoicePrerecorded: z.ZodObject<{
419
+ perMinute: z.ZodNumber;
420
+ increments: z.ZodString;
421
+ }, z.core.$strict>;
422
+ whatsappVoiceAi: z.ZodObject<{
423
+ perMinute: z.ZodNumber;
424
+ increments: z.ZodString;
425
+ }, z.core.$strict>;
426
+ }, z.core.$strict>;
427
+ }, z.core.$strip>>;
428
+ }, z.core.$strip>>;
290
429
  security: z.ZodOptional<z.ZodObject<{
291
430
  cloakEncryptionKey: z.ZodOptional<z.ZodString>;
292
431
  }, z.core.$strip>>;
@@ -297,9 +436,10 @@ export declare const qcobroConfigSchema: z.ZodObject<{
297
436
  appSecret: z.ZodOptional<z.ZodString>;
298
437
  maxRepliesDefault: z.ZodDefault<z.ZodNumber>;
299
438
  }, z.core.$strip>>;
300
- engine: z.ZodDefault<z.ZodObject<{
439
+ engine: z.ZodPrefault<z.ZodObject<{
301
440
  enabled: z.ZodDefault<z.ZodBoolean>;
302
441
  tickSeconds: z.ZodDefault<z.ZodNumber>;
442
+ eventsRetentionDays: z.ZodDefault<z.ZodNumber>;
303
443
  }, z.core.$strip>>;
304
444
  }, z.core.$strip>;
305
445
  export type IdentityConfig = z.infer<typeof identityConfigSchema>;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB;;;iBAK/B,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;iBAMlC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAkEpB,CAAC;AAEd,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,CAG1F;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB;;;;;kBAYlB,CAAC;AAEd,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;kBAqBlB,CAAC;AAEd,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;;;;;;;;GASG;AACH,eAAO,MAAM,gBAAgB;;;;;EAAoD,CAAC;AAClF,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,0EAA0E;AAC1E,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,CAKlD,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;kBAwBd,CAAC;AAEd,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEtD;;;;;GAKG;AACH,eAAO,MAAM,eAAe;;;;kBAMf,CAAC;AAEd,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,2EAGhC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;kBAcxB,CAAC;AAEd,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA8E7B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/config.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { z } from "zod";
2
+ import { ratesSchema } from "./billing/rates.js";
2
3
  /**
3
4
  * QCobro service configuration — the shape of `qcobro.json`.
4
5
  *
@@ -245,6 +246,66 @@ export const announcementConfigSchema = z
245
246
  message: localizedStringSchema
246
247
  })
247
248
  .optional();
249
+ /**
250
+ * One sellable plan. Plans are quoted in the deployment's billing currency;
251
+ * `monthlyPrice` (what the card is charged) and `monthlyAllowance` (the usage
252
+ * credit granted each cycle) are separate on purpose — "pay 29, get 35" is a
253
+ * config edit, not a schema change. `stripePriceId` joins the catalog to the
254
+ * Stripe price backing the subscription item.
255
+ */
256
+ export const billingPlanSchema = z.object({
257
+ key: z.string().regex(/^[a-z][a-z0-9-]*$/, "plan key must be kebab-case (e.g. 'starter')"),
258
+ name: localizedStringSchema,
259
+ monthlyPrice: z.number().nonnegative(),
260
+ monthlyAllowance: z.number().nonnegative(),
261
+ stripePriceId: z.string().min(1),
262
+ rates: ratesSchema
263
+ });
264
+ /**
265
+ * Usage-based billing. The plan catalog is deployment config (this section);
266
+ * all billing STATE — workspace→plan assignment, balances, ledger, Stripe ids,
267
+ * enterprise rate overrides — lives in the database. `plans` is ORDERED: array
268
+ * index defines the upgrade path shown in the console. When `enabled` is false,
269
+ * dispatch paths neither meter usage nor enforce credit gates (pre-billing
270
+ * behavior, and the rollback switch). Stripe credentials are optional so
271
+ * metering-only and self-hosted deployments can run without payment; checkout
272
+ * and webhook surfaces error clearly when they're absent.
273
+ */
274
+ export const billingConfigSchema = z
275
+ .object({
276
+ enabled: z.boolean().default(false),
277
+ /** Billing currency (ISO 4217) — distinct from WorkspaceSettings.currency. */
278
+ currency: z.string().length(3).default("USD"),
279
+ stripe: z
280
+ .object({
281
+ secretKey: z.string().min(1),
282
+ webhookSigningSecret: z.string().min(1)
283
+ })
284
+ .optional(),
285
+ /**
286
+ * Seconds of answered time the engine's credit bucket debits per voice
287
+ * dispatch before the call settles to its actual duration (never less than
288
+ * the meter's initial increment).
289
+ */
290
+ voiceDebitEstimateSeconds: z.number().int().positive().default(60),
291
+ plans: z
292
+ .array(billingPlanSchema)
293
+ .min(1)
294
+ .superRefine((plans, ctx) => {
295
+ const seen = new Set();
296
+ for (const [index, plan] of plans.entries()) {
297
+ if (seen.has(plan.key)) {
298
+ ctx.addIssue({
299
+ code: z.ZodIssueCode.custom,
300
+ path: [index, "key"],
301
+ message: `Duplicate plan key "${plan.key}" — plan keys must be unique`
302
+ });
303
+ }
304
+ seen.add(plan.key);
305
+ }
306
+ })
307
+ })
308
+ .optional();
248
309
  export const qcobroConfigSchema = z.object({
249
310
  /** Application (apiserver) database. */
250
311
  database: z.object({ url: z.string().min(1) }),
@@ -272,6 +333,7 @@ export const qcobroConfigSchema = z.object({
272
333
  ai: aiConfigSchema,
273
334
  tts: ttsConfigSchema,
274
335
  announcement: announcementConfigSchema,
336
+ billing: billingConfigSchema,
275
337
  /**
276
338
  * Secret-at-rest. `cloakEncryptionKey` is a versioned AES-GCM-256 key
277
339
  * (`k1.aesgcm256.<base64-32-byte>`) used by `prisma-field-encryption` (the Fonoster/Routr
@@ -320,8 +382,14 @@ export const qcobroConfigSchema = z.object({
320
382
  .object({
321
383
  enabled: z.boolean().default(false),
322
384
  /** Seconds between engine ticks. */
323
- tickSeconds: z.number().int().positive().default(60)
385
+ tickSeconds: z.number().int().positive().default(60),
386
+ /**
387
+ * Days the flight-recorder event stream (`engine_events`) is kept before the
388
+ * runner prunes it. `0` disables pruning. Telemetry only — gestiones are the
389
+ * record of contact attempts and are never pruned.
390
+ */
391
+ eventsRetentionDays: z.number().int().nonnegative().default(30)
324
392
  })
325
- .default({ enabled: false, tickSeconds: 60 })
393
+ .prefault({})
326
394
  });
327
395
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { EngineEvent } from "../schemas/engineEvents.js";
2
+ import type { EvaluationParameters, Scorecard } from "./scorecard.js";
3
+ export declare function evaluate(events: EngineEvent[], parameters: EvaluationParameters): Scorecard;
4
+ //# sourceMappingURL=evaluate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluate.d.ts","sourceRoot":"","sources":["../../src/evaluation/evaluate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAQV,WAAW,EAGZ,MAAM,4BAA4B,CAAC;AAIpC,OAAO,KAAK,EAEV,oBAAoB,EAIpB,SAAS,EAGV,MAAM,gBAAgB,CAAC;AAiLxB,wBAAgB,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,UAAU,EAAE,oBAAoB,GAAG,SAAS,CA4Y3F"}