{"version":3,"sources":["jsdelivr-header.js","/npm/@vue/compiler-dom@3.5.41/dist/compiler-dom.global.js"],"names":[],"mappings":"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","file":"/npm/@vue/compiler-dom@3.5.41/dist/compiler-dom.global.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.48.0.\n * Original file: /npm/@vue/compiler-dom@3.5.41/dist/compiler-dom.global.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","/**\n* @vue/compiler-dom v3.5.41\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nvar VueCompilerDOM = (function (exports) {\n  'use strict';\n\n  // @__NO_SIDE_EFFECTS__\n  function makeMap(str) {\n    const map = /* @__PURE__ */ Object.create(null);\n    for (const key of str.split(\",\")) map[key] = 1;\n    return (val) => val in map;\n  }\n\n  const EMPTY_OBJ = Object.freeze({}) ;\n  const NOOP = () => {\n  };\n  const NO = () => false;\n  const isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n  (key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\n  const extend = Object.assign;\n  const isArray = Array.isArray;\n  const isString = (val) => typeof val === \"string\";\n  const isSymbol = (val) => typeof val === \"symbol\";\n  const isObject = (val) => val !== null && typeof val === \"object\";\n  const isReservedProp = /* @__PURE__ */ makeMap(\n    // the leading comma is intentional so empty string \"\" is also included\n    \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n  );\n  const isBuiltInDirective = /* @__PURE__ */ makeMap(\n    \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n  );\n  const cacheStringFunction = (fn) => {\n    const cache = /* @__PURE__ */ Object.create(null);\n    return ((str) => {\n      const hit = cache[str];\n      return hit || (cache[str] = fn(str));\n    });\n  };\n  const camelizeRE = /-\\w/g;\n  const camelize = cacheStringFunction(\n    (str) => {\n      return str.replace(camelizeRE, (c) => c.slice(1).toUpperCase());\n    }\n  );\n  const capitalize = cacheStringFunction((str) => {\n    return str.charAt(0).toUpperCase() + str.slice(1);\n  });\n  const toHandlerKey = cacheStringFunction(\n    (str) => {\n      const s = str ? `on${capitalize(str)}` : ``;\n      return s;\n    }\n  );\n\n  const PatchFlagNames = {\n    [1]: `TEXT`,\n    [2]: `CLASS`,\n    [4]: `STYLE`,\n    [8]: `PROPS`,\n    [16]: `FULL_PROPS`,\n    [32]: `NEED_HYDRATION`,\n    [64]: `STABLE_FRAGMENT`,\n    [128]: `KEYED_FRAGMENT`,\n    [256]: `UNKEYED_FRAGMENT`,\n    [512]: `NEED_PATCH`,\n    [1024]: `DYNAMIC_SLOTS`,\n    [2048]: `DEV_ROOT_FRAGMENT`,\n    [-1]: `CACHED`,\n    [-2]: `BAIL`\n  };\n\n  const slotFlagsText = {\n    [1]: \"STABLE\",\n    [2]: \"DYNAMIC\",\n    [3]: \"FORWARDED\"\n  };\n\n  const range = 2;\n  function generateCodeFrame(source, start = 0, end = source.length) {\n    start = Math.max(0, Math.min(start, source.length));\n    end = Math.max(0, Math.min(end, source.length));\n    if (start > end) return \"\";\n    let lines = source.split(/(\\r?\\n)/);\n    const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n    lines = lines.filter((_, idx) => idx % 2 === 0);\n    let count = 0;\n    const res = [];\n    for (let i = 0; i < lines.length; i++) {\n      count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n      if (count >= start) {\n        for (let j = i - range; j <= i + range || end > count; j++) {\n          if (j < 0 || j >= lines.length) continue;\n          const line = j + 1;\n          res.push(\n            `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}|  ${lines[j]}`\n          );\n          const lineLength = lines[j].length;\n          const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n          if (j === i) {\n            const pad = start - (count - (lineLength + newLineSeqLength));\n            const length = Math.max(\n              1,\n              end > count ? lineLength - pad : end - start\n            );\n            res.push(`   |  ` + \" \".repeat(pad) + \"^\".repeat(length));\n          } else if (j > i) {\n            if (end > count) {\n              const length = Math.max(Math.min(end - count, lineLength), 1);\n              res.push(`   |  ` + \"^\".repeat(length));\n            }\n            count += lineLength + newLineSeqLength;\n          }\n        }\n        break;\n      }\n    }\n    return res.join(\"\\n\");\n  }\n\n  const listDelimiterRE = /;(?![^(]*\\))/g;\n  const propertyDelimiterRE = /:([^]+)/;\n  const styleCommentRE = /\\/\\*[^]*?\\*\\//g;\n  function parseStringStyle(cssText) {\n    const ret = {};\n    cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n      if (item) {\n        const tmp = item.split(propertyDelimiterRE);\n        tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n      }\n    });\n    return ret;\n  }\n\n  const HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\n  const SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\n  const MATH_TAGS = \"annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics\";\n  const VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\n  const isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\n  const isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\n  const isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);\n  const isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\n  const FRAGMENT = /* @__PURE__ */ Symbol(`Fragment` );\n  const TELEPORT = /* @__PURE__ */ Symbol(`Teleport` );\n  const SUSPENSE = /* @__PURE__ */ Symbol(`Suspense` );\n  const KEEP_ALIVE = /* @__PURE__ */ Symbol(`KeepAlive` );\n  const BASE_TRANSITION = /* @__PURE__ */ Symbol(\n    `BaseTransition` \n  );\n  const OPEN_BLOCK = /* @__PURE__ */ Symbol(`openBlock` );\n  const CREATE_BLOCK = /* @__PURE__ */ Symbol(`createBlock` );\n  const CREATE_ELEMENT_BLOCK = /* @__PURE__ */ Symbol(\n    `createElementBlock` \n  );\n  const CREATE_VNODE = /* @__PURE__ */ Symbol(`createVNode` );\n  const CREATE_ELEMENT_VNODE = /* @__PURE__ */ Symbol(\n    `createElementVNode` \n  );\n  const CREATE_COMMENT = /* @__PURE__ */ Symbol(\n    `createCommentVNode` \n  );\n  const CREATE_TEXT = /* @__PURE__ */ Symbol(\n    `createTextVNode` \n  );\n  const CREATE_STATIC = /* @__PURE__ */ Symbol(\n    `createStaticVNode` \n  );\n  const RESOLVE_COMPONENT = /* @__PURE__ */ Symbol(\n    `resolveComponent` \n  );\n  const RESOLVE_DYNAMIC_COMPONENT = /* @__PURE__ */ Symbol(\n    `resolveDynamicComponent` \n  );\n  const RESOLVE_DIRECTIVE = /* @__PURE__ */ Symbol(\n    `resolveDirective` \n  );\n  const RESOLVE_FILTER = /* @__PURE__ */ Symbol(\n    `resolveFilter` \n  );\n  const WITH_DIRECTIVES = /* @__PURE__ */ Symbol(\n    `withDirectives` \n  );\n  const RENDER_LIST = /* @__PURE__ */ Symbol(`renderList` );\n  const RENDER_SLOT = /* @__PURE__ */ Symbol(`renderSlot` );\n  const CREATE_SLOTS = /* @__PURE__ */ Symbol(`createSlots` );\n  const TO_DISPLAY_STRING = /* @__PURE__ */ Symbol(\n    `toDisplayString` \n  );\n  const MERGE_PROPS = /* @__PURE__ */ Symbol(`mergeProps` );\n  const NORMALIZE_CLASS = /* @__PURE__ */ Symbol(\n    `normalizeClass` \n  );\n  const NORMALIZE_STYLE = /* @__PURE__ */ Symbol(\n    `normalizeStyle` \n  );\n  const NORMALIZE_PROPS = /* @__PURE__ */ Symbol(\n    `normalizeProps` \n  );\n  const GUARD_REACTIVE_PROPS = /* @__PURE__ */ Symbol(\n    `guardReactiveProps` \n  );\n  const TO_HANDLERS = /* @__PURE__ */ Symbol(`toHandlers` );\n  const CAMELIZE = /* @__PURE__ */ Symbol(`camelize` );\n  const CAPITALIZE = /* @__PURE__ */ Symbol(`capitalize` );\n  const TO_HANDLER_KEY = /* @__PURE__ */ Symbol(\n    `toHandlerKey` \n  );\n  const SET_BLOCK_TRACKING = /* @__PURE__ */ Symbol(\n    `setBlockTracking` \n  );\n  const PUSH_SCOPE_ID = /* @__PURE__ */ Symbol(`pushScopeId` );\n  const POP_SCOPE_ID = /* @__PURE__ */ Symbol(`popScopeId` );\n  const WITH_CTX = /* @__PURE__ */ Symbol(`withCtx` );\n  const UNREF = /* @__PURE__ */ Symbol(`unref` );\n  const IS_REF = /* @__PURE__ */ Symbol(`isRef` );\n  const WITH_MEMO = /* @__PURE__ */ Symbol(`withMemo` );\n  const IS_MEMO_SAME = /* @__PURE__ */ Symbol(`isMemoSame` );\n  const helperNameMap = {\n    [FRAGMENT]: `Fragment`,\n    [TELEPORT]: `Teleport`,\n    [SUSPENSE]: `Suspense`,\n    [KEEP_ALIVE]: `KeepAlive`,\n    [BASE_TRANSITION]: `BaseTransition`,\n    [OPEN_BLOCK]: `openBlock`,\n    [CREATE_BLOCK]: `createBlock`,\n    [CREATE_ELEMENT_BLOCK]: `createElementBlock`,\n    [CREATE_VNODE]: `createVNode`,\n    [CREATE_ELEMENT_VNODE]: `createElementVNode`,\n    [CREATE_COMMENT]: `createCommentVNode`,\n    [CREATE_TEXT]: `createTextVNode`,\n    [CREATE_STATIC]: `createStaticVNode`,\n    [RESOLVE_COMPONENT]: `resolveComponent`,\n    [RESOLVE_DYNAMIC_COMPONENT]: `resolveDynamicComponent`,\n    [RESOLVE_DIRECTIVE]: `resolveDirective`,\n    [RESOLVE_FILTER]: `resolveFilter`,\n    [WITH_DIRECTIVES]: `withDirectives`,\n    [RENDER_LIST]: `renderList`,\n    [RENDER_SLOT]: `renderSlot`,\n    [CREATE_SLOTS]: `createSlots`,\n    [TO_DISPLAY_STRING]: `toDisplayString`,\n    [MERGE_PROPS]: `mergeProps`,\n    [NORMALIZE_CLASS]: `normalizeClass`,\n    [NORMALIZE_STYLE]: `normalizeStyle`,\n    [NORMALIZE_PROPS]: `normalizeProps`,\n    [GUARD_REACTIVE_PROPS]: `guardReactiveProps`,\n    [TO_HANDLERS]: `toHandlers`,\n    [CAMELIZE]: `camelize`,\n    [CAPITALIZE]: `capitalize`,\n    [TO_HANDLER_KEY]: `toHandlerKey`,\n    [SET_BLOCK_TRACKING]: `setBlockTracking`,\n    [PUSH_SCOPE_ID]: `pushScopeId`,\n    [POP_SCOPE_ID]: `popScopeId`,\n    [WITH_CTX]: `withCtx`,\n    [UNREF]: `unref`,\n    [IS_REF]: `isRef`,\n    [WITH_MEMO]: `withMemo`,\n    [IS_MEMO_SAME]: `isMemoSame`\n  };\n  function registerRuntimeHelpers(helpers) {\n    Object.getOwnPropertySymbols(helpers).forEach((s) => {\n      helperNameMap[s] = helpers[s];\n    });\n  }\n\n  const Namespaces = {\n    \"HTML\": 0,\n    \"0\": \"HTML\",\n    \"SVG\": 1,\n    \"1\": \"SVG\",\n    \"MATH_ML\": 2,\n    \"2\": \"MATH_ML\"\n  };\n  const NodeTypes = {\n    \"ROOT\": 0,\n    \"0\": \"ROOT\",\n    \"ELEMENT\": 1,\n    \"1\": \"ELEMENT\",\n    \"TEXT\": 2,\n    \"2\": \"TEXT\",\n    \"COMMENT\": 3,\n    \"3\": \"COMMENT\",\n    \"SIMPLE_EXPRESSION\": 4,\n    \"4\": \"SIMPLE_EXPRESSION\",\n    \"INTERPOLATION\": 5,\n    \"5\": \"INTERPOLATION\",\n    \"ATTRIBUTE\": 6,\n    \"6\": \"ATTRIBUTE\",\n    \"DIRECTIVE\": 7,\n    \"7\": \"DIRECTIVE\",\n    \"COMPOUND_EXPRESSION\": 8,\n    \"8\": \"COMPOUND_EXPRESSION\",\n    \"IF\": 9,\n    \"9\": \"IF\",\n    \"IF_BRANCH\": 10,\n    \"10\": \"IF_BRANCH\",\n    \"FOR\": 11,\n    \"11\": \"FOR\",\n    \"TEXT_CALL\": 12,\n    \"12\": \"TEXT_CALL\",\n    \"VNODE_CALL\": 13,\n    \"13\": \"VNODE_CALL\",\n    \"JS_CALL_EXPRESSION\": 14,\n    \"14\": \"JS_CALL_EXPRESSION\",\n    \"JS_OBJECT_EXPRESSION\": 15,\n    \"15\": \"JS_OBJECT_EXPRESSION\",\n    \"JS_PROPERTY\": 16,\n    \"16\": \"JS_PROPERTY\",\n    \"JS_ARRAY_EXPRESSION\": 17,\n    \"17\": \"JS_ARRAY_EXPRESSION\",\n    \"JS_FUNCTION_EXPRESSION\": 18,\n    \"18\": \"JS_FUNCTION_EXPRESSION\",\n    \"JS_CONDITIONAL_EXPRESSION\": 19,\n    \"19\": \"JS_CONDITIONAL_EXPRESSION\",\n    \"JS_CACHE_EXPRESSION\": 20,\n    \"20\": \"JS_CACHE_EXPRESSION\",\n    \"JS_BLOCK_STATEMENT\": 21,\n    \"21\": \"JS_BLOCK_STATEMENT\",\n    \"JS_TEMPLATE_LITERAL\": 22,\n    \"22\": \"JS_TEMPLATE_LITERAL\",\n    \"JS_IF_STATEMENT\": 23,\n    \"23\": \"JS_IF_STATEMENT\",\n    \"JS_ASSIGNMENT_EXPRESSION\": 24,\n    \"24\": \"JS_ASSIGNMENT_EXPRESSION\",\n    \"JS_SEQUENCE_EXPRESSION\": 25,\n    \"25\": \"JS_SEQUENCE_EXPRESSION\",\n    \"JS_RETURN_STATEMENT\": 26,\n    \"26\": \"JS_RETURN_STATEMENT\"\n  };\n  const ElementTypes = {\n    \"ELEMENT\": 0,\n    \"0\": \"ELEMENT\",\n    \"COMPONENT\": 1,\n    \"1\": \"COMPONENT\",\n    \"SLOT\": 2,\n    \"2\": \"SLOT\",\n    \"TEMPLATE\": 3,\n    \"3\": \"TEMPLATE\"\n  };\n  const ConstantTypes = {\n    \"NOT_CONSTANT\": 0,\n    \"0\": \"NOT_CONSTANT\",\n    \"CAN_SKIP_PATCH\": 1,\n    \"1\": \"CAN_SKIP_PATCH\",\n    \"CAN_CACHE\": 2,\n    \"2\": \"CAN_CACHE\",\n    \"CAN_STRINGIFY\": 3,\n    \"3\": \"CAN_STRINGIFY\"\n  };\n  const locStub = {\n    start: { line: 1, column: 1, offset: 0 },\n    end: { line: 1, column: 1, offset: 0 },\n    source: \"\"\n  };\n  function createRoot(children, source = \"\") {\n    return {\n      type: 0,\n      source,\n      children,\n      helpers: /* @__PURE__ */ new Set(),\n      components: [],\n      directives: [],\n      hoists: [],\n      imports: [],\n      cached: [],\n      temps: 0,\n      codegenNode: void 0,\n      loc: locStub\n    };\n  }\n  function createVNodeCall(context, tag, props, children, patchFlag, dynamicProps, directives, isBlock = false, disableTracking = false, isComponent = false, loc = locStub) {\n    if (context) {\n      if (isBlock) {\n        context.helper(OPEN_BLOCK);\n        context.helper(getVNodeBlockHelper(context.inSSR, isComponent));\n      } else {\n        context.helper(getVNodeHelper(context.inSSR, isComponent));\n      }\n      if (directives) {\n        context.helper(WITH_DIRECTIVES);\n      }\n    }\n    return {\n      type: 13,\n      tag,\n      props,\n      children,\n      patchFlag,\n      dynamicProps,\n      directives,\n      isBlock,\n      disableTracking,\n      isComponent,\n      loc\n    };\n  }\n  function createArrayExpression(elements, loc = locStub) {\n    return {\n      type: 17,\n      loc,\n      elements\n    };\n  }\n  function createObjectExpression(properties, loc = locStub) {\n    return {\n      type: 15,\n      loc,\n      properties\n    };\n  }\n  function createObjectProperty(key, value) {\n    return {\n      type: 16,\n      loc: locStub,\n      key: isString(key) ? createSimpleExpression(key, true) : key,\n      value\n    };\n  }\n  function createSimpleExpression(content, isStatic = false, loc = locStub, constType = 0) {\n    return {\n      type: 4,\n      loc,\n      content,\n      isStatic,\n      constType: isStatic ? 3 : constType\n    };\n  }\n  function createInterpolation(content, loc) {\n    return {\n      type: 5,\n      loc,\n      content: isString(content) ? createSimpleExpression(content, false, loc) : content\n    };\n  }\n  function createCompoundExpression(children, loc = locStub) {\n    return {\n      type: 8,\n      loc,\n      children\n    };\n  }\n  function createCallExpression(callee, args = [], loc = locStub) {\n    return {\n      type: 14,\n      loc,\n      callee,\n      arguments: args\n    };\n  }\n  function createFunctionExpression(params, returns = void 0, newline = false, isSlot = false, loc = locStub) {\n    return {\n      type: 18,\n      params,\n      returns,\n      newline,\n      isSlot,\n      loc\n    };\n  }\n  function createConditionalExpression(test, consequent, alternate, newline = true) {\n    return {\n      type: 19,\n      test,\n      consequent,\n      alternate,\n      newline,\n      loc: locStub\n    };\n  }\n  function createCacheExpression(index, value, needPauseTracking = false, inVOnce = false) {\n    return {\n      type: 20,\n      index,\n      value,\n      needPauseTracking,\n      inVOnce,\n      needArraySpread: false,\n      loc: locStub\n    };\n  }\n  function createBlockStatement(body) {\n    return {\n      type: 21,\n      body,\n      loc: locStub\n    };\n  }\n  function createTemplateLiteral(elements) {\n    return {\n      type: 22,\n      elements,\n      loc: locStub\n    };\n  }\n  function createIfStatement(test, consequent, alternate) {\n    return {\n      type: 23,\n      test,\n      consequent,\n      alternate,\n      loc: locStub\n    };\n  }\n  function createAssignmentExpression(left, right) {\n    return {\n      type: 24,\n      left,\n      right,\n      loc: locStub\n    };\n  }\n  function createSequenceExpression(expressions) {\n    return {\n      type: 25,\n      expressions,\n      loc: locStub\n    };\n  }\n  function createReturnStatement(returns) {\n    return {\n      type: 26,\n      returns,\n      loc: locStub\n    };\n  }\n  function getVNodeHelper(ssr, isComponent) {\n    return ssr || isComponent ? CREATE_VNODE : CREATE_ELEMENT_VNODE;\n  }\n  function getVNodeBlockHelper(ssr, isComponent) {\n    return ssr || isComponent ? CREATE_BLOCK : CREATE_ELEMENT_BLOCK;\n  }\n  function convertToBlock(node, { helper, removeHelper, inSSR }) {\n    if (!node.isBlock) {\n      node.isBlock = true;\n      removeHelper(getVNodeHelper(inSSR, node.isComponent));\n      helper(OPEN_BLOCK);\n      helper(getVNodeBlockHelper(inSSR, node.isComponent));\n    }\n  }\n\n  const defaultDelimitersOpen = new Uint8Array([123, 123]);\n  const defaultDelimitersClose = new Uint8Array([125, 125]);\n  function isTagStartChar(c) {\n    return c >= 97 && c <= 122 || c >= 65 && c <= 90;\n  }\n  function isWhitespace(c) {\n    return c === 32 || c === 10 || c === 9 || c === 12 || c === 13;\n  }\n  function isEndOfTagSection(c) {\n    return c === 47 || c === 62 || isWhitespace(c);\n  }\n  function toCharCodes(str) {\n    const ret = new Uint8Array(str.length);\n    for (let i = 0; i < str.length; i++) {\n      ret[i] = str.charCodeAt(i);\n    }\n    return ret;\n  }\n  const Sequences = {\n    Cdata: new Uint8Array([67, 68, 65, 84, 65, 91]),\n    // CDATA[\n    CdataEnd: new Uint8Array([93, 93, 62]),\n    // ]]>\n    CommentEnd: new Uint8Array([45, 45, 62]),\n    // `-->`\n    ScriptEnd: new Uint8Array([60, 47, 115, 99, 114, 105, 112, 116]),\n    // `<\\/script`\n    StyleEnd: new Uint8Array([60, 47, 115, 116, 121, 108, 101]),\n    // `</style`\n    TitleEnd: new Uint8Array([60, 47, 116, 105, 116, 108, 101]),\n    // `</title`\n    TextareaEnd: new Uint8Array([\n      60,\n      47,\n      116,\n      101,\n      120,\n      116,\n      97,\n      114,\n      101,\n      97\n    ])\n    // `</textarea\n  };\n  class Tokenizer {\n    constructor(stack, cbs) {\n      this.stack = stack;\n      this.cbs = cbs;\n      /** The current state the tokenizer is in. */\n      this.state = 1;\n      /** The read buffer. */\n      this.buffer = \"\";\n      /** The beginning of the section that is currently being read. */\n      this.sectionStart = 0;\n      /** The index within the buffer that we are currently looking at. */\n      this.index = 0;\n      /** The start of the last entity. */\n      this.entityStart = 0;\n      /** Some behavior, eg. when decoding entities, is done while we are in another state. This keeps track of the other state type. */\n      this.baseState = 1;\n      /** For special parsing behavior inside of script and style tags. */\n      this.inRCDATA = false;\n      /** For disabling RCDATA tags handling */\n      this.inXML = false;\n      /** For disabling interpolation parsing in v-pre */\n      this.inVPre = false;\n      /** Record newline positions for fast line / column calculation */\n      this.newlines = [];\n      this.mode = 0;\n      this.delimiterOpen = defaultDelimitersOpen;\n      this.delimiterClose = defaultDelimitersClose;\n      this.delimiterIndex = -1;\n      this.currentSequence = void 0;\n      this.sequenceIndex = 0;\n    }\n    get inSFCRoot() {\n      return this.mode === 2 && this.stack.length === 0;\n    }\n    reset() {\n      this.state = 1;\n      this.mode = 0;\n      this.buffer = \"\";\n      this.sectionStart = 0;\n      this.index = 0;\n      this.baseState = 1;\n      this.inRCDATA = false;\n      this.currentSequence = void 0;\n      this.newlines.length = 0;\n      this.delimiterOpen = defaultDelimitersOpen;\n      this.delimiterClose = defaultDelimitersClose;\n    }\n    /**\n     * Generate Position object with line / column information using recorded\n     * newline positions. We know the index is always going to be an already\n     * processed index, so all the newlines up to this index should have been\n     * recorded.\n     */\n    getPos(index) {\n      let line = 1;\n      let column = index + 1;\n      const length = this.newlines.length;\n      let j = -1;\n      if (length > 100) {\n        let l = -1;\n        let r = length;\n        while (l + 1 < r) {\n          const m = l + r >>> 1;\n          this.newlines[m] < index ? l = m : r = m;\n        }\n        j = l;\n      } else {\n        for (let i = length - 1; i >= 0; i--) {\n          if (index > this.newlines[i]) {\n            j = i;\n            break;\n          }\n        }\n      }\n      if (j >= 0) {\n        line = j + 2;\n        column = index - this.newlines[j];\n      }\n      return {\n        column,\n        line,\n        offset: index\n      };\n    }\n    peek() {\n      return this.buffer.charCodeAt(this.index + 1);\n    }\n    stateText(c) {\n      if (c === 60) {\n        if (this.index > this.sectionStart) {\n          this.cbs.ontext(this.sectionStart, this.index);\n        }\n        this.state = 5;\n        this.sectionStart = this.index;\n      } else if (!this.inVPre && c === this.delimiterOpen[0]) {\n        this.state = 2;\n        this.delimiterIndex = 0;\n        this.stateInterpolationOpen(c);\n      }\n    }\n    stateInterpolationOpen(c) {\n      if (c === this.delimiterOpen[this.delimiterIndex]) {\n        if (this.delimiterIndex === this.delimiterOpen.length - 1) {\n          const start = this.index + 1 - this.delimiterOpen.length;\n          if (start > this.sectionStart) {\n            this.cbs.ontext(this.sectionStart, start);\n          }\n          this.state = 3;\n          this.sectionStart = start;\n        } else {\n          this.delimiterIndex++;\n        }\n      } else if (this.inRCDATA) {\n        this.state = 32;\n        this.stateInRCDATA(c);\n      } else {\n        this.state = 1;\n        this.stateText(c);\n      }\n    }\n    stateInterpolation(c) {\n      if (c === this.delimiterClose[0]) {\n        this.state = 4;\n        this.delimiterIndex = 0;\n        this.stateInterpolationClose(c);\n      }\n    }\n    stateInterpolationClose(c) {\n      if (c === this.delimiterClose[this.delimiterIndex]) {\n        if (this.delimiterIndex === this.delimiterClose.length - 1) {\n          this.cbs.oninterpolation(this.sectionStart, this.index + 1);\n          if (this.inRCDATA) {\n            this.state = 32;\n          } else {\n            this.state = 1;\n          }\n          this.sectionStart = this.index + 1;\n        } else {\n          this.delimiterIndex++;\n        }\n      } else {\n        this.state = 3;\n        this.stateInterpolation(c);\n      }\n    }\n    stateSpecialStartSequence(c) {\n      const isEnd = this.sequenceIndex === this.currentSequence.length;\n      const isMatch = isEnd ? (\n        // If we are at the end of the sequence, make sure the tag name has ended\n        isEndOfTagSection(c)\n      ) : (\n        // Otherwise, do a case-insensitive comparison\n        (c | 32) === this.currentSequence[this.sequenceIndex]\n      );\n      if (!isMatch) {\n        this.inRCDATA = false;\n      } else if (!isEnd) {\n        this.sequenceIndex++;\n        return;\n      }\n      this.sequenceIndex = 0;\n      this.state = 6;\n      this.stateInTagName(c);\n    }\n    /** Look for an end tag. For <title> and <textarea>, also decode entities. */\n    stateInRCDATA(c) {\n      if (this.sequenceIndex === this.currentSequence.length) {\n        if (c === 62 || isWhitespace(c)) {\n          const endOfText = this.index - this.currentSequence.length;\n          if (this.sectionStart < endOfText) {\n            const actualIndex = this.index;\n            this.index = endOfText;\n            this.cbs.ontext(this.sectionStart, endOfText);\n            this.index = actualIndex;\n          }\n          this.sectionStart = endOfText + 2;\n          this.stateInClosingTagName(c);\n          this.inRCDATA = false;\n          return;\n        }\n        this.sequenceIndex = 0;\n      }\n      if ((c | 32) === this.currentSequence[this.sequenceIndex]) {\n        this.sequenceIndex += 1;\n      } else if (this.sequenceIndex === 0) {\n        if (this.currentSequence === Sequences.TitleEnd || this.currentSequence === Sequences.TextareaEnd && !this.inSFCRoot) {\n          if (!this.inVPre && c === this.delimiterOpen[0]) {\n            this.state = 2;\n            this.delimiterIndex = 0;\n            this.stateInterpolationOpen(c);\n          }\n        } else if (this.fastForwardTo(60)) {\n          this.sequenceIndex = 1;\n        }\n      } else {\n        this.sequenceIndex = Number(c === 60);\n      }\n    }\n    stateCDATASequence(c) {\n      if (c === Sequences.Cdata[this.sequenceIndex]) {\n        if (++this.sequenceIndex === Sequences.Cdata.length) {\n          this.state = 28;\n          this.currentSequence = Sequences.CdataEnd;\n          this.sequenceIndex = 0;\n          this.sectionStart = this.index + 1;\n        }\n      } else {\n        this.sequenceIndex = 0;\n        this.state = 23;\n        this.stateInDeclaration(c);\n      }\n    }\n    /**\n     * When we wait for one specific character, we can speed things up\n     * by skipping through the buffer until we find it.\n     *\n     * @returns Whether the character was found.\n     */\n    fastForwardTo(c) {\n      while (++this.index < this.buffer.length) {\n        const cc = this.buffer.charCodeAt(this.index);\n        if (cc === 10) {\n          this.newlines.push(this.index);\n        }\n        if (cc === c) {\n          return true;\n        }\n      }\n      this.index = this.buffer.length - 1;\n      return false;\n    }\n    /**\n     * Comments and CDATA end with `-->` and `]]>`.\n     *\n     * Their common qualities are:\n     * - Their end sequences have a distinct character they start with.\n     * - That character is then repeated, so we have to check multiple repeats.\n     * - All characters but the start character of the sequence can be skipped.\n     */\n    stateInCommentLike(c) {\n      if (c === this.currentSequence[this.sequenceIndex]) {\n        if (++this.sequenceIndex === this.currentSequence.length) {\n          if (this.currentSequence === Sequences.CdataEnd) {\n            this.cbs.oncdata(this.sectionStart, this.index - 2);\n          } else {\n            this.cbs.oncomment(this.sectionStart, this.index - 2);\n          }\n          this.sequenceIndex = 0;\n          this.sectionStart = this.index + 1;\n          this.state = 1;\n        }\n      } else if (this.sequenceIndex === 0) {\n        if (this.fastForwardTo(this.currentSequence[0])) {\n          this.sequenceIndex = 1;\n        }\n      } else if (c !== this.currentSequence[this.sequenceIndex - 1]) {\n        this.sequenceIndex = 0;\n      }\n    }\n    startSpecial(sequence, offset) {\n      this.enterRCDATA(sequence, offset);\n      this.state = 31;\n    }\n    enterRCDATA(sequence, offset) {\n      this.inRCDATA = true;\n      this.currentSequence = sequence;\n      this.sequenceIndex = offset;\n    }\n    stateBeforeTagName(c) {\n      if (c === 33) {\n        this.state = 22;\n        this.sectionStart = this.index + 1;\n      } else if (c === 63) {\n        this.state = 24;\n        this.sectionStart = this.index + 1;\n      } else if (isTagStartChar(c)) {\n        this.sectionStart = this.index;\n        if (this.mode === 0) {\n          this.state = 6;\n        } else if (this.inSFCRoot) {\n          this.state = 34;\n        } else if (!this.inXML) {\n          if (c === 116) {\n            this.state = 30;\n          } else {\n            this.state = c === 115 ? 29 : 6;\n          }\n        } else {\n          this.state = 6;\n        }\n      } else if (c === 47) {\n        this.state = 8;\n      } else {\n        this.state = 1;\n        this.stateText(c);\n      }\n    }\n    stateInTagName(c) {\n      if (isEndOfTagSection(c)) {\n        this.handleTagName(c);\n      }\n    }\n    stateInSFCRootTagName(c) {\n      if (isEndOfTagSection(c)) {\n        const tag = this.buffer.slice(this.sectionStart, this.index);\n        if (tag !== \"template\") {\n          this.enterRCDATA(toCharCodes(`</` + tag), 0);\n        }\n        this.handleTagName(c);\n      }\n    }\n    handleTagName(c) {\n      this.cbs.onopentagname(this.sectionStart, this.index);\n      this.sectionStart = -1;\n      this.state = 11;\n      this.stateBeforeAttrName(c);\n    }\n    stateBeforeClosingTagName(c) {\n      if (isWhitespace(c)) ; else if (c === 62) {\n        {\n          this.cbs.onerr(14, this.index);\n        }\n        this.state = 1;\n        this.sectionStart = this.index + 1;\n      } else {\n        this.state = isTagStartChar(c) ? 9 : 27;\n        this.sectionStart = this.index;\n      }\n    }\n    stateInClosingTagName(c) {\n      if (c === 62 || isWhitespace(c)) {\n        this.cbs.onclosetag(this.sectionStart, this.index);\n        this.sectionStart = -1;\n        this.state = 10;\n        this.stateAfterClosingTagName(c);\n      }\n    }\n    stateAfterClosingTagName(c) {\n      if (c === 62) {\n        this.state = 1;\n        this.sectionStart = this.index + 1;\n      }\n    }\n    stateBeforeAttrName(c) {\n      if (c === 62) {\n        this.cbs.onopentagend(this.index);\n        if (this.inRCDATA) {\n          this.state = 32;\n        } else {\n          this.state = 1;\n        }\n        this.sectionStart = this.index + 1;\n      } else if (c === 47) {\n        this.state = 7;\n        if (this.peek() !== 62) {\n          this.cbs.onerr(22, this.index);\n        }\n      } else if (c === 60 && this.peek() === 47) {\n        this.cbs.onopentagend(this.index);\n        this.state = 5;\n        this.sectionStart = this.index;\n      } else if (!isWhitespace(c)) {\n        if (c === 61) {\n          this.cbs.onerr(\n            19,\n            this.index\n          );\n        }\n        this.handleAttrStart(c);\n      }\n    }\n    handleAttrStart(c) {\n      if (c === 118 && this.peek() === 45) {\n        this.state = 13;\n        this.sectionStart = this.index;\n      } else if (c === 46 || c === 58 || c === 64 || c === 35) {\n        this.cbs.ondirname(this.index, this.index + 1);\n        this.state = 14;\n        this.sectionStart = this.index + 1;\n      } else {\n        this.state = 12;\n        this.sectionStart = this.index;\n      }\n    }\n    stateInSelfClosingTag(c) {\n      if (c === 62) {\n        this.cbs.onselfclosingtag(this.index);\n        this.state = 1;\n        this.sectionStart = this.index + 1;\n        this.inRCDATA = false;\n      } else if (!isWhitespace(c)) {\n        this.state = 11;\n        this.stateBeforeAttrName(c);\n      }\n    }\n    stateInAttrName(c) {\n      if (c === 61 || isEndOfTagSection(c)) {\n        this.cbs.onattribname(this.sectionStart, this.index);\n        this.handleAttrNameEnd(c);\n      } else if (c === 34 || c === 39 || c === 60) {\n        this.cbs.onerr(\n          17,\n          this.index\n        );\n      }\n    }\n    stateInDirName(c) {\n      if (c === 61 || isEndOfTagSection(c)) {\n        this.cbs.ondirname(this.sectionStart, this.index);\n        this.handleAttrNameEnd(c);\n      } else if (c === 58) {\n        this.cbs.ondirname(this.sectionStart, this.index);\n        this.state = 14;\n        this.sectionStart = this.index + 1;\n      } else if (c === 46) {\n        this.cbs.ondirname(this.sectionStart, this.index);\n        this.state = 16;\n        this.sectionStart = this.index + 1;\n      }\n    }\n    stateInDirArg(c) {\n      if (c === 61 || isEndOfTagSection(c)) {\n        this.cbs.ondirarg(this.sectionStart, this.index);\n        this.handleAttrNameEnd(c);\n      } else if (c === 91) {\n        this.state = 15;\n      } else if (c === 46) {\n        this.cbs.ondirarg(this.sectionStart, this.index);\n        this.state = 16;\n        this.sectionStart = this.index + 1;\n      }\n    }\n    stateInDynamicDirArg(c) {\n      if (c === 93) {\n        this.state = 14;\n      } else if (c === 61 || isEndOfTagSection(c)) {\n        this.cbs.ondirarg(this.sectionStart, this.index + 1);\n        this.handleAttrNameEnd(c);\n        {\n          this.cbs.onerr(\n            27,\n            this.index\n          );\n        }\n      }\n    }\n    stateInDirModifier(c) {\n      if (c === 61 || isEndOfTagSection(c)) {\n        this.cbs.ondirmodifier(this.sectionStart, this.index);\n        this.handleAttrNameEnd(c);\n      } else if (c === 46) {\n        this.cbs.ondirmodifier(this.sectionStart, this.index);\n        this.sectionStart = this.index + 1;\n      }\n    }\n    handleAttrNameEnd(c) {\n      this.sectionStart = this.index;\n      this.state = 17;\n      this.cbs.onattribnameend(this.index);\n      this.stateAfterAttrName(c);\n    }\n    stateAfterAttrName(c) {\n      if (c === 61) {\n        this.state = 18;\n      } else if (c === 47 || c === 62) {\n        this.cbs.onattribend(0, this.sectionStart);\n        this.sectionStart = -1;\n        this.state = 11;\n        this.stateBeforeAttrName(c);\n      } else if (!isWhitespace(c)) {\n        this.cbs.onattribend(0, this.sectionStart);\n        this.handleAttrStart(c);\n      }\n    }\n    stateBeforeAttrValue(c) {\n      if (c === 34) {\n        this.state = 19;\n        this.sectionStart = this.index + 1;\n      } else if (c === 39) {\n        this.state = 20;\n        this.sectionStart = this.index + 1;\n      } else if (!isWhitespace(c)) {\n        this.sectionStart = this.index;\n        this.state = 21;\n        this.stateInAttrValueNoQuotes(c);\n      }\n    }\n    handleInAttrValue(c, quote) {\n      if (c === quote || this.fastForwardTo(quote)) {\n        this.cbs.onattribdata(this.sectionStart, this.index);\n        this.sectionStart = -1;\n        this.cbs.onattribend(\n          quote === 34 ? 3 : 2,\n          this.index + 1\n        );\n        this.state = 11;\n      }\n    }\n    stateInAttrValueDoubleQuotes(c) {\n      this.handleInAttrValue(c, 34);\n    }\n    stateInAttrValueSingleQuotes(c) {\n      this.handleInAttrValue(c, 39);\n    }\n    stateInAttrValueNoQuotes(c) {\n      if (isWhitespace(c) || c === 62) {\n        this.cbs.onattribdata(this.sectionStart, this.index);\n        this.sectionStart = -1;\n        this.cbs.onattribend(1, this.index);\n        this.state = 11;\n        this.stateBeforeAttrName(c);\n      } else if (c === 34 || c === 39 || c === 60 || c === 61 || c === 96) {\n        this.cbs.onerr(\n          18,\n          this.index\n        );\n      } else ;\n    }\n    stateBeforeDeclaration(c) {\n      if (c === 91) {\n        this.state = 26;\n        this.sequenceIndex = 0;\n      } else {\n        this.state = c === 45 ? 25 : 23;\n      }\n    }\n    stateInDeclaration(c) {\n      if (c === 62 || this.fastForwardTo(62)) {\n        this.state = 1;\n        this.sectionStart = this.index + 1;\n      }\n    }\n    stateInProcessingInstruction(c) {\n      if (c === 62 || this.fastForwardTo(62)) {\n        this.cbs.onprocessinginstruction(this.sectionStart, this.index);\n        this.state = 1;\n        this.sectionStart = this.index + 1;\n      }\n    }\n    stateBeforeComment(c) {\n      if (c === 45) {\n        this.state = 28;\n        this.currentSequence = Sequences.CommentEnd;\n        this.sequenceIndex = 2;\n        this.sectionStart = this.index + 1;\n      } else {\n        this.state = 23;\n      }\n    }\n    stateInSpecialComment(c) {\n      if (c === 62 || this.fastForwardTo(62)) {\n        this.cbs.oncomment(this.sectionStart, this.index);\n        this.state = 1;\n        this.sectionStart = this.index + 1;\n      }\n    }\n    stateBeforeSpecialS(c) {\n      if (c === Sequences.ScriptEnd[3]) {\n        this.startSpecial(Sequences.ScriptEnd, 4);\n      } else if (c === Sequences.StyleEnd[3]) {\n        this.startSpecial(Sequences.StyleEnd, 4);\n      } else {\n        this.state = 6;\n        this.stateInTagName(c);\n      }\n    }\n    stateBeforeSpecialT(c) {\n      if (c === Sequences.TitleEnd[3]) {\n        this.startSpecial(Sequences.TitleEnd, 4);\n      } else if (c === Sequences.TextareaEnd[3]) {\n        this.startSpecial(Sequences.TextareaEnd, 4);\n      } else {\n        this.state = 6;\n        this.stateInTagName(c);\n      }\n    }\n    startEntity() {\n    }\n    stateInEntity() {\n    }\n    /**\n     * Iterates through the buffer, calling the function corresponding to the current state.\n     *\n     * States that are more likely to be hit are higher up, as a performance improvement.\n     */\n    parse(input) {\n      this.buffer = input;\n      while (this.index < this.buffer.length) {\n        const c = this.buffer.charCodeAt(this.index);\n        if (c === 10 && this.state !== 33) {\n          this.newlines.push(this.index);\n        }\n        switch (this.state) {\n          case 1: {\n            this.stateText(c);\n            break;\n          }\n          case 2: {\n            this.stateInterpolationOpen(c);\n            break;\n          }\n          case 3: {\n            this.stateInterpolation(c);\n            break;\n          }\n          case 4: {\n            this.stateInterpolationClose(c);\n            break;\n          }\n          case 31: {\n            this.stateSpecialStartSequence(c);\n            break;\n          }\n          case 32: {\n            this.stateInRCDATA(c);\n            break;\n          }\n          case 26: {\n            this.stateCDATASequence(c);\n            break;\n          }\n          case 19: {\n            this.stateInAttrValueDoubleQuotes(c);\n            break;\n          }\n          case 12: {\n            this.stateInAttrName(c);\n            break;\n          }\n          case 13: {\n            this.stateInDirName(c);\n            break;\n          }\n          case 14: {\n            this.stateInDirArg(c);\n            break;\n          }\n          case 15: {\n            this.stateInDynamicDirArg(c);\n            break;\n          }\n          case 16: {\n            this.stateInDirModifier(c);\n            break;\n          }\n          case 28: {\n            this.stateInCommentLike(c);\n            break;\n          }\n          case 27: {\n            this.stateInSpecialComment(c);\n            break;\n          }\n          case 11: {\n            this.stateBeforeAttrName(c);\n            break;\n          }\n          case 6: {\n            this.stateInTagName(c);\n            break;\n          }\n          case 34: {\n            this.stateInSFCRootTagName(c);\n            break;\n          }\n          case 9: {\n            this.stateInClosingTagName(c);\n            break;\n          }\n          case 5: {\n            this.stateBeforeTagName(c);\n            break;\n          }\n          case 17: {\n            this.stateAfterAttrName(c);\n            break;\n          }\n          case 20: {\n            this.stateInAttrValueSingleQuotes(c);\n            break;\n          }\n          case 18: {\n            this.stateBeforeAttrValue(c);\n            break;\n          }\n          case 8: {\n            this.stateBeforeClosingTagName(c);\n            break;\n          }\n          case 10: {\n            this.stateAfterClosingTagName(c);\n            break;\n          }\n          case 29: {\n            this.stateBeforeSpecialS(c);\n            break;\n          }\n          case 30: {\n            this.stateBeforeSpecialT(c);\n            break;\n          }\n          case 21: {\n            this.stateInAttrValueNoQuotes(c);\n            break;\n          }\n          case 7: {\n            this.stateInSelfClosingTag(c);\n            break;\n          }\n          case 23: {\n            this.stateInDeclaration(c);\n            break;\n          }\n          case 22: {\n            this.stateBeforeDeclaration(c);\n            break;\n          }\n          case 25: {\n            this.stateBeforeComment(c);\n            break;\n          }\n          case 24: {\n            this.stateInProcessingInstruction(c);\n            break;\n          }\n          case 33: {\n            this.stateInEntity();\n            break;\n          }\n        }\n        this.index++;\n      }\n      this.cleanup();\n      this.finish();\n    }\n    /**\n     * Remove data that has already been consumed from the buffer.\n     */\n    cleanup() {\n      if (this.sectionStart !== this.index) {\n        if (this.state === 1 || this.state === 32 && this.sequenceIndex === 0) {\n          this.cbs.ontext(this.sectionStart, this.index);\n          this.sectionStart = this.index;\n        } else if (this.state === 19 || this.state === 20 || this.state === 21) {\n          this.cbs.onattribdata(this.sectionStart, this.index);\n          this.sectionStart = this.index;\n        }\n      }\n    }\n    finish() {\n      this.handleTrailingData();\n      this.cbs.onend();\n    }\n    /** Handle any trailing data. */\n    handleTrailingData() {\n      const endIndex = this.buffer.length;\n      if (this.sectionStart >= endIndex) {\n        return;\n      }\n      if (this.state === 28) {\n        if (this.currentSequence === Sequences.CdataEnd) {\n          this.cbs.oncdata(this.sectionStart, endIndex);\n        } else {\n          this.cbs.oncomment(this.sectionStart, endIndex);\n        }\n      } else if (this.state === 6 || this.state === 11 || this.state === 18 || this.state === 17 || this.state === 12 || this.state === 13 || this.state === 14 || this.state === 15 || this.state === 16 || this.state === 20 || this.state === 19 || this.state === 21 || this.state === 9) ; else {\n        this.cbs.ontext(this.sectionStart, endIndex);\n      }\n    }\n    emitCodePoint(cp, consumed) {\n    }\n  }\n\n  const CompilerDeprecationTypes = {\n    \"COMPILER_IS_ON_ELEMENT\": \"COMPILER_IS_ON_ELEMENT\",\n    \"COMPILER_V_BIND_SYNC\": \"COMPILER_V_BIND_SYNC\",\n    \"COMPILER_V_BIND_OBJECT_ORDER\": \"COMPILER_V_BIND_OBJECT_ORDER\",\n    \"COMPILER_V_ON_NATIVE\": \"COMPILER_V_ON_NATIVE\",\n    \"COMPILER_V_IF_V_FOR_PRECEDENCE\": \"COMPILER_V_IF_V_FOR_PRECEDENCE\",\n    \"COMPILER_NATIVE_TEMPLATE\": \"COMPILER_NATIVE_TEMPLATE\",\n    \"COMPILER_INLINE_TEMPLATE\": \"COMPILER_INLINE_TEMPLATE\",\n    \"COMPILER_FILTERS\": \"COMPILER_FILTERS\"\n  };\n  const deprecationData = {\n    [\"COMPILER_IS_ON_ELEMENT\"]: {\n      message: `Platform-native elements with \"is\" prop will no longer be treated as components in Vue 3 unless the \"is\" value is explicitly prefixed with \"vue:\".`,\n      link: `https://v3-migration.vuejs.org/breaking-changes/custom-elements-interop.html`\n    },\n    [\"COMPILER_V_BIND_SYNC\"]: {\n      message: (key) => `.sync modifier for v-bind has been removed. Use v-model with argument instead. \\`v-bind:${key}.sync\\` should be changed to \\`v-model:${key}\\`.`,\n      link: `https://v3-migration.vuejs.org/breaking-changes/v-model.html`\n    },\n    [\"COMPILER_V_BIND_OBJECT_ORDER\"]: {\n      message: `v-bind=\"obj\" usage is now order sensitive and behaves like JavaScript object spread: it will now overwrite an existing non-mergeable attribute that appears before v-bind in the case of conflict. To retain 2.x behavior, move v-bind to make it the first attribute. You can also suppress this warning if the usage is intended.`,\n      link: `https://v3-migration.vuejs.org/breaking-changes/v-bind.html`\n    },\n    [\"COMPILER_V_ON_NATIVE\"]: {\n      message: `.native modifier for v-on has been removed as is no longer necessary.`,\n      link: `https://v3-migration.vuejs.org/breaking-changes/v-on-native-modifier-removed.html`\n    },\n    [\"COMPILER_V_IF_V_FOR_PRECEDENCE\"]: {\n      message: `v-if / v-for precedence when used on the same element has changed in Vue 3: v-if now takes higher precedence and will no longer have access to v-for scope variables. It is best to avoid the ambiguity with <template> tags or use a computed property that filters v-for data source.`,\n      link: `https://v3-migration.vuejs.org/breaking-changes/v-if-v-for.html`\n    },\n    [\"COMPILER_NATIVE_TEMPLATE\"]: {\n      message: `<template> with no special directives will render as a native template element instead of its inner content in Vue 3.`\n    },\n    [\"COMPILER_INLINE_TEMPLATE\"]: {\n      message: `\"inline-template\" has been removed in Vue 3.`,\n      link: `https://v3-migration.vuejs.org/breaking-changes/inline-template-attribute.html`\n    },\n    [\"COMPILER_FILTERS\"]: {\n      message: `filters have been removed in Vue 3. The \"|\" symbol will be treated as native JavaScript bitwise OR operator. Use method calls or computed properties instead.`,\n      link: `https://v3-migration.vuejs.org/breaking-changes/filters.html`\n    }\n  };\n  function getCompatValue(key, { compatConfig }) {\n    const value = compatConfig && compatConfig[key];\n    if (key === \"MODE\") {\n      return value || 3;\n    } else {\n      return value;\n    }\n  }\n  function isCompatEnabled(key, context) {\n    const mode = getCompatValue(\"MODE\", context);\n    const value = getCompatValue(key, context);\n    return mode === 3 ? value === true : value !== false;\n  }\n  function checkCompatEnabled(key, context, loc, ...args) {\n    const enabled = isCompatEnabled(key, context);\n    if (enabled) {\n      warnDeprecation(key, context, loc, ...args);\n    }\n    return enabled;\n  }\n  function warnDeprecation(key, context, loc, ...args) {\n    const val = getCompatValue(key, context);\n    if (val === \"suppress-warning\") {\n      return;\n    }\n    const { message, link } = deprecationData[key];\n    const msg = `(deprecation ${key}) ${typeof message === \"function\" ? message(...args) : message}${link ? `\n  Details: ${link}` : ``}`;\n    const err = new SyntaxError(msg);\n    err.code = key;\n    if (loc) err.loc = loc;\n    context.onWarn(err);\n  }\n\n  function defaultOnError(error) {\n    throw error;\n  }\n  function defaultOnWarn(msg) {\n    console.warn(`[Vue warn] ${msg.message}`);\n  }\n  function createCompilerError(code, loc, messages, additionalMessage) {\n    const msg = (messages || errorMessages)[code] + (additionalMessage || ``) ;\n    const error = new SyntaxError(String(msg));\n    error.code = code;\n    error.loc = loc;\n    return error;\n  }\n  const ErrorCodes = {\n    \"ABRUPT_CLOSING_OF_EMPTY_COMMENT\": 0,\n    \"0\": \"ABRUPT_CLOSING_OF_EMPTY_COMMENT\",\n    \"CDATA_IN_HTML_CONTENT\": 1,\n    \"1\": \"CDATA_IN_HTML_CONTENT\",\n    \"DUPLICATE_ATTRIBUTE\": 2,\n    \"2\": \"DUPLICATE_ATTRIBUTE\",\n    \"END_TAG_WITH_ATTRIBUTES\": 3,\n    \"3\": \"END_TAG_WITH_ATTRIBUTES\",\n    \"END_TAG_WITH_TRAILING_SOLIDUS\": 4,\n    \"4\": \"END_TAG_WITH_TRAILING_SOLIDUS\",\n    \"EOF_BEFORE_TAG_NAME\": 5,\n    \"5\": \"EOF_BEFORE_TAG_NAME\",\n    \"EOF_IN_CDATA\": 6,\n    \"6\": \"EOF_IN_CDATA\",\n    \"EOF_IN_COMMENT\": 7,\n    \"7\": \"EOF_IN_COMMENT\",\n    \"EOF_IN_SCRIPT_HTML_COMMENT_LIKE_TEXT\": 8,\n    \"8\": \"EOF_IN_SCRIPT_HTML_COMMENT_LIKE_TEXT\",\n    \"EOF_IN_TAG\": 9,\n    \"9\": \"EOF_IN_TAG\",\n    \"INCORRECTLY_CLOSED_COMMENT\": 10,\n    \"10\": \"INCORRECTLY_CLOSED_COMMENT\",\n    \"INCORRECTLY_OPENED_COMMENT\": 11,\n    \"11\": \"INCORRECTLY_OPENED_COMMENT\",\n    \"INVALID_FIRST_CHARACTER_OF_TAG_NAME\": 12,\n    \"12\": \"INVALID_FIRST_CHARACTER_OF_TAG_NAME\",\n    \"MISSING_ATTRIBUTE_VALUE\": 13,\n    \"13\": \"MISSING_ATTRIBUTE_VALUE\",\n    \"MISSING_END_TAG_NAME\": 14,\n    \"14\": \"MISSING_END_TAG_NAME\",\n    \"MISSING_WHITESPACE_BETWEEN_ATTRIBUTES\": 15,\n    \"15\": \"MISSING_WHITESPACE_BETWEEN_ATTRIBUTES\",\n    \"NESTED_COMMENT\": 16,\n    \"16\": \"NESTED_COMMENT\",\n    \"UNEXPECTED_CHARACTER_IN_ATTRIBUTE_NAME\": 17,\n    \"17\": \"UNEXPECTED_CHARACTER_IN_ATTRIBUTE_NAME\",\n    \"UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE\": 18,\n    \"18\": \"UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE\",\n    \"UNEXPECTED_EQUALS_SIGN_BEFORE_ATTRIBUTE_NAME\": 19,\n    \"19\": \"UNEXPECTED_EQUALS_SIGN_BEFORE_ATTRIBUTE_NAME\",\n    \"UNEXPECTED_NULL_CHARACTER\": 20,\n    \"20\": \"UNEXPECTED_NULL_CHARACTER\",\n    \"UNEXPECTED_QUESTION_MARK_INSTEAD_OF_TAG_NAME\": 21,\n    \"21\": \"UNEXPECTED_QUESTION_MARK_INSTEAD_OF_TAG_NAME\",\n    \"UNEXPECTED_SOLIDUS_IN_TAG\": 22,\n    \"22\": \"UNEXPECTED_SOLIDUS_IN_TAG\",\n    \"X_INVALID_END_TAG\": 23,\n    \"23\": \"X_INVALID_END_TAG\",\n    \"X_MISSING_END_TAG\": 24,\n    \"24\": \"X_MISSING_END_TAG\",\n    \"X_MISSING_INTERPOLATION_END\": 25,\n    \"25\": \"X_MISSING_INTERPOLATION_END\",\n    \"X_MISSING_DIRECTIVE_NAME\": 26,\n    \"26\": \"X_MISSING_DIRECTIVE_NAME\",\n    \"X_MISSING_DYNAMIC_DIRECTIVE_ARGUMENT_END\": 27,\n    \"27\": \"X_MISSING_DYNAMIC_DIRECTIVE_ARGUMENT_END\",\n    \"X_V_IF_NO_EXPRESSION\": 28,\n    \"28\": \"X_V_IF_NO_EXPRESSION\",\n    \"X_V_IF_SAME_KEY\": 29,\n    \"29\": \"X_V_IF_SAME_KEY\",\n    \"X_V_ELSE_NO_ADJACENT_IF\": 30,\n    \"30\": \"X_V_ELSE_NO_ADJACENT_IF\",\n    \"X_V_FOR_NO_EXPRESSION\": 31,\n    \"31\": \"X_V_FOR_NO_EXPRESSION\",\n    \"X_V_FOR_MALFORMED_EXPRESSION\": 32,\n    \"32\": \"X_V_FOR_MALFORMED_EXPRESSION\",\n    \"X_V_FOR_TEMPLATE_KEY_PLACEMENT\": 33,\n    \"33\": \"X_V_FOR_TEMPLATE_KEY_PLACEMENT\",\n    \"X_V_BIND_NO_EXPRESSION\": 34,\n    \"34\": \"X_V_BIND_NO_EXPRESSION\",\n    \"X_V_ON_NO_EXPRESSION\": 35,\n    \"35\": \"X_V_ON_NO_EXPRESSION\",\n    \"X_V_SLOT_UNEXPECTED_DIRECTIVE_ON_SLOT_OUTLET\": 36,\n    \"36\": \"X_V_SLOT_UNEXPECTED_DIRECTIVE_ON_SLOT_OUTLET\",\n    \"X_V_SLOT_MIXED_SLOT_USAGE\": 37,\n    \"37\": \"X_V_SLOT_MIXED_SLOT_USAGE\",\n    \"X_V_SLOT_DUPLICATE_SLOT_NAMES\": 38,\n    \"38\": \"X_V_SLOT_DUPLICATE_SLOT_NAMES\",\n    \"X_V_SLOT_EXTRANEOUS_DEFAULT_SLOT_CHILDREN\": 39,\n    \"39\": \"X_V_SLOT_EXTRANEOUS_DEFAULT_SLOT_CHILDREN\",\n    \"X_V_SLOT_MISPLACED\": 40,\n    \"40\": \"X_V_SLOT_MISPLACED\",\n    \"X_V_MODEL_NO_EXPRESSION\": 41,\n    \"41\": \"X_V_MODEL_NO_EXPRESSION\",\n    \"X_V_MODEL_MALFORMED_EXPRESSION\": 42,\n    \"42\": \"X_V_MODEL_MALFORMED_EXPRESSION\",\n    \"X_V_MODEL_ON_SCOPE_VARIABLE\": 43,\n    \"43\": \"X_V_MODEL_ON_SCOPE_VARIABLE\",\n    \"X_V_MODEL_ON_PROPS\": 44,\n    \"44\": \"X_V_MODEL_ON_PROPS\",\n    \"X_V_MODEL_ON_CONST\": 45,\n    \"45\": \"X_V_MODEL_ON_CONST\",\n    \"X_INVALID_EXPRESSION\": 46,\n    \"46\": \"X_INVALID_EXPRESSION\",\n    \"X_KEEP_ALIVE_INVALID_CHILDREN\": 47,\n    \"47\": \"X_KEEP_ALIVE_INVALID_CHILDREN\",\n    \"X_PREFIX_ID_NOT_SUPPORTED\": 48,\n    \"48\": \"X_PREFIX_ID_NOT_SUPPORTED\",\n    \"X_MODULE_MODE_NOT_SUPPORTED\": 49,\n    \"49\": \"X_MODULE_MODE_NOT_SUPPORTED\",\n    \"X_CACHE_HANDLER_NOT_SUPPORTED\": 50,\n    \"50\": \"X_CACHE_HANDLER_NOT_SUPPORTED\",\n    \"X_SCOPE_ID_NOT_SUPPORTED\": 51,\n    \"51\": \"X_SCOPE_ID_NOT_SUPPORTED\",\n    \"X_VNODE_HOOKS\": 52,\n    \"52\": \"X_VNODE_HOOKS\",\n    \"X_V_BIND_INVALID_SAME_NAME_ARGUMENT\": 53,\n    \"53\": \"X_V_BIND_INVALID_SAME_NAME_ARGUMENT\",\n    \"__EXTEND_POINT__\": 54,\n    \"54\": \"__EXTEND_POINT__\"\n  };\n  const errorMessages = {\n    // parse errors\n    [0]: \"Illegal comment.\",\n    [1]: \"CDATA section is allowed only in XML context.\",\n    [2]: \"Duplicate attribute.\",\n    [3]: \"End tag cannot have attributes.\",\n    [4]: \"Illegal '/' in tags.\",\n    [5]: \"Unexpected EOF in tag.\",\n    [6]: \"Unexpected EOF in CDATA section.\",\n    [7]: \"Unexpected EOF in comment.\",\n    [8]: \"Unexpected EOF in script.\",\n    [9]: \"Unexpected EOF in tag.\",\n    [10]: \"Incorrectly closed comment.\",\n    [11]: \"Incorrectly opened comment.\",\n    [12]: \"Illegal tag name. Use '&lt;' to print '<'.\",\n    [13]: \"Attribute value was expected.\",\n    [14]: \"End tag name was expected.\",\n    [15]: \"Whitespace was expected.\",\n    [16]: \"Unexpected '<!--' in comment.\",\n    [17]: `Attribute name cannot contain U+0022 (\"), U+0027 ('), and U+003C (<).`,\n    [18]: \"Unquoted attribute value cannot contain U+0022 (\\\"), U+0027 ('), U+003C (<), U+003D (=), and U+0060 (`).\",\n    [19]: \"Attribute name cannot start with '='.\",\n    [21]: \"'<?' is allowed only in XML context.\",\n    [20]: `Unexpected null character.`,\n    [22]: \"Illegal '/' in tags.\",\n    // Vue-specific parse errors\n    [23]: \"Invalid end tag.\",\n    [24]: \"Element is missing end tag.\",\n    [25]: \"Interpolation end sign was not found.\",\n    [27]: \"End bracket for dynamic directive argument was not found. Note that dynamic directive argument cannot contain spaces.\",\n    [26]: \"Legal directive name was expected.\",\n    // transform errors\n    [28]: `v-if/v-else-if is missing expression.`,\n    [29]: `v-if/else branches must use unique keys.`,\n    [30]: `v-else/v-else-if has no adjacent v-if or v-else-if.`,\n    [31]: `v-for is missing expression.`,\n    [32]: `v-for has invalid expression.`,\n    [33]: `<template v-for> key should be placed on the <template> tag.`,\n    [34]: `v-bind is missing expression.`,\n    [53]: `v-bind with same-name shorthand only allows static argument.`,\n    [35]: `v-on is missing expression.`,\n    [36]: `Unexpected custom directive on <slot> outlet.`,\n    [37]: `Mixed v-slot usage on both the component and nested <template>. When there are multiple named slots, all slots should use <template> syntax to avoid scope ambiguity.`,\n    [38]: `Duplicate slot names found. `,\n    [39]: `Extraneous children found when component already has explicitly named default slot. These children will be ignored.`,\n    [40]: `v-slot can only be used on components or <template> tags.`,\n    [41]: `v-model is missing expression.`,\n    [42]: `v-model value must be a valid JavaScript member expression.`,\n    [43]: `v-model cannot be used on v-for or v-slot scope variables because they are not writable.`,\n    [44]: `v-model cannot be used on a prop, because local prop bindings are not writable.\nUse a v-bind binding combined with a v-on listener that emits update:x event instead.`,\n    [45]: `v-model cannot be used on a const binding because it is not writable.`,\n    [46]: `Error parsing JavaScript expression: `,\n    [47]: `<KeepAlive> expects exactly one child component.`,\n    [52]: `@vnode-* hooks in templates are no longer supported. Use the vue: prefix instead. For example, @vnode-mounted should be changed to @vue:mounted. @vnode-* hooks support has been removed in 3.4.`,\n    // generic errors\n    [48]: `\"prefixIdentifiers\" option is not supported in this build of compiler.`,\n    [49]: `ES module mode is not supported in this build of compiler.`,\n    [50]: `\"cacheHandlers\" option is only supported when the \"prefixIdentifiers\" option is enabled.`,\n    [51]: `\"scopeId\" option is only supported in module mode.`,\n    // just to fulfill types\n    [54]: ``\n  };\n\n  function walkIdentifiers(root, onIdentifier, includeAll = false, parentStack = [], knownIds = /* @__PURE__ */ Object.create(null)) {\n    {\n      return;\n    }\n  }\n  function isReferencedIdentifier(id, parent, parentStack) {\n    {\n      return false;\n    }\n  }\n  function isInDestructureAssignment(parent, parentStack) {\n    if (parent && (parent.type === \"ObjectProperty\" || parent.type === \"ArrayPattern\")) {\n      let i = parentStack.length;\n      while (i--) {\n        const p = parentStack[i];\n        if (p.type === \"AssignmentExpression\") {\n          return true;\n        } else if (p.type !== \"ObjectProperty\" && !p.type.endsWith(\"Pattern\")) {\n          break;\n        }\n      }\n    }\n    return false;\n  }\n  function isInNewExpression(parentStack) {\n    let i = parentStack.length;\n    while (i--) {\n      const p = parentStack[i];\n      if (p.type === \"NewExpression\") {\n        return true;\n      } else if (p.type !== \"MemberExpression\") {\n        break;\n      }\n    }\n    return false;\n  }\n  function walkFunctionParams(node, onIdent) {\n    for (const p of node.params) {\n      for (const id of extractIdentifiers(p)) {\n        onIdent(id);\n      }\n    }\n  }\n  function walkBlockDeclarations(block, onIdent) {\n    const body = block.type === \"SwitchCase\" ? block.consequent : block.body;\n    for (const stmt of body) {\n      if (stmt.type === \"VariableDeclaration\") {\n        if (stmt.declare) continue;\n        for (const decl of stmt.declarations) {\n          for (const id of extractIdentifiers(decl.id)) {\n            onIdent(id);\n          }\n        }\n      } else if (stmt.type === \"FunctionDeclaration\" || stmt.type === \"ClassDeclaration\") {\n        if (stmt.declare || !stmt.id) continue;\n        onIdent(stmt.id);\n      } else if (isForStatement(stmt)) {\n        walkForStatement(stmt, true, onIdent);\n      } else if (stmt.type === \"SwitchStatement\") {\n        walkSwitchStatement(stmt, true, onIdent);\n      }\n    }\n  }\n  function isForStatement(stmt) {\n    return stmt.type === \"ForOfStatement\" || stmt.type === \"ForInStatement\" || stmt.type === \"ForStatement\";\n  }\n  function walkForStatement(stmt, isVar, onIdent) {\n    const variable = stmt.type === \"ForStatement\" ? stmt.init : stmt.left;\n    if (variable && variable.type === \"VariableDeclaration\" && (variable.kind === \"var\" ? isVar : !isVar)) {\n      for (const decl of variable.declarations) {\n        for (const id of extractIdentifiers(decl.id)) {\n          onIdent(id);\n        }\n      }\n    }\n  }\n  function walkSwitchStatement(stmt, isVar, onIdent) {\n    for (const cs of stmt.cases) {\n      for (const stmt2 of cs.consequent) {\n        if (stmt2.type === \"VariableDeclaration\" && (stmt2.kind === \"var\" ? isVar : !isVar)) {\n          for (const decl of stmt2.declarations) {\n            for (const id of extractIdentifiers(decl.id)) {\n              onIdent(id);\n            }\n          }\n        }\n      }\n      walkBlockDeclarations(cs, onIdent);\n    }\n  }\n  function extractIdentifiers(param, nodes = []) {\n    switch (param.type) {\n      case \"Identifier\":\n        nodes.push(param);\n        break;\n      case \"MemberExpression\":\n        let object = param;\n        while (object.type === \"MemberExpression\") {\n          object = object.object;\n        }\n        nodes.push(object);\n        break;\n      case \"ObjectPattern\":\n        for (const prop of param.properties) {\n          if (prop.type === \"RestElement\") {\n            extractIdentifiers(prop.argument, nodes);\n          } else {\n            extractIdentifiers(prop.value, nodes);\n          }\n        }\n        break;\n      case \"ArrayPattern\":\n        param.elements.forEach((element) => {\n          if (element) extractIdentifiers(element, nodes);\n        });\n        break;\n      case \"RestElement\":\n        extractIdentifiers(param.argument, nodes);\n        break;\n      case \"AssignmentPattern\":\n        extractIdentifiers(param.left, nodes);\n        break;\n    }\n    return nodes;\n  }\n  const isFunctionType = (node) => {\n    return /Function(?:Expression|Declaration)$|Method$/.test(node.type);\n  };\n  const isStaticProperty = (node) => node && (node.type === \"ObjectProperty\" || node.type === \"ObjectMethod\") && !node.computed;\n  const isStaticPropertyKey = (node, parent) => isStaticProperty(parent) && parent.key === node;\n  const TS_NODE_TYPES = [\n    \"TSAsExpression\",\n    // foo as number\n    \"TSTypeAssertion\",\n    // (<number>foo)\n    \"TSNonNullExpression\",\n    // foo!\n    \"TSInstantiationExpression\",\n    // foo<string>\n    \"TSSatisfiesExpression\"\n    // foo satisfies T\n  ];\n  function unwrapTSNode(node) {\n    if (TS_NODE_TYPES.includes(node.type)) {\n      return unwrapTSNode(node.expression);\n    } else {\n      return node;\n    }\n  }\n\n  const isStaticExp = (p) => p.type === 4 && p.isStatic;\n  function isCoreComponent(tag) {\n    switch (tag) {\n      case \"Teleport\":\n      case \"teleport\":\n        return TELEPORT;\n      case \"Suspense\":\n      case \"suspense\":\n        return SUSPENSE;\n      case \"KeepAlive\":\n      case \"keep-alive\":\n        return KEEP_ALIVE;\n      case \"BaseTransition\":\n      case \"base-transition\":\n        return BASE_TRANSITION;\n    }\n  }\n  const nonIdentifierRE = /^$|^\\d|[^\\$\\w\\xA0-\\uFFFF]/;\n  const isSimpleIdentifier = (name) => !nonIdentifierRE.test(name);\n  const validFirstIdentCharRE = /[A-Za-z_$\\xA0-\\uFFFF]/;\n  const validIdentCharRE = /[\\.\\?\\w$\\xA0-\\uFFFF]/;\n  const whitespaceRE = /\\s+[.[]\\s*|\\s*[.[]\\s+/g;\n  const getExpSource = (exp) => exp.type === 4 ? exp.content : exp.loc.source;\n  const isMemberExpressionBrowser = (exp) => {\n    const path = getExpSource(exp).trim().replace(whitespaceRE, (s) => s.trim());\n    let state = 0 /* inMemberExp */;\n    let stateStack = [];\n    let currentOpenBracketCount = 0;\n    let currentOpenParensCount = 0;\n    let currentStringType = null;\n    for (let i = 0; i < path.length; i++) {\n      const char = path.charAt(i);\n      switch (state) {\n        case 0 /* inMemberExp */:\n          if (char === \"[\") {\n            stateStack.push(state);\n            state = 1 /* inBrackets */;\n            currentOpenBracketCount++;\n          } else if (char === \"(\") {\n            stateStack.push(state);\n            state = 2 /* inParens */;\n            currentOpenParensCount++;\n          } else if (!(i === 0 ? validFirstIdentCharRE : validIdentCharRE).test(char)) {\n            return false;\n          }\n          break;\n        case 1 /* inBrackets */:\n          if (char === `'` || char === `\"` || char === \"`\") {\n            stateStack.push(state);\n            state = 3 /* inString */;\n            currentStringType = char;\n          } else if (char === `[`) {\n            currentOpenBracketCount++;\n          } else if (char === `]`) {\n            if (!--currentOpenBracketCount) {\n              state = stateStack.pop();\n            }\n          }\n          break;\n        case 2 /* inParens */:\n          if (char === `'` || char === `\"` || char === \"`\") {\n            stateStack.push(state);\n            state = 3 /* inString */;\n            currentStringType = char;\n          } else if (char === `(`) {\n            currentOpenParensCount++;\n          } else if (char === `)`) {\n            if (i === path.length - 1) {\n              return false;\n            }\n            if (!--currentOpenParensCount) {\n              state = stateStack.pop();\n            }\n          }\n          break;\n        case 3 /* inString */:\n          if (char === currentStringType) {\n            state = stateStack.pop();\n            currentStringType = null;\n          }\n          break;\n      }\n    }\n    return !currentOpenBracketCount && !currentOpenParensCount;\n  };\n  const isMemberExpressionNode = NOOP ;\n  const isMemberExpression = isMemberExpressionBrowser ;\n  const fnExpRE = /^\\s*(?:async\\s*)?(?:\\([^)]*?\\)|[\\w$_]+)\\s*(?::[^=]+)?=>|^\\s*(?:async\\s+)?function(?:\\s+[\\w$]+)?\\s*\\(/;\n  const isFnExpressionBrowser = (exp) => fnExpRE.test(getExpSource(exp));\n  const isFnExpressionNode = NOOP ;\n  const isFnExpression = isFnExpressionBrowser ;\n  function advancePositionWithClone(pos, source, numberOfCharacters = source.length) {\n    return advancePositionWithMutation(\n      {\n        offset: pos.offset,\n        line: pos.line,\n        column: pos.column\n      },\n      source,\n      numberOfCharacters\n    );\n  }\n  function advancePositionWithMutation(pos, source, numberOfCharacters = source.length) {\n    let linesCount = 0;\n    let lastNewLinePos = -1;\n    for (let i = 0; i < numberOfCharacters; i++) {\n      if (source.charCodeAt(i) === 10) {\n        linesCount++;\n        lastNewLinePos = i;\n      }\n    }\n    pos.offset += numberOfCharacters;\n    pos.line += linesCount;\n    pos.column = lastNewLinePos === -1 ? pos.column + numberOfCharacters : numberOfCharacters - lastNewLinePos;\n    return pos;\n  }\n  function assert(condition, msg) {\n    if (!condition) {\n      throw new Error(msg || `unexpected compiler condition`);\n    }\n  }\n  function findDir(node, name, allowEmpty = false) {\n    for (let i = 0; i < node.props.length; i++) {\n      const p = node.props[i];\n      if (p.type === 7 && (allowEmpty || p.exp) && (isString(name) ? p.name === name : name.test(p.name))) {\n        return p;\n      }\n    }\n  }\n  function findProp(node, name, dynamicOnly = false, allowEmpty = false) {\n    for (let i = 0; i < node.props.length; i++) {\n      const p = node.props[i];\n      if (p.type === 6) {\n        if (dynamicOnly) continue;\n        if (p.name === name && (p.value || allowEmpty)) {\n          return p;\n        }\n      } else if (p.name === \"bind\" && (p.exp || allowEmpty) && isStaticArgOf(p.arg, name)) {\n        return p;\n      }\n    }\n  }\n  function isStaticArgOf(arg, name) {\n    return !!(arg && isStaticExp(arg) && arg.content === name);\n  }\n  function hasDynamicKeyVBind(node) {\n    return node.props.some(\n      (p) => p.type === 7 && p.name === \"bind\" && (!p.arg || // v-bind=\"obj\"\n      p.arg.type !== 4 || // v-bind:[_ctx.foo]\n      !p.arg.isStatic)\n      // v-bind:[foo]\n    );\n  }\n  function isText$1(node) {\n    return node.type === 5 || node.type === 2;\n  }\n  function isVPre(p) {\n    return p.type === 7 && p.name === \"pre\";\n  }\n  function isVSlot(p) {\n    return p.type === 7 && p.name === \"slot\";\n  }\n  function isTemplateNode(node) {\n    return node.type === 1 && node.tagType === 3;\n  }\n  function isSlotOutlet(node) {\n    return node.type === 1 && node.tagType === 2;\n  }\n  const propsHelperSet = /* @__PURE__ */ new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]);\n  function getUnnormalizedProps(props, callPath = []) {\n    if (props && !isString(props) && props.type === 14) {\n      const callee = props.callee;\n      if (!isString(callee) && propsHelperSet.has(callee)) {\n        return getUnnormalizedProps(\n          props.arguments[0],\n          callPath.concat(props)\n        );\n      }\n    }\n    return [props, callPath];\n  }\n  function injectProp(node, prop, context) {\n    if (node.type !== 13 && injectSlotKey(node, prop)) {\n      return;\n    }\n    let propsWithInjection;\n    let props = node.type === 13 ? node.props : node.arguments[2];\n    let callPath = [];\n    let parentCall;\n    if (props && !isString(props) && props.type === 14) {\n      const ret = getUnnormalizedProps(props);\n      props = ret[0];\n      callPath = ret[1];\n      parentCall = callPath[callPath.length - 1];\n    }\n    if (props == null || isString(props)) {\n      propsWithInjection = createObjectExpression([prop]);\n    } else if (props.type === 14) {\n      const first = props.arguments[0];\n      if (!isString(first) && first.type === 15) {\n        if (!hasProp(prop, first)) {\n          first.properties.unshift(prop);\n        }\n      } else {\n        if (props.callee === TO_HANDLERS) {\n          propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [\n            createObjectExpression([prop]),\n            props\n          ]);\n        } else {\n          props.arguments.unshift(createObjectExpression([prop]));\n        }\n      }\n      !propsWithInjection && (propsWithInjection = props);\n    } else if (props.type === 15) {\n      if (!hasProp(prop, props)) {\n        props.properties.unshift(prop);\n      }\n      propsWithInjection = props;\n    } else {\n      propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [\n        createObjectExpression([prop]),\n        props\n      ]);\n      if (parentCall && parentCall.callee === GUARD_REACTIVE_PROPS) {\n        parentCall = callPath[callPath.length - 2];\n      }\n    }\n    if (node.type === 13) {\n      if (parentCall) {\n        parentCall.arguments[0] = propsWithInjection;\n      } else {\n        node.props = propsWithInjection;\n      }\n    } else {\n      if (parentCall) {\n        parentCall.arguments[0] = propsWithInjection;\n      } else {\n        node.arguments[2] = propsWithInjection;\n      }\n    }\n  }\n  function injectSlotKey(node, prop) {\n    var _a, _b, _c;\n    if (prop.key.type !== 4 || prop.key.content !== \"key\") {\n      return false;\n    }\n    const props = node.arguments[2];\n    if (props && !isString(props)) {\n      const [unnormalizedProps] = getUnnormalizedProps(props);\n      if (unnormalizedProps && !isString(unnormalizedProps) && unnormalizedProps.type === 15 && hasProp(prop, unnormalizedProps)) {\n        return true;\n      }\n    }\n    (_a = node.arguments)[2] || (_a[2] = \"{}\");\n    (_b = node.arguments)[3] || (_b[3] = \"undefined\");\n    (_c = node.arguments)[4] || (_c[4] = \"undefined\");\n    node.arguments[5] = prop.value;\n    return true;\n  }\n  function hasProp(prop, props) {\n    let result = false;\n    if (prop.key.type === 4) {\n      const propKeyName = prop.key.content;\n      result = props.properties.some(\n        (p) => p.key.type === 4 && p.key.content === propKeyName\n      );\n    }\n    return result;\n  }\n  function toValidAssetId(name, type) {\n    return `_${type}_${name.replace(/[^\\w]/g, (searchValue, replaceValue) => {\n    return searchValue === \"-\" ? \"_\" : name.charCodeAt(replaceValue).toString();\n  })}`;\n  }\n  function hasScopeRef(node, ids) {\n    if (!node || Object.keys(ids).length === 0) {\n      return false;\n    }\n    switch (node.type) {\n      case 1:\n        for (let i = 0; i < node.props.length; i++) {\n          const p = node.props[i];\n          if (p.type === 7 && (hasScopeRef(p.arg, ids) || hasScopeRef(p.exp, ids))) {\n            return true;\n          }\n        }\n        return node.children.some((c) => hasScopeRef(c, ids));\n      case 11:\n        if (hasScopeRef(node.source, ids)) {\n          return true;\n        }\n        return node.children.some((c) => hasScopeRef(c, ids));\n      case 9:\n        return node.branches.some((b) => hasScopeRef(b, ids));\n      case 10:\n        if (hasScopeRef(node.condition, ids)) {\n          return true;\n        }\n        return node.children.some((c) => hasScopeRef(c, ids));\n      case 4:\n        return !node.isStatic && isSimpleIdentifier(node.content) && !!ids[node.content];\n      case 8:\n        return node.children.some((c) => isObject(c) && hasScopeRef(c, ids));\n      case 5:\n      case 12:\n        return hasScopeRef(node.content, ids);\n      case 2:\n      case 3:\n      case 20:\n        return false;\n      default:\n        return false;\n    }\n  }\n  function getMemoedVNodeCall(node) {\n    if (node.type === 14 && node.callee === WITH_MEMO) {\n      return node.arguments[1].returns;\n    } else {\n      return node;\n    }\n  }\n  const forAliasRE = /([\\s\\S]*?)\\s+(?:in|of)\\s+(\\S[\\s\\S]*)/;\n  function isAllWhitespace(str) {\n    for (let i = 0; i < str.length; i++) {\n      if (!isWhitespace(str.charCodeAt(i))) {\n        return false;\n      }\n    }\n    return true;\n  }\n  function isWhitespaceText(node) {\n    return node.type === 2 && isAllWhitespace(node.content) || node.type === 12 && isWhitespaceText(node.content);\n  }\n  function isCommentOrWhitespace(node) {\n    return node.type === 3 || isWhitespaceText(node);\n  }\n\n  const defaultParserOptions = {\n    parseMode: \"base\",\n    ns: 0,\n    delimiters: [`{{`, `}}`],\n    getNamespace: () => 0,\n    isVoidTag: NO,\n    isPreTag: NO,\n    isIgnoreNewlineTag: NO,\n    isCustomElement: NO,\n    onError: defaultOnError,\n    onWarn: defaultOnWarn,\n    comments: true,\n    prefixIdentifiers: false\n  };\n  let currentOptions = defaultParserOptions;\n  let currentRoot = null;\n  let currentInput = \"\";\n  let currentOpenTag = null;\n  let currentProp = null;\n  let currentAttrValue = \"\";\n  let currentAttrStartIndex = -1;\n  let currentAttrEndIndex = -1;\n  let inPre = 0;\n  let inVPre = false;\n  let currentVPreBoundary = null;\n  const stack = [];\n  const tokenizer = new Tokenizer(stack, {\n    onerr: emitError,\n    ontext(start, end) {\n      onText(getSlice(start, end), start, end);\n    },\n    ontextentity(char, start, end) {\n      onText(char, start, end);\n    },\n    oninterpolation(start, end) {\n      if (inVPre) {\n        return onText(getSlice(start, end), start, end);\n      }\n      let innerStart = start + tokenizer.delimiterOpen.length;\n      let innerEnd = end - tokenizer.delimiterClose.length;\n      while (isWhitespace(currentInput.charCodeAt(innerStart))) {\n        innerStart++;\n      }\n      while (isWhitespace(currentInput.charCodeAt(innerEnd - 1))) {\n        innerEnd--;\n      }\n      let exp = getSlice(innerStart, innerEnd);\n      if (exp.includes(\"&\")) {\n        {\n          exp = currentOptions.decodeEntities(exp, false);\n        }\n      }\n      addNode({\n        type: 5,\n        content: createExp(exp, false, getLoc(innerStart, innerEnd)),\n        loc: getLoc(start, end)\n      });\n    },\n    onopentagname(start, end) {\n      const name = getSlice(start, end);\n      currentOpenTag = {\n        type: 1,\n        tag: name,\n        ns: currentOptions.getNamespace(name, stack[0], currentOptions.ns),\n        tagType: 0,\n        // will be refined on tag close\n        props: [],\n        children: [],\n        loc: getLoc(start - 1, end),\n        codegenNode: void 0\n      };\n    },\n    onopentagend(end) {\n      endOpenTag(end);\n    },\n    onclosetag(start, end) {\n      const name = getSlice(start, end);\n      if (!currentOptions.isVoidTag(name)) {\n        let found = false;\n        for (let i = 0; i < stack.length; i++) {\n          const e = stack[i];\n          if (e.tag.toLowerCase() === name.toLowerCase()) {\n            found = true;\n            if (i > 0) {\n              emitError(24, stack[0].loc.start.offset);\n            }\n            for (let j = 0; j <= i; j++) {\n              const el = stack.shift();\n              onCloseTag(el, end, j < i);\n            }\n            break;\n          }\n        }\n        if (!found) {\n          emitError(23, backTrack(start, 60));\n        }\n      }\n    },\n    onselfclosingtag(end) {\n      const name = currentOpenTag.tag;\n      currentOpenTag.isSelfClosing = true;\n      endOpenTag(end);\n      if (stack[0] && stack[0].tag === name) {\n        onCloseTag(stack.shift(), end);\n      }\n    },\n    onattribname(start, end) {\n      currentProp = {\n        type: 6,\n        name: getSlice(start, end),\n        nameLoc: getLoc(start, end),\n        value: void 0,\n        loc: getLoc(start)\n      };\n    },\n    ondirname(start, end) {\n      const raw = getSlice(start, end);\n      const name = raw === \".\" || raw === \":\" ? \"bind\" : raw === \"@\" ? \"on\" : raw === \"#\" ? \"slot\" : raw.slice(2);\n      if (!inVPre && name === \"\") {\n        emitError(26, start);\n      }\n      if (inVPre || name === \"\") {\n        currentProp = {\n          type: 6,\n          name: raw,\n          nameLoc: getLoc(start, end),\n          value: void 0,\n          loc: getLoc(start)\n        };\n      } else {\n        currentProp = {\n          type: 7,\n          name,\n          rawName: raw,\n          exp: void 0,\n          arg: void 0,\n          modifiers: raw === \".\" ? [createSimpleExpression(\"prop\")] : [],\n          loc: getLoc(start)\n        };\n        if (name === \"pre\") {\n          inVPre = tokenizer.inVPre = true;\n          currentVPreBoundary = currentOpenTag;\n          const props = currentOpenTag.props;\n          for (let i = 0; i < props.length; i++) {\n            if (props[i].type === 7) {\n              props[i] = dirToAttr(props[i]);\n            }\n          }\n        }\n      }\n    },\n    ondirarg(start, end) {\n      if (start === end) return;\n      const arg = getSlice(start, end);\n      if (inVPre && !isVPre(currentProp)) {\n        currentProp.name += arg;\n        setLocEnd(currentProp.nameLoc, end);\n      } else {\n        const isStatic = arg[0] !== `[`;\n        currentProp.arg = createExp(\n          isStatic ? arg : arg.slice(1, -1),\n          isStatic,\n          getLoc(start, end),\n          isStatic ? 3 : 0\n        );\n      }\n    },\n    ondirmodifier(start, end) {\n      const mod = getSlice(start, end);\n      if (inVPre && !isVPre(currentProp)) {\n        currentProp.name += \".\" + mod;\n        setLocEnd(currentProp.nameLoc, end);\n      } else if (currentProp.name === \"slot\") {\n        const arg = currentProp.arg;\n        if (arg) {\n          arg.content += \".\" + mod;\n          setLocEnd(arg.loc, end);\n        }\n      } else {\n        const exp = createSimpleExpression(mod, true, getLoc(start, end));\n        currentProp.modifiers.push(exp);\n      }\n    },\n    onattribdata(start, end) {\n      currentAttrValue += getSlice(start, end);\n      if (currentAttrStartIndex < 0) currentAttrStartIndex = start;\n      currentAttrEndIndex = end;\n    },\n    onattribentity(char, start, end) {\n      currentAttrValue += char;\n      if (currentAttrStartIndex < 0) currentAttrStartIndex = start;\n      currentAttrEndIndex = end;\n    },\n    onattribnameend(end) {\n      const start = currentProp.loc.start.offset;\n      const name = getSlice(start, end);\n      if (currentProp.type === 7) {\n        currentProp.rawName = name;\n      }\n      if (currentOpenTag.props.some(\n        (p) => (p.type === 7 ? p.rawName : p.name) === name\n      )) {\n        emitError(2, start);\n      }\n    },\n    onattribend(quote, end) {\n      if (currentOpenTag && currentProp) {\n        setLocEnd(currentProp.loc, end);\n        if (quote !== 0) {\n          if (currentAttrValue.includes(\"&\")) {\n            currentAttrValue = currentOptions.decodeEntities(\n              currentAttrValue,\n              true\n            );\n          }\n          if (currentProp.type === 6) {\n            if (currentProp.name === \"class\") {\n              currentAttrValue = condense(currentAttrValue).trim();\n            }\n            if (quote === 1 && !currentAttrValue) {\n              emitError(13, end);\n            }\n            currentProp.value = {\n              type: 2,\n              content: currentAttrValue,\n              loc: quote === 1 ? getLoc(currentAttrStartIndex, currentAttrEndIndex) : getLoc(currentAttrStartIndex - 1, currentAttrEndIndex + 1)\n            };\n            if (tokenizer.inSFCRoot && currentOpenTag.tag === \"template\" && currentProp.name === \"lang\" && currentAttrValue && currentAttrValue !== \"html\") {\n              tokenizer.enterRCDATA(toCharCodes(`</template`), 0);\n            }\n          } else {\n            let expParseMode = 0 /* Normal */;\n            currentProp.exp = createExp(\n              currentAttrValue,\n              false,\n              getLoc(currentAttrStartIndex, currentAttrEndIndex),\n              0,\n              expParseMode\n            );\n            if (currentProp.name === \"for\") {\n              currentProp.forParseResult = parseForExpression(currentProp.exp);\n            }\n            let syncIndex = -1;\n            if (currentProp.name === \"bind\" && (syncIndex = currentProp.modifiers.findIndex(\n              (mod) => mod.content === \"sync\"\n            )) > -1 && checkCompatEnabled(\n              \"COMPILER_V_BIND_SYNC\",\n              currentOptions,\n              currentProp.loc,\n              currentProp.arg.loc.source\n            )) {\n              currentProp.name = \"model\";\n              currentProp.modifiers.splice(syncIndex, 1);\n            }\n          }\n        }\n        if (currentProp.type !== 7 || currentProp.name !== \"pre\") {\n          currentOpenTag.props.push(currentProp);\n        }\n      }\n      currentAttrValue = \"\";\n      currentAttrStartIndex = currentAttrEndIndex = -1;\n    },\n    oncomment(start, end) {\n      if (currentOptions.comments) {\n        addNode({\n          type: 3,\n          content: getSlice(start, end),\n          loc: getLoc(start - 4, end + 3)\n        });\n      }\n    },\n    onend() {\n      const end = currentInput.length;\n      if (tokenizer.state !== 1) {\n        switch (tokenizer.state) {\n          case 5:\n          case 8:\n            emitError(5, end);\n            break;\n          case 3:\n          case 4:\n            emitError(\n              25,\n              tokenizer.sectionStart\n            );\n            break;\n          case 28:\n            if (tokenizer.currentSequence === Sequences.CdataEnd) {\n              emitError(6, end);\n            } else {\n              emitError(7, end);\n            }\n            break;\n          case 6:\n          case 7:\n          case 9:\n          case 11:\n          case 12:\n          case 13:\n          case 14:\n          case 15:\n          case 16:\n          case 17:\n          case 18:\n          case 19:\n          // \"\n          case 20:\n          // '\n          case 21:\n            emitError(9, end);\n            break;\n        }\n      }\n      for (let index = 0; index < stack.length; index++) {\n        onCloseTag(stack[index], end - 1);\n        emitError(24, stack[index].loc.start.offset);\n      }\n    },\n    oncdata(start, end) {\n      if ((stack[0] ? stack[0].ns : currentOptions.ns) !== 0) {\n        onText(getSlice(start, end), start, end);\n      } else {\n        emitError(1, start - 9);\n      }\n    },\n    onprocessinginstruction(start) {\n      if ((stack[0] ? stack[0].ns : currentOptions.ns) === 0) {\n        emitError(\n          21,\n          start - 1\n        );\n      }\n    }\n  });\n  const forIteratorRE = /,([^,\\}\\]]*)(?:,([^,\\}\\]]*))?$/;\n  const stripParensRE = /^\\(|\\)$/g;\n  function parseForExpression(input) {\n    const loc = input.loc;\n    const exp = input.content;\n    const inMatch = exp.match(forAliasRE);\n    if (!inMatch) return;\n    const [, LHS, RHS] = inMatch;\n    const createAliasExpression = (content, offset, asParam = false) => {\n      const start = loc.start.offset + offset;\n      const end = start + content.length;\n      return createExp(\n        content,\n        false,\n        getLoc(start, end),\n        0,\n        asParam ? 1 /* Params */ : 0 /* Normal */\n      );\n    };\n    const result = {\n      source: createAliasExpression(RHS.trim(), exp.indexOf(RHS, LHS.length)),\n      value: void 0,\n      key: void 0,\n      index: void 0,\n      finalized: false\n    };\n    let valueContent = LHS.trim().replace(stripParensRE, \"\").trim();\n    const trimmedOffset = LHS.indexOf(valueContent);\n    const iteratorMatch = valueContent.match(forIteratorRE);\n    if (iteratorMatch) {\n      valueContent = valueContent.replace(forIteratorRE, \"\").trim();\n      const keyContent = iteratorMatch[1].trim();\n      let keyOffset;\n      if (keyContent) {\n        keyOffset = exp.indexOf(keyContent, trimmedOffset + valueContent.length);\n        result.key = createAliasExpression(keyContent, keyOffset, true);\n      }\n      if (iteratorMatch[2]) {\n        const indexContent = iteratorMatch[2].trim();\n        if (indexContent) {\n          result.index = createAliasExpression(\n            indexContent,\n            exp.indexOf(\n              indexContent,\n              result.key ? keyOffset + keyContent.length : trimmedOffset + valueContent.length\n            ),\n            true\n          );\n        }\n      }\n    }\n    if (valueContent) {\n      result.value = createAliasExpression(valueContent, trimmedOffset, true);\n    }\n    return result;\n  }\n  function getSlice(start, end) {\n    return currentInput.slice(start, end);\n  }\n  function endOpenTag(end) {\n    if (tokenizer.inSFCRoot) {\n      currentOpenTag.innerLoc = getLoc(end + 1, end + 1);\n    }\n    addNode(currentOpenTag);\n    const { tag, ns } = currentOpenTag;\n    if (ns === 0 && currentOptions.isPreTag(tag)) {\n      inPre++;\n    }\n    if (currentOptions.isVoidTag(tag)) {\n      onCloseTag(currentOpenTag, end);\n    } else {\n      stack.unshift(currentOpenTag);\n      if (ns === 1 || ns === 2) {\n        tokenizer.inXML = true;\n      }\n    }\n    currentOpenTag = null;\n  }\n  function onText(content, start, end) {\n    {\n      const tag = stack[0] && stack[0].tag;\n      if (tag !== \"script\" && tag !== \"style\" && content.includes(\"&\")) {\n        content = currentOptions.decodeEntities(content, false);\n      }\n    }\n    const parent = stack[0] || currentRoot;\n    const lastNode = parent.children[parent.children.length - 1];\n    if (lastNode && lastNode.type === 2) {\n      lastNode.content += content;\n      setLocEnd(lastNode.loc, end);\n    } else {\n      parent.children.push({\n        type: 2,\n        content,\n        loc: getLoc(start, end)\n      });\n    }\n  }\n  function onCloseTag(el, end, isImplied = false) {\n    if (isImplied) {\n      setLocEnd(el.loc, backTrack(end, 60));\n    } else {\n      setLocEnd(el.loc, lookAhead(end, 62) + 1);\n    }\n    if (tokenizer.inSFCRoot) {\n      if (el.children.length) {\n        el.innerLoc.end = extend({}, el.children[el.children.length - 1].loc.end);\n      } else {\n        el.innerLoc.end = extend({}, el.innerLoc.start);\n      }\n      el.innerLoc.source = getSlice(\n        el.innerLoc.start.offset,\n        el.innerLoc.end.offset\n      );\n    }\n    const { tag, ns, children } = el;\n    if (!inVPre) {\n      if (tag === \"slot\") {\n        el.tagType = 2;\n      } else if (isFragmentTemplate(el)) {\n        el.tagType = 3;\n      } else if (isComponent(el)) {\n        el.tagType = 1;\n      }\n    }\n    if (!tokenizer.inRCDATA) {\n      el.children = condenseWhitespace(children);\n    }\n    if (ns === 0 && currentOptions.isIgnoreNewlineTag(tag)) {\n      const first = children[0];\n      if (first && first.type === 2) {\n        first.content = first.content.replace(/^\\r?\\n/, \"\");\n      }\n    }\n    if (ns === 0 && currentOptions.isPreTag(tag)) {\n      inPre--;\n    }\n    if (currentVPreBoundary === el) {\n      inVPre = tokenizer.inVPre = false;\n      currentVPreBoundary = null;\n    }\n    if (tokenizer.inXML && (stack[0] ? stack[0].ns : currentOptions.ns) === 0) {\n      tokenizer.inXML = false;\n    }\n    {\n      const props = el.props;\n      if (isCompatEnabled(\n        \"COMPILER_V_IF_V_FOR_PRECEDENCE\",\n        currentOptions\n      )) {\n        let hasIf = false;\n        let hasFor = false;\n        for (let i = 0; i < props.length; i++) {\n          const p = props[i];\n          if (p.type === 7) {\n            if (p.name === \"if\") {\n              hasIf = true;\n            } else if (p.name === \"for\") {\n              hasFor = true;\n            }\n          }\n          if (hasIf && hasFor) {\n            warnDeprecation(\n              \"COMPILER_V_IF_V_FOR_PRECEDENCE\",\n              currentOptions,\n              el.loc\n            );\n            break;\n          }\n        }\n      }\n      if (!tokenizer.inSFCRoot && isCompatEnabled(\n        \"COMPILER_NATIVE_TEMPLATE\",\n        currentOptions\n      ) && el.tag === \"template\" && !isFragmentTemplate(el)) {\n        warnDeprecation(\n          \"COMPILER_NATIVE_TEMPLATE\",\n          currentOptions,\n          el.loc\n        );\n        const parent = stack[0] || currentRoot;\n        const index = parent.children.indexOf(el);\n        parent.children.splice(index, 1, ...el.children);\n      }\n      const inlineTemplateProp = props.find(\n        (p) => p.type === 6 && p.name === \"inline-template\"\n      );\n      if (inlineTemplateProp && checkCompatEnabled(\n        \"COMPILER_INLINE_TEMPLATE\",\n        currentOptions,\n        inlineTemplateProp.loc\n      ) && el.children.length) {\n        inlineTemplateProp.value = {\n          type: 2,\n          content: getSlice(\n            el.children[0].loc.start.offset,\n            el.children[el.children.length - 1].loc.end.offset\n          ),\n          loc: inlineTemplateProp.loc\n        };\n      }\n    }\n  }\n  function lookAhead(index, c) {\n    let i = index;\n    while (currentInput.charCodeAt(i) !== c && i < currentInput.length - 1) i++;\n    return i;\n  }\n  function backTrack(index, c) {\n    let i = index;\n    while (currentInput.charCodeAt(i) !== c && i >= 0) i--;\n    return i;\n  }\n  const specialTemplateDir = /* @__PURE__ */ new Set([\"if\", \"else\", \"else-if\", \"for\", \"slot\"]);\n  function isFragmentTemplate({ tag, props }) {\n    if (tag === \"template\") {\n      for (let i = 0; i < props.length; i++) {\n        if (props[i].type === 7 && specialTemplateDir.has(props[i].name)) {\n          return true;\n        }\n      }\n    }\n    return false;\n  }\n  function isComponent({ tag, props }) {\n    if (currentOptions.isCustomElement(tag)) {\n      return false;\n    }\n    if (tag === \"component\" || isUpperCase(tag.charCodeAt(0)) || isCoreComponent(tag) || currentOptions.isBuiltInComponent && currentOptions.isBuiltInComponent(tag) || currentOptions.isNativeTag && !currentOptions.isNativeTag(tag)) {\n      return true;\n    }\n    for (let i = 0; i < props.length; i++) {\n      const p = props[i];\n      if (p.type === 6) {\n        if (p.name === \"is\" && p.value) {\n          if (p.value.content.startsWith(\"vue:\")) {\n            return true;\n          } else if (checkCompatEnabled(\n            \"COMPILER_IS_ON_ELEMENT\",\n            currentOptions,\n            p.loc\n          )) {\n            return true;\n          }\n        }\n      } else if (// :is on plain element - only treat as component in compat mode\n      p.name === \"bind\" && isStaticArgOf(p.arg, \"is\") && checkCompatEnabled(\n        \"COMPILER_IS_ON_ELEMENT\",\n        currentOptions,\n        p.loc\n      )) {\n        return true;\n      }\n    }\n    return false;\n  }\n  function isUpperCase(c) {\n    return c > 64 && c < 91;\n  }\n  const windowsNewlineRE = /\\r\\n/g;\n  function condenseWhitespace(nodes) {\n    const shouldCondense = currentOptions.whitespace !== \"preserve\";\n    let removedWhitespace = false;\n    for (let i = 0; i < nodes.length; i++) {\n      const node = nodes[i];\n      if (node.type === 2) {\n        if (!inPre) {\n          if (isAllWhitespace(node.content)) {\n            const prev = nodes[i - 1] && nodes[i - 1].type;\n            const next = nodes[i + 1] && nodes[i + 1].type;\n            if (!prev || !next || shouldCondense && (prev === 3 && (next === 3 || next === 1) || prev === 1 && (next === 3 || next === 1 && hasNewlineChar(node.content)))) {\n              removedWhitespace = true;\n              nodes[i] = null;\n            } else {\n              node.content = \" \";\n            }\n          } else if (shouldCondense) {\n            node.content = condense(node.content);\n          }\n        } else {\n          node.content = node.content.replace(windowsNewlineRE, \"\\n\");\n        }\n      }\n    }\n    return removedWhitespace ? nodes.filter(Boolean) : nodes;\n  }\n  function hasNewlineChar(str) {\n    for (let i = 0; i < str.length; i++) {\n      const c = str.charCodeAt(i);\n      if (c === 10 || c === 13) {\n        return true;\n      }\n    }\n    return false;\n  }\n  function condense(str) {\n    let ret = \"\";\n    let prevCharIsWhitespace = false;\n    for (let i = 0; i < str.length; i++) {\n      if (isWhitespace(str.charCodeAt(i))) {\n        if (!prevCharIsWhitespace) {\n          ret += \" \";\n          prevCharIsWhitespace = true;\n        }\n      } else {\n        ret += str[i];\n        prevCharIsWhitespace = false;\n      }\n    }\n    return ret;\n  }\n  function addNode(node) {\n    (stack[0] || currentRoot).children.push(node);\n  }\n  function getLoc(start, end) {\n    return {\n      start: tokenizer.getPos(start),\n      // @ts-expect-error allow late attachment\n      end: end == null ? end : tokenizer.getPos(end),\n      // @ts-expect-error allow late attachment\n      source: end == null ? end : getSlice(start, end)\n    };\n  }\n  function cloneLoc(loc) {\n    return getLoc(loc.start.offset, loc.end.offset);\n  }\n  function setLocEnd(loc, end) {\n    loc.end = tokenizer.getPos(end);\n    loc.source = getSlice(loc.start.offset, end);\n  }\n  function dirToAttr(dir) {\n    const attr = {\n      type: 6,\n      name: dir.rawName,\n      nameLoc: getLoc(\n        dir.loc.start.offset,\n        dir.loc.start.offset + dir.rawName.length\n      ),\n      value: void 0,\n      loc: dir.loc\n    };\n    if (dir.exp) {\n      const loc = dir.exp.loc;\n      if (loc.end.offset < dir.loc.end.offset) {\n        loc.start.offset--;\n        loc.start.column--;\n        loc.end.offset++;\n        loc.end.column++;\n      }\n      attr.value = {\n        type: 2,\n        content: dir.exp.content,\n        loc\n      };\n    }\n    return attr;\n  }\n  function createExp(content, isStatic = false, loc, constType = 0, parseMode = 0 /* Normal */) {\n    const exp = createSimpleExpression(content, isStatic, loc, constType);\n    return exp;\n  }\n  function emitError(code, index, message) {\n    currentOptions.onError(\n      createCompilerError(code, getLoc(index, index), void 0, message)\n    );\n  }\n  function reset() {\n    tokenizer.reset();\n    currentOpenTag = null;\n    currentProp = null;\n    currentAttrValue = \"\";\n    currentAttrStartIndex = -1;\n    currentAttrEndIndex = -1;\n    stack.length = 0;\n  }\n  function baseParse(input, options) {\n    reset();\n    currentInput = input;\n    currentOptions = extend({}, defaultParserOptions);\n    if (options) {\n      let key;\n      for (key in options) {\n        if (options[key] != null) {\n          currentOptions[key] = options[key];\n        }\n      }\n    }\n    {\n      if (!currentOptions.decodeEntities) {\n        throw new Error(\n          `[@vue/compiler-core] decodeEntities option is required in browser builds.`\n        );\n      }\n    }\n    tokenizer.mode = currentOptions.parseMode === \"html\" ? 1 : currentOptions.parseMode === \"sfc\" ? 2 : 0;\n    tokenizer.inXML = currentOptions.ns === 1 || currentOptions.ns === 2;\n    const delimiters = options && options.delimiters;\n    if (delimiters) {\n      tokenizer.delimiterOpen = toCharCodes(delimiters[0]);\n      tokenizer.delimiterClose = toCharCodes(delimiters[1]);\n    }\n    const root = currentRoot = createRoot([], input);\n    tokenizer.parse(currentInput);\n    root.loc = getLoc(0, input.length);\n    root.children = condenseWhitespace(root.children);\n    currentRoot = null;\n    return root;\n  }\n\n  function cacheStatic(root, context) {\n    walk(\n      root,\n      void 0,\n      context,\n      // Root node is unfortunately non-hoistable due to potential parent\n      // fallthrough attributes.\n      !!getSingleElementRoot(root)\n    );\n  }\n  function getSingleElementRoot(root) {\n    const children = root.children.filter((x) => x.type !== 3);\n    return children.length === 1 && children[0].type === 1 && !isSlotOutlet(children[0]) ? children[0] : null;\n  }\n  function walk(node, parent, context, doNotHoistNode = false, inFor = false) {\n    const { children } = node;\n    const toCache = [];\n    for (let i = 0; i < children.length; i++) {\n      const child = children[i];\n      if (child.type === 1 && child.tagType === 0) {\n        const constantType = doNotHoistNode ? 0 : getConstantType(child, context);\n        if (constantType > 0) {\n          if (constantType >= 2) {\n            child.codegenNode.patchFlag = -1;\n            toCache.push(child);\n            continue;\n          }\n        } else {\n          const codegenNode = child.codegenNode;\n          if (codegenNode.type === 13) {\n            const flag = codegenNode.patchFlag;\n            if ((flag === void 0 || flag === 512 || flag === 1) && getGeneratedPropsConstantType(child, context) >= 2) {\n              const props = getNodeProps(child);\n              if (props) {\n                codegenNode.props = context.hoist(props);\n              }\n            }\n            if (codegenNode.dynamicProps) {\n              codegenNode.dynamicProps = context.hoist(codegenNode.dynamicProps);\n            }\n          }\n        }\n      } else if (child.type === 12) {\n        const constantType = doNotHoistNode ? 0 : getConstantType(child, context);\n        if (constantType >= 2) {\n          if (child.codegenNode.type === 14 && child.codegenNode.arguments.length > 0) {\n            child.codegenNode.arguments.push(\n              -1 + (` /* ${PatchFlagNames[-1]} */` )\n            );\n          }\n          toCache.push(child);\n          continue;\n        }\n      }\n      if (child.type === 1) {\n        const isComponent = child.tagType === 1;\n        if (isComponent) {\n          context.scopes.vSlot++;\n        }\n        walk(child, node, context, false, inFor);\n        if (isComponent) {\n          context.scopes.vSlot--;\n        }\n      } else if (child.type === 11) {\n        walk(child, node, context, child.children.length === 1, true);\n      } else if (child.type === 9) {\n        for (let i2 = 0; i2 < child.branches.length; i2++) {\n          walk(\n            child.branches[i2],\n            node,\n            context,\n            child.branches[i2].children.length === 1,\n            inFor\n          );\n        }\n      }\n    }\n    let cachedAsArray = false;\n    if (toCache.length === children.length && node.type === 1) {\n      if (node.tagType === 0 && node.codegenNode && node.codegenNode.type === 13 && isArray(node.codegenNode.children)) {\n        node.codegenNode.children = getCacheExpression(\n          createArrayExpression(node.codegenNode.children)\n        );\n        cachedAsArray = true;\n      } else if (node.tagType === 1 && node.codegenNode && node.codegenNode.type === 13 && node.codegenNode.children && !isArray(node.codegenNode.children) && node.codegenNode.children.type === 15) {\n        const slot = getSlotNode(node.codegenNode, \"default\");\n        if (slot) {\n          slot.returns = getCacheExpression(\n            createArrayExpression(slot.returns)\n          );\n          cachedAsArray = true;\n        }\n      } else if (node.tagType === 3 && parent && parent.type === 1 && parent.tagType === 1 && parent.codegenNode && parent.codegenNode.type === 13 && parent.codegenNode.children && !isArray(parent.codegenNode.children) && parent.codegenNode.children.type === 15) {\n        const slotName = findDir(node, \"slot\", true);\n        const slot = slotName && slotName.arg && getSlotNode(parent.codegenNode, slotName.arg);\n        if (slot) {\n          slot.returns = getCacheExpression(\n            createArrayExpression(slot.returns)\n          );\n          cachedAsArray = true;\n        }\n      }\n    }\n    if (!cachedAsArray) {\n      for (const child of toCache) {\n        child.codegenNode = context.cache(child.codegenNode);\n      }\n    }\n    function getCacheExpression(value) {\n      const exp = context.cache(value);\n      exp.needArraySpread = true;\n      return exp;\n    }\n    function getSlotNode(node2, name) {\n      if (node2.children && !isArray(node2.children) && node2.children.type === 15) {\n        const slot = node2.children.properties.find(\n          (p) => p.key === name || p.key.content === name\n        );\n        return slot && slot.value;\n      }\n    }\n    if (toCache.length && context.transformHoist) {\n      context.transformHoist(children, context, node);\n    }\n  }\n  function getConstantType(node, context) {\n    const { constantCache } = context;\n    switch (node.type) {\n      case 1:\n        if (node.tagType !== 0) {\n          return 0;\n        }\n        const cached = constantCache.get(node);\n        if (cached !== void 0) {\n          return cached;\n        }\n        const codegenNode = node.codegenNode;\n        if (codegenNode.type !== 13) {\n          return 0;\n        }\n        if (codegenNode.isBlock && node.tag !== \"svg\" && node.tag !== \"foreignObject\" && node.tag !== \"math\") {\n          return 0;\n        }\n        if (codegenNode.patchFlag === void 0) {\n          let returnType2 = 3;\n          const generatedPropsType = getGeneratedPropsConstantType(node, context);\n          if (generatedPropsType === 0) {\n            constantCache.set(node, 0);\n            return 0;\n          }\n          if (generatedPropsType < returnType2) {\n            returnType2 = generatedPropsType;\n          }\n          for (let i = 0; i < node.children.length; i++) {\n            const childType = getConstantType(node.children[i], context);\n            if (childType === 0) {\n              constantCache.set(node, 0);\n              return 0;\n            }\n            if (childType < returnType2) {\n              returnType2 = childType;\n            }\n          }\n          if (returnType2 > 1) {\n            for (let i = 0; i < node.props.length; i++) {\n              const p = node.props[i];\n              if (p.type === 7 && p.name === \"bind\" && p.exp) {\n                const expType = getConstantType(p.exp, context);\n                if (expType === 0) {\n                  constantCache.set(node, 0);\n                  return 0;\n                }\n                if (expType < returnType2) {\n                  returnType2 = expType;\n                }\n              }\n            }\n          }\n          if (codegenNode.isBlock) {\n            for (let i = 0; i < node.props.length; i++) {\n              const p = node.props[i];\n              if (p.type === 7) {\n                constantCache.set(node, 0);\n                return 0;\n              }\n            }\n            context.removeHelper(OPEN_BLOCK);\n            context.removeHelper(\n              getVNodeBlockHelper(context.inSSR, codegenNode.isComponent)\n            );\n            codegenNode.isBlock = false;\n            context.helper(getVNodeHelper(context.inSSR, codegenNode.isComponent));\n          }\n          constantCache.set(node, returnType2);\n          return returnType2;\n        } else {\n          constantCache.set(node, 0);\n          return 0;\n        }\n      case 2:\n      case 3:\n        return 3;\n      case 9:\n      case 11:\n      case 10:\n        return 0;\n      case 5:\n      case 12:\n        return getConstantType(node.content, context);\n      case 4:\n        return node.constType;\n      case 8:\n        let returnType = 3;\n        for (let i = 0; i < node.children.length; i++) {\n          const child = node.children[i];\n          if (isString(child) || isSymbol(child)) {\n            continue;\n          }\n          const childType = getConstantType(child, context);\n          if (childType === 0) {\n            return 0;\n          } else if (childType < returnType) {\n            returnType = childType;\n          }\n        }\n        return returnType;\n      case 20:\n        return 2;\n      default:\n        return 0;\n    }\n  }\n  const allowHoistedHelperSet = /* @__PURE__ */ new Set([\n    NORMALIZE_CLASS,\n    NORMALIZE_STYLE,\n    NORMALIZE_PROPS,\n    GUARD_REACTIVE_PROPS\n  ]);\n  function getConstantTypeOfHelperCall(value, context) {\n    if (value.type === 14 && !isString(value.callee) && allowHoistedHelperSet.has(value.callee)) {\n      const arg = value.arguments[0];\n      if (arg.type === 4) {\n        return getConstantType(arg, context);\n      } else if (arg.type === 14) {\n        return getConstantTypeOfHelperCall(arg, context);\n      }\n    }\n    return 0;\n  }\n  function getGeneratedPropsConstantType(node, context) {\n    let returnType = 3;\n    const props = getNodeProps(node);\n    if (props && props.type === 15) {\n      const { properties } = props;\n      for (let i = 0; i < properties.length; i++) {\n        const { key, value } = properties[i];\n        const keyType = getConstantType(key, context);\n        if (keyType === 0) {\n          return keyType;\n        }\n        if (keyType < returnType) {\n          returnType = keyType;\n        }\n        let valueType;\n        if (value.type === 4) {\n          valueType = getConstantType(value, context);\n        } else if (value.type === 14) {\n          valueType = getConstantTypeOfHelperCall(value, context);\n        } else {\n          valueType = 0;\n        }\n        if (valueType === 0) {\n          return valueType;\n        }\n        if (valueType < returnType) {\n          returnType = valueType;\n        }\n      }\n    }\n    return returnType;\n  }\n  function getNodeProps(node) {\n    const codegenNode = node.codegenNode;\n    if (codegenNode.type === 13) {\n      return codegenNode.props;\n    }\n  }\n\n  function createTransformContext(root, {\n    filename = \"\",\n    prefixIdentifiers = false,\n    hoistStatic = false,\n    hmr = false,\n    cacheHandlers = false,\n    nodeTransforms = [],\n    directiveTransforms = {},\n    transformHoist = null,\n    isBuiltInComponent = NOOP,\n    isCustomElement = NOOP,\n    expressionPlugins = [],\n    scopeId = null,\n    slotted = true,\n    ssr = false,\n    inSSR = false,\n    ssrCssVars = ``,\n    bindingMetadata = EMPTY_OBJ,\n    inline = false,\n    isTS = false,\n    onError = defaultOnError,\n    onWarn = defaultOnWarn,\n    compatConfig\n  }) {\n    const nameMatch = filename.replace(/\\?.*$/, \"\").match(/([^/\\\\]+)\\.\\w+$/);\n    const context = {\n      // options\n      filename,\n      selfName: nameMatch && capitalize(camelize(nameMatch[1])),\n      prefixIdentifiers,\n      hoistStatic,\n      hmr,\n      cacheHandlers,\n      nodeTransforms,\n      directiveTransforms,\n      transformHoist,\n      isBuiltInComponent,\n      isCustomElement,\n      expressionPlugins,\n      scopeId,\n      slotted,\n      ssr,\n      inSSR,\n      ssrCssVars,\n      bindingMetadata,\n      inline,\n      isTS,\n      onError,\n      onWarn,\n      compatConfig,\n      // state\n      root,\n      helpers: /* @__PURE__ */ new Map(),\n      components: /* @__PURE__ */ new Set(),\n      directives: /* @__PURE__ */ new Set(),\n      hoists: [],\n      imports: [],\n      cached: [],\n      constantCache: /* @__PURE__ */ new WeakMap(),\n      vForMemoKeyedNodes: /* @__PURE__ */ new WeakSet(),\n      temps: 0,\n      identifiers: /* @__PURE__ */ Object.create(null),\n      scopes: {\n        vFor: 0,\n        vSlot: 0,\n        vPre: 0,\n        vOnce: 0\n      },\n      parent: null,\n      grandParent: null,\n      currentNode: root,\n      childIndex: 0,\n      inVOnce: false,\n      // methods\n      helper(name) {\n        const count = context.helpers.get(name) || 0;\n        context.helpers.set(name, count + 1);\n        return name;\n      },\n      removeHelper(name) {\n        const count = context.helpers.get(name);\n        if (count) {\n          const currentCount = count - 1;\n          if (!currentCount) {\n            context.helpers.delete(name);\n          } else {\n            context.helpers.set(name, currentCount);\n          }\n        }\n      },\n      helperString(name) {\n        return `_${helperNameMap[context.helper(name)]}`;\n      },\n      replaceNode(node) {\n        {\n          if (!context.currentNode) {\n            throw new Error(`Node being replaced is already removed.`);\n          }\n          if (!context.parent) {\n            throw new Error(`Cannot replace root node.`);\n          }\n        }\n        context.parent.children[context.childIndex] = context.currentNode = node;\n      },\n      removeNode(node) {\n        if (!context.parent) {\n          throw new Error(`Cannot remove root node.`);\n        }\n        const list = context.parent.children;\n        const removalIndex = node ? list.indexOf(node) : context.currentNode ? context.childIndex : -1;\n        if (removalIndex < 0) {\n          throw new Error(`node being removed is not a child of current parent`);\n        }\n        if (!node || node === context.currentNode) {\n          context.currentNode = null;\n          context.onNodeRemoved();\n        } else {\n          if (context.childIndex > removalIndex) {\n            context.childIndex--;\n            context.onNodeRemoved();\n          }\n        }\n        context.parent.children.splice(removalIndex, 1);\n      },\n      onNodeRemoved: NOOP,\n      addIdentifiers(exp) {\n      },\n      removeIdentifiers(exp) {\n      },\n      hoist(exp) {\n        if (isString(exp)) exp = createSimpleExpression(exp);\n        context.hoists.push(exp);\n        const identifier = createSimpleExpression(\n          `_hoisted_${context.hoists.length}`,\n          false,\n          exp.loc,\n          2\n        );\n        identifier.hoisted = exp;\n        return identifier;\n      },\n      cache(exp, isVNode = false, inVOnce = false) {\n        const cacheExp = createCacheExpression(\n          context.cached.length,\n          exp,\n          isVNode,\n          inVOnce\n        );\n        context.cached.push(cacheExp);\n        return cacheExp;\n      }\n    };\n    {\n      context.filters = /* @__PURE__ */ new Set();\n    }\n    return context;\n  }\n  function transform(root, options) {\n    const context = createTransformContext(root, options);\n    traverseNode(root, context);\n    if (options.hoistStatic) {\n      cacheStatic(root, context);\n    }\n    if (!options.ssr) {\n      createRootCodegen(root, context);\n    }\n    root.helpers = /* @__PURE__ */ new Set([...context.helpers.keys()]);\n    root.components = [...context.components];\n    root.directives = [...context.directives];\n    root.imports = context.imports;\n    root.hoists = context.hoists;\n    root.temps = context.temps;\n    root.cached = context.cached;\n    root.transformed = true;\n    {\n      root.filters = [...context.filters];\n    }\n  }\n  function createRootCodegen(root, context) {\n    const { helper } = context;\n    const { children } = root;\n    if (children.length === 1) {\n      const singleElementRootChild = getSingleElementRoot(root);\n      if (singleElementRootChild && singleElementRootChild.codegenNode) {\n        const codegenNode = singleElementRootChild.codegenNode;\n        if (codegenNode.type === 13) {\n          convertToBlock(codegenNode, context);\n        }\n        root.codegenNode = codegenNode;\n      } else {\n        root.codegenNode = children[0];\n      }\n    } else if (children.length > 1) {\n      let patchFlag = 64;\n      if (children.filter((c) => c.type !== 3).length === 1) {\n        patchFlag |= 2048;\n      }\n      root.codegenNode = createVNodeCall(\n        context,\n        helper(FRAGMENT),\n        void 0,\n        root.children,\n        patchFlag,\n        void 0,\n        void 0,\n        true,\n        void 0,\n        false\n      );\n    } else ;\n  }\n  function traverseChildren(parent, context) {\n    let i = 0;\n    const nodeRemoved = () => {\n      i--;\n    };\n    for (; i < parent.children.length; i++) {\n      const child = parent.children[i];\n      if (isString(child)) continue;\n      context.grandParent = context.parent;\n      context.parent = parent;\n      context.childIndex = i;\n      context.onNodeRemoved = nodeRemoved;\n      traverseNode(child, context);\n    }\n  }\n  function traverseNode(node, context) {\n    context.currentNode = node;\n    const { nodeTransforms } = context;\n    const exitFns = [];\n    for (let i2 = 0; i2 < nodeTransforms.length; i2++) {\n      const onExit = nodeTransforms[i2](node, context);\n      if (onExit) {\n        if (isArray(onExit)) {\n          exitFns.push(...onExit);\n        } else {\n          exitFns.push(onExit);\n        }\n      }\n      if (!context.currentNode) {\n        return;\n      } else {\n        node = context.currentNode;\n      }\n    }\n    switch (node.type) {\n      case 3:\n        if (!context.ssr) {\n          context.helper(CREATE_COMMENT);\n        }\n        break;\n      case 5:\n        if (!context.ssr) {\n          context.helper(TO_DISPLAY_STRING);\n        }\n        break;\n      // for container types, further traverse downwards\n      case 9:\n        for (let i2 = 0; i2 < node.branches.length; i2++) {\n          traverseNode(node.branches[i2], context);\n        }\n        break;\n      case 10:\n      case 11:\n      case 1:\n      case 0:\n        traverseChildren(node, context);\n        break;\n    }\n    context.currentNode = node;\n    let i = exitFns.length;\n    while (i--) {\n      exitFns[i]();\n    }\n  }\n  function createStructuralDirectiveTransform(name, fn) {\n    const matches = isString(name) ? (n) => n === name : (n) => name.test(n);\n    return (node, context) => {\n      if (node.type === 1) {\n        const { props } = node;\n        if (node.tagType === 3 && props.some(isVSlot)) {\n          return;\n        }\n        const exitFns = [];\n        for (let i = 0; i < props.length; i++) {\n          const prop = props[i];\n          if (prop.type === 7 && matches(prop.name)) {\n            props.splice(i, 1);\n            i--;\n            const onExit = fn(node, prop, context);\n            if (onExit) exitFns.push(onExit);\n          }\n        }\n        return exitFns;\n      }\n    };\n  }\n\n  const PURE_ANNOTATION = `/*@__PURE__*/`;\n  const aliasHelper = (s) => `${helperNameMap[s]}: _${helperNameMap[s]}`;\n  function createCodegenContext(ast, {\n    mode = \"function\",\n    prefixIdentifiers = mode === \"module\",\n    sourceMap = false,\n    filename = `template.vue.html`,\n    scopeId = null,\n    optimizeImports = false,\n    runtimeGlobalName = `Vue`,\n    runtimeModuleName = `vue`,\n    ssrRuntimeModuleName = \"vue/server-renderer\",\n    ssr = false,\n    isTS = false,\n    inSSR = false\n  }) {\n    const context = {\n      mode,\n      prefixIdentifiers,\n      sourceMap,\n      filename,\n      scopeId,\n      optimizeImports,\n      runtimeGlobalName,\n      runtimeModuleName,\n      ssrRuntimeModuleName,\n      ssr,\n      isTS,\n      inSSR,\n      source: ast.source,\n      code: ``,\n      column: 1,\n      line: 1,\n      offset: 0,\n      indentLevel: 0,\n      pure: false,\n      map: void 0,\n      helper(key) {\n        return `_${helperNameMap[key]}`;\n      },\n      push(code, newlineIndex = -2 /* None */, node) {\n        context.code += code;\n      },\n      indent() {\n        newline(++context.indentLevel);\n      },\n      deindent(withoutNewLine = false) {\n        if (withoutNewLine) {\n          --context.indentLevel;\n        } else {\n          newline(--context.indentLevel);\n        }\n      },\n      newline() {\n        newline(context.indentLevel);\n      }\n    };\n    function newline(n) {\n      context.push(\"\\n\" + `  `.repeat(n), 0 /* Start */);\n    }\n    return context;\n  }\n  function generate(ast, options = {}) {\n    const context = createCodegenContext(ast, options);\n    if (options.onContextCreated) options.onContextCreated(context);\n    const {\n      mode,\n      push,\n      prefixIdentifiers,\n      indent,\n      deindent,\n      newline,\n      scopeId,\n      ssr\n    } = context;\n    const helpers = Array.from(ast.helpers);\n    const hasHelpers = helpers.length > 0;\n    const useWithBlock = !prefixIdentifiers && mode !== \"module\";\n    const preambleContext = context;\n    {\n      genFunctionPreamble(ast, preambleContext);\n    }\n    const functionName = ssr ? `ssrRender` : `render`;\n    const args = ssr ? [\"_ctx\", \"_push\", \"_parent\", \"_attrs\"] : [\"_ctx\", \"_cache\"];\n    const signature = args.join(\", \");\n    {\n      push(`function ${functionName}(${signature}) {`);\n    }\n    indent();\n    if (useWithBlock) {\n      push(`with (_ctx) {`);\n      indent();\n      if (hasHelpers) {\n        push(\n          `const { ${helpers.map(aliasHelper).join(\", \")} } = _Vue\n`,\n          -1 /* End */\n        );\n        newline();\n      }\n    }\n    if (ast.components.length) {\n      genAssets(ast.components, \"component\", context);\n      if (ast.directives.length || ast.temps > 0) {\n        newline();\n      }\n    }\n    if (ast.directives.length) {\n      genAssets(ast.directives, \"directive\", context);\n      if (ast.temps > 0) {\n        newline();\n      }\n    }\n    if (ast.filters && ast.filters.length) {\n      newline();\n      genAssets(ast.filters, \"filter\", context);\n      newline();\n    }\n    if (ast.temps > 0) {\n      push(`let `);\n      for (let i = 0; i < ast.temps; i++) {\n        push(`${i > 0 ? `, ` : ``}_temp${i}`);\n      }\n    }\n    if (ast.components.length || ast.directives.length || ast.temps) {\n      push(`\n`, 0 /* Start */);\n      newline();\n    }\n    if (!ssr) {\n      push(`return `);\n    }\n    if (ast.codegenNode) {\n      genNode(ast.codegenNode, context);\n    } else {\n      push(`null`);\n    }\n    if (useWithBlock) {\n      deindent();\n      push(`}`);\n    }\n    deindent();\n    push(`}`);\n    return {\n      ast,\n      code: context.code,\n      preamble: ``,\n      map: context.map ? context.map.toJSON() : void 0\n    };\n  }\n  function genFunctionPreamble(ast, context) {\n    const {\n      ssr,\n      prefixIdentifiers,\n      push,\n      newline,\n      runtimeModuleName,\n      runtimeGlobalName,\n      ssrRuntimeModuleName\n    } = context;\n    const VueBinding = runtimeGlobalName;\n    const helpers = Array.from(ast.helpers);\n    if (helpers.length > 0) {\n      {\n        push(`const _Vue = ${VueBinding}\n`, -1 /* End */);\n        if (ast.hoists.length) {\n          const staticHelpers = [\n            CREATE_VNODE,\n            CREATE_ELEMENT_VNODE,\n            CREATE_COMMENT,\n            CREATE_TEXT,\n            CREATE_STATIC\n          ].filter((helper) => helpers.includes(helper)).map(aliasHelper).join(\", \");\n          push(`const { ${staticHelpers} } = _Vue\n`, -1 /* End */);\n        }\n      }\n    }\n    genHoists(ast.hoists, context);\n    newline();\n    push(`return `);\n  }\n  function genAssets(assets, type, { helper, push, newline, isTS }) {\n    const resolver = helper(\n      type === \"filter\" ? RESOLVE_FILTER : type === \"component\" ? RESOLVE_COMPONENT : RESOLVE_DIRECTIVE\n    );\n    for (let i = 0; i < assets.length; i++) {\n      let id = assets[i];\n      const maybeSelfReference = id.endsWith(\"__self\");\n      if (maybeSelfReference) {\n        id = id.slice(0, -6);\n      }\n      push(\n        `const ${toValidAssetId(id, type)} = ${resolver}(${JSON.stringify(id)}${maybeSelfReference ? `, true` : ``})${isTS ? `!` : ``}`\n      );\n      if (i < assets.length - 1) {\n        newline();\n      }\n    }\n  }\n  function genHoists(hoists, context) {\n    if (!hoists.length) {\n      return;\n    }\n    context.pure = true;\n    const { push, newline } = context;\n    newline();\n    for (let i = 0; i < hoists.length; i++) {\n      const exp = hoists[i];\n      if (exp) {\n        push(`const _hoisted_${i + 1} = `);\n        genNode(exp, context);\n        newline();\n      }\n    }\n    context.pure = false;\n  }\n  function isText(n) {\n    return isString(n) || n.type === 4 || n.type === 2 || n.type === 5 || n.type === 8;\n  }\n  function genNodeListAsArray(nodes, context) {\n    const multilines = nodes.length > 3 || nodes.some((n) => isArray(n) || !isText(n));\n    context.push(`[`);\n    multilines && context.indent();\n    genNodeList(nodes, context, multilines);\n    multilines && context.deindent();\n    context.push(`]`);\n  }\n  function genNodeList(nodes, context, multilines = false, comma = true) {\n    const { push, newline } = context;\n    for (let i = 0; i < nodes.length; i++) {\n      const node = nodes[i];\n      if (isString(node)) {\n        push(node, -3 /* Unknown */);\n      } else if (isArray(node)) {\n        genNodeListAsArray(node, context);\n      } else {\n        genNode(node, context);\n      }\n      if (i < nodes.length - 1) {\n        if (multilines) {\n          comma && push(\",\");\n          newline();\n        } else {\n          comma && push(\", \");\n        }\n      }\n    }\n  }\n  function genNode(node, context) {\n    if (isString(node)) {\n      context.push(node, -3 /* Unknown */);\n      return;\n    }\n    if (isSymbol(node)) {\n      context.push(context.helper(node));\n      return;\n    }\n    switch (node.type) {\n      case 1:\n      case 9:\n      case 11:\n        assert(\n          node.codegenNode != null,\n          `Codegen node is missing for element/if/for node. Apply appropriate transforms first.`\n        );\n        genNode(node.codegenNode, context);\n        break;\n      case 2:\n        genText(node, context);\n        break;\n      case 4:\n        genExpression(node, context);\n        break;\n      case 5:\n        genInterpolation(node, context);\n        break;\n      case 12:\n        genNode(node.codegenNode, context);\n        break;\n      case 8:\n        genCompoundExpression(node, context);\n        break;\n      case 3:\n        genComment(node, context);\n        break;\n      case 13:\n        genVNodeCall(node, context);\n        break;\n      case 14:\n        genCallExpression(node, context);\n        break;\n      case 15:\n        genObjectExpression(node, context);\n        break;\n      case 17:\n        genArrayExpression(node, context);\n        break;\n      case 18:\n        genFunctionExpression(node, context);\n        break;\n      case 19:\n        genConditionalExpression(node, context);\n        break;\n      case 20:\n        genCacheExpression(node, context);\n        break;\n      case 21:\n        genNodeList(node.body, context, true, false);\n        break;\n      // SSR only types\n      case 22:\n        break;\n      case 23:\n        break;\n      case 24:\n        break;\n      case 25:\n        break;\n      case 26:\n        break;\n      /* v8 ignore start */\n      case 10:\n        break;\n      default:\n        {\n          assert(false, `unhandled codegen node type: ${node.type}`);\n          const exhaustiveCheck = node;\n          return exhaustiveCheck;\n        }\n    }\n  }\n  function genText(node, context) {\n    context.push(JSON.stringify(node.content), -3 /* Unknown */, node);\n  }\n  function genExpression(node, context) {\n    const { content, isStatic } = node;\n    context.push(\n      isStatic ? JSON.stringify(content) : content,\n      -3 /* Unknown */,\n      node\n    );\n  }\n  function genInterpolation(node, context) {\n    const { push, helper, pure } = context;\n    if (pure) push(PURE_ANNOTATION);\n    push(`${helper(TO_DISPLAY_STRING)}(`);\n    genNode(node.content, context);\n    push(`)`);\n  }\n  function genCompoundExpression(node, context) {\n    for (let i = 0; i < node.children.length; i++) {\n      const child = node.children[i];\n      if (isString(child)) {\n        context.push(child, -3 /* Unknown */);\n      } else {\n        genNode(child, context);\n      }\n    }\n  }\n  function genExpressionAsPropertyKey(node, context) {\n    const { push } = context;\n    if (node.type === 8) {\n      push(`[`);\n      genCompoundExpression(node, context);\n      push(`]`);\n    } else if (node.isStatic) {\n      const text = isSimpleIdentifier(node.content) ? node.content : JSON.stringify(node.content);\n      push(text, -2 /* None */, node);\n    } else {\n      push(`[${node.content}]`, -3 /* Unknown */, node);\n    }\n  }\n  function genComment(node, context) {\n    const { push, helper, pure } = context;\n    if (pure) {\n      push(PURE_ANNOTATION);\n    }\n    push(\n      `${helper(CREATE_COMMENT)}(${JSON.stringify(node.content)})`,\n      -3 /* Unknown */,\n      node\n    );\n  }\n  function genVNodeCall(node, context) {\n    const { push, helper, pure } = context;\n    const {\n      tag,\n      props,\n      children,\n      patchFlag,\n      dynamicProps,\n      directives,\n      isBlock,\n      disableTracking,\n      isComponent\n    } = node;\n    let patchFlagString;\n    if (patchFlag) {\n      {\n        if (patchFlag < 0) {\n          patchFlagString = patchFlag + ` /* ${PatchFlagNames[patchFlag]} */`;\n        } else {\n          const flagNames = Object.keys(PatchFlagNames).map(Number).filter((n) => n > 0 && patchFlag & n).map((n) => PatchFlagNames[n]).join(`, `);\n          patchFlagString = patchFlag + ` /* ${flagNames} */`;\n        }\n      }\n    }\n    if (directives) {\n      push(helper(WITH_DIRECTIVES) + `(`);\n    }\n    if (isBlock) {\n      push(`(${helper(OPEN_BLOCK)}(${disableTracking ? `true` : ``}), `);\n    }\n    if (pure) {\n      push(PURE_ANNOTATION);\n    }\n    const callHelper = isBlock ? getVNodeBlockHelper(context.inSSR, isComponent) : getVNodeHelper(context.inSSR, isComponent);\n    push(helper(callHelper) + `(`, -2 /* None */, node);\n    genNodeList(\n      genNullableArgs([tag, props, children, patchFlagString, dynamicProps]),\n      context\n    );\n    push(`)`);\n    if (isBlock) {\n      push(`)`);\n    }\n    if (directives) {\n      push(`, `);\n      genNode(directives, context);\n      push(`)`);\n    }\n  }\n  function genNullableArgs(args) {\n    let i = args.length;\n    while (i--) {\n      if (args[i] != null) break;\n    }\n    return args.slice(0, i + 1).map((arg) => arg || `null`);\n  }\n  function genCallExpression(node, context) {\n    const { push, helper, pure } = context;\n    const callee = isString(node.callee) ? node.callee : helper(node.callee);\n    if (pure) {\n      push(PURE_ANNOTATION);\n    }\n    push(callee + `(`, -2 /* None */, node);\n    genNodeList(node.arguments, context);\n    push(`)`);\n  }\n  function genObjectExpression(node, context) {\n    const { push, indent, deindent, newline } = context;\n    const { properties } = node;\n    if (!properties.length) {\n      push(`{}`, -2 /* None */, node);\n      return;\n    }\n    const multilines = properties.length > 1 || properties.some((p) => p.value.type !== 4);\n    push(multilines ? `{` : `{ `);\n    multilines && indent();\n    for (let i = 0; i < properties.length; i++) {\n      const { key, value } = properties[i];\n      genExpressionAsPropertyKey(key, context);\n      push(`: `);\n      genNode(value, context);\n      if (i < properties.length - 1) {\n        push(`,`);\n        newline();\n      }\n    }\n    multilines && deindent();\n    push(multilines ? `}` : ` }`);\n  }\n  function genArrayExpression(node, context) {\n    genNodeListAsArray(node.elements, context);\n  }\n  function genFunctionExpression(node, context) {\n    const { push, indent, deindent } = context;\n    const { params, returns, body, newline, isSlot } = node;\n    if (isSlot) {\n      push(`_${helperNameMap[WITH_CTX]}(`);\n    }\n    push(`(`, -2 /* None */, node);\n    if (isArray(params)) {\n      genNodeList(params, context);\n    } else if (params) {\n      genNode(params, context);\n    }\n    push(`) => `);\n    if (newline || body) {\n      push(`{`);\n      indent();\n    }\n    if (returns) {\n      if (newline) {\n        push(`return `);\n      }\n      if (isArray(returns)) {\n        genNodeListAsArray(returns, context);\n      } else {\n        genNode(returns, context);\n      }\n    } else if (body) {\n      genNode(body, context);\n    }\n    if (newline || body) {\n      deindent();\n      push(`}`);\n    }\n    if (isSlot) {\n      if (node.isNonScopedSlot) {\n        push(`, undefined, true`);\n      }\n      push(`)`);\n    }\n  }\n  function genConditionalExpression(node, context) {\n    const { test, consequent, alternate, newline: needNewline } = node;\n    const { push, indent, deindent, newline } = context;\n    if (test.type === 4) {\n      const needsParens = !isSimpleIdentifier(test.content);\n      needsParens && push(`(`);\n      genExpression(test, context);\n      needsParens && push(`)`);\n    } else {\n      push(`(`);\n      genNode(test, context);\n      push(`)`);\n    }\n    needNewline && indent();\n    context.indentLevel++;\n    needNewline || push(` `);\n    push(`? `);\n    genNode(consequent, context);\n    context.indentLevel--;\n    needNewline && newline();\n    needNewline || push(` `);\n    push(`: `);\n    const isNested = alternate.type === 19;\n    if (!isNested) {\n      context.indentLevel++;\n    }\n    genNode(alternate, context);\n    if (!isNested) {\n      context.indentLevel--;\n    }\n    needNewline && deindent(\n      true\n      /* without newline */\n    );\n  }\n  function genCacheExpression(node, context) {\n    const { push, helper, indent, deindent, newline } = context;\n    const { needPauseTracking, needArraySpread } = node;\n    if (needArraySpread) {\n      push(`[...(`);\n    }\n    push(`_cache[${node.index}] || (`);\n    if (needPauseTracking) {\n      indent();\n      push(`${helper(SET_BLOCK_TRACKING)}(-1`);\n      if (node.inVOnce) push(`, true`);\n      push(`),`);\n      newline();\n      push(`(`);\n    }\n    push(`_cache[${node.index}] = `);\n    genNode(node.value, context);\n    if (needPauseTracking) {\n      push(`).cacheIndex = ${node.index},`);\n      newline();\n      push(`${helper(SET_BLOCK_TRACKING)}(1),`);\n      newline();\n      push(`_cache[${node.index}]`);\n      deindent();\n    }\n    push(`)`);\n    if (needArraySpread) {\n      push(`)]`);\n    }\n  }\n\n  const prohibitedKeywordRE = new RegExp(\n    \"\\\\b\" + \"arguments,await,break,case,catch,class,const,continue,debugger,default,delete,do,else,export,extends,finally,for,function,if,import,let,new,return,super,switch,throw,try,var,void,while,with,yield\".split(\",\").join(\"\\\\b|\\\\b\") + \"\\\\b\"\n  );\n  const stripStringRE = /'(?:[^'\\\\]|\\\\.)*'|\"(?:[^\"\\\\]|\\\\.)*\"|`(?:[^`\\\\]|\\\\.)*\\$\\{|\\}(?:[^`\\\\]|\\\\.)*`|`(?:[^`\\\\]|\\\\.)*`/g;\n  function validateBrowserExpression(node, context, asParams = false, asRawStatements = false) {\n    const exp = node.content;\n    if (!exp.trim()) {\n      return;\n    }\n    try {\n      new Function(\n        asRawStatements ? ` ${exp} ` : `return ${asParams ? `(${exp}) => {}` : `(${exp})`}`\n      );\n    } catch (e) {\n      let message = e.message;\n      const keywordMatch = exp.replace(stripStringRE, \"\").match(prohibitedKeywordRE);\n      if (keywordMatch) {\n        message = `avoid using JavaScript keyword as property name: \"${keywordMatch[0]}\"`;\n      }\n      context.onError(\n        createCompilerError(\n          46,\n          node.loc,\n          void 0,\n          message\n        )\n      );\n    }\n  }\n\n  const transformExpression = (node, context) => {\n    if (node.type === 5) {\n      node.content = processExpression(\n        node.content,\n        context\n      );\n    } else if (node.type === 1) {\n      const memo = findDir(node, \"memo\");\n      for (let i = 0; i < node.props.length; i++) {\n        const dir = node.props[i];\n        if (dir.type === 7 && dir.name !== \"for\") {\n          const exp = dir.exp;\n          const arg = dir.arg;\n          if (exp && exp.type === 4 && !(dir.name === \"on\" && arg) && // key has been processed in transformFor(vMemo + vFor)\n          !(memo && context.vForMemoKeyedNodes.has(node) && arg && arg.type === 4 && arg.content === \"key\")) {\n            dir.exp = processExpression(\n              exp,\n              context,\n              // slot args must be processed as function params\n              dir.name === \"slot\"\n            );\n          }\n          if (arg && arg.type === 4 && !arg.isStatic) {\n            dir.arg = processExpression(arg, context);\n          }\n        }\n      }\n    }\n  };\n  function processExpression(node, context, asParams = false, asRawStatements = false, localVars = Object.create(context.identifiers)) {\n    {\n      {\n        validateBrowserExpression(node, context, asParams, asRawStatements);\n      }\n      return node;\n    }\n  }\n  function stringifyExpression(exp) {\n    if (isString(exp)) {\n      return exp;\n    } else if (exp.type === 4) {\n      return exp.content;\n    } else {\n      return exp.children.map(stringifyExpression).join(\"\");\n    }\n  }\n\n  const transformIf = createStructuralDirectiveTransform(\n    /^(?:if|else|else-if)$/,\n    (node, dir, context) => {\n      return processIf(node, dir, context, (ifNode, branch, isRoot) => {\n        const siblings = context.parent.children;\n        let i = siblings.indexOf(ifNode);\n        let key = 0;\n        while (i-- >= 0) {\n          const sibling = siblings[i];\n          if (sibling && sibling.type === 9) {\n            key += sibling.branches.length;\n          }\n        }\n        return () => {\n          if (isRoot) {\n            ifNode.codegenNode = createCodegenNodeForBranch(\n              branch,\n              key,\n              context\n            );\n          } else {\n            const parentCondition = getParentCondition(ifNode.codegenNode);\n            parentCondition.alternate = createCodegenNodeForBranch(\n              branch,\n              key + ifNode.branches.length - 1,\n              context\n            );\n          }\n        };\n      });\n    }\n  );\n  function processIf(node, dir, context, processCodegen) {\n    if (dir.name !== \"else\" && (!dir.exp || !dir.exp.content.trim())) {\n      const loc = dir.exp ? dir.exp.loc : node.loc;\n      context.onError(\n        createCompilerError(28, dir.loc)\n      );\n      dir.exp = createSimpleExpression(`true`, false, loc);\n    }\n    if (dir.exp) {\n      validateBrowserExpression(dir.exp, context);\n    }\n    if (dir.name === \"if\") {\n      const branch = createIfBranch(node, dir);\n      const ifNode = {\n        type: 9,\n        loc: cloneLoc(node.loc),\n        branches: [branch]\n      };\n      context.replaceNode(ifNode);\n      if (processCodegen) {\n        return processCodegen(ifNode, branch, true);\n      }\n    } else {\n      const siblings = context.parent.children;\n      const comments = [];\n      let i = siblings.indexOf(node);\n      while (i-- >= -1) {\n        const sibling = siblings[i];\n        if (sibling && isCommentOrWhitespace(sibling)) {\n          context.removeNode(sibling);\n          if (sibling.type === 3) {\n            comments.unshift(sibling);\n          }\n          continue;\n        }\n        if (sibling && sibling.type === 9) {\n          if ((dir.name === \"else-if\" || dir.name === \"else\") && sibling.branches[sibling.branches.length - 1].condition === void 0) {\n            context.onError(\n              createCompilerError(30, node.loc)\n            );\n          }\n          context.removeNode();\n          const branch = createIfBranch(node, dir);\n          if (comments.length && // #3619 ignore comments if the v-if is direct child of <transition>\n          !(context.parent && context.parent.type === 1 && (context.parent.tag === \"transition\" || context.parent.tag === \"Transition\"))) {\n            branch.children = [...comments, ...branch.children];\n          }\n          {\n            const key = branch.userKey;\n            if (key) {\n              sibling.branches.forEach(({ userKey }) => {\n                if (isSameKey(userKey, key)) {\n                  context.onError(\n                    createCompilerError(\n                      29,\n                      branch.userKey.loc\n                    )\n                  );\n                }\n              });\n            }\n          }\n          sibling.branches.push(branch);\n          const onExit = processCodegen && processCodegen(sibling, branch, false);\n          traverseNode(branch, context);\n          if (onExit) onExit();\n          context.currentNode = null;\n        } else {\n          context.onError(\n            createCompilerError(30, node.loc)\n          );\n        }\n        break;\n      }\n    }\n  }\n  function createIfBranch(node, dir) {\n    const isTemplateIf = node.tagType === 3;\n    return {\n      type: 10,\n      loc: node.loc,\n      condition: dir.name === \"else\" ? void 0 : dir.exp,\n      children: isTemplateIf && !findDir(node, \"for\") ? node.children : [node],\n      userKey: findProp(node, `key`),\n      isTemplateIf\n    };\n  }\n  function createCodegenNodeForBranch(branch, keyIndex, context) {\n    if (branch.condition) {\n      return createConditionalExpression(\n        branch.condition,\n        createChildrenCodegenNode(branch, keyIndex, context),\n        // make sure to pass in asBlock: true so that the comment node call\n        // closes the current block.\n        createCallExpression(context.helper(CREATE_COMMENT), [\n          '\"v-if\"' ,\n          \"true\"\n        ])\n      );\n    } else {\n      return createChildrenCodegenNode(branch, keyIndex, context);\n    }\n  }\n  function createChildrenCodegenNode(branch, keyIndex, context) {\n    const { helper } = context;\n    const keyProperty = createObjectProperty(\n      `key`,\n      createSimpleExpression(\n        `${keyIndex}`,\n        false,\n        locStub,\n        2\n      )\n    );\n    const { children } = branch;\n    const firstChild = children[0];\n    const needFragmentWrapper = children.length !== 1 || firstChild.type !== 1;\n    if (needFragmentWrapper) {\n      if (children.length === 1 && firstChild.type === 11) {\n        const vnodeCall = firstChild.codegenNode;\n        injectProp(vnodeCall, keyProperty, context);\n        return vnodeCall;\n      } else {\n        let patchFlag = 64;\n        if (!branch.isTemplateIf && children.filter((c) => c.type !== 3).length === 1) {\n          patchFlag |= 2048;\n        }\n        return createVNodeCall(\n          context,\n          helper(FRAGMENT),\n          createObjectExpression([keyProperty]),\n          children,\n          patchFlag,\n          void 0,\n          void 0,\n          true,\n          false,\n          false,\n          branch.loc\n        );\n      }\n    } else {\n      const ret = firstChild.codegenNode;\n      const vnodeCall = getMemoedVNodeCall(ret);\n      if (vnodeCall.type === 13) {\n        convertToBlock(vnodeCall, context);\n      }\n      injectProp(vnodeCall, keyProperty, context);\n      return ret;\n    }\n  }\n  function isSameKey(a, b) {\n    if (!a || a.type !== b.type) {\n      return false;\n    }\n    if (a.type === 6) {\n      if (a.value.content !== b.value.content) {\n        return false;\n      }\n    } else {\n      const exp = a.exp;\n      const branchExp = b.exp;\n      if (exp.type !== branchExp.type) {\n        return false;\n      }\n      if (exp.type !== 4 || exp.isStatic !== branchExp.isStatic || exp.content !== branchExp.content) {\n        return false;\n      }\n    }\n    return true;\n  }\n  function getParentCondition(node) {\n    while (true) {\n      if (node.type === 19) {\n        if (node.alternate.type === 19) {\n          node = node.alternate;\n        } else {\n          return node;\n        }\n      } else if (node.type === 20) {\n        node = node.value;\n      }\n    }\n  }\n\n  const transformFor = createStructuralDirectiveTransform(\n    \"for\",\n    (node, dir, context) => {\n      const { helper, removeHelper } = context;\n      return processFor(node, dir, context, (forNode) => {\n        const renderExp = createCallExpression(helper(RENDER_LIST), [\n          forNode.source\n        ]);\n        const isTemplate = isTemplateNode(node);\n        const memo = findDir(node, \"memo\");\n        const keyProp = findProp(node, `key`, false, true);\n        keyProp && keyProp.type === 7;\n        let keyExp = keyProp && (keyProp.type === 6 ? keyProp.value ? createSimpleExpression(keyProp.value.content, true) : void 0 : keyProp.exp);\n        const keyProperty = keyExp ? createObjectProperty(`key`, keyExp) : null;\n        const isStableFragment = forNode.source.type === 4 && forNode.source.constType > 0;\n        const fragmentFlag = isStableFragment ? 64 : keyProp ? 128 : 256;\n        forNode.codegenNode = createVNodeCall(\n          context,\n          helper(FRAGMENT),\n          void 0,\n          renderExp,\n          fragmentFlag,\n          void 0,\n          void 0,\n          true,\n          !isStableFragment,\n          false,\n          node.loc\n        );\n        return () => {\n          var _a;\n          let childBlock;\n          const { children } = forNode;\n          if (isTemplate) {\n            node.children.some((c) => {\n              if (c.type === 1) {\n                const key = findProp(c, \"key\");\n                if (key) {\n                  context.onError(\n                    createCompilerError(\n                      33,\n                      key.loc\n                    )\n                  );\n                  return true;\n                }\n              }\n            });\n          }\n          const needFragmentWrapper = children.length !== 1 || children[0].type !== 1;\n          const slotOutlet = isSlotOutlet(node) ? node : isTemplate && node.children.length === 1 && isSlotOutlet(node.children[0]) ? node.children[0] : null;\n          if (slotOutlet) {\n            childBlock = slotOutlet.codegenNode;\n            if (isTemplate && keyProperty) {\n              injectProp(childBlock, keyProperty, context);\n            }\n          } else if (needFragmentWrapper) {\n            childBlock = createVNodeCall(\n              context,\n              helper(FRAGMENT),\n              keyProperty ? createObjectExpression([keyProperty]) : void 0,\n              node.children,\n              64,\n              void 0,\n              void 0,\n              true,\n              void 0,\n              false\n            );\n          } else {\n            childBlock = children[0].codegenNode;\n            if (isTemplate && keyProperty) {\n              injectProp(childBlock, keyProperty, context);\n            }\n            const shouldUseBlock = !isStableFragment || childBlock.isBlockRequired === true;\n            if (childBlock.isBlock !== shouldUseBlock) {\n              if (childBlock.isBlock) {\n                removeHelper(OPEN_BLOCK);\n                removeHelper(\n                  getVNodeBlockHelper(context.inSSR, childBlock.isComponent)\n                );\n              } else {\n                removeHelper(\n                  getVNodeHelper(context.inSSR, childBlock.isComponent)\n                );\n              }\n            }\n            childBlock.isBlock = shouldUseBlock;\n            if (childBlock.isBlock) {\n              helper(OPEN_BLOCK);\n              helper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent));\n            } else {\n              helper(getVNodeHelper(context.inSSR, childBlock.isComponent));\n              if (childBlock.needsPatch) {\n                childBlock.patchFlag = ((_a = childBlock.patchFlag) != null ? _a : 0) | 512;\n              }\n            }\n          }\n          if (memo) {\n            const loop = createFunctionExpression(\n              createForLoopParams(forNode.parseResult, [\n                createSimpleExpression(`_cached`)\n              ])\n            );\n            loop.body = createBlockStatement([\n              createCompoundExpression([`const _memo = (`, memo.exp, `)`]),\n              createCompoundExpression([\n                `if (_cached && _cached.el`,\n                ...keyExp ? [` && _cached.key === `, keyExp] : [],\n                ` && ${context.helperString(\n                IS_MEMO_SAME\n              )}(_cached, _memo)) return _cached`\n              ]),\n              createCompoundExpression([`const _item = `, childBlock]),\n              createSimpleExpression(`_item.memo = _memo`),\n              createSimpleExpression(`return _item`)\n            ]);\n            renderExp.arguments.push(\n              loop,\n              createSimpleExpression(`_cache`),\n              createSimpleExpression(String(context.cached.length))\n            );\n            context.cached.push(null);\n          } else {\n            renderExp.arguments.push(\n              createFunctionExpression(\n                createForLoopParams(forNode.parseResult),\n                childBlock,\n                true\n              )\n            );\n          }\n        };\n      });\n    }\n  );\n  function processFor(node, dir, context, processCodegen) {\n    if (!dir.exp) {\n      context.onError(\n        createCompilerError(31, dir.loc)\n      );\n      return;\n    }\n    const parseResult = dir.forParseResult;\n    if (!parseResult) {\n      context.onError(\n        createCompilerError(32, dir.loc)\n      );\n      return;\n    }\n    finalizeForParseResult(parseResult, context);\n    const { addIdentifiers, removeIdentifiers, scopes } = context;\n    const { source, value, key, index } = parseResult;\n    const forNode = {\n      type: 11,\n      loc: dir.loc,\n      source,\n      valueAlias: value,\n      keyAlias: key,\n      objectIndexAlias: index,\n      parseResult,\n      children: isTemplateNode(node) ? node.children : [node]\n    };\n    context.replaceNode(forNode);\n    scopes.vFor++;\n    const onExit = processCodegen && processCodegen(forNode);\n    return () => {\n      scopes.vFor--;\n      if (onExit) onExit();\n    };\n  }\n  function finalizeForParseResult(result, context) {\n    if (result.finalized) return;\n    {\n      validateBrowserExpression(result.source, context);\n      if (result.key) {\n        validateBrowserExpression(\n          result.key,\n          context,\n          true\n        );\n      }\n      if (result.index) {\n        validateBrowserExpression(\n          result.index,\n          context,\n          true\n        );\n      }\n      if (result.value) {\n        validateBrowserExpression(\n          result.value,\n          context,\n          true\n        );\n      }\n    }\n    result.finalized = true;\n  }\n  function createForLoopParams({ value, key, index }, memoArgs = []) {\n    return createParamsList([value, key, index, ...memoArgs]);\n  }\n  function createParamsList(args) {\n    let i = args.length;\n    while (i--) {\n      if (args[i]) break;\n    }\n    return args.slice(0, i + 1).map((arg, i2) => arg || createSimpleExpression(`_`.repeat(i2 + 1), false));\n  }\n\n  const defaultFallback = createSimpleExpression(`undefined`, false);\n  const trackSlotScopes = (node, context) => {\n    if (node.type === 1 && (node.tagType === 1 || node.tagType === 3)) {\n      const vSlot = findDir(node, \"slot\");\n      if (vSlot) {\n        vSlot.exp;\n        context.scopes.vSlot++;\n        return () => {\n          context.scopes.vSlot--;\n        };\n      }\n    }\n  };\n  const trackVForSlotScopes = (node, context) => {\n    let vFor;\n    if (isTemplateNode(node) && node.props.some(isVSlot) && (vFor = findDir(node, \"for\"))) {\n      const result = vFor.forParseResult;\n      if (result) {\n        finalizeForParseResult(result, context);\n        const { value, key, index } = result;\n        const { addIdentifiers, removeIdentifiers } = context;\n        value && addIdentifiers(value);\n        key && addIdentifiers(key);\n        index && addIdentifiers(index);\n        return () => {\n          value && removeIdentifiers(value);\n          key && removeIdentifiers(key);\n          index && removeIdentifiers(index);\n        };\n      }\n    }\n  };\n  const buildClientSlotFn = (props, _vForExp, children, loc) => createFunctionExpression(\n    props,\n    children,\n    false,\n    true,\n    children.length ? children[0].loc : loc\n  );\n  function buildSlots(node, context, buildSlotFn = buildClientSlotFn) {\n    context.helper(WITH_CTX);\n    const { children, loc } = node;\n    const slotsProperties = [];\n    const dynamicSlots = [];\n    let hasDynamicSlots = context.scopes.vSlot > 0 || context.scopes.vFor > 0;\n    const onComponentSlot = findDir(node, \"slot\", true);\n    if (onComponentSlot) {\n      const { arg, exp } = onComponentSlot;\n      if (arg && !isStaticExp(arg)) {\n        hasDynamicSlots = true;\n      }\n      slotsProperties.push(\n        createObjectProperty(\n          arg || createSimpleExpression(\"default\", true),\n          buildSlotFn(exp, void 0, children, loc)\n        )\n      );\n    }\n    let hasTemplateSlots = false;\n    let hasNamedDefaultSlot = false;\n    const implicitDefaultChildren = [];\n    const seenSlotNames = /* @__PURE__ */ new Set();\n    let conditionalBranchIndex = 0;\n    for (let i = 0; i < children.length; i++) {\n      const slotElement = children[i];\n      let slotDir;\n      if (!isTemplateNode(slotElement) || !(slotDir = findDir(slotElement, \"slot\", true))) {\n        if (slotElement.type !== 3) {\n          implicitDefaultChildren.push(slotElement);\n        }\n        continue;\n      }\n      if (onComponentSlot) {\n        context.onError(\n          createCompilerError(37, slotDir.loc)\n        );\n        break;\n      }\n      hasTemplateSlots = true;\n      const { children: slotChildren, loc: slotLoc } = slotElement;\n      const {\n        arg: slotName = createSimpleExpression(`default`, true),\n        exp: slotProps,\n        loc: dirLoc\n      } = slotDir;\n      let staticSlotName;\n      if (isStaticExp(slotName)) {\n        staticSlotName = slotName ? slotName.content : `default`;\n      } else {\n        hasDynamicSlots = true;\n      }\n      const vFor = findDir(slotElement, \"for\");\n      const slotFunction = buildSlotFn(slotProps, vFor, slotChildren, slotLoc);\n      let vIf;\n      let vElse;\n      if (vIf = findDir(slotElement, \"if\")) {\n        hasDynamicSlots = true;\n        dynamicSlots.push(\n          createConditionalExpression(\n            vIf.exp,\n            buildDynamicSlot(slotName, slotFunction, conditionalBranchIndex++),\n            defaultFallback\n          )\n        );\n      } else if (vElse = findDir(\n        slotElement,\n        /^else(?:-if)?$/,\n        true\n        /* allowEmpty */\n      )) {\n        let j = i;\n        let prev;\n        while (j--) {\n          prev = children[j];\n          if (!isCommentOrWhitespace(prev)) {\n            break;\n          }\n        }\n        if (prev && isTemplateNode(prev) && findDir(prev, /^(?:else-)?if$/)) {\n          let conditional = dynamicSlots[dynamicSlots.length - 1];\n          while (conditional.alternate.type === 19) {\n            conditional = conditional.alternate;\n          }\n          conditional.alternate = vElse.exp ? createConditionalExpression(\n            vElse.exp,\n            buildDynamicSlot(\n              slotName,\n              slotFunction,\n              conditionalBranchIndex++\n            ),\n            defaultFallback\n          ) : buildDynamicSlot(slotName, slotFunction, conditionalBranchIndex++);\n        } else {\n          context.onError(\n            createCompilerError(30, vElse.loc)\n          );\n        }\n      } else if (vFor) {\n        hasDynamicSlots = true;\n        const parseResult = vFor.forParseResult;\n        if (parseResult) {\n          finalizeForParseResult(parseResult, context);\n          dynamicSlots.push(\n            createCallExpression(context.helper(RENDER_LIST), [\n              parseResult.source,\n              createFunctionExpression(\n                createForLoopParams(parseResult),\n                buildDynamicSlot(slotName, slotFunction),\n                true\n              )\n            ])\n          );\n        } else {\n          context.onError(\n            createCompilerError(\n              32,\n              vFor.loc\n            )\n          );\n        }\n      } else {\n        if (staticSlotName) {\n          if (seenSlotNames.has(staticSlotName)) {\n            context.onError(\n              createCompilerError(\n                38,\n                dirLoc\n              )\n            );\n            continue;\n          }\n          seenSlotNames.add(staticSlotName);\n          if (staticSlotName === \"default\") {\n            hasNamedDefaultSlot = true;\n          }\n        }\n        slotsProperties.push(createObjectProperty(slotName, slotFunction));\n      }\n    }\n    if (!onComponentSlot) {\n      const buildDefaultSlotProperty = (props, children2) => {\n        const fn = buildSlotFn(props, void 0, children2, loc);\n        if (context.compatConfig) {\n          fn.isNonScopedSlot = true;\n        }\n        return createObjectProperty(`default`, fn);\n      };\n      if (!hasTemplateSlots) {\n        slotsProperties.push(buildDefaultSlotProperty(void 0, children));\n      } else if (implicitDefaultChildren.length && // #3766\n      // with whitespace: 'preserve', whitespaces between slots will end up in\n      // implicitDefaultChildren. Ignore if all implicit children are whitespaces.\n      !implicitDefaultChildren.every(isWhitespaceText)) {\n        if (hasNamedDefaultSlot) {\n          context.onError(\n            createCompilerError(\n              39,\n              implicitDefaultChildren[0].loc\n            )\n          );\n        } else {\n          slotsProperties.push(\n            buildDefaultSlotProperty(void 0, implicitDefaultChildren)\n          );\n        }\n      }\n    }\n    const slotFlag = hasDynamicSlots ? 2 : hasForwardedSlots(node.children) ? 3 : 1;\n    let slots = createObjectExpression(\n      slotsProperties.concat(\n        createObjectProperty(\n          `_`,\n          // 2 = compiled but dynamic = can skip normalization, but must run diff\n          // 1 = compiled and static = can skip normalization AND diff as optimized\n          createSimpleExpression(\n            slotFlag + (` /* ${slotFlagsText[slotFlag]} */` ),\n            false\n          )\n        )\n      ),\n      loc\n    );\n    if (dynamicSlots.length) {\n      slots = createCallExpression(context.helper(CREATE_SLOTS), [\n        slots,\n        createArrayExpression(dynamicSlots)\n      ]);\n    }\n    return {\n      slots,\n      hasDynamicSlots\n    };\n  }\n  function buildDynamicSlot(name, fn, index) {\n    const props = [\n      createObjectProperty(`name`, name),\n      createObjectProperty(`fn`, fn)\n    ];\n    if (index != null) {\n      props.push(\n        createObjectProperty(`key`, createSimpleExpression(String(index), true))\n      );\n    }\n    return createObjectExpression(props);\n  }\n  function hasForwardedSlots(children) {\n    for (let i = 0; i < children.length; i++) {\n      const child = children[i];\n      switch (child.type) {\n        case 1:\n          if (child.tagType === 2 || hasForwardedSlots(child.children)) {\n            return true;\n          }\n          break;\n        case 9:\n          if (hasForwardedSlots(child.branches)) return true;\n          break;\n        case 10:\n        case 11:\n          if (hasForwardedSlots(child.children)) return true;\n          break;\n      }\n    }\n    return false;\n  }\n\n  const directiveImportMap = /* @__PURE__ */ new WeakMap();\n  const transformElement = (node, context) => {\n    return function postTransformElement() {\n      node = context.currentNode;\n      if (!(node.type === 1 && (node.tagType === 0 || node.tagType === 1))) {\n        return;\n      }\n      const { tag, props } = node;\n      const isComponent = node.tagType === 1;\n      let vnodeTag = isComponent ? resolveComponentType(node, context) : `\"${tag}\"`;\n      const isDynamicComponent = isObject(vnodeTag) && vnodeTag.callee === RESOLVE_DYNAMIC_COMPONENT;\n      let vnodeProps;\n      let vnodeChildren;\n      let patchFlag = 0;\n      let vnodeDynamicProps;\n      let dynamicPropNames;\n      let vnodeDirectives;\n      let needsPatch = false;\n      let isBlockRequired = false;\n      let shouldUseBlock = (\n        // dynamic component may resolve to plain elements\n        isDynamicComponent || vnodeTag === TELEPORT || vnodeTag === SUSPENSE || !isComponent && // <svg> and <foreignObject> must be forced into blocks so that block\n        // updates inside get proper isSVG flag at runtime. (#639, #643)\n        // This is technically web-specific, but splitting the logic out of core\n        // leads to too much unnecessary complexity.\n        (tag === \"svg\" || tag === \"foreignObject\" || tag === \"math\")\n      );\n      if (props.length > 0) {\n        const propsBuildResult = buildProps(\n          node,\n          context,\n          void 0,\n          isComponent,\n          isDynamicComponent\n        );\n        vnodeProps = propsBuildResult.props;\n        patchFlag = propsBuildResult.patchFlag;\n        dynamicPropNames = propsBuildResult.dynamicPropNames;\n        needsPatch = propsBuildResult.needsPatch;\n        isBlockRequired = propsBuildResult.isBlockRequired;\n        const directives = propsBuildResult.directives;\n        vnodeDirectives = directives && directives.length ? createArrayExpression(\n          directives.map((dir) => buildDirectiveArgs(dir, context))\n        ) : void 0;\n        if (propsBuildResult.shouldUseBlock) {\n          shouldUseBlock = true;\n        }\n      }\n      if (node.children.length > 0) {\n        if (vnodeTag === KEEP_ALIVE) {\n          shouldUseBlock = true;\n          patchFlag |= 1024;\n          if (node.children.length > 1) {\n            context.onError(\n              createCompilerError(47, {\n                start: node.children[0].loc.start,\n                end: node.children[node.children.length - 1].loc.end,\n                source: \"\"\n              })\n            );\n          }\n        }\n        const shouldBuildAsSlots = isComponent && // Teleport is not a real component and has dedicated runtime handling\n        vnodeTag !== TELEPORT && // explained above.\n        vnodeTag !== KEEP_ALIVE;\n        if (shouldBuildAsSlots) {\n          const { slots, hasDynamicSlots } = buildSlots(node, context);\n          vnodeChildren = slots;\n          if (hasDynamicSlots) {\n            patchFlag |= 1024;\n          }\n        } else if (node.children.length === 1 && vnodeTag !== TELEPORT) {\n          const child = node.children[0];\n          const type = child.type;\n          const hasDynamicTextChild = type === 5 || type === 8;\n          if (hasDynamicTextChild && getConstantType(child, context) === 0) {\n            patchFlag |= 1;\n          }\n          if (hasDynamicTextChild || type === 2) {\n            vnodeChildren = child;\n          } else {\n            vnodeChildren = node.children;\n          }\n        } else {\n          vnodeChildren = node.children;\n        }\n      }\n      if (dynamicPropNames && dynamicPropNames.length) {\n        vnodeDynamicProps = stringifyDynamicPropNames(dynamicPropNames);\n      }\n      const vnodeCall = node.codegenNode = createVNodeCall(\n        context,\n        vnodeTag,\n        vnodeProps,\n        vnodeChildren,\n        patchFlag === 0 ? void 0 : patchFlag,\n        vnodeDynamicProps,\n        vnodeDirectives,\n        !!shouldUseBlock,\n        false,\n        isComponent,\n        node.loc\n      );\n      needsPatch = needsPatch && (patchFlag === 0 || patchFlag === 32);\n      if (needsPatch) {\n        vnodeCall.needsPatch = true;\n      }\n      if (isBlockRequired) {\n        vnodeCall.isBlockRequired = true;\n      }\n    };\n  };\n  function resolveComponentType(node, context, ssr = false) {\n    let { tag } = node;\n    const isExplicitDynamic = isComponentTag(tag);\n    const isProp = findProp(\n      node,\n      \"is\",\n      false,\n      true\n      /* allow empty */\n    );\n    if (isProp) {\n      if (isExplicitDynamic || isCompatEnabled(\n        \"COMPILER_IS_ON_ELEMENT\",\n        context\n      )) {\n        let exp;\n        if (isProp.type === 6) {\n          exp = isProp.value && createSimpleExpression(isProp.value.content, true);\n        } else {\n          exp = isProp.exp;\n          if (!exp) {\n            exp = createSimpleExpression(`is`, false, isProp.arg.loc);\n          }\n        }\n        if (exp) {\n          return createCallExpression(context.helper(RESOLVE_DYNAMIC_COMPONENT), [\n            exp\n          ]);\n        }\n      } else if (isProp.type === 6 && isProp.value.content.startsWith(\"vue:\")) {\n        tag = isProp.value.content.slice(4);\n      }\n    }\n    const builtIn = isCoreComponent(tag) || context.isBuiltInComponent(tag);\n    if (builtIn) {\n      if (!ssr) context.helper(builtIn);\n      return builtIn;\n    }\n    context.helper(RESOLVE_COMPONENT);\n    context.components.add(tag);\n    return toValidAssetId(tag, `component`);\n  }\n  function buildProps(node, context, props = node.props, isComponent, isDynamicComponent, ssr = false) {\n    const { tag, loc: elementLoc, children } = node;\n    let properties = [];\n    const mergeArgs = [];\n    const runtimeDirectives = [];\n    const hasChildren = children.length > 0;\n    let shouldUseBlock = false;\n    let isBlockRequired = false;\n    let patchFlag = 0;\n    let hasRef = false;\n    let hasClassBinding = false;\n    let hasStyleBinding = false;\n    let hasHydrationEventBinding = false;\n    let hasDynamicKeys = false;\n    let hasVnodeHook = false;\n    const dynamicPropNames = [];\n    const pushMergeArg = (arg) => {\n      if (properties.length) {\n        mergeArgs.push(\n          createObjectExpression(dedupeProperties(properties), elementLoc)\n        );\n        properties = [];\n      }\n      if (arg) mergeArgs.push(arg);\n    };\n    const pushRefVForMarker = () => {\n      if (context.scopes.vFor > 0) {\n        properties.push(\n          createObjectProperty(\n            createSimpleExpression(\"ref_for\", true),\n            createSimpleExpression(\"true\")\n          )\n        );\n      }\n    };\n    const analyzePatchFlag = ({ key, value }) => {\n      if (isStaticExp(key)) {\n        const name = key.content;\n        const isEventHandler = isOn(name);\n        if (isEventHandler && (!isComponent || isDynamicComponent) && // omit the flag for click handlers because hydration gives click\n        // dedicated fast path.\n        name.toLowerCase() !== \"onclick\" && // omit v-model handlers\n        name !== \"onUpdate:modelValue\" && // omit onVnodeXXX hooks\n        !isReservedProp(name)) {\n          hasHydrationEventBinding = true;\n        }\n        if (isEventHandler && isReservedProp(name)) {\n          hasVnodeHook = true;\n        }\n        if (name === \"ref\") {\n          hasRef = true;\n        }\n        if (isEventHandler && value.type === 14) {\n          value = value.arguments[0];\n        }\n        if (value.type === 20 || (value.type === 4 || value.type === 8) && getConstantType(value, context) > 0) {\n          return;\n        }\n        if (name === \"class\") {\n          hasClassBinding = true;\n        } else if (name === \"style\") {\n          hasStyleBinding = true;\n        } else if (name !== \"ref\" && name !== \"key\" && !dynamicPropNames.includes(name)) {\n          dynamicPropNames.push(name);\n        }\n        if (isComponent && (name === \"class\" || name === \"style\") && !dynamicPropNames.includes(name)) {\n          dynamicPropNames.push(name);\n        }\n      } else {\n        hasDynamicKeys = true;\n      }\n    };\n    for (let i = 0; i < props.length; i++) {\n      const prop = props[i];\n      if (prop.type === 6) {\n        const { loc, name, nameLoc, value } = prop;\n        let isStatic = true;\n        if (name === \"ref\") {\n          hasRef = true;\n          pushRefVForMarker();\n        }\n        if (name === \"is\" && (isComponentTag(tag) || value && value.content.startsWith(\"vue:\") || isCompatEnabled(\n          \"COMPILER_IS_ON_ELEMENT\",\n          context\n        ))) {\n          continue;\n        }\n        properties.push(\n          createObjectProperty(\n            createSimpleExpression(name, true, nameLoc),\n            createSimpleExpression(\n              value ? value.content : \"\",\n              isStatic,\n              value ? value.loc : loc\n            )\n          )\n        );\n      } else {\n        const { name, arg, exp, loc, modifiers } = prop;\n        const isVBind = name === \"bind\";\n        const isVOn = name === \"on\";\n        if (name === \"slot\") {\n          if (!isComponent) {\n            context.onError(\n              createCompilerError(40, loc)\n            );\n          }\n          continue;\n        }\n        if (name === \"once\" || name === \"memo\") {\n          continue;\n        }\n        if (name === \"is\" || isVBind && isStaticArgOf(arg, \"is\") && (isComponentTag(tag) || isCompatEnabled(\n          \"COMPILER_IS_ON_ELEMENT\",\n          context\n        ))) {\n          continue;\n        }\n        if (isVOn && ssr) {\n          continue;\n        }\n        if (isVBind && isStaticArgOf(arg, \"key\")) {\n          shouldUseBlock = true;\n        }\n        if (isVOn && hasChildren && arg && isStaticExp(arg) && camelize(arg.content) === \"vue:beforeUpdate\") {\n          shouldUseBlock = true;\n          isBlockRequired = true;\n        }\n        if (isVBind && isStaticArgOf(arg, \"ref\")) {\n          pushRefVForMarker();\n        }\n        if (!arg && (isVBind || isVOn)) {\n          hasDynamicKeys = true;\n          if (exp) {\n            if (isVBind) {\n              {\n                pushMergeArg();\n                {\n                  const hasOverridableKeys = mergeArgs.some((arg2) => {\n                    if (arg2.type === 15) {\n                      return arg2.properties.some(({ key }) => {\n                        if (key.type !== 4 || !key.isStatic) {\n                          return true;\n                        }\n                        return key.content !== \"class\" && key.content !== \"style\" && !isOn(key.content);\n                      });\n                    } else {\n                      return true;\n                    }\n                  });\n                  if (hasOverridableKeys) {\n                    checkCompatEnabled(\n                      \"COMPILER_V_BIND_OBJECT_ORDER\",\n                      context,\n                      loc\n                    );\n                  }\n                }\n                if (isCompatEnabled(\n                  \"COMPILER_V_BIND_OBJECT_ORDER\",\n                  context\n                )) {\n                  mergeArgs.unshift(exp);\n                  continue;\n                }\n              }\n              pushRefVForMarker();\n              pushMergeArg();\n              mergeArgs.push(exp);\n            } else {\n              pushMergeArg({\n                type: 14,\n                loc,\n                callee: context.helper(TO_HANDLERS),\n                arguments: isComponent ? [exp] : [exp, `true`]\n              });\n            }\n          } else {\n            context.onError(\n              createCompilerError(\n                isVBind ? 34 : 35,\n                loc\n              )\n            );\n          }\n          continue;\n        }\n        if (isVBind && modifiers.some((mod) => mod.content === \"prop\")) {\n          patchFlag |= 32;\n        }\n        const directiveTransform = context.directiveTransforms[name];\n        if (directiveTransform) {\n          const { props: props2, needRuntime } = directiveTransform(prop, node, context);\n          !ssr && props2.forEach(analyzePatchFlag);\n          if (isVOn && arg && !isStaticExp(arg)) {\n            pushMergeArg(createObjectExpression(props2, elementLoc));\n          } else {\n            properties.push(...props2);\n          }\n          if (needRuntime) {\n            runtimeDirectives.push(prop);\n            if (isSymbol(needRuntime)) {\n              directiveImportMap.set(prop, needRuntime);\n            }\n          }\n        } else if (!isBuiltInDirective(name)) {\n          runtimeDirectives.push(prop);\n          if (hasChildren) {\n            shouldUseBlock = true;\n            isBlockRequired = true;\n          }\n        }\n      }\n    }\n    let propsExpression = void 0;\n    if (mergeArgs.length) {\n      pushMergeArg();\n      if (mergeArgs.length > 1) {\n        propsExpression = createCallExpression(\n          context.helper(MERGE_PROPS),\n          mergeArgs,\n          elementLoc\n        );\n      } else {\n        propsExpression = mergeArgs[0];\n      }\n    } else if (properties.length) {\n      propsExpression = createObjectExpression(\n        dedupeProperties(properties),\n        elementLoc\n      );\n    }\n    if (hasDynamicKeys) {\n      patchFlag |= 16;\n    } else {\n      if (hasClassBinding && !isComponent) {\n        patchFlag |= 2;\n      }\n      if (hasStyleBinding && !isComponent) {\n        patchFlag |= 4;\n      }\n      if (dynamicPropNames.length) {\n        patchFlag |= 8;\n      }\n      if (hasHydrationEventBinding) {\n        patchFlag |= 32;\n      }\n    }\n    const needsPatch = (patchFlag === 0 || patchFlag === 32) && (hasRef || hasVnodeHook || runtimeDirectives.length > 0);\n    if (!shouldUseBlock && needsPatch) {\n      patchFlag |= 512;\n    }\n    if (!context.inSSR && propsExpression) {\n      switch (propsExpression.type) {\n        case 15:\n          let classKeyIndex = -1;\n          let styleKeyIndex = -1;\n          let hasDynamicKey = false;\n          for (let i = 0; i < propsExpression.properties.length; i++) {\n            const key = propsExpression.properties[i].key;\n            if (isStaticExp(key)) {\n              if (key.content === \"class\") {\n                classKeyIndex = i;\n              } else if (key.content === \"style\") {\n                styleKeyIndex = i;\n              }\n            } else if (!key.isHandlerKey) {\n              hasDynamicKey = true;\n            }\n          }\n          const classProp = propsExpression.properties[classKeyIndex];\n          const styleProp = propsExpression.properties[styleKeyIndex];\n          if (!hasDynamicKey) {\n            if (classProp && !isStaticExp(classProp.value)) {\n              classProp.value = createCallExpression(\n                context.helper(NORMALIZE_CLASS),\n                [classProp.value]\n              );\n            }\n            if (styleProp && // the static style is compiled into an object,\n            // so use `hasStyleBinding` to ensure that it is a dynamic style binding\n            (hasStyleBinding || styleProp.value.type === 4 && styleProp.value.content.trim()[0] === `[` || // v-bind:style and style both exist,\n            // v-bind:style with static literal object\n            styleProp.value.type === 17)) {\n              styleProp.value = createCallExpression(\n                context.helper(NORMALIZE_STYLE),\n                [styleProp.value]\n              );\n            }\n          } else {\n            propsExpression = createCallExpression(\n              context.helper(NORMALIZE_PROPS),\n              [propsExpression]\n            );\n          }\n          break;\n        case 14:\n          break;\n        default:\n          propsExpression = createCallExpression(\n            context.helper(NORMALIZE_PROPS),\n            [\n              createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [\n                propsExpression\n              ])\n            ]\n          );\n          break;\n      }\n    }\n    return {\n      props: propsExpression,\n      directives: runtimeDirectives,\n      patchFlag,\n      dynamicPropNames,\n      shouldUseBlock,\n      needsPatch,\n      isBlockRequired\n    };\n  }\n  function dedupeProperties(properties) {\n    const knownProps = /* @__PURE__ */ new Map();\n    const deduped = [];\n    for (let i = 0; i < properties.length; i++) {\n      const prop = properties[i];\n      if (prop.key.type === 8 || !prop.key.isStatic) {\n        deduped.push(prop);\n        continue;\n      }\n      const name = prop.key.content;\n      const existing = knownProps.get(name);\n      if (existing) {\n        if (name === \"style\" || name === \"class\" || isOn(name)) {\n          mergeAsArray(existing, prop);\n        }\n      } else {\n        knownProps.set(name, prop);\n        deduped.push(prop);\n      }\n    }\n    return deduped;\n  }\n  function mergeAsArray(existing, incoming) {\n    if (existing.value.type === 17) {\n      existing.value.elements.push(incoming.value);\n    } else {\n      existing.value = createArrayExpression(\n        [existing.value, incoming.value],\n        existing.loc\n      );\n    }\n  }\n  function buildDirectiveArgs(dir, context) {\n    const dirArgs = [];\n    const runtime = directiveImportMap.get(dir);\n    if (runtime) {\n      dirArgs.push(context.helperString(runtime));\n    } else {\n      {\n        context.helper(RESOLVE_DIRECTIVE);\n        context.directives.add(dir.name);\n        dirArgs.push(toValidAssetId(dir.name, `directive`));\n      }\n    }\n    const { loc } = dir;\n    if (dir.exp) dirArgs.push(dir.exp);\n    if (dir.arg) {\n      if (!dir.exp) {\n        dirArgs.push(`void 0`);\n      }\n      dirArgs.push(dir.arg);\n    }\n    if (Object.keys(dir.modifiers).length) {\n      if (!dir.arg) {\n        if (!dir.exp) {\n          dirArgs.push(`void 0`);\n        }\n        dirArgs.push(`void 0`);\n      }\n      const trueExpression = createSimpleExpression(`true`, false, loc);\n      dirArgs.push(\n        createObjectExpression(\n          dir.modifiers.map(\n            (modifier) => createObjectProperty(modifier, trueExpression)\n          ),\n          loc\n        )\n      );\n    }\n    return createArrayExpression(dirArgs, dir.loc);\n  }\n  function stringifyDynamicPropNames(props) {\n    let propsNamesString = `[`;\n    for (let i = 0, l = props.length; i < l; i++) {\n      propsNamesString += JSON.stringify(props[i]);\n      if (i < l - 1) propsNamesString += \", \";\n    }\n    return propsNamesString + `]`;\n  }\n  function isComponentTag(tag) {\n    return tag === \"component\" || tag === \"Component\";\n  }\n\n  const transformSlotOutlet = (node, context) => {\n    if (isSlotOutlet(node)) {\n      const { children, loc } = node;\n      const { slotName, slotProps } = processSlotOutlet(node, context);\n      const slotArgs = [\n        context.prefixIdentifiers ? `_ctx.$slots` : `$slots`,\n        slotName,\n        \"{}\",\n        \"undefined\",\n        \"true\"\n      ];\n      let expectedLen = 2;\n      if (slotProps) {\n        slotArgs[2] = slotProps;\n        expectedLen = 3;\n      }\n      if (children.length) {\n        slotArgs[3] = createFunctionExpression([], children, false, false, loc);\n        expectedLen = 4;\n      }\n      if (context.scopeId && !context.slotted) {\n        expectedLen = 5;\n      }\n      slotArgs.splice(expectedLen);\n      node.codegenNode = createCallExpression(\n        context.helper(RENDER_SLOT),\n        slotArgs,\n        loc\n      );\n    }\n  };\n  function processSlotOutlet(node, context) {\n    let slotName = `\"default\"`;\n    let slotProps = void 0;\n    const nonNameProps = [];\n    for (let i = 0; i < node.props.length; i++) {\n      const p = node.props[i];\n      if (p.type === 6) {\n        if (p.value) {\n          if (p.name === \"name\") {\n            slotName = JSON.stringify(p.value.content);\n          } else {\n            p.name = camelize(p.name);\n            nonNameProps.push(p);\n          }\n        }\n      } else {\n        if (p.name === \"bind\" && isStaticArgOf(p.arg, \"name\")) {\n          if (p.exp) {\n            slotName = p.exp;\n          } else if (p.arg && p.arg.type === 4) {\n            const name = camelize(p.arg.content);\n            slotName = p.exp = createSimpleExpression(name, false, p.arg.loc);\n          }\n        } else {\n          if (p.name === \"bind\" && p.arg && isStaticExp(p.arg)) {\n            p.arg.content = camelize(p.arg.content);\n          }\n          nonNameProps.push(p);\n        }\n      }\n    }\n    if (nonNameProps.length > 0) {\n      const { props, directives } = buildProps(\n        node,\n        context,\n        nonNameProps,\n        false,\n        false\n      );\n      slotProps = props;\n      if (directives.length) {\n        context.onError(\n          createCompilerError(\n            36,\n            directives[0].loc\n          )\n        );\n      }\n    }\n    return {\n      slotName,\n      slotProps\n    };\n  }\n\n  const transformOn$1 = (dir, node, context, augmentor) => {\n    const { loc, modifiers, arg } = dir;\n    if (!dir.exp && !modifiers.length) {\n      context.onError(createCompilerError(35, loc));\n    }\n    let eventName;\n    if (arg.type === 4) {\n      if (arg.isStatic) {\n        let rawName = arg.content;\n        if (rawName.startsWith(\"vnode\")) {\n          context.onError(createCompilerError(52, arg.loc));\n        }\n        if (rawName.startsWith(\"vue:\")) {\n          rawName = `vnode-${rawName.slice(4)}`;\n        }\n        const eventString = node.tagType !== 0 || rawName.startsWith(\"vnode\") || !/[A-Z]/.test(rawName) ? (\n          // for non-element and vnode lifecycle event listeners, auto convert\n          // it to camelCase. See issue #2249\n          toHandlerKey(camelize(rawName))\n        ) : (\n          // preserve case for plain element listeners that have uppercase\n          // letters, as these may be custom elements' custom events\n          `on:${rawName}`\n        );\n        eventName = createSimpleExpression(eventString, true, arg.loc);\n      } else {\n        eventName = createCompoundExpression([\n          `${context.helperString(TO_HANDLER_KEY)}(`,\n          arg,\n          `)`\n        ]);\n      }\n    } else {\n      eventName = arg;\n      eventName.children.unshift(`${context.helperString(TO_HANDLER_KEY)}(`);\n      eventName.children.push(`)`);\n    }\n    let exp = dir.exp;\n    if (exp && !exp.content.trim()) {\n      exp = void 0;\n    }\n    let shouldCache = context.cacheHandlers && !exp && !context.inVOnce;\n    if (exp) {\n      const isMemberExp = isMemberExpression(exp);\n      const isInlineStatement = !(isMemberExp || isFnExpression(exp));\n      const hasMultipleStatements = exp.content.includes(`;`);\n      {\n        validateBrowserExpression(\n          exp,\n          context,\n          false,\n          hasMultipleStatements\n        );\n      }\n      if (isInlineStatement || shouldCache && isMemberExp) {\n        exp = createCompoundExpression([\n          `${isInlineStatement ? `$event` : `${``}(...args)`} => ${hasMultipleStatements ? `{` : `(`}`,\n          exp,\n          hasMultipleStatements ? `}` : `)`\n        ]);\n      }\n    }\n    let ret = {\n      props: [\n        createObjectProperty(\n          eventName,\n          exp || createSimpleExpression(`() => {}`, false, loc)\n        )\n      ]\n    };\n    if (augmentor) {\n      ret = augmentor(ret);\n    }\n    if (shouldCache) {\n      ret.props[0].value = context.cache(ret.props[0].value);\n    }\n    ret.props.forEach((p) => p.key.isHandlerKey = true);\n    return ret;\n  };\n\n  const transformBind = (dir, _node, context) => {\n    const { modifiers, loc } = dir;\n    const arg = dir.arg;\n    let { exp } = dir;\n    if (exp && exp.type === 4 && !exp.content.trim()) {\n      {\n        exp = void 0;\n      }\n    }\n    if (arg.type !== 4) {\n      arg.children.unshift(`(`);\n      arg.children.push(`) || \"\"`);\n    } else if (!arg.isStatic) {\n      arg.content = arg.content ? `${arg.content} || \"\"` : `\"\"`;\n    }\n    if (modifiers.some((mod) => mod.content === \"camel\")) {\n      if (arg.type === 4) {\n        if (arg.isStatic) {\n          arg.content = camelize(arg.content);\n        } else {\n          arg.content = `${context.helperString(CAMELIZE)}(${arg.content})`;\n        }\n      } else {\n        arg.children.unshift(`${context.helperString(CAMELIZE)}(`);\n        arg.children.push(`)`);\n      }\n    }\n    if (!context.inSSR) {\n      if (modifiers.some((mod) => mod.content === \"prop\")) {\n        injectPrefix(arg, \".\");\n      }\n      if (modifiers.some((mod) => mod.content === \"attr\")) {\n        injectPrefix(arg, \"^\");\n      }\n    }\n    return {\n      props: [createObjectProperty(arg, exp)]\n    };\n  };\n  const injectPrefix = (arg, prefix) => {\n    if (arg.type === 4) {\n      if (arg.isStatic) {\n        arg.content = prefix + arg.content;\n      } else {\n        arg.content = `\\`${prefix}\\${${arg.content}}\\``;\n      }\n    } else {\n      arg.children.unshift(`'${prefix}' + (`);\n      arg.children.push(`)`);\n    }\n  };\n\n  const transformText = (node, context) => {\n    if (node.type === 0 || node.type === 1 || node.type === 11 || node.type === 10) {\n      return () => {\n        const children = node.children;\n        let currentContainer = void 0;\n        let hasText = false;\n        for (let i = 0; i < children.length; i++) {\n          const child = children[i];\n          if (isText$1(child)) {\n            hasText = true;\n            for (let j = i + 1; j < children.length; j++) {\n              const next = children[j];\n              if (isText$1(next)) {\n                if (!currentContainer) {\n                  currentContainer = children[i] = createCompoundExpression(\n                    [child],\n                    child.loc\n                  );\n                }\n                currentContainer.children.push(` + `, next);\n                children.splice(j, 1);\n                j--;\n              } else {\n                currentContainer = void 0;\n                break;\n              }\n            }\n          }\n        }\n        if (!hasText || // if this is a plain element with a single text child, leave it\n        // as-is since the runtime has dedicated fast path for this by directly\n        // setting textContent of the element.\n        // for component root it's always normalized anyway.\n        children.length === 1 && (node.type === 0 || node.type === 1 && node.tagType === 0 && // #3756\n        // custom directives can potentially add DOM elements arbitrarily,\n        // we need to avoid setting textContent of the element at runtime\n        // to avoid accidentally overwriting the DOM elements added\n        // by the user through custom directives.\n        !node.props.find(\n          (p) => p.type === 7 && !context.directiveTransforms[p.name]\n        ) && // in compat mode, <template> tags with no special directives\n        // will be rendered as a fragment so its children must be\n        // converted into vnodes.\n        !(node.tag === \"template\"))) {\n          return;\n        }\n        for (let i = 0; i < children.length; i++) {\n          const child = children[i];\n          if (isText$1(child) || child.type === 8) {\n            const callArgs = [];\n            if (child.type !== 2 || child.content !== \" \") {\n              callArgs.push(child);\n            }\n            if (!context.ssr && getConstantType(child, context) === 0) {\n              callArgs.push(\n                1 + (` /* ${PatchFlagNames[1]} */` )\n              );\n            }\n            children[i] = {\n              type: 12,\n              content: child,\n              loc: child.loc,\n              codegenNode: createCallExpression(\n                context.helper(CREATE_TEXT),\n                callArgs\n              )\n            };\n          }\n        }\n      };\n    }\n  };\n\n  const seen$1 = /* @__PURE__ */ new WeakSet();\n  const transformOnce = (node, context) => {\n    if (node.type === 1 && findDir(node, \"once\", true)) {\n      if (seen$1.has(node) || context.inVOnce || context.inSSR) {\n        return;\n      }\n      seen$1.add(node);\n      context.inVOnce = true;\n      context.helper(SET_BLOCK_TRACKING);\n      return () => {\n        context.inVOnce = false;\n        const cur = context.currentNode;\n        if (cur.codegenNode) {\n          cur.codegenNode = context.cache(\n            cur.codegenNode,\n            true,\n            true\n          );\n        }\n      };\n    }\n  };\n\n  const transformModel$1 = (dir, node, context) => {\n    const { exp, arg } = dir;\n    if (!exp) {\n      context.onError(\n        createCompilerError(41, dir.loc)\n      );\n      return createTransformProps();\n    }\n    const rawExp = exp.loc.source.trim();\n    const expString = exp.type === 4 ? exp.content : rawExp;\n    const bindingType = context.bindingMetadata[rawExp];\n    if (bindingType === \"props\" || bindingType === \"props-aliased\") {\n      context.onError(createCompilerError(44, exp.loc));\n      return createTransformProps();\n    }\n    if (bindingType === \"literal-const\" || bindingType === \"setup-const\") {\n      context.onError(createCompilerError(45, exp.loc));\n      return createTransformProps();\n    }\n    if (!expString.trim() || !isMemberExpression(exp) && true) {\n      context.onError(\n        createCompilerError(42, exp.loc)\n      );\n      return createTransformProps();\n    }\n    const propName = arg ? arg : createSimpleExpression(\"modelValue\", true);\n    const eventName = arg ? isStaticExp(arg) ? `onUpdate:${camelize(arg.content)}` : createCompoundExpression(['\"onUpdate:\" + ', arg]) : `onUpdate:modelValue`;\n    let assignmentExp;\n    const eventArg = context.isTS ? `($event: any)` : `$event`;\n    {\n      assignmentExp = createCompoundExpression([\n        `${eventArg} => ((`,\n        exp,\n        `) = $event)`\n      ]);\n    }\n    const props = [\n      // modelValue: foo\n      createObjectProperty(propName, dir.exp),\n      // \"onUpdate:modelValue\": $event => (foo = $event)\n      createObjectProperty(eventName, assignmentExp)\n    ];\n    if (dir.modifiers.length && node.tagType === 1) {\n      const modifiers = dir.modifiers.map((m) => m.content).map((m) => (isSimpleIdentifier(m) ? m : JSON.stringify(m)) + `: true`).join(`, `);\n      const modifiersKey = arg ? isStaticExp(arg) ? `${arg.content}Modifiers` : createCompoundExpression([arg, ' + \"Modifiers\"']) : `modelModifiers`;\n      props.push(\n        createObjectProperty(\n          modifiersKey,\n          createSimpleExpression(\n            `{ ${modifiers} }`,\n            false,\n            dir.loc,\n            2\n          )\n        )\n      );\n    }\n    return createTransformProps(props);\n  };\n  function createTransformProps(props = []) {\n    return { props };\n  }\n\n  const validDivisionCharRE = /[\\w).+\\-_$\\]]/;\n  const transformFilter = (node, context) => {\n    if (!isCompatEnabled(\"COMPILER_FILTERS\", context)) {\n      return;\n    }\n    if (node.type === 5) {\n      rewriteFilter(node.content, context);\n    } else if (node.type === 1) {\n      node.props.forEach((prop) => {\n        if (prop.type === 7 && prop.name !== \"for\" && prop.exp) {\n          rewriteFilter(prop.exp, context);\n        }\n      });\n    }\n  };\n  function rewriteFilter(node, context) {\n    if (node.type === 4) {\n      parseFilter(node, context);\n    } else {\n      for (let i = 0; i < node.children.length; i++) {\n        const child = node.children[i];\n        if (typeof child !== \"object\") continue;\n        if (child.type === 4) {\n          parseFilter(child, context);\n        } else if (child.type === 8) {\n          rewriteFilter(child, context);\n        } else if (child.type === 5) {\n          rewriteFilter(child.content, context);\n        }\n      }\n    }\n  }\n  function parseFilter(node, context) {\n    const exp = node.content;\n    let inSingle = false;\n    let inDouble = false;\n    let inTemplateString = false;\n    let inRegex = false;\n    let curly = 0;\n    let square = 0;\n    let paren = 0;\n    let lastFilterIndex = 0;\n    let c, prev, i, expression, filters = [];\n    for (i = 0; i < exp.length; i++) {\n      prev = c;\n      c = exp.charCodeAt(i);\n      if (inSingle) {\n        if (c === 39 && prev !== 92) inSingle = false;\n      } else if (inDouble) {\n        if (c === 34 && prev !== 92) inDouble = false;\n      } else if (inTemplateString) {\n        if (c === 96 && prev !== 92) inTemplateString = false;\n      } else if (inRegex) {\n        if (c === 47 && prev !== 92) inRegex = false;\n      } else if (c === 124 && // pipe\n      exp.charCodeAt(i + 1) !== 124 && exp.charCodeAt(i - 1) !== 124 && !curly && !square && !paren) {\n        if (expression === void 0) {\n          lastFilterIndex = i + 1;\n          expression = exp.slice(0, i).trim();\n        } else {\n          pushFilter();\n        }\n      } else {\n        switch (c) {\n          case 34:\n            inDouble = true;\n            break;\n          // \"\n          case 39:\n            inSingle = true;\n            break;\n          // '\n          case 96:\n            inTemplateString = true;\n            break;\n          // `\n          case 40:\n            paren++;\n            break;\n          // (\n          case 41:\n            paren--;\n            break;\n          // )\n          case 91:\n            square++;\n            break;\n          // [\n          case 93:\n            square--;\n            break;\n          // ]\n          case 123:\n            curly++;\n            break;\n          // {\n          case 125:\n            curly--;\n            break;\n        }\n        if (c === 47) {\n          let j = i - 1;\n          let p;\n          for (; j >= 0; j--) {\n            p = exp.charAt(j);\n            if (p !== \" \") break;\n          }\n          if (!p || !validDivisionCharRE.test(p)) {\n            inRegex = true;\n          }\n        }\n      }\n    }\n    if (expression === void 0) {\n      expression = exp.slice(0, i).trim();\n    } else if (lastFilterIndex !== 0) {\n      pushFilter();\n    }\n    function pushFilter() {\n      filters.push(exp.slice(lastFilterIndex, i).trim());\n      lastFilterIndex = i + 1;\n    }\n    if (filters.length) {\n      warnDeprecation(\n        \"COMPILER_FILTERS\",\n        context,\n        node.loc\n      );\n      for (i = 0; i < filters.length; i++) {\n        expression = wrapFilter(expression, filters[i], context);\n      }\n      node.content = expression;\n      node.ast = void 0;\n    }\n  }\n  function wrapFilter(exp, filter, context) {\n    context.helper(RESOLVE_FILTER);\n    const i = filter.indexOf(\"(\");\n    if (i < 0) {\n      context.filters.add(filter);\n      return `${toValidAssetId(filter, \"filter\")}(${exp})`;\n    } else {\n      const name = filter.slice(0, i);\n      const args = filter.slice(i + 1);\n      context.filters.add(name);\n      return `${toValidAssetId(name, \"filter\")}(${exp}${args !== \")\" ? \",\" + args : args}`;\n    }\n  }\n\n  const seen = /* @__PURE__ */ new WeakSet();\n  const transformMemo = (node, context) => {\n    if (node.type === 1) {\n      const dir = findDir(node, \"memo\");\n      if (!dir || seen.has(node) || context.inSSR) {\n        return;\n      }\n      seen.add(node);\n      return () => {\n        const codegenNode = node.codegenNode || context.currentNode.codegenNode;\n        if (codegenNode && codegenNode.type === 13) {\n          if (node.tagType !== 1) {\n            convertToBlock(codegenNode, context);\n          }\n          node.codegenNode = createCallExpression(context.helper(WITH_MEMO), [\n            dir.exp,\n            createFunctionExpression(void 0, codegenNode),\n            `_cache`,\n            String(context.cached.length)\n          ]);\n          context.cached.push(null);\n        }\n      };\n    }\n  };\n\n  const transformVBindShorthand = (node, context) => {\n    if (node.type === 1) {\n      for (const prop of node.props) {\n        if (prop.type === 7 && prop.name === \"bind\" && (!prop.exp || // #13930 :foo in in-DOM templates will be parsed into :foo=\"\" by browser\n        prop.exp.type === 4 && !prop.exp.content.trim()) && prop.arg) {\n          const arg = prop.arg;\n          if (arg.type !== 4 || !arg.isStatic) {\n            context.onError(\n              createCompilerError(\n                53,\n                arg.loc\n              )\n            );\n            prop.exp = createSimpleExpression(\"\", true, arg.loc);\n          } else {\n            const propName = camelize(arg.content);\n            if (validFirstIdentCharRE.test(propName[0]) || // allow hyphen first char for https://github.com/vuejs/language-tools/pull/3424\n            propName[0] === \"-\") {\n              prop.exp = createSimpleExpression(propName, false, arg.loc);\n            }\n          }\n        }\n      }\n    }\n  };\n\n  function getBaseTransformPreset(prefixIdentifiers) {\n    return [\n      [\n        transformVBindShorthand,\n        transformOnce,\n        transformIf,\n        transformMemo,\n        transformFor,\n        ...[transformFilter] ,\n        ...[transformExpression] ,\n        transformSlotOutlet,\n        transformElement,\n        trackSlotScopes,\n        transformText\n      ],\n      {\n        on: transformOn$1,\n        bind: transformBind,\n        model: transformModel$1\n      }\n    ];\n  }\n  function baseCompile(source, options = {}) {\n    const onError = options.onError || defaultOnError;\n    const isModuleMode = options.mode === \"module\";\n    {\n      if (options.prefixIdentifiers === true) {\n        onError(createCompilerError(48));\n      } else if (isModuleMode) {\n        onError(createCompilerError(49));\n      }\n    }\n    const prefixIdentifiers = false;\n    if (options.cacheHandlers) {\n      onError(createCompilerError(50));\n    }\n    if (options.scopeId && !isModuleMode) {\n      onError(createCompilerError(51));\n    }\n    const resolvedOptions = extend({}, options, {\n      prefixIdentifiers\n    });\n    const ast = isString(source) ? baseParse(source, resolvedOptions) : source;\n    const [nodeTransforms, directiveTransforms] = getBaseTransformPreset();\n    transform(\n      ast,\n      extend({}, resolvedOptions, {\n        nodeTransforms: [\n          ...nodeTransforms,\n          ...options.nodeTransforms || []\n          // user transforms\n        ],\n        directiveTransforms: extend(\n          {},\n          directiveTransforms,\n          options.directiveTransforms || {}\n          // user transforms\n        )\n      })\n    );\n    return generate(ast, resolvedOptions);\n  }\n\n  const BindingTypes = {\n    \"DATA\": \"data\",\n    \"PROPS\": \"props\",\n    \"PROPS_ALIASED\": \"props-aliased\",\n    \"SETUP_LET\": \"setup-let\",\n    \"SETUP_CONST\": \"setup-const\",\n    \"SETUP_REACTIVE_CONST\": \"setup-reactive-const\",\n    \"SETUP_MAYBE_REF\": \"setup-maybe-ref\",\n    \"SETUP_REF\": \"setup-ref\",\n    \"OPTIONS\": \"options\",\n    \"LITERAL_CONST\": \"literal-const\"\n  };\n\n  const noopDirectiveTransform = () => ({ props: [] });\n\n  const V_MODEL_RADIO = /* @__PURE__ */ Symbol(`vModelRadio` );\n  const V_MODEL_CHECKBOX = /* @__PURE__ */ Symbol(\n    `vModelCheckbox` \n  );\n  const V_MODEL_TEXT = /* @__PURE__ */ Symbol(`vModelText` );\n  const V_MODEL_SELECT = /* @__PURE__ */ Symbol(\n    `vModelSelect` \n  );\n  const V_MODEL_DYNAMIC = /* @__PURE__ */ Symbol(\n    `vModelDynamic` \n  );\n  const V_ON_WITH_MODIFIERS = /* @__PURE__ */ Symbol(\n    `vOnModifiersGuard` \n  );\n  const V_ON_WITH_KEYS = /* @__PURE__ */ Symbol(\n    `vOnKeysGuard` \n  );\n  const V_SHOW = /* @__PURE__ */ Symbol(`vShow` );\n  const TRANSITION = /* @__PURE__ */ Symbol(`Transition` );\n  const TRANSITION_GROUP = /* @__PURE__ */ Symbol(\n    `TransitionGroup` \n  );\n  registerRuntimeHelpers({\n    [V_MODEL_RADIO]: `vModelRadio`,\n    [V_MODEL_CHECKBOX]: `vModelCheckbox`,\n    [V_MODEL_TEXT]: `vModelText`,\n    [V_MODEL_SELECT]: `vModelSelect`,\n    [V_MODEL_DYNAMIC]: `vModelDynamic`,\n    [V_ON_WITH_MODIFIERS]: `withModifiers`,\n    [V_ON_WITH_KEYS]: `withKeys`,\n    [V_SHOW]: `vShow`,\n    [TRANSITION]: `Transition`,\n    [TRANSITION_GROUP]: `TransitionGroup`\n  });\n\n  let decoder;\n  function decodeHtmlBrowser(raw, asAttr = false) {\n    if (!decoder) {\n      decoder = document.createElement(\"div\");\n    }\n    if (asAttr) {\n      decoder.innerHTML = `<div foo=\"${raw.replace(/\"/g, \"&quot;\")}\">`;\n      return decoder.children[0].getAttribute(\"foo\");\n    } else {\n      decoder.innerHTML = raw;\n      return decoder.textContent;\n    }\n  }\n\n  const parserOptions = {\n    parseMode: \"html\",\n    isVoidTag,\n    isNativeTag: (tag) => isHTMLTag(tag) || isSVGTag(tag) || isMathMLTag(tag),\n    isPreTag: (tag) => tag === \"pre\",\n    isIgnoreNewlineTag: (tag) => tag === \"pre\" || tag === \"textarea\",\n    decodeEntities: decodeHtmlBrowser ,\n    isBuiltInComponent: (tag) => {\n      if (tag === \"Transition\" || tag === \"transition\") {\n        return TRANSITION;\n      } else if (tag === \"TransitionGroup\" || tag === \"transition-group\") {\n        return TRANSITION_GROUP;\n      }\n    },\n    // https://html.spec.whatwg.org/multipage/parsing.html#tree-construction-dispatcher\n    getNamespace(tag, parent, rootNamespace) {\n      let ns = parent ? parent.ns : rootNamespace;\n      if (parent && ns === 2) {\n        if (parent.tag === \"annotation-xml\") {\n          if (tag === \"svg\") {\n            return 1;\n          }\n          if (parent.props.some(\n            (a) => a.type === 6 && a.name === \"encoding\" && a.value != null && (a.value.content === \"text/html\" || a.value.content === \"application/xhtml+xml\")\n          )) {\n            ns = 0;\n          }\n        } else if (/^m(?:[ions]|text)$/.test(parent.tag) && tag !== \"mglyph\" && tag !== \"malignmark\") {\n          ns = 0;\n        }\n      } else if (parent && ns === 1) {\n        if (parent.tag === \"foreignObject\" || parent.tag === \"desc\" || parent.tag === \"title\") {\n          ns = 0;\n        }\n      }\n      if (ns === 0) {\n        if (tag === \"svg\") {\n          return 1;\n        }\n        if (tag === \"math\") {\n          return 2;\n        }\n      }\n      return ns;\n    }\n  };\n\n  const transformStyle = (node) => {\n    if (node.type === 1) {\n      node.props.forEach((p, i) => {\n        if (p.type === 6 && p.name === \"style\" && p.value) {\n          node.props[i] = {\n            type: 7,\n            name: `bind`,\n            arg: createSimpleExpression(`style`, true, p.loc),\n            exp: parseInlineCSS(p.value.content, p.loc),\n            modifiers: [],\n            loc: p.loc\n          };\n        }\n      });\n    }\n  };\n  const parseInlineCSS = (cssText, loc) => {\n    const normalized = parseStringStyle(cssText);\n    return createSimpleExpression(\n      JSON.stringify(normalized),\n      false,\n      loc,\n      3\n    );\n  };\n\n  function createDOMCompilerError(code, loc) {\n    return createCompilerError(\n      code,\n      loc,\n      DOMErrorMessages \n    );\n  }\n  const DOMErrorCodes = {\n    \"X_V_HTML_NO_EXPRESSION\": 54,\n    \"54\": \"X_V_HTML_NO_EXPRESSION\",\n    \"X_V_HTML_WITH_CHILDREN\": 55,\n    \"55\": \"X_V_HTML_WITH_CHILDREN\",\n    \"X_V_TEXT_NO_EXPRESSION\": 56,\n    \"56\": \"X_V_TEXT_NO_EXPRESSION\",\n    \"X_V_TEXT_WITH_CHILDREN\": 57,\n    \"57\": \"X_V_TEXT_WITH_CHILDREN\",\n    \"X_V_MODEL_ON_INVALID_ELEMENT\": 58,\n    \"58\": \"X_V_MODEL_ON_INVALID_ELEMENT\",\n    \"X_V_MODEL_ARG_ON_ELEMENT\": 59,\n    \"59\": \"X_V_MODEL_ARG_ON_ELEMENT\",\n    \"X_V_MODEL_ON_FILE_INPUT_ELEMENT\": 60,\n    \"60\": \"X_V_MODEL_ON_FILE_INPUT_ELEMENT\",\n    \"X_V_MODEL_UNNECESSARY_VALUE\": 61,\n    \"61\": \"X_V_MODEL_UNNECESSARY_VALUE\",\n    \"X_V_SHOW_NO_EXPRESSION\": 62,\n    \"62\": \"X_V_SHOW_NO_EXPRESSION\",\n    \"X_TRANSITION_INVALID_CHILDREN\": 63,\n    \"63\": \"X_TRANSITION_INVALID_CHILDREN\",\n    \"X_IGNORED_SIDE_EFFECT_TAG\": 64,\n    \"64\": \"X_IGNORED_SIDE_EFFECT_TAG\",\n    \"__EXTEND_POINT__\": 65,\n    \"65\": \"__EXTEND_POINT__\"\n  };\n  const DOMErrorMessages = {\n    [54]: `v-html is missing expression.`,\n    [55]: `v-html will override element children.`,\n    [56]: `v-text is missing expression.`,\n    [57]: `v-text will override element children.`,\n    [58]: `v-model can only be used on <input>, <textarea> and <select> elements.`,\n    [59]: `v-model argument is not supported on plain elements.`,\n    [60]: `v-model cannot be used on file inputs since they are read-only. Use a v-on:change listener instead.`,\n    [61]: `Unnecessary value binding used alongside v-model. It will interfere with v-model's behavior.`,\n    [62]: `v-show is missing expression.`,\n    [63]: `<Transition> expects exactly one child element or component.`,\n    [64]: `Tags with side effect (<script> and <style>) are ignored in client component templates.`\n  };\n\n  const transformVHtml = (dir, node, context) => {\n    const { exp, loc } = dir;\n    if (!exp) {\n      context.onError(\n        createDOMCompilerError(54, loc)\n      );\n    }\n    if (node.children.length) {\n      context.onError(\n        createDOMCompilerError(55, loc)\n      );\n      node.children.length = 0;\n    }\n    return {\n      props: [\n        createObjectProperty(\n          createSimpleExpression(`innerHTML`, true, loc),\n          exp || createSimpleExpression(\"\", true)\n        )\n      ]\n    };\n  };\n\n  const transformVText = (dir, node, context) => {\n    const { exp, loc } = dir;\n    if (!exp) {\n      context.onError(\n        createDOMCompilerError(56, loc)\n      );\n    }\n    if (node.children.length) {\n      context.onError(\n        createDOMCompilerError(57, loc)\n      );\n      node.children.length = 0;\n    }\n    return {\n      props: [\n        createObjectProperty(\n          createSimpleExpression(`textContent`, true),\n          exp ? getConstantType(exp, context) > 0 ? exp : createCallExpression(\n            context.helperString(TO_DISPLAY_STRING),\n            [exp],\n            loc\n          ) : createSimpleExpression(\"\", true)\n        )\n      ]\n    };\n  };\n\n  const transformModel = (dir, node, context) => {\n    const baseResult = transformModel$1(dir, node, context);\n    if (!baseResult.props.length || node.tagType === 1) {\n      return baseResult;\n    }\n    if (dir.arg) {\n      context.onError(\n        createDOMCompilerError(\n          59,\n          dir.arg.loc\n        )\n      );\n    }\n    function checkDuplicatedValue() {\n      const value = findDir(node, \"bind\");\n      if (value && isStaticArgOf(value.arg, \"value\")) {\n        context.onError(\n          createDOMCompilerError(\n            61,\n            value.loc\n          )\n        );\n      }\n    }\n    const { tag } = node;\n    const isCustomElement = context.isCustomElement(tag);\n    if (tag === \"input\" || tag === \"textarea\" || tag === \"select\" || isCustomElement) {\n      let directiveToUse = V_MODEL_TEXT;\n      let isInvalidType = false;\n      if (tag === \"input\" || isCustomElement) {\n        const type = findProp(node, `type`);\n        if (type) {\n          if (type.type === 7) {\n            directiveToUse = V_MODEL_DYNAMIC;\n          } else if (type.value) {\n            switch (type.value.content) {\n              case \"radio\":\n                directiveToUse = V_MODEL_RADIO;\n                break;\n              case \"checkbox\":\n                directiveToUse = V_MODEL_CHECKBOX;\n                break;\n              case \"file\":\n                isInvalidType = true;\n                context.onError(\n                  createDOMCompilerError(\n                    60,\n                    dir.loc\n                  )\n                );\n                break;\n              default:\n                checkDuplicatedValue();\n                break;\n            }\n          }\n        } else if (hasDynamicKeyVBind(node)) {\n          directiveToUse = V_MODEL_DYNAMIC;\n        } else {\n          checkDuplicatedValue();\n        }\n      } else if (tag === \"select\") {\n        directiveToUse = V_MODEL_SELECT;\n      } else {\n        checkDuplicatedValue();\n      }\n      if (!isInvalidType) {\n        baseResult.needRuntime = context.helper(directiveToUse);\n      }\n    } else {\n      context.onError(\n        createDOMCompilerError(\n          58,\n          dir.loc\n        )\n      );\n    }\n    baseResult.props = baseResult.props.filter(\n      (p) => !(p.key.type === 4 && p.key.content === \"modelValue\")\n    );\n    return baseResult;\n  };\n\n  const isEventOptionModifier = /* @__PURE__ */ makeMap(`passive,once,capture`);\n  const isNonKeyModifier = /* @__PURE__ */ makeMap(\n    // event propagation management\n    `stop,prevent,self,ctrl,shift,alt,meta,exact,middle`\n  );\n  const maybeKeyModifier = /* @__PURE__ */ makeMap(\"left,right\");\n  const isKeyboardEvent = /* @__PURE__ */ makeMap(`onkeyup,onkeydown,onkeypress`);\n  const resolveModifiers = (key, modifiers, context, loc) => {\n    const keyModifiers = [];\n    const nonKeyModifiers = [];\n    const eventOptionModifiers = [];\n    for (let i = 0; i < modifiers.length; i++) {\n      const modifier = modifiers[i].content;\n      if (modifier === \"native\" && checkCompatEnabled(\n        \"COMPILER_V_ON_NATIVE\",\n        context,\n        loc\n      )) {\n        eventOptionModifiers.push(modifier);\n      } else if (isEventOptionModifier(modifier)) {\n        eventOptionModifiers.push(modifier);\n      } else {\n        if (maybeKeyModifier(modifier)) {\n          if (isStaticExp(key)) {\n            if (isKeyboardEvent(key.content.toLowerCase())) {\n              keyModifiers.push(modifier);\n            } else {\n              nonKeyModifiers.push(modifier);\n            }\n          } else {\n            keyModifiers.push(modifier);\n            nonKeyModifiers.push(modifier);\n          }\n        } else {\n          if (isNonKeyModifier(modifier)) {\n            nonKeyModifiers.push(modifier);\n          } else {\n            keyModifiers.push(modifier);\n          }\n        }\n      }\n    }\n    return {\n      keyModifiers,\n      nonKeyModifiers,\n      eventOptionModifiers\n    };\n  };\n  const transformClick = (key, event) => {\n    const isStaticClick = isStaticExp(key) && key.content.toLowerCase() === \"onclick\";\n    return isStaticClick ? createSimpleExpression(event, true) : key.type !== 4 ? createCompoundExpression([\n      `(`,\n      key,\n      `) === \"onClick\" ? \"${event}\" : (`,\n      key,\n      `)`\n    ]) : key;\n  };\n  const transformOn = (dir, node, context) => {\n    return transformOn$1(dir, node, context, (baseResult) => {\n      const { modifiers } = dir;\n      if (!modifiers.length) return baseResult;\n      let { key, value: handlerExp } = baseResult.props[0];\n      const { keyModifiers, nonKeyModifiers, eventOptionModifiers } = resolveModifiers(key, modifiers, context, dir.loc);\n      if (nonKeyModifiers.includes(\"right\")) {\n        key = transformClick(key, `onContextmenu`);\n      }\n      if (nonKeyModifiers.includes(\"middle\")) {\n        key = transformClick(key, `onMouseup`);\n      }\n      if (nonKeyModifiers.length) {\n        handlerExp = createCallExpression(context.helper(V_ON_WITH_MODIFIERS), [\n          handlerExp,\n          JSON.stringify(nonKeyModifiers)\n        ]);\n      }\n      if (keyModifiers.length && // if event name is dynamic, always wrap with keys guard\n      (!isStaticExp(key) || isKeyboardEvent(key.content.toLowerCase()))) {\n        handlerExp = createCallExpression(context.helper(V_ON_WITH_KEYS), [\n          handlerExp,\n          JSON.stringify(keyModifiers)\n        ]);\n      }\n      if (eventOptionModifiers.length) {\n        const modifierPostfix = eventOptionModifiers.map(capitalize).join(\"\");\n        key = isStaticExp(key) ? createSimpleExpression(`${key.content}${modifierPostfix}`, true) : createCompoundExpression([`(`, key, `) + \"${modifierPostfix}\"`]);\n      }\n      return {\n        props: [createObjectProperty(key, handlerExp)]\n      };\n    });\n  };\n\n  const transformShow = (dir, node, context) => {\n    const { exp, loc } = dir;\n    if (!exp) {\n      context.onError(\n        createDOMCompilerError(62, loc)\n      );\n    }\n    return {\n      props: [],\n      needRuntime: context.helper(V_SHOW)\n    };\n  };\n\n  const transformTransition = (node, context) => {\n    if (node.type === 1 && node.tagType === 1) {\n      const component = context.isBuiltInComponent(node.tag);\n      if (component === TRANSITION) {\n        return () => {\n          if (!node.children.length) {\n            return;\n          }\n          if (hasMultipleChildren(node)) {\n            context.onError(\n              createDOMCompilerError(\n                63,\n                {\n                  start: node.children[0].loc.start,\n                  end: node.children[node.children.length - 1].loc.end,\n                  source: \"\"\n                }\n              )\n            );\n          }\n          const child = node.children[0];\n          if (child.type === 1) {\n            for (const p of child.props) {\n              if (p.type === 7 && p.name === \"show\") {\n                node.props.push({\n                  type: 6,\n                  name: \"persisted\",\n                  nameLoc: node.loc,\n                  value: void 0,\n                  loc: node.loc\n                });\n              }\n            }\n          }\n        };\n      }\n    }\n  };\n  function hasMultipleChildren(node) {\n    const children = node.children = node.children.filter(\n      (c) => !isCommentOrWhitespace(c)\n    );\n    const child = children[0];\n    return children.length !== 1 || child.type === 11 || child.type === 9 && child.branches.some(hasMultipleChildren);\n  }\n\n  const ignoreSideEffectTags = (node, context) => {\n    if (node.type === 1 && node.tagType === 0 && (node.tag === \"script\" || node.tag === \"style\")) {\n      context.onError(\n        createDOMCompilerError(\n          64,\n          node.loc\n        )\n      );\n      context.removeNode();\n    }\n  };\n\n  function isValidHTMLNesting(parent, child) {\n    if (parent === \"template\") {\n      return true;\n    }\n    if (parent in onlyValidChildren) {\n      return onlyValidChildren[parent].has(child);\n    }\n    if (child in onlyValidParents) {\n      return onlyValidParents[child].has(parent);\n    }\n    if (parent in knownInvalidChildren) {\n      if (knownInvalidChildren[parent].has(child)) return false;\n    }\n    if (child in knownInvalidParents) {\n      if (knownInvalidParents[child].has(parent)) return false;\n    }\n    return true;\n  }\n  const headings = /* @__PURE__ */ new Set([\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"]);\n  const emptySet = /* @__PURE__ */ new Set([]);\n  const onlyValidChildren = {\n    head: /* @__PURE__ */ new Set([\n      \"base\",\n      \"basefront\",\n      \"bgsound\",\n      \"link\",\n      \"meta\",\n      \"title\",\n      \"noscript\",\n      \"noframes\",\n      \"style\",\n      \"script\",\n      \"template\"\n    ]),\n    optgroup: /* @__PURE__ */ new Set([\"option\"]),\n    select: /* @__PURE__ */ new Set([\"optgroup\", \"option\", \"hr\"]),\n    // table\n    table: /* @__PURE__ */ new Set([\"caption\", \"colgroup\", \"tbody\", \"tfoot\", \"thead\"]),\n    tr: /* @__PURE__ */ new Set([\"td\", \"th\"]),\n    colgroup: /* @__PURE__ */ new Set([\"col\"]),\n    tbody: /* @__PURE__ */ new Set([\"tr\"]),\n    thead: /* @__PURE__ */ new Set([\"tr\"]),\n    tfoot: /* @__PURE__ */ new Set([\"tr\"]),\n    // these elements can not have any children elements\n    script: emptySet,\n    iframe: emptySet,\n    option: emptySet,\n    textarea: emptySet,\n    style: emptySet,\n    title: emptySet\n  };\n  const onlyValidParents = {\n    // sections\n    html: emptySet,\n    body: /* @__PURE__ */ new Set([\"html\"]),\n    head: /* @__PURE__ */ new Set([\"html\"]),\n    // table\n    td: /* @__PURE__ */ new Set([\"tr\"]),\n    colgroup: /* @__PURE__ */ new Set([\"table\"]),\n    caption: /* @__PURE__ */ new Set([\"table\"]),\n    tbody: /* @__PURE__ */ new Set([\"table\"]),\n    tfoot: /* @__PURE__ */ new Set([\"table\"]),\n    col: /* @__PURE__ */ new Set([\"colgroup\"]),\n    th: /* @__PURE__ */ new Set([\"tr\"]),\n    thead: /* @__PURE__ */ new Set([\"table\"]),\n    tr: /* @__PURE__ */ new Set([\"tbody\", \"thead\", \"tfoot\"]),\n    // data list\n    dd: /* @__PURE__ */ new Set([\"dl\", \"div\"]),\n    dt: /* @__PURE__ */ new Set([\"dl\", \"div\"]),\n    // other\n    figcaption: /* @__PURE__ */ new Set([\"figure\"]),\n    // li: new Set([\"ul\", \"ol\"]),\n    summary: /* @__PURE__ */ new Set([\"details\"]),\n    area: /* @__PURE__ */ new Set([\"map\"])\n  };\n  const knownInvalidChildren = {\n    p: /* @__PURE__ */ new Set([\n      \"address\",\n      \"article\",\n      \"aside\",\n      \"blockquote\",\n      \"center\",\n      \"details\",\n      \"dialog\",\n      \"dir\",\n      \"div\",\n      \"dl\",\n      \"fieldset\",\n      \"figure\",\n      \"footer\",\n      \"form\",\n      \"h1\",\n      \"h2\",\n      \"h3\",\n      \"h4\",\n      \"h5\",\n      \"h6\",\n      \"header\",\n      \"hgroup\",\n      \"hr\",\n      \"li\",\n      \"main\",\n      \"nav\",\n      \"menu\",\n      \"ol\",\n      \"p\",\n      \"pre\",\n      \"section\",\n      \"table\",\n      \"ul\"\n    ]),\n    svg: /* @__PURE__ */ new Set([\n      \"b\",\n      \"blockquote\",\n      \"br\",\n      \"code\",\n      \"dd\",\n      \"div\",\n      \"dl\",\n      \"dt\",\n      \"em\",\n      \"embed\",\n      \"h1\",\n      \"h2\",\n      \"h3\",\n      \"h4\",\n      \"h5\",\n      \"h6\",\n      \"hr\",\n      \"i\",\n      \"img\",\n      \"li\",\n      \"menu\",\n      \"meta\",\n      \"ol\",\n      \"p\",\n      \"pre\",\n      \"ruby\",\n      \"s\",\n      \"small\",\n      \"span\",\n      \"strong\",\n      \"sub\",\n      \"sup\",\n      \"table\",\n      \"u\",\n      \"ul\",\n      \"var\"\n    ])\n  };\n  const knownInvalidParents = {\n    a: /* @__PURE__ */ new Set([\"a\"]),\n    button: /* @__PURE__ */ new Set([\"button\"]),\n    dd: /* @__PURE__ */ new Set([\"dd\", \"dt\"]),\n    dt: /* @__PURE__ */ new Set([\"dd\", \"dt\"]),\n    form: /* @__PURE__ */ new Set([\"form\"]),\n    li: /* @__PURE__ */ new Set([\"li\"]),\n    h1: headings,\n    h2: headings,\n    h3: headings,\n    h4: headings,\n    h5: headings,\n    h6: headings\n  };\n\n  const validateHtmlNesting = (node, context) => {\n    if (node.type === 1 && node.tagType === 0 && context.parent && context.parent.type === 1 && context.parent.tagType === 0 && !isValidHTMLNesting(context.parent.tag, node.tag)) {\n      const error = new SyntaxError(\n        `<${node.tag}> cannot be child of <${context.parent.tag}>, according to HTML specifications. This can cause hydration errors or potentially disrupt future functionality.`\n      );\n      error.loc = node.loc;\n      context.onWarn(error);\n    }\n  };\n\n  const DOMNodeTransforms = [\n    transformStyle,\n    ...[transformTransition, validateHtmlNesting] \n  ];\n  const DOMDirectiveTransforms = {\n    cloak: noopDirectiveTransform,\n    html: transformVHtml,\n    text: transformVText,\n    model: transformModel,\n    // override compiler-core\n    on: transformOn,\n    // override compiler-core\n    show: transformShow\n  };\n  function compile(src, options = {}) {\n    return baseCompile(\n      src,\n      extend({}, parserOptions, options, {\n        nodeTransforms: [\n          // ignore <script> and <tag>\n          // this is not put inside DOMNodeTransforms because that list is used\n          // by compiler-ssr to generate vnode fallback branches\n          ignoreSideEffectTags,\n          ...DOMNodeTransforms,\n          ...options.nodeTransforms || []\n        ],\n        directiveTransforms: extend(\n          {},\n          DOMDirectiveTransforms,\n          options.directiveTransforms || {}\n        ),\n        transformHoist: null \n      })\n    );\n  }\n  function parse(template, options = {}) {\n    return baseParse(template, extend({}, parserOptions, options));\n  }\n\n  exports.BASE_TRANSITION = BASE_TRANSITION;\n  exports.BindingTypes = BindingTypes;\n  exports.CAMELIZE = CAMELIZE;\n  exports.CAPITALIZE = CAPITALIZE;\n  exports.CREATE_BLOCK = CREATE_BLOCK;\n  exports.CREATE_COMMENT = CREATE_COMMENT;\n  exports.CREATE_ELEMENT_BLOCK = CREATE_ELEMENT_BLOCK;\n  exports.CREATE_ELEMENT_VNODE = CREATE_ELEMENT_VNODE;\n  exports.CREATE_SLOTS = CREATE_SLOTS;\n  exports.CREATE_STATIC = CREATE_STATIC;\n  exports.CREATE_TEXT = CREATE_TEXT;\n  exports.CREATE_VNODE = CREATE_VNODE;\n  exports.CompilerDeprecationTypes = CompilerDeprecationTypes;\n  exports.ConstantTypes = ConstantTypes;\n  exports.DOMDirectiveTransforms = DOMDirectiveTransforms;\n  exports.DOMErrorCodes = DOMErrorCodes;\n  exports.DOMErrorMessages = DOMErrorMessages;\n  exports.DOMNodeTransforms = DOMNodeTransforms;\n  exports.ElementTypes = ElementTypes;\n  exports.ErrorCodes = ErrorCodes;\n  exports.FRAGMENT = FRAGMENT;\n  exports.GUARD_REACTIVE_PROPS = GUARD_REACTIVE_PROPS;\n  exports.IS_MEMO_SAME = IS_MEMO_SAME;\n  exports.IS_REF = IS_REF;\n  exports.KEEP_ALIVE = KEEP_ALIVE;\n  exports.MERGE_PROPS = MERGE_PROPS;\n  exports.NORMALIZE_CLASS = NORMALIZE_CLASS;\n  exports.NORMALIZE_PROPS = NORMALIZE_PROPS;\n  exports.NORMALIZE_STYLE = NORMALIZE_STYLE;\n  exports.Namespaces = Namespaces;\n  exports.NodeTypes = NodeTypes;\n  exports.OPEN_BLOCK = OPEN_BLOCK;\n  exports.POP_SCOPE_ID = POP_SCOPE_ID;\n  exports.PUSH_SCOPE_ID = PUSH_SCOPE_ID;\n  exports.RENDER_LIST = RENDER_LIST;\n  exports.RENDER_SLOT = RENDER_SLOT;\n  exports.RESOLVE_COMPONENT = RESOLVE_COMPONENT;\n  exports.RESOLVE_DIRECTIVE = RESOLVE_DIRECTIVE;\n  exports.RESOLVE_DYNAMIC_COMPONENT = RESOLVE_DYNAMIC_COMPONENT;\n  exports.RESOLVE_FILTER = RESOLVE_FILTER;\n  exports.SET_BLOCK_TRACKING = SET_BLOCK_TRACKING;\n  exports.SUSPENSE = SUSPENSE;\n  exports.TELEPORT = TELEPORT;\n  exports.TO_DISPLAY_STRING = TO_DISPLAY_STRING;\n  exports.TO_HANDLERS = TO_HANDLERS;\n  exports.TO_HANDLER_KEY = TO_HANDLER_KEY;\n  exports.TRANSITION = TRANSITION;\n  exports.TRANSITION_GROUP = TRANSITION_GROUP;\n  exports.TS_NODE_TYPES = TS_NODE_TYPES;\n  exports.UNREF = UNREF;\n  exports.V_MODEL_CHECKBOX = V_MODEL_CHECKBOX;\n  exports.V_MODEL_DYNAMIC = V_MODEL_DYNAMIC;\n  exports.V_MODEL_RADIO = V_MODEL_RADIO;\n  exports.V_MODEL_SELECT = V_MODEL_SELECT;\n  exports.V_MODEL_TEXT = V_MODEL_TEXT;\n  exports.V_ON_WITH_KEYS = V_ON_WITH_KEYS;\n  exports.V_ON_WITH_MODIFIERS = V_ON_WITH_MODIFIERS;\n  exports.V_SHOW = V_SHOW;\n  exports.WITH_CTX = WITH_CTX;\n  exports.WITH_DIRECTIVES = WITH_DIRECTIVES;\n  exports.WITH_MEMO = WITH_MEMO;\n  exports.advancePositionWithClone = advancePositionWithClone;\n  exports.advancePositionWithMutation = advancePositionWithMutation;\n  exports.assert = assert;\n  exports.baseCompile = baseCompile;\n  exports.baseParse = baseParse;\n  exports.buildDirectiveArgs = buildDirectiveArgs;\n  exports.buildProps = buildProps;\n  exports.buildSlots = buildSlots;\n  exports.checkCompatEnabled = checkCompatEnabled;\n  exports.compile = compile;\n  exports.convertToBlock = convertToBlock;\n  exports.createArrayExpression = createArrayExpression;\n  exports.createAssignmentExpression = createAssignmentExpression;\n  exports.createBlockStatement = createBlockStatement;\n  exports.createCacheExpression = createCacheExpression;\n  exports.createCallExpression = createCallExpression;\n  exports.createCompilerError = createCompilerError;\n  exports.createCompoundExpression = createCompoundExpression;\n  exports.createConditionalExpression = createConditionalExpression;\n  exports.createDOMCompilerError = createDOMCompilerError;\n  exports.createForLoopParams = createForLoopParams;\n  exports.createFunctionExpression = createFunctionExpression;\n  exports.createIfStatement = createIfStatement;\n  exports.createInterpolation = createInterpolation;\n  exports.createObjectExpression = createObjectExpression;\n  exports.createObjectProperty = createObjectProperty;\n  exports.createReturnStatement = createReturnStatement;\n  exports.createRoot = createRoot;\n  exports.createSequenceExpression = createSequenceExpression;\n  exports.createSimpleExpression = createSimpleExpression;\n  exports.createStructuralDirectiveTransform = createStructuralDirectiveTransform;\n  exports.createTemplateLiteral = createTemplateLiteral;\n  exports.createTransformContext = createTransformContext;\n  exports.createVNodeCall = createVNodeCall;\n  exports.errorMessages = errorMessages;\n  exports.extractIdentifiers = extractIdentifiers;\n  exports.findDir = findDir;\n  exports.findProp = findProp;\n  exports.forAliasRE = forAliasRE;\n  exports.generate = generate;\n  exports.generateCodeFrame = generateCodeFrame;\n  exports.getBaseTransformPreset = getBaseTransformPreset;\n  exports.getConstantType = getConstantType;\n  exports.getMemoedVNodeCall = getMemoedVNodeCall;\n  exports.getVNodeBlockHelper = getVNodeBlockHelper;\n  exports.getVNodeHelper = getVNodeHelper;\n  exports.hasDynamicKeyVBind = hasDynamicKeyVBind;\n  exports.hasScopeRef = hasScopeRef;\n  exports.helperNameMap = helperNameMap;\n  exports.injectProp = injectProp;\n  exports.isAllWhitespace = isAllWhitespace;\n  exports.isCommentOrWhitespace = isCommentOrWhitespace;\n  exports.isCoreComponent = isCoreComponent;\n  exports.isFnExpression = isFnExpression;\n  exports.isFnExpressionBrowser = isFnExpressionBrowser;\n  exports.isFnExpressionNode = isFnExpressionNode;\n  exports.isFunctionType = isFunctionType;\n  exports.isInDestructureAssignment = isInDestructureAssignment;\n  exports.isInNewExpression = isInNewExpression;\n  exports.isMemberExpression = isMemberExpression;\n  exports.isMemberExpressionBrowser = isMemberExpressionBrowser;\n  exports.isMemberExpressionNode = isMemberExpressionNode;\n  exports.isReferencedIdentifier = isReferencedIdentifier;\n  exports.isSimpleIdentifier = isSimpleIdentifier;\n  exports.isSlotOutlet = isSlotOutlet;\n  exports.isStaticArgOf = isStaticArgOf;\n  exports.isStaticExp = isStaticExp;\n  exports.isStaticProperty = isStaticProperty;\n  exports.isStaticPropertyKey = isStaticPropertyKey;\n  exports.isTemplateNode = isTemplateNode;\n  exports.isText = isText$1;\n  exports.isVPre = isVPre;\n  exports.isVSlot = isVSlot;\n  exports.isWhitespaceText = isWhitespaceText;\n  exports.locStub = locStub;\n  exports.noopDirectiveTransform = noopDirectiveTransform;\n  exports.parse = parse;\n  exports.parserOptions = parserOptions;\n  exports.processExpression = processExpression;\n  exports.processFor = processFor;\n  exports.processIf = processIf;\n  exports.processSlotOutlet = processSlotOutlet;\n  exports.registerRuntimeHelpers = registerRuntimeHelpers;\n  exports.resolveComponentType = resolveComponentType;\n  exports.stringifyExpression = stringifyExpression;\n  exports.toValidAssetId = toValidAssetId;\n  exports.trackSlotScopes = trackSlotScopes;\n  exports.trackVForSlotScopes = trackVForSlotScopes;\n  exports.transform = transform;\n  exports.transformBind = transformBind;\n  exports.transformElement = transformElement;\n  exports.transformExpression = transformExpression;\n  exports.transformModel = transformModel$1;\n  exports.transformOn = transformOn$1;\n  exports.transformStyle = transformStyle;\n  exports.transformVBindShorthand = transformVBindShorthand;\n  exports.traverseNode = traverseNode;\n  exports.unwrapTSNode = unwrapTSNode;\n  exports.validFirstIdentCharRE = validFirstIdentCharRE;\n  exports.walkBlockDeclarations = walkBlockDeclarations;\n  exports.walkFunctionParams = walkFunctionParams;\n  exports.walkIdentifiers = walkIdentifiers;\n  exports.warnDeprecation = warnDeprecation;\n\n  return exports;\n\n})({});\n"]}