@azure-tools/typespec-ts 0.17.0-alpha.20231010.1 → 0.17.1

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 (45) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/src/index.d.ts.map +1 -1
  3. package/dist/src/index.js +3 -1
  4. package/dist/src/index.js.map +1 -1
  5. package/dist/src/modular/buildClassicalClient.d.ts.map +1 -1
  6. package/dist/src/modular/buildClassicalClient.js +16 -0
  7. package/dist/src/modular/buildClassicalClient.js.map +1 -1
  8. package/dist/src/modular/buildCodeModel.d.ts.map +1 -1
  9. package/dist/src/modular/buildCodeModel.js +9 -0
  10. package/dist/src/modular/buildCodeModel.js.map +1 -1
  11. package/dist/src/modular/buildProjectFiles.d.ts.map +1 -1
  12. package/dist/src/modular/buildProjectFiles.js +10 -5
  13. package/dist/src/modular/buildProjectFiles.js.map +1 -1
  14. package/dist/src/modular/emitModels.d.ts.map +1 -1
  15. package/dist/src/modular/emitModels.js +2 -1
  16. package/dist/src/modular/emitModels.js.map +1 -1
  17. package/dist/src/modular/helpers/typeHelpers.js +7 -7
  18. package/dist/src/modular/helpers/typeHelpers.js.map +1 -1
  19. package/dist/src/transform/transform.d.ts.map +1 -1
  20. package/dist/src/transform/transform.js +5 -1
  21. package/dist/src/transform/transform.js.map +1 -1
  22. package/dist/src/transform/transformParameters.js +2 -1
  23. package/dist/src/transform/transformParameters.js.map +1 -1
  24. package/dist/src/transform/transformSchemas.d.ts.map +1 -1
  25. package/dist/src/transform/transformSchemas.js +13 -11
  26. package/dist/src/transform/transformSchemas.js.map +1 -1
  27. package/dist/src/utils/emitUtil.d.ts.map +1 -1
  28. package/dist/src/utils/emitUtil.js +9 -3
  29. package/dist/src/utils/emitUtil.js.map +1 -1
  30. package/dist/src/utils/modelUtils.d.ts.map +1 -1
  31. package/dist/src/utils/modelUtils.js +135 -129
  32. package/dist/src/utils/modelUtils.js.map +1 -1
  33. package/dist/tsconfig.tsbuildinfo +1 -1
  34. package/package.json +6 -5
  35. package/src/index.ts +8 -1
  36. package/src/modular/buildClassicalClient.ts +17 -0
  37. package/src/modular/buildCodeModel.ts +8 -0
  38. package/src/modular/buildProjectFiles.ts +11 -5
  39. package/src/modular/emitModels.ts +5 -1
  40. package/src/modular/helpers/typeHelpers.ts +1 -1
  41. package/src/transform/transform.ts +8 -2
  42. package/src/transform/transformParameters.ts +2 -1
  43. package/src/transform/transformSchemas.ts +7 -3
  44. package/src/utils/emitUtil.ts +9 -3
  45. package/src/utils/modelUtils.ts +148 -143
@@ -1,6 +1,6 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT License.
3
- import { getDiscriminator, getDoc, getEffectiveModelType, getFormat, getFriendlyName, getMaxLength, getMaxValue, getMinLength, getMinValue, getPattern, getProperty, getPropertyType, getSummary, getVisibility, isNeverType, isNumericType, isSecret, isStringType, isTemplateDeclaration, isUnknownType, isNullType, getProjectedName, NoTarget, listServices, getEncode } from "@typespec/compiler";
3
+ import { getDiscriminator, getDoc, getEffectiveModelType, getFormat, getFriendlyName, getMaxLength, getMaxValue, getMinLength, getMinValue, getPattern, getProperty, getPropertyType, getSummary, getVisibility, isNeverType, isNumericType, isSecret, isStringType, isTemplateDeclaration, isUnknownType, isNullType, getProjectedName, NoTarget, listServices, getEncode, isRecordModelType, isArrayModelType } from "@typespec/compiler";
4
4
  import { reportDiagnostic } from "../lib.js";
5
5
  import { NameType, normalizeName, SchemaContext } from "@azure-tools/rlc-common";
6
6
  import { getResourceOperation } from "@typespec/rest";
@@ -62,7 +62,7 @@ export function enrichBinaryTypeInBody(schema) {
62
62
  export function getSchemaForType(dpgContext, typeInput, usage, needRef = false, relevantProperty) {
63
63
  const program = dpgContext.program;
64
64
  const type = getEffectiveModelFromType(program, typeInput);
65
- const builtinType = mapTypeSpecTypeToTypeScript(dpgContext, type, usage);
65
+ const builtinType = getSchemaForLiteral(type);
66
66
  if (builtinType !== undefined) {
67
67
  // add in description elements for types derived from primitive types (SecureString, etc.)
68
68
  const doc = getDoc(program, type);
@@ -73,18 +73,20 @@ export function getSchemaForType(dpgContext, typeInput, usage, needRef = false,
73
73
  }
74
74
  if (type.kind === "Model") {
75
75
  const schema = getSchemaForModel(dpgContext, type, usage, needRef);
76
- if (usage && usage.includes(SchemaContext.Output)) {
77
- if (!schema.name || schema.name === "") {
78
- //TODO: HANDLE ANONYMOUS
79
- schema.outputTypeName =
80
- schema.type === "object" ? "Record<string, any>" : "any";
81
- schema.typeName =
82
- schema.type === "object" ? "Record<string, unknown>" : "unknown";
83
- schema.type = "unknown";
84
- }
85
- else {
86
- schema.outputTypeName = `${schema.name}Output`;
87
- schema.typeName = `${schema.name}`;
76
+ if (!isArrayModelType(program, type) && !isRecordModelType(program, type)) {
77
+ if (usage && usage.includes(SchemaContext.Output)) {
78
+ if (!schema.name || schema.name === "") {
79
+ //TODO: HANDLE ANONYMOUS
80
+ schema.outputTypeName =
81
+ schema.type === "object" ? "Record<string, any>" : "any";
82
+ schema.typeName =
83
+ schema.type === "object" ? "Record<string, unknown>" : "unknown";
84
+ schema.type = "unknown";
85
+ }
86
+ else {
87
+ schema.outputTypeName = `${schema.name}Output`;
88
+ schema.typeName = `${schema.name}`;
89
+ }
88
90
  }
89
91
  }
90
92
  schema.usage = usage;
@@ -326,6 +328,9 @@ function isSchemaProperty(program, property) {
326
328
  }
327
329
  function getSchemaForModel(dpgContext, model, usage, needRef) {
328
330
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
331
+ if (isArrayModelType(dpgContext.program, model)) {
332
+ return getSchemaForArrayModel(dpgContext, model, usage);
333
+ }
329
334
  const program = dpgContext.program;
330
335
  const overridedModelName = (_a = getFriendlyName(program, model)) !== null && _a !== void 0 ? _a : getProjectedName(program, model, "json");
331
336
  let name = model.name;
@@ -348,14 +353,20 @@ function getSchemaForModel(dpgContext, model, usage, needRef) {
348
353
  })
349
354
  .join("") + "List";
350
355
  }
351
- let modelSchema = {
356
+ const modelSchema = {
352
357
  name: overridedModelName !== null && overridedModelName !== void 0 ? overridedModelName : name,
353
358
  type: "object",
354
359
  description: (_b = getDoc(program, model)) !== null && _b !== void 0 ? _b : ""
355
360
  };
356
361
  // normalized the output name
357
362
  modelSchema.name = normalizeName(modelSchema.name, NameType.Interface, true /** shouldGuard */);
363
+ if (modelSchema.name === "Record" && isRecordModelType(program, model)) {
364
+ return getSchemaForRecordModel(dpgContext, model, usage);
365
+ }
358
366
  modelSchema.typeName = modelSchema.name;
367
+ if (usage && usage.includes(SchemaContext.Output)) {
368
+ modelSchema.outputTypeName = modelSchema.name + "Output";
369
+ }
359
370
  if (isAzureCoreErrorType(model)) {
360
371
  modelSchema.fromCore = true;
361
372
  }
@@ -425,6 +436,12 @@ function getSchemaForModel(dpgContext, model, usage, needRef) {
425
436
  if (needRef) {
426
437
  return modelSchema;
427
438
  }
439
+ if (isRecordModelType(program, model)) {
440
+ modelSchema.parents = {
441
+ all: [getSchemaForRecordModel(dpgContext, model, usage)],
442
+ immediate: [getSchemaForRecordModel(dpgContext, model, usage)]
443
+ };
444
+ }
428
445
  for (const [propName, prop] of model.properties) {
429
446
  const restApiName = getProjectedName(program, prop, "json");
430
447
  const name = `"${restApiName !== null && restApiName !== void 0 ? restApiName : propName}"`;
@@ -478,26 +495,7 @@ function getSchemaForModel(dpgContext, model, usage, needRef) {
478
495
  }
479
496
  modelSchema.properties[name] = newPropSchema;
480
497
  }
481
- // Special case: if a model type extends a single *templated* base type and
482
- // has no properties of its own, absorb the definition of the base model
483
- // into this schema definition. The assumption here is that any model type
484
- // defined like this is just meant to rename the underlying instance of a
485
- // templated type.
486
- if (model.baseModel &&
487
- model.baseModel.templateMapper &&
488
- model.baseModel.templateMapper.args &&
489
- model.baseModel.templateMapper.args.length > 0 &&
490
- modelSchema.properties &&
491
- Object.keys(modelSchema.properties).length === 0) {
492
- // Take the base model schema but carry across the documentation property
493
- // that we set before
494
- const baseSchema = getSchemaForType(dpgContext, model.baseModel, usage);
495
- modelSchema = {
496
- ...baseSchema,
497
- description: modelSchema.description
498
- };
499
- }
500
- else if (model.baseModel) {
498
+ if (model.baseModel) {
501
499
  modelSchema.parents = {
502
500
  all: [getSchemaForType(dpgContext, model.baseModel, usage, true)],
503
501
  immediate: [getSchemaForType(dpgContext, model.baseModel, usage, true)]
@@ -507,16 +505,14 @@ function getSchemaForModel(dpgContext, model, usage, needRef) {
507
505
  }
508
506
  // Map an typespec type to an OA schema. Returns undefined when the resulting
509
507
  // OA schema is just a regular object schema.
510
- function mapTypeSpecTypeToTypeScript(dpgContext, type, usage) {
508
+ function getSchemaForLiteral(type) {
511
509
  switch (type.kind) {
512
510
  case "Number":
513
- return { type: `${type.value}` };
511
+ return { type: `${type.value}`, isConstant: true };
514
512
  case "String":
515
- return { type: `"${type.value}"` };
513
+ return { type: `"${type.value}"`, isConstant: true };
516
514
  case "Boolean":
517
- return { type: `${type.value}` };
518
- case "Model":
519
- return mapTypeSpecStdTypeToTypeScript(dpgContext, type, usage);
515
+ return { type: `${type.value}`, isConstant: true };
520
516
  }
521
517
  if (type.kind === undefined) {
522
518
  if (typeof type === "string") {
@@ -526,6 +522,7 @@ function mapTypeSpecTypeToTypeScript(dpgContext, type, usage) {
526
522
  return { type: `${type}` };
527
523
  }
528
524
  }
525
+ return undefined;
529
526
  }
530
527
  function applyIntrinsicDecorators(program, type, target) {
531
528
  const newTarget = { ...target };
@@ -577,7 +574,7 @@ function getSchemaForEnumMember(program, e) {
577
574
  var _a;
578
575
  const value = (_a = e.value) !== null && _a !== void 0 ? _a : e.name;
579
576
  const type = enumMemberType(e) === "string" ? `"${value}"` : `${value}`;
580
- return { type, description: getDoc(program, e) };
577
+ return { type, description: getDoc(program, e), isConstant: true };
581
578
  }
582
579
  function getSchemaForEnum(program, e) {
583
580
  var _a;
@@ -613,100 +610,109 @@ function enumMemberType(member) {
613
610
  /**
614
611
  * Map TypeSpec intrinsic models to open api definitions
615
612
  */
616
- function mapTypeSpecStdTypeToTypeScript(dpgContext, type, usage) {
617
- var _a, _b, _c;
618
- const program = dpgContext.program;
619
- const indexer = type.indexer;
620
- if (indexer !== undefined) {
621
- if (!isNeverType(indexer.key)) {
622
- const name = indexer.key.name;
623
- let schema = {};
624
- if (name === "string") {
625
- const valueType = getSchemaForType(dpgContext, indexer.value, usage, true);
626
- schema = {
627
- type: "dictionary",
628
- additionalProperties: valueType,
629
- description: getDoc(program, type)
630
- };
631
- if (!program.checker.isStdType(indexer.value) &&
632
- !isUnknownType(indexer.value) &&
633
- !isUnionType(indexer.value)) {
634
- schema.typeName = `Record<string, ${valueType.typeName}>`;
635
- schema.valueTypeName = valueType.name;
636
- if (usage && usage.includes(SchemaContext.Output)) {
637
- schema.outputTypeName = `Record<string, ${valueType.outputTypeName}>`;
638
- schema.outputValueTypeName = `${valueType.outputTypeName}`;
639
- }
640
- }
641
- else if (isUnknownType(indexer.value)) {
642
- schema.typeName = `Record<string, ${(_a = valueType.typeName) !== null && _a !== void 0 ? _a : valueType.type}>`;
643
- if (usage && usage.includes(SchemaContext.Output)) {
644
- schema.outputTypeName = `Record<string, ${(_b = valueType.outputTypeName) !== null && _b !== void 0 ? _b : valueType.type}>`;
645
- }
646
- }
647
- else {
648
- schema.typeName = `Record<string, ${getTypeName(valueType, [
649
- SchemaContext.Input
650
- ])}>`;
651
- schema.outputTypeName = `Record<string, ${getTypeName(valueType, [
652
- SchemaContext.Output
653
- ])}>`;
654
- }
613
+ function getSchemaForArrayModel(dpgContext, type, usage) {
614
+ var _a;
615
+ const { program } = dpgContext;
616
+ const { indexer } = type;
617
+ let schema = {};
618
+ if (!indexer) {
619
+ return schema;
620
+ }
621
+ if (isArrayModelType(program, type)) {
622
+ schema = {
623
+ type: "array",
624
+ items: getSchemaForType(dpgContext, indexer.value, usage, true),
625
+ description: getDoc(program, type)
626
+ };
627
+ if (!program.checker.isStdType(indexer.value) &&
628
+ !isUnknownType(indexer.value) &&
629
+ ((_a = indexer.value) === null || _a === void 0 ? void 0 : _a.kind) &&
630
+ schema.items.name &&
631
+ !schema.items.enum) {
632
+ schema.typeName = `Array<${schema.items.name}>`;
633
+ if (usage && usage.includes(SchemaContext.Output)) {
634
+ schema.outputTypeName = `Array<${schema.items.name}Output>`;
655
635
  }
656
- else if (name === "integer") {
657
- schema = {
658
- type: "array",
659
- items: getSchemaForType(dpgContext, indexer.value, usage, true),
660
- description: getDoc(program, type)
661
- };
662
- if (!program.checker.isStdType(indexer.value) &&
663
- !isUnknownType(indexer.value) &&
664
- ((_c = indexer.value) === null || _c === void 0 ? void 0 : _c.kind) &&
665
- schema.items.name &&
666
- !schema.items.enum) {
667
- schema.typeName = `Array<${schema.items.name}>`;
668
- if (usage && usage.includes(SchemaContext.Output)) {
669
- schema.outputTypeName = `Array<${schema.items.name}Output>`;
670
- }
636
+ }
637
+ else {
638
+ if (schema.items.typeName) {
639
+ if (schema.items.type === "dictionary") {
640
+ schema.typeName = `${schema.items.typeName}[]`;
641
+ }
642
+ else if (schema.items.type === "union") {
643
+ schema.typeName = `(${schema.items.typeName})[]`;
671
644
  }
672
645
  else {
673
- if (schema.items.typeName) {
674
- if (schema.items.type === "dictionary") {
675
- schema.typeName = `${schema.items.typeName}[]`;
676
- }
677
- else if (schema.items.type === "union") {
678
- schema.typeName = `(${schema.items.typeName})[]`;
679
- }
680
- else {
681
- schema.typeName = schema.items.typeName
682
- .split("|")
683
- .map((typeName) => {
684
- return `${typeName}[]`;
685
- })
686
- .join(" | ");
687
- if (schema.items.outputTypeName &&
688
- usage &&
689
- usage.includes(SchemaContext.Output)) {
690
- schema.outputTypeName = schema.items.outputTypeName
691
- .split("|")
692
- .map((typeName) => {
693
- return `${typeName}[]`;
694
- })
695
- .join(" | ");
696
- }
697
- }
698
- }
699
- else if (schema.items.type.includes("|")) {
700
- schema.typeName = `(${schema.items.type})[]`;
701
- }
702
- else {
703
- schema.typeName = `${schema.items.type}[]`;
646
+ schema.typeName = schema.items.typeName
647
+ .split("|")
648
+ .map((typeName) => {
649
+ return `${typeName}[]`;
650
+ })
651
+ .join(" | ");
652
+ if (schema.items.outputTypeName &&
653
+ usage &&
654
+ usage.includes(SchemaContext.Output)) {
655
+ schema.outputTypeName = schema.items.outputTypeName
656
+ .split("|")
657
+ .map((typeName) => {
658
+ return `${typeName}[]`;
659
+ })
660
+ .join(" | ");
704
661
  }
705
662
  }
706
663
  }
707
- schema.usage = usage;
708
- return schema;
664
+ else if (schema.items.type.includes("|")) {
665
+ schema.typeName = `(${schema.items.type})[]`;
666
+ }
667
+ else {
668
+ schema.typeName = `${schema.items.type}[]`;
669
+ }
670
+ }
671
+ schema.usage = usage;
672
+ return schema;
673
+ }
674
+ }
675
+ function getSchemaForRecordModel(dpgContext, type, usage) {
676
+ var _a, _b;
677
+ const { program } = dpgContext;
678
+ const { indexer } = type;
679
+ let schema = {};
680
+ if (!indexer) {
681
+ return schema;
682
+ }
683
+ if (isRecordModelType(program, type)) {
684
+ const valueType = getSchemaForType(dpgContext, indexer === null || indexer === void 0 ? void 0 : indexer.value, usage, true);
685
+ schema = {
686
+ type: "dictionary",
687
+ additionalProperties: valueType,
688
+ description: getDoc(program, type)
689
+ };
690
+ if (!program.checker.isStdType(indexer.value) &&
691
+ !isUnknownType(indexer.value) &&
692
+ !isUnionType(indexer.value)) {
693
+ schema.typeName = `Record<string, ${valueType.typeName}>`;
694
+ schema.valueTypeName = valueType.name;
695
+ if (usage && usage.includes(SchemaContext.Output)) {
696
+ schema.outputTypeName = `Record<string, ${valueType.outputTypeName}>`;
697
+ schema.outputValueTypeName = `${valueType.outputTypeName}`;
698
+ }
709
699
  }
700
+ else if (isUnknownType(indexer.value)) {
701
+ schema.typeName = `Record<string, ${(_a = valueType.typeName) !== null && _a !== void 0 ? _a : valueType.type}>`;
702
+ if (usage && usage.includes(SchemaContext.Output)) {
703
+ schema.outputTypeName = `Record<string, ${(_b = valueType.outputTypeName) !== null && _b !== void 0 ? _b : valueType.type}>`;
704
+ }
705
+ }
706
+ else {
707
+ schema.typeName = `Record<string, ${getTypeName(valueType, [
708
+ SchemaContext.Input
709
+ ])}>`;
710
+ schema.outputTypeName = `Record<string, ${getTypeName(valueType, [
711
+ SchemaContext.Output
712
+ ])}>`;
713
+ }
714
+ schema.usage = usage;
715
+ return schema;
710
716
  }
711
717
  }
712
718
  function isUnionType(type) {
@@ -1 +1 @@
1
- {"version":3,"file":"modelUtils.js","sourceRoot":"","sources":["../../../src/utils/modelUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"modelUtils.js","sourceRoot":"","sources":["../../../src/utils/modelUtils.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAIL,gBAAgB,EAChB,MAAM,EACN,qBAAqB,EACrB,SAAS,EACT,eAAe,EACf,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,WAAW,EACX,UAAU,EACV,WAAW,EACX,eAAe,EACf,UAAU,EACV,aAAa,EACb,WAAW,EACX,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,qBAAqB,EACrB,aAAa,EAKb,UAAU,EAGV,gBAAgB,EAGhB,QAAQ,EAGR,YAAY,EAEZ,SAAS,EAET,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAEL,QAAQ,EACR,aAAa,EAGb,aAAa,EACd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EAEb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EACL,oBAAoB,EACpB,YAAY,EACb,MAAM,6CAA6C,CAAC;AAGrD,MAAM,UAAU,aAAa,CAAC,KAAsB;IAClD,OAAO,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;QACzC,CAAC,CAAC,YAAY;QACd,CAAC,CAAC,0EAA0E,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,UAAsB,EAAE,IAAU;IAClE,MAAM,MAAM,GAAG,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAClD,OAAO,UAAU,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,UAAU,CAAC,MAAW;IAC7B,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC;AAC9D,CAAC;AAED,SAAS,WAAW,CAAC,MAAW;IAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;QAC/B,OAAO,KAAK,CAAC;KACd;IACD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE;QAC7B,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE;YACnB,OAAO,IAAI,CAAC;SACb;KACF;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,MAAW;IACjC,MAAM,CAAC,QAAQ,GAAG,aAAa,CAAC;QAC9B,aAAa,CAAC,KAAK;QACnB,aAAa,CAAC,SAAS;KACxB,CAAC,CAAC;IACH,MAAM,CAAC,cAAc,GAAG,aAAa,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9D,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAAW;IAChD,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE;QACtB,cAAc,CAAC,MAAM,CAAC,CAAC;KACxB;SAAM,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE;QAC9B,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE;YAC9B,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE;gBACpB,cAAc,CAAC,IAAI,CAAC,CAAC;aACtB;YACD,6EAA6E;YAC7E,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,KAAK,QAAQ,EAAE;gBACzD,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aAC1D;SACF;QACD,wBAAwB;QACxB,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACzC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,UAAsB,EACtB,SAAe,EACf,KAAuB,EACvB,UAAmB,KAAK,EACxB,gBAAgC;IAEhC,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;IACnC,MAAM,IAAI,GAAG,yBAAyB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAE3D,MAAM,WAAW,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC9C,IAAI,WAAW,KAAK,SAAS,EAAE;QAC7B,0FAA0F;QAC1F,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAClC,IAAI,GAAG,EAAE;YACP,WAAW,CAAC,WAAW,GAAG,GAAG,CAAC;SAC/B;QACD,OAAO,WAAW,CAAC;KACpB;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;QACzB,MAAM,MAAM,GAAG,iBAAiB,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAQ,CAAC;QAC1E,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;YACzE,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE;gBACjD,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,EAAE,EAAE;oBACtC,wBAAwB;oBACxB,MAAM,CAAC,cAAc;wBACnB,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,KAAK,CAAC;oBAC3D,MAAM,CAAC,QAAQ;wBACb,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,SAAS,CAAC;oBACnE,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC;iBACzB;qBAAM;oBACL,MAAM,CAAC,cAAc,GAAG,GAAG,MAAM,CAAC,IAAI,QAAQ,CAAC;oBAC/C,MAAM,CAAC,QAAQ,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;iBACpC;aACF;SACF;QACD,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,OAAO,MAAM,CAAC;KACf;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;QAChC,OAAO,iBAAiB,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;KACnD;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,EAAE;QACvC,OAAO,wBAAwB,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;KAC1D;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;QAC/B,OAAO,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;KACxC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;QACjC,OAAO,kBAAkB,CAAC,UAAU,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;KAC/D;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE;QACrC,OAAO,sBAAsB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;KAC9C;IACD,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE;QACvB,MAAM,UAAU,GAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC5C,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE;YACjD,UAAU,CAAC,cAAc,GAAG,KAAK,CAAC;YAClC,UAAU,CAAC,QAAQ,GAAG,SAAS,CAAC;SACjC;QACD,OAAO,UAAU,CAAC;KACnB;IACD,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE;QACrB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;KAC1B;IACD,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE;QACpB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;KACzB;IACD,gBAAgB,CAAC,OAAO,EAAE;QACxB,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;QAC3B,MAAM,EAAE,IAAI;KACb,CAAC,CAAC;IACH,OAAO,SAAS,CAAC;AACnB,CAAC;AACD,MAAM,UAAU,yBAAyB,CAAC,OAAgB,EAAE,IAAU;IACpE,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;QACzB,MAAM,SAAS,GAAG,qBAAqB,CAAC,OAAO,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;QACzE,IAAI,SAAS,CAAC,IAAI,EAAE;YAClB,OAAO,SAAS,CAAC;SAClB;KACF;IACD,SAAS,gBAAgB,CAAC,QAAuB;QAC/C,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACzD,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACrD,MAAM,cAAc,GAAG,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACvD,OAAO,CAAC,CAAC,UAAU,IAAI,SAAS,IAAI,QAAQ,IAAI,cAAc,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AACD,MAAM,UAAU,mBAAmB,CAAC,KAAY;;IAC9C,OAAO,CACL,CAAC,qBAAqB,CAAC,KAAK,CAAC;QAC7B,CAAC,CAAC,KAAK,CAAC,cAAc;YACpB,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI;YAC1B,CAAA,MAAA,KAAK,CAAC,cAAc,CAAC,IAAI,0CAAE,MAAM,MAAK,CAAC;YACvC,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAClC,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CACzB,UAAsB,EACtB,MAAc,EACd,gBAAgC;IAEhC,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;IACnC,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC9C,IAAI,MAAM,GAAQ,UAAU;QAC1B,CAAC,CAAC,kBAAkB,CAAC,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC;QACjD,CAAC,CAAC,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC7D,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,EAAE;QAChC,MAAM,GAAG,kBAAkB,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;KAC5D;IACD,OAAO,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,iBAAiB,CACxB,UAAsB,EACtB,KAAY,EACZ,KAAuB;;IAEvB,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,EAAE,CAAC;IAElB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;QAC9B,wCAAwC;QACxC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;KAChE;IAED,MAAM,MAAM,GAAQ,EAAE,CAAC;IACvB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;QACrB,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC;QACrB,MAAM,UAAU,GAAG,MAAM;aACtB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,WAAC,OAAA,GAAG,MAAA,WAAW,CAAC,IAAI,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,mCAAI,IAAI,EAAE,CAAA,EAAA,CAAC;aACpE,IAAI,CAAC,KAAK,CAAC,CAAC;QACf,MAAM,gBAAgB,GAAG,MAAM;aAC5B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,WAAC,OAAA,GAAG,MAAA,WAAW,CAAC,IAAI,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,mCAAI,IAAI,EAAE,CAAA,EAAA,CAAC;aACrE,IAAI,CAAC,KAAK,CAAC,CAAC;QACf,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;YACrB,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YACzB,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;YACvB,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC;YAC7B,MAAM,CAAC,cAAc,GAAG,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC;YAC9C,MAAM,CAAC,KAAK,GAAG,UAAU,CAAC;YAC1B,MAAM,CAAC,WAAW,GAAG,gBAAgB,CAAC;SACvC;aAAM,IAAI,KAAK,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YAC1C,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC;YACtB,MAAM,CAAC,QAAQ,GAAG,UAAU,CAAC;YAC7B,MAAM,CAAC,cAAc,GAAG,gBAAgB,CAAC;SAC1C;aAAM;YACL,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC;YACtB,MAAM,CAAC,QAAQ,GAAG,MAAA,KAAK,CAAC,IAAI,mCAAI,UAAU,CAAC;SAC5C;KACF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,wBAAwB,CAC/B,UAAsB,EACtB,OAAqB,EACrB,KAAuB;IAEvB,OAAO,gBAAgB,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AACtD,CAAC;AAED,2EAA2E;AAC3E,SAAS,WAAW,CAAC,IAAU;IAC7B,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;QAC1B,mBAAmB;QACnB,OAAO,IAAI,CAAC;KACb;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;QAC1D,cAAc;QACd,OAAO,IAAI,CAAC;KACb;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;QAChC,8CAA8C;QAC9C,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;KAClD;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,eAAe,CAAC,IAAU;;IACjC,OAAO,CACL,IAAI,CAAC,IAAI,KAAK,QAAQ;QACtB,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QACzE,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY;YACzB,OAAO,CAAC,MAAA,IAAI,CAAC,KAAK,mCAAI,IAAI,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,CACjD,CAAC;AACJ,CAAC;AAED,4CAA4C;AAC5C,SAAS,eAAe,CAAC,IAAU;;IACjC,QAAQ,IAAI,CAAC,IAAI,EAAE;QACjB,KAAK,QAAQ;YACX,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,KAAK,OAAO;YACV,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;iBAC/B,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;iBACvC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;QACpC,KAAK,YAAY;YACf,OAAO,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAA,IAAI,CAAC,KAAK,mCAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE;YACE,OAAO,EAAE,CAAC;KACb;AACH,CAAC;AACD,SAAS,qBAAqB,CAC5B,OAAgB,EAChB,aAA4B,EAC5B,aAA+B;;IAE/B,MAAM,EAAE,YAAY,EAAE,GAAG,aAAa,CAAC;IACvC,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACtC,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,EAAE;YACT,gBAAgB,CAAC,OAAO,EAAE;gBACxB,IAAI,EAAE,eAAe;gBACrB,SAAS,EAAE,SAAS;gBACpB,MAAM,EAAE,CAAC;aACV,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;SACd;QACD,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,IACE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY;YAC/B,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,EACzB;YACA,gBAAgB,CAAC,OAAO,EAAE;gBACxB,IAAI,EAAE,eAAe;gBACrB,SAAS,EAAE,MAAM;gBACjB,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;YACH,MAAM,GAAG,KAAK,CAAC;SAChB;QACD,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,gBAAgB,CAAC,OAAO,EAAE;gBACxB,IAAI,EAAE,eAAe;gBACrB,SAAS,EAAE,UAAU;gBACrB,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;YACH,MAAM,GAAG,KAAK,CAAC;SAChB;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;IACH,kEAAkE;IAClE,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtD,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE;QAC7B,6DAA6D;QAC7D,MAAM,IAAI,GAAG,MAAA,CAAC,CAAC,UAAU,0CAAE,GAAG,CAAC,YAAY,CAAC,CAAC;QAC7C,wFAAwF;QACxF,IAAI,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACxC,gBAAgB,CAAC,OAAO,EAAE;gBACxB,IAAI,EAAE,qBAAqB;gBAC3B,SAAS,EAAE,SAAS;gBACpB,MAAM,EAAE,IAAI,IAAI,CAAC;aAClB,CAAC,CAAC;SACJ;QACD,IAAI,IAAI,EAAE;YACR,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACnB,IAAI,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;oBAChC,gBAAgB,CAAC,OAAO,EAAE;wBACxB,IAAI,EAAE,eAAe;wBACrB,SAAS,EAAE,WAAW;wBACtB,MAAM,EAAE;4BACN,GAAG,EAAE,GAAG;4BACR,MAAM,EAAE,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAE;4BACrC,MAAM,EAAE,CAAC,CAAC,IAAI;yBACf;wBACD,MAAM,EAAE,IAAI;qBACb,CAAC,CAAC;oBACH,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBACrB;qBAAM;oBACL,mBAAmB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;iBACtC;YACH,CAAC,CAAC,CAAC;SACJ;KACF;IACD,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AACjC,CAAC;AACD;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,OAAgB,EAAE,QAAuB;IACjE,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACzD,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACrD,MAAM,cAAc,GAAG,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACvD,OAAO,CAAC,CAAC,UAAU,IAAI,SAAS,IAAI,QAAQ,IAAI,cAAc,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,iBAAiB,CACxB,UAAsB,EACtB,KAAY,EACZ,KAAuB,EACvB,OAAiB;;IAEjB,IAAI,gBAAgB,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;QAC/C,OAAO,sBAAsB,CAAC,UAAU,EAAE,KAAK,EAAE,KAAM,CAAC,CAAC;KAC1D;IAED,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;IACnC,MAAM,kBAAkB,GACtB,MAAA,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,mCAAI,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC9E,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IACtB,IACE,CAAC,kBAAkB;QACnB,KAAK,CAAC,cAAc;QACpB,KAAK,CAAC,cAAc,CAAC,IAAI;QACzB,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;QACpC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,EAC9B;QACA,IAAI;YACF,KAAK,CAAC,cAAc,CAAC,IAAI;iBACtB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;gBACV,QAAQ,EAAE,CAAC,IAAI,EAAE;oBACf,KAAK,OAAO;wBACV,OAAO,EAAE,CAAC,IAAI,CAAC;oBACjB,KAAK,QAAQ;wBACX,OAAO,EAAE,CAAC,KAAK,CAAC;oBAClB;wBACE,OAAO,EAAE,CAAC;iBACb;YACH,CAAC,CAAC;iBACD,IAAI,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;KACxB;IAED,MAAM,WAAW,GAAiB;QAChC,IAAI,EAAE,kBAAkB,aAAlB,kBAAkB,cAAlB,kBAAkB,GAAI,IAAI;QAChC,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,MAAA,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,mCAAI,EAAE;KAC1C,CAAC;IACF,6BAA6B;IAC7B,WAAW,CAAC,IAAI,GAAG,aAAa,CAC9B,WAAW,CAAC,IAAI,EAChB,QAAQ,CAAC,SAAS,EAClB,IAAI,CAAC,kBAAkB,CACxB,CAAC;IAEF,IAAI,WAAW,CAAC,IAAI,KAAK,QAAQ,IAAI,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;QACtE,OAAO,uBAAuB,CAAC,UAAU,EAAE,KAAK,EAAE,KAAM,CAAC,CAAC;KAC3D;IACD,WAAW,CAAC,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC;IACxC,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE;QACjD,WAAW,CAAC,cAAc,GAAG,WAAW,CAAC,IAAI,GAAG,QAAQ,CAAC;KAC1D;IAED,IAAI,oBAAoB,CAAC,KAAK,CAAC,EAAE;QAC/B,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC;KAC7B;IAED,IAAI,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;QAClC,MAAM,KAAK,GAAG,0BAA0B,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACzD,IAAI,KAAK,IAAI,KAAK,CAAC,aAAa,EAAE;YAChC,MAAM,KAAK,GAAG,KAAK,CAAC,aAAiC,CAAC;YACtD,IAAI,KAAK,IAAI,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE;gBAC9D,MAAM,YAAY,GAAG,MAAA,KAAK,CAAC,cAAc,CAAC,IAAI,0CAC1C,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;oBACX,QAAQ,EAAE,CAAC,IAAI,EAAE;wBACf,KAAK,OAAO;4BACV,OAAO,EAAE,CAAC,IAAI,CAAC;wBACjB,KAAK,QAAQ;4BACX,OAAO,EAAE,CAAC,KAAK,CAAC;wBAClB;4BACE,OAAO,EAAE,CAAC;qBACb;gBACH,CAAC,EACA,IAAI,CAAC,EAAE,CAAC,CAAC;gBACZ,IACE,KAAK,CAAC,aAAa,CAAC,IAAI,KAAK,OAAO;oBACpC,CAAA,MAAA,KAAK,CAAC,gBAAgB,0CAAE,IAAI,MAAK,UAAU,EAC3C;oBACA,WAAW,CAAC,KAAK,GAAG,SAAS,YAAY,GAAG,CAAC;oBAC7C,WAAW,CAAC,WAAW,GAAG,SAAS,YAAY,SAAS,CAAC;iBAC1D;aACF;SACF;KACF;IACD,WAAW,CAAC,UAAU,GAAG,EAAE,CAAC;IAE5B,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAEtE,sEAAsE;IACtE,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACvD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;QAC5B,WAAW,CAAC,QAAQ,GAAG;YACrB,GAAG,EAAE,EAAE;YACP,SAAS,EAAE,EAAE;SACd,CAAC;KACH;IACD,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE;QACjC,MAAM,WAAW,GAAG,gBAAgB,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACrE,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,UAAU,EAAE;YAC3C,IAAI,IAAI,MAAK,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,YAAY,CAAA,EAAE;gBACxC,MAAM,UAAU,GAAG,gBAAgB,CACjC,UAAU,EACV,IAAI,CAAC,IAAI,EACT,KAAK,EACL,IAAI,EACJ,IAAI,CACL,CAAC;gBACF,WAAW,CAAC,kBAAkB,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACnE,MAAM;aACP;SACF;QACD,MAAA,MAAA,WAAW,CAAC,QAAQ,0CAAE,GAAG,0CAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC7C,MAAA,MAAA,WAAW,CAAC,QAAQ,0CAAE,SAAS,0CAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACpD;IAED,iFAAiF;IACjF,IACE,aAAa;SACb,MAAA,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,QAAQ,0CAAE,GAAG,0CAAE,MAAM,CAAA;QAClC,CAAA,MAAA,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,QAAQ,0CAAE,GAAG,0CAAE,MAAM,IAAG,CAAC,EACtC;QACA,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,aAAa,EAAE,aAAa,CAAC,EAAE;YACjE,+DAA+D;YAC/D,OAAO,EAAE,CAAC;SACX;QAED,MAAM,EAAE,YAAY,EAAE,GAAG,aAAa,CAAC;QAEvC,WAAW,CAAC,aAAa,GAAG;YAC1B,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,8BAA8B,KAAK,CAAC,IAAI,GAAG;SACzD,CAAC;QAEF,WAAW,CAAC,YAAY,GAAG,IAAI,CAAC;KACjC;IAED,yCAAyC;IACzC,IAAI,OAAO,EAAE;QACX,OAAO,WAAW,CAAC;KACpB;IACD,IAAI,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;QACrC,WAAW,CAAC,OAAO,GAAG;YACpB,GAAG,EAAE,CAAC,uBAAuB,CAAC,UAAU,EAAE,KAAK,EAAE,KAAM,CAAC,CAAC;YACzD,SAAS,EAAE,CAAC,uBAAuB,CAAC,UAAU,EAAE,KAAK,EAAE,KAAM,CAAC,CAAC;SAChE,CAAC;KACH;IACD,KAAK,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,UAAU,EAAE;QAC/C,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC5D,MAAM,IAAI,GAAG,IAAI,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,QAAQ,GAAG,CAAC;QAC5C,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;YACpC,SAAS;SACV;QAED,MAAM,UAAU,GAAG,gBAAgB,CACjC,UAAU,EACV,IAAI,CAAC,IAAI,EACT,KAAK,EACL,IAAI,EACJ,IAAI,CACL,CAAC;QACF,IAAI,UAAU,KAAK,SAAS,EAAE;YAC5B,SAAS;SACV;QACD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC;SAC5B;QACD,MAAM,mBAAmB,GAAG,uBAAuB,CACjD,OAAO,EACP,IAAI,EACJ,UAAU,CACX,CAAC;QACF,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC;QACzB,qEAAqE;QACrE,UAAU,CAAC,WAAW,GAAG,mBAAmB,CAAC;QAC7C,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;QAC1C,4FAA4F;QAC5F,IAAI,KAAK,CAAC,SAAS,EAAE;YACnB,MAAM,EAAE,YAAY,EAAE,GAAG,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YAC1E,IAAI,YAAY,IAAI,IAAI,KAAK,IAAI,YAAY,GAAG,EAAE;gBAChD,SAAS;aACV;SACF;QAED,wDAAwD;QACxD,MAAM,aAAa,GAAG,wBAAwB,CAC5C,OAAO,EAEP,IAAI,EACJ,UAAU,CACX,CAAC;QACF,IAAI,aAAa,KAAK,SAAS,EAAE;YAC/B,SAAS;SACV;QACD,qEAAqE;QACrE,aAAa,CAAC,WAAW,GAAG,mBAAmB,CAAC;QAEhD,6CAA6C;QAC7C,MAAM,GAAG,GAAG,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACzC,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YAC/B,MAAM,UAAU,GAAG,EAAE,CAAC;YACtB,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;gBACxB,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;oBAClB,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;iBACvC;qBAAM;oBACL,aAAa,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;iBAClC;aACF;YACD,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;gBACnD,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;aACtC;YAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzB,aAAa,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC;aACrC;SACF;QACD,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC;KAC9C;IAED,IAAI,KAAK,CAAC,SAAS,EAAE;QACnB,WAAW,CAAC,OAAO,GAAG;YACpB,GAAG,EAAE,CAAC,gBAAgB,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YACjE,SAAS,EAAE,CAAC,gBAAgB,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;SACxE,CAAC;KACH;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AACD,6EAA6E;AAC7E,6CAA6C;AAC7C,SAAS,mBAAmB,CAAC,IAAU;IACrC,QAAQ,IAAI,CAAC,IAAI,EAAE;QACjB,KAAK,QAAQ;YACX,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;QACrD,KAAK,QAAQ;YACX,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;QACvD,KAAK,SAAS;YACZ,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;KACtD;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;QAC3B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAC5B,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC;SAC9B;aAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,SAAS,EAAE;YAChE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC;SAC5B;KACF;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AACD,SAAS,wBAAwB,CAC/B,OAAgB,EAChB,IAA4B,EAC5B,MAAW;IAEX,MAAM,SAAS,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;IAChC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;IAEhE,IAAI,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,MAAM,EAAE;QAC/C,SAAS,CAAC,WAAW,GAAG,MAAM,CAAC;KAChC;IAED,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC5D,IAAI,WAAW,EAAE;QACf,SAAS,CAAC,IAAI,GAAG,WAAW,CAAC;KAC9B;IAED,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC7C,IAAI,QAAQ,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,UAAU,EAAE;QAC7C,SAAS,CAAC,OAAO,GAAG,UAAU,CAAC;KAChC;IAED,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC3C,IAAI,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,SAAS,EAAE;QAC3C,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC;KAC9B;IAED,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC1C,IAAI,QAAQ,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,EAAE;QAC1C,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC;KAC7B;IAED,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC9C,IAAI,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,SAAS,KAAK,SAAS,EAAE;QAC5D,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC;KACjC;IAED,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC9C,IAAI,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,SAAS,KAAK,SAAS,EAAE;QAC5D,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC;KACjC;IAED,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC5C,IAAI,SAAS,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,QAAQ,KAAK,SAAS,EAAE;QAC1D,SAAS,CAAC,OAAO,GAAG,QAAQ,CAAC;KAC9B;IAED,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC5C,IAAI,SAAS,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,QAAQ,KAAK,SAAS,EAAE;QAC1D,SAAS,CAAC,OAAO,GAAG,QAAQ,CAAC;KAC9B;IAED,IAAI,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;QAC3B,SAAS,CAAC,MAAM,GAAG,UAAU,CAAC;QAC9B,SAAS,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;KACjC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,sBAAsB,CAAC,OAAgB,EAAE,CAAa;;IAC7D,MAAM,KAAK,GAAG,MAAA,CAAC,CAAC,KAAK,mCAAI,CAAC,CAAC,IAAI,CAAC;IAChC,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC;IACxE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AACrE,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAgB,EAAE,CAAO;;IACjD,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC;IAC7D,KAAK,MAAM,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE;QACvC,IAAI,IAAI,KAAK,cAAc,CAAC,MAAM,CAAC,EAAE;YACnC,gBAAgB,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;YACpE,SAAS;SACV;QAED,MAAM,CAAC,IAAI,CAAC,MAAA,MAAM,CAAC,KAAK,mCAAI,MAAM,CAAC,IAAI,CAAC,CAAC;KAC1C;IAED,MAAM,MAAM,GAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC;IAC9D,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;QACrB,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC;QACrB,MAAM,CAAC,IAAI;YACT,IAAI,KAAK,QAAQ;gBACf,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;gBAC7C,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE;YACxB,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;YACvB,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAC5B;KACF;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,cAAc,CAAC,MAAkB;IACxC,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE;QACpC,OAAO,QAAQ,CAAC;KACjB;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AACD;;GAEG;AACH,SAAS,sBAAsB,CAC7B,UAAsB,EACtB,IAAW,EACX,KAAsB;;IAEtB,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC;IAC/B,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACzB,IAAI,MAAM,GAAQ,EAAE,CAAC;IACrB,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,MAAM,CAAC;KACf;IACD,IAAI,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;QACnC,MAAM,GAAG;YACP,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,gBAAgB,CAAC,UAAU,EAAE,OAAO,CAAC,KAAM,EAAE,KAAK,EAAE,IAAI,CAAC;YAChE,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC;SACnC,CAAC;QACF,IACE,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC;YACzC,CAAC,aAAa,CAAC,OAAO,CAAC,KAAM,CAAC;aAC9B,MAAA,OAAO,CAAC,KAAK,0CAAE,IAAI,CAAA;YACnB,MAAM,CAAC,KAAK,CAAC,IAAI;YACjB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAClB;YACA,MAAM,CAAC,QAAQ,GAAG,SAAS,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC;YAChD,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE;gBACjD,MAAM,CAAC,cAAc,GAAG,SAAS,MAAM,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC;aAC7D;SACF;aAAM;YACL,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE;gBACzB,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE;oBACtC,MAAM,CAAC,QAAQ,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC;iBAChD;qBAAM,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;oBACxC,MAAM,CAAC,QAAQ,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,KAAK,CAAC;iBAClD;qBAAM;oBACL,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ;yBACpC,KAAK,CAAC,GAAG,CAAC;yBACV,GAAG,CAAC,CAAC,QAAgB,EAAE,EAAE;wBACxB,OAAO,GAAG,QAAQ,IAAI,CAAC;oBACzB,CAAC,CAAC;yBACD,IAAI,CAAC,KAAK,CAAC,CAAC;oBACf,IACE,MAAM,CAAC,KAAK,CAAC,cAAc;wBAC3B,KAAK;wBACL,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,EACpC;wBACA,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,cAAc;6BAChD,KAAK,CAAC,GAAG,CAAC;6BACV,GAAG,CAAC,CAAC,QAAgB,EAAE,EAAE;4BACxB,OAAO,GAAG,QAAQ,IAAI,CAAC;wBACzB,CAAC,CAAC;6BACD,IAAI,CAAC,KAAK,CAAC,CAAC;qBAChB;iBACF;aACF;iBAAM,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBAC1C,MAAM,CAAC,QAAQ,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;aAC9C;iBAAM;gBACL,MAAM,CAAC,QAAQ,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;aAC5C;SACF;QACD,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,OAAO,MAAM,CAAC;KACf;AACH,CAAC;AAED,SAAS,uBAAuB,CAC9B,UAAsB,EACtB,IAAW,EACX,KAAsB;;IAEtB,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC;IAC/B,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACzB,IAAI,MAAM,GAAQ,EAAE,CAAC;IACrB,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,MAAM,CAAC;KACf;IACD,IAAI,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;QACpC,MAAM,SAAS,GAAG,gBAAgB,CAAC,UAAU,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC5E,MAAM,GAAG;YACP,IAAI,EAAE,YAAY;YAClB,oBAAoB,EAAE,SAAS;YAC/B,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC;SACnC,CAAC;QACF,IACE,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC;YACzC,CAAC,aAAa,CAAC,OAAO,CAAC,KAAM,CAAC;YAC9B,CAAC,WAAW,CAAC,OAAO,CAAC,KAAM,CAAC,EAC5B;YACA,MAAM,CAAC,QAAQ,GAAG,kBAAkB,SAAS,CAAC,QAAQ,GAAG,CAAC;YAC1D,MAAM,CAAC,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC;YACtC,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE;gBACjD,MAAM,CAAC,cAAc,GAAG,kBAAkB,SAAS,CAAC,cAAc,GAAG,CAAC;gBACtE,MAAM,CAAC,mBAAmB,GAAG,GAAG,SAAS,CAAC,cAAc,EAAE,CAAC;aAC5D;SACF;aAAM,IAAI,aAAa,CAAC,OAAO,CAAC,KAAM,CAAC,EAAE;YACxC,MAAM,CAAC,QAAQ,GAAG,kBAChB,MAAA,SAAS,CAAC,QAAQ,mCAAI,SAAS,CAAC,IAClC,GAAG,CAAC;YACJ,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE;gBACjD,MAAM,CAAC,cAAc,GAAG,kBACtB,MAAA,SAAS,CAAC,cAAc,mCAAI,SAAS,CAAC,IACxC,GAAG,CAAC;aACL;SACF;aAAM;YACL,MAAM,CAAC,QAAQ,GAAG,kBAAkB,WAAW,CAAC,SAAS,EAAE;gBACzD,aAAa,CAAC,KAAK;aACpB,CAAC,GAAG,CAAC;YACN,MAAM,CAAC,cAAc,GAAG,kBAAkB,WAAW,CAAC,SAAS,EAAE;gBAC/D,aAAa,CAAC,MAAM;aACrB,CAAC,GAAG,CAAC;SACP;QACD,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,OAAO,MAAM,CAAC;KACf;AACH,CAAC;AAED,SAAS,WAAW,CAAC,IAAU;IAC7B,OAAO,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC;AAC/B,CAAC;AAED,SAAS,qBAAqB,CAC5B,OAAgB,EAChB,IAAY,EACZ,gBAAgC;IAEhC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;QACpC,OAAO,SAAS,CAAC;KAClB;IAED;;;;OAIG;IACH,IAAI,MAAM,GAAG,SAAS,CAAC;IACvB,IAAI,gBAAgB,EAAE;QACpB,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;QACxD,IAAI,UAAU,IAAI,qBAAqB,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE;YACzD,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;YACvB,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC;SAC9B;KACF;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACvB,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC9C,QAAQ,IAAI,EAAE;QACZ,KAAK,OAAO;YACV,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;QACzD,KAAK,SAAS;YACZ,OAAO,wBAAwB,CAAC,OAAO,EAAE,IAAI,EAAE;gBAC7C,IAAI,EAAE,QAAQ;aACf,CAAC,CAAC;QACL,KAAK,MAAM;YACT,OAAO,wBAAwB,CAAC,OAAO,EAAE,IAAI,EAAE;gBAC7C,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,MAAM;aACf,CAAC,CAAC;QACL,KAAK,OAAO;YACV,OAAO,wBAAwB,CAAC,OAAO,EAAE,IAAI,EAAE;gBAC7C,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,OAAO;aAChB,CAAC,CAAC;QACL,KAAK,OAAO;YACV,OAAO,wBAAwB,CAAC,OAAO,EAAE,IAAI,EAAE;gBAC7C,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,OAAO;aAChB,CAAC,CAAC;QACL,KAAK,OAAO;YACV,OAAO,wBAAwB,CAAC,OAAO,EAAE,IAAI,EAAE;gBAC7C,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,OAAO;aAChB,CAAC,CAAC;QACL,KAAK,SAAS;YACZ,OAAO,wBAAwB,CAAC,OAAO,EAAE,IAAI,EAAE;gBAC7C,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,OAAO;aAChB,CAAC,CAAC;QACL,KAAK,OAAO;YACV,OAAO,wBAAwB,CAAC,OAAO,EAAE,IAAI,EAAE;gBAC7C,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,OAAO;aAChB,CAAC,CAAC;QACL,KAAK,QAAQ;YACX,OAAO,wBAAwB,CAAC,OAAO,EAAE,IAAI,EAAE;gBAC7C,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,QAAQ;aACjB,CAAC,CAAC;QACL,KAAK,QAAQ;YACX,OAAO,wBAAwB,CAAC,OAAO,EAAE,IAAI,EAAE;gBAC7C,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,QAAQ;aACjB,CAAC,CAAC;QACL,KAAK,QAAQ;YACX,OAAO,wBAAwB,CAAC,OAAO,EAAE,IAAI,EAAE;gBAC7C,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,QAAQ;aACjB,CAAC,CAAC;QACL,KAAK,SAAS;YACZ,OAAO,wBAAwB,CAAC,OAAO,EAAE,IAAI,EAAE;gBAC7C,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,QAAQ;aACjB,CAAC,CAAC;QACL,KAAK,SAAS;YACZ,OAAO,wBAAwB,CAAC,OAAO,EAAE,IAAI,EAAE;gBAC7C,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,OAAO;aAChB,CAAC,CAAC;QACL,KAAK,OAAO;YACV,OAAO,wBAAwB,CAAC,OAAO,EAAE,IAAI,EAAE;gBAC7C,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,OAAO;aAChB,CAAC,CAAC;QACL,KAAK,QAAQ;YACX,OAAO,wBAAwB,CAAC,OAAO,EAAE,IAAI,EAAE;gBAC7C,IAAI,EAAE,QAAQ;aACf,CAAC,CAAC;QACL,KAAK,SAAS;YACZ,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;QAC1C,KAAK,WAAW;YACd,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,MAAM;gBACN,WAAW;gBACX,QAAQ,EAAE,eAAe;gBACzB,cAAc,EAAE,QAAQ;aACzB,CAAC;QACJ,KAAK,aAAa;YAChB,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,MAAM;gBACN,WAAW;gBACX,QAAQ,EAAE,eAAe;gBACzB,cAAc,EAAE,QAAQ;aACzB,CAAC;QACJ,KAAK,gBAAgB;YACnB,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,WAAW;gBACnB,WAAW;gBACX,QAAQ,EAAE,QAAQ;gBAClB,cAAc,EAAE,QAAQ;aACzB,CAAC;QACJ,KAAK,WAAW;YACd,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,MAAM;gBACd,WAAW;gBACX,QAAQ,EAAE,eAAe;gBACzB,cAAc,EAAE,QAAQ;aACzB,CAAC;QACJ,KAAK,UAAU;YACb,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;KAClD;AACH,CAAC;AAED,SAAS,qBAAqB,CAC5B,IAAY,EACZ,UAAkC;IAElC,IAAI,CAAC,UAAU,EAAE;QACf,OAAO,KAAK,CAAC;KACd;IACD,MAAM,aAAa,GAAG;QACpB,WAAW;QACX,aAAa;QACb,gBAAgB;QAChB,WAAW;KACZ,CAAC;IACF,IACE,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC/C,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,EACjC;QACA,OAAO,KAAK,CAAC;KACd;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,MAAc,EAAE,KAAuB;;IACjE,0BAA0B;IAC1B,OAAO,MAAA,MAAA,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,mCAAI,MAAM,CAAC,IAAI,mCAAI,KAAK,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAc;IACjD,QAAQ,MAAM,CAAC,IAAI,EAAE;QACnB,KAAK,OAAO;YACV,OAAO,CAAE,MAAc,CAAC,KAAK,CAAC;iBAC3B,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;iBAC1C,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,WAAC,OAAA,MAAA,eAAe,CAAC,CAAC,CAAC,mCAAI,EAAE,CAAA,EAAA,CAAC,CAAC;QAClD,KAAK,QAAQ;YACX,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACzE,KAAK,YAAY,CAAC,CAAC;YACjB,MAAM,UAAU,GAAG,sBAAsB,CAAC,MAA0B,CAAC,CAAC;YACtE,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;SAC9C;QACD,KAAK,OAAO;YACV,OAAQ,MAAc,CAAC,IAAI;iBACxB,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;iBAC1C,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,WAAC,OAAA,MAAA,eAAe,CAAC,CAAC,CAAC,mCAAI,EAAE,CAAA,EAAA,CAAC,CAAC;QAClD;YACE,OAAO;KACV;AACH,CAAC;AAED,SAAS,eAAe,CAAC,MAAc,EAAE,KAAuB;;IAC9D,OAAO,KAAK;QACV,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;QACnC,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;QACrC,CAAC,CAAC,MAAA,MAAM,CAAC,QAAQ,mCAAI,MAAM,CAAC,IAAI;QAChC,CAAC,CAAC,MAAA,MAAA,MAAM,CAAC,cAAc,mCAAI,MAAM,CAAC,QAAQ,mCAAI,MAAM,CAAC,IAAI,CAAC;AAC9D,CAAC;AACD,SAAS,sBAAsB,CAAC,MAAwB;;IACtD,OAAO,MAAA,MAAA,MAAM,CAAC,mBAAmB,mCAAI,MAAM,CAAC,aAAa,mCAAI,SAAS,CAAC;AACzE,CAAC;AACD,SAAS,wBAAwB,CAAC,IAAS;IACzC,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;QAC/D,OAAO,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;KACnD;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,OAAgB,EAChB,IAA0B,EAC1B,UAAe,EACf,WAAmB,MAAM;IAEzB,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC1C,MAAM,mBAAmB,GAAG,wBAAwB,CAAC,UAAU,CAAC,CAAC;IACjE,IAAI,WAAW,IAAI,mBAAmB,EAAE;QACtC,OAAO,GAAG,WAAW,GAAG,QAAQ,GAAG,mBAAmB,EAAE,CAAC;KAC1D;IACD,OAAO,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,mBAAmB,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,OAAgB,EAChB,KAAoB;;IAEpB,IAAI,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC;IAC1C,IAAI,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,SAAS,EAAE;QAC9D,MAAM,YAAY,GAAG,MAAA,oBAAoB,CACvC,OAAO,EACP,KAAK,CAAC,SAAS,CAChB,0CAAE,YAAY,CAAC;QAChB,IAAI,YAAY,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YACjE,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvD,MAAM,YAAY,GAAG,MAAA,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,0CAAE,IAAI,CAAC;gBAC7C,IAAI,YAAY,EAAE;oBAChB,MAAM,kBAAkB,GAAG,yBAAyB,CAClD,OAAO,EAEP,YAAY,CAAC,IAAI,CAClB,CAAC;oBACF,mGAAmG;oBACnG,IACE,kBAAkB,KAAK,YAAY;wBACnC,SAAS,CAAC,cAAc;wBACxB,SAAS,CAAC,cAAc,CAAC,IAAI;wBAC7B,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;4BACxC,OAAO,EAAE,CAAC,IAAI,KAAK,OAAO,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO;gCAC/C,CAAC,CAAC,EAAE,KAAK,kBAAkB;gCAC3B,CAAC,CAAC,KAAK,CAAC;wBACZ,CAAC,CAAC,EACF;wBACA,SAAS,GAAG,YAAY,CAAC;qBAC1B;iBACF;aACF;SACF;QACD,IAAI,YAAY,IAAI,SAAS,CAAC,IAAI,KAAK,EAAE,EAAE;YACzC,SAAS,GAAG,YAAY,CAAC;SAC1B;KACF;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CACjC,UAAsB,EACtB,KAAqB;;IAErB,IAAI,CAAC,KAAK,EAAE;QACV,OAAO;KACR;IACD,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;IACnC,MAAM,eAAe,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,CAAC;IACvC,IAAI,cAAc,CAAC,eAAe,CAAC,EAAE;QACnC,OAAO,eAAe,CAAC,KAAK,CAAC;KAC9B;IACD,MAAM,gBAAgB,GAAG,MAAA,iBAAiB,CAAC,OAAO,CAAC,0CAAE,IAAI,CAAC;IAC1D,IAAI,CAAC,gBAAgB,EAAE;QACrB,OAAO;KACR;IACD,MAAM,iBAAiB,GAAG,4BAA4B,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC5E,IAAI,KAAK,IAAI,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,iBAAiB,EAAE;QACjE,OAAO,iBAAiB,CAAC;KAC1B;IACD,OAAO;AACT,CAAC;AAED,SAAS,cAAc,CACrB,IAAW;IAEX,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,KAAK,CAAC;KACd;IAED,IACE,IAAI,CAAC,IAAI,KAAK,SAAS;QACvB,IAAI,CAAC,IAAI,KAAK,QAAQ;QACtB,IAAI,CAAC,IAAI,KAAK,QAAQ,EACtB;QACA,OAAO,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC;KACjC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAgB;IAChD,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACvC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;QACtC,gBAAgB,CAAC,OAAO,EAAE;YACxB,IAAI,EAAE,oBAAoB;YAC1B,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAC;KACJ;IACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;QACvB,gBAAgB,CAAC,OAAO,EAAE;YACxB,IAAI,EAAE,uBAAuB;YAC7B,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAC;KACJ;IACD,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;AACrB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,4BAA4B,CAC1C,OAAgB,EAChB,UAAsB;IAEtB,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACpD,IAAI,CAAC,gBAAgB,EAAE;QACrB,OAAO;KACR;IAED,MAAM,cAAc,GAAG,oBAAoB,CACzC,UAAU,EACV,gBAAiB,CAAC,IAAI,CACvB,CAAC;IACF,IAAI,cAAc,EAAE;QAClB,OAAO,cAAc,CAAC,KAAK,CAAC;KAC7B;IACD,OAAO,gBAAgB,CAAC,OAAO,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAU;IAClC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,OAAO,KAAK,CAAC;KACd;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAC1C,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QACzD,OAAO,IAAI,KAAK,OAAO,CAAC;IAC1B,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACrD,GAAW,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7C,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,CAAQ;;IAC3C,IACE,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,IAAI,MAAK,OAAO;QACnB,CAAC,CAAC,OAAO,EAAE,eAAe,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAExE,OAAO,KAAK,CAAC;IACf,MAAM,UAAU,GAAG,yBAAyB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxD,OACE,UAAU,CAAC,MAAM,GAAG,CAAC;QACrB,CAAC,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,IAAI,MAAK,OAAO,IAAI,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,IAAI,MAAK,WAAW,CAAC;QAChD,CAAA,MAAA,CAAC,CAAC,SAAS,0CAAE,IAAI,MAAK,UAAU,CAAC,GAAG,EAAE,EACtC;QACA,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC;KACjB;IACD,OAAO,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC;AAChC,CAAC"}