Urara-Blog/node_modules/.pnpm-store/v3/files/58/35d3b5bf0713de7d2daf01a7a6bf429884611655680f3dcdb90ca351d0586253bf6ced0dc82a12578dfd3bd12c0f93b5a15f93a86785dc778b4b60493fb935
2022-08-14 01:14:53 +08:00

1 line
No EOL
39 KiB
Text

{"version":3,"file":"vfs.cjs.development.js","sources":["../src/index.ts"],"sourcesContent":["type System = import(\"typescript\").System\ntype CompilerOptions = import(\"typescript\").CompilerOptions\ntype CustomTransformers = import(\"typescript\").CustomTransformers\ntype LanguageServiceHost = import(\"typescript\").LanguageServiceHost\ntype CompilerHost = import(\"typescript\").CompilerHost\ntype SourceFile = import(\"typescript\").SourceFile\ntype TS = typeof import(\"typescript\")\n\nlet hasLocalStorage = false\ntry {\n hasLocalStorage = typeof localStorage !== `undefined`\n} catch (error) {}\n\nconst hasProcess = typeof process !== `undefined`\nconst shouldDebug = (hasLocalStorage && localStorage.getItem(\"DEBUG\")) || (hasProcess && process.env.DEBUG)\nconst debugLog = shouldDebug ? console.log : (_message?: any, ..._optionalParams: any[]) => \"\"\n\nexport interface VirtualTypeScriptEnvironment {\n sys: System\n languageService: import(\"typescript\").LanguageService\n getSourceFile: (fileName: string) => import(\"typescript\").SourceFile | undefined\n createFile: (fileName: string, content: string) => void\n updateFile: (fileName: string, content: string, replaceTextSpan?: import(\"typescript\").TextSpan) => void\n}\n\n/**\n * Makes a virtual copy of the TypeScript environment. This is the main API you want to be using with\n * @typescript/vfs. A lot of the other exposed functions are used by this function to get set up.\n *\n * @param sys an object which conforms to the TS Sys (a shim over read/write access to the fs)\n * @param rootFiles a list of files which are considered inside the project\n * @param ts a copy pf the TypeScript module\n * @param compilerOptions the options for this compiler run\n * @param customTransformers custom transformers for this compiler run\n */\n\nexport function createVirtualTypeScriptEnvironment(\n sys: System,\n rootFiles: string[],\n ts: TS,\n compilerOptions: CompilerOptions = {},\n customTransformers?: CustomTransformers\n): VirtualTypeScriptEnvironment {\n const mergedCompilerOpts = { ...defaultCompilerOptions(ts), ...compilerOptions }\n\n const { languageServiceHost, updateFile } = createVirtualLanguageServiceHost(\n sys,\n rootFiles,\n mergedCompilerOpts,\n ts,\n customTransformers\n )\n const languageService = ts.createLanguageService(languageServiceHost)\n const diagnostics = languageService.getCompilerOptionsDiagnostics()\n\n if (diagnostics.length) {\n const compilerHost = createVirtualCompilerHost(sys, compilerOptions, ts)\n throw new Error(ts.formatDiagnostics(diagnostics, compilerHost.compilerHost))\n }\n\n return {\n // @ts-ignore\n name: \"vfs\",\n sys,\n languageService,\n getSourceFile: fileName => languageService.getProgram()?.getSourceFile(fileName),\n\n createFile: (fileName, content) => {\n updateFile(ts.createSourceFile(fileName, content, mergedCompilerOpts.target!, false))\n },\n updateFile: (fileName, content, optPrevTextSpan) => {\n const prevSourceFile = languageService.getProgram()!.getSourceFile(fileName)\n if (!prevSourceFile) {\n throw new Error(\"Did not find a source file for \" + fileName)\n }\n const prevFullContents = prevSourceFile.text\n\n // TODO: Validate if the default text span has a fencepost error?\n const prevTextSpan = optPrevTextSpan ?? ts.createTextSpan(0, prevFullContents.length)\n const newText =\n prevFullContents.slice(0, prevTextSpan.start) +\n content +\n prevFullContents.slice(prevTextSpan.start + prevTextSpan.length)\n const newSourceFile = ts.updateSourceFile(prevSourceFile, newText, {\n span: prevTextSpan,\n newLength: content.length,\n })\n\n updateFile(newSourceFile)\n },\n }\n}\n\n/**\n * Grab the list of lib files for a particular target, will return a bit more than necessary (by including\n * the dom) but that's OK\n *\n * @param target The compiler settings target baseline\n * @param ts A copy of the TypeScript module\n */\nexport const knownLibFilesForCompilerOptions = (compilerOptions: CompilerOptions, ts: TS) => {\n const target = compilerOptions.target || ts.ScriptTarget.ES5\n const lib = compilerOptions.lib || []\n\n const files = [\n \"lib.d.ts\",\n \"lib.dom.d.ts\",\n \"lib.dom.iterable.d.ts\",\n \"lib.webworker.d.ts\",\n \"lib.webworker.importscripts.d.ts\",\n \"lib.scripthost.d.ts\",\n \"lib.es5.d.ts\",\n \"lib.es6.d.ts\",\n \"lib.es2015.collection.d.ts\",\n \"lib.es2015.core.d.ts\",\n \"lib.es2015.d.ts\",\n \"lib.es2015.generator.d.ts\",\n \"lib.es2015.iterable.d.ts\",\n \"lib.es2015.promise.d.ts\",\n \"lib.es2015.proxy.d.ts\",\n \"lib.es2015.reflect.d.ts\",\n \"lib.es2015.symbol.d.ts\",\n \"lib.es2015.symbol.wellknown.d.ts\",\n \"lib.es2016.array.include.d.ts\",\n \"lib.es2016.d.ts\",\n \"lib.es2016.full.d.ts\",\n \"lib.es2017.d.ts\",\n \"lib.es2017.full.d.ts\",\n \"lib.es2017.intl.d.ts\",\n \"lib.es2017.object.d.ts\",\n \"lib.es2017.sharedmemory.d.ts\",\n \"lib.es2017.string.d.ts\",\n \"lib.es2017.typedarrays.d.ts\",\n \"lib.es2018.asyncgenerator.d.ts\",\n \"lib.es2018.asynciterable.d.ts\",\n \"lib.es2018.d.ts\",\n \"lib.es2018.full.d.ts\",\n \"lib.es2018.intl.d.ts\",\n \"lib.es2018.promise.d.ts\",\n \"lib.es2018.regexp.d.ts\",\n \"lib.es2019.array.d.ts\",\n \"lib.es2019.d.ts\",\n \"lib.es2019.full.d.ts\",\n \"lib.es2019.object.d.ts\",\n \"lib.es2019.string.d.ts\",\n \"lib.es2019.symbol.d.ts\",\n \"lib.es2020.d.ts\",\n \"lib.es2020.full.d.ts\",\n \"lib.es2020.string.d.ts\",\n \"lib.es2020.symbol.wellknown.d.ts\",\n \"lib.es2020.bigint.d.ts\",\n \"lib.es2020.promise.d.ts\",\n \"lib.es2020.sharedmemory.d.ts\",\n \"lib.es2020.intl.d.ts\",\n \"lib.es2021.d.ts\",\n \"lib.es2021.full.d.ts\",\n \"lib.es2021.promise.d.ts\",\n \"lib.es2021.string.d.ts\",\n \"lib.es2021.weakref.d.ts\",\n \"lib.esnext.d.ts\",\n \"lib.esnext.full.d.ts\",\n \"lib.esnext.intl.d.ts\",\n \"lib.esnext.promise.d.ts\",\n \"lib.esnext.string.d.ts\",\n \"lib.esnext.weakref.d.ts\",\n ]\n\n const targetToCut = ts.ScriptTarget[target]\n const matches = files.filter(f => f.startsWith(`lib.${targetToCut.toLowerCase()}`))\n const targetCutIndex = files.indexOf(matches.pop()!)\n\n const getMax = (array: number[]) =>\n array && array.length ? array.reduce((max, current) => (current > max ? current : max)) : undefined\n\n // Find the index for everything in\n const indexesForCutting = lib.map(lib => {\n const matches = files.filter(f => f.startsWith(`lib.${lib.toLowerCase()}`))\n if (matches.length === 0) return 0\n\n const cutIndex = files.indexOf(matches.pop()!)\n return cutIndex\n })\n\n const libCutIndex = getMax(indexesForCutting) || 0\n\n const finalCutIndex = Math.max(targetCutIndex, libCutIndex)\n return files.slice(0, finalCutIndex + 1)\n}\n\n/**\n * Sets up a Map with lib contents by grabbing the necessary files from\n * the local copy of typescript via the file system.\n */\nexport const createDefaultMapFromNodeModules = (compilerOptions: CompilerOptions, ts?: typeof import(\"typescript\")) => {\n const tsModule = ts || require(\"typescript\")\n const path = requirePath()\n const fs = requireFS()\n\n const getLib = (name: string) => {\n const lib = path.dirname(require.resolve(\"typescript\"))\n return fs.readFileSync(path.join(lib, name), \"utf8\")\n }\n\n const libs = knownLibFilesForCompilerOptions(compilerOptions, tsModule)\n const fsMap = new Map<string, string>()\n libs.forEach(lib => {\n fsMap.set(\"/\" + lib, getLib(lib))\n })\n return fsMap\n}\n\n/**\n * Adds recursively files from the FS into the map based on the folder\n */\nexport const addAllFilesFromFolder = (map: Map<string, string>, workingDir: string): void => {\n const path = requirePath()\n const fs = requireFS()\n\n const walk = function (dir: string) {\n let results: string[] = []\n const list = fs.readdirSync(dir)\n list.forEach(function (file: string) {\n file = path.join(dir, file)\n const stat = fs.statSync(file)\n if (stat && stat.isDirectory()) {\n /* Recurse into a subdirectory */\n results = results.concat(walk(file))\n } else {\n /* Is a file */\n results.push(file)\n }\n })\n return results\n }\n\n const allFiles = walk(workingDir)\n\n allFiles.forEach(lib => {\n const fsPath = \"/node_modules/@types\" + lib.replace(workingDir, \"\")\n const content = fs.readFileSync(lib, \"utf8\")\n const validExtensions = [\".ts\", \".tsx\"]\n\n if (validExtensions.includes(path.extname(fsPath))) {\n map.set(fsPath, content)\n }\n })\n}\n\n/** Adds all files from node_modules/@types into the FS Map */\nexport const addFilesForTypesIntoFolder = (map: Map<string, string>) =>\n addAllFilesFromFolder(map, \"node_modules/@types\")\n\n/**\n * Create a virtual FS Map with the lib files from a particular TypeScript\n * version based on the target, Always includes dom ATM.\n *\n * @param options The compiler target, which dictates the libs to set up\n * @param version the versions of TypeScript which are supported\n * @param cache should the values be stored in local storage\n * @param ts a copy of the typescript import\n * @param lzstring an optional copy of the lz-string import\n * @param fetcher an optional replacement for the global fetch function (tests mainly)\n * @param storer an optional replacement for the localStorage global (tests mainly)\n */\nexport const createDefaultMapFromCDN = (\n options: CompilerOptions,\n version: string,\n cache: boolean,\n ts: TS,\n lzstring?: typeof import(\"lz-string\"),\n fetcher?: typeof fetch,\n storer?: typeof localStorage\n) => {\n const fetchlike = fetcher || fetch\n const fsMap = new Map<string, string>()\n const files = knownLibFilesForCompilerOptions(options, ts)\n const prefix = `https://typescript.azureedge.net/cdn/${version}/typescript/lib/`\n\n function zip(str: string) {\n return lzstring ? lzstring.compressToUTF16(str) : str\n }\n\n function unzip(str: string) {\n return lzstring ? lzstring.decompressFromUTF16(str) : str\n }\n\n // Map the known libs to a node fetch promise, then return the contents\n function uncached() {\n return Promise.all(files.map(lib => fetchlike(prefix + lib).then(resp => resp.text()))).then(contents => {\n contents.forEach((text, index) => fsMap.set(\"/\" + files[index], text))\n })\n }\n\n // A localstorage and lzzip aware version of the lib files\n function cached() {\n const storelike = storer || localStorage\n\n const keys = Object.keys(localStorage)\n keys.forEach(key => {\n // Remove anything which isn't from this version\n if (key.startsWith(\"ts-lib-\") && !key.startsWith(\"ts-lib-\" + version)) {\n storelike.removeItem(key)\n }\n })\n\n return Promise.all(\n files.map(lib => {\n const cacheKey = `ts-lib-${version}-${lib}`\n const content = storelike.getItem(cacheKey)\n\n if (!content) {\n // Make the API call and store the text concent in the cache\n return fetchlike(prefix + lib)\n .then(resp => resp.text())\n .then(t => {\n storelike.setItem(cacheKey, zip(t))\n return t\n })\n } else {\n return Promise.resolve(unzip(content))\n }\n })\n ).then(contents => {\n contents.forEach((text, index) => {\n const name = \"/\" + files[index]\n fsMap.set(name, text)\n })\n })\n }\n\n const func = cache ? cached : uncached\n return func().then(() => fsMap)\n}\n\nfunction notImplemented(methodName: string): any {\n throw new Error(`Method '${methodName}' is not implemented.`)\n}\n\nfunction audit<ArgsT extends any[], ReturnT>(\n name: string,\n fn: (...args: ArgsT) => ReturnT\n): (...args: ArgsT) => ReturnT {\n return (...args) => {\n const res = fn(...args)\n\n const smallres = typeof res === \"string\" ? res.slice(0, 80) + \"...\" : res\n debugLog(\"> \" + name, ...args)\n debugLog(\"< \" + smallres)\n\n return res\n }\n}\n\n/** The default compiler options if TypeScript could ever change the compiler options */\nconst defaultCompilerOptions = (ts: typeof import(\"typescript\")): CompilerOptions => {\n return {\n ...ts.getDefaultCompilerOptions(),\n jsx: ts.JsxEmit.React,\n strict: true,\n esModuleInterop: true,\n module: ts.ModuleKind.ESNext,\n suppressOutputPathCheck: true,\n skipLibCheck: true,\n skipDefaultLibCheck: true,\n moduleResolution: ts.ModuleResolutionKind.NodeJs,\n }\n}\n\n// \"/DOM.d.ts\" => \"/lib.dom.d.ts\"\nconst libize = (path: string) => path.replace(\"/\", \"/lib.\").toLowerCase()\n\n/**\n * Creates an in-memory System object which can be used in a TypeScript program, this\n * is what provides read/write aspects of the virtual fs\n */\nexport function createSystem(files: Map<string, string>): System {\n return {\n args: [],\n createDirectory: () => notImplemented(\"createDirectory\"),\n // TODO: could make a real file tree\n directoryExists: audit(\"directoryExists\", directory => {\n return Array.from(files.keys()).some(path => path.startsWith(directory))\n }),\n exit: () => notImplemented(\"exit\"),\n fileExists: audit(\"fileExists\", fileName => files.has(fileName) || files.has(libize(fileName))),\n getCurrentDirectory: () => \"/\",\n getDirectories: () => [],\n getExecutingFilePath: () => notImplemented(\"getExecutingFilePath\"),\n readDirectory: audit(\"readDirectory\", directory => (directory === \"/\" ? Array.from(files.keys()) : [])),\n readFile: audit(\"readFile\", fileName => files.get(fileName) || files.get(libize(fileName))),\n resolvePath: path => path,\n newLine: \"\\n\",\n useCaseSensitiveFileNames: true,\n write: () => notImplemented(\"write\"),\n writeFile: (fileName, contents) => {\n files.set(fileName, contents)\n },\n }\n}\n\n/**\n * Creates a file-system backed System object which can be used in a TypeScript program, you provide\n * a set of virtual files which are prioritised over the FS versions, then a path to the root of your\n * project (basically the folder your node_modules lives)\n */\nexport function createFSBackedSystem(files: Map<string, string>, _projectRoot: string, ts: TS): System {\n // We need to make an isolated folder for the tsconfig, but also need to be able to resolve the\n // existing node_modules structures going back through the history\n const root = _projectRoot + \"/vfs\"\n const path = requirePath()\n\n // The default System in TypeScript\n const nodeSys = ts.sys\n const tsLib = path.dirname(require.resolve(\"typescript\"))\n\n return {\n // @ts-ignore\n name: \"fs-vfs\",\n root,\n args: [],\n createDirectory: () => notImplemented(\"createDirectory\"),\n // TODO: could make a real file tree\n directoryExists: audit(\"directoryExists\", directory => {\n return Array.from(files.keys()).some(path => path.startsWith(directory)) || nodeSys.directoryExists(directory)\n }),\n exit: nodeSys.exit,\n fileExists: audit(\"fileExists\", fileName => {\n if (files.has(fileName)) return true\n // Don't let other tsconfigs end up touching the vfs\n if (fileName.includes(\"tsconfig.json\") || fileName.includes(\"tsconfig.json\")) return false\n if (fileName.startsWith(\"/lib\")) {\n const tsLibName = `${tsLib}/${fileName.replace(\"/\", \"\")}`\n return nodeSys.fileExists(tsLibName)\n }\n return nodeSys.fileExists(fileName)\n }),\n getCurrentDirectory: () => root,\n getDirectories: nodeSys.getDirectories,\n getExecutingFilePath: () => notImplemented(\"getExecutingFilePath\"),\n readDirectory: audit(\"readDirectory\", (...args) => {\n if (args[0] === \"/\") {\n return Array.from(files.keys())\n } else {\n return nodeSys.readDirectory(...args)\n }\n }),\n readFile: audit(\"readFile\", fileName => {\n if (files.has(fileName)) return files.get(fileName)\n if (fileName.startsWith(\"/lib\")) {\n const tsLibName = `${tsLib}/${fileName.replace(\"/\", \"\")}`\n const result = nodeSys.readFile(tsLibName)\n if (!result) {\n const libs = nodeSys.readDirectory(tsLib)\n throw new Error(\n `TSVFS: A request was made for ${tsLibName} but there wasn't a file found in the file map. You likely have a mismatch in the compiler options for the CDN download vs the compiler program. Existing Libs: ${libs}.`\n )\n }\n return result\n }\n return nodeSys.readFile(fileName)\n }),\n resolvePath: path => {\n if (files.has(path)) return path\n return nodeSys.resolvePath(path)\n },\n newLine: \"\\n\",\n useCaseSensitiveFileNames: true,\n write: () => notImplemented(\"write\"),\n writeFile: (fileName, contents) => {\n files.set(fileName, contents)\n },\n }\n}\n\n/**\n * Creates an in-memory CompilerHost -which is essentially an extra wrapper to System\n * which works with TypeScript objects - returns both a compiler host, and a way to add new SourceFile\n * instances to the in-memory file system.\n */\nexport function createVirtualCompilerHost(sys: System, compilerOptions: CompilerOptions, ts: TS) {\n const sourceFiles = new Map<string, SourceFile>()\n const save = (sourceFile: SourceFile) => {\n sourceFiles.set(sourceFile.fileName, sourceFile)\n return sourceFile\n }\n\n type Return = {\n compilerHost: CompilerHost\n updateFile: (sourceFile: SourceFile) => boolean\n }\n\n const vHost: Return = {\n compilerHost: {\n ...sys,\n getCanonicalFileName: fileName => fileName,\n getDefaultLibFileName: () => \"/\" + ts.getDefaultLibFileName(compilerOptions), // '/lib.d.ts',\n // getDefaultLibLocation: () => '/',\n getDirectories: () => [],\n getNewLine: () => sys.newLine,\n getSourceFile: fileName => {\n return (\n sourceFiles.get(fileName) ||\n save(\n ts.createSourceFile(\n fileName,\n sys.readFile(fileName)!,\n compilerOptions.target || defaultCompilerOptions(ts).target!,\n false\n )\n )\n )\n },\n useCaseSensitiveFileNames: () => sys.useCaseSensitiveFileNames,\n },\n updateFile: sourceFile => {\n const alreadyExists = sourceFiles.has(sourceFile.fileName)\n sys.writeFile(sourceFile.fileName, sourceFile.text)\n sourceFiles.set(sourceFile.fileName, sourceFile)\n return alreadyExists\n },\n }\n return vHost\n}\n\n/**\n * Creates an object which can host a language service against the virtual file-system\n */\nexport function createVirtualLanguageServiceHost(\n sys: System,\n rootFiles: string[],\n compilerOptions: CompilerOptions,\n ts: TS,\n customTransformers?: CustomTransformers\n) {\n const fileNames = [...rootFiles]\n const { compilerHost, updateFile } = createVirtualCompilerHost(sys, compilerOptions, ts)\n const fileVersions = new Map<string, string>()\n let projectVersion = 0\n const languageServiceHost: LanguageServiceHost = {\n ...compilerHost,\n getProjectVersion: () => projectVersion.toString(),\n getCompilationSettings: () => compilerOptions,\n getCustomTransformers: () => customTransformers,\n getScriptFileNames: () => fileNames,\n getScriptSnapshot: fileName => {\n const contents = sys.readFile(fileName)\n if (contents) {\n return ts.ScriptSnapshot.fromString(contents)\n }\n return\n },\n getScriptVersion: fileName => {\n return fileVersions.get(fileName) || \"0\"\n },\n writeFile: sys.writeFile,\n }\n\n type Return = {\n languageServiceHost: LanguageServiceHost\n updateFile: (sourceFile: import(\"typescript\").SourceFile) => void\n }\n\n const lsHost: Return = {\n languageServiceHost,\n updateFile: sourceFile => {\n projectVersion++\n fileVersions.set(sourceFile.fileName, projectVersion.toString())\n if (!fileNames.includes(sourceFile.fileName)) {\n fileNames.push(sourceFile.fileName)\n }\n updateFile(sourceFile)\n },\n }\n return lsHost\n}\n\nconst requirePath = () => {\n return require(String.fromCharCode(112, 97, 116, 104)) as typeof import(\"path\")\n}\n\nconst requireFS = () => {\n return require(String.fromCharCode(102, 115)) as typeof import(\"fs\")\n}\n"],"names":["hasLocalStorage","localStorage","error","hasProcess","process","shouldDebug","getItem","env","DEBUG","debugLog","console","log","_message","createVirtualTypeScriptEnvironment","sys","rootFiles","ts","compilerOptions","customTransformers","mergedCompilerOpts","defaultCompilerOptions","createVirtualLanguageServiceHost","languageServiceHost","updateFile","languageService","createLanguageService","diagnostics","getCompilerOptionsDiagnostics","length","compilerHost","createVirtualCompilerHost","Error","formatDiagnostics","name","getSourceFile","fileName","getProgram","createFile","content","createSourceFile","target","optPrevTextSpan","prevSourceFile","prevFullContents","text","prevTextSpan","createTextSpan","newText","slice","start","newSourceFile","updateSourceFile","span","newLength","knownLibFilesForCompilerOptions","ScriptTarget","ES5","lib","files","targetToCut","matches","filter","f","startsWith","toLowerCase","targetCutIndex","indexOf","pop","getMax","array","reduce","max","current","undefined","indexesForCutting","map","cutIndex","libCutIndex","finalCutIndex","Math","createDefaultMapFromNodeModules","tsModule","require","path","requirePath","fs","requireFS","getLib","dirname","resolve","readFileSync","join","libs","fsMap","Map","forEach","set","addAllFilesFromFolder","workingDir","walk","dir","results","list","readdirSync","file","stat","statSync","isDirectory","concat","push","allFiles","fsPath","replace","validExtensions","includes","extname","addFilesForTypesIntoFolder","createDefaultMapFromCDN","options","version","cache","lzstring","fetcher","storer","fetchlike","fetch","prefix","zip","str","compressToUTF16","unzip","decompressFromUTF16","uncached","Promise","all","then","resp","contents","index","cached","storelike","keys","Object","key","removeItem","cacheKey","t","setItem","func","notImplemented","methodName","audit","fn","args","res","smallres","getDefaultCompilerOptions","jsx","JsxEmit","React","strict","esModuleInterop","module","ModuleKind","ESNext","suppressOutputPathCheck","skipLibCheck","skipDefaultLibCheck","moduleResolution","ModuleResolutionKind","NodeJs","libize","createSystem","createDirectory","directoryExists","directory","Array","from","some","exit","fileExists","has","getCurrentDirectory","getDirectories","getExecutingFilePath","readDirectory","readFile","get","resolvePath","newLine","useCaseSensitiveFileNames","write","writeFile","createFSBackedSystem","_projectRoot","root","nodeSys","tsLib","tsLibName","result","sourceFiles","save","sourceFile","vHost","getCanonicalFileName","getDefaultLibFileName","getNewLine","alreadyExists","fileNames","fileVersions","projectVersion","getProjectVersion","toString","getCompilationSettings","getCustomTransformers","getScriptFileNames","getScriptSnapshot","ScriptSnapshot","fromString","getScriptVersion","lsHost","String","fromCharCode"],"mappings":"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"}