package.dist.chunks.mermaid.core.kanban-definition-KMT3NSR2.mjs.map Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of mermaid Show documentation
Show all versions of mermaid Show documentation
Markdown-ish syntax for generating flowcharts, mindmaps, sequence diagrams, class diagrams, gantt charts, git graphs and more.
The newest version!
{
"version": 3,
"sources": ["../../../src/diagrams/kanban/parser/kanban.jison", "../../../src/diagrams/kanban/kanbanDb.ts", "../../../src/diagrams/kanban/kanbanRenderer.ts", "../../../src/diagrams/kanban/styles.ts", "../../../src/diagrams/kanban/kanban-definition.ts"],
"sourcesContent": ["/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,4],$V1=[1,13],$V2=[1,12],$V3=[1,15],$V4=[1,16],$V5=[1,20],$V6=[1,19],$V7=[6,7,8],$V8=[1,26],$V9=[1,24],$Va=[1,25],$Vb=[6,7,11],$Vc=[1,31],$Vd=[6,7,11,24],$Ve=[1,6,13,16,17,20,23],$Vf=[1,35],$Vg=[1,36],$Vh=[1,6,7,11,13,16,17,20,23],$Vi=[1,38];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"start\":3,\"mindMap\":4,\"spaceLines\":5,\"SPACELINE\":6,\"NL\":7,\"KANBAN\":8,\"document\":9,\"stop\":10,\"EOF\":11,\"statement\":12,\"SPACELIST\":13,\"node\":14,\"shapeData\":15,\"ICON\":16,\"CLASS\":17,\"nodeWithId\":18,\"nodeWithoutId\":19,\"NODE_DSTART\":20,\"NODE_DESCR\":21,\"NODE_DEND\":22,\"NODE_ID\":23,\"SHAPE_DATA\":24,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",6:\"SPACELINE\",7:\"NL\",8:\"KANBAN\",11:\"EOF\",13:\"SPACELIST\",16:\"ICON\",17:\"CLASS\",20:\"NODE_DSTART\",21:\"NODE_DESCR\",22:\"NODE_DEND\",23:\"NODE_ID\",24:\"SHAPE_DATA\"},\nproductions_: [0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,3],[12,2],[12,2],[12,2],[12,1],[12,2],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[19,3],[18,1],[18,4],[15,2],[15,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 6: case 7:\n return yy; \nbreak;\ncase 8:\nyy.getLogger().trace('Stop NL ');\nbreak;\ncase 9:\nyy.getLogger().trace('Stop EOF ');\nbreak;\ncase 11:\nyy.getLogger().trace('Stop NL2 ');\nbreak;\ncase 12:\nyy.getLogger().trace('Stop EOF2 ');\nbreak;\ncase 15:\n yy.getLogger().info('Node: ',$$[$0-1].id);yy.addNode($$[$0-2].length, $$[$0-1].id, $$[$0-1].descr, $$[$0-1].type, $$[$0]); \nbreak;\ncase 16:\n yy.getLogger().info('Node: ',$$[$0].id);yy.addNode($$[$0-1].length, $$[$0].id, $$[$0].descr, $$[$0].type); \nbreak;\ncase 17:\n yy.getLogger().trace('Icon: ',$$[$0]);yy.decorateNode({icon: $$[$0]}); \nbreak;\ncase 18: case 23:\n yy.decorateNode({class: $$[$0]}); \nbreak;\ncase 19:\n yy.getLogger().trace('SPACELIST');\nbreak;\ncase 20:\n yy.getLogger().trace('Node: ',$$[$0-1].id);yy.addNode(0, $$[$0-1].id, $$[$0-1].descr, $$[$0-1].type, $$[$0]); \nbreak;\ncase 21:\n yy.getLogger().trace('Node: ',$$[$0].id);yy.addNode(0, $$[$0].id, $$[$0].descr, $$[$0].type); \nbreak;\ncase 22:\n yy.decorateNode({icon: $$[$0]}); \nbreak;\ncase 27:\n yy.getLogger().trace(\"node found ..\", $$[$0-2]); this.$ = { id: $$[$0-1], descr: $$[$0-1], type: yy.getType($$[$0-2], $$[$0]) }; \nbreak;\ncase 28:\n this.$ = { id: $$[$0], descr: $$[$0], type: 0 }; \nbreak;\ncase 29:\n yy.getLogger().trace(\"node found ..\", $$[$0-3]); this.$ = { id: $$[$0-3], descr: $$[$0-1], type: yy.getType($$[$0-2], $$[$0]) }; \nbreak;\ncase 30:\n this.$ = $$[$0-1] + $$[$0]; \nbreak;\ncase 31:\n this.$ = $$[$0]; \nbreak;\n}\n},\ntable: [{3:1,4:2,5:3,6:[1,5],8:$V0},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:$V0},{6:$V1,7:[1,10],9:9,12:11,13:$V2,14:14,16:$V3,17:$V4,18:17,19:18,20:$V5,23:$V6},o($V7,[2,3]),{1:[2,2]},o($V7,[2,4]),o($V7,[2,5]),{1:[2,6],6:$V1,12:21,13:$V2,14:14,16:$V3,17:$V4,18:17,19:18,20:$V5,23:$V6},{6:$V1,9:22,12:11,13:$V2,14:14,16:$V3,17:$V4,18:17,19:18,20:$V5,23:$V6},{6:$V8,7:$V9,10:23,11:$Va},o($Vb,[2,24],{18:17,19:18,14:27,16:[1,28],17:[1,29],20:$V5,23:$V6}),o($Vb,[2,19]),o($Vb,[2,21],{15:30,24:$Vc}),o($Vb,[2,22]),o($Vb,[2,23]),o($Vd,[2,25]),o($Vd,[2,26]),o($Vd,[2,28],{20:[1,32]}),{21:[1,33]},{6:$V8,7:$V9,10:34,11:$Va},{1:[2,7],6:$V1,12:21,13:$V2,14:14,16:$V3,17:$V4,18:17,19:18,20:$V5,23:$V6},o($Ve,[2,14],{7:$Vf,11:$Vg}),o($Vh,[2,8]),o($Vh,[2,9]),o($Vh,[2,10]),o($Vb,[2,16],{15:37,24:$Vc}),o($Vb,[2,17]),o($Vb,[2,18]),o($Vb,[2,20],{24:$Vi}),o($Vd,[2,31]),{21:[1,39]},{22:[1,40]},o($Ve,[2,13],{7:$Vf,11:$Vg}),o($Vh,[2,11]),o($Vh,[2,12]),o($Vb,[2,15],{24:$Vi}),o($Vd,[2,30]),{22:[1,41]},o($Vd,[2,27]),o($Vd,[2,29])],\ndefaultActions: {2:[2,1],6:[2,2]},\nparseError: function parseError (str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n},\nparse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.options.ranges;\n if (typeof sharedState.yy.parseError === 'function') {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer.lex() || EOF;\n if (typeof token !== 'number') {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == 'undefined') {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === 'undefined' || !action.length || !action[0]) {\n var errStr = '';\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push('\\'' + this.terminals_[p] + '\\'');\n }\n }\n if (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.showPosition() + '\\nExpecting ' + expected.join(', ') + ', got \\'' + (this.terminals_[symbol] || symbol) + '\\'';\n } else {\n errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\\'' + (this.terminals_[symbol] || symbol) + '\\'');\n }\n this.parseError(errStr, {\n text: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.yylloc;\n if (recovering > 0) {\n recovering--;\n }\n } else {\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== 'undefined') {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n}};\n\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError:function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n\n// resets the lexer, sets new input\nsetInput:function (input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = '';\n this.conditionStack = ['INITIAL'];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0,0];\n }\n this.offset = 0;\n return this;\n },\n\n// consumes and returns one char from the input\ninput:function () {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= len;\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\n\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\n// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\nreject:function () {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n' + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n\n }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput:function () {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\\n/g, \"\");\n },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput:function () {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20-next.length);\n }\n return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\\n/g, \"\");\n },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n index;\n if (!this._more) {\n this.yytext = '';\n this.match = '';\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\\n' + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n\n// return next match that has a token\nlex:function lex () {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState:function popState () {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules:function _currentRules () {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState:function topState (n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {\"case-insensitive\":true},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\n\t// Pre-lexer code can go here\n\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0:\n // console.log('=> shapeData', yy_.yytext);\n this.pushState(\"shapeData\"); yy_.yytext=\"\"; return 24 \nbreak;\ncase 1:\n // console.log('=> shapeDataStr', yy_.yytext);\n this.pushState(\"shapeDataStr\");\n return 24;\n \nbreak;\ncase 2:\n // console.log('shapeData <==', yy_.yytext);\n this.popState(); return 24\nbreak;\ncase 3:\n // console.log('shapeData', yy_.yytext);\n const re = /\\n\\s*/g;\n yy_.yytext = yy_.yytext.replace(re,\"
\");\n return 24\nbreak;\ncase 4:\n // console.log('shapeData', yy_.yytext);\n return 24;\n \nbreak;\ncase 5:\n // console.log('<== root', yy_.yytext)\n this.popState();\n \nbreak;\ncase 6:yy.getLogger().trace('Found comment',yy_.yytext); return 6;\nbreak;\ncase 7:return 8;\nbreak;\ncase 8: this.begin('CLASS'); \nbreak;\ncase 9: this.popState();return 17; \nbreak;\ncase 10: this.popState();\nbreak;\ncase 11: yy.getLogger().trace('Begin icon');this.begin('ICON'); \nbreak;\ncase 12:yy.getLogger().trace('SPACELINE');return 6 /* skip all whitespace */ ;\nbreak;\ncase 13:return 7;\nbreak;\ncase 14: return 16; \nbreak;\ncase 15:yy.getLogger().trace('end icon');this.popState();\nbreak;\ncase 16: yy.getLogger().trace('Exploding node'); this.begin('NODE');return 20; \nbreak;\ncase 17: yy.getLogger().trace('Cloud'); this.begin('NODE');return 20; \nbreak;\ncase 18: yy.getLogger().trace('Explosion Bang'); this.begin('NODE');return 20; \nbreak;\ncase 19: yy.getLogger().trace('Cloud Bang'); this.begin('NODE');return 20; \nbreak;\ncase 20: this.begin('NODE');return 20; \nbreak;\ncase 21: this.begin('NODE');return 20; \nbreak;\ncase 22: this.begin('NODE');return 20; \nbreak;\ncase 23: this.begin('NODE');return 20; \nbreak;\ncase 24:return 13 /* skip all whitespace */ ;\nbreak;\ncase 25:return 23;\nbreak;\ncase 26:return 11;\nbreak;\ncase 27: this.begin(\"NSTR2\");\nbreak;\ncase 28: return \"NODE_DESCR\";\nbreak;\ncase 29: this.popState();\nbreak;\ncase 30: yy.getLogger().trace('Starting NSTR');this.begin(\"NSTR\");\nbreak;\ncase 31: yy.getLogger().trace('description:', yy_.yytext); return \"NODE_DESCR\";\nbreak;\ncase 32:this.popState();\nbreak;\ncase 33:this.popState();yy.getLogger().trace('node end ))');return \"NODE_DEND\";\nbreak;\ncase 34:this.popState();yy.getLogger().trace('node end )');return \"NODE_DEND\";\nbreak;\ncase 35:this.popState();yy.getLogger().trace('node end ...',yy_.yytext);return \"NODE_DEND\";\nbreak;\ncase 36:this.popState();yy.getLogger().trace('node end ((');return \"NODE_DEND\";\nbreak;\ncase 37:this.popState();yy.getLogger().trace('node end (-');return \"NODE_DEND\";\nbreak;\ncase 38:this.popState();yy.getLogger().trace('node end (-');return \"NODE_DEND\";\nbreak;\ncase 39:this.popState();yy.getLogger().trace('node end ((');return \"NODE_DEND\";\nbreak;\ncase 40:this.popState();yy.getLogger().trace('node end ((');return \"NODE_DEND\";\nbreak;\ncase 41: yy.getLogger().trace('Long description:', yy_.yytext); return 21;\nbreak;\ncase 42: yy.getLogger().trace('Long description:', yy_.yytext); return 21;\nbreak;\n}\n},\nrules: [/^(?:@\\{)/i,/^(?:[\"])/i,/^(?:[\"])/i,/^(?:[^\\\"]+)/i,/^(?:[^}^\"]+)/i,/^(?:\\})/i,/^(?:\\s*%%.*)/i,/^(?:kanban\\b)/i,/^(?::::)/i,/^(?:.+)/i,/^(?:\\n)/i,/^(?:::icon\\()/i,/^(?:[\\s]+[\\n])/i,/^(?:[\\n]+)/i,/^(?:[^\\)]+)/i,/^(?:\\))/i,/^(?:-\\))/i,/^(?:\\(-)/i,/^(?:\\)\\))/i,/^(?:\\))/i,/^(?:\\(\\()/i,/^(?:\\{\\{)/i,/^(?:\\()/i,/^(?:\\[)/i,/^(?:[\\s]+)/i,/^(?:[^\\(\\[\\n\\)\\{\\}@]+)/i,/^(?:$)/i,/^(?:[\"][`])/i,/^(?:[^`\"]+)/i,/^(?:[`][\"])/i,/^(?:[\"])/i,/^(?:[^\"]+)/i,/^(?:[\"])/i,/^(?:[\\)]\\))/i,/^(?:[\\)])/i,/^(?:[\\]])/i,/^(?:\\}\\})/i,/^(?:\\(-)/i,/^(?:-\\))/i,/^(?:\\(\\()/i,/^(?:\\()/i,/^(?:[^\\)\\]\\(\\}]+)/i,/^(?:.+(?!\\(\\())/i],\nconditions: {\"shapeDataEndBracket\":{\"rules\":[],\"inclusive\":false},\"shapeDataStr\":{\"rules\":[2,3],\"inclusive\":false},\"shapeData\":{\"rules\":[1,4,5],\"inclusive\":false},\"CLASS\":{\"rules\":[9,10],\"inclusive\":false},\"ICON\":{\"rules\":[14,15],\"inclusive\":false},\"NSTR2\":{\"rules\":[28,29],\"inclusive\":false},\"NSTR\":{\"rules\":[31,32],\"inclusive\":false},\"NODE\":{\"rules\":[27,30,33,34,35,36,37,38,39,40,41,42],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,6,7,8,11,12,13,16,17,18,19,20,21,22,23,24,25,26],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})(); \n\tparser.parser = parser;\n\texport { parser };\n\texport default parser;\n\t", "import { getConfig } from '../../diagram-api/diagramAPI.js';\nimport type { D3Element } from '../../types.js';\nimport { sanitizeText } from '../../diagrams/common/common.js';\nimport { log } from '../../logger.js';\nimport type { Edge, KanbanNode } from '../../rendering-util/types.js';\nimport defaultConfig from '../../defaultConfig.js';\nimport type { NodeMetaData } from '../../types.js';\nimport * as yaml from 'js-yaml';\n\nlet nodes: KanbanNode[] = [];\nlet sections: KanbanNode[] = [];\nlet cnt = 0;\nlet elements: Record = {};\n\nconst clear = () => {\n nodes = [];\n sections = [];\n cnt = 0;\n elements = {};\n};\n/*\n * if your level is the section level return null - then you do not belong to a level\n * otherwise return the current section\n */\nconst getSection = (level: number) => {\n if (nodes.length === 0) {\n // console.log('No nodes');\n return null;\n }\n const sectionLevel = nodes[0].level;\n let lastSection = null;\n for (let i = nodes.length - 1; i >= 0; i--) {\n if (nodes[i].level === sectionLevel && !lastSection) {\n lastSection = nodes[i];\n // console.log('lastSection found', lastSection);\n }\n // console.log('HERE', nodes[i].id, level, nodes[i].level, sectionLevel);\n if (nodes[i].level < sectionLevel) {\n throw new Error('Items without section detected, found section (\"' + nodes[i].label + '\")');\n }\n }\n if (level === lastSection?.level) {\n return null;\n }\n\n // No found\n return lastSection;\n};\n\nconst getSections = function () {\n return sections;\n};\n\nconst getData = function () {\n const edges = [] as Edge[];\n const _nodes: KanbanNode[] = [];\n\n const sections = getSections();\n const conf = getConfig();\n\n for (const section of sections) {\n const node = {\n id: section.id,\n label: sanitizeText(section.label ?? '', conf),\n isGroup: true,\n ticket: section.ticket,\n shape: 'kanbanSection',\n level: section.level,\n look: conf.look,\n } satisfies KanbanNode;\n _nodes.push(node);\n const children = nodes.filter((n) => n.parentId === section.id);\n\n for (const item of children) {\n const childNode = {\n id: item.id,\n parentId: section.id,\n label: sanitizeText(item.label ?? '', conf),\n isGroup: false,\n ticket: item?.ticket,\n priority: item?.priority,\n assigned: item?.assigned,\n icon: item?.icon,\n shape: 'kanbanItem',\n level: item.level,\n rx: 5,\n ry: 5,\n cssStyles: ['text-align: left'],\n } satisfies KanbanNode;\n _nodes.push(childNode);\n }\n }\n\n return { nodes: _nodes, edges, other: {}, config: getConfig() };\n};\n\nconst addNode = (level: number, id: string, descr: string, type: number, shapeData: string) => {\n const conf = getConfig();\n let padding: number = conf.mindmap?.padding ?? defaultConfig.mindmap.padding;\n switch (type) {\n case nodeType.ROUNDED_RECT:\n case nodeType.RECT:\n case nodeType.HEXAGON:\n padding *= 2;\n }\n\n const node: KanbanNode = {\n id: sanitizeText(id, conf) || 'kbn' + cnt++,\n level,\n label: sanitizeText(descr, conf),\n width: conf.mindmap?.maxNodeWidth ?? defaultConfig.mindmap.maxNodeWidth,\n padding,\n isGroup: false,\n } satisfies KanbanNode;\n\n if (shapeData !== undefined) {\n let yamlData;\n // detect if shapeData contains a newline character\n // console.log('shapeData', shapeData);\n if (!shapeData.includes('\\n')) {\n // console.log('yamlData shapeData has no new lines', shapeData);\n yamlData = '{\\n' + shapeData + '\\n}';\n } else {\n // console.log('yamlData shapeData has new lines', shapeData);\n yamlData = shapeData + '\\n';\n }\n const doc = yaml.load(yamlData, { schema: yaml.JSON_SCHEMA }) as NodeMetaData;\n // console.log('yamlData', doc);\n if (doc.shape && (doc.shape !== doc.shape.toLowerCase() || doc.shape.includes('_'))) {\n throw new Error(`No such shape: ${doc.shape}. Shape names should be lowercase.`);\n }\n\n // if shape is defined in the yaml data, use it if it is a valid shape kanbanItem\n if (doc?.shape && doc.shape === 'kanbanItem') {\n node.shape = doc?.shape;\n }\n if (doc?.label) {\n node.label = doc?.label;\n }\n if (doc?.icon) {\n node.icon = doc?.icon;\n }\n if (doc?.assigned) {\n node.assigned = doc?.assigned;\n }\n if (doc?.ticket) {\n node.ticket = doc?.ticket;\n }\n\n if (doc?.priority) {\n node.priority = doc?.priority;\n }\n }\n\n const section = getSection(level);\n if (section) {\n // @ts-ignore false positive for section.id\n node.parentId = section.id || 'kbn' + cnt++;\n } else {\n sections.push(node);\n }\n nodes.push(node);\n};\n\nconst nodeType = {\n DEFAULT: 0,\n NO_BORDER: 0,\n ROUNDED_RECT: 1,\n RECT: 2,\n CIRCLE: 3,\n CLOUD: 4,\n BANG: 5,\n HEXAGON: 6,\n};\n\nconst getType = (startStr: string, endStr: string): number => {\n log.debug('In get type', startStr, endStr);\n switch (startStr) {\n case '[':\n return nodeType.RECT;\n case '(':\n return endStr === ')' ? nodeType.ROUNDED_RECT : nodeType.CLOUD;\n case '((':\n return nodeType.CIRCLE;\n case ')':\n return nodeType.CLOUD;\n case '))':\n return nodeType.BANG;\n case '{{':\n return nodeType.HEXAGON;\n default:\n return nodeType.DEFAULT;\n }\n};\n\nconst setElementForId = (id: number, element: D3Element) => {\n elements[id] = element;\n};\n\nconst decorateNode = (decoration?: { class?: string; icon?: string }) => {\n if (!decoration) {\n return;\n }\n const config = getConfig();\n const node = nodes[nodes.length - 1];\n if (decoration.icon) {\n node.icon = sanitizeText(decoration.icon, config);\n }\n if (decoration.class) {\n node.cssClasses = sanitizeText(decoration.class, config);\n }\n};\n\nconst type2Str = (type: number) => {\n switch (type) {\n case nodeType.DEFAULT:\n return 'no-border';\n case nodeType.RECT:\n return 'rect';\n case nodeType.ROUNDED_RECT:\n return 'rounded-rect';\n case nodeType.CIRCLE:\n return 'circle';\n case nodeType.CLOUD:\n return 'cloud';\n case nodeType.BANG:\n return 'bang';\n case nodeType.HEXAGON:\n return 'hexgon'; // cspell: disable-line\n default:\n return 'no-border';\n }\n};\n\n// Expose logger to grammar\nconst getLogger = () => log;\nconst getElementById = (id: number) => elements[id];\n\nconst db = {\n clear,\n addNode,\n getSections,\n getData,\n nodeType,\n getType,\n setElementForId,\n decorateNode,\n type2Str,\n getLogger,\n getElementById,\n} as const;\n\nexport default db;\n", "import { getConfig } from '../../diagram-api/diagramAPI.js';\nimport type { DrawDefinition } from '../../diagram-api/types.js';\nimport { log } from '../../logger.js';\nimport { selectSvgElement } from '../../rendering-util/selectSvgElement.js';\nimport { setupGraphViewbox } from '../../setupGraphViewbox.js';\nimport type { KanbanDB } from './kanbanTypes.js';\nimport defaultConfig from '../../defaultConfig.js';\nimport { insertCluster } from '../../rendering-util/rendering-elements/clusters.js';\nimport { insertNode, positionNode } from '../../rendering-util/rendering-elements/nodes.js';\nimport type { ClusterNode } from '../../rendering-util/types.js';\n\nexport const draw: DrawDefinition = async (text, id, _version, diagObj) => {\n log.debug('Rendering kanban diagram\\n' + text);\n\n const db = diagObj.db as KanbanDB;\n const data4Layout = db.getData();\n\n const conf = getConfig();\n conf.htmlLabels = false;\n\n const svg = selectSvgElement(id);\n\n // Draw the graph and start with drawing the nodes without proper position\n // this gives us the size of the nodes and we can set the positions later\n\n const sectionsElem = svg.append('g');\n sectionsElem.attr('class', 'sections');\n const nodesElem = svg.append('g');\n nodesElem.attr('class', 'items');\n const sections = data4Layout.nodes.filter(\n // TODO: TypeScript 5.5 will infer this predicate automatically\n (node): node is typeof node & ClusterNode => node.isGroup\n );\n let cnt = 0;\n // TODO set padding\n const padding = 10;\n\n const sectionObjects = [];\n let maxLabelHeight = 25;\n for (const section of sections) {\n const WIDTH = conf?.kanban?.sectionWidth || 200;\n // const top = (-WIDTH * 3) / 2 + 25;\n // let y = top;\n cnt = cnt + 1;\n section.x = WIDTH * cnt + ((cnt - 1) * padding) / 2;\n section.width = WIDTH;\n section.y = 0;\n section.height = WIDTH * 3;\n section.rx = 5;\n section.ry = 5;\n\n // Todo, use theme variable THEME_COLOR_LIMIT instead of 10\n section.cssClasses = section.cssClasses + ' section-' + cnt;\n const sectionObj = await insertCluster(sectionsElem, section);\n maxLabelHeight = Math.max(maxLabelHeight, sectionObj?.labelBBox?.height);\n sectionObjects.push(sectionObj);\n }\n let i = 0;\n for (const section of sections) {\n const sectionObj = sectionObjects[i];\n i = i + 1;\n const WIDTH = conf?.kanban?.sectionWidth || 200;\n const top = (-WIDTH * 3) / 2 + maxLabelHeight;\n let y = top;\n const sectionItems = data4Layout.nodes.filter((node) => node.parentId === section.id);\n for (const item of sectionItems) {\n if (item.isGroup) {\n // Kanban diagrams should not have groups within groups\n // this should never happen\n throw new Error('Groups within groups are not allowed in Kanban diagrams');\n }\n item.x = section.x;\n item.width = WIDTH - 1.5 * padding;\n const nodeEl = await insertNode(nodesElem, item, { config: conf });\n const bbox = nodeEl.node()!.getBBox();\n item.y = y + bbox.height / 2;\n await positionNode(item);\n y = item.y + bbox.height / 2 + padding / 2;\n }\n const rect = sectionObj.cluster.select('rect');\n const height = Math.max(y - top + 3 * padding, 50) + (maxLabelHeight - 25);\n rect.attr('height', height);\n }\n\n // Setup the view box and size of the svg element\n setupGraphViewbox(\n undefined,\n svg,\n conf.mindmap?.padding ?? defaultConfig.kanban.padding,\n conf.mindmap?.useMaxWidth ?? defaultConfig.kanban.useMaxWidth\n );\n};\n\nexport default {\n draw,\n};\n", "// @ts-expect-error Incorrect khroma types\nimport { darken, lighten, isDark } from 'khroma';\nimport type { DiagramStylesProvider } from '../../diagram-api/types.js';\n\nconst genSections: DiagramStylesProvider = (options) => {\n let sections = '';\n\n for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) {\n options['lineColor' + i] = options['lineColor' + i] || options['cScaleInv' + i];\n if (isDark(options['lineColor' + i])) {\n options['lineColor' + i] = lighten(options['lineColor' + i], 20);\n } else {\n options['lineColor' + i] = darken(options['lineColor' + i], 20);\n }\n }\n\n const adjuster = (color: string, level: number) =>\n options.darkMode ? darken(color, level) : lighten(color, level);\n\n for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) {\n const sw = '' + (17 - 3 * i);\n sections += `\n .section-${i - 1} rect, .section-${i - 1} path, .section-${i - 1} circle, .section-${\n i - 1\n } polygon, .section-${i - 1} path {\n fill: ${adjuster(options['cScale' + i], 10)};\n stroke: ${adjuster(options['cScale' + i], 10)};\n\n }\n .section-${i - 1} text {\n fill: ${options['cScaleLabel' + i]};\n }\n .node-icon-${i - 1} {\n font-size: 40px;\n color: ${options['cScaleLabel' + i]};\n }\n .section-edge-${i - 1}{\n stroke: ${options['cScale' + i]};\n }\n .edge-depth-${i - 1}{\n stroke-width: ${sw};\n }\n .section-${i - 1} line {\n stroke: ${options['cScaleInv' + i]} ;\n stroke-width: 3;\n }\n\n .disabled, .disabled circle, .disabled text {\n fill: lightgray;\n }\n .disabled text {\n fill: #efefef;\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${options.background};\n stroke: ${options.nodeBorder};\n stroke-width: 1px;\n }\n\n .kanban-ticket-link {\n fill: ${options.background};\n stroke: ${options.nodeBorder};\n text-decoration: underline;\n }\n `;\n }\n return sections;\n};\n\n// TODO: These options seem incorrect.\nconst getStyles: DiagramStylesProvider = (options) =>\n `\n .edge {\n stroke-width: 3;\n }\n ${genSections(options)}\n .section-root rect, .section-root path, .section-root circle, .section-root polygon {\n fill: ${options.git0};\n }\n .section-root text {\n fill: ${options.gitBranchLabel0};\n }\n .icon-container {\n height:100%;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n .edge {\n fill: none;\n }\n .cluster-label, .label {\n color: ${options.textColor};\n fill: ${options.textColor};\n }\n .kanban-label {\n dy: 1em;\n alignment-baseline: middle;\n text-anchor: middle;\n dominant-baseline: middle;\n text-align: center;\n }\n`;\nexport default getStyles;\n", "// @ts-ignore: JISON doesn't support types\nimport parser from './parser/kanban.jison';\nimport db from './kanbanDb.js';\nimport renderer from './kanbanRenderer.js';\nimport styles from './styles.js';\nimport type { DiagramDefinition } from '../../diagram-api/types.js';\n\nexport const diagram: DiagramDefinition = {\n db,\n renderer,\n parser,\n styles,\n};\n"],
"mappings": "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,IAAG,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,KAAI,IAAG,IAAG,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,GAAE,EAAC,IAAG,IAAG,IAAG,IAAG,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,GAAE,EAAC,IAAG,CAAC,GAAE,EAAE,EAAC,CAAC,GAAE,EAAC,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAC,GAAE,KAAI,GAAE,KAAI,IAAG,IAAG,IAAG,IAAG,GAAE,EAAC,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,KAAI,IAAG,IAAG,IAAG,KAAI,IAAG,IAAG,IAAG,KAAI,IAAG,KAAI,IAAG,IAAG,IAAG,IAAG,IAAG,KAAI,IAAG,IAAG,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,GAAE,EAAC,GAAE,KAAI,IAAG,IAAG,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,CAAC,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,CAAC,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,GAAE,EAAC,IAAG,IAAG,IAAG,IAAG,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,GAAE,EAAC,IAAG,IAAG,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAC,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAC,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,GAAE,EAAC,GAAE,KAAI,IAAG,IAAG,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,GAAE,EAAC,IAAG,IAAG,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAC,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,CAAC;AAAA,IACp/B,gBAAgB,EAAC,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,CAAC,GAAE,CAAC,EAAC;AAAA,IAChC,YAAY,gCAAS,WAAY,KAAK,MAAM;AACxC,UAAI,KAAK,aAAa;AAClB,aAAK,MAAM,GAAG;AAAA,MAClB,OAAO;AACH,YAAI,QAAQ,IAAI,MAAM,GAAG;AACzB,cAAM,OAAO;AACb,cAAM;AAAA,MACV;AAAA,IACJ,GARY;AAAA,IASZ,OAAO,gCAAS,MAAM,OAAO;AACzB,UAAI,OAAO,MAAM,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,QAAQ,KAAK,OAAO,SAAS,IAAI,WAAW,GAAG,SAAS,GAAG,aAAa,GAAG,SAAS,GAAG,MAAM;AACtK,UAAI,OAAO,OAAO,MAAM,KAAK,WAAW,CAAC;AACzC,UAAIC,SAAQ,OAAO,OAAO,KAAK,KAAK;AACpC,UAAI,cAAc,EAAE,IAAI,CAAC,EAAE;AAC3B,eAAS,KAAK,KAAK,IAAI;AACnB,YAAI,OAAO,UAAU,eAAe,KAAK,KAAK,IAAI,CAAC,GAAG;AAClD,sBAAY,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC;AAAA,QACjC;AAAA,MACJ;AACA,MAAAA,OAAM,SAAS,OAAO,YAAY,EAAE;AACpC,kBAAY,GAAG,QAAQA;AACvB,kBAAY,GAAG,SAAS;AACxB,UAAI,OAAOA,OAAM,UAAU,aAAa;AACpC,QAAAA,OAAM,SAAS,CAAC;AAAA,MACpB;AACA,UAAI,QAAQA,OAAM;AAClB,aAAO,KAAK,KAAK;AACjB,UAAI,SAASA,OAAM,WAAWA,OAAM,QAAQ;AAC5C,UAAI,OAAO,YAAY,GAAG,eAAe,YAAY;AACjD,aAAK,aAAa,YAAY,GAAG;AAAA,MACrC,OAAO;AACH,aAAK,aAAa,OAAO,eAAe,IAAI,EAAE;AAAA,MAClD;AACA,eAAS,SAAS,GAAG;AACjB,cAAM,SAAS,MAAM,SAAS,IAAI;AAClC,eAAO,SAAS,OAAO,SAAS;AAChC,eAAO,SAAS,OAAO,SAAS;AAAA,MACpC;AAJS;AAKD,eAAS,MAAM;AACf,YAAI;AACJ,gBAAQ,OAAO,IAAI,KAAKA,OAAM,IAAI,KAAK;AACvC,YAAI,OAAO,UAAU,UAAU;AAC3B,cAAI,iBAAiB,OAAO;AACxB,qBAAS;AACT,oBAAQ,OAAO,IAAI;AAAA,UACvB;AACA,kBAAQ,KAAK,SAAS,KAAK,KAAK;AAAA,QACpC;AACA,eAAO;AAAA,MACX;AAXa;AAYjB,UAAI,QAAQ,gBAAgB,OAAO,QAAQ,GAAG,GAAG,QAAQ,CAAC,GAAG,GAAG,KAAK,UAAU;AAC/E,aAAO,MAAM;AACT,gBAAQ,MAAM,MAAM,SAAS,CAAC;AAC9B,YAAI,KAAK,eAAe,KAAK,GAAG;AAC5B,mBAAS,KAAK,eAAe,KAAK;AAAA,QACtC,OAAO;AACH,cAAI,WAAW,QAAQ,OAAO,UAAU,aAAa;AACjD,qBAAS,IAAI;AAAA,UACjB;AACA,mBAAS,MAAM,KAAK,KAAK,MAAM,KAAK,EAAE,MAAM;AAAA,QAChD;AACA,YAAI,OAAO,WAAW,eAAe,CAAC,OAAO,UAAU,CAAC,OAAO,CAAC,GAAG;AAC/D,cAAI,SAAS;AACb,qBAAW,CAAC;AACZ,eAAK,KAAK,MAAM,KAAK,GAAG;AACpB,gBAAI,KAAK,WAAW,CAAC,KAAK,IAAI,QAAQ;AAClC,uBAAS,KAAK,MAAO,KAAK,WAAW,CAAC,IAAI,GAAI;AAAA,YAClD;AAAA,UACJ;AACA,cAAIA,OAAM,cAAc;AACpB,qBAAS,0BAA0B,WAAW,KAAK,QAAQA,OAAM,aAAa,IAAI,iBAAiB,SAAS,KAAK,IAAI,IAAI,aAAc,KAAK,WAAW,MAAM,KAAK,UAAU;AAAA,UAChL,OAAO;AACH,qBAAS,0BAA0B,WAAW,KAAK,mBAAmB,UAAU,MAAM,iBAAiB,OAAQ,KAAK,WAAW,MAAM,KAAK,UAAU;AAAA,UACxJ;AACA,eAAK,WAAW,QAAQ;AAAA,YACpB,MAAMA,OAAM;AAAA,YACZ,OAAO,KAAK,WAAW,MAAM,KAAK;AAAA,YAClC,MAAMA,OAAM;AAAA,YACZ,KAAK;AAAA,YACL;AAAA,UACJ,CAAC;AAAA,QACL;AACA,YAAI,OAAO,CAAC,aAAa,SAAS,OAAO,SAAS,GAAG;AACjD,gBAAM,IAAI,MAAM,sDAAsD,QAAQ,cAAc,MAAM;AAAA,QACtG;AACA,gBAAQ,OAAO,CAAC,GAAG;AAAA,UACnB,KAAK;AACD,kBAAM,KAAK,MAAM;AACjB,mBAAO,KAAKA,OAAM,MAAM;AACxB,mBAAO,KAAKA,OAAM,MAAM;AACxB,kBAAM,KAAK,OAAO,CAAC,CAAC;AACpB,qBAAS;AACT,gBAAI,CAAC,gBAAgB;AACjB,uBAASA,OAAM;AACf,uBAASA,OAAM;AACf,yBAAWA,OAAM;AACjB,sBAAQA,OAAM;AACd,kBAAI,aAAa,GAAG;AAChB;AAAA,cACJ;AAAA,YACJ,OAAO;AACH,uBAAS;AACT,+BAAiB;AAAA,YACrB;AACA;AAAA,UACJ,KAAK;AACD,kBAAM,KAAK,aAAa,OAAO,CAAC,CAAC,EAAE,CAAC;AACpC,kBAAM,IAAI,OAAO,OAAO,SAAS,GAAG;AACpC,kBAAM,KAAK;AAAA,cACP,YAAY,OAAO,OAAO,UAAU,OAAO,EAAE,EAAE;AAAA,cAC/C,WAAW,OAAO,OAAO,SAAS,CAAC,EAAE;AAAA,cACrC,cAAc,OAAO,OAAO,UAAU,OAAO,EAAE,EAAE;AAAA,cACjD,aAAa,OAAO,OAAO,SAAS,CAAC,EAAE;AAAA,YAC3C;AACA,gBAAI,QAAQ;AACR,oBAAM,GAAG,QAAQ;AAAA,gBACb,OAAO,OAAO,UAAU,OAAO,EAAE,EAAE,MAAM,CAAC;AAAA,gBAC1C,OAAO,OAAO,SAAS,CAAC,EAAE,MAAM,CAAC;AAAA,cACrC;AAAA,YACJ;AACA,gBAAI,KAAK,cAAc,MAAM,OAAO;AAAA,cAChC;AAAA,cACA;AAAA,cACA;AAAA,cACA,YAAY;AAAA,cACZ,OAAO,CAAC;AAAA,cACR;AAAA,cACA;AAAA,YACJ,EAAE,OAAO,IAAI,CAAC;AACd,gBAAI,OAAO,MAAM,aAAa;AAC1B,qBAAO;AAAA,YACX;AACA,gBAAI,KAAK;AACL,sBAAQ,MAAM,MAAM,GAAG,KAAK,MAAM,CAAC;AACnC,uBAAS,OAAO,MAAM,GAAG,KAAK,GAAG;AACjC,uBAAS,OAAO,MAAM,GAAG,KAAK,GAAG;AAAA,YACrC;AACA,kBAAM,KAAK,KAAK,aAAa,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;AAC1C,mBAAO,KAAK,MAAM,CAAC;AACnB,mBAAO,KAAK,MAAM,EAAE;AACpB,uBAAW,MAAM,MAAM,MAAM,SAAS,CAAC,CAAC,EAAE,MAAM,MAAM,SAAS,CAAC,CAAC;AACjE,kBAAM,KAAK,QAAQ;AACnB;AAAA,UACJ,KAAK;AACD,mBAAO;AAAA,QACX;AAAA,MACJ;AACA,aAAO;AAAA,IACX,GA3IO;AAAA,EA2IN;AAGD,MAAI,QAAS,2BAAU;AACvB,QAAIA,SAAS;AAAA,MAEb,KAAI;AAAA,MAEJ,YAAW,gCAAS,WAAW,KAAK,MAAM;AAClC,YAAI,KAAK,GAAG,QAAQ;AAChB,eAAK,GAAG,OAAO,WAAW,KAAK,IAAI;AAAA,QACvC,OAAO;AACH,gBAAM,IAAI,MAAM,GAAG;AAAA,QACvB;AAAA,MACJ,GANO;AAAA;AAAA,MASX,UAAS,gCAAU,OAAO,IAAI;AACtB,aAAK,KAAK,MAAM,KAAK,MAAM,CAAC;AAC5B,aAAK,SAAS;AACd,aAAK,QAAQ,KAAK,aAAa,KAAK,OAAO;AAC3C,aAAK,WAAW,KAAK,SAAS;AAC9B,aAAK,SAAS,KAAK,UAAU,KAAK,QAAQ;AAC1C,aAAK,iBAAiB,CAAC,SAAS;AAChC,aAAK,SAAS;AAAA,UACV,YAAY;AAAA,UACZ,cAAc;AAAA,UACd,WAAW;AAAA,UACX,aAAa;AAAA,QACjB;AACA,YAAI,KAAK,QAAQ,QAAQ;AACrB,eAAK,OAAO,QAAQ,CAAC,GAAE,CAAC;AAAA,QAC5B;AACA,aAAK,SAAS;AACd,eAAO;AAAA,MACX,GAlBK;AAAA;AAAA,MAqBT,OAAM,kCAAY;AACV,YAAI,KAAK,KAAK,OAAO,CAAC;AACtB,aAAK,UAAU;AACf,aAAK;AACL,aAAK;AACL,aAAK,SAAS;AACd,aAAK,WAAW;AAChB,YAAI,QAAQ,GAAG,MAAM,iBAAiB;AACtC,YAAI,OAAO;AACP,eAAK;AACL,eAAK,OAAO;AAAA,QAChB,OAAO;AACH,eAAK,OAAO;AAAA,QAChB;AACA,YAAI,KAAK,QAAQ,QAAQ;AACrB,eAAK,OAAO,MAAM,CAAC;AAAA,QACvB;AAEA,aAAK,SAAS,KAAK,OAAO,MAAM,CAAC;AACjC,eAAO;AAAA,MACX,GApBE;AAAA;AAAA,MAuBN,OAAM,gCAAU,IAAI;AACZ,YAAI,MAAM,GAAG;AACb,YAAI,QAAQ,GAAG,MAAM,eAAe;AAEpC,aAAK,SAAS,KAAK,KAAK;AACxB,aAAK,SAAS,KAAK,OAAO,OAAO,GAAG,KAAK,OAAO,SAAS,GAAG;AAE5D,aAAK,UAAU;AACf,YAAI,WAAW,KAAK,MAAM,MAAM,eAAe;AAC/C,aAAK,QAAQ,KAAK,MAAM,OAAO,GAAG,KAAK,MAAM,SAAS,CAAC;AACvD,aAAK,UAAU,KAAK,QAAQ,OAAO,GAAG,KAAK,QAAQ,SAAS,CAAC;AAE7D,YAAI,MAAM,SAAS,GAAG;AAClB,eAAK,YAAY,MAAM,SAAS;AAAA,QACpC;AACA,YAAI,IAAI,KAAK,OAAO;AAEpB,aAAK,SAAS;AAAA,UACV,YAAY,KAAK,OAAO;AAAA,UACxB,WAAW,KAAK,WAAW;AAAA,UAC3B,cAAc,KAAK,OAAO;AAAA,UAC1B,aAAa,SACR,MAAM,WAAW,SAAS,SAAS,KAAK,OAAO,eAAe,KAC5D,SAAS,SAAS,SAAS,MAAM,MAAM,EAAE,SAAS,MAAM,CAAC,EAAE,SAChE,KAAK,OAAO,eAAe;AAAA,QACjC;AAEA,YAAI,KAAK,QAAQ,QAAQ;AACrB,eAAK,OAAO,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,KAAK,SAAS,GAAG;AAAA,QACvD;AACA,aAAK,SAAS,KAAK,OAAO;AAC1B,eAAO;AAAA,MACX,GAhCE;AAAA;AAAA,MAmCN,MAAK,kCAAY;AACT,aAAK,QAAQ;AACb,eAAO;AAAA,MACX,GAHC;AAAA;AAAA,MAML,QAAO,kCAAY;AACX,YAAI,KAAK,QAAQ,iBAAiB;AAC9B,eAAK,aAAa;AAAA,QACtB,OAAO;AACH,iBAAO,KAAK,WAAW,4BAA4B,KAAK,WAAW,KAAK,qIAAqI,KAAK,aAAa,GAAG;AAAA,YAC9N,MAAM;AAAA,YACN,OAAO;AAAA,YACP,MAAM,KAAK;AAAA,UACf,CAAC;AAAA,QAEL;AACA,eAAO;AAAA,MACX,GAZG;AAAA;AAAA,MAeP,MAAK,gCAAU,GAAG;AACV,aAAK,MAAM,KAAK,MAAM,MAAM,CAAC,CAAC;AAAA,MAClC,GAFC;AAAA;AAAA,MAKL,WAAU,kCAAY;AACd,YAAI,OAAO,KAAK,QAAQ,OAAO,GAAG,KAAK,QAAQ,SAAS,KAAK,MAAM,MAAM;AACzE,gBAAQ,KAAK,SAAS,KAAK,QAAM,MAAM,KAAK,OAAO,GAAG,EAAE,QAAQ,OAAO,EAAE;AAAA,MAC7E,GAHM;AAAA;AAAA,MAMV,eAAc,kCAAY;AAClB,YAAI,OAAO,KAAK;AAChB,YAAI,KAAK,SAAS,IAAI;AAClB,kBAAQ,KAAK,OAAO,OAAO,GAAG,KAAG,KAAK,MAAM;AAAA,QAChD;AACA,gBAAQ,KAAK,OAAO,GAAE,EAAE,KAAK,KAAK,SAAS,KAAK,QAAQ,KAAK,QAAQ,OAAO,EAAE;AAAA,MAClF,GANU;AAAA;AAAA,MASd,cAAa,kCAAY;AACjB,YAAI,MAAM,KAAK,UAAU;AACzB,YAAI,IAAI,IAAI,MAAM,IAAI,SAAS,CAAC,EAAE,KAAK,GAAG;AAC1C,eAAO,MAAM,KAAK,cAAc,IAAI,OAAO,IAAI;AAAA,MACnD,GAJS;AAAA;AAAA,MAOb,YAAW,gCAAS,OAAO,cAAc;AACjC,YAAI,OACA,OACA;AAEJ,YAAI,KAAK,QAAQ,iBAAiB;AAE9B,mBAAS;AAAA,YACL,UAAU,KAAK;AAAA,YACf,QAAQ;AAAA,cACJ,YAAY,KAAK,OAAO;AAAA,cACxB,WAAW,KAAK;AAAA,cAChB,cAAc,KAAK,OAAO;AAAA,cAC1B,aAAa,KAAK,OAAO;AAAA,YAC7B;AAAA,YACA,QAAQ,KAAK;AAAA,YACb,OAAO,KAAK;AAAA,YACZ,SAAS,KAAK;AAAA,YACd,SAAS,KAAK;AAAA,YACd,QAAQ,KAAK;AAAA,YACb,QAAQ,KAAK;AAAA,YACb,OAAO,KAAK;AAAA,YACZ,QAAQ,KAAK;AAAA,YACb,IAAI,KAAK;AAAA,YACT,gBAAgB,KAAK,eAAe,MAAM,CAAC;AAAA,YAC3C,MAAM,KAAK;AAAA,UACf;AACA,cAAI,KAAK,QAAQ,QAAQ;AACrB,mBAAO,OAAO,QAAQ,KAAK,OAAO,MAAM,MAAM,CAAC;AAAA,UACnD;AAAA,QACJ;AAEA,gBAAQ,MAAM,CAAC,EAAE,MAAM,iBAAiB;AACxC,YAAI,OAAO;AACP,eAAK,YAAY,MAAM;AAAA,QAC3B;AACA,aAAK,SAAS;AAAA,UACV,YAAY,KAAK,OAAO;AAAA,UACxB,WAAW,KAAK,WAAW;AAAA,UAC3B,cAAc,KAAK,OAAO;AAAA,UAC1B,aAAa,QACA,MAAM,MAAM,SAAS,CAAC,EAAE,SAAS,MAAM,MAAM,SAAS,CAAC,EAAE,MAAM,QAAQ,EAAE,CAAC,EAAE,SAC5E,KAAK,OAAO,cAAc,MAAM,CAAC,EAAE;AAAA,QACpD;AACA,aAAK,UAAU,MAAM,CAAC;AACtB,aAAK,SAAS,MAAM,CAAC;AACrB,aAAK,UAAU;AACf,aAAK,SAAS,KAAK,OAAO;AAC1B,YAAI,KAAK,QAAQ,QAAQ;AACrB,eAAK,OAAO,QAAQ,CAAC,KAAK,QAAQ,KAAK,UAAU,KAAK,MAAM;AAAA,QAChE;AACA,aAAK,QAAQ;AACb,aAAK,aAAa;AAClB,aAAK,SAAS,KAAK,OAAO,MAAM,MAAM,CAAC,EAAE,MAAM;AAC/C,aAAK,WAAW,MAAM,CAAC;AACvB,gBAAQ,KAAK,cAAc,KAAK,MAAM,KAAK,IAAI,MAAM,cAAc,KAAK,eAAe,KAAK,eAAe,SAAS,CAAC,CAAC;AACtH,YAAI,KAAK,QAAQ,KAAK,QAAQ;AAC1B,eAAK,OAAO;AAAA,QAChB;AACA,YAAI,OAAO;AACP,iBAAO;AAAA,QACX,WAAW,KAAK,YAAY;AAExB,mBAAS,KAAK,QAAQ;AAClB,iBAAK,CAAC,IAAI,OAAO,CAAC;AAAA,UACtB;AACA,iBAAO;AAAA,QACX;AACA,eAAO;AAAA,MACX,GArEO;AAAA;AAAA,MAwEX,MAAK,kCAAY;AACT,YAAI,KAAK,MAAM;AACX,iBAAO,KAAK;AAAA,QAChB;AACA,YAAI,CAAC,KAAK,QAAQ;AACd,eAAK,OAAO;AAAA,QAChB;AAEA,YAAI,OACA,OACA,WACA;AACJ,YAAI,CAAC,KAAK,OAAO;AACb,eAAK,SAAS;AACd,eAAK,QAAQ;AAAA,QACjB;AACA,YAAI,QAAQ,KAAK,cAAc;AAC/B,iBAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACnC,sBAAY,KAAK,OAAO,MAAM,KAAK,MAAM,MAAM,CAAC,CAAC,CAAC;AAClD,cAAI,cAAc,CAAC,SAAS,UAAU,CAAC,EAAE,SAAS,MAAM,CAAC,EAAE,SAAS;AAChE,oBAAQ;AACR,oBAAQ;AACR,gBAAI,KAAK,QAAQ,iBAAiB;AAC9B,sBAAQ,KAAK,WAAW,WAAW,MAAM,CAAC,CAAC;AAC3C,kBAAI,UAAU,OAAO;AACjB,uBAAO;AAAA,cACX,WAAW,KAAK,YAAY;AACxB,wBAAQ;AACR;AAAA,cACJ,OAAO;AAEH,uBAAO;AAAA,cACX;AAAA,YACJ,WAAW,CAAC,KAAK,QAAQ,MAAM;AAC3B;AAAA,YACJ;AAAA,UACJ;AAAA,QACJ;AACA,YAAI,OAAO;AACP,kBAAQ,KAAK,WAAW,OAAO,MAAM,KAAK,CAAC;AAC3C,cAAI,UAAU,OAAO;AACjB,mBAAO;AAAA,UACX;AAEA,iBAAO;AAAA,QACX;AACA,YAAI,KAAK,WAAW,IAAI;AACpB,iBAAO,KAAK;AAAA,QAChB,OAAO;AACH,iBAAO,KAAK,WAAW,4BAA4B,KAAK,WAAW,KAAK,2BAA2B,KAAK,aAAa,GAAG;AAAA,YACpH,MAAM;AAAA,YACN,OAAO;AAAA,YACP,MAAM,KAAK;AAAA,UACf,CAAC;AAAA,QACL;AAAA,MACJ,GAvDC;AAAA;AAAA,MA0DL,KAAI,gCAAS,MAAO;AACZ,YAAI,IAAI,KAAK,KAAK;AAClB,YAAI,GAAG;AACH,iBAAO;AAAA,QACX,OAAO;AACH,iBAAO,KAAK,IAAI;AAAA,QACpB;AAAA,MACJ,GAPA;AAAA;AAAA,MAUJ,OAAM,gCAAS,MAAO,WAAW;AACzB,aAAK,eAAe,KAAK,SAAS;AAAA,MACtC,GAFE;AAAA;AAAA,MAKN,UAAS,gCAAS,WAAY;AACtB,YAAI,IAAI,KAAK,eAAe,SAAS;AACrC,YAAI,IAAI,GAAG;AACP,iBAAO,KAAK,eAAe,IAAI;AAAA,QACnC,OAAO;AACH,iBAAO,KAAK,eAAe,CAAC;AAAA,QAChC;AAAA,MACJ,GAPK;AAAA;AAAA,MAUT,eAAc,gCAAS,gBAAiB;AAChC,YAAI,KAAK,eAAe,UAAU,KAAK,eAAe,KAAK,eAAe,SAAS,CAAC,GAAG;AACnF,iBAAO,KAAK,WAAW,KAAK,eAAe,KAAK,eAAe,SAAS,CAAC,CAAC,EAAE;AAAA,QAChF,OAAO;AACH,iBAAO,KAAK,WAAW,SAAS,EAAE;AAAA,QACtC;AAAA,MACJ,GANU;AAAA;AAAA,MASd,UAAS,gCAAS,SAAU,GAAG;AACvB,YAAI,KAAK,eAAe,SAAS,IAAI,KAAK,IAAI,KAAK,CAAC;AACpD,YAAI,KAAK,GAAG;AACR,iBAAO,KAAK,eAAe,CAAC;AAAA,QAChC,OAAO;AACH,iBAAO;AAAA,QACX;AAAA,MACJ,GAPK;AAAA;AAAA,MAUT,WAAU,gCAAS,UAAW,WAAW;AACjC,aAAK,MAAM,SAAS;AAAA,MACxB,GAFM;AAAA;AAAA,MAKV,gBAAe,gCAAS,iBAAiB;AACjC,eAAO,KAAK,eAAe;AAAA,MAC/B,GAFW;AAAA,MAGf,SAAS,EAAC,oBAAmB,KAAI;AAAA,MACjC,eAAe,gCAAS,UAAU,IAAG,KAAI,2BAA0B,UAAU;AAG7E,YAAI,UAAQ;AACZ,gBAAO,2BAA2B;AAAA,UAClC,KAAK;AAE+C,iBAAK,UAAU,WAAW;AAAG,gBAAI,SAAO;AAAI,mBAAO;AACvG;AAAA,UACA,KAAK;AAE+C,iBAAK,UAAU,cAAc;AAC7B,mBAAO;AAE3D;AAAA,UACA,KAAK;AAE+C,iBAAK,SAAS;AAAG,mBAAO;AAC5E;AAAA,UACA,KAAK;AAE+C,kBAAM,KAAK;AACX,gBAAI,SAAS,IAAI,OAAO,QAAQ,IAAG,OAAO;AAC1C,mBAAO;AAC3D;AAAA,UACA,KAAK;AAE+C,mBAAO;AAE3D;AAAA,UACA,KAAK;AAE+C,iBAAK,SAAS;AAElE;AAAA,UACA,KAAK;AAAE,eAAG,UAAU,EAAE,MAAM,iBAAgB,IAAI,MAAM;AAAG,mBAAO;AAChE;AAAA,UACA,KAAK;AAAE,mBAAO;AACd;AAAA,UACA,KAAK;AAAG,iBAAK,MAAM,OAAO;AAC1B;AAAA,UACA,KAAK;AAAG,iBAAK,SAAS;AAAE,mBAAO;AAC/B;AAAA,UACA,KAAK;AAAI,iBAAK,SAAS;AACvB;AAAA,UACA,KAAK;AAAI,eAAG,UAAU,EAAE,MAAM,YAAY;AAAE,iBAAK,MAAM,MAAM;AAC7D;AAAA,UACA,KAAK;AAAG,eAAG,UAAU,EAAE,MAAM,WAAW;AAAE,mBAAO;AACjD;AAAA,UACA,KAAK;AAAG,mBAAO;AACf;AAAA,UACA,KAAK;AAAI,mBAAO;AAChB;AAAA,UACA,KAAK;AAAG,eAAG,UAAU,EAAE,MAAM,UAAU;AAAE,iBAAK,SAAS;AACvD;AAAA,UACA,KAAK;AAAI,eAAG,UAAU,EAAE,MAAM,gBAAgB;AAAG,iBAAK,MAAM,MAAM;AAAE,mBAAO;AAC3E;AAAA,UACA,KAAK;AAAI,eAAG,UAAU,EAAE,MAAM,OAAO;AAAG,iBAAK,MAAM,MAAM;AAAE,mBAAO;AAClE;AAAA,UACA,KAAK;AAAI,eAAG,UAAU,EAAE,MAAM,gBAAgB;AAAG,iBAAK,MAAM,MAAM;AAAE,mBAAO;AAC3E;AAAA,UACA,KAAK;AAAI,eAAG,UAAU,EAAE,MAAM,YAAY;AAAG,iBAAK,MAAM,MAAM;AAAE,mBAAO;AACvE;AAAA,UACA,KAAK;AAAI,iBAAK,MAAM,MAAM;AAAE,mBAAO;AACnC;AAAA,UACA,KAAK;AAAI,iBAAK,MAAM,MAAM;AAAE,mBAAO;AACnC;AAAA,UACA,KAAK;AAAI,iBAAK,MAAM,MAAM;AAAE,mBAAO;AACnC;AAAA,UACA,KAAK;AAAI,iBAAK,MAAM,MAAM;AAAE,mBAAO;AACnC;AAAA,UACA,KAAK;AAAG,mBAAO;AACf;AAAA,UACA,KAAK;AAAG,mBAAO;AACf;AAAA,UACA,KAAK;AAAG,mBAAO;AACf;AAAA,UACA,KAAK;AAAI,iBAAK,MAAM,OAAO;AAC3B;AAAA,UACA,KAAK;AAAI,mBAAO;AAChB;AAAA,UACA,KAAK;AAAI,iBAAK,SAAS;AACvB;AAAA,UACA,KAAK;AAAI,eAAG,UAAU,EAAE,MAAM,eAAe;AAAE,iBAAK,MAAM,MAAM;AAChE;AAAA,UACA,KAAK;AAAI,eAAG,UAAU,EAAE,MAAM,gBAAgB,IAAI,MAAM;AAAG,mBAAO;AAClE;AAAA,UACA,KAAK;AAAG,iBAAK,SAAS;AACtB;AAAA,UACA,KAAK;AAAG,iBAAK,SAAS;AAAE,eAAG,UAAU,EAAE,MAAM,aAAa;AAAE,mBAAO;AACnE;AAAA,UACA,KAAK;AAAG,iBAAK,SAAS;AAAE,eAAG,UAAU,EAAE,MAAM,YAAY;AAAE,mBAAO;AAClE;AAAA,UACA,KAAK;AAAG,iBAAK,SAAS;AAAE,eAAG,UAAU,EAAE,MAAM,gBAAe,IAAI,MAAM;AAAE,mBAAO;AAC/E;AAAA,UACA,KAAK;AAAG,iBAAK,SAAS;AAAE,eAAG,UAAU,EAAE,MAAM,aAAa;AAAE,mBAAO;AACnE;AAAA,UACA,KAAK;AAAG,iBAAK,SAAS;AAAE,eAAG,UAAU,EAAE,MAAM,aAAa;AAAE,mBAAO;AACnE;AAAA,UACA,KAAK;AAAG,iBAAK,SAAS;AAAE,eAAG,UAAU,EAAE,MAAM,aAAa;AAAE,mBAAO;AACnE;AAAA,UACA,KAAK;AAAG,iBAAK,SAAS;AAAE,eAAG,UAAU,EAAE,MAAM,aAAa;AAAE,mBAAO;AACnE;AAAA,UACA,KAAK;AAAG,iBAAK,SAAS;AAAE,eAAG,UAAU,EAAE,MAAM,aAAa;AAAE,mBAAO;AACnE;AAAA,UACA,KAAK;AAAI,eAAG,UAAU,EAAE,MAAM,qBAAqB,IAAI,MAAM;AAAK,mBAAO;AACzE;AAAA,UACA,KAAK;AAAI,eAAG,UAAU,EAAE,MAAM,qBAAqB,IAAI,MAAM;AAAK,mBAAO;AACzE;AAAA,QACA;AAAA,MACA,GA9Ge;AAAA,MA+Gf,OAAO,CAAC,aAAY,aAAY,aAAY,gBAAe,iBAAgB,YAAW,iBAAgB,kBAAiB,aAAY,YAAW,YAAW,kBAAiB,mBAAkB,eAAc,gBAAe,YAAW,aAAY,aAAY,cAAa,YAAW,cAAa,cAAa,YAAW,YAAW,eAAc,2BAA0B,WAAU,gBAAe,gBAAe,gBAAe,aAAY,eAAc,aAAY,gBAAe,cAAa,cAAa,cAAa,aAAY,aAAY,cAAa,YAAW,sBAAqB,kBAAkB;AAAA,MACtlB,YAAY,EAAC,uBAAsB,EAAC,SAAQ,CAAC,GAAE,aAAY,MAAK,GAAE,gBAAe,EAAC,SAAQ,CAAC,GAAE,CAAC,GAAE,aAAY,MAAK,GAAE,aAAY,EAAC,SAAQ,CAAC,GAAE,GAAE,CAAC,GAAE,aAAY,MAAK,GAAE,SAAQ,EAAC,SAAQ,CAAC,GAAE,EAAE,GAAE,aAAY,MAAK,GAAE,QAAO,EAAC,SAAQ,CAAC,IAAG,EAAE,GAAE,aAAY,MAAK,GAAE,SAAQ,EAAC,SAAQ,CAAC,IAAG,EAAE,GAAE,aAAY,MAAK,GAAE,QAAO,EAAC,SAAQ,CAAC,IAAG,EAAE,GAAE,aAAY,MAAK,GAAE,QAAO,EAAC,SAAQ,CAAC,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,EAAE,GAAE,aAAY,MAAK,GAAE,WAAU,EAAC,SAAQ,CAAC,GAAE,GAAE,GAAE,GAAE,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,EAAE,GAAE,aAAY,KAAI,EAAC;AAAA,IACjf;AACA,WAAOA;AAAA,EACP,EAAG;AACH,EAAAD,QAAO,QAAQ;AACf,WAAS,SAAU;AACjB,SAAK,KAAK,CAAC;AAAA,EACb;AAFS;AAGT,SAAO,YAAYA;AAAO,EAAAA,QAAO,SAAS;AAC1C,SAAO,IAAI;AACX,EAAG;AACF,OAAO,SAAS;AAEhB,IAAO,iBAAQ;;;AC9tBhB,IAAI,QAAsB,CAAC;AAC3B,IAAI,WAAyB,CAAC;AAC9B,IAAI,MAAM;AACV,IAAI,WAAsC,CAAC;AAE3C,IAAM,QAAQ,6BAAM;AAClB,UAAQ,CAAC;AACT,aAAW,CAAC;AACZ,QAAM;AACN,aAAW,CAAC;AACd,GALc;AAUd,IAAM,aAAa,wBAAC,UAAkB;AACpC,MAAI,MAAM,WAAW,GAAG;AAEtB,WAAO;AAAA,EACT;AACA,QAAM,eAAe,MAAM,CAAC,EAAE;AAC9B,MAAI,cAAc;AAClB,WAAS,IAAI,MAAM,SAAS,GAAG,KAAK,GAAG,KAAK;AAC1C,QAAI,MAAM,CAAC,EAAE,UAAU,gBAAgB,CAAC,aAAa;AACnD,oBAAc,MAAM,CAAC;AAAA,IAEvB;AAEA,QAAI,MAAM,CAAC,EAAE,QAAQ,cAAc;AACjC,YAAM,IAAI,MAAM,qDAAqD,MAAM,CAAC,EAAE,QAAQ,IAAI;AAAA,IAC5F;AAAA,EACF;AACA,MAAI,UAAU,aAAa,OAAO;AAChC,WAAO;AAAA,EACT;AAGA,SAAO;AACT,GAvBmB;AAyBnB,IAAM,cAAc,kCAAY;AAC9B,SAAO;AACT,GAFoB;AAIpB,IAAM,UAAU,kCAAY;AAC1B,QAAM,QAAQ,CAAC;AACf,QAAM,SAAuB,CAAC;AAE9B,QAAME,YAAW,YAAY;AAC7B,QAAM,OAAO,UAAU;AAEvB,aAAW,WAAWA,WAAU;AAC9B,UAAM,OAAO;AAAA,MACX,IAAI,QAAQ;AAAA,MACZ,OAAO,aAAa,QAAQ,SAAS,IAAI,IAAI;AAAA,MAC7C,SAAS;AAAA,MACT,QAAQ,QAAQ;AAAA,MAChB,OAAO;AAAA,MACP,OAAO,QAAQ;AAAA,MACf,MAAM,KAAK;AAAA,IACb;AACA,WAAO,KAAK,IAAI;AAChB,UAAM,WAAW,MAAM,OAAO,CAAC,MAAM,EAAE,aAAa,QAAQ,EAAE;AAE9D,eAAW,QAAQ,UAAU;AAC3B,YAAM,YAAY;AAAA,QAChB,IAAI,KAAK;AAAA,QACT,UAAU,QAAQ;AAAA,QAClB,OAAO,aAAa,KAAK,SAAS,IAAI,IAAI;AAAA,QAC1C,SAAS;AAAA,QACT,QAAQ,MAAM;AAAA,QACd,UAAU,MAAM;AAAA,QAChB,UAAU,MAAM;AAAA,QAChB,MAAM,MAAM;AAAA,QACZ,OAAO;AAAA,QACP,OAAO,KAAK;AAAA,QACZ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,WAAW,CAAC,kBAAkB;AAAA,MAChC;AACA,aAAO,KAAK,SAAS;AAAA,IACvB;AAAA,EACF;AAEA,SAAO,EAAE,OAAO,QAAQ,OAAO,OAAO,CAAC,GAAG,QAAQ,UAAU,EAAE;AAChE,GAzCgB;AA2ChB,IAAM,UAAU,wBAAC,OAAe,IAAY,OAAe,MAAc,cAAsB;AAC7F,QAAM,OAAO,UAAU;AACvB,MAAI,UAAkB,KAAK,SAAS,WAAW,sBAAc,QAAQ;AACrE,UAAQ,MAAM;AAAA,IACZ,KAAK,SAAS;AAAA,IACd,KAAK,SAAS;AAAA,IACd,KAAK,SAAS;AACZ,iBAAW;AAAA,EACf;AAEA,QAAM,OAAmB;AAAA,IACvB,IAAI,aAAa,IAAI,IAAI,KAAK,QAAQ;AAAA,IACtC;AAAA,IACA,OAAO,aAAa,OAAO,IAAI;AAAA,IAC/B,OAAO,KAAK,SAAS,gBAAgB,sBAAc,QAAQ;AAAA,IAC3D;AAAA,IACA,SAAS;AAAA,EACX;AAEA,MAAI,cAAc,QAAW;AAC3B,QAAI;AAGJ,QAAI,CAAC,UAAU,SAAS,IAAI,GAAG;AAE7B,iBAAW,QAAQ,YAAY;AAAA,IACjC,OAAO;AAEL,iBAAW,YAAY;AAAA,IACzB;AACA,UAAM,MAAW,KAAK,UAAU,EAAE,QAAa,YAAY,CAAC;AAE5D,QAAI,IAAI,UAAU,IAAI,UAAU,IAAI,MAAM,YAAY,KAAK,IAAI,MAAM,SAAS,GAAG,IAAI;AACnF,YAAM,IAAI,MAAM,kBAAkB,IAAI,KAAK,oCAAoC;AAAA,IACjF;AAGA,QAAI,KAAK,SAAS,IAAI,UAAU,cAAc;AAC5C,WAAK,QAAQ,KAAK;AAAA,IACpB;AACA,QAAI,KAAK,OAAO;AACd,WAAK,QAAQ,KAAK;AAAA,IACpB;AACA,QAAI,KAAK,MAAM;AACb,WAAK,OAAO,KAAK;AAAA,IACnB;AACA,QAAI,KAAK,UAAU;AACjB,WAAK,WAAW,KAAK;AAAA,IACvB;AACA,QAAI,KAAK,QAAQ;AACf,WAAK,SAAS,KAAK;AAAA,IACrB;AAEA,QAAI,KAAK,UAAU;AACjB,WAAK,WAAW,KAAK;AAAA,IACvB;AAAA,EACF;AAEA,QAAM,UAAU,WAAW,KAAK;AAChC,MAAI,SAAS;AAEX,SAAK,WAAW,QAAQ,MAAM,QAAQ;AAAA,EACxC,OAAO;AACL,aAAS,KAAK,IAAI;AAAA,EACpB;AACA,QAAM,KAAK,IAAI;AACjB,GAlEgB;AAoEhB,IAAM,WAAW;AAAA,EACf,SAAS;AAAA,EACT,WAAW;AAAA,EACX,cAAc;AAAA,EACd,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,MAAM;AAAA,EACN,SAAS;AACX;AAEA,IAAM,UAAU,wBAAC,UAAkB,WAA2B;AAC5D,MAAI,MAAM,eAAe,UAAU,MAAM;AACzC,UAAQ,UAAU;AAAA,IAChB,KAAK;AACH,aAAO,SAAS;AAAA,IAClB,KAAK;AACH,aAAO,WAAW,MAAM,SAAS,eAAe,SAAS;AAAA,IAC3D,KAAK;AACH,aAAO,SAAS;AAAA,IAClB,KAAK;AACH,aAAO,SAAS;AAAA,IAClB,KAAK;AACH,aAAO,SAAS;AAAA,IAClB,KAAK;AACH,aAAO,SAAS;AAAA,IAClB;AACE,aAAO,SAAS;AAAA,EACpB;AACF,GAlBgB;AAoBhB,IAAM,kBAAkB,wBAAC,IAAY,YAAuB;AAC1D,WAAS,EAAE,IAAI;AACjB,GAFwB;AAIxB,IAAM,eAAe,wBAAC,eAAmD;AACvE,MAAI,CAAC,YAAY;AACf;AAAA,EACF;AACA,QAAM,SAAS,UAAU;AACzB,QAAM,OAAO,MAAM,MAAM,SAAS,CAAC;AACnC,MAAI,WAAW,MAAM;AACnB,SAAK,OAAO,aAAa,WAAW,MAAM,MAAM;AAAA,EAClD;AACA,MAAI,WAAW,OAAO;AACpB,SAAK,aAAa,aAAa,WAAW,OAAO,MAAM;AAAA,EACzD;AACF,GAZqB;AAcrB,IAAM,WAAW,wBAAC,SAAiB;AACjC,UAAQ,MAAM;AAAA,IACZ,KAAK,SAAS;AACZ,aAAO;AAAA,IACT,KAAK,SAAS;AACZ,aAAO;AAAA,IACT,KAAK,SAAS;AACZ,aAAO;AAAA,IACT,KAAK,SAAS;AACZ,aAAO;AAAA,IACT,KAAK,SAAS;AACZ,aAAO;AAAA,IACT,KAAK,SAAS;AACZ,aAAO;AAAA,IACT,KAAK,SAAS;AACZ,aAAO;AAAA,IACT;AACE,aAAO;AAAA,EACX;AACF,GAnBiB;AAsBjB,IAAM,YAAY,6BAAM,KAAN;AAClB,IAAM,iBAAiB,wBAAC,OAAe,SAAS,EAAE,GAA3B;AAEvB,IAAM,KAAK;AAAA,EACT;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,IAAO,mBAAQ;;;ACjPR,IAAM,OAAuB,8BAAO,MAAM,IAAI,UAAU,YAAY;AACzE,MAAI,MAAM,+BAA+B,IAAI;AAE7C,QAAMC,MAAK,QAAQ;AACnB,QAAM,cAAcA,IAAG,QAAQ;AAE/B,QAAM,OAAO,UAAU;AACvB,OAAK,aAAa;AAElB,QAAM,MAAM,iBAAiB,EAAE;AAK/B,QAAM,eAAe,IAAI,OAAO,GAAG;AACnC,eAAa,KAAK,SAAS,UAAU;AACrC,QAAM,YAAY,IAAI,OAAO,GAAG;AAChC,YAAU,KAAK,SAAS,OAAO;AAC/B,QAAMC,YAAW,YAAY,MAAM;AAAA;AAAA,IAEjC,CAAC,SAA4C,KAAK;AAAA,EACpD;AACA,MAAIC,OAAM;AAEV,QAAM,UAAU;AAEhB,QAAM,iBAAiB,CAAC;AACxB,MAAI,iBAAiB;AACrB,aAAW,WAAWD,WAAU;AAC9B,UAAM,QAAQ,MAAM,QAAQ,gBAAgB;AAG5C,IAAAC,OAAMA,OAAM;AACZ,YAAQ,IAAI,QAAQA,QAAQA,OAAM,KAAK,UAAW;AAClD,YAAQ,QAAQ;AAChB,YAAQ,IAAI;AACZ,YAAQ,SAAS,QAAQ;AACzB,YAAQ,KAAK;AACb,YAAQ,KAAK;AAGb,YAAQ,aAAa,QAAQ,aAAa,cAAcA;AACxD,UAAM,aAAa,MAAM,cAAc,cAAc,OAAO;AAC5D,qBAAiB,KAAK,IAAI,gBAAgB,YAAY,WAAW,MAAM;AACvE,mBAAe,KAAK,UAAU;AAAA,EAChC;AACA,MAAI,IAAI;AACR,aAAW,WAAWD,WAAU;AAC9B,UAAM,aAAa,eAAe,CAAC;AACnC,QAAI,IAAI;AACR,UAAM,QAAQ,MAAM,QAAQ,gBAAgB;AAC5C,UAAM,MAAO,CAAC,QAAQ,IAAK,IAAI;AAC/B,QAAI,IAAI;AACR,UAAM,eAAe,YAAY,MAAM,OAAO,CAAC,SAAS,KAAK,aAAa,QAAQ,EAAE;AACpF,eAAW,QAAQ,cAAc;AAC/B,UAAI,KAAK,SAAS;AAGhB,cAAM,IAAI,MAAM,yDAAyD;AAAA,MAC3E;AACA,WAAK,IAAI,QAAQ;AACjB,WAAK,QAAQ,QAAQ,MAAM;AAC3B,YAAM,SAAS,MAAM,WAAW,WAAW,MAAM,EAAE,QAAQ,KAAK,CAAC;AACjE,YAAM,OAAO,OAAO,KAAK,EAAG,QAAQ;AACpC,WAAK,IAAI,IAAI,KAAK,SAAS;AAC3B,YAAM,aAAa,IAAI;AACvB,UAAI,KAAK,IAAI,KAAK,SAAS,IAAI,UAAU;AAAA,IAC3C;AACA,UAAM,OAAO,WAAW,QAAQ,OAAO,MAAM;AAC7C,UAAM,SAAS,KAAK,IAAI,IAAI,MAAM,IAAI,SAAS,EAAE,KAAK,iBAAiB;AACvE,SAAK,KAAK,UAAU,MAAM;AAAA,EAC5B;AAGA;AAAA,IACE;AAAA,IACA;AAAA,IACA,KAAK,SAAS,WAAW,sBAAc,OAAO;AAAA,IAC9C,KAAK,SAAS,eAAe,sBAAc,OAAO;AAAA,EACpD;AACF,GAhFoC;AAkFpC,IAAO,yBAAQ;AAAA,EACb;AACF;;;AC9FA,SAAS,QAAQ,SAAS,cAAc;AAGxC,IAAM,cAAqC,wBAAC,YAAY;AACtD,MAAIE,YAAW;AAEf,WAAS,IAAI,GAAG,IAAI,QAAQ,mBAAmB,KAAK;AAClD,YAAQ,cAAc,CAAC,IAAI,QAAQ,cAAc,CAAC,KAAK,QAAQ,cAAc,CAAC;AAC9E,QAAI,OAAO,QAAQ,cAAc,CAAC,CAAC,GAAG;AACpC,cAAQ,cAAc,CAAC,IAAI,QAAQ,QAAQ,cAAc,CAAC,GAAG,EAAE;AAAA,IACjE,OAAO;AACL,cAAQ,cAAc,CAAC,IAAI,OAAO,QAAQ,cAAc,CAAC,GAAG,EAAE;AAAA,IAChE;AAAA,EACF;AAEA,QAAM,WAAW,wBAAC,OAAe,UAC/B,QAAQ,WAAW,OAAO,OAAO,KAAK,IAAI,QAAQ,OAAO,KAAK,GAD/C;AAGjB,WAAS,IAAI,GAAG,IAAI,QAAQ,mBAAmB,KAAK;AAClD,UAAM,KAAK,MAAM,KAAK,IAAI;AAC1B,IAAAA,aAAY;AAAA,eACD,IAAI,CAAC,mBAAmB,IAAI,CAAC,mBAAmB,IAAI,CAAC,qBAC9D,IAAI,CACN,sBAAsB,IAAI,CAAC;AAAA,cACjB,SAAS,QAAQ,WAAW,CAAC,GAAG,EAAE,CAAC;AAAA,gBACjC,SAAS,QAAQ,WAAW,CAAC,GAAG,EAAE,CAAC;AAAA;AAAA;AAAA,eAGpC,IAAI,CAAC;AAAA,aACP,QAAQ,gBAAgB,CAAC,CAAC;AAAA;AAAA,iBAEtB,IAAI,CAAC;AAAA;AAAA,eAEP,QAAQ,gBAAgB,CAAC,CAAC;AAAA;AAAA,oBAErB,IAAI,CAAC;AAAA,gBACT,QAAQ,WAAW,CAAC,CAAC;AAAA;AAAA,kBAEnB,IAAI,CAAC;AAAA,sBACD,EAAE;AAAA;AAAA,eAET,IAAI,CAAC;AAAA,gBACJ,QAAQ,cAAc,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAgB5B,QAAQ,UAAU;AAAA,cAChB,QAAQ,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA,YAKpB,QAAQ,UAAU;AAAA,cAChB,QAAQ,UAAU;AAAA;AAAA;AAAA;AAAA,EAI9B;AACA,SAAOA;AACT,GApE2C;AAuE3C,IAAM,YAAmC,wBAAC,YACxC;AAAA;AAAA;AAAA;AAAA,IAIE,YAAY,OAAO,CAAC;AAAA;AAAA,YAEZ,QAAQ,IAAI;AAAA;AAAA;AAAA,YAGZ,QAAQ,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAYtB,QAAQ,SAAS;AAAA,YAClB,QAAQ,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAvBY;AAiCzC,IAAO,iBAAQ;;;ACrGR,IAAM,UAA6B;AAAA,EACxC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;",
"names": ["o", "parser", "lexer", "sections", "db", "sections", "cnt", "sections"]
}