@ttsc/factory 0.15.7 → 0.15.8

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 (181) hide show
  1. package/lib/TsPrinter.js +6 -5
  2. package/lib/TsPrinter.js.map +1 -1
  3. package/lib/TsPrinter.mjs +6 -5
  4. package/lib/TsPrinter.mjs.map +1 -1
  5. package/lib/factory/declarations/createModuleDeclaration.js +2 -1
  6. package/lib/factory/declarations/createModuleDeclaration.js.map +1 -1
  7. package/lib/factory/declarations/createModuleDeclaration.mjs +2 -1
  8. package/lib/factory/declarations/createModuleDeclaration.mjs.map +1 -1
  9. package/lib/factory/expressions/createAdd.js +2 -1
  10. package/lib/factory/expressions/createAdd.js.map +1 -1
  11. package/lib/factory/expressions/createAdd.mjs +2 -1
  12. package/lib/factory/expressions/createAdd.mjs.map +1 -1
  13. package/lib/factory/expressions/createAssignment.js +2 -1
  14. package/lib/factory/expressions/createAssignment.js.map +1 -1
  15. package/lib/factory/expressions/createAssignment.mjs +2 -1
  16. package/lib/factory/expressions/createAssignment.mjs.map +1 -1
  17. package/lib/factory/expressions/createBitwiseAnd.js +2 -1
  18. package/lib/factory/expressions/createBitwiseAnd.js.map +1 -1
  19. package/lib/factory/expressions/createBitwiseAnd.mjs +2 -1
  20. package/lib/factory/expressions/createBitwiseAnd.mjs.map +1 -1
  21. package/lib/factory/expressions/createBitwiseNot.js +2 -1
  22. package/lib/factory/expressions/createBitwiseNot.js.map +1 -1
  23. package/lib/factory/expressions/createBitwiseNot.mjs +2 -1
  24. package/lib/factory/expressions/createBitwiseNot.mjs.map +1 -1
  25. package/lib/factory/expressions/createBitwiseOr.js +2 -1
  26. package/lib/factory/expressions/createBitwiseOr.js.map +1 -1
  27. package/lib/factory/expressions/createBitwiseOr.mjs +2 -1
  28. package/lib/factory/expressions/createBitwiseOr.mjs.map +1 -1
  29. package/lib/factory/expressions/createBitwiseXor.js +2 -1
  30. package/lib/factory/expressions/createBitwiseXor.js.map +1 -1
  31. package/lib/factory/expressions/createBitwiseXor.mjs +2 -1
  32. package/lib/factory/expressions/createBitwiseXor.mjs.map +1 -1
  33. package/lib/factory/expressions/createComma.js +2 -1
  34. package/lib/factory/expressions/createComma.js.map +1 -1
  35. package/lib/factory/expressions/createComma.mjs +2 -1
  36. package/lib/factory/expressions/createComma.mjs.map +1 -1
  37. package/lib/factory/expressions/createDivide.js +2 -1
  38. package/lib/factory/expressions/createDivide.js.map +1 -1
  39. package/lib/factory/expressions/createDivide.mjs +2 -1
  40. package/lib/factory/expressions/createDivide.mjs.map +1 -1
  41. package/lib/factory/expressions/createEquality.js +2 -1
  42. package/lib/factory/expressions/createEquality.js.map +1 -1
  43. package/lib/factory/expressions/createEquality.mjs +2 -1
  44. package/lib/factory/expressions/createEquality.mjs.map +1 -1
  45. package/lib/factory/expressions/createExponent.js +2 -1
  46. package/lib/factory/expressions/createExponent.js.map +1 -1
  47. package/lib/factory/expressions/createExponent.mjs +2 -1
  48. package/lib/factory/expressions/createExponent.mjs.map +1 -1
  49. package/lib/factory/expressions/createGreaterThan.js +2 -1
  50. package/lib/factory/expressions/createGreaterThan.js.map +1 -1
  51. package/lib/factory/expressions/createGreaterThan.mjs +2 -1
  52. package/lib/factory/expressions/createGreaterThan.mjs.map +1 -1
  53. package/lib/factory/expressions/createGreaterThanEquals.js +2 -1
  54. package/lib/factory/expressions/createGreaterThanEquals.js.map +1 -1
  55. package/lib/factory/expressions/createGreaterThanEquals.mjs +2 -1
  56. package/lib/factory/expressions/createGreaterThanEquals.mjs.map +1 -1
  57. package/lib/factory/expressions/createInequality.js +2 -1
  58. package/lib/factory/expressions/createInequality.js.map +1 -1
  59. package/lib/factory/expressions/createInequality.mjs +2 -1
  60. package/lib/factory/expressions/createInequality.mjs.map +1 -1
  61. package/lib/factory/expressions/createLeftShift.js +2 -1
  62. package/lib/factory/expressions/createLeftShift.js.map +1 -1
  63. package/lib/factory/expressions/createLeftShift.mjs +2 -1
  64. package/lib/factory/expressions/createLeftShift.mjs.map +1 -1
  65. package/lib/factory/expressions/createLessThan.js +2 -1
  66. package/lib/factory/expressions/createLessThan.js.map +1 -1
  67. package/lib/factory/expressions/createLessThan.mjs +2 -1
  68. package/lib/factory/expressions/createLessThan.mjs.map +1 -1
  69. package/lib/factory/expressions/createLessThanEquals.js +2 -1
  70. package/lib/factory/expressions/createLessThanEquals.js.map +1 -1
  71. package/lib/factory/expressions/createLessThanEquals.mjs +2 -1
  72. package/lib/factory/expressions/createLessThanEquals.mjs.map +1 -1
  73. package/lib/factory/expressions/createLogicalAnd.js +2 -1
  74. package/lib/factory/expressions/createLogicalAnd.js.map +1 -1
  75. package/lib/factory/expressions/createLogicalAnd.mjs +2 -1
  76. package/lib/factory/expressions/createLogicalAnd.mjs.map +1 -1
  77. package/lib/factory/expressions/createLogicalNot.js +2 -1
  78. package/lib/factory/expressions/createLogicalNot.js.map +1 -1
  79. package/lib/factory/expressions/createLogicalNot.mjs +2 -1
  80. package/lib/factory/expressions/createLogicalNot.mjs.map +1 -1
  81. package/lib/factory/expressions/createLogicalOr.js +2 -1
  82. package/lib/factory/expressions/createLogicalOr.js.map +1 -1
  83. package/lib/factory/expressions/createLogicalOr.mjs +2 -1
  84. package/lib/factory/expressions/createLogicalOr.mjs.map +1 -1
  85. package/lib/factory/expressions/createModulo.js +2 -1
  86. package/lib/factory/expressions/createModulo.js.map +1 -1
  87. package/lib/factory/expressions/createModulo.mjs +2 -1
  88. package/lib/factory/expressions/createModulo.mjs.map +1 -1
  89. package/lib/factory/expressions/createMultiply.js +2 -1
  90. package/lib/factory/expressions/createMultiply.js.map +1 -1
  91. package/lib/factory/expressions/createMultiply.mjs +2 -1
  92. package/lib/factory/expressions/createMultiply.mjs.map +1 -1
  93. package/lib/factory/expressions/createPostfixDecrement.js +2 -1
  94. package/lib/factory/expressions/createPostfixDecrement.js.map +1 -1
  95. package/lib/factory/expressions/createPostfixDecrement.mjs +2 -1
  96. package/lib/factory/expressions/createPostfixDecrement.mjs.map +1 -1
  97. package/lib/factory/expressions/createPostfixIncrement.js +2 -1
  98. package/lib/factory/expressions/createPostfixIncrement.js.map +1 -1
  99. package/lib/factory/expressions/createPostfixIncrement.mjs +2 -1
  100. package/lib/factory/expressions/createPostfixIncrement.mjs.map +1 -1
  101. package/lib/factory/expressions/createPrefixDecrement.js +2 -1
  102. package/lib/factory/expressions/createPrefixDecrement.js.map +1 -1
  103. package/lib/factory/expressions/createPrefixDecrement.mjs +2 -1
  104. package/lib/factory/expressions/createPrefixDecrement.mjs.map +1 -1
  105. package/lib/factory/expressions/createPrefixIncrement.js +2 -1
  106. package/lib/factory/expressions/createPrefixIncrement.js.map +1 -1
  107. package/lib/factory/expressions/createPrefixIncrement.mjs +2 -1
  108. package/lib/factory/expressions/createPrefixIncrement.mjs.map +1 -1
  109. package/lib/factory/expressions/createPrefixMinus.js +2 -1
  110. package/lib/factory/expressions/createPrefixMinus.js.map +1 -1
  111. package/lib/factory/expressions/createPrefixMinus.mjs +2 -1
  112. package/lib/factory/expressions/createPrefixMinus.mjs.map +1 -1
  113. package/lib/factory/expressions/createPrefixPlus.js +2 -1
  114. package/lib/factory/expressions/createPrefixPlus.js.map +1 -1
  115. package/lib/factory/expressions/createPrefixPlus.mjs +2 -1
  116. package/lib/factory/expressions/createPrefixPlus.mjs.map +1 -1
  117. package/lib/factory/expressions/createRightShift.js +2 -1
  118. package/lib/factory/expressions/createRightShift.js.map +1 -1
  119. package/lib/factory/expressions/createRightShift.mjs +2 -1
  120. package/lib/factory/expressions/createRightShift.mjs.map +1 -1
  121. package/lib/factory/expressions/createStrictEquality.js +2 -1
  122. package/lib/factory/expressions/createStrictEquality.js.map +1 -1
  123. package/lib/factory/expressions/createStrictEquality.mjs +2 -1
  124. package/lib/factory/expressions/createStrictEquality.mjs.map +1 -1
  125. package/lib/factory/expressions/createStrictInequality.js +2 -1
  126. package/lib/factory/expressions/createStrictInequality.js.map +1 -1
  127. package/lib/factory/expressions/createStrictInequality.mjs +2 -1
  128. package/lib/factory/expressions/createStrictInequality.mjs.map +1 -1
  129. package/lib/factory/expressions/createSubtract.js +2 -1
  130. package/lib/factory/expressions/createSubtract.js.map +1 -1
  131. package/lib/factory/expressions/createSubtract.mjs +2 -1
  132. package/lib/factory/expressions/createSubtract.mjs.map +1 -1
  133. package/lib/factory/expressions/createUnsignedRightShift.js +2 -1
  134. package/lib/factory/expressions/createUnsignedRightShift.js.map +1 -1
  135. package/lib/factory/expressions/createUnsignedRightShift.mjs +2 -1
  136. package/lib/factory/expressions/createUnsignedRightShift.mjs.map +1 -1
  137. package/lib/factory/names/createFalse.js +2 -1
  138. package/lib/factory/names/createFalse.js.map +1 -1
  139. package/lib/factory/names/createFalse.mjs +2 -1
  140. package/lib/factory/names/createFalse.mjs.map +1 -1
  141. package/lib/factory/names/createModifiersFromModifierFlags.js +15 -14
  142. package/lib/factory/names/createModifiersFromModifierFlags.js.map +1 -1
  143. package/lib/factory/names/createModifiersFromModifierFlags.mjs +15 -14
  144. package/lib/factory/names/createModifiersFromModifierFlags.mjs.map +1 -1
  145. package/lib/factory/names/createNull.js +2 -1
  146. package/lib/factory/names/createNull.js.map +1 -1
  147. package/lib/factory/names/createNull.mjs +2 -1
  148. package/lib/factory/names/createNull.mjs.map +1 -1
  149. package/lib/factory/names/createSuper.js +2 -1
  150. package/lib/factory/names/createSuper.js.map +1 -1
  151. package/lib/factory/names/createSuper.mjs +2 -1
  152. package/lib/factory/names/createSuper.mjs.map +1 -1
  153. package/lib/factory/names/createThis.js +2 -1
  154. package/lib/factory/names/createThis.js.map +1 -1
  155. package/lib/factory/names/createThis.mjs +2 -1
  156. package/lib/factory/names/createThis.mjs.map +1 -1
  157. package/lib/factory/names/createTrue.js +2 -1
  158. package/lib/factory/names/createTrue.js.map +1 -1
  159. package/lib/factory/names/createTrue.mjs +2 -1
  160. package/lib/factory/names/createTrue.mjs.map +1 -1
  161. package/lib/factory/statements/createVariableDeclarationList.js +2 -1
  162. package/lib/factory/statements/createVariableDeclarationList.js.map +1 -1
  163. package/lib/factory/statements/createVariableDeclarationList.mjs +2 -1
  164. package/lib/factory/statements/createVariableDeclarationList.mjs.map +1 -1
  165. package/lib/index.js +4 -1
  166. package/lib/index.js.map +1 -1
  167. package/lib/index.mjs +4 -1
  168. package/lib/index.mjs.map +1 -1
  169. package/lib/syntax/NodeFlags.d.ts +3 -3
  170. package/lib/syntax/NodeFlags.js +21 -0
  171. package/lib/syntax/NodeFlags.js.map +1 -1
  172. package/lib/syntax/NodeFlags.mjs +21 -0
  173. package/lib/syntax/NodeFlags.mjs.map +1 -1
  174. package/lib/syntax/SyntaxKind.d.ts +3 -3
  175. package/lib/syntax/SyntaxKind.js +108 -0
  176. package/lib/syntax/SyntaxKind.js.map +1 -1
  177. package/lib/syntax/SyntaxKind.mjs +108 -0
  178. package/lib/syntax/SyntaxKind.mjs.map +1 -1
  179. package/package.json +1 -1
  180. package/src/syntax/NodeFlags.ts +3 -3
  181. package/src/syntax/SyntaxKind.ts +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"TsPrinter.mjs","sources":["TsPrinter.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TsPrinter = void 0;\nconst comments_1 = require(\"./comments\");\nconst doc_1 = require(\"./internal/doc\");\nconst escapeString = (text, singleQuote) => {\n const escaped = text\n .replace(/\\\\/g, \"\\\\\\\\\")\n .replace(/\\n/g, \"\\\\n\")\n .replace(/\\r/g, \"\\\\r\")\n .replace(/\\t/g, \"\\\\t\");\n return singleQuote === true\n ? `'${escaped.replace(/'/g, \"\\\\'\")}'`\n : `\"${escaped.replace(/\"/g, '\\\\\"')}\"`;\n};\n/**\n * Printer turning {@link factory} produced AST nodes into TypeScript source\n * text.\n *\n * The printer is a width-aware pretty-printer: it builds a Prettier-style\n * document for the {@link Node} discriminated union and lays it out against\n * {@link TsPrinterOptions.printWidth}. Lists (arguments, parameters, generic\n * arguments, array / object members, ...) print on one line when they fit and\n * break onto indented lines — with trailing commas — when they do not. Every\n * `node.kind` narrows to its concrete type, so the walk is fully type-checked;\n * no `typescript` module is involved.\n *\n * @author Jeongho Nam - https://github.com/samchon\n * @example\n * ```typescript\n * import factory, { TsPrinter } from \"@ttsc/factory\";\n *\n * const printer = new TsPrinter({ printWidth: 80, indent: \" \" });\n * printer.print(factory.createStringLiteral(\"hello\")); // \"hello\"\n * ```;\n */\nclass TsPrinter {\n printWidth_;\n indent_;\n newLine_;\n constructor(options = {}) {\n this.printWidth_ = options.printWidth ?? 80;\n this.indent_ = options.indent ?? \" \";\n this.newLine_ = options.newLine ?? \"\\n\";\n }\n /** Print a single node (or a whole {@link SourceFile}) into source text. */\n print(node) {\n return this.layout(this.emit(node));\n }\n /** Print multiple nodes, joining them with new lines. */\n printNodes(nodes) {\n return this.layout((0, doc_1.join)(doc_1.hardline, nodes.map((n) => this.emit(n))));\n }\n /**\n * Print an entire source file.\n *\n * @param sourceFile A {@link SourceFile}. When omitted, one is composed from\n * the given `statements`.\n * @param statements Statements to compose a source file from when no\n * `sourceFile` is provided.\n */\n printFile(sourceFile, statements = []) {\n const list = sourceFile\n ? sourceFile.statements\n : statements;\n return (this.layout((0, doc_1.join)(doc_1.hardline, list.map((s) => this.emit(s)))) + this.newLine_);\n }\n /* ----------------------------------------------------------------------- */\n /* INTERNAL */\n /* ----------------------------------------------------------------------- */\n layout(doc) {\n return (0, doc_1.printDocToString)(doc, {\n printWidth: this.printWidth_,\n indent: this.indent_,\n newLine: this.newLine_,\n });\n }\n /** Comma-separated, width-aware delimited list (`(...)`, `[...]`, `<...>`). */\n delim(open, items, close, opts = {}) {\n if (items.length === 0)\n return open + close;\n const ln = opts.space ? doc_1.line : doc_1.softline;\n return (0, doc_1.group)((0, doc_1.concat)([\n open,\n (0, doc_1.indent)((0, doc_1.concat)([ln, (0, doc_1.join)((0, doc_1.concat)([\",\", doc_1.line]), items)])),\n opts.trailingComma ? (0, doc_1.ifBreak)(\",\") : \"\",\n ln,\n close,\n ]), opts.forceBreak === true);\n }\n /**\n * Semicolon-separated member block (`{ a; b }`), e.g. interfaces.\n *\n * A bare {@link import(\"./ast\").Identifier} member acts as a blank-line spacer\n * (the legacy `createIdentifier(\"\\n\")` codegen idiom): it inserts an empty\n * line between members and carries no `;` terminator, matching the legacy\n * printer.\n */\n memberBlock(members, forceBreak) {\n const inner = [];\n let first = true;\n let blank = false;\n for (const member of members) {\n if (member.kind === \"Identifier\") {\n blank = true;\n continue;\n }\n if (!first)\n inner.push(\";\", doc_1.line);\n if (blank) {\n inner.push(doc_1.hardline);\n blank = false;\n }\n inner.push(this.emit(member));\n first = false;\n }\n if (inner.length === 0)\n return \"{}\";\n return (0, doc_1.group)((0, doc_1.concat)([\n \"{\",\n (0, doc_1.indent)((0, doc_1.concat)([doc_1.line, (0, doc_1.concat)(inner)])),\n (0, doc_1.ifBreak)(\";\"),\n doc_1.line,\n \"}\",\n ]), forceBreak);\n }\n /** Always-broken statement block (`{ ... }`). */\n statementBlock(items) {\n if (items.length === 0)\n return \"{}\";\n return (0, doc_1.concat)([\n \"{\",\n (0, doc_1.indent)((0, doc_1.concat)([doc_1.hardline, (0, doc_1.join)(doc_1.hardline, items)])),\n doc_1.hardline,\n \"}\",\n ]);\n }\n typeArguments(args) {\n // type-argument / type-parameter lists disallow a trailing comma (TS1009)\n return args && args.length\n ? this.delim(\"<\", args.map((a) => this.emit(a)), \">\", {\n trailingComma: false,\n })\n : \"\";\n }\n params(params) {\n return this.delim(\"(\", params.map((p) => this.emit(p)), \")\", {\n trailingComma: true,\n });\n }\n modifiers(mods, decoratorsOnNewLine) {\n if (!mods || mods.length === 0)\n return \"\";\n const decorators = mods.filter((m) => m.kind === \"Decorator\");\n const tokens = mods.filter((m) => m.kind !== \"Decorator\");\n const parts = [];\n const gap = decoratorsOnNewLine ? doc_1.hardline : \" \";\n if (decorators.length)\n parts.push((0, doc_1.join)(gap, decorators.map((d) => this.emit(d))), gap);\n if (tokens.length)\n parts.push((0, doc_1.join)(\" \", tokens.map((t) => this.emit(t))), \" \");\n return (0, doc_1.concat)(parts);\n }\n heritage(clauses) {\n return clauses && clauses.length\n ? (0, doc_1.concat)([\n \" \",\n (0, doc_1.join)(\" \", clauses.map((c) => this.emit(c))),\n ])\n : \"\";\n }\n optType(type) {\n return type ? (0, doc_1.concat)([\": \", this.emit(type)]) : \"\";\n }\n optBody(body) {\n return body ? (0, doc_1.concat)([\" \", this.emit(body)]) : \";\";\n }\n emit(node) {\n const body = this.emitNode(node);\n const leading = (0, comments_1.getSyntheticLeadingComments)(node);\n const trailing = (0, comments_1.getSyntheticTrailingComments)(node);\n if ((leading === undefined || leading.length === 0) &&\n (trailing === undefined || trailing.length === 0))\n return body;\n const parts = [];\n if (leading !== undefined)\n for (const comment of leading)\n parts.push(this.leadingComment(comment));\n parts.push(body);\n if (trailing !== undefined)\n for (const comment of trailing)\n parts.push(this.trailingComment(comment));\n return (0, doc_1.concat)(parts);\n }\n /** Render a leading comment followed by its node separator. */\n leadingComment(comment) {\n // a `//` comment must terminate the line; a `/* */` honours its own flag\n const newLine = comment.kind === \"//\" /* SyntaxKind.SingleLineCommentTrivia */ ||\n comment.hasTrailingNewLine === true;\n return (0, doc_1.concat)([this.commentBody(comment), newLine ? doc_1.hardline : \" \"]);\n }\n /** Render a trailing comment preceded by its node separator. */\n trailingComment(comment) {\n const newLine = comment.kind === \"//\" /* SyntaxKind.SingleLineCommentTrivia */ ||\n comment.hasTrailingNewLine === true;\n return (0, doc_1.concat)([\n comment.hasLeadingNewLine === true ? doc_1.hardline : \" \",\n this.commentBody(comment),\n newLine ? doc_1.hardline : \"\",\n ]);\n }\n /** Render the delimited comment body, re-flowing embedded line breaks. */\n commentBody(comment) {\n if (comment.kind === \"//\" /* SyntaxKind.SingleLineCommentTrivia */)\n return (0, doc_1.concat)([\"//\", comment.text]);\n // re-emit embedded newlines as hardlines so each line re-indents in place\n return (0, doc_1.concat)([\n \"/*\",\n (0, doc_1.join)(doc_1.hardline, comment.text.replace(/\\r\\n?/g, \"\\n\").split(\"\\n\")),\n \"*/\",\n ]);\n }\n emitNode(node) {\n switch (node.kind) {\n /* names & tokens */\n case \"Identifier\":\n return node.text;\n case \"PrivateIdentifier\":\n return node.text;\n case \"QualifiedName\":\n return (0, doc_1.concat)([this.emit(node.left), \".\", this.emit(node.right)]);\n case \"Token\":\n return node.token;\n case \"Decorator\":\n return (0, doc_1.concat)([\"@\", this.emit(node.expression)]);\n /* literals */\n case \"StringLiteral\":\n return escapeString(node.text, node.singleQuote);\n case \"NumericLiteral\":\n return node.text;\n case \"BigIntLiteral\":\n return node.text;\n /* expressions */\n case \"ArrayLiteralExpression\":\n return this.delim(\"[\", node.elements.map((e) => this.emit(e)), \"]\", { trailingComma: true, forceBreak: node.multiLine === true });\n case \"ObjectLiteralExpression\":\n return this.delim(\"{\", node.properties.map((p) => this.emit(p)), \"}\", {\n space: true,\n trailingComma: true,\n forceBreak: node.multiLine === true,\n });\n case \"PropertyAssignment\":\n return (0, doc_1.concat)([\n this.emit(node.name),\n \": \",\n this.emit(node.initializer),\n ]);\n case \"ShorthandPropertyAssignment\":\n return (0, doc_1.concat)([\n this.emit(node.name),\n node.objectAssignmentInitializer\n ? (0, doc_1.concat)([\" = \", this.emit(node.objectAssignmentInitializer)])\n : \"\",\n ]);\n case \"SpreadAssignment\":\n return (0, doc_1.concat)([\"...\", this.emit(node.expression)]);\n case \"PropertyAccessExpression\":\n return (0, doc_1.concat)([this.emit(node.expression), \".\", this.emit(node.name)]);\n case \"ElementAccessExpression\":\n return (0, doc_1.concat)([\n this.emit(node.expression),\n \"[\",\n this.emit(node.argumentExpression),\n \"]\",\n ]);\n case \"CallExpression\":\n return (0, doc_1.concat)([\n this.emit(node.expression),\n this.typeArguments(node.typeArguments),\n this.params(node.arguments),\n ]);\n case \"NewExpression\":\n return (0, doc_1.concat)([\n \"new \",\n this.emit(node.expression),\n this.typeArguments(node.typeArguments),\n this.params(node.arguments ?? []),\n ]);\n case \"ParenthesizedExpression\":\n return (0, doc_1.concat)([\"(\", this.emit(node.expression), \")\"]);\n case \"BinaryExpression\":\n return (0, doc_1.group)((0, doc_1.concat)([\n this.emit(node.left),\n \" \",\n node.operator,\n (0, doc_1.indent)((0, doc_1.concat)([doc_1.line, this.emit(node.right)])),\n ]));\n case \"PrefixUnaryExpression\":\n return (0, doc_1.concat)([node.operator, this.emit(node.operand)]);\n case \"PostfixUnaryExpression\":\n return (0, doc_1.concat)([this.emit(node.operand), node.operator]);\n case \"ConditionalExpression\":\n return (0, doc_1.group)((0, doc_1.concat)([\n this.emit(node.condition),\n (0, doc_1.indent)((0, doc_1.concat)([\n doc_1.line,\n \"? \",\n this.emit(node.whenTrue),\n doc_1.line,\n \": \",\n this.emit(node.whenFalse),\n ])),\n ]));\n case \"ArrowFunction\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, false),\n this.typeArguments(node.typeParameters),\n this.params(node.parameters),\n this.optType(node.type),\n \" => \",\n this.emit(node.body),\n ]);\n case \"FunctionExpression\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, false),\n \"function\",\n node.asteriskToken ? \"*\" : \"\",\n node.name ? (0, doc_1.concat)([\" \", this.emit(node.name)]) : \" \",\n this.typeArguments(node.typeParameters),\n this.params(node.parameters),\n this.optType(node.type),\n \" \",\n this.emit(node.body),\n ]);\n case \"AsExpression\":\n return (0, doc_1.concat)([\n this.emit(node.expression),\n \" as \",\n this.emit(node.type),\n ]);\n case \"SatisfiesExpression\":\n return (0, doc_1.concat)([\n this.emit(node.expression),\n \" satisfies \",\n this.emit(node.type),\n ]);\n case \"NonNullExpression\":\n return (0, doc_1.concat)([this.emit(node.expression), \"!\"]);\n case \"SpreadElement\":\n return (0, doc_1.concat)([\"...\", this.emit(node.expression)]);\n case \"AwaitExpression\":\n return (0, doc_1.concat)([\"await \", this.emit(node.expression)]);\n case \"TypeOfExpression\":\n return (0, doc_1.concat)([\"typeof \", this.emit(node.expression)]);\n /* types */\n case \"KeywordTypeNode\":\n return node.keyword;\n case \"TypeReferenceNode\":\n return (0, doc_1.concat)([\n this.emit(node.typeName),\n this.typeArguments(node.typeArguments),\n ]);\n case \"ArrayTypeNode\":\n return (0, doc_1.concat)([this.postfixTypeOperand(node.elementType), \"[]\"]);\n case \"UnionTypeNode\":\n return this.binaryType(\"|\", node.types.map((t) => this.emit(t)));\n case \"IntersectionTypeNode\":\n return this.binaryType(\"&\", node.types.map((t) => this.emit(t)));\n case \"LiteralTypeNode\":\n return this.emit(node.literal);\n case \"TypeLiteralNode\":\n return this.memberBlock(node.members, false);\n case \"FunctionTypeNode\":\n return (0, doc_1.concat)([\n this.typeArguments(node.typeParameters),\n this.params(node.parameters),\n \" => \",\n this.emit(node.type),\n ]);\n case \"TupleTypeNode\":\n return this.delim(\"[\", node.elements.map((e) => this.emit(e)), \"]\", {\n trailingComma: true,\n });\n case \"ParenthesizedTypeNode\":\n return (0, doc_1.concat)([\"(\", this.emit(node.type), \")\"]);\n case \"TypeOperatorNode\":\n return (0, doc_1.concat)([node.operator, \" \", this.emit(node.type)]);\n case \"IndexedAccessTypeNode\":\n return (0, doc_1.concat)([\n this.postfixTypeOperand(node.objectType),\n \"[\",\n this.emit(node.indexType),\n \"]\",\n ]);\n case \"TypeQueryNode\":\n return (0, doc_1.concat)([\"typeof \", this.emit(node.exprName)]);\n case \"ExpressionWithTypeArguments\":\n return (0, doc_1.concat)([\n this.emit(node.expression),\n this.typeArguments(node.typeArguments),\n ]);\n case \"PropertySignature\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, false),\n this.emit(node.name),\n node.questionToken ? \"?\" : \"\",\n this.optType(node.type),\n ]);\n case \"IndexSignature\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, false),\n \"[\",\n (0, doc_1.join)(\", \", node.parameters.map((p) => this.emit(p))),\n \"]: \",\n this.emit(node.type),\n ]);\n case \"MethodSignature\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, false),\n this.emit(node.name),\n node.questionToken ? \"?\" : \"\",\n this.typeArguments(node.typeParameters),\n this.params(node.parameters),\n this.optType(node.type),\n ]);\n case \"TypeParameterDeclaration\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, false),\n this.emit(node.name),\n node.constraint\n ? (0, doc_1.concat)([\" extends \", this.emit(node.constraint)])\n : \"\",\n node.default ? (0, doc_1.concat)([\" = \", this.emit(node.default)]) : \"\",\n ]);\n /* support */\n case \"ParameterDeclaration\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, false),\n node.dotDotDotToken ? \"...\" : \"\",\n this.emit(node.name),\n node.questionToken ? \"?\" : \"\",\n this.optType(node.type),\n node.initializer ? (0, doc_1.concat)([\" = \", this.emit(node.initializer)]) : \"\",\n ]);\n case \"HeritageClause\":\n return (0, doc_1.concat)([\n node.token,\n \" \",\n (0, doc_1.join)(\", \", node.types.map((t) => this.emit(t))),\n ]);\n /* statements */\n case \"VariableStatement\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, false),\n this.emit(node.declarationList),\n \";\",\n ]);\n case \"VariableDeclarationList\": {\n const keyword = node.flags === \"const\" /* NodeFlags.Const */\n ? \"const\"\n : node.flags === \"let\" /* NodeFlags.Let */\n ? \"let\"\n : \"var\";\n return (0, doc_1.concat)([\n keyword,\n \" \",\n (0, doc_1.join)(\", \", node.declarations.map((d) => this.emit(d))),\n ]);\n }\n case \"VariableDeclaration\":\n return (0, doc_1.concat)([\n this.emit(node.name),\n node.exclamationToken ? \"!\" : \"\",\n this.optType(node.type),\n node.initializer ? (0, doc_1.concat)([\" = \", this.emit(node.initializer)]) : \"\",\n ]);\n case \"ExpressionStatement\":\n return (0, doc_1.concat)([this.emit(node.expression), \";\"]);\n case \"ReturnStatement\":\n return node.expression\n ? (0, doc_1.concat)([\"return \", this.emit(node.expression), \";\"])\n : \"return;\";\n case \"ThrowStatement\":\n return (0, doc_1.concat)([\"throw \", this.emit(node.expression), \";\"]);\n case \"IfStatement\":\n return (0, doc_1.concat)([\n \"if (\",\n this.emit(node.expression),\n \") \",\n this.emit(node.thenStatement),\n node.elseStatement\n ? (0, doc_1.concat)([\" else \", this.emit(node.elseStatement)])\n : \"\",\n ]);\n case \"Block\":\n return this.statementBlock(node.statements.map((s) => this.emit(s)));\n /* declarations */\n case \"FunctionDeclaration\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, true),\n \"function\",\n node.asteriskToken ? \"*\" : \"\",\n \" \",\n node.name ? this.emit(node.name) : \"\",\n this.typeArguments(node.typeParameters),\n this.params(node.parameters),\n this.optType(node.type),\n this.optBody(node.body),\n ]);\n case \"ClassDeclaration\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, true),\n \"class\",\n node.name ? (0, doc_1.concat)([\" \", this.emit(node.name)]) : \"\",\n this.typeArguments(node.typeParameters),\n this.heritage(node.heritageClauses),\n \" \",\n this.statementBlock(node.members.map((m) => this.emit(m))),\n ]);\n case \"PropertyDeclaration\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, true),\n this.emit(node.name),\n node.questionOrExclamationToken\n ? this.emit(node.questionOrExclamationToken)\n : \"\",\n this.optType(node.type),\n node.initializer ? (0, doc_1.concat)([\" = \", this.emit(node.initializer)]) : \"\",\n \";\",\n ]);\n case \"MethodDeclaration\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, true),\n node.asteriskToken ? \"*\" : \"\",\n this.emit(node.name),\n node.questionToken ? \"?\" : \"\",\n this.typeArguments(node.typeParameters),\n this.params(node.parameters),\n this.optType(node.type),\n this.optBody(node.body),\n ]);\n case \"ConstructorDeclaration\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, true),\n \"constructor\",\n this.params(node.parameters),\n this.optBody(node.body),\n ]);\n case \"GetAccessorDeclaration\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, true),\n \"get \",\n this.emit(node.name),\n this.params(node.parameters),\n this.optType(node.type),\n this.optBody(node.body),\n ]);\n case \"SetAccessorDeclaration\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, true),\n \"set \",\n this.emit(node.name),\n this.params(node.parameters),\n this.optBody(node.body),\n ]);\n case \"InterfaceDeclaration\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, true),\n \"interface \",\n this.emit(node.name),\n this.typeArguments(node.typeParameters),\n this.heritage(node.heritageClauses),\n \" \",\n this.memberBlock(node.members, true),\n ]);\n case \"TypeAliasDeclaration\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, true),\n \"type \",\n this.emit(node.name),\n this.typeArguments(node.typeParameters),\n \" = \",\n this.emit(node.type),\n \";\",\n ]);\n case \"EnumDeclaration\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, true),\n \"enum \",\n this.emit(node.name),\n \" \",\n node.members.length === 0\n ? \"{}\"\n : (0, doc_1.concat)([\n \"{\",\n (0, doc_1.indent)((0, doc_1.concat)([\n doc_1.hardline,\n (0, doc_1.join)((0, doc_1.concat)([\",\", doc_1.hardline]), node.members.map((m) => this.emit(m))),\n \",\",\n ])),\n doc_1.hardline,\n \"}\",\n ]),\n ]);\n case \"EnumMember\":\n return (0, doc_1.concat)([\n this.emit(node.name),\n node.initializer ? (0, doc_1.concat)([\" = \", this.emit(node.initializer)]) : \"\",\n ]);\n /* imports & exports */\n case \"ImportDeclaration\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, false),\n \"import \",\n node.importClause\n ? (0, doc_1.concat)([this.emit(node.importClause), \" from \"])\n : \"\",\n this.emit(node.moduleSpecifier),\n \";\",\n ]);\n case \"ImportClause\": {\n const named = [];\n if (node.name)\n named.push(this.emit(node.name));\n if (node.namedBindings)\n named.push(this.emit(node.namedBindings));\n return (0, doc_1.concat)([node.isTypeOnly ? \"type \" : \"\", (0, doc_1.join)(\", \", named)]);\n }\n case \"NamedImports\":\n return this.delim(\"{\", node.elements.map((e) => this.emit(e)), \"}\", { space: true, trailingComma: true });\n case \"ImportSpecifier\":\n return (0, doc_1.concat)([\n node.isTypeOnly ? \"type \" : \"\",\n node.propertyName\n ? (0, doc_1.concat)([this.emit(node.propertyName), \" as \"])\n : \"\",\n this.emit(node.name),\n ]);\n case \"NamespaceImport\":\n return (0, doc_1.concat)([\"* as \", this.emit(node.name)]);\n case \"ExportDeclaration\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, false),\n \"export \",\n node.isTypeOnly ? \"type \" : \"\",\n node.exportClause ? this.emit(node.exportClause) : \"*\",\n node.moduleSpecifier\n ? (0, doc_1.concat)([\" from \", this.emit(node.moduleSpecifier)])\n : \"\",\n \";\",\n ]);\n case \"NamedExports\":\n return this.delim(\"{\", node.elements.map((e) => this.emit(e)), \"}\", { space: true, trailingComma: true });\n case \"ExportSpecifier\":\n return (0, doc_1.concat)([\n node.isTypeOnly ? \"type \" : \"\",\n node.propertyName\n ? (0, doc_1.concat)([this.emit(node.propertyName), \" as \"])\n : \"\",\n this.emit(node.name),\n ]);\n case \"ExportAssignment\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, false),\n node.isExportEquals ? \"export = \" : \"export default \",\n this.emit(node.expression),\n \";\",\n ]);\n /* source file */\n case \"SourceFile\":\n return (0, doc_1.concat)([\n (0, doc_1.join)(doc_1.hardline, node.statements.map((s) => this.emit(s))),\n doc_1.hardline,\n ]);\n /* loops & flow */\n case \"ForStatement\":\n return (0, doc_1.concat)([\n \"for (\",\n node.initializer ? this.emit(node.initializer) : \"\",\n \"; \",\n node.condition ? this.emit(node.condition) : \"\",\n \"; \",\n node.incrementor ? this.emit(node.incrementor) : \"\",\n \") \",\n this.emit(node.statement),\n ]);\n case \"ForInStatement\":\n return (0, doc_1.concat)([\n \"for (\",\n this.emit(node.initializer),\n \" in \",\n this.emit(node.expression),\n \") \",\n this.emit(node.statement),\n ]);\n case \"ForOfStatement\":\n return (0, doc_1.concat)([\n \"for \",\n node.awaitModifier ? \"await \" : \"\",\n \"(\",\n this.emit(node.initializer),\n \" of \",\n this.emit(node.expression),\n \") \",\n this.emit(node.statement),\n ]);\n case \"WhileStatement\":\n return (0, doc_1.concat)([\n \"while (\",\n this.emit(node.expression),\n \") \",\n this.emit(node.statement),\n ]);\n case \"DoStatement\":\n return (0, doc_1.concat)([\n \"do \",\n this.emit(node.statement),\n \" while (\",\n this.emit(node.expression),\n \");\",\n ]);\n case \"SwitchStatement\":\n return (0, doc_1.concat)([\n \"switch (\",\n this.emit(node.expression),\n \") \",\n this.emit(node.caseBlock),\n ]);\n case \"CaseBlock\":\n return node.clauses.length === 0\n ? \"{}\"\n : (0, doc_1.concat)([\n \"{\",\n (0, doc_1.indent)((0, doc_1.concat)([\n doc_1.hardline,\n (0, doc_1.join)(doc_1.hardline, node.clauses.map((c) => this.emit(c))),\n ])),\n doc_1.hardline,\n \"}\",\n ]);\n case \"CaseClause\":\n return (0, doc_1.concat)([\n \"case \",\n this.emit(node.expression),\n \":\",\n node.statements.length\n ? (0, doc_1.indent)((0, doc_1.concat)([\n doc_1.hardline,\n (0, doc_1.join)(doc_1.hardline, node.statements.map((s) => this.emit(s))),\n ]))\n : \"\",\n ]);\n case \"DefaultClause\":\n return (0, doc_1.concat)([\n \"default:\",\n node.statements.length\n ? (0, doc_1.indent)((0, doc_1.concat)([\n doc_1.hardline,\n (0, doc_1.join)(doc_1.hardline, node.statements.map((s) => this.emit(s))),\n ]))\n : \"\",\n ]);\n case \"BreakStatement\":\n return node.label\n ? (0, doc_1.concat)([\"break \", this.emit(node.label), \";\"])\n : \"break;\";\n case \"ContinueStatement\":\n return node.label\n ? (0, doc_1.concat)([\"continue \", this.emit(node.label), \";\"])\n : \"continue;\";\n case \"TryStatement\":\n return (0, doc_1.concat)([\n \"try \",\n this.emit(node.tryBlock),\n node.catchClause ? (0, doc_1.concat)([\" \", this.emit(node.catchClause)]) : \"\",\n node.finallyBlock\n ? (0, doc_1.concat)([\" finally \", this.emit(node.finallyBlock)])\n : \"\",\n ]);\n case \"CatchClause\":\n return node.variableDeclaration\n ? (0, doc_1.concat)([\n \"catch (\",\n this.emit(node.variableDeclaration),\n \") \",\n this.emit(node.block),\n ])\n : (0, doc_1.concat)([\"catch \", this.emit(node.block)]);\n case \"LabeledStatement\":\n return (0, doc_1.concat)([this.emit(node.label), \": \", this.emit(node.statement)]);\n case \"WithStatement\":\n return (0, doc_1.concat)([\n \"with (\",\n this.emit(node.expression),\n \") \",\n this.emit(node.statement),\n ]);\n case \"DebuggerStatement\":\n return \"debugger;\";\n case \"EmptyStatement\":\n return \";\";\n /* modules & namespaces */\n case \"ModuleDeclaration\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, true),\n node.name.kind === \"StringLiteral\" ? \"module \" : \"namespace \",\n this.emit(node.name),\n node.body ? (0, doc_1.concat)([\" \", this.emit(node.body)]) : \";\",\n ]);\n case \"ModuleBlock\":\n return this.statementBlock(node.statements.map((s) => this.emit(s)));\n case \"ClassStaticBlockDeclaration\":\n return (0, doc_1.concat)([\"static \", this.emit(node.body)]);\n case \"ImportEqualsDeclaration\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, false),\n \"import \",\n node.isTypeOnly ? \"type \" : \"\",\n this.emit(node.name),\n \" = \",\n this.emit(node.moduleReference),\n \";\",\n ]);\n case \"ExternalModuleReference\":\n return (0, doc_1.concat)([\"require(\", this.emit(node.expression), \")\"]);\n case \"NamespaceExportDeclaration\":\n return (0, doc_1.concat)([\"export as namespace \", this.emit(node.name), \";\"]);\n case \"SemicolonClassElement\":\n return \";\";\n case \"NamespaceExport\":\n return (0, doc_1.concat)([\"* as \", this.emit(node.name)]);\n /* advanced types */\n case \"ThisTypeNode\":\n return \"this\";\n case \"ConstructorTypeNode\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, false),\n \"new \",\n this.typeArguments(node.typeParameters),\n this.params(node.parameters),\n \" => \",\n this.emit(node.type),\n ]);\n case \"TypePredicateNode\":\n return (0, doc_1.concat)([\n node.assertsModifier ? \"asserts \" : \"\",\n this.emit(node.parameterName),\n node.type ? (0, doc_1.concat)([\" is \", this.emit(node.type)]) : \"\",\n ]);\n case \"ConditionalTypeNode\":\n return (0, doc_1.concat)([\n this.emit(node.checkType),\n \" extends \",\n this.emit(node.extendsType),\n \" ? \",\n this.emit(node.trueType),\n \" : \",\n this.emit(node.falseType),\n ]);\n case \"InferTypeNode\":\n return (0, doc_1.concat)([\"infer \", this.emit(node.typeParameter)]);\n case \"MappedTypeNode\": {\n const ro = node.readonlyToken\n ? node.readonlyToken.token === \"readonly\"\n ? \"readonly \"\n : `${node.readonlyToken.token}readonly `\n : \"\";\n const q = node.questionToken\n ? node.questionToken.token === \"?\"\n ? \"?\"\n : `${node.questionToken.token}?`\n : \"\";\n return (0, doc_1.concat)([\n \"{ \",\n ro,\n \"[\",\n this.emit(node.typeParameter.name),\n \" in \",\n node.typeParameter.constraint\n ? this.emit(node.typeParameter.constraint)\n : \"\",\n node.nameType ? (0, doc_1.concat)([\" as \", this.emit(node.nameType)]) : \"\",\n \"]\",\n q,\n node.type ? (0, doc_1.concat)([\": \", this.emit(node.type)]) : \"\",\n \" }\",\n ]);\n }\n case \"TemplateLiteralType\":\n return (0, doc_1.concat)([\n this.emit(node.head),\n (0, doc_1.concat)(node.templateSpans.map((s) => this.emit(s))),\n ]);\n case \"TemplateLiteralTypeSpan\":\n return (0, doc_1.concat)([this.emit(node.type), this.emit(node.literal)]);\n case \"NamedTupleMember\":\n return (0, doc_1.concat)([\n node.dotDotDotToken ? \"...\" : \"\",\n this.emit(node.name),\n node.questionToken ? \"?\" : \"\",\n \": \",\n this.emit(node.type),\n ]);\n case \"OptionalTypeNode\":\n return (0, doc_1.concat)([this.emit(node.type), \"?\"]);\n case \"RestTypeNode\":\n return (0, doc_1.concat)([\"...\", this.emit(node.type)]);\n case \"ImportTypeNode\":\n return (0, doc_1.concat)([\n node.isTypeOf ? \"typeof \" : \"\",\n \"import(\",\n this.emit(node.argument),\n \")\",\n node.qualifier ? (0, doc_1.concat)([\".\", this.emit(node.qualifier)]) : \"\",\n this.typeArguments(node.typeArguments),\n ]);\n case \"CallSignature\":\n return (0, doc_1.concat)([\n this.typeArguments(node.typeParameters),\n this.params(node.parameters),\n this.optType(node.type),\n ]);\n case \"ConstructSignature\":\n return (0, doc_1.concat)([\n \"new \",\n this.typeArguments(node.typeParameters),\n this.params(node.parameters),\n this.optType(node.type),\n ]);\n /* template literals */\n case \"TemplateHead\":\n return (0, doc_1.concat)([\"`\", node.text, \"${\"]);\n case \"TemplateMiddle\":\n return (0, doc_1.concat)([\"}\", node.text, \"${\"]);\n case \"TemplateTail\":\n return (0, doc_1.concat)([\"}\", node.text, \"`\"]);\n case \"NoSubstitutionTemplateLiteral\":\n return (0, doc_1.concat)([\"`\", node.text, \"`\"]);\n /* template & misc expressions */\n case \"TemplateExpression\":\n return (0, doc_1.concat)([\n this.emit(node.head),\n (0, doc_1.concat)(node.templateSpans.map((s) => this.emit(s))),\n ]);\n case \"TemplateSpan\":\n return (0, doc_1.concat)([this.emit(node.expression), this.emit(node.literal)]);\n case \"TaggedTemplateExpression\":\n return (0, doc_1.concat)([\n this.emit(node.tag),\n this.typeArguments(node.typeArguments),\n this.emit(node.template),\n ]);\n case \"YieldExpression\":\n return (0, doc_1.concat)([\n \"yield\",\n node.asteriskToken ? \"*\" : \"\",\n node.expression ? (0, doc_1.concat)([\" \", this.emit(node.expression)]) : \"\",\n ]);\n case \"DeleteExpression\":\n return (0, doc_1.concat)([\"delete \", this.emit(node.expression)]);\n case \"VoidExpression\":\n return (0, doc_1.concat)([\"void \", this.emit(node.expression)]);\n case \"RegularExpressionLiteral\":\n return node.text;\n case \"ClassExpression\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, true),\n \"class\",\n node.name ? (0, doc_1.concat)([\" \", this.emit(node.name)]) : \"\",\n this.typeArguments(node.typeParameters),\n this.heritage(node.heritageClauses),\n \" \",\n this.statementBlock(node.members.map((m) => this.emit(m))),\n ]);\n case \"MetaProperty\":\n return (0, doc_1.concat)([node.keywordToken, \".\", this.emit(node.name)]);\n case \"CommaListExpression\":\n return (0, doc_1.join)(\", \", node.elements.map((e) => this.emit(e)));\n case \"ComputedPropertyName\":\n return (0, doc_1.concat)([\"[\", this.emit(node.expression), \"]\"]);\n case \"OmittedExpression\":\n return \"\";\n case \"BindingElement\":\n return (0, doc_1.concat)([\n node.dotDotDotToken ? \"...\" : \"\",\n node.propertyName ? (0, doc_1.concat)([this.emit(node.propertyName), \": \"]) : \"\",\n this.emit(node.name),\n node.initializer ? (0, doc_1.concat)([\" = \", this.emit(node.initializer)]) : \"\",\n ]);\n case \"ObjectBindingPattern\":\n return this.delim(\"{\", node.elements.map((e) => this.emit(e)), \"}\", { space: true, trailingComma: true });\n case \"ArrayBindingPattern\":\n return this.delim(\"[\", node.elements.map((e) => this.emit(e)), \"]\", { trailingComma: true });\n case \"TypeAssertion\":\n return (0, doc_1.concat)([\n \"<\",\n this.emit(node.type),\n \">\",\n this.emit(node.expression),\n ]);\n case \"PropertyAccessChain\":\n return (0, doc_1.concat)([\n this.emit(node.expression),\n node.questionDotToken ? \"?.\" : \".\",\n this.emit(node.name),\n ]);\n case \"ElementAccessChain\":\n return (0, doc_1.concat)([\n this.emit(node.expression),\n node.questionDotToken ? \"?.\" : \"\",\n \"[\",\n this.emit(node.argumentExpression),\n \"]\",\n ]);\n case \"CallChain\":\n return (0, doc_1.concat)([\n this.emit(node.expression),\n node.questionDotToken ? \"?.\" : \"\",\n this.typeArguments(node.typeArguments),\n this.params(node.arguments),\n ]);\n case \"NonNullChain\":\n return (0, doc_1.concat)([this.emit(node.expression), \"!\"]);\n /* jsx */\n case \"JsxElement\":\n return (0, doc_1.group)((0, doc_1.concat)([\n this.emit(node.openingElement),\n (0, doc_1.indent)((0, doc_1.concat)(node.children.map((c) => (0, doc_1.concat)([doc_1.softline, this.emit(c)])))),\n doc_1.softline,\n this.emit(node.closingElement),\n ]));\n case \"JsxSelfClosingElement\":\n return (0, doc_1.concat)([\n \"<\",\n this.emit(node.tagName),\n this.typeArguments(node.typeArguments),\n this.emit(node.attributes),\n \" />\",\n ]);\n case \"JsxOpeningElement\":\n return (0, doc_1.concat)([\n \"<\",\n this.emit(node.tagName),\n this.typeArguments(node.typeArguments),\n this.emit(node.attributes),\n \">\",\n ]);\n case \"JsxClosingElement\":\n return (0, doc_1.concat)([\"</\", this.emit(node.tagName), \">\"]);\n case \"JsxFragment\":\n return (0, doc_1.group)((0, doc_1.concat)([\n this.emit(node.openingFragment),\n (0, doc_1.indent)((0, doc_1.concat)(node.children.map((c) => (0, doc_1.concat)([doc_1.softline, this.emit(c)])))),\n doc_1.softline,\n this.emit(node.closingFragment),\n ]));\n case \"JsxOpeningFragment\":\n return \"<>\";\n case \"JsxClosingFragment\":\n return \"</>\";\n case \"JsxText\":\n return node.text;\n case \"JsxAttribute\":\n return node.initializer === undefined\n ? this.emit(node.name)\n : (0, doc_1.concat)([this.emit(node.name), \"=\", this.emit(node.initializer)]);\n case \"JsxAttributes\":\n return node.properties.length === 0\n ? \"\"\n : (0, doc_1.concat)(node.properties.map((p) => (0, doc_1.concat)([\" \", this.emit(p)])));\n case \"JsxSpreadAttribute\":\n return (0, doc_1.concat)([\"{...\", this.emit(node.expression), \"}\"]);\n case \"JsxExpression\":\n return (0, doc_1.concat)([\n \"{\",\n node.dotDotDotToken ? \"...\" : \"\",\n node.expression ? this.emit(node.expression) : \"\",\n \"}\",\n ]);\n case \"JsxNamespacedName\":\n return (0, doc_1.concat)([this.emit(node.namespace), \":\", this.emit(node.name)]);\n /* synthetic / emit-internal */\n case \"Bundle\":\n return (0, doc_1.join)(doc_1.hardline, node.sourceFiles.map((s) => this.emit(s)));\n case \"PartiallyEmittedExpression\":\n return this.emit(node.expression);\n case \"ImportAttribute\":\n return (0, doc_1.concat)([this.emit(node.name), \": \", this.emit(node.value)]);\n case \"ImportAttributes\":\n return node.elements.length === 0\n ? (0, doc_1.concat)([node.token, \" {}\"])\n : (0, doc_1.concat)([\n node.token,\n \" { \",\n (0, doc_1.join)(\", \", node.elements.map((e) => this.emit(e))),\n \" }\",\n ]);\n case \"NotEmittedStatement\":\n case \"NotEmittedTypeElement\":\n return \"\";\n /* jsdoc — types */\n case \"JSDocAllType\":\n return \"*\";\n case \"JSDocUnknownType\":\n return \"?\";\n case \"JSDocNonNullableType\":\n return node.postfix\n ? (0, doc_1.concat)([this.emit(node.type), \"!\"])\n : (0, doc_1.concat)([\"!\", this.emit(node.type)]);\n case \"JSDocNullableType\":\n return node.postfix\n ? (0, doc_1.concat)([this.emit(node.type), \"?\"])\n : (0, doc_1.concat)([\"?\", this.emit(node.type)]);\n case \"JSDocOptionalType\":\n return (0, doc_1.concat)([this.emit(node.type), \"=\"]);\n case \"JSDocVariadicType\":\n return (0, doc_1.concat)([\"...\", this.emit(node.type)]);\n case \"JSDocNamepathType\":\n return this.emit(node.type);\n case \"JSDocFunctionType\":\n return (0, doc_1.concat)([\n \"function(\",\n (0, doc_1.join)(\", \", node.parameters.map((p) => this.emit(p))),\n \")\",\n node.type ? (0, doc_1.concat)([\": \", this.emit(node.type)]) : \"\",\n ]);\n case \"JSDocTypeExpression\":\n return (0, doc_1.concat)([\"{\", this.emit(node.type), \"}\"]);\n case \"JSDocNameReference\":\n return this.emit(node.name);\n case \"JSDocMemberName\":\n return (0, doc_1.concat)([this.emit(node.left), \"#\", this.emit(node.right)]);\n case \"JSDocLink\":\n return (0, doc_1.concat)([\n \"{@link \",\n node.name ? this.emit(node.name) : \"\",\n node.text,\n \"}\",\n ]);\n case \"JSDocLinkCode\":\n return (0, doc_1.concat)([\n \"{@linkcode \",\n node.name ? this.emit(node.name) : \"\",\n node.text,\n \"}\",\n ]);\n case \"JSDocLinkPlain\":\n return (0, doc_1.concat)([\n \"{@linkplain \",\n node.name ? this.emit(node.name) : \"\",\n node.text,\n \"}\",\n ]);\n case \"JSDocText\":\n return node.text;\n case \"JSDocTypeLiteral\":\n return (0, doc_1.concat)([\n (0, doc_1.join)(doc_1.hardline, (node.jsDocPropertyTags ?? []).map((t) => this.emit(t))),\n node.isArrayType ? \"[]\" : \"\",\n ]);\n case \"JSDocSignature\":\n return (0, doc_1.join)(doc_1.hardline, [\n ...(node.typeParameters ?? []),\n ...node.parameters,\n ...(node.type ? [node.type] : []),\n ].map((t) => this.emit(t)));\n case \"JSDoc\": {\n const body = node.comment === undefined\n ? \"\"\n : typeof node.comment === \"string\"\n ? node.comment\n : (0, doc_1.concat)(node.comment.map((c) => this.emit(c)));\n const lines = [(0, doc_1.concat)([\" * \", body])];\n for (const tag of node.tags ?? [])\n lines.push((0, doc_1.concat)([\" * \", this.emit(tag)]));\n return (0, doc_1.concat)([\n \"/**\",\n doc_1.hardline,\n (0, doc_1.join)(doc_1.hardline, lines),\n doc_1.hardline,\n \" */\",\n ]);\n }\n /* jsdoc — tags */\n case \"JSDocTypeTag\":\n case \"JSDocThisTag\":\n case \"JSDocEnumTag\":\n case \"JSDocSatisfiesTag\":\n return (0, doc_1.concat)([\n \"@\",\n this.emit(node.tagName),\n \" \",\n this.emit(node.typeExpression),\n this.jsDocComment(node.comment),\n ]);\n case \"JSDocReturnTag\":\n case \"JSDocThrowsTag\":\n return (0, doc_1.concat)([\n \"@\",\n this.emit(node.tagName),\n node.typeExpression\n ? (0, doc_1.concat)([\" \", this.emit(node.typeExpression)])\n : \"\",\n this.jsDocComment(node.comment),\n ]);\n case \"JSDocAuthorTag\":\n case \"JSDocClassTag\":\n case \"JSDocPublicTag\":\n case \"JSDocPrivateTag\":\n case \"JSDocProtectedTag\":\n case \"JSDocReadonlyTag\":\n case \"JSDocOverrideTag\":\n case \"JSDocDeprecatedTag\":\n case \"JSDocUnknownTag\":\n return (0, doc_1.concat)([\n \"@\",\n this.emit(node.tagName),\n this.jsDocComment(node.comment),\n ]);\n case \"JSDocAugmentsTag\":\n case \"JSDocImplementsTag\":\n return (0, doc_1.concat)([\n \"@\",\n this.emit(node.tagName),\n \" {\",\n this.emit(node.class),\n \"}\",\n this.jsDocComment(node.comment),\n ]);\n case \"JSDocParameterTag\":\n case \"JSDocPropertyTag\": {\n const name = node.isBracketed\n ? (0, doc_1.concat)([\"[\", this.emit(node.name), \"]\"])\n : this.emit(node.name);\n const type = node.typeExpression\n ? this.emit(node.typeExpression)\n : undefined;\n const main = node.isNameFirst\n ? (0, doc_1.concat)([name, type ? (0, doc_1.concat)([\" \", type]) : \"\"])\n : (0, doc_1.concat)([type ? (0, doc_1.concat)([type, \" \"]) : \"\", name]);\n return (0, doc_1.concat)([\n \"@\",\n this.emit(node.tagName),\n \" \",\n main,\n this.jsDocComment(node.comment),\n ]);\n }\n case \"JSDocSeeTag\":\n return (0, doc_1.concat)([\n \"@\",\n this.emit(node.tagName),\n node.name ? (0, doc_1.concat)([\" \", this.emit(node.name)]) : \"\",\n this.jsDocComment(node.comment),\n ]);\n case \"JSDocOverloadTag\":\n case \"JSDocCallbackTag\": {\n const full = node.kind === \"JSDocCallbackTag\" && node.fullName\n ? (0, doc_1.concat)([\" \", this.emit(node.fullName)])\n : \"\";\n return (0, doc_1.concat)([\n \"@\",\n this.emit(node.tagName),\n full,\n doc_1.hardline,\n this.emit(node.typeExpression),\n this.jsDocComment(node.comment),\n ]);\n }\n case \"JSDocImportTag\":\n return (0, doc_1.concat)([\n \"@\",\n this.emit(node.tagName),\n \" \",\n node.importClause\n ? (0, doc_1.concat)([this.emit(node.importClause), \" from \"])\n : \"\",\n this.emit(node.moduleSpecifier),\n this.jsDocComment(node.comment),\n ]);\n case \"JSDocTemplateTag\":\n return (0, doc_1.concat)([\n \"@\",\n this.emit(node.tagName),\n node.constraint ? (0, doc_1.concat)([\" \", this.emit(node.constraint)]) : \"\",\n \" \",\n (0, doc_1.join)(\", \", node.typeParameters.map((t) => this.emit(t))),\n this.jsDocComment(node.comment),\n ]);\n case \"JSDocTypedefTag\":\n return (0, doc_1.concat)([\n \"@\",\n this.emit(node.tagName),\n node.typeExpression\n ? (0, doc_1.concat)([\" \", this.emit(node.typeExpression)])\n : \"\",\n node.fullName ? (0, doc_1.concat)([\" \", this.emit(node.fullName)]) : \"\",\n this.jsDocComment(node.comment),\n ]);\n default:\n return this.unsupported(node);\n }\n }\n /**\n * Emit a type in the operand position of a postfix type (`T[]`, `T[K]`),\n * parenthesizing the lower-precedence type forms that would otherwise\n * re-associate — matching the legacy printer's parenthesizer rules.\n */\n postfixTypeOperand(type) {\n const parenthesize = type.kind === \"UnionTypeNode\" ||\n type.kind === \"IntersectionTypeNode\" ||\n type.kind === \"FunctionTypeNode\" ||\n type.kind === \"ConstructorTypeNode\" ||\n type.kind === \"ConditionalTypeNode\" ||\n type.kind === \"InferTypeNode\" ||\n type.kind === \"TypeOperatorNode\";\n return parenthesize ? (0, doc_1.concat)([\"(\", this.emit(type), \")\"]) : this.emit(type);\n }\n /** Render a JSDoc tag's trailing comment, prefixed with a space when present. */\n jsDocComment(comment) {\n if (comment === undefined)\n return \"\";\n if (typeof comment === \"string\")\n return comment.length ? (0, doc_1.concat)([\" \", comment]) : \"\";\n return comment.length\n ? (0, doc_1.concat)([\" \", (0, doc_1.concat)(comment.map((c) => this.emit(c)))])\n : \"\";\n }\n /** Width-aware `|` / `&` type list with leading-operator breaks. */\n binaryType(operator, parts) {\n if (parts.length === 1)\n return parts[0];\n return (0, doc_1.group)((0, doc_1.indent)((0, doc_1.concat)([\n (0, doc_1.ifBreak)((0, doc_1.concat)([doc_1.line, operator, \" \"])),\n (0, doc_1.join)((0, doc_1.concat)([doc_1.line, operator, \" \"]), parts),\n ])));\n }\n unsupported(node) {\n throw new Error(`@ttsc/factory: TsPrinter cannot print node of kind \"${node.kind}\".`);\n }\n}\nexports.TsPrinter = TsPrinter;\n//# sourceMappingURL=TsPrinter.js.map"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TsPrinter.mjs","sources":["TsPrinter.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TsPrinter = void 0;\nconst comments_1 = require(\"./comments\");\nconst doc_1 = require(\"./internal/doc\");\nconst syntax_1 = require(\"./syntax\");\nconst escapeString = (text, singleQuote) => {\n const escaped = text\n .replace(/\\\\/g, \"\\\\\\\\\")\n .replace(/\\n/g, \"\\\\n\")\n .replace(/\\r/g, \"\\\\r\")\n .replace(/\\t/g, \"\\\\t\");\n return singleQuote === true\n ? `'${escaped.replace(/'/g, \"\\\\'\")}'`\n : `\"${escaped.replace(/\"/g, '\\\\\"')}\"`;\n};\n/**\n * Printer turning {@link factory} produced AST nodes into TypeScript source\n * text.\n *\n * The printer is a width-aware pretty-printer: it builds a Prettier-style\n * document for the {@link Node} discriminated union and lays it out against\n * {@link TsPrinterOptions.printWidth}. Lists (arguments, parameters, generic\n * arguments, array / object members, ...) print on one line when they fit and\n * break onto indented lines — with trailing commas — when they do not. Every\n * `node.kind` narrows to its concrete type, so the walk is fully type-checked;\n * no `typescript` module is involved.\n *\n * @author Jeongho Nam - https://github.com/samchon\n * @example\n * ```typescript\n * import factory, { TsPrinter } from \"@ttsc/factory\";\n *\n * const printer = new TsPrinter({ printWidth: 80, indent: \" \" });\n * printer.print(factory.createStringLiteral(\"hello\")); // \"hello\"\n * ```;\n */\nclass TsPrinter {\n printWidth_;\n indent_;\n newLine_;\n constructor(options = {}) {\n this.printWidth_ = options.printWidth ?? 80;\n this.indent_ = options.indent ?? \" \";\n this.newLine_ = options.newLine ?? \"\\n\";\n }\n /** Print a single node (or a whole {@link SourceFile}) into source text. */\n print(node) {\n return this.layout(this.emit(node));\n }\n /** Print multiple nodes, joining them with new lines. */\n printNodes(nodes) {\n return this.layout((0, doc_1.join)(doc_1.hardline, nodes.map((n) => this.emit(n))));\n }\n /**\n * Print an entire source file.\n *\n * @param sourceFile A {@link SourceFile}. When omitted, one is composed from\n * the given `statements`.\n * @param statements Statements to compose a source file from when no\n * `sourceFile` is provided.\n */\n printFile(sourceFile, statements = []) {\n const list = sourceFile\n ? sourceFile.statements\n : statements;\n return (this.layout((0, doc_1.join)(doc_1.hardline, list.map((s) => this.emit(s)))) + this.newLine_);\n }\n /* ----------------------------------------------------------------------- */\n /* INTERNAL */\n /* ----------------------------------------------------------------------- */\n layout(doc) {\n return (0, doc_1.printDocToString)(doc, {\n printWidth: this.printWidth_,\n indent: this.indent_,\n newLine: this.newLine_,\n });\n }\n /** Comma-separated, width-aware delimited list (`(...)`, `[...]`, `<...>`). */\n delim(open, items, close, opts = {}) {\n if (items.length === 0)\n return open + close;\n const ln = opts.space ? doc_1.line : doc_1.softline;\n return (0, doc_1.group)((0, doc_1.concat)([\n open,\n (0, doc_1.indent)((0, doc_1.concat)([ln, (0, doc_1.join)((0, doc_1.concat)([\",\", doc_1.line]), items)])),\n opts.trailingComma ? (0, doc_1.ifBreak)(\",\") : \"\",\n ln,\n close,\n ]), opts.forceBreak === true);\n }\n /**\n * Semicolon-separated member block (`{ a; b }`), e.g. interfaces.\n *\n * A bare {@link import(\"./ast\").Identifier} member acts as a blank-line spacer\n * (the legacy `createIdentifier(\"\\n\")` codegen idiom): it inserts an empty\n * line between members and carries no `;` terminator, matching the legacy\n * printer.\n */\n memberBlock(members, forceBreak) {\n const inner = [];\n let first = true;\n let blank = false;\n for (const member of members) {\n if (member.kind === \"Identifier\") {\n blank = true;\n continue;\n }\n if (!first)\n inner.push(\";\", doc_1.line);\n if (blank) {\n inner.push(doc_1.hardline);\n blank = false;\n }\n inner.push(this.emit(member));\n first = false;\n }\n if (inner.length === 0)\n return \"{}\";\n return (0, doc_1.group)((0, doc_1.concat)([\n \"{\",\n (0, doc_1.indent)((0, doc_1.concat)([doc_1.line, (0, doc_1.concat)(inner)])),\n (0, doc_1.ifBreak)(\";\"),\n doc_1.line,\n \"}\",\n ]), forceBreak);\n }\n /** Always-broken statement block (`{ ... }`). */\n statementBlock(items) {\n if (items.length === 0)\n return \"{}\";\n return (0, doc_1.concat)([\n \"{\",\n (0, doc_1.indent)((0, doc_1.concat)([doc_1.hardline, (0, doc_1.join)(doc_1.hardline, items)])),\n doc_1.hardline,\n \"}\",\n ]);\n }\n typeArguments(args) {\n // type-argument / type-parameter lists disallow a trailing comma (TS1009)\n return args && args.length\n ? this.delim(\"<\", args.map((a) => this.emit(a)), \">\", {\n trailingComma: false,\n })\n : \"\";\n }\n params(params) {\n return this.delim(\"(\", params.map((p) => this.emit(p)), \")\", {\n trailingComma: true,\n });\n }\n modifiers(mods, decoratorsOnNewLine) {\n if (!mods || mods.length === 0)\n return \"\";\n const decorators = mods.filter((m) => m.kind === \"Decorator\");\n const tokens = mods.filter((m) => m.kind !== \"Decorator\");\n const parts = [];\n const gap = decoratorsOnNewLine ? doc_1.hardline : \" \";\n if (decorators.length)\n parts.push((0, doc_1.join)(gap, decorators.map((d) => this.emit(d))), gap);\n if (tokens.length)\n parts.push((0, doc_1.join)(\" \", tokens.map((t) => this.emit(t))), \" \");\n return (0, doc_1.concat)(parts);\n }\n heritage(clauses) {\n return clauses && clauses.length\n ? (0, doc_1.concat)([\n \" \",\n (0, doc_1.join)(\" \", clauses.map((c) => this.emit(c))),\n ])\n : \"\";\n }\n optType(type) {\n return type ? (0, doc_1.concat)([\": \", this.emit(type)]) : \"\";\n }\n optBody(body) {\n return body ? (0, doc_1.concat)([\" \", this.emit(body)]) : \";\";\n }\n emit(node) {\n const body = this.emitNode(node);\n const leading = (0, comments_1.getSyntheticLeadingComments)(node);\n const trailing = (0, comments_1.getSyntheticTrailingComments)(node);\n if ((leading === undefined || leading.length === 0) &&\n (trailing === undefined || trailing.length === 0))\n return body;\n const parts = [];\n if (leading !== undefined)\n for (const comment of leading)\n parts.push(this.leadingComment(comment));\n parts.push(body);\n if (trailing !== undefined)\n for (const comment of trailing)\n parts.push(this.trailingComment(comment));\n return (0, doc_1.concat)(parts);\n }\n /** Render a leading comment followed by its node separator. */\n leadingComment(comment) {\n // a `//` comment must terminate the line; a `/* */` honours its own flag\n const newLine = comment.kind === syntax_1.SyntaxKind.SingleLineCommentTrivia ||\n comment.hasTrailingNewLine === true;\n return (0, doc_1.concat)([this.commentBody(comment), newLine ? doc_1.hardline : \" \"]);\n }\n /** Render a trailing comment preceded by its node separator. */\n trailingComment(comment) {\n const newLine = comment.kind === syntax_1.SyntaxKind.SingleLineCommentTrivia ||\n comment.hasTrailingNewLine === true;\n return (0, doc_1.concat)([\n comment.hasLeadingNewLine === true ? doc_1.hardline : \" \",\n this.commentBody(comment),\n newLine ? doc_1.hardline : \"\",\n ]);\n }\n /** Render the delimited comment body, re-flowing embedded line breaks. */\n commentBody(comment) {\n if (comment.kind === syntax_1.SyntaxKind.SingleLineCommentTrivia)\n return (0, doc_1.concat)([\"//\", comment.text]);\n // re-emit embedded newlines as hardlines so each line re-indents in place\n return (0, doc_1.concat)([\n \"/*\",\n (0, doc_1.join)(doc_1.hardline, comment.text.replace(/\\r\\n?/g, \"\\n\").split(\"\\n\")),\n \"*/\",\n ]);\n }\n emitNode(node) {\n switch (node.kind) {\n /* names & tokens */\n case \"Identifier\":\n return node.text;\n case \"PrivateIdentifier\":\n return node.text;\n case \"QualifiedName\":\n return (0, doc_1.concat)([this.emit(node.left), \".\", this.emit(node.right)]);\n case \"Token\":\n return node.token;\n case \"Decorator\":\n return (0, doc_1.concat)([\"@\", this.emit(node.expression)]);\n /* literals */\n case \"StringLiteral\":\n return escapeString(node.text, node.singleQuote);\n case \"NumericLiteral\":\n return node.text;\n case \"BigIntLiteral\":\n return node.text;\n /* expressions */\n case \"ArrayLiteralExpression\":\n return this.delim(\"[\", node.elements.map((e) => this.emit(e)), \"]\", { trailingComma: true, forceBreak: node.multiLine === true });\n case \"ObjectLiteralExpression\":\n return this.delim(\"{\", node.properties.map((p) => this.emit(p)), \"}\", {\n space: true,\n trailingComma: true,\n forceBreak: node.multiLine === true,\n });\n case \"PropertyAssignment\":\n return (0, doc_1.concat)([\n this.emit(node.name),\n \": \",\n this.emit(node.initializer),\n ]);\n case \"ShorthandPropertyAssignment\":\n return (0, doc_1.concat)([\n this.emit(node.name),\n node.objectAssignmentInitializer\n ? (0, doc_1.concat)([\" = \", this.emit(node.objectAssignmentInitializer)])\n : \"\",\n ]);\n case \"SpreadAssignment\":\n return (0, doc_1.concat)([\"...\", this.emit(node.expression)]);\n case \"PropertyAccessExpression\":\n return (0, doc_1.concat)([this.emit(node.expression), \".\", this.emit(node.name)]);\n case \"ElementAccessExpression\":\n return (0, doc_1.concat)([\n this.emit(node.expression),\n \"[\",\n this.emit(node.argumentExpression),\n \"]\",\n ]);\n case \"CallExpression\":\n return (0, doc_1.concat)([\n this.emit(node.expression),\n this.typeArguments(node.typeArguments),\n this.params(node.arguments),\n ]);\n case \"NewExpression\":\n return (0, doc_1.concat)([\n \"new \",\n this.emit(node.expression),\n this.typeArguments(node.typeArguments),\n this.params(node.arguments ?? []),\n ]);\n case \"ParenthesizedExpression\":\n return (0, doc_1.concat)([\"(\", this.emit(node.expression), \")\"]);\n case \"BinaryExpression\":\n return (0, doc_1.group)((0, doc_1.concat)([\n this.emit(node.left),\n \" \",\n node.operator,\n (0, doc_1.indent)((0, doc_1.concat)([doc_1.line, this.emit(node.right)])),\n ]));\n case \"PrefixUnaryExpression\":\n return (0, doc_1.concat)([node.operator, this.emit(node.operand)]);\n case \"PostfixUnaryExpression\":\n return (0, doc_1.concat)([this.emit(node.operand), node.operator]);\n case \"ConditionalExpression\":\n return (0, doc_1.group)((0, doc_1.concat)([\n this.emit(node.condition),\n (0, doc_1.indent)((0, doc_1.concat)([\n doc_1.line,\n \"? \",\n this.emit(node.whenTrue),\n doc_1.line,\n \": \",\n this.emit(node.whenFalse),\n ])),\n ]));\n case \"ArrowFunction\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, false),\n this.typeArguments(node.typeParameters),\n this.params(node.parameters),\n this.optType(node.type),\n \" => \",\n this.emit(node.body),\n ]);\n case \"FunctionExpression\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, false),\n \"function\",\n node.asteriskToken ? \"*\" : \"\",\n node.name ? (0, doc_1.concat)([\" \", this.emit(node.name)]) : \" \",\n this.typeArguments(node.typeParameters),\n this.params(node.parameters),\n this.optType(node.type),\n \" \",\n this.emit(node.body),\n ]);\n case \"AsExpression\":\n return (0, doc_1.concat)([\n this.emit(node.expression),\n \" as \",\n this.emit(node.type),\n ]);\n case \"SatisfiesExpression\":\n return (0, doc_1.concat)([\n this.emit(node.expression),\n \" satisfies \",\n this.emit(node.type),\n ]);\n case \"NonNullExpression\":\n return (0, doc_1.concat)([this.emit(node.expression), \"!\"]);\n case \"SpreadElement\":\n return (0, doc_1.concat)([\"...\", this.emit(node.expression)]);\n case \"AwaitExpression\":\n return (0, doc_1.concat)([\"await \", this.emit(node.expression)]);\n case \"TypeOfExpression\":\n return (0, doc_1.concat)([\"typeof \", this.emit(node.expression)]);\n /* types */\n case \"KeywordTypeNode\":\n return node.keyword;\n case \"TypeReferenceNode\":\n return (0, doc_1.concat)([\n this.emit(node.typeName),\n this.typeArguments(node.typeArguments),\n ]);\n case \"ArrayTypeNode\":\n return (0, doc_1.concat)([this.postfixTypeOperand(node.elementType), \"[]\"]);\n case \"UnionTypeNode\":\n return this.binaryType(\"|\", node.types.map((t) => this.emit(t)));\n case \"IntersectionTypeNode\":\n return this.binaryType(\"&\", node.types.map((t) => this.emit(t)));\n case \"LiteralTypeNode\":\n return this.emit(node.literal);\n case \"TypeLiteralNode\":\n return this.memberBlock(node.members, false);\n case \"FunctionTypeNode\":\n return (0, doc_1.concat)([\n this.typeArguments(node.typeParameters),\n this.params(node.parameters),\n \" => \",\n this.emit(node.type),\n ]);\n case \"TupleTypeNode\":\n return this.delim(\"[\", node.elements.map((e) => this.emit(e)), \"]\", {\n trailingComma: true,\n });\n case \"ParenthesizedTypeNode\":\n return (0, doc_1.concat)([\"(\", this.emit(node.type), \")\"]);\n case \"TypeOperatorNode\":\n return (0, doc_1.concat)([node.operator, \" \", this.emit(node.type)]);\n case \"IndexedAccessTypeNode\":\n return (0, doc_1.concat)([\n this.postfixTypeOperand(node.objectType),\n \"[\",\n this.emit(node.indexType),\n \"]\",\n ]);\n case \"TypeQueryNode\":\n return (0, doc_1.concat)([\"typeof \", this.emit(node.exprName)]);\n case \"ExpressionWithTypeArguments\":\n return (0, doc_1.concat)([\n this.emit(node.expression),\n this.typeArguments(node.typeArguments),\n ]);\n case \"PropertySignature\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, false),\n this.emit(node.name),\n node.questionToken ? \"?\" : \"\",\n this.optType(node.type),\n ]);\n case \"IndexSignature\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, false),\n \"[\",\n (0, doc_1.join)(\", \", node.parameters.map((p) => this.emit(p))),\n \"]: \",\n this.emit(node.type),\n ]);\n case \"MethodSignature\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, false),\n this.emit(node.name),\n node.questionToken ? \"?\" : \"\",\n this.typeArguments(node.typeParameters),\n this.params(node.parameters),\n this.optType(node.type),\n ]);\n case \"TypeParameterDeclaration\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, false),\n this.emit(node.name),\n node.constraint\n ? (0, doc_1.concat)([\" extends \", this.emit(node.constraint)])\n : \"\",\n node.default ? (0, doc_1.concat)([\" = \", this.emit(node.default)]) : \"\",\n ]);\n /* support */\n case \"ParameterDeclaration\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, false),\n node.dotDotDotToken ? \"...\" : \"\",\n this.emit(node.name),\n node.questionToken ? \"?\" : \"\",\n this.optType(node.type),\n node.initializer ? (0, doc_1.concat)([\" = \", this.emit(node.initializer)]) : \"\",\n ]);\n case \"HeritageClause\":\n return (0, doc_1.concat)([\n node.token,\n \" \",\n (0, doc_1.join)(\", \", node.types.map((t) => this.emit(t))),\n ]);\n /* statements */\n case \"VariableStatement\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, false),\n this.emit(node.declarationList),\n \";\",\n ]);\n case \"VariableDeclarationList\": {\n const keyword = node.flags === syntax_1.NodeFlags.Const\n ? \"const\"\n : node.flags === syntax_1.NodeFlags.Let\n ? \"let\"\n : \"var\";\n return (0, doc_1.concat)([\n keyword,\n \" \",\n (0, doc_1.join)(\", \", node.declarations.map((d) => this.emit(d))),\n ]);\n }\n case \"VariableDeclaration\":\n return (0, doc_1.concat)([\n this.emit(node.name),\n node.exclamationToken ? \"!\" : \"\",\n this.optType(node.type),\n node.initializer ? (0, doc_1.concat)([\" = \", this.emit(node.initializer)]) : \"\",\n ]);\n case \"ExpressionStatement\":\n return (0, doc_1.concat)([this.emit(node.expression), \";\"]);\n case \"ReturnStatement\":\n return node.expression\n ? (0, doc_1.concat)([\"return \", this.emit(node.expression), \";\"])\n : \"return;\";\n case \"ThrowStatement\":\n return (0, doc_1.concat)([\"throw \", this.emit(node.expression), \";\"]);\n case \"IfStatement\":\n return (0, doc_1.concat)([\n \"if (\",\n this.emit(node.expression),\n \") \",\n this.emit(node.thenStatement),\n node.elseStatement\n ? (0, doc_1.concat)([\" else \", this.emit(node.elseStatement)])\n : \"\",\n ]);\n case \"Block\":\n return this.statementBlock(node.statements.map((s) => this.emit(s)));\n /* declarations */\n case \"FunctionDeclaration\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, true),\n \"function\",\n node.asteriskToken ? \"*\" : \"\",\n \" \",\n node.name ? this.emit(node.name) : \"\",\n this.typeArguments(node.typeParameters),\n this.params(node.parameters),\n this.optType(node.type),\n this.optBody(node.body),\n ]);\n case \"ClassDeclaration\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, true),\n \"class\",\n node.name ? (0, doc_1.concat)([\" \", this.emit(node.name)]) : \"\",\n this.typeArguments(node.typeParameters),\n this.heritage(node.heritageClauses),\n \" \",\n this.statementBlock(node.members.map((m) => this.emit(m))),\n ]);\n case \"PropertyDeclaration\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, true),\n this.emit(node.name),\n node.questionOrExclamationToken\n ? this.emit(node.questionOrExclamationToken)\n : \"\",\n this.optType(node.type),\n node.initializer ? (0, doc_1.concat)([\" = \", this.emit(node.initializer)]) : \"\",\n \";\",\n ]);\n case \"MethodDeclaration\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, true),\n node.asteriskToken ? \"*\" : \"\",\n this.emit(node.name),\n node.questionToken ? \"?\" : \"\",\n this.typeArguments(node.typeParameters),\n this.params(node.parameters),\n this.optType(node.type),\n this.optBody(node.body),\n ]);\n case \"ConstructorDeclaration\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, true),\n \"constructor\",\n this.params(node.parameters),\n this.optBody(node.body),\n ]);\n case \"GetAccessorDeclaration\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, true),\n \"get \",\n this.emit(node.name),\n this.params(node.parameters),\n this.optType(node.type),\n this.optBody(node.body),\n ]);\n case \"SetAccessorDeclaration\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, true),\n \"set \",\n this.emit(node.name),\n this.params(node.parameters),\n this.optBody(node.body),\n ]);\n case \"InterfaceDeclaration\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, true),\n \"interface \",\n this.emit(node.name),\n this.typeArguments(node.typeParameters),\n this.heritage(node.heritageClauses),\n \" \",\n this.memberBlock(node.members, true),\n ]);\n case \"TypeAliasDeclaration\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, true),\n \"type \",\n this.emit(node.name),\n this.typeArguments(node.typeParameters),\n \" = \",\n this.emit(node.type),\n \";\",\n ]);\n case \"EnumDeclaration\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, true),\n \"enum \",\n this.emit(node.name),\n \" \",\n node.members.length === 0\n ? \"{}\"\n : (0, doc_1.concat)([\n \"{\",\n (0, doc_1.indent)((0, doc_1.concat)([\n doc_1.hardline,\n (0, doc_1.join)((0, doc_1.concat)([\",\", doc_1.hardline]), node.members.map((m) => this.emit(m))),\n \",\",\n ])),\n doc_1.hardline,\n \"}\",\n ]),\n ]);\n case \"EnumMember\":\n return (0, doc_1.concat)([\n this.emit(node.name),\n node.initializer ? (0, doc_1.concat)([\" = \", this.emit(node.initializer)]) : \"\",\n ]);\n /* imports & exports */\n case \"ImportDeclaration\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, false),\n \"import \",\n node.importClause\n ? (0, doc_1.concat)([this.emit(node.importClause), \" from \"])\n : \"\",\n this.emit(node.moduleSpecifier),\n \";\",\n ]);\n case \"ImportClause\": {\n const named = [];\n if (node.name)\n named.push(this.emit(node.name));\n if (node.namedBindings)\n named.push(this.emit(node.namedBindings));\n return (0, doc_1.concat)([node.isTypeOnly ? \"type \" : \"\", (0, doc_1.join)(\", \", named)]);\n }\n case \"NamedImports\":\n return this.delim(\"{\", node.elements.map((e) => this.emit(e)), \"}\", { space: true, trailingComma: true });\n case \"ImportSpecifier\":\n return (0, doc_1.concat)([\n node.isTypeOnly ? \"type \" : \"\",\n node.propertyName\n ? (0, doc_1.concat)([this.emit(node.propertyName), \" as \"])\n : \"\",\n this.emit(node.name),\n ]);\n case \"NamespaceImport\":\n return (0, doc_1.concat)([\"* as \", this.emit(node.name)]);\n case \"ExportDeclaration\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, false),\n \"export \",\n node.isTypeOnly ? \"type \" : \"\",\n node.exportClause ? this.emit(node.exportClause) : \"*\",\n node.moduleSpecifier\n ? (0, doc_1.concat)([\" from \", this.emit(node.moduleSpecifier)])\n : \"\",\n \";\",\n ]);\n case \"NamedExports\":\n return this.delim(\"{\", node.elements.map((e) => this.emit(e)), \"}\", { space: true, trailingComma: true });\n case \"ExportSpecifier\":\n return (0, doc_1.concat)([\n node.isTypeOnly ? \"type \" : \"\",\n node.propertyName\n ? (0, doc_1.concat)([this.emit(node.propertyName), \" as \"])\n : \"\",\n this.emit(node.name),\n ]);\n case \"ExportAssignment\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, false),\n node.isExportEquals ? \"export = \" : \"export default \",\n this.emit(node.expression),\n \";\",\n ]);\n /* source file */\n case \"SourceFile\":\n return (0, doc_1.concat)([\n (0, doc_1.join)(doc_1.hardline, node.statements.map((s) => this.emit(s))),\n doc_1.hardline,\n ]);\n /* loops & flow */\n case \"ForStatement\":\n return (0, doc_1.concat)([\n \"for (\",\n node.initializer ? this.emit(node.initializer) : \"\",\n \"; \",\n node.condition ? this.emit(node.condition) : \"\",\n \"; \",\n node.incrementor ? this.emit(node.incrementor) : \"\",\n \") \",\n this.emit(node.statement),\n ]);\n case \"ForInStatement\":\n return (0, doc_1.concat)([\n \"for (\",\n this.emit(node.initializer),\n \" in \",\n this.emit(node.expression),\n \") \",\n this.emit(node.statement),\n ]);\n case \"ForOfStatement\":\n return (0, doc_1.concat)([\n \"for \",\n node.awaitModifier ? \"await \" : \"\",\n \"(\",\n this.emit(node.initializer),\n \" of \",\n this.emit(node.expression),\n \") \",\n this.emit(node.statement),\n ]);\n case \"WhileStatement\":\n return (0, doc_1.concat)([\n \"while (\",\n this.emit(node.expression),\n \") \",\n this.emit(node.statement),\n ]);\n case \"DoStatement\":\n return (0, doc_1.concat)([\n \"do \",\n this.emit(node.statement),\n \" while (\",\n this.emit(node.expression),\n \");\",\n ]);\n case \"SwitchStatement\":\n return (0, doc_1.concat)([\n \"switch (\",\n this.emit(node.expression),\n \") \",\n this.emit(node.caseBlock),\n ]);\n case \"CaseBlock\":\n return node.clauses.length === 0\n ? \"{}\"\n : (0, doc_1.concat)([\n \"{\",\n (0, doc_1.indent)((0, doc_1.concat)([\n doc_1.hardline,\n (0, doc_1.join)(doc_1.hardline, node.clauses.map((c) => this.emit(c))),\n ])),\n doc_1.hardline,\n \"}\",\n ]);\n case \"CaseClause\":\n return (0, doc_1.concat)([\n \"case \",\n this.emit(node.expression),\n \":\",\n node.statements.length\n ? (0, doc_1.indent)((0, doc_1.concat)([\n doc_1.hardline,\n (0, doc_1.join)(doc_1.hardline, node.statements.map((s) => this.emit(s))),\n ]))\n : \"\",\n ]);\n case \"DefaultClause\":\n return (0, doc_1.concat)([\n \"default:\",\n node.statements.length\n ? (0, doc_1.indent)((0, doc_1.concat)([\n doc_1.hardline,\n (0, doc_1.join)(doc_1.hardline, node.statements.map((s) => this.emit(s))),\n ]))\n : \"\",\n ]);\n case \"BreakStatement\":\n return node.label\n ? (0, doc_1.concat)([\"break \", this.emit(node.label), \";\"])\n : \"break;\";\n case \"ContinueStatement\":\n return node.label\n ? (0, doc_1.concat)([\"continue \", this.emit(node.label), \";\"])\n : \"continue;\";\n case \"TryStatement\":\n return (0, doc_1.concat)([\n \"try \",\n this.emit(node.tryBlock),\n node.catchClause ? (0, doc_1.concat)([\" \", this.emit(node.catchClause)]) : \"\",\n node.finallyBlock\n ? (0, doc_1.concat)([\" finally \", this.emit(node.finallyBlock)])\n : \"\",\n ]);\n case \"CatchClause\":\n return node.variableDeclaration\n ? (0, doc_1.concat)([\n \"catch (\",\n this.emit(node.variableDeclaration),\n \") \",\n this.emit(node.block),\n ])\n : (0, doc_1.concat)([\"catch \", this.emit(node.block)]);\n case \"LabeledStatement\":\n return (0, doc_1.concat)([this.emit(node.label), \": \", this.emit(node.statement)]);\n case \"WithStatement\":\n return (0, doc_1.concat)([\n \"with (\",\n this.emit(node.expression),\n \") \",\n this.emit(node.statement),\n ]);\n case \"DebuggerStatement\":\n return \"debugger;\";\n case \"EmptyStatement\":\n return \";\";\n /* modules & namespaces */\n case \"ModuleDeclaration\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, true),\n node.name.kind === \"StringLiteral\" ? \"module \" : \"namespace \",\n this.emit(node.name),\n node.body ? (0, doc_1.concat)([\" \", this.emit(node.body)]) : \";\",\n ]);\n case \"ModuleBlock\":\n return this.statementBlock(node.statements.map((s) => this.emit(s)));\n case \"ClassStaticBlockDeclaration\":\n return (0, doc_1.concat)([\"static \", this.emit(node.body)]);\n case \"ImportEqualsDeclaration\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, false),\n \"import \",\n node.isTypeOnly ? \"type \" : \"\",\n this.emit(node.name),\n \" = \",\n this.emit(node.moduleReference),\n \";\",\n ]);\n case \"ExternalModuleReference\":\n return (0, doc_1.concat)([\"require(\", this.emit(node.expression), \")\"]);\n case \"NamespaceExportDeclaration\":\n return (0, doc_1.concat)([\"export as namespace \", this.emit(node.name), \";\"]);\n case \"SemicolonClassElement\":\n return \";\";\n case \"NamespaceExport\":\n return (0, doc_1.concat)([\"* as \", this.emit(node.name)]);\n /* advanced types */\n case \"ThisTypeNode\":\n return \"this\";\n case \"ConstructorTypeNode\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, false),\n \"new \",\n this.typeArguments(node.typeParameters),\n this.params(node.parameters),\n \" => \",\n this.emit(node.type),\n ]);\n case \"TypePredicateNode\":\n return (0, doc_1.concat)([\n node.assertsModifier ? \"asserts \" : \"\",\n this.emit(node.parameterName),\n node.type ? (0, doc_1.concat)([\" is \", this.emit(node.type)]) : \"\",\n ]);\n case \"ConditionalTypeNode\":\n return (0, doc_1.concat)([\n this.emit(node.checkType),\n \" extends \",\n this.emit(node.extendsType),\n \" ? \",\n this.emit(node.trueType),\n \" : \",\n this.emit(node.falseType),\n ]);\n case \"InferTypeNode\":\n return (0, doc_1.concat)([\"infer \", this.emit(node.typeParameter)]);\n case \"MappedTypeNode\": {\n const ro = node.readonlyToken\n ? node.readonlyToken.token === \"readonly\"\n ? \"readonly \"\n : `${node.readonlyToken.token}readonly `\n : \"\";\n const q = node.questionToken\n ? node.questionToken.token === \"?\"\n ? \"?\"\n : `${node.questionToken.token}?`\n : \"\";\n return (0, doc_1.concat)([\n \"{ \",\n ro,\n \"[\",\n this.emit(node.typeParameter.name),\n \" in \",\n node.typeParameter.constraint\n ? this.emit(node.typeParameter.constraint)\n : \"\",\n node.nameType ? (0, doc_1.concat)([\" as \", this.emit(node.nameType)]) : \"\",\n \"]\",\n q,\n node.type ? (0, doc_1.concat)([\": \", this.emit(node.type)]) : \"\",\n \" }\",\n ]);\n }\n case \"TemplateLiteralType\":\n return (0, doc_1.concat)([\n this.emit(node.head),\n (0, doc_1.concat)(node.templateSpans.map((s) => this.emit(s))),\n ]);\n case \"TemplateLiteralTypeSpan\":\n return (0, doc_1.concat)([this.emit(node.type), this.emit(node.literal)]);\n case \"NamedTupleMember\":\n return (0, doc_1.concat)([\n node.dotDotDotToken ? \"...\" : \"\",\n this.emit(node.name),\n node.questionToken ? \"?\" : \"\",\n \": \",\n this.emit(node.type),\n ]);\n case \"OptionalTypeNode\":\n return (0, doc_1.concat)([this.emit(node.type), \"?\"]);\n case \"RestTypeNode\":\n return (0, doc_1.concat)([\"...\", this.emit(node.type)]);\n case \"ImportTypeNode\":\n return (0, doc_1.concat)([\n node.isTypeOf ? \"typeof \" : \"\",\n \"import(\",\n this.emit(node.argument),\n \")\",\n node.qualifier ? (0, doc_1.concat)([\".\", this.emit(node.qualifier)]) : \"\",\n this.typeArguments(node.typeArguments),\n ]);\n case \"CallSignature\":\n return (0, doc_1.concat)([\n this.typeArguments(node.typeParameters),\n this.params(node.parameters),\n this.optType(node.type),\n ]);\n case \"ConstructSignature\":\n return (0, doc_1.concat)([\n \"new \",\n this.typeArguments(node.typeParameters),\n this.params(node.parameters),\n this.optType(node.type),\n ]);\n /* template literals */\n case \"TemplateHead\":\n return (0, doc_1.concat)([\"`\", node.text, \"${\"]);\n case \"TemplateMiddle\":\n return (0, doc_1.concat)([\"}\", node.text, \"${\"]);\n case \"TemplateTail\":\n return (0, doc_1.concat)([\"}\", node.text, \"`\"]);\n case \"NoSubstitutionTemplateLiteral\":\n return (0, doc_1.concat)([\"`\", node.text, \"`\"]);\n /* template & misc expressions */\n case \"TemplateExpression\":\n return (0, doc_1.concat)([\n this.emit(node.head),\n (0, doc_1.concat)(node.templateSpans.map((s) => this.emit(s))),\n ]);\n case \"TemplateSpan\":\n return (0, doc_1.concat)([this.emit(node.expression), this.emit(node.literal)]);\n case \"TaggedTemplateExpression\":\n return (0, doc_1.concat)([\n this.emit(node.tag),\n this.typeArguments(node.typeArguments),\n this.emit(node.template),\n ]);\n case \"YieldExpression\":\n return (0, doc_1.concat)([\n \"yield\",\n node.asteriskToken ? \"*\" : \"\",\n node.expression ? (0, doc_1.concat)([\" \", this.emit(node.expression)]) : \"\",\n ]);\n case \"DeleteExpression\":\n return (0, doc_1.concat)([\"delete \", this.emit(node.expression)]);\n case \"VoidExpression\":\n return (0, doc_1.concat)([\"void \", this.emit(node.expression)]);\n case \"RegularExpressionLiteral\":\n return node.text;\n case \"ClassExpression\":\n return (0, doc_1.concat)([\n this.modifiers(node.modifiers, true),\n \"class\",\n node.name ? (0, doc_1.concat)([\" \", this.emit(node.name)]) : \"\",\n this.typeArguments(node.typeParameters),\n this.heritage(node.heritageClauses),\n \" \",\n this.statementBlock(node.members.map((m) => this.emit(m))),\n ]);\n case \"MetaProperty\":\n return (0, doc_1.concat)([node.keywordToken, \".\", this.emit(node.name)]);\n case \"CommaListExpression\":\n return (0, doc_1.join)(\", \", node.elements.map((e) => this.emit(e)));\n case \"ComputedPropertyName\":\n return (0, doc_1.concat)([\"[\", this.emit(node.expression), \"]\"]);\n case \"OmittedExpression\":\n return \"\";\n case \"BindingElement\":\n return (0, doc_1.concat)([\n node.dotDotDotToken ? \"...\" : \"\",\n node.propertyName ? (0, doc_1.concat)([this.emit(node.propertyName), \": \"]) : \"\",\n this.emit(node.name),\n node.initializer ? (0, doc_1.concat)([\" = \", this.emit(node.initializer)]) : \"\",\n ]);\n case \"ObjectBindingPattern\":\n return this.delim(\"{\", node.elements.map((e) => this.emit(e)), \"}\", { space: true, trailingComma: true });\n case \"ArrayBindingPattern\":\n return this.delim(\"[\", node.elements.map((e) => this.emit(e)), \"]\", { trailingComma: true });\n case \"TypeAssertion\":\n return (0, doc_1.concat)([\n \"<\",\n this.emit(node.type),\n \">\",\n this.emit(node.expression),\n ]);\n case \"PropertyAccessChain\":\n return (0, doc_1.concat)([\n this.emit(node.expression),\n node.questionDotToken ? \"?.\" : \".\",\n this.emit(node.name),\n ]);\n case \"ElementAccessChain\":\n return (0, doc_1.concat)([\n this.emit(node.expression),\n node.questionDotToken ? \"?.\" : \"\",\n \"[\",\n this.emit(node.argumentExpression),\n \"]\",\n ]);\n case \"CallChain\":\n return (0, doc_1.concat)([\n this.emit(node.expression),\n node.questionDotToken ? \"?.\" : \"\",\n this.typeArguments(node.typeArguments),\n this.params(node.arguments),\n ]);\n case \"NonNullChain\":\n return (0, doc_1.concat)([this.emit(node.expression), \"!\"]);\n /* jsx */\n case \"JsxElement\":\n return (0, doc_1.group)((0, doc_1.concat)([\n this.emit(node.openingElement),\n (0, doc_1.indent)((0, doc_1.concat)(node.children.map((c) => (0, doc_1.concat)([doc_1.softline, this.emit(c)])))),\n doc_1.softline,\n this.emit(node.closingElement),\n ]));\n case \"JsxSelfClosingElement\":\n return (0, doc_1.concat)([\n \"<\",\n this.emit(node.tagName),\n this.typeArguments(node.typeArguments),\n this.emit(node.attributes),\n \" />\",\n ]);\n case \"JsxOpeningElement\":\n return (0, doc_1.concat)([\n \"<\",\n this.emit(node.tagName),\n this.typeArguments(node.typeArguments),\n this.emit(node.attributes),\n \">\",\n ]);\n case \"JsxClosingElement\":\n return (0, doc_1.concat)([\"</\", this.emit(node.tagName), \">\"]);\n case \"JsxFragment\":\n return (0, doc_1.group)((0, doc_1.concat)([\n this.emit(node.openingFragment),\n (0, doc_1.indent)((0, doc_1.concat)(node.children.map((c) => (0, doc_1.concat)([doc_1.softline, this.emit(c)])))),\n doc_1.softline,\n this.emit(node.closingFragment),\n ]));\n case \"JsxOpeningFragment\":\n return \"<>\";\n case \"JsxClosingFragment\":\n return \"</>\";\n case \"JsxText\":\n return node.text;\n case \"JsxAttribute\":\n return node.initializer === undefined\n ? this.emit(node.name)\n : (0, doc_1.concat)([this.emit(node.name), \"=\", this.emit(node.initializer)]);\n case \"JsxAttributes\":\n return node.properties.length === 0\n ? \"\"\n : (0, doc_1.concat)(node.properties.map((p) => (0, doc_1.concat)([\" \", this.emit(p)])));\n case \"JsxSpreadAttribute\":\n return (0, doc_1.concat)([\"{...\", this.emit(node.expression), \"}\"]);\n case \"JsxExpression\":\n return (0, doc_1.concat)([\n \"{\",\n node.dotDotDotToken ? \"...\" : \"\",\n node.expression ? this.emit(node.expression) : \"\",\n \"}\",\n ]);\n case \"JsxNamespacedName\":\n return (0, doc_1.concat)([this.emit(node.namespace), \":\", this.emit(node.name)]);\n /* synthetic / emit-internal */\n case \"Bundle\":\n return (0, doc_1.join)(doc_1.hardline, node.sourceFiles.map((s) => this.emit(s)));\n case \"PartiallyEmittedExpression\":\n return this.emit(node.expression);\n case \"ImportAttribute\":\n return (0, doc_1.concat)([this.emit(node.name), \": \", this.emit(node.value)]);\n case \"ImportAttributes\":\n return node.elements.length === 0\n ? (0, doc_1.concat)([node.token, \" {}\"])\n : (0, doc_1.concat)([\n node.token,\n \" { \",\n (0, doc_1.join)(\", \", node.elements.map((e) => this.emit(e))),\n \" }\",\n ]);\n case \"NotEmittedStatement\":\n case \"NotEmittedTypeElement\":\n return \"\";\n /* jsdoc — types */\n case \"JSDocAllType\":\n return \"*\";\n case \"JSDocUnknownType\":\n return \"?\";\n case \"JSDocNonNullableType\":\n return node.postfix\n ? (0, doc_1.concat)([this.emit(node.type), \"!\"])\n : (0, doc_1.concat)([\"!\", this.emit(node.type)]);\n case \"JSDocNullableType\":\n return node.postfix\n ? (0, doc_1.concat)([this.emit(node.type), \"?\"])\n : (0, doc_1.concat)([\"?\", this.emit(node.type)]);\n case \"JSDocOptionalType\":\n return (0, doc_1.concat)([this.emit(node.type), \"=\"]);\n case \"JSDocVariadicType\":\n return (0, doc_1.concat)([\"...\", this.emit(node.type)]);\n case \"JSDocNamepathType\":\n return this.emit(node.type);\n case \"JSDocFunctionType\":\n return (0, doc_1.concat)([\n \"function(\",\n (0, doc_1.join)(\", \", node.parameters.map((p) => this.emit(p))),\n \")\",\n node.type ? (0, doc_1.concat)([\": \", this.emit(node.type)]) : \"\",\n ]);\n case \"JSDocTypeExpression\":\n return (0, doc_1.concat)([\"{\", this.emit(node.type), \"}\"]);\n case \"JSDocNameReference\":\n return this.emit(node.name);\n case \"JSDocMemberName\":\n return (0, doc_1.concat)([this.emit(node.left), \"#\", this.emit(node.right)]);\n case \"JSDocLink\":\n return (0, doc_1.concat)([\n \"{@link \",\n node.name ? this.emit(node.name) : \"\",\n node.text,\n \"}\",\n ]);\n case \"JSDocLinkCode\":\n return (0, doc_1.concat)([\n \"{@linkcode \",\n node.name ? this.emit(node.name) : \"\",\n node.text,\n \"}\",\n ]);\n case \"JSDocLinkPlain\":\n return (0, doc_1.concat)([\n \"{@linkplain \",\n node.name ? this.emit(node.name) : \"\",\n node.text,\n \"}\",\n ]);\n case \"JSDocText\":\n return node.text;\n case \"JSDocTypeLiteral\":\n return (0, doc_1.concat)([\n (0, doc_1.join)(doc_1.hardline, (node.jsDocPropertyTags ?? []).map((t) => this.emit(t))),\n node.isArrayType ? \"[]\" : \"\",\n ]);\n case \"JSDocSignature\":\n return (0, doc_1.join)(doc_1.hardline, [\n ...(node.typeParameters ?? []),\n ...node.parameters,\n ...(node.type ? [node.type] : []),\n ].map((t) => this.emit(t)));\n case \"JSDoc\": {\n const body = node.comment === undefined\n ? \"\"\n : typeof node.comment === \"string\"\n ? node.comment\n : (0, doc_1.concat)(node.comment.map((c) => this.emit(c)));\n const lines = [(0, doc_1.concat)([\" * \", body])];\n for (const tag of node.tags ?? [])\n lines.push((0, doc_1.concat)([\" * \", this.emit(tag)]));\n return (0, doc_1.concat)([\n \"/**\",\n doc_1.hardline,\n (0, doc_1.join)(doc_1.hardline, lines),\n doc_1.hardline,\n \" */\",\n ]);\n }\n /* jsdoc — tags */\n case \"JSDocTypeTag\":\n case \"JSDocThisTag\":\n case \"JSDocEnumTag\":\n case \"JSDocSatisfiesTag\":\n return (0, doc_1.concat)([\n \"@\",\n this.emit(node.tagName),\n \" \",\n this.emit(node.typeExpression),\n this.jsDocComment(node.comment),\n ]);\n case \"JSDocReturnTag\":\n case \"JSDocThrowsTag\":\n return (0, doc_1.concat)([\n \"@\",\n this.emit(node.tagName),\n node.typeExpression\n ? (0, doc_1.concat)([\" \", this.emit(node.typeExpression)])\n : \"\",\n this.jsDocComment(node.comment),\n ]);\n case \"JSDocAuthorTag\":\n case \"JSDocClassTag\":\n case \"JSDocPublicTag\":\n case \"JSDocPrivateTag\":\n case \"JSDocProtectedTag\":\n case \"JSDocReadonlyTag\":\n case \"JSDocOverrideTag\":\n case \"JSDocDeprecatedTag\":\n case \"JSDocUnknownTag\":\n return (0, doc_1.concat)([\n \"@\",\n this.emit(node.tagName),\n this.jsDocComment(node.comment),\n ]);\n case \"JSDocAugmentsTag\":\n case \"JSDocImplementsTag\":\n return (0, doc_1.concat)([\n \"@\",\n this.emit(node.tagName),\n \" {\",\n this.emit(node.class),\n \"}\",\n this.jsDocComment(node.comment),\n ]);\n case \"JSDocParameterTag\":\n case \"JSDocPropertyTag\": {\n const name = node.isBracketed\n ? (0, doc_1.concat)([\"[\", this.emit(node.name), \"]\"])\n : this.emit(node.name);\n const type = node.typeExpression\n ? this.emit(node.typeExpression)\n : undefined;\n const main = node.isNameFirst\n ? (0, doc_1.concat)([name, type ? (0, doc_1.concat)([\" \", type]) : \"\"])\n : (0, doc_1.concat)([type ? (0, doc_1.concat)([type, \" \"]) : \"\", name]);\n return (0, doc_1.concat)([\n \"@\",\n this.emit(node.tagName),\n \" \",\n main,\n this.jsDocComment(node.comment),\n ]);\n }\n case \"JSDocSeeTag\":\n return (0, doc_1.concat)([\n \"@\",\n this.emit(node.tagName),\n node.name ? (0, doc_1.concat)([\" \", this.emit(node.name)]) : \"\",\n this.jsDocComment(node.comment),\n ]);\n case \"JSDocOverloadTag\":\n case \"JSDocCallbackTag\": {\n const full = node.kind === \"JSDocCallbackTag\" && node.fullName\n ? (0, doc_1.concat)([\" \", this.emit(node.fullName)])\n : \"\";\n return (0, doc_1.concat)([\n \"@\",\n this.emit(node.tagName),\n full,\n doc_1.hardline,\n this.emit(node.typeExpression),\n this.jsDocComment(node.comment),\n ]);\n }\n case \"JSDocImportTag\":\n return (0, doc_1.concat)([\n \"@\",\n this.emit(node.tagName),\n \" \",\n node.importClause\n ? (0, doc_1.concat)([this.emit(node.importClause), \" from \"])\n : \"\",\n this.emit(node.moduleSpecifier),\n this.jsDocComment(node.comment),\n ]);\n case \"JSDocTemplateTag\":\n return (0, doc_1.concat)([\n \"@\",\n this.emit(node.tagName),\n node.constraint ? (0, doc_1.concat)([\" \", this.emit(node.constraint)]) : \"\",\n \" \",\n (0, doc_1.join)(\", \", node.typeParameters.map((t) => this.emit(t))),\n this.jsDocComment(node.comment),\n ]);\n case \"JSDocTypedefTag\":\n return (0, doc_1.concat)([\n \"@\",\n this.emit(node.tagName),\n node.typeExpression\n ? (0, doc_1.concat)([\" \", this.emit(node.typeExpression)])\n : \"\",\n node.fullName ? (0, doc_1.concat)([\" \", this.emit(node.fullName)]) : \"\",\n this.jsDocComment(node.comment),\n ]);\n default:\n return this.unsupported(node);\n }\n }\n /**\n * Emit a type in the operand position of a postfix type (`T[]`, `T[K]`),\n * parenthesizing the lower-precedence type forms that would otherwise\n * re-associate — matching the legacy printer's parenthesizer rules.\n */\n postfixTypeOperand(type) {\n const parenthesize = type.kind === \"UnionTypeNode\" ||\n type.kind === \"IntersectionTypeNode\" ||\n type.kind === \"FunctionTypeNode\" ||\n type.kind === \"ConstructorTypeNode\" ||\n type.kind === \"ConditionalTypeNode\" ||\n type.kind === \"InferTypeNode\" ||\n type.kind === \"TypeOperatorNode\";\n return parenthesize ? (0, doc_1.concat)([\"(\", this.emit(type), \")\"]) : this.emit(type);\n }\n /** Render a JSDoc tag's trailing comment, prefixed with a space when present. */\n jsDocComment(comment) {\n if (comment === undefined)\n return \"\";\n if (typeof comment === \"string\")\n return comment.length ? (0, doc_1.concat)([\" \", comment]) : \"\";\n return comment.length\n ? (0, doc_1.concat)([\" \", (0, doc_1.concat)(comment.map((c) => this.emit(c)))])\n : \"\";\n }\n /** Width-aware `|` / `&` type list with leading-operator breaks. */\n binaryType(operator, parts) {\n if (parts.length === 1)\n return parts[0];\n return (0, doc_1.group)((0, doc_1.indent)((0, doc_1.concat)([\n (0, doc_1.ifBreak)((0, doc_1.concat)([doc_1.line, operator, \" \"])),\n (0, doc_1.join)((0, doc_1.concat)([doc_1.line, operator, \" \"]), parts),\n ])));\n }\n unsupported(node) {\n throw new Error(`@ttsc/factory: TsPrinter cannot print node of kind \"${node.kind}\".`);\n }\n}\nexports.TsPrinter = TsPrinter;\n//# sourceMappingURL=TsPrinter.js.map"],"names":[],"mappings":"AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,OAAO,CAAC,SAAS,GAAG,MAAM;AAC1B,MAAM,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC;AACxC,MAAM,KAAK,GAAG,OAAO,CAAC,gBAAgB,CAAC;AACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC;AACpC,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,WAAW,KAAK;AAC5C,IAAI,MAAM,OAAO,GAAG;AACpB,SAAS,OAAO,CAAC,KAAK,EAAE,MAAM;AAC9B,SAAS,OAAO,CAAC,KAAK,EAAE,KAAK;AAC7B,SAAS,OAAO,CAAC,KAAK,EAAE,KAAK;AAC7B,SAAS,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;AAC9B,IAAI,OAAO,WAAW,KAAK;AAC3B,UAAU,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AAC5C,UAAU,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,SAAS,CAAC;AAChB,IAAI,WAAW;AACf,IAAI,OAAO;AACX,IAAI,QAAQ;AACZ,IAAI,WAAW,CAAC,OAAO,GAAG,EAAE,EAAE;AAC9B,QAAQ,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE;AACnD,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI;AAC7C,QAAQ,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI;AAC/C,IAAI;AACJ;AACA,IAAI,KAAK,CAAC,IAAI,EAAE;AAChB,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3C,IAAI;AACJ;AACA,IAAI,UAAU,CAAC,KAAK,EAAE;AACtB,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3F,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,CAAC,UAAU,EAAE,UAAU,GAAG,EAAE,EAAE;AAC3C,QAAQ,MAAM,IAAI,GAAG;AACrB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU;AACxB,QAAQ,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ;AAC3G,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,CAAC,GAAG,EAAE;AAChB,QAAQ,OAAO,IAAI,KAAK,CAAC,gBAAgB,EAAE,GAAG,EAAE;AAChD,YAAY,UAAU,EAAE,IAAI,CAAC,WAAW;AACxC,YAAY,MAAM,EAAE,IAAI,CAAC,OAAO;AAChC,YAAY,OAAO,EAAE,IAAI,CAAC,QAAQ;AAClC,SAAS,CAAC;AACV,IAAI;AACJ;AACA,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE;AACzC,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;AAC9B,YAAY,OAAO,IAAI,GAAG,KAAK;AAC/B,QAAQ,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,QAAQ;AAC3D,QAAQ,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE;AAClD,YAAY,IAAI;AAChB,YAAY,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AACpH,YAAY,IAAI,CAAC,aAAa,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE;AAC7D,YAAY,EAAE;AACd,YAAY,KAAK;AACjB,SAAS,CAAC,EAAE,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC;AACrC,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE;AACrC,QAAQ,MAAM,KAAK,GAAG,EAAE;AACxB,QAAQ,IAAI,KAAK,GAAG,IAAI;AACxB,QAAQ,IAAI,KAAK,GAAG,KAAK;AACzB,QAAQ,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;AACtC,YAAY,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE;AAC9C,gBAAgB,KAAK,GAAG,IAAI;AAC5B,gBAAgB;AAChB,YAAY;AACZ,YAAY,IAAI,CAAC,KAAK;AACtB,gBAAgB,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC;AAC3C,YAAY,IAAI,KAAK,EAAE;AACvB,gBAAgB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;AAC1C,gBAAgB,KAAK,GAAG,KAAK;AAC7B,YAAY;AACZ,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACzC,YAAY,KAAK,GAAG,KAAK;AACzB,QAAQ;AACR,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;AAC9B,YAAY,OAAO,IAAI;AACvB,QAAQ,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE;AAClD,YAAY,GAAG;AACf,YAAY,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AACxF,YAAY,IAAI,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC;AACnC,YAAY,KAAK,CAAC,IAAI;AACtB,YAAY,GAAG;AACf,SAAS,CAAC,EAAE,UAAU,CAAC;AACvB,IAAI;AACJ;AACA,IAAI,cAAc,CAAC,KAAK,EAAE;AAC1B,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;AAC9B,YAAY,OAAO,IAAI;AACvB,QAAQ,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACjC,YAAY,GAAG;AACf,YAAY,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1G,YAAY,KAAK,CAAC,QAAQ;AAC1B,YAAY,GAAG;AACf,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,aAAa,CAAC,IAAI,EAAE;AACxB;AACA,QAAQ,OAAO,IAAI,IAAI,IAAI,CAAC;AAC5B,cAAc,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE;AAClE,gBAAgB,aAAa,EAAE,KAAK;AACpC,aAAa;AACb,cAAc,EAAE;AAChB,IAAI;AACJ,IAAI,MAAM,CAAC,MAAM,EAAE;AACnB,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE;AACrE,YAAY,aAAa,EAAE,IAAI;AAC/B,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,SAAS,CAAC,IAAI,EAAE,mBAAmB,EAAE;AACzC,QAAQ,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;AACtC,YAAY,OAAO,EAAE;AACrB,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC;AACrE,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC;AACjE,QAAQ,MAAM,KAAK,GAAG,EAAE;AACxB,QAAQ,MAAM,GAAG,GAAG,mBAAmB,GAAG,KAAK,CAAC,QAAQ,GAAG,GAAG;AAC9D,QAAQ,IAAI,UAAU,CAAC,MAAM;AAC7B,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;AACtF,QAAQ,IAAI,MAAM,CAAC,MAAM;AACzB,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;AAClF,QAAQ,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC;AACvC,IAAI;AACJ,IAAI,QAAQ,CAAC,OAAO,EAAE;AACtB,QAAQ,OAAO,OAAO,IAAI,OAAO,CAAC;AAClC,cAAc,IAAI,KAAK,CAAC,MAAM,EAAE;AAChC,gBAAgB,GAAG;AACnB,gBAAgB,IAAI,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACtE,aAAa;AACb,cAAc,EAAE;AAChB,IAAI;AACJ,IAAI,OAAO,CAAC,IAAI,EAAE;AAClB,QAAQ,OAAO,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE;AACrE,IAAI;AACJ,IAAI,OAAO,CAAC,IAAI,EAAE;AAClB,QAAQ,OAAO,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG;AACrE,IAAI;AACJ,IAAI,IAAI,CAAC,IAAI,EAAE;AACf,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACxC,QAAQ,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,2BAA2B,EAAE,IAAI,CAAC;AACzE,QAAQ,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,4BAA4B,EAAE,IAAI,CAAC;AAC3E,QAAQ,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;AAC1D,aAAa,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;AAC7D,YAAY,OAAO,IAAI;AACvB,QAAQ,MAAM,KAAK,GAAG,EAAE;AACxB,QAAQ,IAAI,OAAO,KAAK,SAAS;AACjC,YAAY,KAAK,MAAM,OAAO,IAAI,OAAO;AACzC,gBAAgB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;AACxD,QAAQ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,QAAQ,IAAI,QAAQ,KAAK,SAAS;AAClC,YAAY,KAAK,MAAM,OAAO,IAAI,QAAQ;AAC1C,gBAAgB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AACzD,QAAQ,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC;AACvC,IAAI;AACJ;AACA,IAAI,cAAc,CAAC,OAAO,EAAE;AAC5B;AACA,QAAQ,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,UAAU,CAAC,uBAAuB;AACpF,YAAY,OAAO,CAAC,kBAAkB,KAAK,IAAI;AAC/C,QAAQ,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC;AAC7F,IAAI;AACJ;AACA,IAAI,eAAe,CAAC,OAAO,EAAE;AAC7B,QAAQ,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,UAAU,CAAC,uBAAuB;AACpF,YAAY,OAAO,CAAC,kBAAkB,KAAK,IAAI;AAC/C,QAAQ,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACjC,YAAY,OAAO,CAAC,iBAAiB,KAAK,IAAI,GAAG,KAAK,CAAC,QAAQ,GAAG,GAAG;AACrE,YAAY,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;AACrC,YAAY,OAAO,GAAG,KAAK,CAAC,QAAQ,GAAG,EAAE;AACzC,SAAS,CAAC;AACV,IAAI;AACJ;AACA,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB,QAAQ,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,UAAU,CAAC,uBAAuB;AACxE,YAAY,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AAC1D;AACA,QAAQ,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACjC,YAAY,IAAI;AAChB,YAAY,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC7F,YAAY,IAAI;AAChB,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,QAAQ,CAAC,IAAI,EAAE;AACnB,QAAQ,QAAQ,IAAI,CAAC,IAAI;AACzB;AACA,YAAY,KAAK,YAAY;AAC7B,gBAAgB,OAAO,IAAI,CAAC,IAAI;AAChC,YAAY,KAAK,mBAAmB;AACpC,gBAAgB,OAAO,IAAI,CAAC,IAAI;AAChC,YAAY,KAAK,eAAe;AAChC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5F,YAAY,KAAK,OAAO;AACxB,gBAAgB,OAAO,IAAI,CAAC,KAAK;AACjC,YAAY,KAAK,WAAW;AAC5B,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AAC3E;AACA,YAAY,KAAK,eAAe;AAChC,gBAAgB,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC;AAChE,YAAY,KAAK,gBAAgB;AACjC,gBAAgB,OAAO,IAAI,CAAC,IAAI;AAChC,YAAY,KAAK,eAAe;AAChC,gBAAgB,OAAO,IAAI,CAAC,IAAI;AAChC;AACA,YAAY,KAAK,wBAAwB;AACzC,gBAAgB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;AACjJ,YAAY,KAAK,yBAAyB;AAC1C,gBAAgB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE;AACtF,oBAAoB,KAAK,EAAE,IAAI;AAC/B,oBAAoB,aAAa,EAAE,IAAI;AACvC,oBAAoB,UAAU,EAAE,IAAI,CAAC,SAAS,KAAK,IAAI;AACvD,iBAAiB,CAAC;AAClB,YAAY,KAAK,oBAAoB;AACrC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACxC,oBAAoB,IAAI;AACxB,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;AAC/C,iBAAiB,CAAC;AAClB,YAAY,KAAK,6BAA6B;AAC9C,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACxC,oBAAoB,IAAI,CAAC;AACzB,0BAA0B,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;AAChG,0BAA0B,EAAE;AAC5B,iBAAiB,CAAC;AAClB,YAAY,KAAK,kBAAkB;AACnC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AAC7E,YAAY,KAAK,0BAA0B;AAC3C,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACjG,YAAY,KAAK,yBAAyB;AAC1C,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AAC9C,oBAAoB,GAAG;AACvB,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC;AACtD,oBAAoB,GAAG;AACvB,iBAAiB,CAAC;AAClB,YAAY,KAAK,gBAAgB;AACjC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AAC9C,oBAAoB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC;AAC1D,oBAAoB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;AAC/C,iBAAiB,CAAC;AAClB,YAAY,KAAK,eAAe;AAChC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,MAAM;AAC1B,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AAC9C,oBAAoB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC;AAC1D,oBAAoB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;AACrD,iBAAiB,CAAC;AAClB,YAAY,KAAK,yBAAyB;AAC1C,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,CAAC;AAChF,YAAY,KAAK,kBAAkB;AACnC,gBAAgB,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE;AAC1D,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACxC,oBAAoB,GAAG;AACvB,oBAAoB,IAAI,CAAC,QAAQ;AACjC,oBAAoB,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7F,iBAAiB,CAAC,CAAC;AACnB,YAAY,KAAK,uBAAuB;AACxC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAClF,YAAY,KAAK,wBAAwB;AACzC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AAClF,YAAY,KAAK,uBAAuB;AACxC,gBAAgB,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE;AAC1D,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;AAC7C,oBAAoB,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE;AACxD,wBAAwB,KAAK,CAAC,IAAI;AAClC,wBAAwB,IAAI;AAC5B,wBAAwB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;AAChD,wBAAwB,KAAK,CAAC,IAAI;AAClC,wBAAwB,IAAI;AAC5B,wBAAwB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;AACjD,qBAAqB,CAAC,CAAC;AACvB,iBAAiB,CAAC,CAAC;AACnB,YAAY,KAAK,eAAe;AAChC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC;AACzD,oBAAoB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC;AAC3D,oBAAoB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;AAChD,oBAAoB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3C,oBAAoB,MAAM;AAC1B,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACxC,iBAAiB,CAAC;AAClB,YAAY,KAAK,oBAAoB;AACrC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC;AACzD,oBAAoB,UAAU;AAC9B,oBAAoB,IAAI,CAAC,aAAa,GAAG,GAAG,GAAG,EAAE;AACjD,oBAAoB,IAAI,CAAC,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG;AACpF,oBAAoB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC;AAC3D,oBAAoB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;AAChD,oBAAoB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3C,oBAAoB,GAAG;AACvB,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACxC,iBAAiB,CAAC;AAClB,YAAY,KAAK,cAAc;AAC/B,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AAC9C,oBAAoB,MAAM;AAC1B,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACxC,iBAAiB,CAAC;AAClB,YAAY,KAAK,qBAAqB;AACtC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AAC9C,oBAAoB,aAAa;AACjC,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACxC,iBAAiB,CAAC;AAClB,YAAY,KAAK,mBAAmB;AACpC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,CAAC;AAC3E,YAAY,KAAK,eAAe;AAChC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AAC7E,YAAY,KAAK,iBAAiB;AAClC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AAChF,YAAY,KAAK,kBAAkB;AACnC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AACjF;AACA,YAAY,KAAK,iBAAiB;AAClC,gBAAgB,OAAO,IAAI,CAAC,OAAO;AACnC,YAAY,KAAK,mBAAmB;AACpC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC5C,oBAAoB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC;AAC1D,iBAAiB,CAAC;AAClB,YAAY,KAAK,eAAe;AAChC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,CAAC;AAC3F,YAAY,KAAK,eAAe;AAChC,gBAAgB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAChF,YAAY,KAAK,sBAAsB;AACvC,gBAAgB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAChF,YAAY,KAAK,iBAAiB;AAClC,gBAAgB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;AAC9C,YAAY,KAAK,iBAAiB;AAClC,gBAAgB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC;AAC5D,YAAY,KAAK,kBAAkB;AACnC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC;AAC3D,oBAAoB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;AAChD,oBAAoB,MAAM;AAC1B,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACxC,iBAAiB,CAAC;AAClB,YAAY,KAAK,eAAe;AAChC,gBAAgB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE;AACpF,oBAAoB,aAAa,EAAE,IAAI;AACvC,iBAAiB,CAAC;AAClB,YAAY,KAAK,uBAAuB;AACxC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAC1E,YAAY,KAAK,kBAAkB;AACnC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACpF,YAAY,KAAK,uBAAuB;AACxC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;AAC5D,oBAAoB,GAAG;AACvB,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;AAC7C,oBAAoB,GAAG;AACvB,iBAAiB,CAAC;AAClB,YAAY,KAAK,eAAe;AAChC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC/E,YAAY,KAAK,6BAA6B;AAC9C,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AAC9C,oBAAoB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC;AAC1D,iBAAiB,CAAC;AAClB,YAAY,KAAK,mBAAmB;AACpC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC;AACzD,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACxC,oBAAoB,IAAI,CAAC,aAAa,GAAG,GAAG,GAAG,EAAE;AACjD,oBAAoB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3C,iBAAiB,CAAC;AAClB,YAAY,KAAK,gBAAgB;AACjC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC;AACzD,oBAAoB,GAAG;AACvB,oBAAoB,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACnF,oBAAoB,KAAK;AACzB,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACxC,iBAAiB,CAAC;AAClB,YAAY,KAAK,iBAAiB;AAClC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC;AACzD,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACxC,oBAAoB,IAAI,CAAC,aAAa,GAAG,GAAG,GAAG,EAAE;AACjD,oBAAoB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC;AAC3D,oBAAoB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;AAChD,oBAAoB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3C,iBAAiB,CAAC;AAClB,YAAY,KAAK,0BAA0B;AAC3C,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC;AACzD,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACxC,oBAAoB,IAAI,CAAC;AACzB,0BAA0B,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACrF,0BAA0B,EAAE;AAC5B,oBAAoB,IAAI,CAAC,OAAO,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE;AAC3F,iBAAiB,CAAC;AAClB;AACA,YAAY,KAAK,sBAAsB;AACvC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC;AACzD,oBAAoB,IAAI,CAAC,cAAc,GAAG,KAAK,GAAG,EAAE;AACpD,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACxC,oBAAoB,IAAI,CAAC,aAAa,GAAG,GAAG,GAAG,EAAE;AACjD,oBAAoB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3C,oBAAoB,IAAI,CAAC,WAAW,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE;AACnG,iBAAiB,CAAC;AAClB,YAAY,KAAK,gBAAgB;AACjC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,KAAK;AAC9B,oBAAoB,GAAG;AACvB,oBAAoB,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9E,iBAAiB,CAAC;AAClB;AACA,YAAY,KAAK,mBAAmB;AACpC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC;AACzD,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;AACnD,oBAAoB,GAAG;AACvB,iBAAiB,CAAC;AAClB,YAAY,KAAK,yBAAyB,EAAE;AAC5C,gBAAgB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,SAAS,CAAC;AAClE,sBAAsB;AACtB,sBAAsB,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,SAAS,CAAC;AACxD,0BAA0B;AAC1B,0BAA0B,KAAK;AAC/B,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,OAAO;AAC3B,oBAAoB,GAAG;AACvB,oBAAoB,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACrF,iBAAiB,CAAC;AAClB,YAAY;AACZ,YAAY,KAAK,qBAAqB;AACtC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACxC,oBAAoB,IAAI,CAAC,gBAAgB,GAAG,GAAG,GAAG,EAAE;AACpD,oBAAoB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3C,oBAAoB,IAAI,CAAC,WAAW,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE;AACnG,iBAAiB,CAAC;AAClB,YAAY,KAAK,qBAAqB;AACtC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,CAAC;AAC3E,YAAY,KAAK,iBAAiB;AAClC,gBAAgB,OAAO,IAAI,CAAC;AAC5B,sBAAsB,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC;AACpF,sBAAsB,SAAS;AAC/B,YAAY,KAAK,gBAAgB;AACjC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,CAAC;AACrF,YAAY,KAAK,aAAa;AAC9B,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,MAAM;AAC1B,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AAC9C,oBAAoB,IAAI;AACxB,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;AACjD,oBAAoB,IAAI,CAAC;AACzB,0BAA0B,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACrF,0BAA0B,EAAE;AAC5B,iBAAiB,CAAC;AAClB,YAAY,KAAK,OAAO;AACxB,gBAAgB,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACpF;AACA,YAAY,KAAK,qBAAqB;AACtC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC;AACxD,oBAAoB,UAAU;AAC9B,oBAAoB,IAAI,CAAC,aAAa,GAAG,GAAG,GAAG,EAAE;AACjD,oBAAoB,GAAG;AACvB,oBAAoB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AACzD,oBAAoB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC;AAC3D,oBAAoB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;AAChD,oBAAoB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3C,oBAAoB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3C,iBAAiB,CAAC;AAClB,YAAY,KAAK,kBAAkB;AACnC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC;AACxD,oBAAoB,OAAO;AAC3B,oBAAoB,IAAI,CAAC,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE;AACnF,oBAAoB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC;AAC3D,oBAAoB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC;AACvD,oBAAoB,GAAG;AACvB,oBAAoB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9E,iBAAiB,CAAC;AAClB,YAAY,KAAK,qBAAqB;AACtC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC;AACxD,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACxC,oBAAoB,IAAI,CAAC;AACzB,0BAA0B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B;AACnE,0BAA0B,EAAE;AAC5B,oBAAoB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3C,oBAAoB,IAAI,CAAC,WAAW,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE;AACnG,oBAAoB,GAAG;AACvB,iBAAiB,CAAC;AAClB,YAAY,KAAK,mBAAmB;AACpC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC;AACxD,oBAAoB,IAAI,CAAC,aAAa,GAAG,GAAG,GAAG,EAAE;AACjD,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACxC,oBAAoB,IAAI,CAAC,aAAa,GAAG,GAAG,GAAG,EAAE;AACjD,oBAAoB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC;AAC3D,oBAAoB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;AAChD,oBAAoB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3C,oBAAoB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3C,iBAAiB,CAAC;AAClB,YAAY,KAAK,wBAAwB;AACzC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC;AACxD,oBAAoB,aAAa;AACjC,oBAAoB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;AAChD,oBAAoB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3C,iBAAiB,CAAC;AAClB,YAAY,KAAK,wBAAwB;AACzC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC;AACxD,oBAAoB,MAAM;AAC1B,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACxC,oBAAoB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;AAChD,oBAAoB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3C,oBAAoB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3C,iBAAiB,CAAC;AAClB,YAAY,KAAK,wBAAwB;AACzC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC;AACxD,oBAAoB,MAAM;AAC1B,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACxC,oBAAoB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;AAChD,oBAAoB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3C,iBAAiB,CAAC;AAClB,YAAY,KAAK,sBAAsB;AACvC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC;AACxD,oBAAoB,YAAY;AAChC,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACxC,oBAAoB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC;AAC3D,oBAAoB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC;AACvD,oBAAoB,GAAG;AACvB,oBAAoB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC;AACxD,iBAAiB,CAAC;AAClB,YAAY,KAAK,sBAAsB;AACvC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC;AACxD,oBAAoB,OAAO;AAC3B,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACxC,oBAAoB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC;AAC3D,oBAAoB,KAAK;AACzB,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACxC,oBAAoB,GAAG;AACvB,iBAAiB,CAAC;AAClB,YAAY,KAAK,iBAAiB;AAClC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC;AACxD,oBAAoB,OAAO;AAC3B,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACxC,oBAAoB,GAAG;AACvB,oBAAoB,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK;AAC5C,0BAA0B;AAC1B,0BAA0B,IAAI,KAAK,CAAC,MAAM,EAAE;AAC5C,4BAA4B,GAAG;AAC/B,4BAA4B,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE;AAChE,gCAAgC,KAAK,CAAC,QAAQ;AAC9C,gCAAgC,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAChI,gCAAgC,GAAG;AACnC,6BAA6B,CAAC,CAAC;AAC/B,4BAA4B,KAAK,CAAC,QAAQ;AAC1C,4BAA4B,GAAG;AAC/B,yBAAyB,CAAC;AAC1B,iBAAiB,CAAC;AAClB,YAAY,KAAK,YAAY;AAC7B,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACxC,oBAAoB,IAAI,CAAC,WAAW,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE;AACnG,iBAAiB,CAAC;AAClB;AACA,YAAY,KAAK,mBAAmB;AACpC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC;AACzD,oBAAoB,SAAS;AAC7B,oBAAoB,IAAI,CAAC;AACzB,0BAA0B,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC;AACpF,0BAA0B,EAAE;AAC5B,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;AACnD,oBAAoB,GAAG;AACvB,iBAAiB,CAAC;AAClB,YAAY,KAAK,cAAc,EAAE;AACjC,gBAAgB,MAAM,KAAK,GAAG,EAAE;AAChC,gBAAgB,IAAI,IAAI,CAAC,IAAI;AAC7B,oBAAoB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpD,gBAAgB,IAAI,IAAI,CAAC,aAAa;AACtC,oBAAoB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAC7D,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,GAAG,OAAO,GAAG,EAAE,EAAE,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AACxG,YAAY;AACZ,YAAY,KAAK,cAAc;AAC/B,gBAAgB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;AACzH,YAAY,KAAK,iBAAiB;AAClC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,UAAU,GAAG,OAAO,GAAG,EAAE;AAClD,oBAAoB,IAAI,CAAC;AACzB,0BAA0B,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;AAClF,0BAA0B,EAAE;AAC5B,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACxC,iBAAiB,CAAC;AAClB,YAAY,KAAK,iBAAiB;AAClC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACzE,YAAY,KAAK,mBAAmB;AACpC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC;AACzD,oBAAoB,SAAS;AAC7B,oBAAoB,IAAI,CAAC,UAAU,GAAG,OAAO,GAAG,EAAE;AAClD,oBAAoB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,GAAG;AAC1E,oBAAoB,IAAI,CAAC;AACzB,0BAA0B,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AACvF,0BAA0B,EAAE;AAC5B,oBAAoB,GAAG;AACvB,iBAAiB,CAAC;AAClB,YAAY,KAAK,cAAc;AAC/B,gBAAgB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;AACzH,YAAY,KAAK,iBAAiB;AAClC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,UAAU,GAAG,OAAO,GAAG,EAAE;AAClD,oBAAoB,IAAI,CAAC;AACzB,0BAA0B,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;AAClF,0BAA0B,EAAE;AAC5B,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACxC,iBAAiB,CAAC;AAClB,YAAY,KAAK,kBAAkB;AACnC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC;AACzD,oBAAoB,IAAI,CAAC,cAAc,GAAG,WAAW,GAAG,iBAAiB;AACzE,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AAC9C,oBAAoB,GAAG;AACvB,iBAAiB,CAAC;AAClB;AACA,YAAY,KAAK,YAAY;AAC7B,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7F,oBAAoB,KAAK,CAAC,QAAQ;AAClC,iBAAiB,CAAC;AAClB;AACA,YAAY,KAAK,cAAc;AAC/B,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,OAAO;AAC3B,oBAAoB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;AACvE,oBAAoB,IAAI;AACxB,oBAAoB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE;AACnE,oBAAoB,IAAI;AACxB,oBAAoB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;AACvE,oBAAoB,IAAI;AACxB,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;AAC7C,iBAAiB,CAAC;AAClB,YAAY,KAAK,gBAAgB;AACjC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,OAAO;AAC3B,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;AAC/C,oBAAoB,MAAM;AAC1B,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AAC9C,oBAAoB,IAAI;AACxB,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;AAC7C,iBAAiB,CAAC;AAClB,YAAY,KAAK,gBAAgB;AACjC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,MAAM;AAC1B,oBAAoB,IAAI,CAAC,aAAa,GAAG,QAAQ,GAAG,EAAE;AACtD,oBAAoB,GAAG;AACvB,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;AAC/C,oBAAoB,MAAM;AAC1B,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AAC9C,oBAAoB,IAAI;AACxB,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;AAC7C,iBAAiB,CAAC;AAClB,YAAY,KAAK,gBAAgB;AACjC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,SAAS;AAC7B,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AAC9C,oBAAoB,IAAI;AACxB,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;AAC7C,iBAAiB,CAAC;AAClB,YAAY,KAAK,aAAa;AAC9B,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,KAAK;AACzB,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;AAC7C,oBAAoB,UAAU;AAC9B,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AAC9C,oBAAoB,IAAI;AACxB,iBAAiB,CAAC;AAClB,YAAY,KAAK,iBAAiB;AAClC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,UAAU;AAC9B,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AAC9C,oBAAoB,IAAI;AACxB,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;AAC7C,iBAAiB,CAAC;AAClB,YAAY,KAAK,WAAW;AAC5B,gBAAgB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK;AAC/C,sBAAsB;AACtB,sBAAsB,IAAI,KAAK,CAAC,MAAM,EAAE;AACxC,wBAAwB,GAAG;AAC3B,wBAAwB,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE;AAC5D,4BAA4B,KAAK,CAAC,QAAQ;AAC1C,4BAA4B,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAClG,yBAAyB,CAAC,CAAC;AAC3B,wBAAwB,KAAK,CAAC,QAAQ;AACtC,wBAAwB,GAAG;AAC3B,qBAAqB,CAAC;AACtB,YAAY,KAAK,YAAY;AAC7B,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,OAAO;AAC3B,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AAC9C,oBAAoB,GAAG;AACvB,oBAAoB,IAAI,CAAC,UAAU,CAAC;AACpC,0BAA0B,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE;AAC9D,4BAA4B,KAAK,CAAC,QAAQ;AAC1C,4BAA4B,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACrG,yBAAyB,CAAC;AAC1B,0BAA0B,EAAE;AAC5B,iBAAiB,CAAC;AAClB,YAAY,KAAK,eAAe;AAChC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,UAAU;AAC9B,oBAAoB,IAAI,CAAC,UAAU,CAAC;AACpC,0BAA0B,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE;AAC9D,4BAA4B,KAAK,CAAC,QAAQ;AAC1C,4BAA4B,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACrG,yBAAyB,CAAC;AAC1B,0BAA0B,EAAE;AAC5B,iBAAiB,CAAC;AAClB,YAAY,KAAK,gBAAgB;AACjC,gBAAgB,OAAO,IAAI,CAAC;AAC5B,sBAAsB,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC;AAC9E,sBAAsB,QAAQ;AAC9B,YAAY,KAAK,mBAAmB;AACpC,gBAAgB,OAAO,IAAI,CAAC;AAC5B,sBAAsB,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC;AACjF,sBAAsB,WAAW;AACjC,YAAY,KAAK,cAAc;AAC/B,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,MAAM;AAC1B,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC5C,oBAAoB,IAAI,CAAC,WAAW,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE;AACjG,oBAAoB,IAAI,CAAC;AACzB,0BAA0B,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACvF,0BAA0B,EAAE;AAC5B,iBAAiB,CAAC;AAClB,YAAY,KAAK,aAAa;AAC9B,gBAAgB,OAAO,IAAI,CAAC;AAC5B,sBAAsB,IAAI,KAAK,CAAC,MAAM,EAAE;AACxC,wBAAwB,SAAS;AACjC,wBAAwB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC;AAC3D,wBAAwB,IAAI;AAC5B,wBAAwB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AAC7C,qBAAqB;AACrB,sBAAsB,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1E,YAAY,KAAK,kBAAkB;AACnC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AAClG,YAAY,KAAK,eAAe;AAChC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,QAAQ;AAC5B,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AAC9C,oBAAoB,IAAI;AACxB,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;AAC7C,iBAAiB,CAAC;AAClB,YAAY,KAAK,mBAAmB;AACpC,gBAAgB,OAAO,WAAW;AAClC,YAAY,KAAK,gBAAgB;AACjC,gBAAgB,OAAO,GAAG;AAC1B;AACA,YAAY,KAAK,mBAAmB;AACpC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC;AACxD,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,eAAe,GAAG,SAAS,GAAG,YAAY;AACjF,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACxC,oBAAoB,IAAI,CAAC,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG;AACpF,iBAAiB,CAAC;AAClB,YAAY,KAAK,aAAa;AAC9B,gBAAgB,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACpF,YAAY,KAAK,6BAA6B;AAC9C,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3E,YAAY,KAAK,yBAAyB;AAC1C,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC;AACzD,oBAAoB,SAAS;AAC7B,oBAAoB,IAAI,CAAC,UAAU,GAAG,OAAO,GAAG,EAAE;AAClD,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACxC,oBAAoB,KAAK;AACzB,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;AACnD,oBAAoB,GAAG;AACvB,iBAAiB,CAAC;AAClB,YAAY,KAAK,yBAAyB;AAC1C,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,CAAC;AACvF,YAAY,KAAK,4BAA4B;AAC7C,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,sBAAsB,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAC7F,YAAY,KAAK,uBAAuB;AACxC,gBAAgB,OAAO,GAAG;AAC1B,YAAY,KAAK,iBAAiB;AAClC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACzE;AACA,YAAY,KAAK,cAAc;AAC/B,gBAAgB,OAAO,MAAM;AAC7B,YAAY,KAAK,qBAAqB;AACtC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC;AACzD,oBAAoB,MAAM;AAC1B,oBAAoB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC;AAC3D,oBAAoB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;AAChD,oBAAoB,MAAM;AAC1B,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACxC,iBAAiB,CAAC;AAClB,YAAY,KAAK,mBAAmB;AACpC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,eAAe,GAAG,UAAU,GAAG,EAAE;AAC1D,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;AACjD,oBAAoB,IAAI,CAAC,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE;AACtF,iBAAiB,CAAC;AAClB,YAAY,KAAK,qBAAqB;AACtC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;AAC7C,oBAAoB,WAAW;AAC/B,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;AAC/C,oBAAoB,KAAK;AACzB,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC5C,oBAAoB,KAAK;AACzB,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;AAC7C,iBAAiB,CAAC;AAClB,YAAY,KAAK,eAAe;AAChC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;AACnF,YAAY,KAAK,gBAAgB,EAAE;AACnC,gBAAgB,MAAM,EAAE,GAAG,IAAI,CAAC;AAChC,sBAAsB,IAAI,CAAC,aAAa,CAAC,KAAK,KAAK;AACnD,0BAA0B;AAC1B,0BAA0B,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS;AAC/D,sBAAsB,EAAE;AACxB,gBAAgB,MAAM,CAAC,GAAG,IAAI,CAAC;AAC/B,sBAAsB,IAAI,CAAC,aAAa,CAAC,KAAK,KAAK;AACnD,0BAA0B;AAC1B,0BAA0B,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACvD,sBAAsB,EAAE;AACxB,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI;AACxB,oBAAoB,EAAE;AACtB,oBAAoB,GAAG;AACvB,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;AACtD,oBAAoB,MAAM;AAC1B,oBAAoB,IAAI,CAAC,aAAa,CAAC;AACvC,0BAA0B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU;AACjE,0BAA0B,EAAE;AAC5B,oBAAoB,IAAI,CAAC,QAAQ,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE;AAC9F,oBAAoB,GAAG;AACvB,oBAAoB,CAAC;AACrB,oBAAoB,IAAI,CAAC,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE;AACpF,oBAAoB,IAAI;AACxB,iBAAiB,CAAC;AAClB,YAAY;AACZ,YAAY,KAAK,qBAAqB;AACtC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACxC,oBAAoB,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAClF,iBAAiB,CAAC;AAClB,YAAY,KAAK,yBAAyB;AAC1C,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACzF,YAAY,KAAK,kBAAkB;AACnC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,cAAc,GAAG,KAAK,GAAG,EAAE;AACpD,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACxC,oBAAoB,IAAI,CAAC,aAAa,GAAG,GAAG,GAAG,EAAE;AACjD,oBAAoB,IAAI;AACxB,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACxC,iBAAiB,CAAC;AAClB,YAAY,KAAK,kBAAkB;AACnC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AACrE,YAAY,KAAK,cAAc;AAC/B,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACvE,YAAY,KAAK,gBAAgB;AACjC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,QAAQ,GAAG,SAAS,GAAG,EAAE;AAClD,oBAAoB,SAAS;AAC7B,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC5C,oBAAoB,GAAG;AACvB,oBAAoB,IAAI,CAAC,SAAS,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE;AAC7F,oBAAoB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC;AAC1D,iBAAiB,CAAC;AAClB,YAAY,KAAK,eAAe;AAChC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC;AAC3D,oBAAoB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;AAChD,oBAAoB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3C,iBAAiB,CAAC;AAClB,YAAY,KAAK,oBAAoB;AACrC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,MAAM;AAC1B,oBAAoB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC;AAC3D,oBAAoB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;AAChD,oBAAoB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3C,iBAAiB,CAAC;AAClB;AACA,YAAY,KAAK,cAAc;AAC/B,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAChE,YAAY,KAAK,gBAAgB;AACjC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAChE,YAAY,KAAK,cAAc;AAC/B,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAC/D,YAAY,KAAK,+BAA+B;AAChD,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAC/D;AACA,YAAY,KAAK,oBAAoB;AACrC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACxC,oBAAoB,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAClF,iBAAiB,CAAC;AAClB,YAAY,KAAK,cAAc;AAC/B,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAC/F,YAAY,KAAK,0BAA0B;AAC3C,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACvC,oBAAoB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC;AAC1D,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC5C,iBAAiB,CAAC;AAClB,YAAY,KAAK,iBAAiB;AAClC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,OAAO;AAC3B,oBAAoB,IAAI,CAAC,aAAa,GAAG,GAAG,GAAG,EAAE;AACjD,oBAAoB,IAAI,CAAC,UAAU,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE;AAC/F,iBAAiB,CAAC;AAClB,YAAY,KAAK,kBAAkB;AACnC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AACjF,YAAY,KAAK,gBAAgB;AACjC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AAC/E,YAAY,KAAK,0BAA0B;AAC3C,gBAAgB,OAAO,IAAI,CAAC,IAAI;AAChC,YAAY,KAAK,iBAAiB;AAClC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC;AACxD,oBAAoB,OAAO;AAC3B,oBAAoB,IAAI,CAAC,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE;AACnF,oBAAoB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC;AAC3D,oBAAoB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC;AACvD,oBAAoB,GAAG;AACvB,oBAAoB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9E,iBAAiB,CAAC;AAClB,YAAY,KAAK,cAAc;AAC/B,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACxF,YAAY,KAAK,qBAAqB;AACtC,gBAAgB,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACpF,YAAY,KAAK,sBAAsB;AACvC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,CAAC;AAChF,YAAY,KAAK,mBAAmB;AACpC,gBAAgB,OAAO,EAAE;AACzB,YAAY,KAAK,gBAAgB;AACjC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,cAAc,GAAG,KAAK,GAAG,EAAE;AACpD,oBAAoB,IAAI,CAAC,YAAY,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE;AACpG,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACxC,oBAAoB,IAAI,CAAC,WAAW,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE;AACnG,iBAAiB,CAAC;AAClB,YAAY,KAAK,sBAAsB;AACvC,gBAAgB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;AACzH,YAAY,KAAK,qBAAqB;AACtC,gBAAgB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;AAC5G,YAAY,KAAK,eAAe;AAChC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,GAAG;AACvB,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACxC,oBAAoB,GAAG;AACvB,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AAC9C,iBAAiB,CAAC;AAClB,YAAY,KAAK,qBAAqB;AACtC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AAC9C,oBAAoB,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,GAAG;AACtD,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACxC,iBAAiB,CAAC;AAClB,YAAY,KAAK,oBAAoB;AACrC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AAC9C,oBAAoB,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,EAAE;AACrD,oBAAoB,GAAG;AACvB,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC;AACtD,oBAAoB,GAAG;AACvB,iBAAiB,CAAC;AAClB,YAAY,KAAK,WAAW;AAC5B,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AAC9C,oBAAoB,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,EAAE;AACrD,oBAAoB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC;AAC1D,oBAAoB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;AAC/C,iBAAiB,CAAC;AAClB,YAAY,KAAK,cAAc;AAC/B,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,CAAC;AAC3E;AACA,YAAY,KAAK,YAAY;AAC7B,gBAAgB,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE;AAC1D,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;AAClD,oBAAoB,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrI,oBAAoB,KAAK,CAAC,QAAQ;AAClC,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;AAClD,iBAAiB,CAAC,CAAC;AACnB,YAAY,KAAK,uBAAuB;AACxC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,GAAG;AACvB,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;AAC3C,oBAAoB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC;AAC1D,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AAC9C,oBAAoB,KAAK;AACzB,iBAAiB,CAAC;AAClB,YAAY,KAAK,mBAAmB;AACpC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,GAAG;AACvB,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;AAC3C,oBAAoB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC;AAC1D,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AAC9C,oBAAoB,GAAG;AACvB,iBAAiB,CAAC;AAClB,YAAY,KAAK,mBAAmB;AACpC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;AAC9E,YAAY,KAAK,aAAa;AAC9B,gBAAgB,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE;AAC1D,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;AACnD,oBAAoB,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrI,oBAAoB,KAAK,CAAC,QAAQ;AAClC,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;AACnD,iBAAiB,CAAC,CAAC;AACnB,YAAY,KAAK,oBAAoB;AACrC,gBAAgB,OAAO,IAAI;AAC3B,YAAY,KAAK,oBAAoB;AACrC,gBAAgB,OAAO,KAAK;AAC5B,YAAY,KAAK,SAAS;AAC1B,gBAAgB,OAAO,IAAI,CAAC,IAAI;AAChC,YAAY,KAAK,cAAc;AAC/B,gBAAgB,OAAO,IAAI,CAAC,WAAW,KAAK;AAC5C,sBAAsB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;AACzC,sBAAsB,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AACjG,YAAY,KAAK,eAAe;AAChC,gBAAgB,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK;AAClD,sBAAsB;AACtB,sBAAsB,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3G,YAAY,KAAK,oBAAoB;AACrC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,CAAC;AACnF,YAAY,KAAK,eAAe;AAChC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,GAAG;AACvB,oBAAoB,IAAI,CAAC,cAAc,GAAG,KAAK,GAAG,EAAE;AACpD,oBAAoB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE;AACrE,oBAAoB,GAAG;AACvB,iBAAiB,CAAC;AAClB,YAAY,KAAK,mBAAmB;AACpC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAChG;AACA,YAAY,KAAK,QAAQ;AACzB,gBAAgB,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACjG,YAAY,KAAK,4BAA4B;AAC7C,gBAAgB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AACjD,YAAY,KAAK,iBAAiB;AAClC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7F,YAAY,KAAK,kBAAkB;AACnC,gBAAgB,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK;AAChD,sBAAsB,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC;AAC3D,sBAAsB,IAAI,KAAK,CAAC,MAAM,EAAE;AACxC,wBAAwB,IAAI,CAAC,KAAK;AAClC,wBAAwB,KAAK;AAC7B,wBAAwB,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACrF,wBAAwB,IAAI;AAC5B,qBAAqB,CAAC;AACtB,YAAY,KAAK,qBAAqB;AACtC,YAAY,KAAK,uBAAuB;AACxC,gBAAgB,OAAO,EAAE;AACzB;AACA,YAAY,KAAK,cAAc;AAC/B,gBAAgB,OAAO,GAAG;AAC1B,YAAY,KAAK,kBAAkB;AACnC,gBAAgB,OAAO,GAAG;AAC1B,YAAY,KAAK,sBAAsB;AACvC,gBAAgB,OAAO,IAAI,CAAC;AAC5B,sBAAsB,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC;AACnE,sBAAsB,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACpE,YAAY,KAAK,mBAAmB;AACpC,gBAAgB,OAAO,IAAI,CAAC;AAC5B,sBAAsB,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC;AACnE,sBAAsB,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACpE,YAAY,KAAK,mBAAmB;AACpC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AACrE,YAAY,KAAK,mBAAmB;AACpC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACvE,YAAY,KAAK,mBAAmB;AACpC,gBAAgB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3C,YAAY,KAAK,mBAAmB;AACpC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,WAAW;AAC/B,oBAAoB,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACnF,oBAAoB,GAAG;AACvB,oBAAoB,IAAI,CAAC,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE;AACpF,iBAAiB,CAAC;AAClB,YAAY,KAAK,qBAAqB;AACtC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAC1E,YAAY,KAAK,oBAAoB;AACrC,gBAAgB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3C,YAAY,KAAK,iBAAiB;AAClC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5F,YAAY,KAAK,WAAW;AAC5B,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,SAAS;AAC7B,oBAAoB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AACzD,oBAAoB,IAAI,CAAC,IAAI;AAC7B,oBAAoB,GAAG;AACvB,iBAAiB,CAAC;AAClB,YAAY,KAAK,eAAe;AAChC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,aAAa;AACjC,oBAAoB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AACzD,oBAAoB,IAAI,CAAC,IAAI;AAC7B,oBAAoB,GAAG;AACvB,iBAAiB,CAAC;AAClB,YAAY,KAAK,gBAAgB;AACjC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,cAAc;AAClC,oBAAoB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AACzD,oBAAoB,IAAI,CAAC,IAAI;AAC7B,oBAAoB,GAAG;AACvB,iBAAiB,CAAC;AAClB,YAAY,KAAK,WAAW;AAC5B,gBAAgB,OAAO,IAAI,CAAC,IAAI;AAChC,YAAY,KAAK,kBAAkB;AACnC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,iBAAiB,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5G,oBAAoB,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAE;AAChD,iBAAiB,CAAC;AAClB,YAAY,KAAK,gBAAgB;AACjC,gBAAgB,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE;AACvD,oBAAoB,IAAI,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC;AAClD,oBAAoB,GAAG,IAAI,CAAC,UAAU;AACtC,oBAAoB,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AACrD,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,YAAY,KAAK,OAAO,EAAE;AAC1B,gBAAgB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,KAAK;AAC9C,sBAAsB;AACtB,sBAAsB,OAAO,IAAI,CAAC,OAAO,KAAK;AAC9C,0BAA0B,IAAI,CAAC;AAC/B,0BAA0B,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAClF,gBAAgB,MAAM,KAAK,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AAChE,gBAAgB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE;AACjD,oBAAoB,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC1E,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,KAAK;AACzB,oBAAoB,KAAK,CAAC,QAAQ;AAClC,oBAAoB,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC;AAC1D,oBAAoB,KAAK,CAAC,QAAQ;AAClC,oBAAoB,KAAK;AACzB,iBAAiB,CAAC;AAClB,YAAY;AACZ;AACA,YAAY,KAAK,cAAc;AAC/B,YAAY,KAAK,cAAc;AAC/B,YAAY,KAAK,cAAc;AAC/B,YAAY,KAAK,mBAAmB;AACpC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,GAAG;AACvB,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;AAC3C,oBAAoB,GAAG;AACvB,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;AAClD,oBAAoB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;AACnD,iBAAiB,CAAC;AAClB,YAAY,KAAK,gBAAgB;AACjC,YAAY,KAAK,gBAAgB;AACjC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,GAAG;AACvB,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;AAC3C,oBAAoB,IAAI,CAAC;AACzB,0BAA0B,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AACjF,0BAA0B,EAAE;AAC5B,oBAAoB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;AACnD,iBAAiB,CAAC;AAClB,YAAY,KAAK,gBAAgB;AACjC,YAAY,KAAK,eAAe;AAChC,YAAY,KAAK,gBAAgB;AACjC,YAAY,KAAK,iBAAiB;AAClC,YAAY,KAAK,mBAAmB;AACpC,YAAY,KAAK,kBAAkB;AACnC,YAAY,KAAK,kBAAkB;AACnC,YAAY,KAAK,oBAAoB;AACrC,YAAY,KAAK,iBAAiB;AAClC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,GAAG;AACvB,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;AAC3C,oBAAoB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;AACnD,iBAAiB,CAAC;AAClB,YAAY,KAAK,kBAAkB;AACnC,YAAY,KAAK,oBAAoB;AACrC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,GAAG;AACvB,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;AAC3C,oBAAoB,IAAI;AACxB,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AACzC,oBAAoB,GAAG;AACvB,oBAAoB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;AACnD,iBAAiB,CAAC;AAClB,YAAY,KAAK,mBAAmB;AACpC,YAAY,KAAK,kBAAkB,EAAE;AACrC,gBAAgB,MAAM,IAAI,GAAG,IAAI,CAAC;AAClC,sBAAsB,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC;AACxE,sBAAsB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1C,gBAAgB,MAAM,IAAI,GAAG,IAAI,CAAC;AAClC,sBAAsB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc;AACnD,sBAAsB,SAAS;AAC/B,gBAAgB,MAAM,IAAI,GAAG,IAAI,CAAC;AAClC,sBAAsB,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;AAC1F,sBAAsB,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;AAC3F,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,GAAG;AACvB,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;AAC3C,oBAAoB,GAAG;AACvB,oBAAoB,IAAI;AACxB,oBAAoB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;AACnD,iBAAiB,CAAC;AAClB,YAAY;AACZ,YAAY,KAAK,aAAa;AAC9B,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,GAAG;AACvB,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;AAC3C,oBAAoB,IAAI,CAAC,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE;AACnF,oBAAoB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;AACnD,iBAAiB,CAAC;AAClB,YAAY,KAAK,kBAAkB;AACnC,YAAY,KAAK,kBAAkB,EAAE;AACrC,gBAAgB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,kBAAkB,IAAI,IAAI,CAAC;AACtE,sBAAsB,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACvE,sBAAsB,EAAE;AACxB,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,GAAG;AACvB,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;AAC3C,oBAAoB,IAAI;AACxB,oBAAoB,KAAK,CAAC,QAAQ;AAClC,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;AAClD,oBAAoB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;AACnD,iBAAiB,CAAC;AAClB,YAAY;AACZ,YAAY,KAAK,gBAAgB;AACjC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,GAAG;AACvB,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;AAC3C,oBAAoB,GAAG;AACvB,oBAAoB,IAAI,CAAC;AACzB,0BAA0B,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC;AACpF,0BAA0B,EAAE;AAC5B,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;AACnD,oBAAoB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;AACnD,iBAAiB,CAAC;AAClB,YAAY,KAAK,kBAAkB;AACnC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,GAAG;AACvB,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;AAC3C,oBAAoB,IAAI,CAAC,UAAU,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE;AAC/F,oBAAoB,GAAG;AACvB,oBAAoB,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACvF,oBAAoB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;AACnD,iBAAiB,CAAC;AAClB,YAAY,KAAK,iBAAiB;AAClC,gBAAgB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAoB,GAAG;AACvB,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;AAC3C,oBAAoB,IAAI,CAAC;AACzB,0BAA0B,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AACjF,0BAA0B,EAAE;AAC5B,oBAAoB,IAAI,CAAC,QAAQ,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE;AAC3F,oBAAoB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;AACnD,iBAAiB,CAAC;AAClB,YAAY;AACZ,gBAAgB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AAC7C;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAkB,CAAC,IAAI,EAAE;AAC7B,QAAQ,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,KAAK,eAAe;AAC1D,YAAY,IAAI,CAAC,IAAI,KAAK,sBAAsB;AAChD,YAAY,IAAI,CAAC,IAAI,KAAK,kBAAkB;AAC5C,YAAY,IAAI,CAAC,IAAI,KAAK,qBAAqB;AAC/C,YAAY,IAAI,CAAC,IAAI,KAAK,qBAAqB;AAC/C,YAAY,IAAI,CAAC,IAAI,KAAK,eAAe;AACzC,YAAY,IAAI,CAAC,IAAI,KAAK,kBAAkB;AAC5C,QAAQ,OAAO,YAAY,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AAC9F,IAAI;AACJ;AACA,IAAI,YAAY,CAAC,OAAO,EAAE;AAC1B,QAAQ,IAAI,OAAO,KAAK,SAAS;AACjC,YAAY,OAAO,EAAE;AACrB,QAAQ,IAAI,OAAO,OAAO,KAAK,QAAQ;AACvC,YAAY,OAAO,OAAO,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,GAAG,EAAE;AAC1E,QAAQ,OAAO,OAAO,CAAC;AACvB,cAAc,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1F,cAAc,EAAE;AAChB,IAAI;AACJ;AACA,IAAI,UAAU,CAAC,QAAQ,EAAE,KAAK,EAAE;AAChC,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;AAC9B,YAAY,OAAO,KAAK,CAAC,CAAC,CAAC;AAC3B,QAAQ,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE;AACpE,YAAY,IAAI,KAAK,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;AAC9E,YAAY,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC;AAClF,SAAS,CAAC,CAAC,CAAC;AACZ,IAAI;AACJ,IAAI,WAAW,CAAC,IAAI,EAAE;AACtB,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,oDAAoD,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7F,IAAI;AACJ;AACA,OAAO,CAAC,SAAS,GAAG,SAAS"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createModuleDeclaration = void 0;
4
+ const syntax_1 = require("../../syntax");
4
5
  const make_1 = require("../internal/make");
5
6
  const createIdentifier_1 = require("../names/createIdentifier");
6
7
  /**
@@ -32,7 +33,7 @@ const createIdentifier_1 = require("../names/createIdentifier");
32
33
  * @param flags The node flags that select the `namespace` or `module` keyword.
33
34
  * @returns The created {@link ModuleDeclaration}.
34
35
  */
35
- const createModuleDeclaration = (modifiers, name, body, flags = "" /* NodeFlags.None */) => (0, make_1.make)("ModuleDeclaration", {
36
+ const createModuleDeclaration = (modifiers, name, body, flags = syntax_1.NodeFlags.None) => (0, make_1.make)("ModuleDeclaration", {
36
37
  modifiers,
37
38
  name: typeof name === "string" ? (0, createIdentifier_1.createIdentifier)(name) : name,
38
39
  body,