{"version":3,"file":"pug-kEfRDOiF.cjs","sources":["../node_modules/@codemirror/legacy-modes/mode/pug.js"],"sourcesContent":["import {javascript} from \"./javascript.js\"\n\nvar ATTRS_NEST = {\n  '{': '}',\n  '(': ')',\n  '[': ']'\n}\n\nfunction defaultCopyState(state) {\n  if (typeof state != \"object\") return state\n  let newState = {}\n  for (let prop in state) {\n    let val = state[prop]\n    newState[prop] = val instanceof Array ? val.slice() : val\n  }\n  return newState\n}\n\nclass State {\n  constructor(indentUnit) {\n    this.indentUnit = indentUnit\n\n    this.javaScriptLine = false\n    this.javaScriptLineExcludesColon = false\n\n    this.javaScriptArguments = false\n    this.javaScriptArgumentsDepth = 0\n\n    this.isInterpolating = false\n    this.interpolationNesting = 0\n\n    this.jsState = javascript.startState(indentUnit)\n\n    this.restOfLine = ''\n\n    this.isIncludeFiltered = false\n    this.isEach = false\n\n    this.lastTag = ''\n\n    // Attributes Mode\n    this.isAttrs = false\n    this.attrsNest = []\n    this.inAttributeName = true\n    this.attributeIsType = false\n    this.attrValue = ''\n\n    // Indented Mode\n    this.indentOf = Infinity\n    this.indentToken = ''\n  }\n\n  copy() {\n    var res = new State(this.indentUnit)\n    res.javaScriptLine = this.javaScriptLine\n    res.javaScriptLineExcludesColon = this.javaScriptLineExcludesColon\n    res.javaScriptArguments = this.javaScriptArguments\n    res.javaScriptArgumentsDepth = this.javaScriptArgumentsDepth\n    res.isInterpolating = this.isInterpolating\n    res.interpolationNesting = this.interpolationNesting\n\n    res.jsState = (javascript.copyState || defaultCopyState)(this.jsState)\n\n    res.restOfLine = this.restOfLine\n\n    res.isIncludeFiltered = this.isIncludeFiltered\n    res.isEach = this.isEach\n    res.lastTag = this.lastTag\n    res.isAttrs = this.isAttrs\n    res.attrsNest = this.attrsNest.slice()\n    res.inAttributeName = this.inAttributeName\n    res.attributeIsType = this.attributeIsType\n    res.attrValue = this.attrValue\n    res.indentOf = this.indentOf\n    res.indentToken = this.indentToken\n\n    return res\n  }\n}\n\nfunction javaScript(stream, state) {\n  if (stream.sol()) {\n    // if javaScriptLine was set at end of line, ignore it\n    state.javaScriptLine = false\n    state.javaScriptLineExcludesColon = false\n  }\n  if (state.javaScriptLine) {\n    if (state.javaScriptLineExcludesColon && stream.peek() === ':') {\n      state.javaScriptLine = false\n      state.javaScriptLineExcludesColon = false\n      return\n    }\n    var tok = javascript.token(stream, state.jsState)\n    if (stream.eol()) state.javaScriptLine = false\n    return tok || true\n  }\n}\nfunction javaScriptArguments(stream, state) {\n  if (state.javaScriptArguments) {\n    if (state.javaScriptArgumentsDepth === 0 && stream.peek() !== '(') {\n      state.javaScriptArguments = false\n      return\n    }\n    if (stream.peek() === '(') {\n      state.javaScriptArgumentsDepth++\n    } else if (stream.peek() === ')') {\n      state.javaScriptArgumentsDepth--\n    }\n    if (state.javaScriptArgumentsDepth === 0) {\n      state.javaScriptArguments = false\n      return\n    }\n\n    var tok = javascript.token(stream, state.jsState)\n    return tok || true\n  }\n}\n\nfunction yieldStatement(stream) {\n  if (stream.match(/^yield\\b/)) {\n    return 'keyword'\n  }\n}\n\nfunction doctype(stream) {\n  if (stream.match(/^(?:doctype) *([^\\n]+)?/)) return 'meta'\n}\n\nfunction interpolation(stream, state) {\n  if (stream.match('#{')) {\n    state.isInterpolating = true\n    state.interpolationNesting = 0\n    return 'punctuation'\n  }\n}\n\nfunction interpolationContinued(stream, state) {\n  if (state.isInterpolating) {\n    if (stream.peek() === '}') {\n      state.interpolationNesting--\n      if (state.interpolationNesting < 0) {\n        stream.next()\n        state.isInterpolating = false\n        return 'punctuation'\n      }\n    } else if (stream.peek() === '{') {\n      state.interpolationNesting++\n    }\n    return javascript.token(stream, state.jsState) || true\n  }\n}\n\nfunction caseStatement(stream, state) {\n  if (stream.match(/^case\\b/)) {\n    state.javaScriptLine = true\n    return 'keyword'\n  }\n}\n\nfunction when(stream, state) {\n  if (stream.match(/^when\\b/)) {\n    state.javaScriptLine = true\n    state.javaScriptLineExcludesColon = true\n    return 'keyword'\n  }\n}\n\nfunction defaultStatement(stream) {\n  if (stream.match(/^default\\b/)) {\n    return 'keyword'\n  }\n}\n\nfunction extendsStatement(stream, state) {\n  if (stream.match(/^extends?\\b/)) {\n    state.restOfLine = 'string'\n    return 'keyword'\n  }\n}\n\nfunction append(stream, state) {\n  if (stream.match(/^append\\b/)) {\n    state.restOfLine = 'variable'\n    return 'keyword'\n  }\n}\nfunction prepend(stream, state) {\n  if (stream.match(/^prepend\\b/)) {\n    state.restOfLine = 'variable'\n    return 'keyword'\n  }\n}\nfunction block(stream, state) {\n  if (stream.match(/^block\\b *(?:(prepend|append)\\b)?/)) {\n    state.restOfLine = 'variable'\n    return 'keyword'\n  }\n}\n\nfunction include(stream, state) {\n  if (stream.match(/^include\\b/)) {\n    state.restOfLine = 'string'\n    return 'keyword'\n  }\n}\n\nfunction includeFiltered(stream, state) {\n  if (stream.match(/^include:([a-zA-Z0-9\\-]+)/, false) && stream.match('include')) {\n    state.isIncludeFiltered = true\n    return 'keyword'\n  }\n}\n\nfunction includeFilteredContinued(stream, state) {\n  if (state.isIncludeFiltered) {\n    var tok = filter(stream, state)\n    state.isIncludeFiltered = false\n    state.restOfLine = 'string'\n    return tok\n  }\n}\n\nfunction mixin(stream, state) {\n  if (stream.match(/^mixin\\b/)) {\n    state.javaScriptLine = true\n    return 'keyword'\n  }\n}\n\nfunction call(stream, state) {\n  if (stream.match(/^\\+([-\\w]+)/)) {\n    if (!stream.match(/^\\( *[-\\w]+ *=/, false)) {\n      state.javaScriptArguments = true\n      state.javaScriptArgumentsDepth = 0\n    }\n    return 'variable'\n  }\n  if (stream.match('+#{', false)) {\n    stream.next()\n    state.mixinCallAfter = true\n    return interpolation(stream, state)\n  }\n}\nfunction callArguments(stream, state) {\n  if (state.mixinCallAfter) {\n    state.mixinCallAfter = false\n    if (!stream.match(/^\\( *[-\\w]+ *=/, false)) {\n      state.javaScriptArguments = true\n      state.javaScriptArgumentsDepth = 0\n    }\n    return true\n  }\n}\n\nfunction conditional(stream, state) {\n  if (stream.match(/^(if|unless|else if|else)\\b/)) {\n    state.javaScriptLine = true\n    return 'keyword'\n  }\n}\n\nfunction each(stream, state) {\n  if (stream.match(/^(- *)?(each|for)\\b/)) {\n    state.isEach = true\n    return 'keyword'\n  }\n}\nfunction eachContinued(stream, state) {\n  if (state.isEach) {\n    if (stream.match(/^ in\\b/)) {\n      state.javaScriptLine = true\n      state.isEach = false\n      return 'keyword'\n    } else if (stream.sol() || stream.eol()) {\n      state.isEach = false\n    } else if (stream.next()) {\n      while (!stream.match(/^ in\\b/, false) && stream.next()) {}\n      return 'variable'\n    }\n  }\n}\n\nfunction whileStatement(stream, state) {\n  if (stream.match(/^while\\b/)) {\n    state.javaScriptLine = true\n    return 'keyword'\n  }\n}\n\nfunction tag(stream, state) {\n  var captures\n  if (captures = stream.match(/^(\\w(?:[-:\\w]*\\w)?)\\/?/)) {\n    state.lastTag = captures[1].toLowerCase()\n    return 'tag'\n  }\n}\n\nfunction filter(stream, state) {\n  if (stream.match(/^:([\\w\\-]+)/)) {\n    setStringMode(stream, state)\n    return 'atom'\n  }\n}\n\nfunction code(stream, state) {\n  if (stream.match(/^(!?=|-)/)) {\n    state.javaScriptLine = true\n    return 'punctuation'\n  }\n}\n\nfunction id(stream) {\n  if (stream.match(/^#([\\w-]+)/)) {\n    return 'builtin'\n  }\n}\n\nfunction className(stream) {\n  if (stream.match(/^\\.([\\w-]+)/)) {\n    return 'className'\n  }\n}\n\nfunction attrs(stream, state) {\n  if (stream.peek() == '(') {\n    stream.next()\n    state.isAttrs = true\n    state.attrsNest = []\n    state.inAttributeName = true\n    state.attrValue = ''\n    state.attributeIsType = false\n    return 'punctuation'\n  }\n}\n\nfunction attrsContinued(stream, state) {\n  if (state.isAttrs) {\n    if (ATTRS_NEST[stream.peek()]) {\n      state.attrsNest.push(ATTRS_NEST[stream.peek()])\n    }\n    if (state.attrsNest[state.attrsNest.length - 1] === stream.peek()) {\n      state.attrsNest.pop()\n    } else if (stream.eat(')')) {\n      state.isAttrs = false\n      return 'punctuation'\n    }\n    if (state.inAttributeName && stream.match(/^[^=,\\)!]+/)) {\n      if (stream.peek() === '=' || stream.peek() === '!') {\n        state.inAttributeName = false\n        state.jsState = javascript.startState(2)\n        if (state.lastTag === 'script' && stream.current().trim().toLowerCase() === 'type') {\n          state.attributeIsType = true\n        } else {\n          state.attributeIsType = false\n        }\n      }\n      return 'attribute'\n    }\n\n    var tok = javascript.token(stream, state.jsState)\n    if (state.attrsNest.length === 0 && (tok === 'string' || tok === 'variable' || tok === 'keyword')) {\n      try {\n        Function('', 'var x ' + state.attrValue.replace(/,\\s*$/, '').replace(/^!/, ''))\n        state.inAttributeName = true\n        state.attrValue = ''\n        stream.backUp(stream.current().length)\n        return attrsContinued(stream, state)\n      } catch (ex) {\n        //not the end of an attribute\n      }\n    }\n    state.attrValue += stream.current()\n    return tok || true\n  }\n}\n\nfunction attributesBlock(stream, state) {\n  if (stream.match(/^&attributes\\b/)) {\n    state.javaScriptArguments = true\n    state.javaScriptArgumentsDepth = 0\n    return 'keyword'\n  }\n}\n\nfunction indent(stream) {\n  if (stream.sol() && stream.eatSpace()) {\n    return 'indent'\n  }\n}\n\nfunction comment(stream, state) {\n  if (stream.match(/^ *\\/\\/(-)?([^\\n]*)/)) {\n    state.indentOf = stream.indentation()\n    state.indentToken = 'comment'\n    return 'comment'\n  }\n}\n\nfunction colon(stream) {\n  if (stream.match(/^: */)) {\n    return 'colon'\n  }\n}\n\nfunction text(stream, state) {\n  if (stream.match(/^(?:\\| ?| )([^\\n]+)/)) {\n    return 'string'\n  }\n  if (stream.match(/^(<[^\\n]*)/, false)) {\n    // html string\n    setStringMode(stream, state)\n    stream.skipToEnd()\n    return state.indentToken\n  }\n}\n\nfunction dot(stream, state) {\n  if (stream.eat('.')) {\n    setStringMode(stream, state)\n    return 'dot'\n  }\n}\n\nfunction fail(stream) {\n  stream.next()\n  return null\n}\n\n\nfunction setStringMode(stream, state) {\n  state.indentOf = stream.indentation()\n  state.indentToken = 'string'\n}\nfunction restOfLine(stream, state) {\n  if (stream.sol()) {\n    // if restOfLine was set at end of line, ignore it\n    state.restOfLine = ''\n  }\n  if (state.restOfLine) {\n    stream.skipToEnd()\n    var tok = state.restOfLine\n    state.restOfLine = ''\n    return tok\n  }\n}\n\n\nfunction startState(indentUnit) {\n  return new State(indentUnit)\n}\nfunction copyState(state) {\n  return state.copy()\n}\nfunction nextToken(stream, state) {\n  var tok = restOfLine(stream, state)\n      || interpolationContinued(stream, state)\n      || includeFilteredContinued(stream, state)\n      || eachContinued(stream, state)\n      || attrsContinued(stream, state)\n      || javaScript(stream, state)\n      || javaScriptArguments(stream, state)\n      || callArguments(stream, state)\n\n      || yieldStatement(stream)\n      || doctype(stream)\n      || interpolation(stream, state)\n      || caseStatement(stream, state)\n      || when(stream, state)\n      || defaultStatement(stream)\n      || extendsStatement(stream, state)\n      || append(stream, state)\n      || prepend(stream, state)\n      || block(stream, state)\n      || include(stream, state)\n      || includeFiltered(stream, state)\n      || mixin(stream, state)\n      || call(stream, state)\n      || conditional(stream, state)\n      || each(stream, state)\n      || whileStatement(stream, state)\n      || tag(stream, state)\n      || filter(stream, state)\n      || code(stream, state)\n      || id(stream)\n      || className(stream)\n      || attrs(stream, state)\n      || attributesBlock(stream, state)\n      || indent(stream)\n      || text(stream, state)\n      || comment(stream, state)\n      || colon(stream)\n      || dot(stream, state)\n      || fail(stream)\n\n  return tok === true ? null : tok\n}\n\nexport const pug = {\n  startState: startState,\n  copyState: copyState,\n  token: nextToken\n}\n"],"names":["ATTRS_NEST","defaultCopyState","state","newState","prop","val","State","indentUnit","javascript","res","javaScript","stream","tok","javaScriptArguments","yieldStatement","doctype","interpolation","interpolationContinued","caseStatement","when","defaultStatement","extendsStatement","append","prepend","block","include","includeFiltered","includeFilteredContinued","filter","mixin","call","callArguments","conditional","each","eachContinued","whileStatement","tag","captures","setStringMode","code","id","className","attrs","attrsContinued","attributesBlock","indent","comment","colon","text","dot","fail","restOfLine","startState","copyState","nextToken","pug"],"mappings":"6HAEA,IAAIA,EAAa,CACf,IAAK,IACL,IAAK,IACL,IAAK,GACP,EAEA,SAASC,EAAiBC,EAAO,CAC/B,GAAI,OAAOA,GAAS,SAAU,OAAOA,EACrC,IAAIC,EAAW,CAAA,EACf,QAASC,KAAQF,EAAO,CACtB,IAAIG,EAAMH,EAAME,CAAI,EACpBD,EAASC,CAAI,EAAIC,aAAe,MAAQA,EAAI,QAAUA,CACxD,CACA,OAAOF,CACT,CAEA,MAAMG,CAAM,CACV,YAAYC,EAAY,CACtB,KAAK,WAAaA,EAElB,KAAK,eAAiB,GACtB,KAAK,4BAA8B,GAEnC,KAAK,oBAAsB,GAC3B,KAAK,yBAA2B,EAEhC,KAAK,gBAAkB,GACvB,KAAK,qBAAuB,EAE5B,KAAK,QAAUC,aAAW,WAAWD,CAAU,EAE/C,KAAK,WAAa,GAElB,KAAK,kBAAoB,GACzB,KAAK,OAAS,GAEd,KAAK,QAAU,GAGf,KAAK,QAAU,GACf,KAAK,UAAY,CAAA,EACjB,KAAK,gBAAkB,GACvB,KAAK,gBAAkB,GACvB,KAAK,UAAY,GAGjB,KAAK,SAAW,IAChB,KAAK,YAAc,EACrB,CAEA,MAAO,CACL,IAAIE,EAAM,IAAIH,EAAM,KAAK,UAAU,EACnC,OAAAG,EAAI,eAAiB,KAAK,eAC1BA,EAAI,4BAA8B,KAAK,4BACvCA,EAAI,oBAAsB,KAAK,oBAC/BA,EAAI,yBAA2B,KAAK,yBACpCA,EAAI,gBAAkB,KAAK,gBAC3BA,EAAI,qBAAuB,KAAK,qBAEhCA,EAAI,SAAWD,EAAAA,WAAW,WAAaP,GAAkB,KAAK,OAAO,EAErEQ,EAAI,WAAa,KAAK,WAEtBA,EAAI,kBAAoB,KAAK,kBAC7BA,EAAI,OAAS,KAAK,OAClBA,EAAI,QAAU,KAAK,QACnBA,EAAI,QAAU,KAAK,QACnBA,EAAI,UAAY,KAAK,UAAU,MAAK,EACpCA,EAAI,gBAAkB,KAAK,gBAC3BA,EAAI,gBAAkB,KAAK,gBAC3BA,EAAI,UAAY,KAAK,UACrBA,EAAI,SAAW,KAAK,SACpBA,EAAI,YAAc,KAAK,YAEhBA,CACT,CACF,CAEA,SAASC,EAAWC,EAAQT,EAAO,CAMjC,GALIS,EAAO,QAETT,EAAM,eAAiB,GACvBA,EAAM,4BAA8B,IAElCA,EAAM,eAAgB,CACxB,GAAIA,EAAM,6BAA+BS,EAAO,KAAI,IAAO,IAAK,CAC9DT,EAAM,eAAiB,GACvBA,EAAM,4BAA8B,GACpC,MACF,CACA,IAAIU,EAAMJ,EAAAA,WAAW,MAAMG,EAAQT,EAAM,OAAO,EAChD,OAAIS,EAAO,QAAOT,EAAM,eAAiB,IAClCU,GAAO,EAChB,CACF,CACA,SAASC,EAAoBF,EAAQT,EAAO,CAC1C,GAAIA,EAAM,oBAAqB,CAC7B,GAAIA,EAAM,2BAA6B,GAAKS,EAAO,KAAI,IAAO,IAAK,CACjET,EAAM,oBAAsB,GAC5B,MACF,CAMA,GALIS,EAAO,KAAI,IAAO,IACpBT,EAAM,2BACGS,EAAO,KAAI,IAAO,KAC3BT,EAAM,2BAEJA,EAAM,2BAA6B,EAAG,CACxCA,EAAM,oBAAsB,GAC5B,MACF,CAEA,IAAIU,EAAMJ,EAAAA,WAAW,MAAMG,EAAQT,EAAM,OAAO,EAChD,OAAOU,GAAO,EAChB,CACF,CAEA,SAASE,EAAeH,EAAQ,CAC9B,GAAIA,EAAO,MAAM,UAAU,EACzB,MAAO,SAEX,CAEA,SAASI,EAAQJ,EAAQ,CACvB,GAAIA,EAAO,MAAM,yBAAyB,EAAG,MAAO,MACtD,CAEA,SAASK,EAAcL,EAAQT,EAAO,CACpC,GAAIS,EAAO,MAAM,IAAI,EACnB,OAAAT,EAAM,gBAAkB,GACxBA,EAAM,qBAAuB,EACtB,aAEX,CAEA,SAASe,EAAuBN,EAAQT,EAAO,CAC7C,GAAIA,EAAM,gBAAiB,CACzB,GAAIS,EAAO,KAAI,IAAO,KAEpB,GADAT,EAAM,uBACFA,EAAM,qBAAuB,EAC/B,OAAAS,EAAO,KAAI,EACXT,EAAM,gBAAkB,GACjB,mBAEAS,EAAO,KAAI,IAAO,KAC3BT,EAAM,uBAER,OAAOM,EAAAA,WAAW,MAAMG,EAAQT,EAAM,OAAO,GAAK,EACpD,CACF,CAEA,SAASgB,EAAcP,EAAQT,EAAO,CACpC,GAAIS,EAAO,MAAM,SAAS,EACxB,OAAAT,EAAM,eAAiB,GAChB,SAEX,CAEA,SAASiB,EAAKR,EAAQT,EAAO,CAC3B,GAAIS,EAAO,MAAM,SAAS,EACxB,OAAAT,EAAM,eAAiB,GACvBA,EAAM,4BAA8B,GAC7B,SAEX,CAEA,SAASkB,EAAiBT,EAAQ,CAChC,GAAIA,EAAO,MAAM,YAAY,EAC3B,MAAO,SAEX,CAEA,SAASU,EAAiBV,EAAQT,EAAO,CACvC,GAAIS,EAAO,MAAM,aAAa,EAC5B,OAAAT,EAAM,WAAa,SACZ,SAEX,CAEA,SAASoB,EAAOX,EAAQT,EAAO,CAC7B,GAAIS,EAAO,MAAM,WAAW,EAC1B,OAAAT,EAAM,WAAa,WACZ,SAEX,CACA,SAASqB,EAAQZ,EAAQT,EAAO,CAC9B,GAAIS,EAAO,MAAM,YAAY,EAC3B,OAAAT,EAAM,WAAa,WACZ,SAEX,CACA,SAASsB,EAAMb,EAAQT,EAAO,CAC5B,GAAIS,EAAO,MAAM,mCAAmC,EAClD,OAAAT,EAAM,WAAa,WACZ,SAEX,CAEA,SAASuB,EAAQd,EAAQT,EAAO,CAC9B,GAAIS,EAAO,MAAM,YAAY,EAC3B,OAAAT,EAAM,WAAa,SACZ,SAEX,CAEA,SAASwB,EAAgBf,EAAQT,EAAO,CACtC,GAAIS,EAAO,MAAM,4BAA6B,EAAK,GAAKA,EAAO,MAAM,SAAS,EAC5E,OAAAT,EAAM,kBAAoB,GACnB,SAEX,CAEA,SAASyB,EAAyBhB,EAAQT,EAAO,CAC/C,GAAIA,EAAM,kBAAmB,CAC3B,IAAIU,EAAMgB,EAAOjB,EAAQT,CAAK,EAC9B,OAAAA,EAAM,kBAAoB,GAC1BA,EAAM,WAAa,SACZU,CACT,CACF,CAEA,SAASiB,EAAMlB,EAAQT,EAAO,CAC5B,GAAIS,EAAO,MAAM,UAAU,EACzB,OAAAT,EAAM,eAAiB,GAChB,SAEX,CAEA,SAAS4B,EAAKnB,EAAQT,EAAO,CAC3B,GAAIS,EAAO,MAAM,aAAa,EAC5B,OAAKA,EAAO,MAAM,iBAAkB,EAAK,IACvCT,EAAM,oBAAsB,GAC5BA,EAAM,yBAA2B,GAE5B,WAET,GAAIS,EAAO,MAAM,MAAO,EAAK,EAC3B,OAAAA,EAAO,KAAI,EACXT,EAAM,eAAiB,GAChBc,EAAcL,EAAQT,CAAK,CAEtC,CACA,SAAS6B,EAAcpB,EAAQT,EAAO,CACpC,GAAIA,EAAM,eACR,OAAAA,EAAM,eAAiB,GAClBS,EAAO,MAAM,iBAAkB,EAAK,IACvCT,EAAM,oBAAsB,GAC5BA,EAAM,yBAA2B,GAE5B,EAEX,CAEA,SAAS8B,EAAYrB,EAAQT,EAAO,CAClC,GAAIS,EAAO,MAAM,6BAA6B,EAC5C,OAAAT,EAAM,eAAiB,GAChB,SAEX,CAEA,SAAS+B,EAAKtB,EAAQT,EAAO,CAC3B,GAAIS,EAAO,MAAM,qBAAqB,EACpC,OAAAT,EAAM,OAAS,GACR,SAEX,CACA,SAASgC,EAAcvB,EAAQT,EAAO,CACpC,GAAIA,EAAM,OAAQ,CAChB,GAAIS,EAAO,MAAM,QAAQ,EACvB,OAAAT,EAAM,eAAiB,GACvBA,EAAM,OAAS,GACR,UACF,GAAIS,EAAO,IAAG,GAAMA,EAAO,IAAG,EACnCT,EAAM,OAAS,WACNS,EAAO,OAAQ,CACxB,KAAO,CAACA,EAAO,MAAM,SAAU,EAAK,GAAKA,EAAO,KAAI,GAAI,CACxD,MAAO,UACT,CACF,CACF,CAEA,SAASwB,EAAexB,EAAQT,EAAO,CACrC,GAAIS,EAAO,MAAM,UAAU,EACzB,OAAAT,EAAM,eAAiB,GAChB,SAEX,CAEA,SAASkC,EAAIzB,EAAQT,EAAO,CAC1B,IAAImC,EACJ,GAAIA,EAAW1B,EAAO,MAAM,wBAAwB,EAClD,OAAAT,EAAM,QAAUmC,EAAS,CAAC,EAAE,YAAW,EAChC,KAEX,CAEA,SAAST,EAAOjB,EAAQT,EAAO,CAC7B,GAAIS,EAAO,MAAM,aAAa,EAC5B,OAAA2B,EAAc3B,EAAQT,CAAK,EACpB,MAEX,CAEA,SAASqC,EAAK5B,EAAQT,EAAO,CAC3B,GAAIS,EAAO,MAAM,UAAU,EACzB,OAAAT,EAAM,eAAiB,GAChB,aAEX,CAEA,SAASsC,EAAG7B,EAAQ,CAClB,GAAIA,EAAO,MAAM,YAAY,EAC3B,MAAO,SAEX,CAEA,SAAS8B,EAAU9B,EAAQ,CACzB,GAAIA,EAAO,MAAM,aAAa,EAC5B,MAAO,WAEX,CAEA,SAAS+B,EAAM/B,EAAQT,EAAO,CAC5B,GAAIS,EAAO,KAAI,GAAM,IACnB,OAAAA,EAAO,KAAI,EACXT,EAAM,QAAU,GAChBA,EAAM,UAAY,CAAA,EAClBA,EAAM,gBAAkB,GACxBA,EAAM,UAAY,GAClBA,EAAM,gBAAkB,GACjB,aAEX,CAEA,SAASyC,EAAehC,EAAQT,EAAO,CACrC,GAAIA,EAAM,QAAS,CAIjB,GAHIF,EAAWW,EAAO,KAAI,CAAE,GAC1BT,EAAM,UAAU,KAAKF,EAAWW,EAAO,KAAI,CAAE,CAAC,EAE5CT,EAAM,UAAUA,EAAM,UAAU,OAAS,CAAC,IAAMS,EAAO,OACzDT,EAAM,UAAU,IAAG,UACVS,EAAO,IAAI,GAAG,EACvB,OAAAT,EAAM,QAAU,GACT,cAET,GAAIA,EAAM,iBAAmBS,EAAO,MAAM,YAAY,EACpD,OAAIA,EAAO,SAAW,KAAOA,EAAO,KAAI,IAAO,OAC7CT,EAAM,gBAAkB,GACxBA,EAAM,QAAUM,aAAW,WAAW,CAAC,EACnCN,EAAM,UAAY,UAAYS,EAAO,QAAO,EAAG,KAAI,EAAG,YAAW,IAAO,OAC1ET,EAAM,gBAAkB,GAExBA,EAAM,gBAAkB,IAGrB,YAGT,IAAIU,EAAMJ,EAAAA,WAAW,MAAMG,EAAQT,EAAM,OAAO,EAChD,GAAIA,EAAM,UAAU,SAAW,IAAMU,IAAQ,UAAYA,IAAQ,YAAcA,IAAQ,WACrF,GAAI,CACF,gBAAS,GAAI,SAAWV,EAAM,UAAU,QAAQ,QAAS,EAAE,EAAE,QAAQ,KAAM,EAAE,CAAC,EAC9EA,EAAM,gBAAkB,GACxBA,EAAM,UAAY,GAClBS,EAAO,OAAOA,EAAO,QAAO,EAAG,MAAM,EAC9BgC,EAAehC,EAAQT,CAAK,CACrC,MAAa,CAEb,CAEF,OAAAA,EAAM,WAAaS,EAAO,QAAO,EAC1BC,GAAO,EAChB,CACF,CAEA,SAASgC,EAAgBjC,EAAQT,EAAO,CACtC,GAAIS,EAAO,MAAM,gBAAgB,EAC/B,OAAAT,EAAM,oBAAsB,GAC5BA,EAAM,yBAA2B,EAC1B,SAEX,CAEA,SAAS2C,EAAOlC,EAAQ,CACtB,GAAIA,EAAO,IAAG,GAAMA,EAAO,SAAQ,EACjC,MAAO,QAEX,CAEA,SAASmC,EAAQnC,EAAQT,EAAO,CAC9B,GAAIS,EAAO,MAAM,qBAAqB,EACpC,OAAAT,EAAM,SAAWS,EAAO,YAAW,EACnCT,EAAM,YAAc,UACb,SAEX,CAEA,SAAS6C,EAAMpC,EAAQ,CACrB,GAAIA,EAAO,MAAM,MAAM,EACrB,MAAO,OAEX,CAEA,SAASqC,EAAKrC,EAAQT,EAAO,CAC3B,GAAIS,EAAO,MAAM,qBAAqB,EACpC,MAAO,SAET,GAAIA,EAAO,MAAM,aAAc,EAAK,EAElC,OAAA2B,EAAc3B,EAAQT,CAAK,EAC3BS,EAAO,UAAS,EACTT,EAAM,WAEjB,CAEA,SAAS+C,EAAItC,EAAQT,EAAO,CAC1B,GAAIS,EAAO,IAAI,GAAG,EAChB,OAAA2B,EAAc3B,EAAQT,CAAK,EACpB,KAEX,CAEA,SAASgD,EAAKvC,EAAQ,CACpB,OAAAA,EAAO,KAAI,EACJ,IACT,CAGA,SAAS2B,EAAc3B,EAAQT,EAAO,CACpCA,EAAM,SAAWS,EAAO,YAAW,EACnCT,EAAM,YAAc,QACtB,CACA,SAASiD,EAAWxC,EAAQT,EAAO,CAKjC,GAJIS,EAAO,QAETT,EAAM,WAAa,IAEjBA,EAAM,WAAY,CACpBS,EAAO,UAAS,EAChB,IAAIC,EAAMV,EAAM,WAChB,OAAAA,EAAM,WAAa,GACZU,CACT,CACF,CAGA,SAASwC,EAAW7C,EAAY,CAC9B,OAAO,IAAID,EAAMC,CAAU,CAC7B,CACA,SAAS8C,EAAUnD,EAAO,CACxB,OAAOA,EAAM,KAAI,CACnB,CACA,SAASoD,EAAU3C,EAAQT,EAAO,CAChC,IAAIU,EAAMuC,EAAWxC,EAAQT,CAAK,GAC3Be,EAAuBN,EAAQT,CAAK,GACpCyB,EAAyBhB,EAAQT,CAAK,GACtCgC,EAAcvB,EAAQT,CAAK,GAC3ByC,EAAehC,EAAQT,CAAK,GAC5BQ,EAAWC,EAAQT,CAAK,GACxBW,EAAoBF,EAAQT,CAAK,GACjC6B,EAAcpB,EAAQT,CAAK,GAE3BY,EAAeH,CAAM,GACrBI,EAAQJ,CAAM,GACdK,EAAcL,EAAQT,CAAK,GAC3BgB,EAAcP,EAAQT,CAAK,GAC3BiB,EAAKR,EAAQT,CAAK,GAClBkB,EAAiBT,CAAM,GACvBU,EAAiBV,EAAQT,CAAK,GAC9BoB,EAAOX,EAAQT,CAAK,GACpBqB,EAAQZ,EAAQT,CAAK,GACrBsB,EAAMb,EAAQT,CAAK,GACnBuB,EAAQd,EAAQT,CAAK,GACrBwB,EAAgBf,EAAQT,CAAK,GAC7B2B,EAAMlB,EAAQT,CAAK,GACnB4B,EAAKnB,EAAQT,CAAK,GAClB8B,EAAYrB,EAAQT,CAAK,GACzB+B,EAAKtB,EAAQT,CAAK,GAClBiC,EAAexB,EAAQT,CAAK,GAC5BkC,EAAIzB,EAAQT,CAAK,GACjB0B,EAAOjB,EAAQT,CAAK,GACpBqC,EAAK5B,EAAQT,CAAK,GAClBsC,EAAG7B,CAAM,GACT8B,EAAU9B,CAAM,GAChB+B,EAAM/B,EAAQT,CAAK,GACnB0C,EAAgBjC,EAAQT,CAAK,GAC7B2C,EAAOlC,CAAM,GACbqC,EAAKrC,EAAQT,CAAK,GAClB4C,EAAQnC,EAAQT,CAAK,GACrB6C,EAAMpC,CAAM,GACZsC,EAAItC,EAAQT,CAAK,GACjBgD,EAAKvC,CAAM,EAElB,OAAOC,IAAQ,GAAO,KAAOA,CAC/B,CAEY,MAAC2C,EAAM,CACjB,WAAYH,EACZ,UAAWC,EACX,MAAOC,CACT","x_google_ignoreList":[0]}