{"version":3,"file":"acorn-loose.js","sources":["../src/parseutil.js","../src/state.js","../src/tokenize.js","../src/statement.js","../src/expression.js","../src/index.js"],"sourcesContent":["export const dummyValue = \"✖\"\n\nexport function isDummy(node) { return node.name === dummyValue }\n","import {Parser, SourceLocation, tokTypes as tt, Node, lineBreak, isNewLine} from \"acorn\"\nimport {dummyValue} from \"./parseutil.js\"\n\nfunction noop() {}\n\nexport class LooseParser {\n constructor(input, options = {}) {\n this.toks = this.constructor.BaseParser.tokenizer(input, options)\n this.options = this.toks.options\n this.input = this.toks.input\n this.tok = this.last = {type: tt.eof, start: 0, end: 0}\n this.tok.validateRegExpFlags = noop\n this.tok.validateRegExpPattern = noop\n if (this.options.locations) {\n let here = this.toks.curPosition()\n this.tok.loc = new SourceLocation(this.toks, here, here)\n }\n this.ahead = [] // Tokens ahead\n this.context = [] // Indentation contexted\n this.curIndent = 0\n this.curLineStart = 0\n this.nextLineStart = this.lineEnd(this.curLineStart) + 1\n this.inAsync = false\n this.inFunction = false\n }\n\n startNode() {\n return new Node(this.toks, this.tok.start, this.options.locations ? this.tok.loc.start : null)\n }\n\n storeCurrentPos() {\n return this.options.locations ? [this.tok.start, this.tok.loc.start] : this.tok.start\n }\n\n startNodeAt(pos) {\n if (this.options.locations) {\n return new Node(this.toks, pos[0], pos[1])\n } else {\n return new Node(this.toks, pos)\n }\n }\n\n finishNode(node, type) {\n node.type = type\n node.end = this.last.end\n if (this.options.locations)\n node.loc.end = this.last.loc.end\n if (this.options.ranges)\n node.range[1] = this.last.end\n return node\n }\n\n dummyNode(type) {\n let dummy = this.startNode()\n dummy.type = type\n dummy.end = dummy.start\n if (this.options.locations)\n dummy.loc.end = dummy.loc.start\n if (this.options.ranges)\n dummy.range[1] = dummy.start\n this.last = {type: tt.name, start: dummy.start, end: dummy.start, loc: dummy.loc}\n return dummy\n }\n\n dummyIdent() {\n let dummy = this.dummyNode(\"Identifier\")\n dummy.name = dummyValue\n return dummy\n }\n\n dummyString() {\n let dummy = this.dummyNode(\"Literal\")\n dummy.value = dummy.raw = dummyValue\n return dummy\n }\n\n eat(type) {\n if (this.tok.type === type) {\n this.next()\n return true\n } else {\n return false\n }\n }\n\n isContextual(name) {\n return this.tok.type === tt.name && this.tok.value === name\n }\n\n eatContextual(name) {\n return this.tok.value === name && this.eat(tt.name)\n }\n\n canInsertSemicolon() {\n return this.tok.type === tt.eof || this.tok.type === tt.braceR ||\n lineBreak.test(this.input.slice(this.last.end, this.tok.start))\n }\n\n semicolon() {\n return this.eat(tt.semi)\n }\n\n expect(type) {\n if (this.eat(type)) return true\n for (let i = 1; i <= 2; i++) {\n if (this.lookAhead(i).type === type) {\n for (let j = 0; j < i; j++) this.next()\n return true\n }\n }\n }\n\n pushCx() {\n this.context.push(this.curIndent)\n }\n\n popCx() {\n this.curIndent = this.context.pop()\n }\n\n lineEnd(pos) {\n while (pos < this.input.length && !isNewLine(this.input.charCodeAt(pos))) ++pos\n return pos\n }\n\n indentationAfter(pos) {\n for (let count = 0;; ++pos) {\n let ch = this.input.charCodeAt(pos)\n if (ch === 32) ++count\n else if (ch === 9) count += this.options.tabSize\n else return count\n }\n }\n\n closes(closeTok, indent, line, blockHeuristic) {\n if (this.tok.type === closeTok || this.tok.type === tt.eof) return true\n return line !== this.curLineStart && this.curIndent < indent && this.tokenStartsLine() &&\n (!blockHeuristic || this.nextLineStart >= this.input.length ||\n this.indentationAfter(this.nextLineStart) < indent)\n }\n\n tokenStartsLine() {\n for (let p = this.tok.start - 1; p >= this.curLineStart; --p) {\n let ch = this.input.charCodeAt(p)\n if (ch !== 9 && ch !== 32) return false\n }\n return true\n }\n\n extend(name, f) {\n this[name] = f(this[name])\n }\n\n parse() {\n this.next()\n return this.parseTopLevel()\n }\n\n static extend(...plugins) {\n let cls = this\n for (let i = 0; i < plugins.length; i++) cls = plugins[i](cls)\n return cls\n }\n\n static parse(input, options) {\n return new this(input, options).parse()\n }\n}\n\n// Allows plugins to extend the base parser / tokenizer used\nLooseParser.BaseParser = Parser\n","import {tokTypes as tt, Token, isNewLine, SourceLocation, getLineInfo, lineBreakG} from \"acorn\"\nimport {LooseParser} from \"./state.js\"\nimport {dummyValue} from \"./parseutil.js\"\n\nconst lp = LooseParser.prototype\n\nfunction isSpace(ch) {\n return (ch < 14 && ch > 8) || ch === 32 || ch === 160 || isNewLine(ch)\n}\n\nlp.next = function() {\n this.last = this.tok\n if (this.ahead.length)\n this.tok = this.ahead.shift()\n else\n this.tok = this.readToken()\n\n if (this.tok.start >= this.nextLineStart) {\n while (this.tok.start >= this.nextLineStart) {\n this.curLineStart = this.nextLineStart\n this.nextLineStart = this.lineEnd(this.curLineStart) + 1\n }\n this.curIndent = this.indentationAfter(this.curLineStart)\n }\n}\n\nlp.readToken = function() {\n for (;;) {\n try {\n this.toks.next()\n if (this.toks.type === tt.dot &&\n this.input.substr(this.toks.end, 1) === \".\" &&\n this.options.ecmaVersion >= 6) {\n this.toks.end++\n this.toks.type = tt.ellipsis\n }\n return new Token(this.toks)\n } catch (e) {\n if (!(e instanceof SyntaxError)) throw e\n\n // Try to skip some text, based on the error message, and then continue\n let msg = e.message, pos = e.raisedAt, replace = true\n if (/unterminated/i.test(msg)) {\n pos = this.lineEnd(e.pos + 1)\n if (/string/.test(msg)) {\n replace = {start: e.pos, end: pos, type: tt.string, value: this.input.slice(e.pos + 1, pos)}\n } else if (/regular expr/i.test(msg)) {\n let re = this.input.slice(e.pos, pos)\n try { re = new RegExp(re) } catch (e) { /* ignore compilation error due to new syntax */ }\n replace = {start: e.pos, end: pos, type: tt.regexp, value: re}\n } else if (/template/.test(msg)) {\n replace = {\n start: e.pos,\n end: pos,\n type: tt.template,\n value: this.input.slice(e.pos, pos)\n }\n } else {\n replace = false\n }\n } else if (/invalid (unicode|regexp|number)|expecting unicode|octal literal|is reserved|directly after number|expected number in radix/i.test(msg)) {\n while (pos < this.input.length && !isSpace(this.input.charCodeAt(pos))) ++pos\n } else if (/character escape|expected hexadecimal/i.test(msg)) {\n while (pos < this.input.length) {\n let ch = this.input.charCodeAt(pos++)\n if (ch === 34 || ch === 39 || isNewLine(ch)) break\n }\n } else if (/unexpected character/i.test(msg)) {\n pos++\n replace = false\n } else if (/regular expression/i.test(msg)) {\n replace = true\n } else {\n throw e\n }\n this.resetTo(pos)\n if (replace === true) replace = {start: pos, end: pos, type: tt.name, value: dummyValue}\n if (replace) {\n if (this.options.locations)\n replace.loc = new SourceLocation(\n this.toks,\n getLineInfo(this.input, replace.start),\n getLineInfo(this.input, replace.end))\n return replace\n }\n }\n }\n}\n\nlp.resetTo = function(pos) {\n this.toks.pos = pos\n let ch = this.input.charAt(pos - 1)\n this.toks.exprAllowed = !ch || /[[{(,;:?/*=+\\-~!|&%^<>]/.test(ch) ||\n /[enwfd]/.test(ch) &&\n /\\b(case|else|return|throw|new|in|(instance|type)?of|delete|void)$/.test(this.input.slice(pos - 10, pos))\n\n if (this.options.locations) {\n this.toks.curLine = 1\n this.toks.lineStart = lineBreakG.lastIndex = 0\n let match\n while ((match = lineBreakG.exec(this.input)) && match.index < pos) {\n ++this.toks.curLine\n this.toks.lineStart = match.index + match[0].length\n }\n }\n}\n\nlp.lookAhead = function(n) {\n while (n > this.ahead.length)\n this.ahead.push(this.readToken())\n return this.ahead[n - 1]\n}\n","import {LooseParser} from \"./state.js\"\nimport {isDummy} from \"./parseutil.js\"\nimport {getLineInfo, tokTypes as tt} from \"acorn\"\n\nconst lp = LooseParser.prototype\n\nlp.parseTopLevel = function() {\n let node = this.startNodeAt(this.options.locations ? [0, getLineInfo(this.input, 0)] : 0)\n node.body = []\n while (this.tok.type !== tt.eof) node.body.push(this.parseStatement())\n this.toks.adaptDirectivePrologue(node.body)\n this.last = this.tok\n node.sourceType = this.options.sourceType\n return this.finishNode(node, \"Program\")\n}\n\nlp.parseStatement = function() {\n let starttype = this.tok.type, node = this.startNode(), kind\n\n if (this.toks.isLet()) {\n starttype = tt._var\n kind = \"let\"\n }\n\n switch (starttype) {\n case tt._break: case tt._continue:\n this.next()\n let isBreak = starttype === tt._break\n if (this.semicolon() || this.canInsertSemicolon()) {\n node.label = null\n } else {\n node.label = this.tok.type === tt.name ? this.parseIdent() : null\n this.semicolon()\n }\n return this.finishNode(node, isBreak ? \"BreakStatement\" : \"ContinueStatement\")\n\n case tt._debugger:\n this.next()\n this.semicolon()\n return this.finishNode(node, \"DebuggerStatement\")\n\n case tt._do:\n this.next()\n node.body = this.parseStatement()\n node.test = this.eat(tt._while) ? this.parseParenExpression() : this.dummyIdent()\n this.semicolon()\n return this.finishNode(node, \"DoWhileStatement\")\n\n case tt._for:\n this.next() // `for` keyword\n let isAwait = this.options.ecmaVersion >= 9 && this.eatContextual(\"await\")\n\n this.pushCx()\n this.expect(tt.parenL)\n if (this.tok.type === tt.semi) return this.parseFor(node, null)\n let isLet = this.toks.isLet()\n if (isLet || this.tok.type === tt._var || this.tok.type === tt._const) {\n let init = this.parseVar(this.startNode(), true, isLet ? \"let\" : this.tok.value)\n if (init.declarations.length === 1 && (this.tok.type === tt._in || this.isContextual(\"of\"))) {\n if (this.options.ecmaVersion >= 9 && this.tok.type !== tt._in) {\n node.await = isAwait\n }\n return this.parseForIn(node, init)\n }\n return this.parseFor(node, init)\n }\n let init = this.parseExpression(true)\n if (this.tok.type === tt._in || this.isContextual(\"of\")) {\n if (this.options.ecmaVersion >= 9 && this.tok.type !== tt._in) {\n node.await = isAwait\n }\n return this.parseForIn(node, this.toAssignable(init))\n }\n return this.parseFor(node, init)\n\n case tt._function:\n this.next()\n return this.parseFunction(node, true)\n\n case tt._if:\n this.next()\n node.test = this.parseParenExpression()\n node.consequent = this.parseStatement()\n node.alternate = this.eat(tt._else) ? this.parseStatement() : null\n return this.finishNode(node, \"IfStatement\")\n\n case tt._return:\n this.next()\n if (this.eat(tt.semi) || this.canInsertSemicolon()) node.argument = null\n else { node.argument = this.parseExpression(); this.semicolon() }\n return this.finishNode(node, \"ReturnStatement\")\n\n case tt._switch:\n let blockIndent = this.curIndent, line = this.curLineStart\n this.next()\n node.discriminant = this.parseParenExpression()\n node.cases = []\n this.pushCx()\n this.expect(tt.braceL)\n\n let cur\n while (!this.closes(tt.braceR, blockIndent, line, true)) {\n if (this.tok.type === tt._case || this.tok.type === tt._default) {\n let isCase = this.tok.type === tt._case\n if (cur) this.finishNode(cur, \"SwitchCase\")\n node.cases.push(cur = this.startNode())\n cur.consequent = []\n this.next()\n if (isCase) cur.test = this.parseExpression()\n else cur.test = null\n this.expect(tt.colon)\n } else {\n if (!cur) {\n node.cases.push(cur = this.startNode())\n cur.consequent = []\n cur.test = null\n }\n cur.consequent.push(this.parseStatement())\n }\n }\n if (cur) this.finishNode(cur, \"SwitchCase\")\n this.popCx()\n this.eat(tt.braceR)\n return this.finishNode(node, \"SwitchStatement\")\n\n case tt._throw:\n this.next()\n node.argument = this.parseExpression()\n this.semicolon()\n return this.finishNode(node, \"ThrowStatement\")\n\n case tt._try:\n this.next()\n node.block = this.parseBlock()\n node.handler = null\n if (this.tok.type === tt._catch) {\n let clause = this.startNode()\n this.next()\n if (this.eat(tt.parenL)) {\n clause.param = this.toAssignable(this.parseExprAtom(), true)\n this.expect(tt.parenR)\n } else {\n clause.param = null\n }\n clause.body = this.parseBlock()\n node.handler = this.finishNode(clause, \"CatchClause\")\n }\n node.finalizer = this.eat(tt._finally) ? this.parseBlock() : null\n if (!node.handler && !node.finalizer) return node.block\n return this.finishNode(node, \"TryStatement\")\n\n case tt._var:\n case tt._const:\n return this.parseVar(node, false, kind || this.tok.value)\n\n case tt._while:\n this.next()\n node.test = this.parseParenExpression()\n node.body = this.parseStatement()\n return this.finishNode(node, \"WhileStatement\")\n\n case tt._with:\n this.next()\n node.object = this.parseParenExpression()\n node.body = this.parseStatement()\n return this.finishNode(node, \"WithStatement\")\n\n case tt.braceL:\n return this.parseBlock()\n\n case tt.semi:\n this.next()\n return this.finishNode(node, \"EmptyStatement\")\n\n case tt._class:\n return this.parseClass(true)\n\n case tt._import:\n if (this.options.ecmaVersion > 10) {\n const nextType = this.lookAhead(1).type\n if (nextType === tt.parenL || nextType === tt.dot) {\n node.expression = this.parseExpression()\n this.semicolon()\n return this.finishNode(node, \"ExpressionStatement\")\n }\n }\n\n return this.parseImport()\n\n case tt._export:\n return this.parseExport()\n\n default:\n if (this.toks.isAsyncFunction()) {\n this.next()\n this.next()\n return this.parseFunction(node, true, true)\n }\n let expr = this.parseExpression()\n if (isDummy(expr)) {\n this.next()\n if (this.tok.type === tt.eof) return this.finishNode(node, \"EmptyStatement\")\n return this.parseStatement()\n } else if (starttype === tt.name && expr.type === \"Identifier\" && this.eat(tt.colon)) {\n node.body = this.parseStatement()\n node.label = expr\n return this.finishNode(node, \"LabeledStatement\")\n } else {\n node.expression = expr\n this.semicolon()\n return this.finishNode(node, \"ExpressionStatement\")\n }\n }\n}\n\nlp.parseBlock = function() {\n let node = this.startNode()\n this.pushCx()\n this.expect(tt.braceL)\n let blockIndent = this.curIndent, line = this.curLineStart\n node.body = []\n while (!this.closes(tt.braceR, blockIndent, line, true))\n node.body.push(this.parseStatement())\n this.popCx()\n this.eat(tt.braceR)\n return this.finishNode(node, \"BlockStatement\")\n}\n\nlp.parseFor = function(node, init) {\n node.init = init\n node.test = node.update = null\n if (this.eat(tt.semi) && this.tok.type !== tt.semi) node.test = this.parseExpression()\n if (this.eat(tt.semi) && this.tok.type !== tt.parenR) node.update = this.parseExpression()\n this.popCx()\n this.expect(tt.parenR)\n node.body = this.parseStatement()\n return this.finishNode(node, \"ForStatement\")\n}\n\nlp.parseForIn = function(node, init) {\n let type = this.tok.type === tt._in ? \"ForInStatement\" : \"ForOfStatement\"\n this.next()\n node.left = init\n node.right = this.parseExpression()\n this.popCx()\n this.expect(tt.parenR)\n node.body = this.parseStatement()\n return this.finishNode(node, type)\n}\n\nlp.parseVar = function(node, noIn, kind) {\n node.kind = kind\n this.next()\n node.declarations = []\n do {\n let decl = this.startNode()\n decl.id = this.options.ecmaVersion >= 6 ? this.toAssignable(this.parseExprAtom(), true) : this.parseIdent()\n decl.init = this.eat(tt.eq) ? this.parseMaybeAssign(noIn) : null\n node.declarations.push(this.finishNode(decl, \"VariableDeclarator\"))\n } while (this.eat(tt.comma))\n if (!node.declarations.length) {\n let decl = this.startNode()\n decl.id = this.dummyIdent()\n node.declarations.push(this.finishNode(decl, \"VariableDeclarator\"))\n }\n if (!noIn) this.semicolon()\n return this.finishNode(node, \"VariableDeclaration\")\n}\n\nlp.parseClass = function(isStatement) {\n let node = this.startNode()\n this.next()\n if (this.tok.type === tt.name) node.id = this.parseIdent()\n else if (isStatement === true) node.id = this.dummyIdent()\n else node.id = null\n node.superClass = this.eat(tt._extends) ? this.parseExpression() : null\n node.body = this.startNode()\n node.body.body = []\n this.pushCx()\n let indent = this.curIndent + 1, line = this.curLineStart\n this.eat(tt.braceL)\n if (this.curIndent + 1 < indent) { indent = this.curIndent; line = this.curLineStart }\n while (!this.closes(tt.braceR, indent, line)) {\n if (this.semicolon()) continue\n let method = this.startNode(), isGenerator, isAsync\n if (this.options.ecmaVersion >= 6) {\n method.static = false\n isGenerator = this.eat(tt.star)\n }\n this.parsePropertyName(method)\n if (isDummy(method.key)) { if (isDummy(this.parseMaybeAssign())) this.next(); this.eat(tt.comma); continue }\n if (method.key.type === \"Identifier\" && !method.computed && method.key.name === \"static\" &&\n (this.tok.type !== tt.parenL && this.tok.type !== tt.braceL)) {\n method.static = true\n isGenerator = this.eat(tt.star)\n this.parsePropertyName(method)\n } else {\n method.static = false\n }\n if (!method.computed &&\n method.key.type === \"Identifier\" && method.key.name === \"async\" && this.tok.type !== tt.parenL &&\n !this.canInsertSemicolon()) {\n isAsync = true\n isGenerator = this.options.ecmaVersion >= 9 && this.eat(tt.star)\n this.parsePropertyName(method)\n } else {\n isAsync = false\n }\n if (this.options.ecmaVersion >= 5 && method.key.type === \"Identifier\" &&\n !method.computed && (method.key.name === \"get\" || method.key.name === \"set\") &&\n this.tok.type !== tt.parenL && this.tok.type !== tt.braceL) {\n method.kind = method.key.name\n this.parsePropertyName(method)\n method.value = this.parseMethod(false)\n } else {\n if (!method.computed && !method.static && !isGenerator && !isAsync && (\n method.key.type === \"Identifier\" && method.key.name === \"constructor\" ||\n method.key.type === \"Literal\" && method.key.value === \"constructor\")) {\n method.kind = \"constructor\"\n } else {\n method.kind = \"method\"\n }\n method.value = this.parseMethod(isGenerator, isAsync)\n }\n node.body.body.push(this.finishNode(method, \"MethodDefinition\"))\n }\n this.popCx()\n if (!this.eat(tt.braceR)) {\n // If there is no closing brace, make the node span to the start\n // of the next token (this is useful for Tern)\n this.last.end = this.tok.start\n if (this.options.locations) this.last.loc.end = this.tok.loc.start\n }\n this.semicolon()\n this.finishNode(node.body, \"ClassBody\")\n return this.finishNode(node, isStatement ? \"ClassDeclaration\" : \"ClassExpression\")\n}\n\nlp.parseFunction = function(node, isStatement, isAsync) {\n let oldInAsync = this.inAsync, oldInFunction = this.inFunction\n this.initFunction(node)\n if (this.options.ecmaVersion >= 6) {\n node.generator = this.eat(tt.star)\n }\n if (this.options.ecmaVersion >= 8) {\n node.async = !!isAsync\n }\n if (this.tok.type === tt.name) node.id = this.parseIdent()\n else if (isStatement === true) node.id = this.dummyIdent()\n this.inAsync = node.async\n this.inFunction = true\n node.params = this.parseFunctionParams()\n node.body = this.parseBlock()\n this.toks.adaptDirectivePrologue(node.body.body)\n this.inAsync = oldInAsync\n this.inFunction = oldInFunction\n return this.finishNode(node, isStatement ? \"FunctionDeclaration\" : \"FunctionExpression\")\n}\n\nlp.parseExport = function() {\n let node = this.startNode()\n this.next()\n if (this.eat(tt.star)) {\n if (this.options.ecmaVersion >= 11) {\n if (this.eatContextual(\"as\")) {\n node.exported = this.parseExprAtom()\n } else {\n node.exported = null\n }\n }\n node.source = this.eatContextual(\"from\") ? this.parseExprAtom() : this.dummyString()\n return this.finishNode(node, \"ExportAllDeclaration\")\n }\n if (this.eat(tt._default)) {\n // export default (function foo() {}) // This is FunctionExpression.\n let isAsync\n if (this.tok.type === tt._function || (isAsync = this.toks.isAsyncFunction())) {\n let fNode = this.startNode()\n this.next()\n if (isAsync) this.next()\n node.declaration = this.parseFunction(fNode, \"nullableID\", isAsync)\n } else if (this.tok.type === tt._class) {\n node.declaration = this.parseClass(\"nullableID\")\n } else {\n node.declaration = this.parseMaybeAssign()\n this.semicolon()\n }\n return this.finishNode(node, \"ExportDefaultDeclaration\")\n }\n if (this.tok.type.keyword || this.toks.isLet() || this.toks.isAsyncFunction()) {\n node.declaration = this.parseStatement()\n node.specifiers = []\n node.source = null\n } else {\n node.declaration = null\n node.specifiers = this.parseExportSpecifierList()\n node.source = this.eatContextual(\"from\") ? this.parseExprAtom() : null\n this.semicolon()\n }\n return this.finishNode(node, \"ExportNamedDeclaration\")\n}\n\nlp.parseImport = function() {\n let node = this.startNode()\n this.next()\n if (this.tok.type === tt.string) {\n node.specifiers = []\n node.source = this.parseExprAtom()\n } else {\n let elt\n if (this.tok.type === tt.name && this.tok.value !== \"from\") {\n elt = this.startNode()\n elt.local = this.parseIdent()\n this.finishNode(elt, \"ImportDefaultSpecifier\")\n this.eat(tt.comma)\n }\n node.specifiers = this.parseImportSpecifiers()\n node.source = this.eatContextual(\"from\") && this.tok.type === tt.string ? this.parseExprAtom() : this.dummyString()\n if (elt) node.specifiers.unshift(elt)\n }\n this.semicolon()\n return this.finishNode(node, \"ImportDeclaration\")\n}\n\nlp.parseImportSpecifiers = function() {\n let elts = []\n if (this.tok.type === tt.star) {\n let elt = this.startNode()\n this.next()\n elt.local = this.eatContextual(\"as\") ? this.parseIdent() : this.dummyIdent()\n elts.push(this.finishNode(elt, \"ImportNamespaceSpecifier\"))\n } else {\n let indent = this.curIndent, line = this.curLineStart, continuedLine = this.nextLineStart\n this.pushCx()\n this.eat(tt.braceL)\n if (this.curLineStart > continuedLine) continuedLine = this.curLineStart\n while (!this.closes(tt.braceR, indent + (this.curLineStart <= continuedLine ? 1 : 0), line)) {\n let elt = this.startNode()\n if (this.eat(tt.star)) {\n elt.local = this.eatContextual(\"as\") ? this.parseIdent() : this.dummyIdent()\n this.finishNode(elt, \"ImportNamespaceSpecifier\")\n } else {\n if (this.isContextual(\"from\")) break\n elt.imported = this.parseIdent()\n if (isDummy(elt.imported)) break\n elt.local = this.eatContextual(\"as\") ? this.parseIdent() : elt.imported\n this.finishNode(elt, \"ImportSpecifier\")\n }\n elts.push(elt)\n this.eat(tt.comma)\n }\n this.eat(tt.braceR)\n this.popCx()\n }\n return elts\n}\n\nlp.parseExportSpecifierList = function() {\n let elts = []\n let indent = this.curIndent, line = this.curLineStart, continuedLine = this.nextLineStart\n this.pushCx()\n this.eat(tt.braceL)\n if (this.curLineStart > continuedLine) continuedLine = this.curLineStart\n while (!this.closes(tt.braceR, indent + (this.curLineStart <= continuedLine ? 1 : 0), line)) {\n if (this.isContextual(\"from\")) break\n let elt = this.startNode()\n elt.local = this.parseIdent()\n if (isDummy(elt.local)) break\n elt.exported = this.eatContextual(\"as\") ? this.parseIdent() : elt.local\n this.finishNode(elt, \"ExportSpecifier\")\n elts.push(elt)\n this.eat(tt.comma)\n }\n this.eat(tt.braceR)\n this.popCx()\n return elts\n}\n","import {LooseParser} from \"./state.js\"\nimport {isDummy} from \"./parseutil.js\"\nimport {tokTypes as tt} from \"acorn\"\n\nconst lp = LooseParser.prototype\n\nlp.checkLVal = function(expr) {\n if (!expr) return expr\n switch (expr.type) {\n case \"Identifier\":\n case \"MemberExpression\":\n return expr\n\n case \"ParenthesizedExpression\":\n expr.expression = this.checkLVal(expr.expression)\n return expr\n\n default:\n return this.dummyIdent()\n }\n}\n\nlp.parseExpression = function(noIn) {\n let start = this.storeCurrentPos()\n let expr = this.parseMaybeAssign(noIn)\n if (this.tok.type === tt.comma) {\n let node = this.startNodeAt(start)\n node.expressions = [expr]\n while (this.eat(tt.comma)) node.expressions.push(this.parseMaybeAssign(noIn))\n return this.finishNode(node, \"SequenceExpression\")\n }\n return expr\n}\n\nlp.parseParenExpression = function() {\n this.pushCx()\n this.expect(tt.parenL)\n let val = this.parseExpression()\n this.popCx()\n this.expect(tt.parenR)\n return val\n}\n\nlp.parseMaybeAssign = function(noIn) {\n if (this.toks.isContextual(\"yield\")) {\n let node = this.startNode()\n this.next()\n if (this.semicolon() || this.canInsertSemicolon() || (this.tok.type !== tt.star && !this.tok.type.startsExpr)) {\n node.delegate = false\n node.argument = null\n } else {\n node.delegate = this.eat(tt.star)\n node.argument = this.parseMaybeAssign()\n }\n return this.finishNode(node, \"YieldExpression\")\n }\n\n let start = this.storeCurrentPos()\n let left = this.parseMaybeConditional(noIn)\n if (this.tok.type.isAssign) {\n let node = this.startNodeAt(start)\n node.operator = this.tok.value\n node.left = this.tok.type === tt.eq ? this.toAssignable(left) : this.checkLVal(left)\n this.next()\n node.right = this.parseMaybeAssign(noIn)\n return this.finishNode(node, \"AssignmentExpression\")\n }\n return left\n}\n\nlp.parseMaybeConditional = function(noIn) {\n let start = this.storeCurrentPos()\n let expr = this.parseExprOps(noIn)\n if (this.eat(tt.question)) {\n let node = this.startNodeAt(start)\n node.test = expr\n node.consequent = this.parseMaybeAssign()\n node.alternate = this.expect(tt.colon) ? this.parseMaybeAssign(noIn) : this.dummyIdent()\n return this.finishNode(node, \"ConditionalExpression\")\n }\n return expr\n}\n\nlp.parseExprOps = function(noIn) {\n let start = this.storeCurrentPos()\n let indent = this.curIndent, line = this.curLineStart\n return this.parseExprOp(this.parseMaybeUnary(false), start, -1, noIn, indent, line)\n}\n\nlp.parseExprOp = function(left, start, minPrec, noIn, indent, line) {\n if (this.curLineStart !== line && this.curIndent < indent && this.tokenStartsLine()) return left\n let prec = this.tok.type.binop\n if (prec != null && (!noIn || this.tok.type !== tt._in)) {\n if (prec > minPrec) {\n let node = this.startNodeAt(start)\n node.left = left\n node.operator = this.tok.value\n this.next()\n if (this.curLineStart !== line && this.curIndent < indent && this.tokenStartsLine()) {\n node.right = this.dummyIdent()\n } else {\n let rightStart = this.storeCurrentPos()\n node.right = this.parseExprOp(this.parseMaybeUnary(false), rightStart, prec, noIn, indent, line)\n }\n this.finishNode(node, /&&|\\|\\||\\?\\?/.test(node.operator) ? \"LogicalExpression\" : \"BinaryExpression\")\n return this.parseExprOp(node, start, minPrec, noIn, indent, line)\n }\n }\n return left\n}\n\nlp.parseMaybeUnary = function(sawUnary) {\n let start = this.storeCurrentPos(), expr\n if (this.options.ecmaVersion >= 8 && this.toks.isContextual(\"await\") &&\n (this.inAsync || (!this.inFunction && this.options.allowAwaitOutsideFunction))\n ) {\n expr = this.parseAwait()\n sawUnary = true\n } else if (this.tok.type.prefix) {\n let node = this.startNode(), update = this.tok.type === tt.incDec\n if (!update) sawUnary = true\n node.operator = this.tok.value\n node.prefix = true\n this.next()\n node.argument = this.parseMaybeUnary(true)\n if (update) node.argument = this.checkLVal(node.argument)\n expr = this.finishNode(node, update ? \"UpdateExpression\" : \"UnaryExpression\")\n } else if (this.tok.type === tt.ellipsis) {\n let node = this.startNode()\n this.next()\n node.argument = this.parseMaybeUnary(sawUnary)\n expr = this.finishNode(node, \"SpreadElement\")\n } else {\n expr = this.parseExprSubscripts()\n while (this.tok.type.postfix && !this.canInsertSemicolon()) {\n let node = this.startNodeAt(start)\n node.operator = this.tok.value\n node.prefix = false\n node.argument = this.checkLVal(expr)\n this.next()\n expr = this.finishNode(node, \"UpdateExpression\")\n }\n }\n\n if (!sawUnary && this.eat(tt.starstar)) {\n let node = this.startNodeAt(start)\n node.operator = \"**\"\n node.left = expr\n node.right = this.parseMaybeUnary(false)\n return this.finishNode(node, \"BinaryExpression\")\n }\n\n return expr\n}\n\nlp.parseExprSubscripts = function() {\n let start = this.storeCurrentPos()\n return this.parseSubscripts(this.parseExprAtom(), start, false, this.curIndent, this.curLineStart)\n}\n\nlp.parseSubscripts = function(base, start, noCalls, startIndent, line) {\n const optionalSupported = this.options.ecmaVersion >= 11\n let optionalChained = false\n for (;;) {\n if (this.curLineStart !== line && this.curIndent <= startIndent && this.tokenStartsLine()) {\n if (this.tok.type === tt.dot && this.curIndent === startIndent)\n --startIndent\n else\n break\n }\n\n let maybeAsyncArrow = base.type === \"Identifier\" && base.name === \"async\" && !this.canInsertSemicolon()\n let optional = optionalSupported && this.eat(tt.questionDot)\n if (optional) {\n optionalChained = true\n }\n\n if ((optional && this.tok.type !== tt.parenL && this.tok.type !== tt.bracketL && this.tok.type !== tt.backQuote) || this.eat(tt.dot)) {\n let node = this.startNodeAt(start)\n node.object = base\n if (this.curLineStart !== line && this.curIndent <= startIndent && this.tokenStartsLine())\n node.property = this.dummyIdent()\n else\n node.property = this.parsePropertyAccessor() || this.dummyIdent()\n node.computed = false\n if (optionalSupported) {\n node.optional = optional\n }\n base = this.finishNode(node, \"MemberExpression\")\n } else if (this.tok.type === tt.bracketL) {\n this.pushCx()\n this.next()\n let node = this.startNodeAt(start)\n node.object = base\n node.property = this.parseExpression()\n node.computed = true\n if (optionalSupported) {\n node.optional = optional\n }\n this.popCx()\n this.expect(tt.bracketR)\n base = this.finishNode(node, \"MemberExpression\")\n } else if (!noCalls && this.tok.type === tt.parenL) {\n let exprList = this.parseExprList(tt.parenR)\n if (maybeAsyncArrow && this.eat(tt.arrow))\n return this.parseArrowExpression(this.startNodeAt(start), exprList, true)\n let node = this.startNodeAt(start)\n node.callee = base\n node.arguments = exprList\n if (optionalSupported) {\n node.optional = optional\n }\n base = this.finishNode(node, \"CallExpression\")\n } else if (this.tok.type === tt.backQuote) {\n let node = this.startNodeAt(start)\n node.tag = base\n node.quasi = this.parseTemplate()\n base = this.finishNode(node, \"TaggedTemplateExpression\")\n } else {\n break\n }\n }\n\n if (optionalChained) {\n const chainNode = this.startNodeAt(start)\n chainNode.expression = base\n base = this.finishNode(chainNode, \"ChainExpression\")\n }\n return base\n}\n\nlp.parseExprAtom = function() {\n let node\n switch (this.tok.type) {\n case tt._this:\n case tt._super:\n let type = this.tok.type === tt._this ? \"ThisExpression\" : \"Super\"\n node = this.startNode()\n this.next()\n return this.finishNode(node, type)\n\n case tt.name:\n let start = this.storeCurrentPos()\n let id = this.parseIdent()\n let isAsync = false\n if (id.name === \"async\" && !this.canInsertSemicolon()) {\n if (this.eat(tt._function))\n return this.parseFunction(this.startNodeAt(start), false, true)\n if (this.tok.type === tt.name) {\n id = this.parseIdent()\n isAsync = true\n }\n }\n return this.eat(tt.arrow) ? this.parseArrowExpression(this.startNodeAt(start), [id], isAsync) : id\n\n case tt.regexp:\n node = this.startNode()\n let val = this.tok.value\n node.regex = {pattern: val.pattern, flags: val.flags}\n node.value = val.value\n node.raw = this.input.slice(this.tok.start, this.tok.end)\n this.next()\n return this.finishNode(node, \"Literal\")\n\n case tt.num: case tt.string:\n node = this.startNode()\n node.value = this.tok.value\n node.raw = this.input.slice(this.tok.start, this.tok.end)\n if (this.tok.type === tt.num && node.raw.charCodeAt(node.raw.length - 1) === 110) node.bigint = node.raw.slice(0, -1).replace(/_/g, \"\")\n this.next()\n return this.finishNode(node, \"Literal\")\n\n case tt._null: case tt._true: case tt._false:\n node = this.startNode()\n node.value = this.tok.type === tt._null ? null : this.tok.type === tt._true\n node.raw = this.tok.type.keyword\n this.next()\n return this.finishNode(node, \"Literal\")\n\n case tt.parenL:\n let parenStart = this.storeCurrentPos()\n this.next()\n let inner = this.parseExpression()\n this.expect(tt.parenR)\n if (this.eat(tt.arrow)) {\n // (a,)=>a // SequenceExpression makes dummy in the last hole. Drop the dummy.\n let params = inner.expressions || [inner]\n if (params.length && isDummy(params[params.length - 1]))\n params.pop()\n return this.parseArrowExpression(this.startNodeAt(parenStart), params)\n }\n if (this.options.preserveParens) {\n let par = this.startNodeAt(parenStart)\n par.expression = inner\n inner = this.finishNode(par, \"ParenthesizedExpression\")\n }\n return inner\n\n case tt.bracketL:\n node = this.startNode()\n node.elements = this.parseExprList(tt.bracketR, true)\n return this.finishNode(node, \"ArrayExpression\")\n\n case tt.braceL:\n return this.parseObj()\n\n case tt._class:\n return this.parseClass(false)\n\n case tt._function:\n node = this.startNode()\n this.next()\n return this.parseFunction(node, false)\n\n case tt._new:\n return this.parseNew()\n\n case tt.backQuote:\n return this.parseTemplate()\n\n case tt._import:\n if (this.options.ecmaVersion >= 11) {\n return this.parseExprImport()\n } else {\n return this.dummyIdent()\n }\n\n default:\n return this.dummyIdent()\n }\n}\n\nlp.parseExprImport = function() {\n const node = this.startNode()\n const meta = this.parseIdent(true)\n switch (this.tok.type) {\n case tt.parenL:\n return this.parseDynamicImport(node)\n case tt.dot:\n node.meta = meta\n return this.parseImportMeta(node)\n default:\n node.name = \"import\"\n return this.finishNode(node, \"Identifier\")\n }\n}\n\nlp.parseDynamicImport = function(node) {\n node.source = this.parseExprList(tt.parenR)[0] || this.dummyString()\n return this.finishNode(node, \"ImportExpression\")\n}\n\nlp.parseImportMeta = function(node) {\n this.next() // skip '.'\n node.property = this.parseIdent(true)\n return this.finishNode(node, \"MetaProperty\")\n}\n\nlp.parseNew = function() {\n let node = this.startNode(), startIndent = this.curIndent, line = this.curLineStart\n let meta = this.parseIdent(true)\n if (this.options.ecmaVersion >= 6 && this.eat(tt.dot)) {\n node.meta = meta\n node.property = this.parseIdent(true)\n return this.finishNode(node, \"MetaProperty\")\n }\n let start = this.storeCurrentPos()\n node.callee = this.parseSubscripts(this.parseExprAtom(), start, true, startIndent, line)\n if (this.tok.type === tt.parenL) {\n node.arguments = this.parseExprList(tt.parenR)\n } else {\n node.arguments = []\n }\n return this.finishNode(node, \"NewExpression\")\n}\n\nlp.parseTemplateElement = function() {\n let elem = this.startNode()\n\n // The loose parser accepts invalid unicode escapes even in untagged templates.\n if (this.tok.type === tt.invalidTemplate) {\n elem.value = {\n raw: this.tok.value,\n cooked: null\n }\n } else {\n elem.value = {\n raw: this.input.slice(this.tok.start, this.tok.end).replace(/\\r\\n?/g, \"\\n\"),\n cooked: this.tok.value\n }\n }\n this.next()\n elem.tail = this.tok.type === tt.backQuote\n return this.finishNode(elem, \"TemplateElement\")\n}\n\nlp.parseTemplate = function() {\n let node = this.startNode()\n this.next()\n node.expressions = []\n let curElt = this.parseTemplateElement()\n node.quasis = [curElt]\n while (!curElt.tail) {\n this.next()\n node.expressions.push(this.parseExpression())\n if (this.expect(tt.braceR)) {\n curElt = this.parseTemplateElement()\n } else {\n curElt = this.startNode()\n curElt.value = {cooked: \"\", raw: \"\"}\n curElt.tail = true\n this.finishNode(curElt, \"TemplateElement\")\n }\n node.quasis.push(curElt)\n }\n this.expect(tt.backQuote)\n return this.finishNode(node, \"TemplateLiteral\")\n}\n\nlp.parseObj = function() {\n let node = this.startNode()\n node.properties = []\n this.pushCx()\n let indent = this.curIndent + 1, line = this.curLineStart\n this.eat(tt.braceL)\n if (this.curIndent + 1 < indent) { indent = this.curIndent; line = this.curLineStart }\n while (!this.closes(tt.braceR, indent, line)) {\n let prop = this.startNode(), isGenerator, isAsync, start\n if (this.options.ecmaVersion >= 9 && this.eat(tt.ellipsis)) {\n prop.argument = this.parseMaybeAssign()\n node.properties.push(this.finishNode(prop, \"SpreadElement\"))\n this.eat(tt.comma)\n continue\n }\n if (this.options.ecmaVersion >= 6) {\n start = this.storeCurrentPos()\n prop.method = false\n prop.shorthand = false\n isGenerator = this.eat(tt.star)\n }\n this.parsePropertyName(prop)\n if (this.toks.isAsyncProp(prop)) {\n isAsync = true\n isGenerator = this.options.ecmaVersion >= 9 && this.eat(tt.star)\n this.parsePropertyName(prop)\n } else {\n isAsync = false\n }\n if (isDummy(prop.key)) { if (isDummy(this.parseMaybeAssign())) this.next(); this.eat(tt.comma); continue }\n if (this.eat(tt.colon)) {\n prop.kind = \"init\"\n prop.value = this.parseMaybeAssign()\n } else if (this.options.ecmaVersion >= 6 && (this.tok.type === tt.parenL || this.tok.type === tt.braceL)) {\n prop.kind = \"init\"\n prop.method = true\n prop.value = this.parseMethod(isGenerator, isAsync)\n } else if (this.options.ecmaVersion >= 5 && prop.key.type === \"Identifier\" &&\n !prop.computed && (prop.key.name === \"get\" || prop.key.name === \"set\") &&\n (this.tok.type !== tt.comma && this.tok.type !== tt.braceR && this.tok.type !== tt.eq)) {\n prop.kind = prop.key.name\n this.parsePropertyName(prop)\n prop.value = this.parseMethod(false)\n } else {\n prop.kind = \"init\"\n if (this.options.ecmaVersion >= 6) {\n if (this.eat(tt.eq)) {\n let assign = this.startNodeAt(start)\n assign.operator = \"=\"\n assign.left = prop.key\n assign.right = this.parseMaybeAssign()\n prop.value = this.finishNode(assign, \"AssignmentExpression\")\n } else {\n prop.value = prop.key\n }\n } else {\n prop.value = this.dummyIdent()\n }\n prop.shorthand = true\n }\n node.properties.push(this.finishNode(prop, \"Property\"))\n this.eat(tt.comma)\n }\n this.popCx()\n if (!this.eat(tt.braceR)) {\n // If there is no closing brace, make the node span to the start\n // of the next token (this is useful for Tern)\n this.last.end = this.tok.start\n if (this.options.locations) this.last.loc.end = this.tok.loc.start\n }\n return this.finishNode(node, \"ObjectExpression\")\n}\n\nlp.parsePropertyName = function(prop) {\n if (this.options.ecmaVersion >= 6) {\n if (this.eat(tt.bracketL)) {\n prop.computed = true\n prop.key = this.parseExpression()\n this.expect(tt.bracketR)\n return\n } else {\n prop.computed = false\n }\n }\n let key = (this.tok.type === tt.num || this.tok.type === tt.string) ? this.parseExprAtom() : this.parseIdent()\n prop.key = key || this.dummyIdent()\n}\n\nlp.parsePropertyAccessor = function() {\n if (this.tok.type === tt.name || this.tok.type.keyword) return this.parseIdent()\n}\n\nlp.parseIdent = function() {\n let name = this.tok.type === tt.name ? this.tok.value : this.tok.type.keyword\n if (!name) return this.dummyIdent()\n let node = this.startNode()\n this.next()\n node.name = name\n return this.finishNode(node, \"Identifier\")\n}\n\nlp.initFunction = function(node) {\n node.id = null\n node.params = []\n if (this.options.ecmaVersion >= 6) {\n node.generator = false\n node.expression = false\n }\n if (this.options.ecmaVersion >= 8)\n node.async = false\n}\n\n// Convert existing expression atom to assignable pattern\n// if possible.\n\nlp.toAssignable = function(node, binding) {\n if (!node || node.type === \"Identifier\" || (node.type === \"MemberExpression\" && !binding)) {\n // Okay\n } else if (node.type === \"ParenthesizedExpression\") {\n this.toAssignable(node.expression, binding)\n } else if (this.options.ecmaVersion < 6) {\n return this.dummyIdent()\n } else if (node.type === \"ObjectExpression\") {\n node.type = \"ObjectPattern\"\n for (let prop of node.properties)\n this.toAssignable(prop, binding)\n } else if (node.type === \"ArrayExpression\") {\n node.type = \"ArrayPattern\"\n this.toAssignableList(node.elements, binding)\n } else if (node.type === \"Property\") {\n this.toAssignable(node.value, binding)\n } else if (node.type === \"SpreadElement\") {\n node.type = \"RestElement\"\n this.toAssignable(node.argument, binding)\n } else if (node.type === \"AssignmentExpression\") {\n node.type = \"AssignmentPattern\"\n delete node.operator\n } else {\n return this.dummyIdent()\n }\n return node\n}\n\nlp.toAssignableList = function(exprList, binding) {\n for (let expr of exprList)\n this.toAssignable(expr, binding)\n return exprList\n}\n\nlp.parseFunctionParams = function(params) {\n params = this.parseExprList(tt.parenR)\n return this.toAssignableList(params, true)\n}\n\nlp.parseMethod = function(isGenerator, isAsync) {\n let node = this.startNode(), oldInAsync = this.inAsync, oldInFunction = this.inFunction\n this.initFunction(node)\n if (this.options.ecmaVersion >= 6)\n node.generator = !!isGenerator\n if (this.options.ecmaVersion >= 8)\n node.async = !!isAsync\n this.inAsync = node.async\n this.inFunction = true\n node.params = this.parseFunctionParams()\n node.body = this.parseBlock()\n this.toks.adaptDirectivePrologue(node.body.body)\n this.inAsync = oldInAsync\n this.inFunction = oldInFunction\n return this.finishNode(node, \"FunctionExpression\")\n}\n\nlp.parseArrowExpression = function(node, params, isAsync) {\n let oldInAsync = this.inAsync, oldInFunction = this.inFunction\n this.initFunction(node)\n if (this.options.ecmaVersion >= 8)\n node.async = !!isAsync\n this.inAsync = node.async\n this.inFunction = true\n node.params = this.toAssignableList(params, true)\n node.expression = this.tok.type !== tt.braceL\n if (node.expression) {\n node.body = this.parseMaybeAssign()\n } else {\n node.body = this.parseBlock()\n this.toks.adaptDirectivePrologue(node.body.body)\n }\n this.inAsync = oldInAsync\n this.inFunction = oldInFunction\n return this.finishNode(node, \"ArrowFunctionExpression\")\n}\n\nlp.parseExprList = function(close, allowEmpty) {\n this.pushCx()\n let indent = this.curIndent, line = this.curLineStart, elts = []\n this.next() // Opening bracket\n while (!this.closes(close, indent + 1, line)) {\n if (this.eat(tt.comma)) {\n elts.push(allowEmpty ? null : this.dummyIdent())\n continue\n }\n let elt = this.parseMaybeAssign()\n if (isDummy(elt)) {\n if (this.closes(close, indent, line)) break\n this.next()\n } else {\n elts.push(elt)\n }\n this.eat(tt.comma)\n }\n this.popCx()\n if (!this.eat(close)) {\n // If there is no closing brace, make the node span to the start\n // of the next token (this is useful for Tern)\n this.last.end = this.tok.start\n if (this.options.locations) this.last.loc.end = this.tok.loc.start\n }\n return elts\n}\n\nlp.parseAwait = function() {\n let node = this.startNode()\n this.next()\n node.argument = this.parseMaybeUnary()\n return this.finishNode(node, \"AwaitExpression\")\n}\n","// Acorn: Loose parser\n//\n// This module provides an alternative parser that exposes that same\n// interface as the main module's `parse` function, but will try to\n// parse anything as JavaScript, repairing syntax error the best it\n// can. There are circumstances in which it will raise an error and\n// give up, but they are very rare. The resulting AST will be a mostly\n// valid JavaScript AST (as per the [Mozilla parser API][api], except\n// that:\n//\n// - Return outside functions is allowed\n//\n// - Label consistency (no conflicts, break only to existing labels)\n// is not enforced.\n//\n// - Bogus Identifier nodes with a name of `\"✖\"` are inserted whenever\n// the parser got too confused to return anything meaningful.\n//\n// [api]: https://developer.mozilla.org/en-US/docs/SpiderMonkey/Parser_API\n//\n// The expected use for this is to *first* try `acorn.parse`, and only\n// if that fails switch to the loose parser. The loose parser might\n// parse badly indented code incorrectly, so **don't** use it as your\n// default parser.\n//\n// Quite a lot of acorn.js is duplicated here. The alternative was to\n// add a *lot* of extra cruft to that file, making it less readable\n// and slower. Copying and editing the code allowed me to make\n// invasive changes and simplifications without creating a complicated\n// tangle.\n\nimport {defaultOptions} from \"acorn\"\nimport {LooseParser} from \"./state.js\"\nimport \"./tokenize.js\"\nimport \"./statement.js\"\nimport \"./expression.js\"\n\nexport {LooseParser} from \"./state.js\"\nexport {isDummy} from \"./parseutil.js\"\n\ndefaultOptions.tabSize = 4\n\nexport function parse(input, options) {\n return LooseParser.parse(input, options)\n}\n"],"names":["const","tt","let","SourceLocation","Node","lineBreak","isNewLine","Parser","Token","getLineInfo","lineBreakG","lp","init","decl","elt","node","defaultOptions"],"mappings":";;;;;;EAAOA,IAAM,UAAU,GAAG,IAAG;AAC7B;EACO,SAAS,OAAO,CAAC,IAAI,EAAE,EAAE,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU;;ECC/D,SAAS,IAAI,GAAG,EAAE;AAClB;AACA,MAAa,WAAW,GACtB,oBAAW,CAAC,KAAK,EAAE,OAAY,EAAE;qCAAP,GAAG;AAAK;EACpC,EAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,EAAC;EACrE,EAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAO;EACpC,EAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAK;EAChC,EAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,EAAEC,cAAE,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAC;EAC3D,EAAI,IAAI,CAAC,GAAG,CAAC,mBAAmB,GAAG,KAAI;EACvC,EAAI,IAAI,CAAC,GAAG,CAAC,qBAAqB,GAAG,KAAI;EACzC,EAAI,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;EAChC,IAAMC,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,GAAE;EACxC,IAAM,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,IAAIC,oBAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAC;EAC9D,GAAK;EACL,EAAI,IAAI,CAAC,KAAK,GAAG,GAAE;EACnB,EAAI,IAAI,CAAC,OAAO,GAAG,GAAE;EACrB,EAAI,IAAI,CAAC,SAAS,GAAG,EAAC;EACtB,EAAI,IAAI,CAAC,YAAY,GAAG,EAAC;EACzB,EAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAC;EAC5D,EAAI,IAAI,CAAC,OAAO,GAAG,MAAK;EACxB,EAAI,IAAI,CAAC,UAAU,GAAG,MAAK;EACzB,EAAC;AACH;wBACE,kCAAY;EACd,EAAI,OAAO,IAAIC,UAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC;EAChG,EAAC;AACH;wBACE,8CAAkB;EACpB,EAAI,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK;EACvF,EAAC;AACH;wBACE,oCAAY,GAAG,EAAE;EACnB,EAAI,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;EAChC,IAAM,OAAO,IAAIA,UAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;EAChD,GAAK,MAAM;EACX,IAAM,OAAO,IAAIA,UAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;EACrC,GAAK;EACH,EAAC;AACH;wBACE,kCAAW,IAAI,EAAE,IAAI,EAAE;EACzB,EAAI,IAAI,CAAC,IAAI,GAAG,KAAI;EACpB,EAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAG;EAC5B,EAAI,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS;EAC9B,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAG;EACtC,EAAI,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM;EAC3B,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAG;EACnC,EAAI,OAAO,IAAI;EACb,EAAC;AACH;wBACE,gCAAU,IAAI,EAAE;EAClB,EAAIF,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,GAAE;EAChC,EAAI,KAAK,CAAC,IAAI,GAAG,KAAI;EACrB,EAAI,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,MAAK;EAC3B,EAAI,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS;EAC9B,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,QAAK;EACrC,EAAI,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM;EAC3B,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,QAAK;EAClC,EAAI,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,EAAED,cAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAC;EACrF,EAAI,OAAO,KAAK;EACd,EAAC;AACH;wBACE,oCAAa;EACf,EAAIC,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,EAAC;EAC5C,EAAI,KAAK,CAAC,IAAI,GAAG,WAAU;EAC3B,EAAI,OAAO,KAAK;EACd,EAAC;AACH;wBACE,sCAAc;EAChB,EAAIA,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,EAAC;EACzC,EAAI,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,GAAG,WAAU;EACxC,EAAI,OAAO,KAAK;EACd,EAAC;AACH;wBACE,oBAAI,IAAI,EAAE;EACZ,EAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,EAAE;EAChC,IAAM,IAAI,CAAC,IAAI,GAAE;EACjB,IAAM,OAAO,IAAI;EACjB,GAAK,MAAM;EACX,IAAM,OAAO,KAAK;EAClB,GAAK;EACH,EAAC;AACH;wBACE,sCAAa,IAAI,EAAE;EACrB,EAAI,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKD,cAAE,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,IAAI;EAC7D,EAAC;AACH;wBACE,wCAAc,IAAI,EAAE;EACtB,EAAI,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,GAAG,CAACA,cAAE,CAAC,IAAI,CAAC;EACrD,EAAC;AACH;wBACE,oDAAqB;EACvB,EAAI,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKA,cAAE,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKA,cAAE,CAAC,MAAM;EAClE,IAAMI,eAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;EACnE,EAAC;AACH;wBACE,kCAAY;EACd,EAAI,OAAO,IAAI,CAAC,GAAG,CAACJ,cAAE,CAAC,IAAI,CAAC;EAC1B,EAAC;AACH;wBACE,0BAAO,IAAI,EAAE;EACf,EAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAE,OAAO,MAAI;EACnC,EAAI,KAAKC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;EACjC,IAAM,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE;EAC3C,MAAQ,KAAKA,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAE,IAAI,CAAC,IAAI,KAAE;EAC/C,MAAQ,OAAO,IAAI;EACnB,KAAO;EACP,GAAK;EACH,EAAC;AACH;wBACE,4BAAS;EACX,EAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAC;EACnC,EAAC;AACH;wBACE,0BAAQ;EACV,EAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,GAAE;EACrC,EAAC;AACH;wBACE,4BAAQ,GAAG,EAAE;EACf,EAAI,OAAO,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAACI,eAAS,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAE,EAAE,MAAG;EACnF,EAAI,OAAO,GAAG;EACZ,EAAC;AACH;wBACE,8CAAiB,GAAG,EAAE;EACxB,EAAI,KAAKJ,IAAI,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE;EAChC,IAAMA,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,EAAC;EACzC,IAAM,IAAI,EAAE,KAAK,EAAE,IAAE,EAAE,QAAK;EAC5B,SAAW,IAAI,EAAE,KAAK,CAAC,IAAE,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,UAAO;EACtD,WAAW,OAAO,OAAK;EACvB,GAAK;EACH,EAAC;AACH;wBACE,0BAAO,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE;EACjD,EAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKD,cAAE,CAAC,GAAG,IAAE,OAAO,MAAI;EAC3E,EAAI,OAAO,IAAI,KAAK,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI,IAAI,CAAC,eAAe,EAAE;EAC1F,KAAO,CAAC,cAAc,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM;EACjE,KAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC;EACxD,EAAC;AACH;wBACE,8CAAkB;EACpB,EAAI,KAAKC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC,EAAE;EAClE,IAAMA,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAC;EACvC,IAAM,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,IAAE,OAAO,OAAK;EAC7C,GAAK;EACL,EAAI,OAAO,IAAI;EACb,EAAC;AACH;wBACE,0BAAO,IAAI,EAAE,CAAC,EAAE;EAClB,EAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC;EAC5B,EAAC;AACH;wBACE,0BAAQ;EACV,EAAI,IAAI,CAAC,IAAI,GAAE;EACf,EAAI,OAAO,IAAI,CAAC,aAAa,EAAE;EAC7B,EAAC;AACH;EACE,YAAO,4BAAmB;;;AAAC;EAC7B,EAAIA,IAAI,GAAG,GAAG,KAAI;EAClB,EAAI,KAAKA,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,IAAE,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAC;EAClE,EAAI,OAAO,GAAG;EACZ,EAAC;AACH;EACE,YAAO,wBAAM,KAAK,EAAE,OAAO,EAAE;EAC/B,EAAI,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE;EACzC,EACD;AACD;EACA;EACA,WAAW,CAAC,UAAU,GAAGK;;ECtKzBP,IAAM,EAAE,GAAG,WAAW,CAAC,UAAS;AAChC;EACA,SAAS,OAAO,CAAC,EAAE,EAAE;EACrB,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,GAAG,IAAIM,eAAS,CAAC,EAAE,CAAC;EACxE,CAAC;AACD;EACA,EAAE,CAAC,IAAI,GAAG,WAAW;EACrB,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAG;EACtB,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM;EACvB,MAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,KAAE;EACjC;EACA,MAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,KAAE;AAC/B;EACA,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE;EAC5C,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE;EACjD,MAAM,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAa;EAC5C,MAAM,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAC;EAC9D,KAAK;EACL,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAC;EAC7D,GAAG;EACH,EAAC;AACD;EACA,EAAE,CAAC,SAAS,GAAG,WAAW;EAC1B,EAAE,SAAS;EACX,IAAI,IAAI;EACR,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,GAAE;EACtB,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAKL,cAAE,CAAC,GAAG;EACnC,UAAU,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,GAAG;EACrD,UAAU,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,EAAE;EACzC,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,GAAE;EACvB,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,GAAGA,cAAE,CAAC,SAAQ;EACpC,OAAO;EACP,MAAM,OAAO,IAAIO,WAAK,CAAC,IAAI,CAAC,IAAI,CAAC;EACjC,KAAK,CAAC,OAAO,CAAC,EAAE;EAChB,MAAM,IAAI,EAAE,CAAC,YAAY,WAAW,CAAC,IAAE,MAAM,GAAC;AAC9C;EACA;EACA,MAAMN,IAAI,GAAG,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,GAAG,KAAI;EAC3D,MAAM,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;EACrC,QAAQ,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,EAAC;EACrC,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;EAChC,UAAU,OAAO,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAED,cAAE,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,EAAC;EACtG,SAAS,MAAM,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;EAC9C,UAAUC,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAC;EAC/C,UAAU,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,CAAC,EAAE,EAAC,EAAE,CAAC,OAAO,CAAC,EAAE,oDAAoD;EACpG,UAAU,OAAO,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAED,cAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,EAAC;EACxE,SAAS,MAAM,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;EACzC,UAAU,OAAO,GAAG;EACpB,YAAY,KAAK,EAAE,CAAC,CAAC,GAAG;EACxB,YAAY,GAAG,EAAE,GAAG;EACpB,YAAY,IAAI,EAAEA,cAAE,CAAC,QAAQ;EAC7B,YAAY,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC;EAC/C,YAAW;EACX,SAAS,MAAM;EACf,UAAU,OAAO,GAAG,MAAK;EACzB,SAAS;EACT,OAAO,MAAM,IAAI,6HAA6H,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;EAC1J,QAAQ,OAAO,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAE,EAAE,MAAG;EACrF,OAAO,MAAM,IAAI,wCAAwC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;EACrE,QAAQ,OAAO,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;EACxC,UAAUC,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,EAAC;EAC/C,UAAU,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAII,eAAS,CAAC,EAAE,CAAC,IAAE,OAAK;EAC5D,SAAS;EACT,OAAO,MAAM,IAAI,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;EACpD,QAAQ,GAAG,GAAE;EACb,QAAQ,OAAO,GAAG,MAAK;EACvB,OAAO,MAAM,IAAI,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;EAClD,QAAQ,OAAO,GAAG,KAAI;EACtB,OAAO,MAAM;EACb,QAAQ,MAAM,CAAC;EACf,OAAO;EACP,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAC;EACvB,MAAM,IAAI,OAAO,KAAK,IAAI,IAAE,OAAO,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAEL,cAAE,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,IAAC;EAC9F,MAAM,IAAI,OAAO,EAAE;EACnB,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS;EAClC,YAAU,OAAO,CAAC,GAAG,GAAG,IAAIE,oBAAc;EAC1C,YAAY,IAAI,CAAC,IAAI;EACrB,YAAYM,iBAAW,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC;EAClD,YAAYA,iBAAW,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,IAAC;EACjD,QAAQ,OAAO,OAAO;EACtB,OAAO;EACP,KAAK;EACL,GAAG;EACH,EAAC;AACD;EACA,EAAE,CAAC,OAAO,GAAG,SAAS,GAAG,EAAE;EAC3B,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,IAAG;EACrB,EAAEP,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,EAAC;EACrC,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE,IAAI,yBAAyB,CAAC,IAAI,CAAC,EAAE,CAAC;EACnE,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;EACtB,IAAI,mEAAmE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,EAAE,GAAG,CAAC,EAAC;AAC7G;EACA,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;EAC9B,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,EAAC;EACzB,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,GAAGQ,gBAAU,CAAC,SAAS,GAAG,EAAC;EAClD,IAAIR,IAAI,MAAK;EACb,IAAI,OAAO,CAAC,KAAK,GAAGQ,gBAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,KAAK,GAAG,GAAG,EAAE;EACvE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,QAAO;EACzB,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAM;EACzD,KAAK;EACL,GAAG;EACH,EAAC;AACD;EACA,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC,EAAE;EAC3B,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM;EAC9B,MAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAC;EACrC,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;EAC1B,CAAC;;EC3GDV,IAAMW,IAAE,GAAG,WAAW,CAAC,UAAS;AAChC;AACAA,MAAE,CAAC,aAAa,GAAG,WAAW;EAC9B,EAAET,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC,EAAEO,iBAAW,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAC;EAC3F,EAAE,IAAI,CAAC,IAAI,GAAG,GAAE;EAChB,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKR,cAAE,CAAC,GAAG,IAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAC;EACxE,EAAE,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAC;EAC7C,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAG;EACtB,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,WAAU;EAC3C,EAAE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC;EACzC,EAAC;AACD;AACAU,MAAE,CAAC,cAAc,GAAG,WAAW;EAC/B,EAAET,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,KAAI;AAC9D;EACA,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE;EACzB,IAAI,SAAS,GAAGD,cAAE,CAAC,KAAI;EACvB,IAAI,IAAI,GAAG,MAAK;EAChB,GAAG;AACH;EACA,EAAE,QAAQ,SAAS;EACnB,EAAE,KAAKA,cAAE,CAAC,MAAM,CAAC,CAAC,KAAKA,cAAE,CAAC,SAAS;EACnC,IAAI,IAAI,CAAC,IAAI,GAAE;EACf,IAAIC,IAAI,OAAO,GAAG,SAAS,KAAKD,cAAE,CAAC,OAAM;EACzC,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,kBAAkB,EAAE,EAAE;EACvD,MAAM,IAAI,CAAC,KAAK,GAAG,KAAI;EACvB,KAAK,MAAM;EACX,MAAM,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKA,cAAE,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,KAAI;EACvE,MAAM,IAAI,CAAC,SAAS,GAAE;EACtB,KAAK;EACL,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,gBAAgB,GAAG,mBAAmB,CAAC;AAClF;EACA,EAAE,KAAKA,cAAE,CAAC,SAAS;EACnB,IAAI,IAAI,CAAC,IAAI,GAAE;EACf,IAAI,IAAI,CAAC,SAAS,GAAE;EACpB,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,mBAAmB,CAAC;AACrD;EACA,EAAE,KAAKA,cAAE,CAAC,GAAG;EACb,IAAI,IAAI,CAAC,IAAI,GAAE;EACf,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,GAAE;EACrC,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAACA,cAAE,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,oBAAoB,EAAE,GAAG,IAAI,CAAC,UAAU,GAAE;EACrF,IAAI,IAAI,CAAC,SAAS,GAAE;EACpB,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,kBAAkB,CAAC;AACpD;EACA,EAAE,KAAKA,cAAE,CAAC,IAAI;EACd,IAAI,IAAI,CAAC,IAAI,GAAE;EACf,IAAIC,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,EAAC;AAC9E;EACA,IAAI,IAAI,CAAC,MAAM,GAAE;EACjB,IAAI,IAAI,CAAC,MAAM,CAACD,cAAE,CAAC,MAAM,EAAC;EAC1B,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKA,cAAE,CAAC,IAAI,IAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAC;EACnE,IAAIC,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAE;EACjC,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKD,cAAE,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKA,cAAE,CAAC,MAAM,EAAE;EAC3E,MAAMC,IAAIU,MAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAC;EACtF,MAAM,IAAIA,MAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKX,cAAE,CAAC,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE;EACnG,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKA,cAAE,CAAC,GAAG,EAAE;EACvE,UAAU,IAAI,CAAC,KAAK,GAAG,QAAO;EAC9B,SAAS;EACT,QAAQ,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAEW,MAAI,CAAC;EAC1C,OAAO;EACP,MAAM,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAEA,MAAI,CAAC;EACtC,KAAK;EACL,IAAIV,IAAI,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,EAAC;EACzC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKD,cAAE,CAAC,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;EAC7D,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKA,cAAE,CAAC,GAAG,EAAE;EACrE,QAAQ,IAAI,CAAC,KAAK,GAAG,QAAO;EAC5B,OAAO;EACP,MAAM,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;EAC3D,KAAK;EACL,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;AACpC;EACA,EAAE,KAAKA,cAAE,CAAC,SAAS;EACnB,IAAI,IAAI,CAAC,IAAI,GAAE;EACf,IAAI,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC;AACzC;EACA,EAAE,KAAKA,cAAE,CAAC,GAAG;EACb,IAAI,IAAI,CAAC,IAAI,GAAE;EACf,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,oBAAoB,GAAE;EAC3C,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,GAAE;EAC3C,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAACA,cAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,KAAI;EACtE,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,aAAa,CAAC;AAC/C;EACA,EAAE,KAAKA,cAAE,CAAC,OAAO;EACjB,IAAI,IAAI,CAAC,IAAI,GAAE;EACf,IAAI,IAAI,IAAI,CAAC,GAAG,CAACA,cAAE,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,kBAAkB,EAAE,IAAE,IAAI,CAAC,QAAQ,GAAG,OAAI;EAC5E,SAAS,EAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,GAAE,EAAE;EACrE,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,iBAAiB,CAAC;AACnD;EACA,EAAE,KAAKA,cAAE,CAAC,OAAO;EACjB,IAAIC,IAAI,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC,aAAY;EAC9D,IAAI,IAAI,CAAC,IAAI,GAAE;EACf,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,oBAAoB,GAAE;EACnD,IAAI,IAAI,CAAC,KAAK,GAAG,GAAE;EACnB,IAAI,IAAI,CAAC,MAAM,GAAE;EACjB,IAAI,IAAI,CAAC,MAAM,CAACD,cAAE,CAAC,MAAM,EAAC;AAC1B;EACA,IAAIC,IAAI,IAAG;EACX,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAACD,cAAE,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE;EAC7D,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKA,cAAE,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKA,cAAE,CAAC,QAAQ,EAAE;EACvE,QAAQC,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKD,cAAE,CAAC,MAAK;EAC/C,QAAQ,IAAI,GAAG,IAAE,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,YAAY,IAAC;EACnD,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,EAAC;EAC/C,QAAQ,GAAG,CAAC,UAAU,GAAG,GAAE;EAC3B,QAAQ,IAAI,CAAC,IAAI,GAAE;EACnB,QAAQ,IAAI,MAAM,IAAE,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,KAAE;EACrD,eAAa,GAAG,CAAC,IAAI,GAAG,OAAI;EAC5B,QAAQ,IAAI,CAAC,MAAM,CAACA,cAAE,CAAC,KAAK,EAAC;EAC7B,OAAO,MAAM;EACb,QAAQ,IAAI,CAAC,GAAG,EAAE;EAClB,UAAU,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,EAAC;EACjD,UAAU,GAAG,CAAC,UAAU,GAAG,GAAE;EAC7B,UAAU,GAAG,CAAC,IAAI,GAAG,KAAI;EACzB,SAAS;EACT,QAAQ,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAC;EAClD,OAAO;EACP,KAAK;EACL,IAAI,IAAI,GAAG,IAAE,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,YAAY,IAAC;EAC/C,IAAI,IAAI,CAAC,KAAK,GAAE;EAChB,IAAI,IAAI,CAAC,GAAG,CAACA,cAAE,CAAC,MAAM,EAAC;EACvB,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,iBAAiB,CAAC;AACnD;EACA,EAAE,KAAKA,cAAE,CAAC,MAAM;EAChB,IAAI,IAAI,CAAC,IAAI,GAAE;EACf,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,GAAE;EAC1C,IAAI,IAAI,CAAC,SAAS,GAAE;EACpB,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,gBAAgB,CAAC;AAClD;EACA,EAAE,KAAKA,cAAE,CAAC,IAAI;EACd,IAAI,IAAI,CAAC,IAAI,GAAE;EACf,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,GAAE;EAClC,IAAI,IAAI,CAAC,OAAO,GAAG,KAAI;EACvB,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKA,cAAE,CAAC,MAAM,EAAE;EACrC,MAAMC,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,GAAE;EACnC,MAAM,IAAI,CAAC,IAAI,GAAE;EACjB,MAAM,IAAI,IAAI,CAAC,GAAG,CAACD,cAAE,CAAC,MAAM,CAAC,EAAE;EAC/B,QAAQ,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,EAAC;EACpE,QAAQ,IAAI,CAAC,MAAM,CAACA,cAAE,CAAC,MAAM,EAAC;EAC9B,OAAO,MAAM;EACb,QAAQ,MAAM,CAAC,KAAK,GAAG,KAAI;EAC3B,OAAO;EACP,MAAM,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,GAAE;EACrC,MAAM,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,aAAa,EAAC;EAC3D,KAAK;EACL,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAACA,cAAE,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,KAAI;EACrE,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,IAAE,OAAO,IAAI,CAAC,OAAK;EAC3D,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,cAAc,CAAC;AAChD;EACA,EAAE,KAAKA,cAAE,CAAC,IAAI,CAAC;EACf,EAAE,KAAKA,cAAE,CAAC,MAAM;EAChB,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;AAC7D;EACA,EAAE,KAAKA,cAAE,CAAC,MAAM;EAChB,IAAI,IAAI,CAAC,IAAI,GAAE;EACf,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,oBAAoB,GAAE;EAC3C,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,GAAE;EACrC,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,gBAAgB,CAAC;AAClD;EACA,EAAE,KAAKA,cAAE,CAAC,KAAK;EACf,IAAI,IAAI,CAAC,IAAI,GAAE;EACf,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,oBAAoB,GAAE;EAC7C,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,GAAE;EACrC,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,eAAe,CAAC;AACjD;EACA,EAAE,KAAKA,cAAE,CAAC,MAAM;EAChB,IAAI,OAAO,IAAI,CAAC,UAAU,EAAE;AAC5B;EACA,EAAE,KAAKA,cAAE,CAAC,IAAI;EACd,IAAI,IAAI,CAAC,IAAI,GAAE;EACf,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,gBAAgB,CAAC;AAClD;EACA,EAAE,KAAKA,cAAE,CAAC,MAAM;EAChB,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AAChC;EACA,EAAE,KAAKA,cAAE,CAAC,OAAO;EACjB,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,EAAE,EAAE;EACvC,MAAMD,IAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAI;EAC7C,MAAM,IAAI,QAAQ,KAAKC,cAAE,CAAC,MAAM,IAAI,QAAQ,KAAKA,cAAE,CAAC,GAAG,EAAE;EACzD,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,GAAE;EAChD,QAAQ,IAAI,CAAC,SAAS,GAAE;EACxB,QAAQ,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,qBAAqB,CAAC;EAC3D,OAAO;EACP,KAAK;AACL;EACA,IAAI,OAAO,IAAI,CAAC,WAAW,EAAE;AAC7B;EACA,EAAE,KAAKA,cAAE,CAAC,OAAO;EACjB,IAAI,OAAO,IAAI,CAAC,WAAW,EAAE;AAC7B;EACA,EAAE;EACF,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE;EACrC,MAAM,IAAI,CAAC,IAAI,GAAE;EACjB,MAAM,IAAI,CAAC,IAAI,GAAE;EACjB,MAAM,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;EACjD,KAAK;EACL,IAAIC,IAAI,IAAI,GAAG,IAAI,CAAC,eAAe,GAAE;EACrC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE;EACvB,MAAM,IAAI,CAAC,IAAI,GAAE;EACjB,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKD,cAAE,CAAC,GAAG,IAAE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,gBAAgB,GAAC;EAClF,MAAM,OAAO,IAAI,CAAC,cAAc,EAAE;EAClC,KAAK,MAAM,IAAI,SAAS,KAAKA,cAAE,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,GAAG,CAACA,cAAE,CAAC,KAAK,CAAC,EAAE;EAC1F,MAAM,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,GAAE;EACvC,MAAM,IAAI,CAAC,KAAK,GAAG,KAAI;EACvB,MAAM,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,kBAAkB,CAAC;EACtD,KAAK,MAAM;EACX,MAAM,IAAI,CAAC,UAAU,GAAG,KAAI;EAC5B,MAAM,IAAI,CAAC,SAAS,GAAE;EACtB,MAAM,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,qBAAqB,CAAC;EACzD,KAAK;EACL,GAAG;EACH,EAAC;AACD;AACAU,MAAE,CAAC,UAAU,GAAG,WAAW;EAC3B,EAAET,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,GAAE;EAC7B,EAAE,IAAI,CAAC,MAAM,GAAE;EACf,EAAE,IAAI,CAAC,MAAM,CAACD,cAAE,CAAC,MAAM,EAAC;EACxB,EAAEC,IAAI,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC,aAAY;EAC5D,EAAE,IAAI,CAAC,IAAI,GAAG,GAAE;EAChB,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAACD,cAAE,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC;EACzD,MAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAC;EACzC,EAAE,IAAI,CAAC,KAAK,GAAE;EACd,EAAE,IAAI,CAAC,GAAG,CAACA,cAAE,CAAC,MAAM,EAAC;EACrB,EAAE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,gBAAgB,CAAC;EAChD,EAAC;AACD;AACAU,MAAE,CAAC,QAAQ,GAAG,SAAS,IAAI,EAAE,IAAI,EAAE;EACnC,EAAE,IAAI,CAAC,IAAI,GAAG,KAAI;EAClB,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,KAAI;EAChC,EAAE,IAAI,IAAI,CAAC,GAAG,CAACV,cAAE,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKA,cAAE,CAAC,IAAI,IAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,KAAE;EACxF,EAAE,IAAI,IAAI,CAAC,GAAG,CAACA,cAAE,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKA,cAAE,CAAC,MAAM,IAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,KAAE;EAC5F,EAAE,IAAI,CAAC,KAAK,GAAE;EACd,EAAE,IAAI,CAAC,MAAM,CAACA,cAAE,CAAC,MAAM,EAAC;EACxB,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,GAAE;EACnC,EAAE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,cAAc,CAAC;EAC9C,EAAC;AACD;AACAU,MAAE,CAAC,UAAU,GAAG,SAAS,IAAI,EAAE,IAAI,EAAE;EACrC,EAAET,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKD,cAAE,CAAC,GAAG,GAAG,gBAAgB,GAAG,iBAAgB;EAC3E,EAAE,IAAI,CAAC,IAAI,GAAE;EACb,EAAE,IAAI,CAAC,IAAI,GAAG,KAAI;EAClB,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,GAAE;EACrC,EAAE,IAAI,CAAC,KAAK,GAAE;EACd,EAAE,IAAI,CAAC,MAAM,CAACA,cAAE,CAAC,MAAM,EAAC;EACxB,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,GAAE;EACnC,EAAE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC;EACpC,EAAC;AACD;AACAU,MAAE,CAAC,QAAQ,GAAG,SAAS,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;EACzC,EAAE,IAAI,CAAC,IAAI,GAAG,KAAI;EAClB,EAAE,IAAI,CAAC,IAAI,GAAE;EACb,EAAE,IAAI,CAAC,YAAY,GAAG,GAAE;EACxB,EAAE,GAAG;EACL,IAAIT,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,GAAE;EAC/B,IAAI,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,GAAE;EAC/G,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAACD,cAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,KAAI;EACpE,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,oBAAoB,CAAC,EAAC;EACvE,GAAG,QAAQ,IAAI,CAAC,GAAG,CAACA,cAAE,CAAC,KAAK,CAAC,CAAC;EAC9B,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;EACjC,IAAIC,IAAIW,MAAI,GAAG,IAAI,CAAC,SAAS,GAAE;EAC/B,IAAIA,MAAI,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,GAAE;EAC/B,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAACA,MAAI,EAAE,oBAAoB,CAAC,EAAC;EACvE,GAAG;EACH,EAAE,IAAI,CAAC,IAAI,IAAE,IAAI,CAAC,SAAS,KAAE;EAC7B,EAAE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,qBAAqB,CAAC;EACrD,EAAC;AACD;AACAF,MAAE,CAAC,UAAU,GAAG,SAAS,WAAW,EAAE;EACtC,EAAET,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,GAAE;EAC7B,EAAE,IAAI,CAAC,IAAI,GAAE;EACb,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKD,cAAE,CAAC,IAAI,IAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,KAAE;EAC5D,OAAO,IAAI,WAAW,KAAK,IAAI,IAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,KAAE;EAC5D,SAAO,IAAI,CAAC,EAAE,GAAG,OAAI;EACrB,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAACA,cAAE,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,GAAG,KAAI;EACzE,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,GAAE;EAC9B,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,GAAE;EACrB,EAAE,IAAI,CAAC,MAAM,GAAE;EACf,EAAEC,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,aAAY;EAC3D,EAAE,IAAI,CAAC,GAAG,CAACD,cAAE,CAAC,MAAM,EAAC;EACrB,EAAE,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,MAAM,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,aAAY,EAAE;EACxF,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAACA,cAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;EAChD,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,IAAE,UAAQ;EAClC,IAAIC,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,sBAAW,EAAE,mBAAO;EACvD,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,EAAE;EACvC,MAAM,MAAM,CAAC,MAAM,GAAG,MAAK;EAC3B,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAACD,cAAE,CAAC,IAAI,EAAC;EACrC,KAAK;EACL,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAC;EAClC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,IAAE,IAAI,CAAC,IAAI,EAAE,GAAC,CAAC,IAAI,CAAC,GAAG,CAACA,cAAE,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE;EAChH,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,QAAQ;EAC5F,SAAS,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKA,cAAE,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKA,cAAE,CAAC,MAAM,CAAC,EAAE;EACtE,MAAM,MAAM,CAAC,MAAM,GAAG,KAAI;EAC1B,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAACA,cAAE,CAAC,IAAI,EAAC;EACrC,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAC;EACpC,KAAK,MAAM;EACX,MAAM,MAAM,CAAC,MAAM,GAAG,MAAK;EAC3B,KAAK;EACL,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ;EACxB,QAAQ,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,YAAY,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKA,cAAE,CAAC,MAAM;EACtG,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE;EACpC,MAAM,OAAO,GAAG,KAAI;EACpB,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAACA,cAAE,CAAC,IAAI,EAAC;EACtE,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAC;EACpC,KAAK,MAAM;EACX,MAAM,OAAO,GAAG,MAAK;EACrB,KAAK;EACL,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,YAAY;EACzE,QAAQ,CAAC,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC;EACpF,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKA,cAAE,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKA,cAAE,CAAC,MAAM,EAAE;EACpE,MAAM,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,KAAI;EACnC,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAC;EACpC,MAAM,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAC;EAC5C,KAAK,MAAM;EACX,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,WAAW,IAAI,CAAC,OAAO;EACxE,QAAQ,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,YAAY,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,aAAa;EAC7E,UAAU,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,KAAK,aAAa,CAAC,EAAE;EAChF,QAAQ,MAAM,CAAC,IAAI,GAAG,cAAa;EACnC,OAAO,MAAM;EACb,QAAQ,MAAM,CAAC,IAAI,GAAG,SAAQ;EAC9B,OAAO;EACP,MAAM,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,OAAO,EAAC;EAC3D,KAAK;EACL,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAAC;EACpE,GAAG;EACH,EAAE,IAAI,CAAC,KAAK,GAAE;EACd,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAACA,cAAE,CAAC,MAAM,CAAC,EAAE;EAC5B;EACA;EACA,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAK;EAClC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAK;EACtE,GAAG;EACH,EAAE,IAAI,CAAC,SAAS,GAAE;EAClB,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAC;EACzC,EAAE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,WAAW,GAAG,kBAAkB,GAAG,iBAAiB,CAAC;EACpF,EAAC;AACD;AACAU,MAAE,CAAC,aAAa,GAAG,SAAS,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE;EACxD,EAAET,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAAC,WAAU;EAChE,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,EAAC;EACzB,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,EAAE;EACrC,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAACD,cAAE,CAAC,IAAI,EAAC;EACtC,GAAG;EACH,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,EAAE;EACrC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,QAAO;EAC1B,GAAG;EACH,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKA,cAAE,CAAC,IAAI,IAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,KAAE;EAC5D,OAAO,IAAI,WAAW,KAAK,IAAI,IAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,KAAE;EAC5D,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAK;EAC3B,EAAE,IAAI,CAAC,UAAU,GAAG,KAAI;EACxB,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,mBAAmB,GAAE;EAC1C,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,GAAE;EAC/B,EAAE,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAC;EAClD,EAAE,IAAI,CAAC,OAAO,GAAG,WAAU;EAC3B,EAAE,IAAI,CAAC,UAAU,GAAG,cAAa;EACjC,EAAE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,WAAW,GAAG,qBAAqB,GAAG,oBAAoB,CAAC;EAC1F,EAAC;AACD;AACAU,MAAE,CAAC,WAAW,GAAG,WAAW;EAC5B,EAAET,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,GAAE;EAC7B,EAAE,IAAI,CAAC,IAAI,GAAE;EACb,EAAE,IAAI,IAAI,CAAC,GAAG,CAACD,cAAE,CAAC,IAAI,CAAC,EAAE;EACzB,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,EAAE;EACxC,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;EACpC,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,GAAE;EAC5C,OAAO,MAAM;EACb,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAI;EAC5B,OAAO;EACP,KAAK;EACL,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC,WAAW,GAAE;EACxF,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,sBAAsB,CAAC;EACxD,GAAG;EACH,EAAE,IAAI,IAAI,CAAC,GAAG,CAACA,cAAE,CAAC,QAAQ,CAAC,EAAE;EAC7B;EACA,IAAIC,IAAI,QAAO;EACf,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKD,cAAE,CAAC,SAAS,KAAK,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE;EACnF,MAAMC,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,GAAE;EAClC,MAAM,IAAI,CAAC,IAAI,GAAE;EACjB,MAAM,IAAI,OAAO,IAAE,IAAI,CAAC,IAAI,KAAE;EAC9B,MAAM,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAC;EACzE,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKD,cAAE,CAAC,MAAM,EAAE;EAC5C,MAAM,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,EAAC;EACtD,KAAK,MAAM;EACX,MAAM,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,GAAE;EAChD,MAAM,IAAI,CAAC,SAAS,GAAE;EACtB,KAAK;EACL,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,0BAA0B,CAAC;EAC5D,GAAG;EACH,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE;EACjF,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,GAAE;EAC5C,IAAI,IAAI,CAAC,UAAU,GAAG,GAAE;EACxB,IAAI,IAAI,CAAC,MAAM,GAAG,KAAI;EACtB,GAAG,MAAM;EACT,IAAI,IAAI,CAAC,WAAW,GAAG,KAAI;EAC3B,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,wBAAwB,GAAE;EACrD,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,KAAI;EAC1E,IAAI,IAAI,CAAC,SAAS,GAAE;EACpB,GAAG;EACH,EAAE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,wBAAwB,CAAC;EACxD,EAAC;AACD;AACAU,MAAE,CAAC,WAAW,GAAG,WAAW;EAC5B,EAAET,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,GAAE;EAC7B,EAAE,IAAI,CAAC,IAAI,GAAE;EACb,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKD,cAAE,CAAC,MAAM,EAAE;EACnC,IAAI,IAAI,CAAC,UAAU,GAAG,GAAE;EACxB,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,GAAE;EACtC,GAAG,MAAM;EACT,IAAIC,IAAI,IAAG;EACX,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKD,cAAE,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,MAAM,EAAE;EAChE,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,GAAE;EAC5B,MAAM,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,GAAE;EACnC,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,wBAAwB,EAAC;EACpD,MAAM,IAAI,CAAC,GAAG,CAACA,cAAE,CAAC,KAAK,EAAC;EACxB,KAAK;EACL,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,qBAAqB,GAAE;EAClD,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKA,cAAE,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC,WAAW,GAAE;EACvH,IAAI,IAAI,GAAG,IAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,IAAC;EACzC,GAAG;EACH,EAAE,IAAI,CAAC,SAAS,GAAE;EAClB,EAAE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,mBAAmB,CAAC;EACnD,EAAC;AACD;AACAU,MAAE,CAAC,qBAAqB,GAAG,WAAW;EACtC,EAAET,IAAI,IAAI,GAAG,GAAE;EACf,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKD,cAAE,CAAC,IAAI,EAAE;EACjC,IAAIC,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,GAAE;EAC9B,IAAI,IAAI,CAAC,IAAI,GAAE;EACf,IAAI,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,UAAU,GAAE;EAChF,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,0BAA0B,CAAC,EAAC;EAC/D,GAAG,MAAM;EACT,IAAIA,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,aAAa,GAAG,IAAI,CAAC,cAAa;EAC7F,IAAI,IAAI,CAAC,MAAM,GAAE;EACjB,IAAI,IAAI,CAAC,GAAG,CAACD,cAAE,CAAC,MAAM,EAAC;EACvB,IAAI,IAAI,IAAI,CAAC,YAAY,GAAG,aAAa,IAAE,aAAa,GAAG,IAAI,CAAC,eAAY;EAC5E,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAACA,cAAE,CAAC,MAAM,EAAE,MAAM,IAAI,IAAI,CAAC,YAAY,IAAI,aAAa,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE;EACjG,MAAMC,IAAIY,KAAG,GAAG,IAAI,CAAC,SAAS,GAAE;EAChC,MAAM,IAAI,IAAI,CAAC,GAAG,CAACb,cAAE,CAAC,IAAI,CAAC,EAAE;EAC7B,QAAQa,KAAG,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,UAAU,GAAE;EACpF,QAAQ,IAAI,CAAC,UAAU,CAACA,KAAG,EAAE,0BAA0B,EAAC;EACxD,OAAO,MAAM;EACb,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAE,OAAK;EAC5C,QAAQA,KAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,GAAE;EACxC,QAAQ,IAAI,OAAO,CAACA,KAAG,CAAC,QAAQ,CAAC,IAAE,OAAK;EACxC,QAAQA,KAAG,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,GAAGA,KAAG,CAAC,SAAQ;EAC/E,QAAQ,IAAI,CAAC,UAAU,CAACA,KAAG,EAAE,iBAAiB,EAAC;EAC/C,OAAO;EACP,MAAM,IAAI,CAAC,IAAI,CAACA,KAAG,EAAC;EACpB,MAAM,IAAI,CAAC,GAAG,CAACb,cAAE,CAAC,KAAK,EAAC;EACxB,KAAK;EACL,IAAI,IAAI,CAAC,GAAG,CAACA,cAAE,CAAC,MAAM,EAAC;EACvB,IAAI,IAAI,CAAC,KAAK,GAAE;EAChB,GAAG;EACH,EAAE,OAAO,IAAI;EACb,EAAC;AACD;AACAU,MAAE,CAAC,wBAAwB,GAAG,WAAW;EACzC,EAAET,IAAI,IAAI,GAAG,GAAE;EACf,EAAEA,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,aAAa,GAAG,IAAI,CAAC,cAAa;EAC3F,EAAE,IAAI,CAAC,MAAM,GAAE;EACf,EAAE,IAAI,CAAC,GAAG,CAACD,cAAE,CAAC,MAAM,EAAC;EACrB,EAAE,IAAI,IAAI,CAAC,YAAY,GAAG,aAAa,IAAE,aAAa,GAAG,IAAI,CAAC,eAAY;EAC1E,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAACA,cAAE,CAAC,MAAM,EAAE,MAAM,IAAI,IAAI,CAAC,YAAY,IAAI,aAAa,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE;EAC/F,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAE,OAAK;EACxC,IAAIC,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,GAAE;EAC9B,IAAI,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,GAAE;EACjC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAE,OAAK;EACjC,IAAI,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,GAAG,CAAC,MAAK;EAC3E,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,iBAAiB,EAAC;EAC3C,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAC;EAClB,IAAI,IAAI,CAAC,GAAG,CAACD,cAAE,CAAC,KAAK,EAAC;EACtB,GAAG;EACH,EAAE,IAAI,CAAC,GAAG,CAACA,cAAE,CAAC,MAAM,EAAC;EACrB,EAAE,IAAI,CAAC,KAAK,GAAE;EACd,EAAE,OAAO,IAAI;EACb,CAAC;;ECxdDD,IAAMW,IAAE,GAAG,WAAW,CAAC,UAAS;AAChC;AACAA,MAAE,CAAC,SAAS,GAAG,SAAS,IAAI,EAAE;EAC9B,EAAE,IAAI,CAAC,IAAI,IAAE,OAAO,MAAI;EACxB,EAAE,QAAQ,IAAI,CAAC,IAAI;EACnB,EAAE,KAAK,YAAY,CAAC;EACpB,EAAE,KAAK,kBAAkB;EACzB,IAAI,OAAO,IAAI;AACf;EACA,EAAE,KAAK,yBAAyB;EAChC,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAC;EACrD,IAAI,OAAO,IAAI;AACf;EACA,EAAE;EACF,IAAI,OAAO,IAAI,CAAC,UAAU,EAAE;EAC5B,GAAG;EACH,EAAC;AACD;AACAA,MAAE,CAAC,eAAe,GAAG,SAAS,IAAI,EAAE;EACpC,EAAET,IAAI,KAAK,GAAG,IAAI,CAAC,eAAe,GAAE;EACpC,EAAEA,IAAI,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAC;EACxC,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKD,cAAE,CAAC,KAAK,EAAE;EAClC,IAAIC,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAC;EACtC,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,EAAC;EAC7B,IAAI,OAAO,IAAI,CAAC,GAAG,CAACD,cAAE,CAAC,KAAK,CAAC,IAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAC;EACjF,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,oBAAoB,CAAC;EACtD,GAAG;EACH,EAAE,OAAO,IAAI;EACb,EAAC;AACD;AACAU,MAAE,CAAC,oBAAoB,GAAG,WAAW;EACrC,EAAE,IAAI,CAAC,MAAM,GAAE;EACf,EAAE,IAAI,CAAC,MAAM,CAACV,cAAE,CAAC,MAAM,EAAC;EACxB,EAAEC,IAAI,GAAG,GAAG,IAAI,CAAC,eAAe,GAAE;EAClC,EAAE,IAAI,CAAC,KAAK,GAAE;EACd,EAAE,IAAI,CAAC,MAAM,CAACD,cAAE,CAAC,MAAM,EAAC;EACxB,EAAE,OAAO,GAAG;EACZ,EAAC;AACD;AACAU,MAAE,CAAC,gBAAgB,GAAG,SAAS,IAAI,EAAE;EACrC,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE;EACvC,IAAIT,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,GAAE;EAC/B,IAAI,IAAI,CAAC,IAAI,GAAE;EACf,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,kBAAkB,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKD,cAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;EACnH,MAAM,IAAI,CAAC,QAAQ,GAAG,MAAK;EAC3B,MAAM,IAAI,CAAC,QAAQ,GAAG,KAAI;EAC1B,KAAK,MAAM;EACX,MAAM,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAACA,cAAE,CAAC,IAAI,EAAC;EACvC,MAAM,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,GAAE;EAC7C,KAAK;EACL,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,iBAAiB,CAAC;EACnD,GAAG;AACH;EACA,EAAEC,IAAI,KAAK,GAAG,IAAI,CAAC,eAAe,GAAE;EACpC,EAAEA,IAAI,IAAI,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAC;EAC7C,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE;EAC9B,IAAIA,IAAIa,MAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAC;EACtC,IAAIA,MAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,MAAK;EAClC,IAAIA,MAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKd,cAAE,CAAC,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAC;EACxF,IAAI,IAAI,CAAC,IAAI,GAAE;EACf,IAAIc,MAAI,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAC;EAC5C,IAAI,OAAO,IAAI,CAAC,UAAU,CAACA,MAAI,EAAE,sBAAsB,CAAC;EACxD,GAAG;EACH,EAAE,OAAO,IAAI;EACb,EAAC;AACD;AACAJ,MAAE,CAAC,qBAAqB,GAAG,SAAS,IAAI,EAAE;EAC1C,EAAET,IAAI,KAAK,GAAG,IAAI,CAAC,eAAe,GAAE;EACpC,EAAEA,IAAI,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAC;EACpC,EAAE,IAAI,IAAI,CAAC,GAAG,CAACD,cAAE,CAAC,QAAQ,CAAC,EAAE;EAC7B,IAAIC,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAC;EACtC,IAAI,IAAI,CAAC,IAAI,GAAG,KAAI;EACpB,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,GAAE;EAC7C,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAACD,cAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,GAAE;EAC5F,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,uBAAuB,CAAC;EACzD,GAAG;EACH,EAAE,OAAO,IAAI;EACb,EAAC;AACD;AACAU,MAAE,CAAC,YAAY,GAAG,SAAS,IAAI,EAAE;EACjC,EAAET,IAAI,KAAK,GAAG,IAAI,CAAC,eAAe,GAAE;EACpC,EAAEA,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC,aAAY;EACvD,EAAE,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC;EACrF,EAAC;AACD;AACAS,MAAE,CAAC,WAAW,GAAG,SAAS,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;EACpE,EAAE,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI,IAAI,CAAC,eAAe,EAAE,IAAE,OAAO,MAAI;EAClG,EAAET,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAK;EAChC,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKD,cAAE,CAAC,GAAG,CAAC,EAAE;EAC3D,IAAI,IAAI,IAAI,GAAG,OAAO,EAAE;EACxB,MAAMC,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAC;EACxC,MAAM,IAAI,CAAC,IAAI,GAAG,KAAI;EACtB,MAAM,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,MAAK;EACpC,MAAM,IAAI,CAAC,IAAI,GAAE;EACjB,MAAM,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;EAC3F,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,GAAE;EACtC,OAAO,MAAM;EACb,QAAQA,IAAI,UAAU,GAAG,IAAI,CAAC,eAAe,GAAE;EAC/C,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAC;EACxG,OAAO;EACP,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,mBAAmB,GAAG,kBAAkB,EAAC;EAC1G,MAAM,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC;EACvE,KAAK;EACL,GAAG;EACH,EAAE,OAAO,IAAI;EACb,EAAC;AACD;AACAS,MAAE,CAAC,eAAe,GAAG,SAAS,QAAQ,EAAE;EACxC,EAAET,IAAI,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,EAAE,KAAI;EAC1C,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;EACtE,KAAK,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;EAClF,IAAI;EACJ,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAE;EAC5B,IAAI,QAAQ,GAAG,KAAI;EACnB,GAAG,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE;EACnC,IAAIA,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKD,cAAE,CAAC,OAAM;EACrE,IAAI,IAAI,CAAC,MAAM,IAAE,QAAQ,GAAG,OAAI;EAChC,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,MAAK;EAClC,IAAI,IAAI,CAAC,MAAM,GAAG,KAAI;EACtB,IAAI,IAAI,CAAC,IAAI,GAAE;EACf,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,EAAC;EAC9C,IAAI,IAAI,MAAM,IAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,IAAC;EAC7D,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,GAAG,iBAAiB,EAAC;EACjF,GAAG,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKA,cAAE,CAAC,QAAQ,EAAE;EAC5C,IAAIC,IAAIa,MAAI,GAAG,IAAI,CAAC,SAAS,GAAE;EAC/B,IAAI,IAAI,CAAC,IAAI,GAAE;EACf,IAAIA,MAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAC;EAClD,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAACA,MAAI,EAAE,eAAe,EAAC;EACjD,GAAG,MAAM;EACT,IAAI,IAAI,GAAG,IAAI,CAAC,mBAAmB,GAAE;EACrC,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE;EAChE,MAAMb,IAAIa,MAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAC;EACxC,MAAMA,MAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,MAAK;EACpC,MAAMA,MAAI,CAAC,MAAM,GAAG,MAAK;EACzB,MAAMA,MAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAC;EAC1C,MAAM,IAAI,CAAC,IAAI,GAAE;EACjB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAACA,MAAI,EAAE,kBAAkB,EAAC;EACtD,KAAK;EACL,GAAG;AACH;EACA,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,CAACd,cAAE,CAAC,QAAQ,CAAC,EAAE;EAC1C,IAAIC,IAAIa,MAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAC;EACtC,IAAIA,MAAI,CAAC,QAAQ,GAAG,KAAI;EACxB,IAAIA,MAAI,CAAC,IAAI,GAAG,KAAI;EACpB,IAAIA,MAAI,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAC;EAC5C,IAAI,OAAO,IAAI,CAAC,UAAU,CAACA,MAAI,EAAE,kBAAkB,CAAC;EACpD,GAAG;AACH;EACA,EAAE,OAAO,IAAI;EACb,EAAC;AACD;AACAJ,MAAE,CAAC,mBAAmB,GAAG,WAAW;EACpC,EAAET,IAAI,KAAK,GAAG,IAAI,CAAC,eAAe,GAAE;EACpC,EAAE,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC;EACpG,EAAC;AACD;AACAS,MAAE,CAAC,eAAe,GAAG,SAAS,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE;EACvE,EAAEX,IAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,GAAE;EAC1D,EAAEE,IAAI,eAAe,GAAG,MAAK;EAC7B,EAAE,SAAS;EACX,IAAI,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,WAAW,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;EAC/F,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKD,cAAE,CAAC,GAAG,IAAI,IAAI,CAAC,SAAS,KAAK,WAAW;EACpE,UAAQ,EAAE,cAAW;EACrB;EACA,UAAQ,OAAK;EACb,KAAK;AACL;EACA,IAAIC,IAAI,eAAe,GAAG,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,GAAE;EAC3G,IAAIA,IAAI,QAAQ,GAAG,iBAAiB,IAAI,IAAI,CAAC,GAAG,CAACD,cAAE,CAAC,WAAW,EAAC;EAChE,IAAI,IAAI,QAAQ,EAAE;EAClB,MAAM,eAAe,GAAG,KAAI;EAC5B,KAAK;AACL;EACA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKA,cAAE,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKA,cAAE,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKA,cAAE,CAAC,SAAS,KAAK,IAAI,CAAC,GAAG,CAACA,cAAE,CAAC,GAAG,CAAC,EAAE;EAC1I,MAAMC,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAC;EACxC,MAAM,IAAI,CAAC,MAAM,GAAG,KAAI;EACxB,MAAM,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,WAAW,IAAI,IAAI,CAAC,eAAe,EAAE;EAC/F,UAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,KAAE;EACzC;EACA,UAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,qBAAqB,EAAE,IAAI,IAAI,CAAC,UAAU,KAAE;EACzE,MAAM,IAAI,CAAC,QAAQ,GAAG,MAAK;EAC3B,MAAM,IAAI,iBAAiB,EAAE;EAC7B,QAAQ,IAAI,CAAC,QAAQ,GAAG,SAAQ;EAChC,OAAO;EACP,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,kBAAkB,EAAC;EACtD,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKD,cAAE,CAAC,QAAQ,EAAE;EAC9C,MAAM,IAAI,CAAC,MAAM,GAAE;EACnB,MAAM,IAAI,CAAC,IAAI,GAAE;EACjB,MAAMC,IAAIa,MAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAC;EACxC,MAAMA,MAAI,CAAC,MAAM,GAAG,KAAI;EACxB,MAAMA,MAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,GAAE;EAC5C,MAAMA,MAAI,CAAC,QAAQ,GAAG,KAAI;EAC1B,MAAM,IAAI,iBAAiB,EAAE;EAC7B,QAAQA,MAAI,CAAC,QAAQ,GAAG,SAAQ;EAChC,OAAO;EACP,MAAM,IAAI,CAAC,KAAK,GAAE;EAClB,MAAM,IAAI,CAAC,MAAM,CAACd,cAAE,CAAC,QAAQ,EAAC;EAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAACc,MAAI,EAAE,kBAAkB,EAAC;EACtD,KAAK,MAAM,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKd,cAAE,CAAC,MAAM,EAAE;EACxD,MAAMC,IAAI,QAAQ,GAAG,IAAI,CAAC,aAAa,CAACD,cAAE,CAAC,MAAM,EAAC;EAClD,MAAM,IAAI,eAAe,IAAI,IAAI,CAAC,GAAG,CAACA,cAAE,CAAC,KAAK,CAAC;EAC/C,UAAQ,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,IAAI,GAAC;EACjF,MAAMC,IAAIa,MAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAC;EACxC,MAAMA,MAAI,CAAC,MAAM,GAAG,KAAI;EACxB,MAAMA,MAAI,CAAC,SAAS,GAAG,SAAQ;EAC/B,MAAM,IAAI,iBAAiB,EAAE;EAC7B,QAAQA,MAAI,CAAC,QAAQ,GAAG,SAAQ;EAChC,OAAO;EACP,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAACA,MAAI,EAAE,gBAAgB,EAAC;EACpD,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKd,cAAE,CAAC,SAAS,EAAE;EAC/C,MAAMC,IAAIa,MAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAC;EACxC,MAAMA,MAAI,CAAC,GAAG,GAAG,KAAI;EACrB,MAAMA,MAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,GAAE;EACvC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAACA,MAAI,EAAE,0BAA0B,EAAC;EAC9D,KAAK,MAAM;EACX,MAAM,KAAK;EACX,KAAK;EACL,GAAG;AACH;EACA,EAAE,IAAI,eAAe,EAAE;EACvB,IAAIf,IAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAC;EAC7C,IAAI,SAAS,CAAC,UAAU,GAAG,KAAI;EAC/B,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,iBAAiB,EAAC;EACxD,GAAG;EACH,EAAE,OAAO,IAAI;EACb,EAAC;AACD;AACAW,MAAE,CAAC,aAAa,GAAG,WAAW;EAC9B,EAAET,IAAI,KAAI;EACV,EAAE,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI;EACvB,EAAE,KAAKD,cAAE,CAAC,KAAK,CAAC;EAChB,EAAE,KAAKA,cAAE,CAAC,MAAM;EAChB,IAAIC,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKD,cAAE,CAAC,KAAK,GAAG,gBAAgB,GAAG,QAAO;EACtE,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,GAAE;EAC3B,IAAI,IAAI,CAAC,IAAI,GAAE;EACf,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC;AACtC;EACA,EAAE,KAAKA,cAAE,CAAC,IAAI;EACd,IAAIC,IAAI,KAAK,GAAG,IAAI,CAAC,eAAe,GAAE;EACtC,IAAIA,IAAI,EAAE,GAAG,IAAI,CAAC,UAAU,GAAE;EAC9B,IAAIA,IAAI,OAAO,GAAG,MAAK;EACvB,IAAI,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE;EAC3D,MAAM,IAAI,IAAI,CAAC,GAAG,CAACD,cAAE,CAAC,SAAS,CAAC;EAChC,UAAQ,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,GAAC;EACvE,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKA,cAAE,CAAC,IAAI,EAAE;EACrC,QAAQ,EAAE,GAAG,IAAI,CAAC,UAAU,GAAE;EAC9B,QAAQ,OAAO,GAAG,KAAI;EACtB,OAAO;EACP,KAAK;EACL,IAAI,OAAO,IAAI,CAAC,GAAG,CAACA,cAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,GAAG,EAAE;AACtG;EACA,EAAE,KAAKA,cAAE,CAAC,MAAM;EAChB,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,GAAE;EAC3B,IAAIC,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAK;EAC5B,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAC;EACzD,IAAI,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,MAAK;EAC1B,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAC;EAC7D,IAAI,IAAI,CAAC,IAAI,GAAE;EACf,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC;AAC3C;EACA,EAAE,KAAKD,cAAE,CAAC,GAAG,CAAC,CAAC,KAAKA,cAAE,CAAC,MAAM;EAC7B,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,GAAE;EAC3B,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAK;EAC/B,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAC;EAC7D,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKA,cAAE,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,IAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,IAAC;EAC3I,IAAI,IAAI,CAAC,IAAI,GAAE;EACf,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC;AAC3C;EACA,EAAE,KAAKA,cAAE,CAAC,KAAK,CAAC,CAAC,KAAKA,cAAE,CAAC,KAAK,CAAC,CAAC,KAAKA,cAAE,CAAC,MAAM;EAC9C,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,GAAE;EAC3B,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKA,cAAE,CAAC,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKA,cAAE,CAAC,MAAK;EAC/E,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAO;EACpC,IAAI,IAAI,CAAC,IAAI,GAAE;EACf,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC;AAC3C;EACA,EAAE,KAAKA,cAAE,CAAC,MAAM;EAChB,IAAIC,IAAI,UAAU,GAAG,IAAI,CAAC,eAAe,GAAE;EAC3C,IAAI,IAAI,CAAC,IAAI,GAAE;EACf,IAAIA,IAAI,KAAK,GAAG,IAAI,CAAC,eAAe,GAAE;EACtC,IAAI,IAAI,CAAC,MAAM,CAACD,cAAE,CAAC,MAAM,EAAC;EAC1B,IAAI,IAAI,IAAI,CAAC,GAAG,CAACA,cAAE,CAAC,KAAK,CAAC,EAAE;EAC5B;EACA,MAAMC,IAAI,MAAM,GAAG,KAAK,CAAC,WAAW,IAAI,CAAC,KAAK,EAAC;EAC/C,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;EAC7D,UAAQ,MAAM,CAAC,GAAG,KAAE;EACpB,MAAM,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;EAC5E,KAAK;EACL,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;EACrC,MAAMA,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAC;EAC5C,MAAM,GAAG,CAAC,UAAU,GAAG,MAAK;EAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,yBAAyB,EAAC;EAC7D,KAAK;EACL,IAAI,OAAO,KAAK;AAChB;EACA,EAAE,KAAKD,cAAE,CAAC,QAAQ;EAClB,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,GAAE;EAC3B,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAACA,cAAE,CAAC,QAAQ,EAAE,IAAI,EAAC;EACzD,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,iBAAiB,CAAC;AACnD;EACA,EAAE,KAAKA,cAAE,CAAC,MAAM;EAChB,IAAI,OAAO,IAAI,CAAC,QAAQ,EAAE;AAC1B;EACA,EAAE,KAAKA,cAAE,CAAC,MAAM;EAChB,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AACjC;EACA,EAAE,KAAKA,cAAE,CAAC,SAAS;EACnB,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,GAAE;EAC3B,IAAI,IAAI,CAAC,IAAI,GAAE;EACf,IAAI,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC;AAC1C;EACA,EAAE,KAAKA,cAAE,CAAC,IAAI;EACd,IAAI,OAAO,IAAI,CAAC,QAAQ,EAAE;AAC1B;EACA,EAAE,KAAKA,cAAE,CAAC,SAAS;EACnB,IAAI,OAAO,IAAI,CAAC,aAAa,EAAE;AAC/B;EACA,EAAE,KAAKA,cAAE,CAAC,OAAO;EACjB,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,EAAE;EACxC,MAAM,OAAO,IAAI,CAAC,eAAe,EAAE;EACnC,KAAK,MAAM;EACX,MAAM,OAAO,IAAI,CAAC,UAAU,EAAE;EAC9B,KAAK;AACL;EACA,EAAE;EACF,IAAI,OAAO,IAAI,CAAC,UAAU,EAAE;EAC5B,GAAG;EACH,EAAC;AACD;AACAU,MAAE,CAAC,eAAe,GAAG,WAAW;EAChC,EAAEX,IAAM,IAAI,GAAG,IAAI,CAAC,SAAS,GAAE;EAC/B,EAAEA,IAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAC;EACpC,EAAE,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI;EACvB,EAAE,KAAKC,cAAE,CAAC,MAAM;EAChB,IAAI,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;EACxC,EAAE,KAAKA,cAAE,CAAC,GAAG;EACb,IAAI,IAAI,CAAC,IAAI,GAAG,KAAI;EACpB,IAAI,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;EACrC,EAAE;EACF,IAAI,IAAI,CAAC,IAAI,GAAG,SAAQ;EACxB,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC;EAC9C,GAAG;EACH,EAAC;AACD;AACAU,MAAE,CAAC,kBAAkB,GAAG,SAAS,IAAI,EAAE;EACvC,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAACV,cAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,GAAE;EACtE,EAAE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,kBAAkB,CAAC;EAClD,EAAC;AACD;AACAU,MAAE,CAAC,eAAe,GAAG,SAAS,IAAI,EAAE;EACpC,EAAE,IAAI,CAAC,IAAI,GAAE;EACb,EAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAC;EACvC,EAAE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,cAAc,CAAC;EAC9C,EAAC;AACD;AACAA,MAAE,CAAC,QAAQ,GAAG,WAAW;EACzB,EAAET,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC,aAAY;EACrF,EAAEA,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAC;EAClC,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAACD,cAAE,CAAC,GAAG,CAAC,EAAE;EACzD,IAAI,IAAI,CAAC,IAAI,GAAG,KAAI;EACpB,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAC;EACzC,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,cAAc,CAAC;EAChD,GAAG;EACH,EAAEC,IAAI,KAAK,GAAG,IAAI,CAAC,eAAe,GAAE;EACpC,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAC;EAC1F,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKD,cAAE,CAAC,MAAM,EAAE;EACnC,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAACA,cAAE,CAAC,MAAM,EAAC;EAClD,GAAG,MAAM;EACT,IAAI,IAAI,CAAC,SAAS,GAAG,GAAE;EACvB,GAAG;EACH,EAAE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,eAAe,CAAC;EAC/C,EAAC;AACD;AACAU,MAAE,CAAC,oBAAoB,GAAG,WAAW;EACrC,EAAET,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,GAAE;AAC7B;EACA;EACA,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKD,cAAE,CAAC,eAAe,EAAE;EAC5C,IAAI,IAAI,CAAC,KAAK,GAAG;EACjB,MAAM,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK;EACzB,MAAM,MAAM,EAAE,IAAI;EAClB,MAAK;EACL,GAAG,MAAM;EACT,IAAI,IAAI,CAAC,KAAK,GAAG;EACjB,MAAM,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC;EACjF,MAAM,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK;EAC5B,MAAK;EACL,GAAG;EACH,EAAE,IAAI,CAAC,IAAI,GAAE;EACb,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKA,cAAE,CAAC,UAAS;EAC5C,EAAE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,iBAAiB,CAAC;EACjD,EAAC;AACD;AACAU,MAAE,CAAC,aAAa,GAAG,WAAW;EAC9B,EAAET,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,GAAE;EAC7B,EAAE,IAAI,CAAC,IAAI,GAAE;EACb,EAAE,IAAI,CAAC,WAAW,GAAG,GAAE;EACvB,EAAEA,IAAI,MAAM,GAAG,IAAI,CAAC,oBAAoB,GAAE;EAC1C,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,MAAM,EAAC;EACxB,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;EACvB,IAAI,IAAI,CAAC,IAAI,GAAE;EACf,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAC;EACjD,IAAI,IAAI,IAAI,CAAC,MAAM,CAACD,cAAE,CAAC,MAAM,CAAC,EAAE;EAChC,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,GAAE;EAC1C,KAAK,MAAM;EACX,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,GAAE;EAC/B,MAAM,MAAM,CAAC,KAAK,GAAG,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAC;EAC1C,MAAM,MAAM,CAAC,IAAI,GAAG,KAAI;EACxB,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,iBAAiB,EAAC;EAChD,KAAK;EACL,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAC;EAC5B,GAAG;EACH,EAAE,IAAI,CAAC,MAAM,CAACA,cAAE,CAAC,SAAS,EAAC;EAC3B,EAAE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,iBAAiB,CAAC;EACjD,EAAC;AACD;AACAU,MAAE,CAAC,QAAQ,GAAG,WAAW;EACzB,EAAET,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,GAAE;EAC7B,EAAE,IAAI,CAAC,UAAU,GAAG,GAAE;EACtB,EAAE,IAAI,CAAC,MAAM,GAAE;EACf,EAAEA,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,aAAY;EAC3D,EAAE,IAAI,CAAC,GAAG,CAACD,cAAE,CAAC,MAAM,EAAC;EACrB,EAAE,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,MAAM,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,aAAY,EAAE;EACxF,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAACA,cAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;EAChD,IAAIC,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,sBAAW,EAAE,kBAAO,EAAE,iBAAK;EAC5D,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAACD,cAAE,CAAC,QAAQ,CAAC,EAAE;EAChE,MAAM,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,GAAE;EAC7C,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,eAAe,CAAC,EAAC;EAClE,MAAM,IAAI,CAAC,GAAG,CAACA,cAAE,CAAC,KAAK,EAAC;EACxB,MAAM,QAAQ;EACd,KAAK;EACL,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,EAAE;EACvC,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,GAAE;EACpC,MAAM,IAAI,CAAC,MAAM,GAAG,MAAK;EACzB,MAAM,IAAI,CAAC,SAAS,GAAG,MAAK;EAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAACA,cAAE,CAAC,IAAI,EAAC;EACrC,KAAK;EACL,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAC;EAChC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;EACrC,MAAM,OAAO,GAAG,KAAI;EACpB,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAACA,cAAE,CAAC,IAAI,EAAC;EACtE,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAC;EAClC,KAAK,MAAM;EACX,MAAM,OAAO,GAAG,MAAK;EACrB,KAAK;EACL,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,IAAE,IAAI,CAAC,IAAI,EAAE,GAAC,CAAC,IAAI,CAAC,GAAG,CAACA,cAAE,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE;EAC9G,IAAI,IAAI,IAAI,CAAC,GAAG,CAACA,cAAE,CAAC,KAAK,CAAC,EAAE;EAC5B,MAAM,IAAI,CAAC,IAAI,GAAG,OAAM;EACxB,MAAM,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,GAAE;EAC1C,KAAK,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKA,cAAE,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKA,cAAE,CAAC,MAAM,CAAC,EAAE;EAC9G,MAAM,IAAI,CAAC,IAAI,GAAG,OAAM;EACxB,MAAM,IAAI,CAAC,MAAM,GAAG,KAAI;EACxB,MAAM,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,OAAO,EAAC;EACzD,KAAK,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,YAAY;EAC9E,eAAe,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC;EACrF,gBAAgB,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKA,cAAE,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKA,cAAE,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKA,cAAE,CAAC,EAAE,CAAC,EAAE;EACvG,MAAM,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAI;EAC/B,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAC;EAClC,MAAM,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAC;EAC1C,KAAK,MAAM;EACX,MAAM,IAAI,CAAC,IAAI,GAAG,OAAM;EACxB,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,EAAE;EACzC,QAAQ,IAAI,IAAI,CAAC,GAAG,CAACA,cAAE,CAAC,EAAE,CAAC,EAAE;EAC7B,UAAUC,IAAI,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAC;EAC9C,UAAU,MAAM,CAAC,QAAQ,GAAG,IAAG;EAC/B,UAAU,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAG;EAChC,UAAU,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,GAAE;EAChD,UAAU,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,sBAAsB,EAAC;EACtE,SAAS,MAAM;EACf,UAAU,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAG;EAC/B,SAAS;EACT,OAAO,MAAM;EACb,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,GAAE;EACtC,OAAO;EACP,MAAM,IAAI,CAAC,SAAS,GAAG,KAAI;EAC3B,KAAK;EACL,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,EAAC;EAC3D,IAAI,IAAI,CAAC,GAAG,CAACD,cAAE,CAAC,KAAK,EAAC;EACtB,GAAG;EACH,EAAE,IAAI,CAAC,KAAK,GAAE;EACd,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAACA,cAAE,CAAC,MAAM,CAAC,EAAE;EAC5B;EACA;EACA,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAK;EAClC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAK;EACtE,GAAG;EACH,EAAE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,kBAAkB,CAAC;EAClD,EAAC;AACD;AACAU,MAAE,CAAC,iBAAiB,GAAG,SAAS,IAAI,EAAE;EACtC,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,EAAE;EACrC,IAAI,IAAI,IAAI,CAAC,GAAG,CAACV,cAAE,CAAC,QAAQ,CAAC,EAAE;EAC/B,MAAM,IAAI,CAAC,QAAQ,GAAG,KAAI;EAC1B,MAAM,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,eAAe,GAAE;EACvC,MAAM,IAAI,CAAC,MAAM,CAACA,cAAE,CAAC,QAAQ,EAAC;EAC9B,MAAM,MAAM;EACZ,KAAK,MAAM;EACX,MAAM,IAAI,CAAC,QAAQ,GAAG,MAAK;EAC3B,KAAK;EACL,GAAG;EACH,EAAEC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKD,cAAE,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKA,cAAE,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC,UAAU,GAAE;EAChH,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC,UAAU,GAAE;EACrC,EAAC;AACD;AACAU,MAAE,CAAC,qBAAqB,GAAG,WAAW;EACtC,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKV,cAAE,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,IAAE,OAAO,IAAI,CAAC,UAAU,IAAE;EAClF,EAAC;AACD;AACAU,MAAE,CAAC,UAAU,GAAG,WAAW;EAC3B,EAAET,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKD,cAAE,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAO;EAC/E,EAAE,IAAI,CAAC,IAAI,IAAE,OAAO,IAAI,CAAC,UAAU,IAAE;EACrC,EAAEC,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,GAAE;EAC7B,EAAE,IAAI,CAAC,IAAI,GAAE;EACb,EAAE,IAAI,CAAC,IAAI,GAAG,KAAI;EAClB,EAAE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC;EAC5C,EAAC;AACD;AACAS,MAAE,CAAC,YAAY,GAAG,SAAS,IAAI,EAAE;EACjC,EAAE,IAAI,CAAC,EAAE,GAAG,KAAI;EAChB,EAAE,IAAI,CAAC,MAAM,GAAG,GAAE;EAClB,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,EAAE;EACrC,IAAI,IAAI,CAAC,SAAS,GAAG,MAAK;EAC1B,IAAI,IAAI,CAAC,UAAU,GAAG,MAAK;EAC3B,GAAG;EACH,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC;EACnC,MAAI,IAAI,CAAC,KAAK,GAAG,QAAK;EACtB,EAAC;AACD;EACA;EACA;AACA;AACAA,MAAE,CAAC,YAAY,GAAG,SAAS,IAAI,EAAE,OAAO,EAAE;EAC1C,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,KAAK,IAAI,CAAC,IAAI,KAAK,kBAAkB,IAAI,CAAC,OAAO,CAAC,EAAE,CAE1F,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,yBAAyB,EAAE;EACtD,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAC;EAC/C,GAAG,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,CAAC,EAAE;EAC3C,IAAI,OAAO,IAAI,CAAC,UAAU,EAAE;EAC5B,GAAG,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB,EAAE;EAC/C,IAAI,IAAI,CAAC,IAAI,GAAG,gBAAe;EAC/B,IAAI,uBAAiB,IAAI,CAAC,mCAAU;EACpC;QADST,IAAI;;QACP,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO;OAAC;EACtC,GAAG,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,EAAE;EAC9C,IAAI,IAAI,CAAC,IAAI,GAAG,eAAc;EAC9B,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAC;EACjD,GAAG,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE;EACvC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAC;EAC1C,GAAG,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,EAAE;EAC5C,IAAI,IAAI,CAAC,IAAI,GAAG,cAAa;EAC7B,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAC;EAC7C,GAAG,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,sBAAsB,EAAE;EACnD,IAAI,IAAI,CAAC,IAAI,GAAG,oBAAmB;EACnC,IAAI,OAAO,IAAI,CAAC,SAAQ;EACxB,GAAG,MAAM;EACT,IAAI,OAAO,IAAI,CAAC,UAAU,EAAE;EAC5B,GAAG;EACH,EAAE,OAAO,IAAI;EACb,EAAC;AACD;AACAS,MAAE,CAAC,gBAAgB,GAAG,SAAS,QAAQ,EAAE,OAAO,EAAE;EAClD,EAAE,uBAAiB,iCAAQ;EAC3B;MADOT,IAAI;;MACP,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO;KAAC;EACpC,EAAE,OAAO,QAAQ;EACjB,EAAC;AACD;AACAS,MAAE,CAAC,mBAAmB,GAAG,SAAS,MAAM,EAAE;EAC1C,EAAE,MAAM,GAAG,IAAI,CAAC,aAAa,CAACV,cAAE,CAAC,MAAM,EAAC;EACxC,EAAE,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC;EAC5C,EAAC;AACD;AACAU,MAAE,CAAC,WAAW,GAAG,SAAS,WAAW,EAAE,OAAO,EAAE;EAChD,EAAET,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAAC,WAAU;EACzF,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,EAAC;EACzB,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC;EACnC,MAAI,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,cAAW;EAClC,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC;EACnC,MAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,UAAO;EAC1B,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAK;EAC3B,EAAE,IAAI,CAAC,UAAU,GAAG,KAAI;EACxB,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,mBAAmB,GAAE;EAC1C,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,GAAE;EAC/B,EAAE,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAC;EAClD,EAAE,IAAI,CAAC,OAAO,GAAG,WAAU;EAC3B,EAAE,IAAI,CAAC,UAAU,GAAG,cAAa;EACjC,EAAE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,oBAAoB,CAAC;EACpD,EAAC;AACD;AACAS,MAAE,CAAC,oBAAoB,GAAG,SAAS,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;EAC1D,EAAET,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAAC,WAAU;EAChE,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,EAAC;EACzB,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC;EACnC,MAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,UAAO;EAC1B,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAK;EAC3B,EAAE,IAAI,CAAC,UAAU,GAAG,KAAI;EACxB,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,EAAC;EACnD,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,KAAKD,cAAE,CAAC,OAAM;EAC/C,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE;EACvB,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,gBAAgB,GAAE;EACvC,GAAG,MAAM;EACT,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,GAAE;EACjC,IAAI,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAC;EACpD,GAAG;EACH,EAAE,IAAI,CAAC,OAAO,GAAG,WAAU;EAC3B,EAAE,IAAI,CAAC,UAAU,GAAG,cAAa;EACjC,EAAE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,yBAAyB,CAAC;EACzD,EAAC;AACD;AACAU,MAAE,CAAC,aAAa,GAAG,SAAS,KAAK,EAAE,UAAU,EAAE;EAC/C,EAAE,IAAI,CAAC,MAAM,GAAE;EACf,EAAET,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,GAAG,GAAE;EAClE,EAAE,IAAI,CAAC,IAAI,GAAE;EACb,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE;EAChD,IAAI,IAAI,IAAI,CAAC,GAAG,CAACD,cAAE,CAAC,KAAK,CAAC,EAAE;EAC5B,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,EAAC;EACtD,MAAM,QAAQ;EACd,KAAK;EACL,IAAIC,IAAI,GAAG,GAAG,IAAI,CAAC,gBAAgB,GAAE;EACrC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE;EACtB,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,IAAE,OAAK;EACjD,MAAM,IAAI,CAAC,IAAI,GAAE;EACjB,KAAK,MAAM;EACX,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAC;EACpB,KAAK;EACL,IAAI,IAAI,CAAC,GAAG,CAACD,cAAE,CAAC,KAAK,EAAC;EACtB,GAAG;EACH,EAAE,IAAI,CAAC,KAAK,GAAE;EACd,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;EACxB;EACA;EACA,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAK;EAClC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAK;EACtE,GAAG;EACH,EAAE,OAAO,IAAI;EACb,EAAC;AACD;AACAU,MAAE,CAAC,UAAU,GAAG,WAAW;EAC3B,EAAET,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,GAAE;EAC7B,EAAE,IAAI,CAAC,IAAI,GAAE;EACb,EAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,GAAE;EACxC,EAAE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,iBAAiB,CAAC;EACjD,CAAC;;ECnoBD;AACA,AAsCA;AACAc,sBAAc,CAAC,OAAO,GAAG,EAAC;AAC1B;AACA,EAAO,SAAS,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE;EACtC,EAAE,OAAO,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC;EAC1C,CAAC;;;;;;;;;;;;;;"}