{"version":3,"file":"clientTreeShakePlugin.js","names":[],"sources":["esm/vite/plugins/clientTreeShakePlugin.js"],"sourcesContent":["import { extname, relative } from \"node:path\";\nimport MagicString from \"magic-string\";\nimport { parseSync } from \"oxc-parser\";\nimport { EMPTY_LOADER_STRING, makeLoaderRouteIdStub } from \"../constants\";\nconst clientTreeShakePlugin = (opts) => {\n  const runtime = opts?.runtime ?? \"vite\";\n  const routerRoot = opts?.routerRoot ?? \"app\";\n  return {\n    name: \"one-client-tree-shake\",\n    enforce: \"pre\",\n    ...runtime === \"vite\" && {\n      applyToEnvironment(env) {\n        return env.name === \"client\" || env.name === \"ios\" || env.name === \"android\";\n      }\n    },\n    transform: {\n      order: \"pre\",\n      async handler(code, id, settings) {\n        if (runtime === \"vite\" && this.environment?.name === \"ssr\") {\n          return;\n        }\n        if (!/\\.(js|jsx|ts|tsx)$/.test(extname(id))) {\n          return;\n        }\n        if (/node_modules/.test(id)) {\n          return;\n        }\n        const out = await transformTreeShakeClient(code, id, process.cwd(), routerRoot);\n        return out;\n      }\n    }\n  };\n};\nfunction extractPatternBindings(node, names) {\n  if (!node) return;\n  switch (node.type) {\n    case \"Identifier\":\n      names.add(node.name);\n      break;\n    case \"ObjectPattern\":\n      for (const prop of node.properties) {\n        if (prop.type === \"Property\") {\n          extractPatternBindings(prop.value, names);\n        } else if (prop.type === \"RestElement\") {\n          extractPatternBindings(prop.argument, names);\n        }\n      }\n      break;\n    case \"ArrayPattern\":\n      for (const element of node.elements) {\n        if (element) {\n          extractPatternBindings(element, names);\n        }\n      }\n      break;\n    case \"AssignmentPattern\":\n      extractPatternBindings(node.left, names);\n      break;\n    case \"RestElement\":\n      extractPatternBindings(node.argument, names);\n      break;\n    case \"TSParameterProperty\":\n      extractPatternBindings(node.parameter, names);\n      break;\n  }\n}\nfunction getReferencedIdentifiers(rootNode, candidateNames) {\n  const referenced = /* @__PURE__ */ new Set();\n  const scopeStack = [];\n  function isShadowed(name) {\n    for (let i = scopeStack.length - 1; i >= 0; i--) {\n      if (scopeStack[i].has(name)) return true;\n    }\n    return false;\n  }\n  function checkIdentifier(name) {\n    if (!isShadowed(name) && candidateNames.has(name)) {\n      referenced.add(name);\n    }\n  }\n  function walk(node) {\n    if (!node || typeof node !== \"object\") return;\n    if (node.type === \"TSTypeAnnotation\" || node.type === \"TSTypeReference\" || node.type === \"TSTypeAliasDeclaration\" || node.type === \"TSInterfaceDeclaration\" || node.type === \"TSTypeParameterDeclaration\" || node.type === \"TSTypeParameterInstantiation\") {\n      return;\n    }\n    if (node.type === \"TSAsExpression\" || node.type === \"TSTypeAssertion\" || node.type === \"TSSatisfiesExpression\" || node.type === \"TSNonNullExpression\") {\n      walk(node.expression);\n      return;\n    }\n    function walkPatternExpressions(pat) {\n      if (!pat || typeof pat !== \"object\") return;\n      switch (pat.type) {\n        case \"AssignmentPattern\":\n          walk(pat.right);\n          walkPatternExpressions(pat.left);\n          break;\n        case \"ObjectPattern\":\n          for (const prop of pat.properties) {\n            if (prop.type === \"Property\") {\n              if (prop.computed) {\n                walk(prop.key);\n              }\n              walkPatternExpressions(prop.value);\n            } else if (prop.type === \"RestElement\") {\n              walkPatternExpressions(prop.argument);\n            }\n          }\n          break;\n        case \"ArrayPattern\":\n          for (const element of pat.elements) {\n            if (element) {\n              walkPatternExpressions(element);\n            }\n          }\n          break;\n        case \"RestElement\":\n          walkPatternExpressions(pat.argument);\n          break;\n        case \"TSParameterProperty\":\n          walkPatternExpressions(pat.parameter);\n          break;\n      }\n    }\n    if (node.type === \"FunctionDeclaration\" || node.type === \"FunctionExpression\" || node.type === \"ArrowFunctionExpression\") {\n      let addVars = function(n) {\n        if (!n || typeof n !== \"object\") return;\n        if (n.type === \"FunctionDeclaration\" || n.type === \"FunctionExpression\" || n.type === \"ArrowFunctionExpression\") {\n          return;\n        }\n        if (n.type === \"VariableDeclaration\" && n.kind === \"var\") {\n          for (const d of n.declarations) {\n            extractPatternBindings(d.id, scope);\n          }\n        }\n        for (const k of Object.keys(n)) {\n          if (k === \"parent\") continue;\n          const val = n[k];\n          if (Array.isArray(val)) {\n            for (const item of val) addVars(item);\n          } else if (val && typeof val === \"object\") {\n            addVars(val);\n          }\n        }\n      };\n      const scope = /* @__PURE__ */ new Set();\n      if (node.type === \"FunctionExpression\" && node.id) {\n        scope.add(node.id.name);\n      }\n      if (node.params) {\n        for (const param of node.params) {\n          walkPatternExpressions(param);\n          extractPatternBindings(param, scope);\n        }\n      }\n      addVars(node.body);\n      scopeStack.push(scope);\n      walk(node.body);\n      scopeStack.pop();\n      return;\n    }\n    if (node.type === \"BlockStatement\") {\n      const scope = /* @__PURE__ */ new Set();\n      for (const stmt of node.body) {\n        if (stmt.type === \"VariableDeclaration\" && (stmt.kind === \"let\" || stmt.kind === \"const\")) {\n          for (const decl of stmt.declarations) {\n            extractPatternBindings(decl.id, scope);\n          }\n        } else if (stmt.type === \"FunctionDeclaration\" && stmt.id) {\n          scope.add(stmt.id.name);\n        } else if (stmt.type === \"ClassDeclaration\" && stmt.id) {\n          scope.add(stmt.id.name);\n        }\n      }\n      scopeStack.push(scope);\n      for (const stmt of node.body) {\n        walk(stmt);\n      }\n      scopeStack.pop();\n      return;\n    }\n    if (node.type === \"CatchClause\") {\n      const scope = /* @__PURE__ */ new Set();\n      if (node.param) {\n        extractPatternBindings(node.param, scope);\n      }\n      scopeStack.push(scope);\n      walk(node.body);\n      scopeStack.pop();\n      return;\n    }\n    if (node.type === \"ForStatement\" || node.type === \"ForInStatement\" || node.type === \"ForOfStatement\") {\n      const scope = /* @__PURE__ */ new Set();\n      const initOrLeft = node.init || node.left;\n      if (initOrLeft && initOrLeft.type === \"VariableDeclaration\" && initOrLeft.kind !== \"var\") {\n        for (const decl of initOrLeft.declarations) {\n          extractPatternBindings(decl.id, scope);\n        }\n      }\n      scopeStack.push(scope);\n      if (node.init) walk(node.init);\n      if (node.left) walk(node.left);\n      if (node.right) walk(node.right);\n      if (node.test) walk(node.test);\n      if (node.update) walk(node.update);\n      walk(node.body);\n      scopeStack.pop();\n      return;\n    }\n    if (node.type === \"Identifier\") {\n      checkIdentifier(node.name);\n      return;\n    }\n    if (node.type === \"JSXOpeningElement\") {\n      if (node.name) {\n        if (node.name.type === \"JSXIdentifier\") {\n          if (node.name.name && /^[A-Z]/.test(node.name.name)) {\n            checkIdentifier(node.name.name);\n          }\n        } else if (node.name.type === \"JSXMemberExpression\") {\n          let rootObj = node.name.object;\n          while (rootObj && rootObj.type === \"JSXMemberExpression\") {\n            rootObj = rootObj.object;\n          }\n          if (rootObj && rootObj.type === \"JSXIdentifier\") {\n            checkIdentifier(rootObj.name);\n          }\n        }\n      }\n      if (node.attributes) {\n        for (const attr of node.attributes) {\n          walk(attr);\n        }\n      }\n      return;\n    }\n    if (node.type === \"JSXAttribute\") {\n      if (node.value) walk(node.value);\n      return;\n    }\n    if (node.type === \"JSXClosingElement\") {\n      return;\n    }\n    if (node.type === \"Property\") {\n      if (node.computed) {\n        walk(node.key);\n      }\n      walk(node.value);\n      return;\n    }\n    if (node.type === \"MemberExpression\") {\n      walk(node.object);\n      if (node.computed) {\n        walk(node.property);\n      }\n      return;\n    }\n    if (node.type === \"VariableDeclarator\") {\n      walkPatternExpressions(node.id);\n      if (node.init) {\n        walk(node.init);\n      }\n      return;\n    }\n    if (node.type === \"ExportSpecifier\") {\n      if (node.local && node.local.type === \"Identifier\") {\n        checkIdentifier(node.local.name);\n      }\n      return;\n    }\n    for (const key of Object.keys(node)) {\n      if (key === \"parent\") continue;\n      const child = node[key];\n      if (Array.isArray(child)) {\n        for (const item of child) {\n          if (item && typeof item === \"object\") walk(item);\n        }\n      } else if (child && typeof child === \"object\") {\n        walk(child);\n      }\n    }\n  }\n  walk(rootNode);\n  return referenced;\n}\nasync function transformTreeShakeClient(code, id, root, routerRoot = \"app\") {\n  if (!/generateStaticParams|loader/.test(code)) {\n    return;\n  }\n  const isProd = process.env.NODE_ENV === \"production\";\n  const filename = (id || \"file.tsx\").split(\"?\")[0].split(\"#\")[0];\n  let parseResult;\n  try {\n    parseResult = parseSync(filename, code);\n    if (parseResult.errors && parseResult.errors.length > 0) {\n      const errorMessage = parseResult.errors.map((e) => e.message).join(\"\\n\");\n      if (isProd) {\n        throw new Error(\n          `[one] Failed to parse ${id} with server exports:\n${errorMessage}`\n        );\n      }\n      console.warn(\n        `[one] Skipping tree shaking for ${id} due to syntax error:`,\n        errorMessage\n      );\n      return;\n    }\n  } catch (error) {\n    if (isProd) {\n      throw error instanceof Error ? error : new Error(String(error));\n    }\n    const errorMessage = error instanceof Error ? error.message : String(error);\n    console.warn(\n      `[one] Skipping tree shaking for ${id} due to syntax error:`,\n      errorMessage\n    );\n    return;\n  }\n  const ast = parseResult.program;\n  try {\n    return doTreeShakeClient(code, id, root, ast, routerRoot);\n  } catch (error) {\n    if (isProd) {\n      throw error instanceof Error ? error : new Error(String(error));\n    }\n    const errorMessage = error instanceof Error ? error.message : String(error);\n    console.warn(\n      `[one] Skipping tree shaking for ${id} due to analysis error:`,\n      errorMessage\n    );\n    return;\n  }\n}\nfunction doTreeShakeClient(code, id, root, ast, routerRoot) {\n  const removed = {\n    loader: false,\n    generateStaticParams: false\n  };\n  const serverExportStmts = /* @__PURE__ */ new Map();\n  for (const stmt of ast.body) {\n    if (stmt.type === \"ExportNamedDeclaration\" && stmt.declaration) {\n      if (stmt.declaration.type === \"FunctionDeclaration\") {\n        const fnName = stmt.declaration.id?.name;\n        if (fnName === \"loader\" || fnName === \"generateStaticParams\") {\n          removed[fnName] = true;\n          serverExportStmts.set(stmt, {\n            names: /* @__PURE__ */ new Set([fnName]),\n            replaceAll: true,\n            declaratorsToRemove: /* @__PURE__ */ new Set()\n          });\n        }\n      } else if (stmt.declaration.type === \"VariableDeclaration\") {\n        const found = [];\n        for (const d of stmt.declaration.declarations) {\n          if (d.id?.type === \"Identifier\" && (d.id.name === \"loader\" || d.id.name === \"generateStaticParams\")) {\n            found.push(d);\n            removed[d.id.name] = true;\n          }\n        }\n        if (found.length > 0) {\n          serverExportStmts.set(stmt, {\n            names: new Set(found.map((d) => d.id.name)),\n            replaceAll: found.length === stmt.declaration.declarations.length,\n            declaratorsToRemove: new Set(found)\n          });\n        }\n      }\n    }\n  }\n  const removedFunctions = Object.keys(removed).filter((k) => removed[k]);\n  if (removedFunctions.length === 0) {\n    return;\n  }\n  const moduleBindings = /* @__PURE__ */ new Map();\n  for (const stmt of ast.body) {\n    if (stmt.type === \"ImportDeclaration\") {\n      const isDeclType = stmt.importKind === \"type\";\n      for (const sp of stmt.specifiers) {\n        const isType = isDeclType || sp.importKind === \"type\";\n        moduleBindings.set(sp.local.name, {\n          kind: \"import\",\n          stmt,\n          node: sp,\n          isType\n        });\n      }\n    } else if (stmt.type === \"ExportNamedDeclaration\" && stmt.declaration) {\n      const decl = stmt.declaration;\n      if (decl.type === \"FunctionDeclaration\" && decl.id) {\n        moduleBindings.set(decl.id.name, { kind: \"function\", stmt, node: decl });\n      } else if (decl.type === \"VariableDeclaration\") {\n        for (const d of decl.declarations) {\n          const names = /* @__PURE__ */ new Set();\n          extractPatternBindings(d.id, names);\n          for (const name of names) {\n            moduleBindings.set(name, { kind: \"variable\", stmt, node: d });\n          }\n        }\n      } else if (decl.type === \"ClassDeclaration\" && decl.id) {\n        moduleBindings.set(decl.id.name, { kind: \"class\", stmt, node: decl });\n      }\n    } else if (stmt.type === \"FunctionDeclaration\" && stmt.id) {\n      moduleBindings.set(stmt.id.name, { kind: \"function\", stmt, node: stmt });\n    } else if (stmt.type === \"VariableDeclaration\") {\n      for (const d of stmt.declarations) {\n        const names = /* @__PURE__ */ new Set();\n        extractPatternBindings(d.id, names);\n        for (const name of names) {\n          moduleBindings.set(name, { kind: \"variable\", stmt, node: d });\n        }\n      }\n    } else if (stmt.type === \"ClassDeclaration\" && stmt.id) {\n      moduleBindings.set(stmt.id.name, { kind: \"class\", stmt, node: stmt });\n    } else if (stmt.type === \"TSEnumDeclaration\" && stmt.id) {\n      moduleBindings.set(stmt.id.name, { kind: \"enum\", stmt, node: stmt });\n    }\n  }\n  const allBindingNames = new Set(moduleBindings.keys());\n  const topLevelDeps = /* @__PURE__ */ new Map();\n  const clientRootDeps = /* @__PURE__ */ new Set();\n  for (const [name, info] of moduleBindings) {\n    if (info.kind === \"import\") {\n      topLevelDeps.set(name, /* @__PURE__ */ new Set());\n    } else if (info.kind === \"function\") {\n      topLevelDeps.set(name, getReferencedIdentifiers(info.node, allBindingNames));\n    } else if (info.kind === \"variable\") {\n      const deps = getReferencedIdentifiers(info.node, allBindingNames);\n      deps.delete(name);\n      topLevelDeps.set(name, deps);\n    } else if (info.kind === \"class\") {\n      topLevelDeps.set(name, getReferencedIdentifiers(info.node, allBindingNames));\n    } else if (info.kind === \"enum\") {\n      topLevelDeps.set(name, getReferencedIdentifiers(info.node, allBindingNames));\n    }\n  }\n  const serverNeeded = /* @__PURE__ */ new Set();\n  const serverQueue = [];\n  for (const fn of removedFunctions) {\n    const deps = topLevelDeps.get(fn);\n    if (deps) {\n      for (const dep of deps) serverQueue.push(dep);\n    }\n  }\n  while (serverQueue.length > 0) {\n    const name = serverQueue.shift();\n    if (serverNeeded.has(name)) continue;\n    serverNeeded.add(name);\n    const deps = topLevelDeps.get(name);\n    if (deps) {\n      for (const dep of deps) {\n        if (!serverNeeded.has(dep)) serverQueue.push(dep);\n      }\n    }\n  }\n  for (const stmt of ast.body) {\n    if (stmt.type === \"ImportDeclaration\") {\n      continue;\n    }\n    if (serverExportStmts.has(stmt)) {\n      const info = serverExportStmts.get(stmt);\n      if (!info.replaceAll && stmt.declaration?.declarations) {\n        for (const d of stmt.declaration.declarations) {\n          if (!info.declaratorsToRemove.has(d)) {\n            const deps2 = getReferencedIdentifiers(d, allBindingNames);\n            for (const dep of deps2) clientRootDeps.add(dep);\n          }\n        }\n      }\n      continue;\n    }\n    if (stmt.type === \"VariableDeclaration\") {\n      const allInServer = stmt.declarations.every((d) => {\n        const names = /* @__PURE__ */ new Set();\n        extractPatternBindings(d.id, names);\n        return names.size > 0 && Array.from(names).every((n) => serverNeeded.has(n));\n      });\n      if (!allInServer) {\n        for (const d of stmt.declarations) {\n          const names = /* @__PURE__ */ new Set();\n          extractPatternBindings(d.id, names);\n          const inServer = names.size > 0 && Array.from(names).every((n) => serverNeeded.has(n));\n          if (!inServer) {\n            const deps2 = getReferencedIdentifiers(d, allBindingNames);\n            for (const dep of deps2) clientRootDeps.add(dep);\n          }\n        }\n      }\n      continue;\n    }\n    if ((stmt.type === \"FunctionDeclaration\" || stmt.type === \"ClassDeclaration\" || stmt.type === \"TSEnumDeclaration\") && stmt.id && serverNeeded.has(stmt.id.name)) {\n      continue;\n    }\n    const deps = getReferencedIdentifiers(stmt, allBindingNames);\n    for (const dep of deps) clientRootDeps.add(dep);\n  }\n  const clientNeeded = /* @__PURE__ */ new Set();\n  const clientQueue = Array.from(clientRootDeps);\n  while (clientQueue.length > 0) {\n    const name = clientQueue.shift();\n    if (clientNeeded.has(name)) continue;\n    clientNeeded.add(name);\n    if (name === \"loader\" || name === \"generateStaticParams\") continue;\n    const deps = topLevelDeps.get(name);\n    if (deps) {\n      for (const dep of deps) {\n        if (!clientNeeded.has(dep)) clientQueue.push(dep);\n      }\n    }\n  }\n  const exclusiveServerBindings = /* @__PURE__ */ new Set();\n  for (const name of serverNeeded) {\n    if (!clientNeeded.has(name)) {\n      exclusiveServerBindings.add(name);\n    }\n  }\n  const s = new MagicString(code);\n  const overwritePreservingLines = (start, end, replacement = \"\") => {\n    const lineBreaks = code.slice(start, end).match(/\\r\\n|\\r|\\n/g)?.join(\"\") ?? \"\";\n    s.overwrite(start, end, replacement + lineBreaks);\n  };\n  for (const [stmt, info] of serverExportStmts) {\n    const stubs = [];\n    if (info.names.has(\"loader\")) {\n      if (root) {\n        const fromRoot = relative(root, id).replace(/\\\\/g, \"/\");\n        const prefix = routerRoot.replace(/^\\.\\//, \"\").replace(/\\/$/, \"\") + \"/\";\n        const routeId = \"./\" + (fromRoot.startsWith(prefix) ? fromRoot.slice(prefix.length) : fromRoot);\n        stubs.push(makeLoaderRouteIdStub(routeId));\n      } else {\n        stubs.push(EMPTY_LOADER_STRING);\n      }\n    }\n    if (info.names.has(\"generateStaticParams\")) {\n      stubs.push(\"export function generateStaticParams() {};\");\n    }\n    if (info.replaceAll) {\n      overwritePreservingLines(stmt.start, stmt.end, stubs.join(\" \"));\n    } else {\n      const decl = stmt.declaration;\n      for (let i = decl.declarations.length - 1; i >= 0; i--) {\n        const d = decl.declarations[i];\n        if (info.declaratorsToRemove.has(d)) {\n          if (i === 0) {\n            const next = decl.declarations[1];\n            overwritePreservingLines(d.start, next.start);\n          } else {\n            const prev = decl.declarations[i - 1];\n            overwritePreservingLines(prev.end, d.end);\n          }\n        }\n      }\n      s.appendRight(stmt.end, \"; \" + stubs.join(\" \"));\n    }\n  }\n  for (const stmt of ast.body) {\n    if (serverExportStmts.has(stmt) || stmt.type === \"ImportDeclaration\") continue;\n    if ((stmt.type === \"FunctionDeclaration\" || stmt.type === \"ClassDeclaration\" || stmt.type === \"TSEnumDeclaration\") && stmt.id && exclusiveServerBindings.has(stmt.id.name)) {\n      let end = stmt.end;\n      if (code[end] === \";\") end++;\n      if (code[end] === \"\\r\" && code[end + 1] === \"\\n\") end += 2;\n      else if (code[end] === \"\\n\") end += 1;\n      overwritePreservingLines(stmt.start, end);\n    } else if (stmt.type === \"VariableDeclaration\") {\n      const allExclusive = stmt.declarations.every((d) => {\n        const names = /* @__PURE__ */ new Set();\n        extractPatternBindings(d.id, names);\n        return Array.from(names).every((n) => exclusiveServerBindings.has(n));\n      });\n      if (allExclusive) {\n        let end = stmt.end;\n        if (code[end] === \";\") end++;\n        if (code[end] === \"\\r\" && code[end + 1] === \"\\n\") end += 2;\n        else if (code[end] === \"\\n\") end += 1;\n        overwritePreservingLines(stmt.start, end);\n      } else {\n        for (let i = stmt.declarations.length - 1; i >= 0; i--) {\n          const d = stmt.declarations[i];\n          const names = /* @__PURE__ */ new Set();\n          extractPatternBindings(d.id, names);\n          if (Array.from(names).every((n) => exclusiveServerBindings.has(n))) {\n            if (i === 0) {\n              const next = stmt.declarations[1];\n              overwritePreservingLines(d.start, next.start);\n            } else {\n              const prev = stmt.declarations[i - 1];\n              overwritePreservingLines(prev.end, d.end);\n            }\n          }\n        }\n      }\n    } else if (stmt.type === \"ClassDeclaration\" && stmt.id && exclusiveServerBindings.has(stmt.id.name)) {\n      let end = stmt.end;\n      if (code[end] === \";\") end++;\n      if (code[end] === \"\\r\" && code[end + 1] === \"\\n\") end += 2;\n      else if (code[end] === \"\\n\") end += 1;\n      overwritePreservingLines(stmt.start, end);\n    }\n  }\n  for (const stmt of ast.body) {\n    if (stmt.type !== \"ImportDeclaration\") continue;\n    if (stmt.importKind === \"type\") continue;\n    if (!stmt.specifiers || stmt.specifiers.length === 0) continue;\n    const kept = stmt.specifiers.filter((sp) => {\n      if (sp.importKind === \"type\") return true;\n      return !exclusiveServerBindings.has(sp.local.name);\n    });\n    if (kept.length === 0) {\n      let end = stmt.end;\n      if (code[end] === \";\") end++;\n      if (code[end] === \"\\r\" && code[end + 1] === \"\\n\") end += 2;\n      else if (code[end] === \"\\n\") end += 1;\n      overwritePreservingLines(stmt.start, end);\n    } else if (kept.length < stmt.specifiers.length) {\n      const declCode = code.slice(stmt.start, stmt.source.start);\n      const prefixMatch = declCode.match(/^import\\s+/);\n      const prefixEnd = stmt.start + (prefixMatch ? prefixMatch[0].length : 7);\n      let pos = stmt.source.start - 1;\n      while (pos >= 0 && /\\s/.test(code[pos])) pos--;\n      const fromStart = pos - 3;\n      const defaultSpec = kept.find((sp) => sp.type === \"ImportDefaultSpecifier\");\n      const namespaceSpec = kept.find((sp) => sp.type === \"ImportNamespaceSpecifier\");\n      const namedSpecs = kept.filter((sp) => sp.type === \"ImportSpecifier\");\n      const parts = [];\n      if (defaultSpec) parts.push(defaultSpec.local.name);\n      if (namespaceSpec) parts.push(\"* as \" + namespaceSpec.local.name);\n      if (namedSpecs.length > 0) {\n        const namedStr = namedSpecs.map((sp) => {\n          const typePrefix = sp.importKind === \"type\" ? \"type \" : \"\";\n          const importedName = sp.imported.raw || sp.imported.name;\n          if (importedName === sp.local.name) {\n            return typePrefix + sp.local.name;\n          }\n          return typePrefix + importedName + \" as \" + sp.local.name;\n        }).join(\", \");\n        parts.push(\"{ \" + namedStr + \" }\");\n      }\n      overwritePreservingLines(prefixEnd, fromStart, parts.join(\", \") + \" \");\n    }\n  }\n  console.info(\n    ` \\u{1F9F9} [one]      ${relative(process.cwd(), id)} removed ${removedFunctions.length} server-only exports`\n  );\n  return {\n    code: s.toString(),\n    map: s.generateMap({ hires: \"boundary\", source: id, includeContent: true })\n  };\n}\nexport {\n  clientTreeShakePlugin,\n  transformTreeShakeClient\n};\n//# sourceMappingURL=clientTreeShakePlugin.js.map\n"],"mappings":";;;;;;AAIA,MAAM,yBAAyB,SAAS;CACtC,MAAM,UAAU,MAAM,WAAW;CACjC,MAAM,aAAa,MAAM,cAAc;CACvC,OAAO;EACL,MAAM;EACN,SAAS;EACT,GAAG,YAAY,UAAU,EACvB,mBAAmB,KAAK;GACtB,OAAO,IAAI,SAAS,YAAY,IAAI,SAAS,SAAS,IAAI,SAAS;EACrE,EACF;EACA,WAAW;GACT,OAAO;GACP,MAAM,QAAQ,MAAM,IAAI,UAAU;IAChC,IAAI,YAAY,UAAU,KAAK,aAAa,SAAS,OAAO;KAC1D;IACF;IACA,IAAI,CAAC,qBAAqB,KAAK,QAAQ,EAAE,CAAC,GAAG;KAC3C;IACF;IACA,IAAI,eAAe,KAAK,EAAE,GAAG;KAC3B;IACF;IACA,MAAM,MAAM,MAAM,yBAAyB,MAAM,IAAI,QAAQ,IAAI,GAAG,UAAU;IAC9E,OAAO;GACT;EACF;CACF;AACF;AACA,SAAS,uBAAuB,MAAM,OAAO;CAC3C,IAAI,CAAC,MAAM;CACX,QAAQ,KAAK,MAAb;EACE,KAAK;GACH,MAAM,IAAI,KAAK,IAAI;GACnB;EACF,KAAK;GACH,KAAK,MAAM,QAAQ,KAAK,YAAY;IAClC,IAAI,KAAK,SAAS,YAAY;KAC5B,uBAAuB,KAAK,OAAO,KAAK;IAC1C,OAAO,IAAI,KAAK,SAAS,eAAe;KACtC,uBAAuB,KAAK,UAAU,KAAK;IAC7C;GACF;GACA;EACF,KAAK;GACH,KAAK,MAAM,WAAW,KAAK,UAAU;IACnC,IAAI,SAAS;KACX,uBAAuB,SAAS,KAAK;IACvC;GACF;GACA;EACF,KAAK;GACH,uBAAuB,KAAK,MAAM,KAAK;GACvC;EACF,KAAK;GACH,uBAAuB,KAAK,UAAU,KAAK;GAC3C;EACF,KAAK;GACH,uBAAuB,KAAK,WAAW,KAAK;GAC5C;CACJ;AACF;AACA,SAAS,yBAAyB,UAAU,gBAAgB;CAC1D,MAAM,6BAA6B,IAAI,IAAI;CAC3C,MAAM,aAAa,CAAC;CACpB,SAAS,WAAW,MAAM;EACxB,KAAK,IAAI,IAAI,WAAW,SAAS,GAAG,KAAK,GAAG,KAAK;GAC/C,IAAI,WAAW,EAAE,CAAC,IAAI,IAAI,GAAG,OAAO;EACtC;EACA,OAAO;CACT;CACA,SAAS,gBAAgB,MAAM;EAC7B,IAAI,CAAC,WAAW,IAAI,KAAK,eAAe,IAAI,IAAI,GAAG;GACjD,WAAW,IAAI,IAAI;EACrB;CACF;CACA,SAAS,KAAK,MAAM;EAClB,IAAI,CAAC,QAAQ,OAAO,SAAS,UAAU;EACvC,IAAI,KAAK,SAAS,sBAAsB,KAAK,SAAS,qBAAqB,KAAK,SAAS,4BAA4B,KAAK,SAAS,4BAA4B,KAAK,SAAS,gCAAgC,KAAK,SAAS,gCAAgC;GACzP;EACF;EACA,IAAI,KAAK,SAAS,oBAAoB,KAAK,SAAS,qBAAqB,KAAK,SAAS,2BAA2B,KAAK,SAAS,uBAAuB;GACrJ,KAAK,KAAK,UAAU;GACpB;EACF;EACA,SAAS,uBAAuB,KAAK;GACnC,IAAI,CAAC,OAAO,OAAO,QAAQ,UAAU;GACrC,QAAQ,IAAI,MAAZ;IACE,KAAK;KACH,KAAK,IAAI,KAAK;KACd,uBAAuB,IAAI,IAAI;KAC/B;IACF,KAAK;KACH,KAAK,MAAM,QAAQ,IAAI,YAAY;MACjC,IAAI,KAAK,SAAS,YAAY;OAC5B,IAAI,KAAK,UAAU;QACjB,KAAK,KAAK,GAAG;OACf;OACA,uBAAuB,KAAK,KAAK;MACnC,OAAO,IAAI,KAAK,SAAS,eAAe;OACtC,uBAAuB,KAAK,QAAQ;MACtC;KACF;KACA;IACF,KAAK;KACH,KAAK,MAAM,WAAW,IAAI,UAAU;MAClC,IAAI,SAAS;OACX,uBAAuB,OAAO;MAChC;KACF;KACA;IACF,KAAK;KACH,uBAAuB,IAAI,QAAQ;KACnC;IACF,KAAK;KACH,uBAAuB,IAAI,SAAS;KACpC;GACJ;EACF;EACA,IAAI,KAAK,SAAS,yBAAyB,KAAK,SAAS,wBAAwB,KAAK,SAAS,2BAA2B;GACxH,IAAI,UAAU,SAAS,GAAG;IACxB,IAAI,CAAC,KAAK,OAAO,MAAM,UAAU;IACjC,IAAI,EAAE,SAAS,yBAAyB,EAAE,SAAS,wBAAwB,EAAE,SAAS,2BAA2B;KAC/G;IACF;IACA,IAAI,EAAE,SAAS,yBAAyB,EAAE,SAAS,OAAO;KACxD,KAAK,MAAM,KAAK,EAAE,cAAc;MAC9B,uBAAuB,EAAE,IAAI,KAAK;KACpC;IACF;IACA,KAAK,MAAM,KAAK,OAAO,KAAK,CAAC,GAAG;KAC9B,IAAI,MAAM,UAAU;KACpB,MAAM,MAAM,EAAE;KACd,IAAI,MAAM,QAAQ,GAAG,GAAG;MACtB,KAAK,MAAM,QAAQ,KAAK,QAAQ,IAAI;KACtC,OAAO,IAAI,OAAO,OAAO,QAAQ,UAAU;MACzC,QAAQ,GAAG;KACb;IACF;GACF;GACA,MAAM,wBAAwB,IAAI,IAAI;GACtC,IAAI,KAAK,SAAS,wBAAwB,KAAK,IAAI;IACjD,MAAM,IAAI,KAAK,GAAG,IAAI;GACxB;GACA,IAAI,KAAK,QAAQ;IACf,KAAK,MAAM,SAAS,KAAK,QAAQ;KAC/B,uBAAuB,KAAK;KAC5B,uBAAuB,OAAO,KAAK;IACrC;GACF;GACA,QAAQ,KAAK,IAAI;GACjB,WAAW,KAAK,KAAK;GACrB,KAAK,KAAK,IAAI;GACd,WAAW,IAAI;GACf;EACF;EACA,IAAI,KAAK,SAAS,kBAAkB;GAClC,MAAM,wBAAwB,IAAI,IAAI;GACtC,KAAK,MAAM,QAAQ,KAAK,MAAM;IAC5B,IAAI,KAAK,SAAS,0BAA0B,KAAK,SAAS,SAAS,KAAK,SAAS,UAAU;KACzF,KAAK,MAAM,QAAQ,KAAK,cAAc;MACpC,uBAAuB,KAAK,IAAI,KAAK;KACvC;IACF,OAAO,IAAI,KAAK,SAAS,yBAAyB,KAAK,IAAI;KACzD,MAAM,IAAI,KAAK,GAAG,IAAI;IACxB,OAAO,IAAI,KAAK,SAAS,sBAAsB,KAAK,IAAI;KACtD,MAAM,IAAI,KAAK,GAAG,IAAI;IACxB;GACF;GACA,WAAW,KAAK,KAAK;GACrB,KAAK,MAAM,QAAQ,KAAK,MAAM;IAC5B,KAAK,IAAI;GACX;GACA,WAAW,IAAI;GACf;EACF;EACA,IAAI,KAAK,SAAS,eAAe;GAC/B,MAAM,wBAAwB,IAAI,IAAI;GACtC,IAAI,KAAK,OAAO;IACd,uBAAuB,KAAK,OAAO,KAAK;GAC1C;GACA,WAAW,KAAK,KAAK;GACrB,KAAK,KAAK,IAAI;GACd,WAAW,IAAI;GACf;EACF;EACA,IAAI,KAAK,SAAS,kBAAkB,KAAK,SAAS,oBAAoB,KAAK,SAAS,kBAAkB;GACpG,MAAM,wBAAwB,IAAI,IAAI;GACtC,MAAM,aAAa,KAAK,QAAQ,KAAK;GACrC,IAAI,cAAc,WAAW,SAAS,yBAAyB,WAAW,SAAS,OAAO;IACxF,KAAK,MAAM,QAAQ,WAAW,cAAc;KAC1C,uBAAuB,KAAK,IAAI,KAAK;IACvC;GACF;GACA,WAAW,KAAK,KAAK;GACrB,IAAI,KAAK,MAAM,KAAK,KAAK,IAAI;GAC7B,IAAI,KAAK,MAAM,KAAK,KAAK,IAAI;GAC7B,IAAI,KAAK,OAAO,KAAK,KAAK,KAAK;GAC/B,IAAI,KAAK,MAAM,KAAK,KAAK,IAAI;GAC7B,IAAI,KAAK,QAAQ,KAAK,KAAK,MAAM;GACjC,KAAK,KAAK,IAAI;GACd,WAAW,IAAI;GACf;EACF;EACA,IAAI,KAAK,SAAS,cAAc;GAC9B,gBAAgB,KAAK,IAAI;GACzB;EACF;EACA,IAAI,KAAK,SAAS,qBAAqB;GACrC,IAAI,KAAK,MAAM;IACb,IAAI,KAAK,KAAK,SAAS,iBAAiB;KACtC,IAAI,KAAK,KAAK,QAAQ,SAAS,KAAK,KAAK,KAAK,IAAI,GAAG;MACnD,gBAAgB,KAAK,KAAK,IAAI;KAChC;IACF,OAAO,IAAI,KAAK,KAAK,SAAS,uBAAuB;KACnD,IAAI,UAAU,KAAK,KAAK;KACxB,OAAO,WAAW,QAAQ,SAAS,uBAAuB;MACxD,UAAU,QAAQ;KACpB;KACA,IAAI,WAAW,QAAQ,SAAS,iBAAiB;MAC/C,gBAAgB,QAAQ,IAAI;KAC9B;IACF;GACF;GACA,IAAI,KAAK,YAAY;IACnB,KAAK,MAAM,QAAQ,KAAK,YAAY;KAClC,KAAK,IAAI;IACX;GACF;GACA;EACF;EACA,IAAI,KAAK,SAAS,gBAAgB;GAChC,IAAI,KAAK,OAAO,KAAK,KAAK,KAAK;GAC/B;EACF;EACA,IAAI,KAAK,SAAS,qBAAqB;GACrC;EACF;EACA,IAAI,KAAK,SAAS,YAAY;GAC5B,IAAI,KAAK,UAAU;IACjB,KAAK,KAAK,GAAG;GACf;GACA,KAAK,KAAK,KAAK;GACf;EACF;EACA,IAAI,KAAK,SAAS,oBAAoB;GACpC,KAAK,KAAK,MAAM;GAChB,IAAI,KAAK,UAAU;IACjB,KAAK,KAAK,QAAQ;GACpB;GACA;EACF;EACA,IAAI,KAAK,SAAS,sBAAsB;GACtC,uBAAuB,KAAK,EAAE;GAC9B,IAAI,KAAK,MAAM;IACb,KAAK,KAAK,IAAI;GAChB;GACA;EACF;EACA,IAAI,KAAK,SAAS,mBAAmB;GACnC,IAAI,KAAK,SAAS,KAAK,MAAM,SAAS,cAAc;IAClD,gBAAgB,KAAK,MAAM,IAAI;GACjC;GACA;EACF;EACA,KAAK,MAAM,OAAO,OAAO,KAAK,IAAI,GAAG;GACnC,IAAI,QAAQ,UAAU;GACtB,MAAM,QAAQ,KAAK;GACnB,IAAI,MAAM,QAAQ,KAAK,GAAG;IACxB,KAAK,MAAM,QAAQ,OAAO;KACxB,IAAI,QAAQ,OAAO,SAAS,UAAU,KAAK,IAAI;IACjD;GACF,OAAO,IAAI,SAAS,OAAO,UAAU,UAAU;IAC7C,KAAK,KAAK;GACZ;EACF;CACF;CACA,KAAK,QAAQ;CACb,OAAO;AACT;AACA,eAAe,yBAAyB,MAAM,IAAI,MAAM,aAAa,OAAO;CAC1E,IAAI,CAAC,8BAA8B,KAAK,IAAI,GAAG;EAC7C;CACF;CACA,MAAM,SAAS,QAAQ,IAAI,aAAa;CACxC,MAAM,YAAY,MAAM,WAAU,CAAE,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;CAC7D,IAAI;CACJ,IAAI;EACF,cAAc,UAAU,UAAU,IAAI;EACtC,IAAI,YAAY,UAAU,YAAY,OAAO,SAAS,GAAG;GACvD,MAAM,eAAe,YAAY,OAAO,KAAK,MAAM,EAAE,OAAO,CAAC,CAAC,KAAK,IAAI;GACvE,IAAI,QAAQ;IACV,MAAM,IAAI,MACR,yBAAyB,GAAG;EACpC,cACM;GACF;GACA,QAAQ,KACN,mCAAmC,GAAG,wBACtC,YACF;GACA;EACF;CACF,SAAS,OAAO;EACd,IAAI,QAAQ;GACV,MAAM,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC;EAChE;EACA,MAAM,eAAe,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;EAC1E,QAAQ,KACN,mCAAmC,GAAG,wBACtC,YACF;EACA;CACF;CACA,MAAM,MAAM,YAAY;CACxB,IAAI;EACF,OAAO,kBAAkB,MAAM,IAAI,MAAM,KAAK,UAAU;CAC1D,SAAS,OAAO;EACd,IAAI,QAAQ;GACV,MAAM,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC;EAChE;EACA,MAAM,eAAe,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;EAC1E,QAAQ,KACN,mCAAmC,GAAG,0BACtC,YACF;EACA;CACF;AACF;AACA,SAAS,kBAAkB,MAAM,IAAI,MAAM,KAAK,YAAY;CAC1D,MAAM,UAAU;EACd,QAAQ;EACR,sBAAsB;CACxB;CACA,MAAM,oCAAoC,IAAI,IAAI;CAClD,KAAK,MAAM,QAAQ,IAAI,MAAM;EAC3B,IAAI,KAAK,SAAS,4BAA4B,KAAK,aAAa;GAC9D,IAAI,KAAK,YAAY,SAAS,uBAAuB;IACnD,MAAM,SAAS,KAAK,YAAY,IAAI;IACpC,IAAI,WAAW,YAAY,WAAW,wBAAwB;KAC5D,QAAQ,UAAU;KAClB,kBAAkB,IAAI,MAAM;MAC1B,uBAAuB,IAAI,IAAI,CAAC,MAAM,CAAC;MACvC,YAAY;MACZ,qCAAqC,IAAI,IAAI;KAC/C,CAAC;IACH;GACF,OAAO,IAAI,KAAK,YAAY,SAAS,uBAAuB;IAC1D,MAAM,QAAQ,CAAC;IACf,KAAK,MAAM,KAAK,KAAK,YAAY,cAAc;KAC7C,IAAI,EAAE,IAAI,SAAS,iBAAiB,EAAE,GAAG,SAAS,YAAY,EAAE,GAAG,SAAS,yBAAyB;MACnG,MAAM,KAAK,CAAC;MACZ,QAAQ,EAAE,GAAG,QAAQ;KACvB;IACF;IACA,IAAI,MAAM,SAAS,GAAG;KACpB,kBAAkB,IAAI,MAAM;MAC1B,OAAO,IAAI,IAAI,MAAM,KAAK,MAAM,EAAE,GAAG,IAAI,CAAC;MAC1C,YAAY,MAAM,WAAW,KAAK,YAAY,aAAa;MAC3D,qBAAqB,IAAI,IAAI,KAAK;KACpC,CAAC;IACH;GACF;EACF;CACF;CACA,MAAM,mBAAmB,OAAO,KAAK,OAAO,CAAC,CAAC,QAAQ,MAAM,QAAQ,EAAE;CACtE,IAAI,iBAAiB,WAAW,GAAG;EACjC;CACF;CACA,MAAM,iCAAiC,IAAI,IAAI;CAC/C,KAAK,MAAM,QAAQ,IAAI,MAAM;EAC3B,IAAI,KAAK,SAAS,qBAAqB;GACrC,MAAM,aAAa,KAAK,eAAe;GACvC,KAAK,MAAM,MAAM,KAAK,YAAY;IAChC,MAAM,SAAS,cAAc,GAAG,eAAe;IAC/C,eAAe,IAAI,GAAG,MAAM,MAAM;KAChC,MAAM;KACN;KACA,MAAM;KACN;IACF,CAAC;GACH;EACF,OAAO,IAAI,KAAK,SAAS,4BAA4B,KAAK,aAAa;GACrE,MAAM,OAAO,KAAK;GAClB,IAAI,KAAK,SAAS,yBAAyB,KAAK,IAAI;IAClD,eAAe,IAAI,KAAK,GAAG,MAAM;KAAE,MAAM;KAAY;KAAM,MAAM;IAAK,CAAC;GACzE,OAAO,IAAI,KAAK,SAAS,uBAAuB;IAC9C,KAAK,MAAM,KAAK,KAAK,cAAc;KACjC,MAAM,wBAAwB,IAAI,IAAI;KACtC,uBAAuB,EAAE,IAAI,KAAK;KAClC,KAAK,MAAM,QAAQ,OAAO;MACxB,eAAe,IAAI,MAAM;OAAE,MAAM;OAAY;OAAM,MAAM;MAAE,CAAC;KAC9D;IACF;GACF,OAAO,IAAI,KAAK,SAAS,sBAAsB,KAAK,IAAI;IACtD,eAAe,IAAI,KAAK,GAAG,MAAM;KAAE,MAAM;KAAS;KAAM,MAAM;IAAK,CAAC;GACtE;EACF,OAAO,IAAI,KAAK,SAAS,yBAAyB,KAAK,IAAI;GACzD,eAAe,IAAI,KAAK,GAAG,MAAM;IAAE,MAAM;IAAY;IAAM,MAAM;GAAK,CAAC;EACzE,OAAO,IAAI,KAAK,SAAS,uBAAuB;GAC9C,KAAK,MAAM,KAAK,KAAK,cAAc;IACjC,MAAM,wBAAwB,IAAI,IAAI;IACtC,uBAAuB,EAAE,IAAI,KAAK;IAClC,KAAK,MAAM,QAAQ,OAAO;KACxB,eAAe,IAAI,MAAM;MAAE,MAAM;MAAY;MAAM,MAAM;KAAE,CAAC;IAC9D;GACF;EACF,OAAO,IAAI,KAAK,SAAS,sBAAsB,KAAK,IAAI;GACtD,eAAe,IAAI,KAAK,GAAG,MAAM;IAAE,MAAM;IAAS;IAAM,MAAM;GAAK,CAAC;EACtE,OAAO,IAAI,KAAK,SAAS,uBAAuB,KAAK,IAAI;GACvD,eAAe,IAAI,KAAK,GAAG,MAAM;IAAE,MAAM;IAAQ;IAAM,MAAM;GAAK,CAAC;EACrE;CACF;CACA,MAAM,kBAAkB,IAAI,IAAI,eAAe,KAAK,CAAC;CACrD,MAAM,+BAA+B,IAAI,IAAI;CAC7C,MAAM,iCAAiC,IAAI,IAAI;CAC/C,KAAK,MAAM,CAAC,MAAM,SAAS,gBAAgB;EACzC,IAAI,KAAK,SAAS,UAAU;GAC1B,aAAa,IAAI,sBAAsB,IAAI,IAAI,CAAC;EAClD,OAAO,IAAI,KAAK,SAAS,YAAY;GACnC,aAAa,IAAI,MAAM,yBAAyB,KAAK,MAAM,eAAe,CAAC;EAC7E,OAAO,IAAI,KAAK,SAAS,YAAY;GACnC,MAAM,OAAO,yBAAyB,KAAK,MAAM,eAAe;GAChE,KAAK,OAAO,IAAI;GAChB,aAAa,IAAI,MAAM,IAAI;EAC7B,OAAO,IAAI,KAAK,SAAS,SAAS;GAChC,aAAa,IAAI,MAAM,yBAAyB,KAAK,MAAM,eAAe,CAAC;EAC7E,OAAO,IAAI,KAAK,SAAS,QAAQ;GAC/B,aAAa,IAAI,MAAM,yBAAyB,KAAK,MAAM,eAAe,CAAC;EAC7E;CACF;CACA,MAAM,+BAA+B,IAAI,IAAI;CAC7C,MAAM,cAAc,CAAC;CACrB,KAAK,MAAM,MAAM,kBAAkB;EACjC,MAAM,OAAO,aAAa,IAAI,EAAE;EAChC,IAAI,MAAM;GACR,KAAK,MAAM,OAAO,MAAM,YAAY,KAAK,GAAG;EAC9C;CACF;CACA,OAAO,YAAY,SAAS,GAAG;EAC7B,MAAM,OAAO,YAAY,MAAM;EAC/B,IAAI,aAAa,IAAI,IAAI,GAAG;EAC5B,aAAa,IAAI,IAAI;EACrB,MAAM,OAAO,aAAa,IAAI,IAAI;EAClC,IAAI,MAAM;GACR,KAAK,MAAM,OAAO,MAAM;IACtB,IAAI,CAAC,aAAa,IAAI,GAAG,GAAG,YAAY,KAAK,GAAG;GAClD;EACF;CACF;CACA,KAAK,MAAM,QAAQ,IAAI,MAAM;EAC3B,IAAI,KAAK,SAAS,qBAAqB;GACrC;EACF;EACA,IAAI,kBAAkB,IAAI,IAAI,GAAG;GAC/B,MAAM,OAAO,kBAAkB,IAAI,IAAI;GACvC,IAAI,CAAC,KAAK,cAAc,KAAK,aAAa,cAAc;IACtD,KAAK,MAAM,KAAK,KAAK,YAAY,cAAc;KAC7C,IAAI,CAAC,KAAK,oBAAoB,IAAI,CAAC,GAAG;MACpC,MAAM,QAAQ,yBAAyB,GAAG,eAAe;MACzD,KAAK,MAAM,OAAO,OAAO,eAAe,IAAI,GAAG;KACjD;IACF;GACF;GACA;EACF;EACA,IAAI,KAAK,SAAS,uBAAuB;GACvC,MAAM,cAAc,KAAK,aAAa,OAAO,MAAM;IACjD,MAAM,wBAAwB,IAAI,IAAI;IACtC,uBAAuB,EAAE,IAAI,KAAK;IAClC,OAAO,MAAM,OAAO,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,OAAO,MAAM,aAAa,IAAI,CAAC,CAAC;GAC7E,CAAC;GACD,IAAI,CAAC,aAAa;IAChB,KAAK,MAAM,KAAK,KAAK,cAAc;KACjC,MAAM,wBAAwB,IAAI,IAAI;KACtC,uBAAuB,EAAE,IAAI,KAAK;KAClC,MAAM,WAAW,MAAM,OAAO,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,OAAO,MAAM,aAAa,IAAI,CAAC,CAAC;KACrF,IAAI,CAAC,UAAU;MACb,MAAM,QAAQ,yBAAyB,GAAG,eAAe;MACzD,KAAK,MAAM,OAAO,OAAO,eAAe,IAAI,GAAG;KACjD;IACF;GACF;GACA;EACF;EACA,KAAK,KAAK,SAAS,yBAAyB,KAAK,SAAS,sBAAsB,KAAK,SAAS,wBAAwB,KAAK,MAAM,aAAa,IAAI,KAAK,GAAG,IAAI,GAAG;GAC/J;EACF;EACA,MAAM,OAAO,yBAAyB,MAAM,eAAe;EAC3D,KAAK,MAAM,OAAO,MAAM,eAAe,IAAI,GAAG;CAChD;CACA,MAAM,+BAA+B,IAAI,IAAI;CAC7C,MAAM,cAAc,MAAM,KAAK,cAAc;CAC7C,OAAO,YAAY,SAAS,GAAG;EAC7B,MAAM,OAAO,YAAY,MAAM;EAC/B,IAAI,aAAa,IAAI,IAAI,GAAG;EAC5B,aAAa,IAAI,IAAI;EACrB,IAAI,SAAS,YAAY,SAAS,wBAAwB;EAC1D,MAAM,OAAO,aAAa,IAAI,IAAI;EAClC,IAAI,MAAM;GACR,KAAK,MAAM,OAAO,MAAM;IACtB,IAAI,CAAC,aAAa,IAAI,GAAG,GAAG,YAAY,KAAK,GAAG;GAClD;EACF;CACF;CACA,MAAM,0CAA0C,IAAI,IAAI;CACxD,KAAK,MAAM,QAAQ,cAAc;EAC/B,IAAI,CAAC,aAAa,IAAI,IAAI,GAAG;GAC3B,wBAAwB,IAAI,IAAI;EAClC;CACF;CACA,MAAM,IAAI,IAAI,YAAY,IAAI;CAC9B,MAAM,4BAA4B,OAAO,KAAK,cAAc,OAAO;EACjE,MAAM,aAAa,KAAK,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,aAAa,CAAC,EAAE,KAAK,EAAE,KAAK;EAC5E,EAAE,UAAU,OAAO,KAAK,cAAc,UAAU;CAClD;CACA,KAAK,MAAM,CAAC,MAAM,SAAS,mBAAmB;EAC5C,MAAM,QAAQ,CAAC;EACf,IAAI,KAAK,MAAM,IAAI,QAAQ,GAAG;GAC5B,IAAI,MAAM;IACR,MAAM,WAAW,SAAS,MAAM,EAAE,CAAC,CAAC,QAAQ,OAAO,GAAG;IACtD,MAAM,SAAS,WAAW,QAAQ,SAAS,EAAE,CAAC,CAAC,QAAQ,OAAO,EAAE,IAAI;IACpE,MAAM,UAAU,QAAQ,SAAS,WAAW,MAAM,IAAI,SAAS,MAAM,OAAO,MAAM,IAAI;IACtF,MAAM,KAAK,sBAAsB,OAAO,CAAC;GAC3C,OAAO;IACL,MAAM,KAAK,mBAAmB;GAChC;EACF;EACA,IAAI,KAAK,MAAM,IAAI,sBAAsB,GAAG;GAC1C,MAAM,KAAK,4CAA4C;EACzD;EACA,IAAI,KAAK,YAAY;GACnB,yBAAyB,KAAK,OAAO,KAAK,KAAK,MAAM,KAAK,GAAG,CAAC;EAChE,OAAO;GACL,MAAM,OAAO,KAAK;GAClB,KAAK,IAAI,IAAI,KAAK,aAAa,SAAS,GAAG,KAAK,GAAG,KAAK;IACtD,MAAM,IAAI,KAAK,aAAa;IAC5B,IAAI,KAAK,oBAAoB,IAAI,CAAC,GAAG;KACnC,IAAI,MAAM,GAAG;MACX,MAAM,OAAO,KAAK,aAAa;MAC/B,yBAAyB,EAAE,OAAO,KAAK,KAAK;KAC9C,OAAO;MACL,MAAM,OAAO,KAAK,aAAa,IAAI;MACnC,yBAAyB,KAAK,KAAK,EAAE,GAAG;KAC1C;IACF;GACF;GACA,EAAE,YAAY,KAAK,KAAK,OAAO,MAAM,KAAK,GAAG,CAAC;EAChD;CACF;CACA,KAAK,MAAM,QAAQ,IAAI,MAAM;EAC3B,IAAI,kBAAkB,IAAI,IAAI,KAAK,KAAK,SAAS,qBAAqB;EACtE,KAAK,KAAK,SAAS,yBAAyB,KAAK,SAAS,sBAAsB,KAAK,SAAS,wBAAwB,KAAK,MAAM,wBAAwB,IAAI,KAAK,GAAG,IAAI,GAAG;GAC1K,IAAI,MAAM,KAAK;GACf,IAAI,KAAK,SAAS,KAAK;GACvB,IAAI,KAAK,SAAS,QAAQ,KAAK,MAAM,OAAO,MAAM,OAAO;QACpD,IAAI,KAAK,SAAS,MAAM,OAAO;GACpC,yBAAyB,KAAK,OAAO,GAAG;EAC1C,OAAO,IAAI,KAAK,SAAS,uBAAuB;GAC9C,MAAM,eAAe,KAAK,aAAa,OAAO,MAAM;IAClD,MAAM,wBAAwB,IAAI,IAAI;IACtC,uBAAuB,EAAE,IAAI,KAAK;IAClC,OAAO,MAAM,KAAK,KAAK,CAAC,CAAC,OAAO,MAAM,wBAAwB,IAAI,CAAC,CAAC;GACtE,CAAC;GACD,IAAI,cAAc;IAChB,IAAI,MAAM,KAAK;IACf,IAAI,KAAK,SAAS,KAAK;IACvB,IAAI,KAAK,SAAS,QAAQ,KAAK,MAAM,OAAO,MAAM,OAAO;SACpD,IAAI,KAAK,SAAS,MAAM,OAAO;IACpC,yBAAyB,KAAK,OAAO,GAAG;GAC1C,OAAO;IACL,KAAK,IAAI,IAAI,KAAK,aAAa,SAAS,GAAG,KAAK,GAAG,KAAK;KACtD,MAAM,IAAI,KAAK,aAAa;KAC5B,MAAM,wBAAwB,IAAI,IAAI;KACtC,uBAAuB,EAAE,IAAI,KAAK;KAClC,IAAI,MAAM,KAAK,KAAK,CAAC,CAAC,OAAO,MAAM,wBAAwB,IAAI,CAAC,CAAC,GAAG;MAClE,IAAI,MAAM,GAAG;OACX,MAAM,OAAO,KAAK,aAAa;OAC/B,yBAAyB,EAAE,OAAO,KAAK,KAAK;MAC9C,OAAO;OACL,MAAM,OAAO,KAAK,aAAa,IAAI;OACnC,yBAAyB,KAAK,KAAK,EAAE,GAAG;MAC1C;KACF;IACF;GACF;EACF,OAAO,IAAI,KAAK,SAAS,sBAAsB,KAAK,MAAM,wBAAwB,IAAI,KAAK,GAAG,IAAI,GAAG;GACnG,IAAI,MAAM,KAAK;GACf,IAAI,KAAK,SAAS,KAAK;GACvB,IAAI,KAAK,SAAS,QAAQ,KAAK,MAAM,OAAO,MAAM,OAAO;QACpD,IAAI,KAAK,SAAS,MAAM,OAAO;GACpC,yBAAyB,KAAK,OAAO,GAAG;EAC1C;CACF;CACA,KAAK,MAAM,QAAQ,IAAI,MAAM;EAC3B,IAAI,KAAK,SAAS,qBAAqB;EACvC,IAAI,KAAK,eAAe,QAAQ;EAChC,IAAI,CAAC,KAAK,cAAc,KAAK,WAAW,WAAW,GAAG;EACtD,MAAM,OAAO,KAAK,WAAW,QAAQ,OAAO;GAC1C,IAAI,GAAG,eAAe,QAAQ,OAAO;GACrC,OAAO,CAAC,wBAAwB,IAAI,GAAG,MAAM,IAAI;EACnD,CAAC;EACD,IAAI,KAAK,WAAW,GAAG;GACrB,IAAI,MAAM,KAAK;GACf,IAAI,KAAK,SAAS,KAAK;GACvB,IAAI,KAAK,SAAS,QAAQ,KAAK,MAAM,OAAO,MAAM,OAAO;QACpD,IAAI,KAAK,SAAS,MAAM,OAAO;GACpC,yBAAyB,KAAK,OAAO,GAAG;EAC1C,OAAO,IAAI,KAAK,SAAS,KAAK,WAAW,QAAQ;GAC/C,MAAM,WAAW,KAAK,MAAM,KAAK,OAAO,KAAK,OAAO,KAAK;GACzD,MAAM,cAAc,SAAS,MAAM,YAAY;GAC/C,MAAM,YAAY,KAAK,SAAS,cAAc,YAAY,EAAE,CAAC,SAAS;GACtE,IAAI,MAAM,KAAK,OAAO,QAAQ;GAC9B,OAAO,OAAO,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG;GACzC,MAAM,YAAY,MAAM;GACxB,MAAM,cAAc,KAAK,MAAM,OAAO,GAAG,SAAS,wBAAwB;GAC1E,MAAM,gBAAgB,KAAK,MAAM,OAAO,GAAG,SAAS,0BAA0B;GAC9E,MAAM,aAAa,KAAK,QAAQ,OAAO,GAAG,SAAS,iBAAiB;GACpE,MAAM,QAAQ,CAAC;GACf,IAAI,aAAa,MAAM,KAAK,YAAY,MAAM,IAAI;GAClD,IAAI,eAAe,MAAM,KAAK,UAAU,cAAc,MAAM,IAAI;GAChE,IAAI,WAAW,SAAS,GAAG;IACzB,MAAM,WAAW,WAAW,KAAK,OAAO;KACtC,MAAM,aAAa,GAAG,eAAe,SAAS,UAAU;KACxD,MAAM,eAAe,GAAG,SAAS,OAAO,GAAG,SAAS;KACpD,IAAI,iBAAiB,GAAG,MAAM,MAAM;MAClC,OAAO,aAAa,GAAG,MAAM;KAC/B;KACA,OAAO,aAAa,eAAe,SAAS,GAAG,MAAM;IACvD,CAAC,CAAC,CAAC,KAAK,IAAI;IACZ,MAAM,KAAK,OAAO,WAAW,IAAI;GACnC;GACA,yBAAyB,WAAW,WAAW,MAAM,KAAK,IAAI,IAAI,GAAG;EACvE;CACF;CACA,QAAQ,KACN,yBAAyB,SAAS,QAAQ,IAAI,GAAG,EAAE,EAAE,WAAW,iBAAiB,OAAO,qBAC1F;CACA,OAAO;EACL,MAAM,EAAE,SAAS;EACjB,KAAK,EAAE,YAAY;GAAE,OAAO;GAAY,QAAQ;GAAI,gBAAgB;EAAK,CAAC;CAC5E;AACF"}